From c0000d04ec2b21ff191ef46408f763e92a090261 Mon Sep 17 00:00:00 2001 From: MacKentoch Date: Fri, 11 Sep 2015 05:51:20 +0200 Subject: [PATCH] v1.0.16 : moved to angular 1.4.5 --- bower.json | 12 +- dist/css/eda.dragdropway.css | 2 +- dist/css/eda.dragdropway.min.css | 2 +- dist/css/eda.stepway.css | 2 +- dist/css/eda.stepway.min.css | 2 +- dist/js/eda.dragdropway.js | 4 +- dist/js/eda.dragdropway.min.js | 2 +- dist/js/eda.stepway.js | 4 +- dist/js/eda.stepway.min.js | 2 +- dist/public/css/eda.dragdropway.css | 2 +- dist/public/css/eda.dragdropway.min.css | 2 +- dist/public/css/eda.stepway.css | 2 +- dist/public/css/eda.stepway.min.css | 2 +- dist/public/js/eda.dragdropway.js | 4 +- dist/public/js/eda.dragdropway.min.js | 2 +- dist/public/js/eda.dragdropway.min.js.map | 2 +- dist/public/js/eda.stepway.js | 4 +- dist/public/js/eda.stepway.min.js | 2 +- dist/public/js/eda.stepway.min.js.map | 2 +- dist/public/lib/js/angular-animate.min.js | 81 ++- dist/public/lib/js/angular-animate.min.js.map | 6 +- dist/public/lib/js/angular-messages.min.js | 10 - dist/public/lib/js/angular-resource.min.js | 18 +- .../public/lib/js/angular-resource.min.js.map | 4 +- dist/public/lib/js/angular-strap.min.js | 8 +- dist/public/lib/js/angular-strap.min.js.map | 2 +- dist/public/lib/js/angular-strap.tpl.min.js | 4 +- dist/public/lib/js/angular.min.js | 537 ++++++++++-------- dist/public/lib/js/angular.min.js.map | 6 +- easyFormGenConfig/app/appConfig.js | 4 +- package.json | 2 +- public/css/eda.dragdropway.css | 2 +- public/css/eda.dragdropway.min.css | 2 +- public/css/eda.stepway.css | 2 +- public/css/eda.stepway.min.css | 2 +- public/js/eda.dragdropway.js | 4 +- public/js/eda.dragdropway.min.js | 2 +- public/js/eda.dragdropway.min.js.map | 2 +- public/js/eda.stepway.js | 4 +- public/js/eda.stepway.min.js | 2 +- public/js/eda.stepway.min.js.map | 2 +- public/lib/js/angular-animate.min.js | 81 ++- public/lib/js/angular-animate.min.js.map | 6 +- public/lib/js/angular-messages.min.js | 10 - public/lib/js/angular-resource.min.js | 18 +- public/lib/js/angular-resource.min.js.map | 4 +- public/lib/js/angular-strap.min.js | 8 +- public/lib/js/angular-strap.min.js.map | 2 +- public/lib/js/angular-strap.tpl.min.js | 4 +- public/lib/js/angular.min.js | 537 ++++++++++-------- public/lib/js/angular.min.js.map | 6 +- src/app/dragdropway/edaApp.js | 2 +- src/app/stepway/ngwfApp.js | 2 +- 53 files changed, 775 insertions(+), 667 deletions(-) delete mode 100644 dist/public/lib/js/angular-messages.min.js delete mode 100644 public/lib/js/angular-messages.min.js diff --git a/bower.json b/bower.json index 1a87ce24..57837f45 100644 --- a/bower.json +++ b/bower.json @@ -4,7 +4,7 @@ "./dist/public/js/eda.stepway.js", "./dist/public/css/eda.stepway.css" ], - "version": "1.0.15", + "version": "1.0.16", "description": "create amazing forms without coding : form editor based on angular formly", "keywords": [ "easy", @@ -43,7 +43,9 @@ "tsd.json" ], "dependencies": { - "angular": "~1.3.18", + "angular": "~1.4.5", + "angular-resource": "~1.4.5", + "angular-animate": "~1.4.5", "bootstrap": "~3.3.5", "html5shiv": "~3.7.2", "modernizer": "~2.8.2", @@ -52,21 +54,19 @@ "textAngular": "~1.4.1", "angular-loading-bar": "~0.7.1", "animate.css": "~3.2.6", - "angular-animate": "~1.3.18", "angularjs-toaster": "~0.4.13", "angular-bootstrap": "~0.13.0", "api-check": "~7.2.4", "angular-formly": "~6.8.2", "angular-formly-templates-bootstrap": "~4.3.2", "nya-bootstrap-select": "~2.0.10", - "lodash": "~3.9.3", - "angular-resource": "~1.3.18", + "lodash": "~3.9.3", "angular-strap": "~2.3.0" }, "devDependencies": { "angular-mocks": "~1.4.1" }, "resolutions": { - "angular": "1.3.18" + "angular": "1.4.5" } } diff --git a/dist/css/eda.dragdropway.css b/dist/css/eda.dragdropway.css index faed16f7..bcad8322 100644 --- a/dist/css/eda.dragdropway.css +++ b/dist/css/eda.dragdropway.css @@ -1,6 +1,6 @@ /*! * easyFormGenerator — drag and drop way — version - * Version 1.0.15 + * Version 1.0.16 * Author : Erwan Datin (MacKentoch) *Link: https://github.com/MacKentoch/easyFormGenerator * License : 2015 MIT diff --git a/dist/css/eda.dragdropway.min.css b/dist/css/eda.dragdropway.min.css index da6edfac..92027950 100644 --- a/dist/css/eda.dragdropway.min.css +++ b/dist/css/eda.dragdropway.min.css @@ -1,6 +1,6 @@ /*! * easyFormGenerator — drag and drop way — version - * Version 1.0.15 + * Version 1.0.16 * Author : Erwan Datin (MacKentoch) *Link: https://github.com/MacKentoch/easyFormGenerator * License : 2015 MIT diff --git a/dist/css/eda.stepway.css b/dist/css/eda.stepway.css index 666f3c0d..1e61bf65 100755 --- a/dist/css/eda.stepway.css +++ b/dist/css/eda.stepway.css @@ -1,6 +1,6 @@ /*! * easyFormGenerator — step way — version - * Version 1.0.15 + * Version 1.0.16 * Author : Erwan Datin (MacKentoch) *Link: https://github.com/MacKentoch/easyFormGenerator * License : 2015 MIT diff --git a/dist/css/eda.stepway.min.css b/dist/css/eda.stepway.min.css index 5aa60903..bcc8c252 100755 --- a/dist/css/eda.stepway.min.css +++ b/dist/css/eda.stepway.min.css @@ -1,6 +1,6 @@ /*! * easyFormGenerator — step way — version - * Version 1.0.15 + * Version 1.0.16 * Author : Erwan Datin (MacKentoch) *Link: https://github.com/MacKentoch/easyFormGenerator * License : 2015 MIT diff --git a/dist/js/eda.dragdropway.js b/dist/js/eda.dragdropway.js index 15382c70..5e7ea992 100644 --- a/dist/js/eda.dragdropway.js +++ b/dist/js/eda.dragdropway.js @@ -1,6 +1,6 @@ /** *easyFormGenerator — drag and drop way — version - *Version 1.0.15 + *Version 1.0.16 *Author : Erwan Datin (MacKentoch) *Link: https://github.com/MacKentoch/easyFormGenerator *License : MIT (2015) @@ -46,7 +46,7 @@ angular 'pageslide-directive' ]) - .value('easyFormGenVersion', 'v1.0.15') + .value('easyFormGenVersion', 'v1.0.16') .run(runfct); diff --git a/dist/js/eda.dragdropway.min.js b/dist/js/eda.dragdropway.min.js index 3feef540..d42652f1 100644 --- a/dist/js/eda.dragdropway.min.js +++ b/dist/js/eda.dragdropway.min.js @@ -1,4 +1,4 @@ -!function(){"use strict";function e(e){function o(){return['"].join("")}function t(){return['
','
','
','
','
  Edit :
',"
","
",'
','
','
Column will be blank
',"
","
","
",f,"
"].join("")}function l(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function n(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function i(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function r(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function a(){return['
','
','
','
','
  Edit properties :
',"
","
",'
',' ','
','
    ','
  1. '," {{dateformat}}","
  2. ","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function s(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function d(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function c(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no radio : add new radio values -
',"
",' '," "," ",' ',' ',' '," "," ",' ',' ",' '," "," "," ",' ',' ',' ',' "," "," ","
orderoption
',' ',"
{{$index}}{{radioRow.option}}','
',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function p(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function u(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no option : add new options -
',"
",' '," "," ",' ',' ',' '," "," ",' ',' ",' '," "," "," ",' ',' ',' ',' "," "," ","
orderoption
',' ',"
{{$index}}{{basicSelectRow.option}}','
',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function m(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no option : add new options -
',"
",' '," "," ",' ',' ',' ',' '," "," ",' ',' ',' ",' '," "," "," ",' ',' ',' ",' ',' "," "," ","
ordergroupoption
',' ',"
{{$index}}','
','
','

- add new groups -

',"
",'
','
    ','
  1. '," {{GroupedSelectGroup}}","
  2. ","
","
","
",'
'," {{groupedSelectRow.group}}","
","
{{groupedSelectRow.option}}','
',' ',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}var f=o();e.put("editPanelBlankCtrl-tpls.html",t()),e.put("editPanelHeaderCtrl-tpls.html",l()),e.put("editPanelSubTitleCtrl-tpls.html",n()),e.put("editPanelTextInputCtrl-tpls.html",i()),e.put("editPanelPasswordCtrl-tpls.html",r()),e.put("editPanelDateCtrl-tpls.html",a()),e.put("editPanelTextareaCtrl-tpls.html",s()),e.put("editPanelRichTextEditorCtrl-tpls.html",d()),e.put("editPanelRadioCtrl-tpls.html",c()),e.put("editPanelCheckboxCtrl-tpls.html",p()),e.put("editPanelBasicSelectCtrl-tpls.html",u()),e.put("editPanelGroupedSelectCtrl-tpls.html",m())}angular.module("edaApp",["edaApp.providers","edaApp.controllers","edaApp.services","edaApp.filters","edaApp.directives","textAngular","textAngularSetup","ngAnimate","toaster","formly","formlyBootstrap","ui.bootstrap","nya.bootstrap.select","dndLists","mgcrea.ngStrap.affix","pageslide-directive"]).value("easyFormGenVersion","v1.0.14").run(e), +!function(){"use strict";function e(e){function o(){return['"].join("")}function t(){return['
','
','
','
','
  Edit :
',"
","
",'
','
','
Column will be blank
',"
","
","
",f,"
"].join("")}function l(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function n(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function i(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function r(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function a(){return['
','
','
','
','
  Edit properties :
',"
","
",'
',' ','
','
    ','
  1. '," {{dateformat}}","
  2. ","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function s(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function d(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function c(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no radio : add new radio values -
',"
",' '," "," ",' ',' ',' '," "," ",' ',' ",' '," "," "," ",' ',' ',' ',' "," "," ","
orderoption
',' ',"
{{$index}}{{radioRow.option}}','
',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function p(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function u(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no option : add new options -
',"
",' '," "," ",' ',' ',' '," "," ",' ',' ",' '," "," "," ",' ',' ',' ',' "," "," ","
orderoption
',' ',"
{{$index}}{{basicSelectRow.option}}','
',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function m(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no option : add new options -
',"
",' '," "," ",' ',' ',' ',' '," "," ",' ',' ',' ",' '," "," "," ",' ',' ',' ",' ',' "," "," ","
ordergroupoption
',' ',"
{{$index}}','
','
','

- add new groups -

',"
",'
','
    ','
  1. '," {{GroupedSelectGroup}}","
  2. ","
","
","
",'
'," {{groupedSelectRow.group}}","
","
{{groupedSelectRow.option}}','
',' ',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}var f=o();e.put("editPanelBlankCtrl-tpls.html",t()),e.put("editPanelHeaderCtrl-tpls.html",l()),e.put("editPanelSubTitleCtrl-tpls.html",n()),e.put("editPanelTextInputCtrl-tpls.html",i()),e.put("editPanelPasswordCtrl-tpls.html",r()),e.put("editPanelDateCtrl-tpls.html",a()),e.put("editPanelTextareaCtrl-tpls.html",s()),e.put("editPanelRichTextEditorCtrl-tpls.html",d()),e.put("editPanelRadioCtrl-tpls.html",c()),e.put("editPanelCheckboxCtrl-tpls.html",p()),e.put("editPanelBasicSelectCtrl-tpls.html",u()),e.put("editPanelGroupedSelectCtrl-tpls.html",m())}angular.module("edaApp",["edaApp.providers","edaApp.controllers","edaApp.services","edaApp.filters","edaApp.directives","textAngular","textAngularSetup","ngAnimate","toaster","formly","formlyBootstrap","ui.bootstrap","nya.bootstrap.select","dndLists","mgcrea.ngStrap.affix","pageslide-directive"]).value("easyFormGenVersion","v1.0.15").run(e), e.$inject=["$templateCache"],angular.module("edaApp").config(["dragDropConfigProvider",function(e){e.setItemsNotTocount({itemBeingDragged:"dndDraggingSource"})}]),angular.module("edaApp").config(["formlyConfigProvider","EasyFormGenFormlyBindingModelsProvider","dragDropConfigProvider",function(e,o,t){function l(e){return e=e.replace(/[\-_\s]+(.)?/g,function(e,o){return o?o.toUpperCase():""}),e.replace(/^([A-Z])/,function(e,o){return o?o.toLowerCase():""})}e.setType({name:"blank",template:"
"}),o.addEasyFormControlToList({id:"empty",name:"no control",subtitle:"no control",group:"Blank",formlyType:"blank",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
',"
","
","
"].join(""),control:"empty",cssClass:"col-xs-12"},{addToGroupCtrl:"blank"}),o.addEasyFormControlToList({id:"Header",name:"Header",subtitle:"no control",group:"Decoration",formlyType:"header",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','

Header

',"
","
","
","
"].join(""),control:"Header",cssClass:"col-xs-12"},{addToGroupCtrl:"headers"});var n=['
','
','

{{options.templateOptions.placeholder}}

',"
","

","
"].join(" ");e.setType({name:"subTitle",template:n}),o.addEasyFormControlToList({id:"Subtitle",name:"Subtitle",subtitle:"no control",group:"Decoration",formlyType:"subTitle",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','

SubTitle

',"
","
","
","
"].join(""),control:"Subtitle",cssClass:"col-xs-12"},{addToGroupCtrl:"headers"}),o.addEasyFormControlToList({id:"TextInput",name:"Text input",subtitle:"Text input",group:"input",formlyType:"input",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ",'
',' ','

Description

',"
","
","
"].join(""),control:"TextInput",cssClass:"col-xs-12"},{addToGroupCtrl:"inputs"}),o.addEasyFormControlToList({id:"Password",name:"Password",subtitle:"Password",group:"input",formlyType:"input",formlySubtype:"password",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ",'
',' ','

Description

',"
","
","
"].join(""),control:"Password",cssClass:"col-xs-12"},{addToGroupCtrl:"inputs"});var i=["date-disabled","custom-class","show-weeks","starting-day","init-date","min-mode","max-mode","format-day","format-month","format-year","format-day-header","format-day-title","format-month-title","year-range","shortcut-propagation","datepicker-popup","show-button-bar","current-text","clear-text","close-text","close-on-date-selection","datepicker-append-to-body"],r=["datepicker-mode","min-date","max-date"],a={};angular.forEach(i,function(e){a[l(e)]={attribute:e}}),angular.forEach(r,function(e){a[l(e)]={bound:e}});var s=[""].join(" ");e.setType({name:"datepicker",template:s,wrapper:["bootstrapLabel","bootstrapHasError"],controller:["$scope",function(e){e.open=function(o){o.preventDefault(),o.stopPropagation(),e.opened=!0}}],defaultOptions:{ngModelAttrs:a,templateOptions:{addonLeft:{"class":"glyphicon glyphicon-calendar",onClick:function(e){e.templateOptions.isOpen=!e.templateOptions.isOpen}},onFocus:function(e,o,t){t.to.isOpen=!t.to.isOpen},datepickerOptions:{}}}}),o.addEasyFormControlToList({id:"Date",name:"Date",subtitle:"Date",group:"input",formlyType:"datepicker",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],datepickerPopup:"dd-MMMM-yyyy"}),t.addControlToDragDropPresentationModel({label:['
','
',' ",'
','
',' ',' ',"
","
",'

description

',"
","
"].join(""),control:"Date",cssClass:"col-xs-12"},{addToGroupCtrl:"inputs"}),o.addEasyFormControlToList({id:"Texarea",name:"Textarea",subtitle:"Textarea",group:"Textarea",formlyType:"textarea",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
',' ','

description

',"
","
","
"].join(""),control:"Texarea",cssClass:"col-xs-12"},{addToGroupCtrl:"textareas"});var d=['',""].join(" ");e.setType({name:"richEditor",template:d}),o.addEasyFormControlToList({id:"RichTextEditor",name:"RichTextEditor",subtitle:"RichTextEditor",group:"Textarea",formlyType:"richEditor",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
',' ','

description

',"
","
","
"].join(""),control:"RichTextEditor",cssClass:"col-xs-12"},{addToGroupCtrl:"textareas"}),o.addEasyFormControlToList({id:"Radio",name:"Radio",subtitle:"Radio",options:[],group:"Radio",formlyType:"radio",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
','
','
',' ",'
',' ","
",'

description

',"
","
","
"].join(""),control:"Radio",cssClass:"col-xs-12"},{addToGroupCtrl:"radios"}),o.addEasyFormControlToList({id:"Checkbox",name:"Checkbox",subtitle:"Checkbox",group:"Checkbox",formlyType:"checkbox",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ","
",'

description

',"
"].join(""),control:"Checkbox",cssClass:"col-xs-12"},{addToGroupCtrl:"checkboxes"});var c=['
    ','
  1. '," {{option.name}} ","
  2. ","
"].join("");e.setType({name:"basicSelect",template:c}),o.addEasyFormControlToList({id:"BasicSelect",name:"Basic select",subtitle:"Basic select",options:[],group:"Select",formlyType:"basicSelect",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','
    ',' ","
","
"].join(""),control:"BasicSelect",cssClass:"col-xs-12"},{addToGroupCtrl:"selects"});var p=['
    ','
  1. ',' {{$group}}'," "," {{option.name}}",' '," ","
  2. ","
"].join(" ");e.setType({name:"groupedSelect",template:p}),o.addEasyFormControlToList({id:"GroupedSelect",name:"Grouped Select",subtitle:"Grouped Select",options:[],group:"Select",formlyType:"groupedSelect",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','
    ',' ","
","
"].join(""),control:"GroupedSelect",cssClass:"col-xs-12"},{addToGroupCtrl:"selects"})}]),angular.module("edaApp").run(["$templateCache",function(e){e.put("editModalTemplate.html","

no use right now

")}]),angular.module("edaApp.providers.dragDropConfigProvider",[]).provider("dragDropConfig",[function(){function e(e,o){if(l[0].length>0){if(l[0].lengthi;i++)l[0].push([]);t.containerConfig.decoration.forEach(function(t){o.addToGroupCtrl===t.groupId&&l[0][t.WhenIndex].push(e)})}else t.containerConfig.decoration.forEach(function(){l[0].push([])}),t.containerConfig.decoration.forEach(function(t){o.addToGroupCtrl===t.groupId&&l[0][t.WhenIndex].push(e)})}var o=[{cssClass:"col-md-12",numberItemPerRow:0},{cssClass:"col-md-12",numberItemPerRow:1},{cssClass:"col-md-6",numberItemPerRow:2},{cssClass:"col-md-4",numberItemPerRow:3}],t={dropZoneConfig:{decoration:[{WhenIndex:0,ApplycssClass:"col-md-4",fontAwesomeIcon:"fa fa-level-up",title:"Drag control from here : "},{WhenIndex:1,ApplycssClass:"col-md-8",fontAwesomeIcon:"fa fa-level-down",title:"Drop control into here : "}],verboseMode:!1},containerConfig:{decoration:[{WhenIndex:0,ApplycssClass:"col-md-12",title:"Blank : ",groupId:"blank",isCollapsed:!0},{WhenIndex:1,ApplycssClass:"col-md-12",title:"Headers : ",groupId:"headers",isCollapsed:!0},{WhenIndex:2,ApplycssClass:"col-md-12",title:"Text inputs : ",groupId:"inputs",isCollapsed:!0},{WhenIndex:3,ApplycssClass:"col-md-12",title:"Textareas : ",groupId:"textareas",isCollapsed:!0},{WhenIndex:4,ApplycssClass:"col-md-12",title:"Radios : ",groupId:"radios",isCollapsed:!0},{WhenIndex:5,ApplycssClass:"col-md-12",title:"Checkboxes : ",groupId:"checkboxes",isCollapsed:!0},{WhenIndex:6,ApplycssClass:"col-md-12",title:"Selects : ",groupId:"selects",isCollapsed:!0}],verboseMode:!1,collapseEnabled:!0,collapseCtrl:[{atIndex:0,collapse:!0},{atIndex:1,collapse:!0}]},itemConfig:{verboseMode:!1}},l=[[],[[]]],n={itemBeingDragged:""};this.setListItemCssClass=function(e){o=[].concat(e)},this.getItemsNotTocount=function(){return n},this.setItemsNotTocount=function(e){n=angular.copy(e)},this.addControlToDragDropPresentationModel=function(o,t){"undefined"!=typeof o&&"undefined"!=typeof t&&e(o,t)},this.getDragDropPresentationModel=function(){return l},this.$get=[function(){var e={};return e.getListItemCssClass=function(){return o},e.getItemsNotToCount=function(){return n},e.getItemCssDependingNumberItemsInRow=function(e){if("undefined"!=typeof e){for(var t="",l=o.length-1;l>=0;l--)o[l].numberItemPerRow===e&&(t=o[l].cssClass);return t}return""},e.getDistinctItemCssClass=function(){var e=[];return angular.forEach(o,function(o){var t=o.cssClass;if(0===e.length)e.push(t);else{var l=!0;angular.forEach(e,function(e){var o=e;t===o&&(l=!1)}),l&&e.push(t)}}),e},e.getDragDropConfigModel=function(){return t},e.setDragDropConfigContainerDecorationCollapse=function(e,o,t){return"undefined"!=typeof o&&"undefined"!=typeof t&&o===parseInt(o,10)&&(e.containerConfig.decoration[o].isCollapsed=t),!0},e.getDragDropPresentationModel=function(){return l},e}]}]),angular.module("edaApp.providers.EasyFormGenFormlyBindingModels",[]).provider("EasyFormGenFormlyBindingModels",[function(){var e={controls:[],selectedControl:"none",temporyConfig:{selectedControl:"none",formlyLabel:"label",formlyRequired:!1,formlyDesciption:"",formlyPlaceholder:"",formlyOptions:[]}},o={line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]},t={control:{type:"none",key:"none"}},l={submitButtonText:"submit",cancelButtonText:"cancel",lines:[].concat(o)},n={activeLine:1,listConfigStep:["init","first","second","third"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0},i={submitButtonText:"submit",cancelButtonText:"cancel",lines:[]},r={cssClass:["col-xs-12","col-xs-6","col-xs-4"],textContent:"",html_part1:['
','

'].join(""),html_part3:this.textContent,html_part4:["

","
","

"].join(""),simpleHtml1:['

'].join(""),simpleHtml2:["

","
"].join("")},a={className:["col-xs-12","col-xs-6","col-xs-4"],type:"",key:"",templateOptions:{type:"",label:"",required:"",placeholder:"",description:"",options:""}},s=[{controlType:"datepicker",properties:[{isRoot:!1,isTemplateOptions:!0,value:"datepickerPopup"}]}];this.getAllParticularControlProperties=function(){return s},this.addParticularControlProperties=function(e){if("controlType"in e&&"properties"in e){var o=!1;s.length>0&&s.forEach(function(t){t.controlType===e.controlType&&(t.properties=[].concat(e.properties),o=!0)}),o||s.push(e)}return s},this.getEasyFormListControls=function(){return e},this.addEasyFormControlToList=function(o){"undefined"!=typeof o&&e.controls.push(o)},this.getHeaderTemplates=function(){return r},this.addHeaderTemplateCssClass=function(e){"undefined"!=typeof e&&r.cssClass.push(e)},this.getFormlyControlTemplate=function(){return a},this.addformlyControlTemplatesCssClass=function(e){"undefined"!=typeof e&&a.className.push(e)},this.setFormlyControlTemplate=function(e){return"className"in e&&"type"in e&&"key"in e&&"templateOptions"in e&&(a=angular.copy(e)),!0},this.$get=[function(){var d={};return d.getEasyFormListControls=function(){return e},d.getEasyFormInitialStateConfigurationModel=function(e){var o=angular.copy(l);return"undefined"!=typeof e&&e&&angular.extend(o,n),o},d.getEasyFormReloadConfigurationModel=function(e){var o=angular.copy(i);return"undefined"!=typeof e&&e&&angular.extend(o,n),o},d.getEasyFormEmptyConfigurationLineModel=function(){return o},d.getEasyFormConfigurationEmptyControlModel=function(){return t},d.getRawHeaderTemplates=function(){return r},d.getHeaderTemplateForNcolumnLine=function(e,o){if("undefined"!=typeof e&&"undefined"!=typeof o&&e===parseInt(e,10)&&e<=r.cssClass.length){var t={};return t.className=r.cssClass[e-1],r.textContent=o,r.selectedClass=t.className,t.template=[r.simpleHtml1,o,r.simpleHtml2].join(""),t}},d.getRawFormlyControlTemplates=function(){return a},d.getFormlyControlTemplateForNcolumnLine=function(e,o){if("undefined"!=typeof e&&e===parseInt(e,10)&&e<=a.className.length){var t=angular.copy(a);return t.className=a.className[e-1],"undefined"!=typeof o&&s.forEach(function(e){e.controlType===o&&e.properties.forEach(function(e){e.isRoot&&(t[e.value]=""),e.isTemplateOptions&&(t.templateOptions[e.value]="")})}),t}},d}]}]),angular.module("edaApp.providers",["edaApp.providers.dragDropConfigProvider","edaApp.providers.EasyFormGenFormlyBindingModels",function(){}]),angular.module("edaApp.controllers",["edaApp.controllers.edaMainController","edaApp.controllers.edaEditController","edaApp.controllers.edaEditMODALController","edaApp.controllers.edaEditPanelController"]),angular.module("edaApp.controllers.edaEditController",[]).controller("edaEditController",["$scope","easyFormGenVersion","$filter","$anchorScroll","toaster","$timeout","$modal","$log","formFieldManage","formsByIdService","controllerModalProxy","dragDropItemDecorationService","dragDropConfig","ddModelConfModelProxyService","ddItemRightClickedManager",function(e,o,t,l,n,i,r,a,s,d,c,p,u,m,f){function g(){n.pop({type:"info",timeout:2e3,title:"should save data model if it were not a static example",body:"data :"+t("json")(e.vm.model,4),showCloseButton:!0})}function y(){s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}e.easyFormGeneratorVERSION=o,e.tab={editTab:{active:!0},previewTab:{active:!1}},e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.ihm={preview:{formlyModelViewExpanded:!0,formlyFieldsViewExpanded:!0,customizeFormButtonsExpanded:!0,saveThisFormExpanded:!0}},e.easyFormDragDropProperties=u.getDragDropConfigModel(),e.dragDropModel=[].concat(u.getDragDropPresentationModel()),e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.configuration={},s.initConfigurationEditFromScratch(e.configuration,!1),c.initProxyModel(),e.collapseAllGroupControl=function(o){angular.forEach(e.easyFormDragDropProperties.containerConfig.decoration,function(t){t.WhenIndex!==o&&u.setDragDropConfigContainerDecorationCollapse(e.easyFormDragDropProperties,t.WhenIndex,!0)})},e.vm.onSubmit=g,e.resetToZeroModel=function(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()},e.countConfigurationModelLines=function(){return e.configuration.lines.length},e.setActiveLineNumber=function(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)},e.upThisLine=function(o){if(o>-1&&e.configuration.lines[o-1]){var t=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,t),e.configuration.activeLine=1}s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.downThisLine=function(o){if(o>-1&&e.configuration.lines[o+1]){var t=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,t),e.configuration.activeLine=1}s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.removeThisLine=function(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):i(function(){n.pop({type:"warning",title:"Last line",body:"Can't delete the last line",showCloseButton:!0})},100),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))},e.increaseNumberOfColumns=function(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.saveThisForm=function(){if("undefined"==typeof e.configuration.formName)return n.pop({type:"warning",timeout:2e3,title:"Form name is undefined",body:"Form has not been saved.",showCloseButton:!0}),!1;if(""===e.configuration.formName)return n.pop({type:"warning",timeout:2e3,title:"Form name is required",body:"Form has not been saved.",showCloseButton:!0}),!1;n.pop({type:"wait",timeout:1e4,title:"Form is being saved",body:"Wait.",showCloseButton:!0});var o=new d;return o.formName=e.configuration.formName,o.submitButtonText=e.configuration.submitButtonText,o.cancelButtonText=e.configuration.cancelButtonText,o.formlyField=JSON.stringify(e.configuration.lines),n.clear(),n.pop({type:"info",timeout:2e3,title:"Form would be saved if it were not a static example",body:"",showCloseButton:!0}),!0},e.nyaSelect={},c.initNyaSelect(e.nyaSelect),e.animationsEnabled=!0,e.showModalAddCtrlToColumn=function(o,t,l){var n=r.open({animation:e.animationsEnabled,templateUrl:"editModalTemplate.html",controller:"edaEditMODALController",size:"lg",resolve:{nyaSelect:function(){return c.getNyASelectFromSelectedLineColumn(e.nyaSelect,e.configuration,t,l)}}});n.result.then(function(o){c.bindConfigurationModelFromModalReturn(t,l,o,e.configuration),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},function(){a.info("Modal dismissed at: "+new Date)})},e.dragoverCallbackContainer=function(e,o,t){return 0===t?!1:!0},e.dropCallback=function(o,t,l,n,r,a){if(n){if("itemType"===a&&!l.label)return!1;if("containerType"===a&&!angular.isArray(l))return!1}var d=i(function(){e.configuration=angular.copy(m.refreshAllConfigurationFromDragAndDropModel(e.configuration,e.dragDropModel)),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel)},200);return e.$on("$destroy",function(){i.cancel(d)}),l},e.dndItemMoved=function(o,t,l){o>0&&e.dragDropModel[o][t].splice(l,1)},e.dragoverCallbackItems=function(e,o,t,l){return 0===o?!1:!0},e.disableItemDropIf=function(){},e.dropCallbackItems=function(o,t,l,n,r,a,d,c,p,u){if(c){if("itemType"===u&&!d.label)return!1;if("containerType"===u&&!angular.isArray(d))return!1}var g=i(function(){e.configuration=angular.copy(m.refreshAllConfigurationFromDragAndDropModel(e.configuration,e.dragDropModel)),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel)},200);return f.setUnRightClicked(d),e.$on("$destroy",function(){i.cancel(g)}),d},e.editPanelModel={toggle:!1},e.saveFromEditPanel=function(){c.bindSpecialCtrlTemporyModelsToProxyModel(),c.bindConfigurationModelFromProxyModel(c.getEditPanelModelLineIndex(),c.getEditPanelModelColumnIndex(),e.configuration),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel),c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle(),f.resetAllDragDropItemSelectedState(e.dragDropModel)},e.closeEditPanel=function(){f.resetAllDragDropItemSelectedState(e.dragDropModel),c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle()},e.debugProxyModel=c.ProxyModel,e.setRightClicked=function(e,o){o.rightCliked=!0},e.toggleEditPanel=function(o,t,l,n){if(f.resetAllDragDropItemSelectedState(e.dragDropModel),c.getEditPanelModelToggle()){if(c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle(),"undefined"!=typeof c.getEditPanelModelLineIndex()&&"undefined"!=typeof c.getEditPanelModelColumnIndex()&&"undefined"!=typeof c.getEditPanelModelControl())if(c.getEditPanelModelLineIndex()===t&&c.getEditPanelModelColumnIndex()===l&&angular.equals(c.getEditPanelModelControl(),n));else{n.rightCliked=!0;var r=i(function(){c.setEditPanelModelLineIndex(t),c.setEditPanelModelColumnIndex(l),c.setEditPanelModelControl(n),c.setProxyModelFromConfigurationSelection(e.configuration,t,l),c.setEditPanelModelToggle(!0),e.editPanelModel.toggle=c.getEditPanelModelToggle()},200);e.$on("$destroy",function(){i.cancel(r)})}}else n.rightCliked=!0,c.setEditPanelModelLineIndex(t),c.setEditPanelModelColumnIndex(l),c.setEditPanelModelControl(n),c.setProxyModelFromConfigurationSelection(e.configuration,t,l),c.setEditPanelModelToggle(!0),e.editPanelModel.toggle=c.getEditPanelModelToggle()},e.removeThisLine=function(o){e.dragDropModel[1].splice(o,1)},e.model=[],e.insertNewLine=function(){y(),e.dragDropModel[1].push([])}}]),angular.module("edaApp.controllers.edaEditMODALController",[]).controller("edaEditMODALController",["$scope","$modalInstance","nyaSelect","toaster","$timeout","selectOptionManage","controllerModalProxy",function(e,o,t,l,n,i,r){function a(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:""};e.radioRowCollection.rows.push(t)}}function s(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.radioRowCollection.rows.length>0)for(var t=0;t<=e.radioRowCollection.rows.length-1;t++){var l={name:e.radioRowCollection.rows[t].option,value:t,group:""};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function d(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:""};e.basicSelectRowCollection.rows.push(t)}}function c(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.basicSelectRowCollection.rows.length>0)for(var t=0;t<=e.basicSelectRowCollection.rows.length-1;t++){var l={name:e.basicSelectRowCollection.rows[t].option,value:t,group:""};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function p(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0){for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:e.nyaSelect.temporyConfig.formlyOptions[o].group};e.groupedSelectRowCollection.rows.push(t)}var l=_.uniq(_.pluck(e.groupedSelectRowCollection.rows,"group"));angular.copy(l,e.GroupedSelectGroups.list)}}function u(){e.nyaSelect.temporyConfig.formlyOptions=[];for(var o=0;o<=e.groupedSelectRowCollection.rows.length-1;o++){var t={name:e.groupedSelectRowCollection.rows[o].option,value:o,group:e.groupedSelectRowCollection.rows[o].group};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function m(){e.nyaSelect.temporyConfig.datepickerPopup=e.demodt.formats[0]}function f(){e.nyaSelect.temporyConfig={formlyLabel:"",formlyRequired:!1,formlyPlaceholder:"",formlyDesciption:"",formlyOptions:[]}}var g={rows:[]};if(e.radioRowCollection=g,e.newOptionRadio={saisie:""},e.addNewOptionRadio=function(){var o=i.addNewOptionRadio(e.radioRowCollection,e.newOptionRadio.saisie);o.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionRadio.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionRadio={saisie:""}},e.removeRadioRow=function(o){var t=i.removeOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},e.upThisRadioRow=function(o){var t=i.upthisOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.downThisRadioRow=function(o){var t=i.downthisOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.basicSelectRowCollection=g,e.newOptionBasicSelect={saisie:""},e.addNewOptionBasicSelect=function(){var o=i.addNewOptionBasicSelect(e.basicSelectRowCollection,e.newOptionBasicSelect.saisie);o.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionBasicSelect.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionBasicSelect={saisie:""}},e.removeRow=function(o){var t=i.removeOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},e.upThisRow=function(o){var t=i.upthisOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.downThisRow=function(o){var t=i.downthisOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({ type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.groupedSelectRowCollection=g,e.newOptionGroupedSelect={saisie:""},e.GroupedSelectGroups={list:[]},e.newGroupGroupedSelect={saisie:""},e.groupSelectGroupClick={showList:!1},e.showGroupListToChoose=function(){e.groupSelectGroupClick.showList=!e.groupSelectGroupClick.showList},e.addNewGroupToGroupedSelect=function(){if(""!==e.newGroupGroupedSelect.saisie){for(var o=e.GroupedSelectGroups.list.length-1;o>=0;o--)e.GroupedSelectGroups.list[o]===e.newGroupGroupedSelect.saisie&&l.pop({type:"warning",timeout:2e3,title:"Group already exists",body:"No group added.",showCloseButton:!0});e.GroupedSelectGroups.list.push(e.newGroupGroupedSelect.saisie)}else l.pop({type:"warning",timeout:2e3,title:"Not a valid group to add",body:"No group added.",showCloseButton:!0});e.newGroupGroupedSelect.saisie=""},e.addNewOptionGroupedSelect=function(){var o=i.addNewOptionGroupedSelect(e.groupedSelectRowCollection,e.newOptionGroupedSelect.saisie,"");o.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionGroupedSelect.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionGroupedSelect={saisie:""}},e.removeGroupedSelectRow=function(o){var t=i.removeOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},e.upThisGroupedSelectRow=function(o){var t=i.upthisOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.downThisGroupedSelectRow=function(o){var t=i.downthisOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.demodt={},e.today=function(){e.demodt.dt=new Date},e.today(),e.clear=function(){e.demodt.dt=null},e.open=function(o){o.preventDefault(),o.stopPropagation(),e.demodt.opened=!0},e.dateOptions={formatYear:"yy",startingDay:1,showWeeks:!0,initDate:null},e.demodt.formats=["dd-MMMM-yyyy","yyyy/MM/dd","dd.MM.yyyy","shortDate"],e.nyaSelect=t,e.nyaSelect.selectedControl=e.nyaSelect.temporyConfig.selectedControl,"none"!==t.selectedControl){for(var y=e.nyaSelect.controls.length-1;y>=0;y--)e.nyaSelect.controls[y].id===t.selectedControl&&(e.modelNyaSelect=t.controls[y]);"BasicSelect"===e.nyaSelect.selectedControl&&d(),"GroupedSelect"===e.nyaSelect.selectedControl&&p(),"Radio"===e.nyaSelect.selectedControl&&a()}e.selectThisControl=function(o){e.nyaSelect.selectedControl="none",f();for(var t=e.nyaSelect.controls.length-1;t>=0;t--)e.nyaSelect.controls[t].id===o&&(e.nyaSelect.selectedControl=e.nyaSelect.controls[t].id);"Date"===e.nyaSelect.selectedControl&&m()},e.ok=function(){"BasicSelect"===e.nyaSelect.selectedControl&&c(),"GroupedSelect"===e.nyaSelect.selectedControl&&u(),"Radio"===e.nyaSelect.selectedControl&&s(),r.applyConfigToSelectedControl(e.nyaSelect),o.close(e.nyaSelect)},e.cancel=function(){o.dismiss("cancel")}}]),angular.module("edaApp.controllers.edaEditPanelController",[]).controller("edaEditPanelController",["$scope","toaster","$timeout","selectOptionManage","controllerModalProxy",function(e,o,t,l,n){function i(){a.proxyModel.temporyConfig={formlyLabel:"",formlyRequired:!1,formlyPlaceholder:"",formlyDesciption:"",formlyOptions:[]}}function r(){a.proxyModel.temporyConfig.datepickerPopup=a.demodt.formats[0]}var a=this;if(a.proxyModel=n.proxyModel,a.proxyModel.selectedControl=a.proxyModel.temporyConfig.selectedControl,a.basicSelectRowCollection=n.basicSelectRowCollection,a.newOptionBasicSelect=n.newOptionBasicSelect,a.groupedSelectRowCollection=n.groupedSelectRowCollection,a.newOptionGroupedSelect=n.newOptionGroupedSelect,a.GroupedSelectGroups=n.GroupedSelectGroups,a.newGroupGroupedSelect=n.newGroupGroupedSelect,a.groupSelectGroupClick=n.groupSelectGroupClick,a.radioRowCollection=n.radioRowCollection,a.newOptionRadio=n.newOptionRadio,n.resetAllTemporyModels(),"none"!==a.proxyModel.temporyConfig.selectedControl){for(var s=a.proxyModel.controls.length-1;s>=0;s--)a.proxyModel.controls[s].id===a.proxyModel.temporyConfig.selectedControl&&(a.modelproxyModel=a.proxyModel.controls[s]);"BasicSelect"===a.proxyModel.temporyConfig.selectedControl&&n.bindBasicSelectFromProxyModel(a.basicSelectRowCollection),"GroupedSelect"===a.proxyModel.temporyConfig.selectedControl&&n.bindGroupedSelectFromProxyModel(a.groupedSelectRowCollection,a.GroupedSelectGroups),"Radio"===a.proxyModel.temporyConfig.selectedControl&&n.bindRadioFromProxyModel(a.radioRowCollection)}a.updateSpecialControl=function(){return n.basicSelectRowCollection=a.basicSelectRowCollection,n.newOptionBasicSelect=a.newOptionBasicSelect,n.groupedSelectRowCollection=a.groupedSelectRowCollection,n.newOptionGroupedSelect=a.newOptionGroupedSelect,n.GroupedSelectGroups=a.GroupedSelectGroups,n.newGroupGroupedSelect=a.newGroupGroupedSelect,n.groupSelectGroupClick=a.groupSelectGroupClick,n.radioRowCollection=a.radioRowCollection,n.newOptionRadio=a.newOptionRadio,n.bindSpecialCtrlTemporyModelsToProxyModel(),!0},a.resetControl=function(){a.proxyModel.temporyConfig.formlyLabel="",a.proxyModel.temporyConfig.formlyRequired=!1,a.proxyModel.temporyConfig.formlyPlaceholder="",a.proxyModel.temporyConfig.formlyDesciption="",a.proxyModel.temporyConfig.formlyOptions=[],a.proxyModel.temporyConfig.datepickerPopup=r()},a.selectThisControl=function(e){a.proxyModel.selectedControl="none",i();for(var o=a.proxyModel.controls.length-1;o>=0;o--)a.proxyModel.controls[o].id===e&&(a.proxyModel.selectedControl=a.proxyModel.controls[o].id);"Date"===a.proxyModel.selectedControl&&r()},a.addNewOptionRadio=function(){var e=l.addNewOptionRadio(a.radioRowCollection,a.newOptionRadio.saisie);e.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:e.details,body:"'"+a.newOptionRadio.saisie+"' cannot be added.",showCloseButton:!0}),a.newOptionRadio={saisie:""}},a.removeRadioRow=function(e){var t=l.removeOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},a.upThisRadioRow=function(e){var t=l.upthisOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.downThisRadioRow=function(e){var t=l.downthisOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.addNewOptionBasicSelect=function(){var e=l.addNewOptionBasicSelect(a.basicSelectRowCollection,a.newOptionBasicSelect.saisie);e.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:e.details,body:"'"+a.newOptionBasicSelect.saisie+"' cannot be added.",showCloseButton:!0}),a.newOptionBasicSelect={saisie:""}},a.removeRow=function(e){var t=l.removeOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},a.upThisRow=function(e){var t=l.upthisOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.downThisRow=function(e){var t=l.downthisOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.showGroupListToChoose=function(){a.groupSelectGroupClick.showList=!a.groupSelectGroupClick.showList},a.addNewGroupToGroupedSelect=function(){if(""!==a.newGroupGroupedSelect.saisie){for(var e=a.GroupedSelectGroups.list.length-1;e>=0;e--)a.GroupedSelectGroups.list[e]===a.newGroupGroupedSelect.saisie&&o.pop({type:"warning",timeout:2e3,title:"Group already exists",body:"No group added.",showCloseButton:!0});a.GroupedSelectGroups.list.push(a.newGroupGroupedSelect.saisie)}else o.pop({type:"warning",timeout:2e3,title:"Not a valid group to add",body:"No group added.",showCloseButton:!0});a.newGroupGroupedSelect.saisie=""},a.addNewOptionGroupedSelect=function(){var e=l.addNewOptionGroupedSelect(a.groupedSelectRowCollection,a.newOptionGroupedSelect.saisie,"");e.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:e.details,body:"'"+a.newOptionGroupedSelect.saisie+"' cannot be added.",showCloseButton:!0}),a.newOptionGroupedSelect={saisie:""}},a.removeGroupedSelectRow=function(e){var t=l.removeOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},a.upThisGroupedSelectRow=function(e){var t=l.upthisOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.downThisGroupedSelectRow=function(e){var t=l.downthisOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.demodt={},a.today=function(){a.demodt.dt=new Date},a.today(),a.clear=function(){a.demodt.dt=null},a.open=function(e){e.preventDefault(),e.stopPropagation(),a.demodt.opened=!0},a.dateOptions={formatYear:"yy",startingDay:1,showWeeks:!0,initDate:null},a.demodt.formats=["dd-MMMM-yyyy","yyyy/MM/dd","dd.MM.yyyy","shortDate"]}]),angular.module("edaApp.controllers.edaMainController",[]).controller("edaMainController",[function(){}]),angular.module("edaApp.directives.edaDdContentCounterDirective",[]).directive("ddContentCounter",["dragDropItemCounterService","$timeout",function(e,o){return{scope:{valueWhenPlaceholder:"@ddValueWhenPlaceholder",valueWhendragging:"@ddValueWhenDragging",fullModel:"=ddFullModel",currentIndex:"@ddContentCounterCurrentIndex",parentIndex:"@ddContentCounterParentIndex",forceRefresh:"=ddContentCounterForceCssRefresh"},restrict:"A",link:function(t,l){var n;t.$watch(function(){return l[0].children.length},function(i,r){if(i!==r){for(var a=0,s=[],d=l[0].children.length-1;d>=0;d--)e.isHtmlElementToCount(l[0].children[d].classList)?(a++,s.push({item:d,isReal:!0})):s.push({item:d,isReal:!1});t.contentRealCount=a,n=o(function(){e.updateLineItemCss(t.fullModel,s,t.parentIndex,t.currentIndex,a)},20)}}),t.$on("$destroy",function(){console.warn("ddContentCounter timer destruction!"),o.cancel(n)})}}}]),angular.module("edaApp.directives.edaDdDecorContainerDirective",[]).directive("ddDecorContainer",[function(){var e=['
','
 {{currentTitle}}
',"
",'
','
',"
"].join(" ");return{scope:{styleParam:"=ddContainerProperties",isStillCollapsed:"=ddContainerIsCollpased",verboseMode:"@ddContainerVerboseMode",currentIndex:"@ddContainerCurrentIndex",collpaseAll:"&ddCollapseAll"},restrict:"A",template:e,transclude:!0,controller:function(e){e.config={isEnabled:!1},e.collapseFct=function(){e.collpaseAll({exceptThisOne:e.styleParam.WhenIndex}),e.isCollapsed=!e.isCollapsed,e.isStillCollapsed=e.isCollapsed},e.icons={closedClass:"glyphicon glyphicon-eye-open",opened:"glyphicon glyphicon-eye-close"},e.currentIconClass=function(){return e.isCollapsed?e.icons.closedClass:e.icons.opened}},link:function(e,o,t,l,n){var i=e.verboseMode,r=e.currentIndex;if(e.isCollapsed=!1,""!==i){var a=angular.lowercase(i);("true"===a||"1"===a)&&console.dir({whoAmI:"I am verbose from ddDecorContainer link",verbodeMode:a,ParentParentIndex:e.$parent.$parent.$index,ParentIndex:e.$parent.$index,currentIndex:r,styleParam:e.styleParam,columnindex:e.$parent.$parent.$parent.$parent.$index})}e.$watch(function(){return e.isStillCollapsed},function(o,t){o!==t&&0===e.$parent.$parent.$index&&(e.isCollapsed=o)}),e.config.isEnabled=!1,"undefined"!=typeof r&&""!==r&&"0"===r&&"undefined"!=typeof e.styleParam.title&&(e.currentTitle=e.styleParam.title,e.config.isEnabled=!0,e.isCollapsed=!0),n(e.$parent,function(e){var t=angular.element(o.children()[1]);t.append(e)})}}}]),angular.module("edaApp.directives.edaDdDecorDropZoneDirective",[]).directive("ddDecorDropZone",[function(){var e=['
','
','
','
','

','  '," {{currentTitle}}",'
',' ","
","

","
",'
','
','
',"
","
","
","
","
","
"].join(" ");return{scope:{styleParam:"=ddDropZoneProperties",verboseMode:"@ddDropZoneVerboseMode",currentIndex:"@ddDropZoneCurrentIndex",addNewLineFct:"&ddDropZoneAddNewLine"},restrict:"A",template:e,transclude:!0,link:function(e){var o=e.verboseMode,t=e.currentIndex;if(e.headerConfig={HeaderButtonVisible:!1,affixAttr:"bs-affix",affixEnabled:!1},""!==o){var l=angular.lowercase(o);("true"===l||"1"===l)&&console.dir({whoAmI:"I am verbose from ddDecorDropZone link",verbodeMode:l,ParentParentIndex:e.$parent.$parent.$index,ParentIndex:e.$parent.$index,currentIndex:t,styleParam:e.styleParam})}"undefined"!=typeof t&&""!==t&&("undefined"!=typeof e.styleParam.title&&(e.currentTitle=e.styleParam.title),"undefined"!=typeof e.styleParam.fontAwesomeIcon&&(e.currentFontAwesome=e.styleParam.fontAwesomeIcon),"1"===t&&(e.headerConfig.HeaderButtonVisible=!0))}}}]),angular.module("edaApp.directives.edaDdDecorItemDirective",[]).directive("ddDecorItem",["dragDropConfig",function(e){var o=["
",'
',"
"].join(" ");return{scope:{verboseMode:"@ddItemVerboseMode",currentIndex:"@ddItemCurrentIndex",parentIndex:"@ddItemParentIndex",parentParentIndex:"@ddItemParentParentIndex",lineItemsCount:"@ddItemsCount",cssClass:"@ddItemCssClass"},restrict:"A",template:o,transclude:!0,link:function(o,t,l,n,i){var r=o.verboseMode,a=o.currentIndex,s=o.parentIndex,d=e.getDistinctItemCssClass();if(angular.forEach(d,function(e){t.removeClass(e)}),t.addClass(o.cssClass),o.$watch("cssClass",function(e,o){e!==o&&(angular.forEach(d,function(e){t.removeClass(e)}),t.addClass(e))}),""!==r){var c=angular.lowercase(r);("true"===c||"1"===c)&&console.dir({whoAmI:"I am verbose from ddDecorItem directive link",verbodeMode:c,ParentParentIndex:o.$parent.$parent.$index,ParentIndex:s,parentParentIndex:o.parentParentIndex,currentIndex:a,lineItemsCount:o.lineItemsCount})}"0"===o.parentParentIndex&&t.addClass(d[0]),i(o.$parent,function(e){var o=angular.element(t.children()[0]);o.append(e)})}}}]),angular.module("edaApp.directives.edaDdDecorLineDirective",[]).directive("ddDecorLine",["$timeout",function(e){var o=['
',' ',"
",'
'].join(" ");return{scope:{verboseMode:"@ddLineVerboseMode",currentIndex:"@ddLineCurrentIndex",parentIndex:"@ddLineParentIndex",removeLine:"&ddRemoveLine"},restrict:"A",template:o,transclude:!0,link:function(o,t,l,n,i){var r=o.verboseMode,a=o.currentIndex,s=o.parentIndex;if(o.deleteLine={},o.deleteLine.readyToDelete=!1,o.deleteLine.dblClickCount=0,o.isCollapsed=!1,""!==r){var d=angular.lowercase(r);("true"===d||"1"===d)&&console.dir({whoAmI:"I am verbose from ddDecorLine directive link",verbodeMode:d,ParentParentIndex:o.$parent.$parent.$index,ParentIndex:s,currentIndex:a})}o.removeMe=function(t){t.preventDefault(),t.stopPropagation(),"1"===o.parentIndex&&(1===o.deleteLine.dblClickCount&&(o.deleteLine.dblClickCount=0,o.deleteLine.readyToDelete=!1,o.removeLine(),e.cancel(c)),0===o.deleteLine.dblClickCount&&(o.deleteLine.dblClickCount=o.deleteLine.dblClickCount+1,o.deleteLine.readyToDelete=!0))};var c;o.cancelDelete=function(t){c=e(function(){o.deleteLine.dblClickCount=0,o.deleteLine.readyToDelete=!1},500)},o.$on("$destroy",function(){e.cancel(c)}),i(o.$parent,function(e){var o=angular.element(t.children()[0]);o.append(e)})}}}]),angular.module("edaApp.directives.edaDdNoEditableControlDirective",[]).directive("ddNoEditableControl",[function(){return{restrict:"A",link:function(e,o){o.on("click",function(e){e.preventDefault()})}}}]),angular.module("edaApp.directives",["edaApp.directives.edaStRationDirective","edaApp.directives.edaDdDecorDropZoneDirective","edaApp.directives.edaDdDecorContainerDirective","edaApp.directives.edaDdDecorLineDirective","edaApp.directives.edaDdDecorItemDirective","edaApp.directives.edaDdNoEditableControlDirective","edaApp.directives.edaDdContentCounterDirective","edaApp.directives.edaRightClickDirective"]),angular.module("edaApp.directives.edaRightClickDirective",[]).directive("edaRightClick",["$parse",function(e){return{restrict:"A",link:function(o,t,l){var n=e(l.edaRightClick),i=e(l.edaRightClickColIndex),r=e(l.edaSetRightClicked);t.on("contextmenu",function(e){o.$apply(function(){e.preventDefault(),1===i(o)&&r(o,{}),1===i(o)&&n(o,{$event:e})})})}}}]),angular.module("edaApp.directives.edaStRationDirective",[]).directive("stRatio",[function(){return{restrict:"A",link:function(e,o,t){var l=+t.stRatio;o.css("width",l+"%")}}}]),angular.module("edaApp.services.dragDropItemCountersService",[]).factory("dragDropItemCounterService",["dragDropConfig",function(e){var o=[],t=angular.copy(e.getItemsNotToCount()),l={};return l.getItemsNotToCount=function(){return t},l.getModelItemsRealCounter=function(){return o},l.isHtmlElementToCount=function(e){var o=!0;return e.length>0&&angular.forEach(t,function(t){for(var l=e.length-1;l>=0;l--)e[l]===t&&(o&=!1)}),o},l.updateLineItemCss=function(o,t,l,n,i){if("undefined"!=typeof o&&"undefined"!=typeof t&&"undefined"!=typeof l&&"undefined"!=typeof n&&"undefined"!=typeof i){for(var r=o[l][n].length-1;r>=0;r--)for(var a=0;a=0;r--)o[t][l][r].cssClass=e.getItemCssDependingNumberItemsInRow(n);return!0}return!1},t.updateCssClassWholeColumn=function(o,t){if("undefined"!=typeof t&&"undefined"!=typeof o){for(var l=o[t].length-1;l>=0;l--)for(var n=o[t][l].length-1;n>=0;n--)o[t][l][n].cssClass=e.getItemCssDependingNumberItemsInRow(o[t][l].length);return!0}return!1},t}]),angular.module("edaApp.services.dragDropModelConfigModelProxyService",[]).factory("ddModelConfModelProxyService",["EasyFormGenFormlyBindingModels","controllerModalProxy","$parse",function(e,o,t){function l(o){var l={},n=e.getEasyFormListControls(),i=t("controls");return angular.forEach(i(n),function(e){e.id===o.control&&(l=e)}),l}function n(e,o){for(var t=!0,l=o.lines.length-1;l>=0;l--)for(var n=o.lines[l].columns.length-1;n>=0;n--)"undefined"!=typeof o.lines[l].columns[n].control&&o.lines[l].columns[n].control.key===e&&(t=!1);return t}function i(e,o){var t=e+"-"+Date.now();return n(t,o)===!0?t:(t=e+"-"+Date.now(),n(t,o)===!0?t:t=e+"-"+Date.now())}function r(e,o,t){angular.forEach(t.lines,function(t,l){l===o&&(t.line=e)})}function a(e,o,l){t("control.selectedControl").assign(o,t("selectedControl")(e)),t("control.type").assign(o,t("formlyType")(e)),t("control.key").assign(o,i(t("control.type")(o),l)),t("control.subtype").assign(o,t("formlySubtype")(e)),t("control.templateOptions.label").assign(o,t("formlyLabel")(e)),t("control.templateOptions.required").assign(o,t("formlyRequired")(e)),t("control.templateOptions.description").assign(o,t("formlyDesciption")(e)),t("control.templateOptions.placeholder").assign(o,t("formlyPlaceholder")(e)),t("control.templateOptions.options").assign(o,t("formlyOptions")(e)),"datepicker"===t("control.type")(o)&&t("control.templateOptions.datepickerPopup").assign(o,t("datepickerPopup")(e))}var s={};return s.refreshAllConfigurationFromDragAndDropModel=function(o,t){angular.copy(o);return o.lines=[],angular.forEach(t[1],function(t,n){o.lines.push(angular.copy(e.getEasyFormEmptyConfigurationLineModel())),r(n+1,n,o),angular.forEach(t,function(i,r){var s={control:angular.copy(e.getFormlyControlTemplateForNcolumnLine(t.length,l(t[r]).formlyType))},d=l(t[r]);if("undefined"!=typeof i.key){console.warn("debug dragdropModel show this control key : "+i.key),s.control=angular.copy(i.configModelControl);var c=e.getFormlyControlTemplateForNcolumnLine(t.length,l(t[r]).formlyType);s.control.className=c.className,s.control.cssClass=c.className}else a(d,s,o);"undefined"==typeof o.lines[n].columns[r]&&o.lines[n].columns.push(angular.copy(e.getEasyFormConfigurationEmptyControlModel())),o.lines[n].columns[r].control=angular.copy(s.control),o.lines[n].columns[r].numColumn=r+1,o.lines[n].columns[r].exist=!0})}),o},s.refreshControlsKeys=function(e,o){angular.forEach(e.lines,function(e,t){angular.forEach(e.columns,function(e,l){"undefined"!=typeof o[1][t]&&o[1][t].length>0&&(o[1][t][l].key=e.control.key,o[1][t][l].configModelControl=angular.copy(e.control))})}),console.info("refreshControlsKeys"),console.dir({when:"starting","configModel is ":angular.copy(e),"dragDropModel is ":angular.copy(o)})},s}]),angular.module("edaApp.services.edaEditCtrlControllerModalProxy",[]).factory("controllerModalProxy",["EasyFormGenFormlyBindingModels",function(e){function o(o){var t=e.getEasyFormListControls();return angular.copy(t,o),!0}function t(){var o=e.getEasyFormListControls();return r.proxyModel=angular.copy(o),!0}function l(e){for(var o={selectedControl:"none",formlyType:"none",formlySubtype:"none",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyPlaceholder:"",formlyOptions:[]},t=e.controls.length-1;t>=0;t--)e.selectedControl===e.controls[t].id&&(o.selectedControl=e.selectedControl,o.formlyType=e.controls[t].formlyType,o.formlySubtype=e.controls[t].formlySubtype,o.formlyLabel=e.controls[t].formlyLabel,o.formlyRequired=e.controls[t].formlyRequired,o.formlyDesciption=e.controls[t].formlyDesciption,o.formlyPlaceholder=e.controls[t].formlyPlaceholder,o.formlyOptions=e.controls[t].formlyOptions,"datepicker"===e.controls[t].formlyType&&(o.datepickerPopup=e.controls[t].datepickerPopup));return o}function n(e,o){for(var t=!0,l=o.lines.length-1;l>=0;l--)for(var n=o.lines[l].columns.length-1;n>=0;n--)o.lines[l].columns[n].control.key===e&&(t=!1);return t}function i(o){var t="none",l=angular.copy(e.getEasyFormListControls().controls);return l.forEach(function(e){return e.formlyType===o.type&&e.formlySubtype===o.subtype?t=e.id:void 0}),t}var r={};r.ProxyModel={},t(),r.initNyaSelect=function(e){return o(e)},r.getNyASelectFromSelectedLineColumn=function(e,t,l,n){return o(e),"undefined"!=typeof t.lines[l].columns[n].control.templateOptions&&(e.temporyConfig.selectedControl="undefined"!=typeof t.lines[l].columns[n].control.selectedControl?t.lines[l].columns[n].control.selectedControl:"none",e.temporyConfig.formlyLabel="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.label?t.lines[l].columns[n].control.templateOptions.label:"",e.temporyConfig.formlyRequired="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.required?t.lines[l].columns[n].control.templateOptions.required:"",e.temporyConfig.formlyDesciption="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.description?t.lines[l].columns[n].control.templateOptions.description:"",e.temporyConfig.formlyPlaceholder="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.placeholder?t.lines[l].columns[n].control.templateOptions.placeholder:"",e.temporyConfig.formlyOptions="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.options?t.lines[l].columns[n].control.templateOptions.options:"","Date"===e.temporyConfig.selectedControl&&(e.temporyConfig.datepickerPopup="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.datepickerPopup?t.lines[l].columns[n].control.templateOptions.datepickerPopup:"")),e},r.bindConfigurationModelFromModalReturn=function(e,o,t,i){var r=l(t);i.lines[e].columns[o].control.selectedControl=r.selectedControl,i.lines[e].columns[o].control.type=r.formlyType,i.lines[e].columns[o].control.subtype=r.formlySubtype,i.lines[e].columns[o].control.templateOptions={label:"",required:!1,description:"",placeholder:"",options:[]},i.lines[e].columns[o].control.templateOptions.label=r.formlyLabel,i.lines[e].columns[o].control.templateOptions.required=r.formlyRequired,i.lines[e].columns[o].control.templateOptions.description=r.formlyDesciption,i.lines[e].columns[o].control.templateOptions.placeholder=r.formlyPlaceholder,i.lines[e].columns[o].control.templateOptions.options=r.formlyOptions,"datepicker"===i.lines[e].columns[o].control.type&&(i.lines[e].columns[o].control.templateOptions.datepickerPopup=r.datepickerPopup);var a=i.lines[e].columns[o].control.type+"-"+Date.now();n(a,i)===!0?i.lines[e].columns[o].control.key=a:(a=i.lines[e].columns[o].control.type+"-"+Date.now(),n(a,i)===!0?i.lines[e].columns[o].control.key=a:a=i.lines[e].columns[o].control.type+"-"+Date.now()),i.lines[e].columns[o].control.edited=!0},r.applyConfigToSelectedControl=function(e){for(var o=e.controls.length-1;o>=0;o--)e.controls[o].id===e.selectedControl&&(e.controls[o].formlyLabel=e.temporyConfig.formlyLabel,e.controls[o].formlyRequired=e.temporyConfig.formlyRequired,e.controls[o].formlyDesciption=e.temporyConfig.formlyDesciption,e.controls[o].formlyPlaceholder=e.temporyConfig.formlyPlaceholder,e.controls[o].formlyOptions=e.temporyConfig.formlyOptions,"Date"===e.controls[o].id&&(e.controls[o].datepickerPopup=e.temporyConfig.datepickerPopup))},r.initProxyModel=function(e){return t(e)},r.bindConfigurationModelFromProxyModel=function(e,o,t){var l=angular.copy(r.proxyModel.temporyConfig);console.warn("debug edaEditCtrlControllerModalProxy"),console.dir(l),t.lines[e].columns[o].control.selectedControl=l.selectedControl,t.lines[e].columns[o].control.type=l.formlyType,t.lines[e].columns[o].control.subtype=l.formlySubtype,t.lines[e].columns[o].control.templateOptions={label:"",required:!1,description:"",placeholder:"",options:[]},t.lines[e].columns[o].control.templateOptions.label=l.formlyLabel,t.lines[e].columns[o].control.templateOptions.required=l.formlyRequired,t.lines[e].columns[o].control.templateOptions.description=l.formlyDesciption,t.lines[e].columns[o].control.templateOptions.placeholder=l.formlyPlaceholder,t.lines[e].columns[o].control.templateOptions.options=l.formlyOptions,"datepicker"===t.lines[e].columns[o].control.type&&(t.lines[e].columns[o].control.templateOptions.datepickerPopup=l.datepickerPopup);var i=t.lines[e].columns[o].control.type+"-"+Date.now();n(i,t)===!0?t.lines[e].columns[o].control.key=i:(i=t.lines[e].columns[o].control.type+"-"+Date.now(),n(i,t)===!0?t.lines[e].columns[o].control.key=i:i=t.lines[e].columns[o].control.type+"-"+Date.now()),t.lines[e].columns[o].control.edited=!0},r.setProxyModelFromConfigurationSelection=function(e,o,t){return"undefined"!=typeof e.lines[o].columns[t].control&&(r.proxyModel.selectedControl="undefined"!=typeof e.lines[o].columns[t].control.type?i(e.lines[o].columns[t].control):"none",r.proxyModel.temporyConfig.selectedControl="undefined"!=typeof e.lines[o].columns[t].control.type?i(e.lines[o].columns[t].control):"none",r.proxyModel.temporyConfig.formlyType="undefined"!=typeof e.lines[o].columns[t].control.type?e.lines[o].columns[t].control.type:"none",r.proxyModel.temporyConfig.formlySubtype="undefined"!=typeof e.lines[o].columns[t].control.subtype?e.lines[o].columns[t].control.subtype:"none",r.proxyModel.temporyConfig.formlyLabel="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.label?e.lines[o].columns[t].control.templateOptions.label:"",r.proxyModel.temporyConfig.formlyRequired="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.required?e.lines[o].columns[t].control.templateOptions.required:"",r.proxyModel.temporyConfig.formlyDesciption="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.description?e.lines[o].columns[t].control.templateOptions.description:"",r.proxyModel.temporyConfig.formlyPlaceholder="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.placeholder?e.lines[o].columns[t].control.templateOptions.placeholder:"",r.proxyModel.temporyConfig.formlyOptions="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.options?e.lines[o].columns[t].control.templateOptions.options:"","Date"===r.proxyModel.temporyConfig.selectedControl&&(r.proxyModel.temporyConfig.datepickerPopup="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.datepickerPopup?e.lines[o].columns[t].control.templateOptions.datepickerPopup:"")),r.proxyModel},r.getProxyModel=function(){return r.proxyModel};var a={toggle:!1,lineIndex:-1,columnIndex:-1,control:{}};r.getEditPanelModelAllModel=function(){return a},r.setEditPanelModelControl=function(e){var o=!1;return"undefined"!=typeof e&&(a=angular.copy(e),o=!0),o},r.getEditPanelModelColumnIndex=function(){return a.columnIndex},r.setEditPanelModelColumnIndex=function(e){var o=!1;return"undefined"!=typeof e&&(a.columnIndex=e,o=!0),o},r.getEditPanelModelLineIndex=function(){return a.lineIndex},r.setEditPanelModelLineIndex=function(e){var o=!1;return"undefined"!=typeof e&&(a.lineIndex=e,o=!0),o},r.getEditPanelModelControl=function(){return a.control},r.setEditPanelModelControl=function(e){var o=!1;return"undefined"!=typeof e&&(a.control=angular.copy(e),o=!0),o},r.getEditPanelModelToggle=function(){return a.toggle},r.setEditPanelModelToggle=function(e){var o=!1;return"undefined"!=typeof e&&(a.toggle=e,o=!0),o};var s={rows:[]};return r.basicSelectRowCollection=angular.copy(s),r.newOptionBasicSelect=angular.copy({saisie:""}),r.groupedSelectRowCollection=angular.copy(s),r.newOptionGroupedSelect=angular.copy({saisie:""}),r.GroupedSelectGroups=angular.copy({list:[]}),r.newGroupGroupedSelect=angular.copy({saisie:""}),r.groupSelectGroupClick=angular.copy({showList:!1}),r.radioRowCollection=angular.copy(s),r.newOptionRadio=angular.copy({saisie:""}),r.resetAllTemporyModels=function(){return r.basicSelectRowCollection=angular.copy(s),r.newOptionBasicSelect=angular.copy({saisie:""}),r.groupedSelectRowCollection=angular.copy(s),r.newOptionGroupedSelect=angular.copy({saisie:""}),r.GroupedSelectGroups=angular.copy({list:[]}),r.newGroupGroupedSelect=angular.copy({saisie:""}),r.groupSelectGroupClick=angular.copy({showList:!1}),r.radioRowCollection=angular.copy(s),r.newOptionRadio=angular.copy({saisie:""}),!0},r.bindSpecialCtrlTemporyModelsToProxyModel=function(){ "BasicSelect"===r.proxyModel.selectedControl&&r.bindBasicSelectToProxyModel(r.basicSelectRowCollection),"GroupedSelect"===r.proxyModel.selectedControl&&r.bindGroupedSelectToProxyModel(r.groupedSelectRowCollection),"Radio"===r.proxyModel.selectedControl&&r.bindRadioToProxyModel(r.radioRowCollection)},r.bindBasicSelectFromProxyModel=function(e){if(r.proxyModel.temporyConfig.formlyOptions.length>0)for(var o=0;o<=r.proxyModel.temporyConfig.formlyOptions.length-1;o++){var t={option:r.proxyModel.temporyConfig.formlyOptions[o].name,order:o,group:""};e.rows.push(t)}},r.bindBasicSelectToProxyModel=function(e){var o=[];if(r.proxyModel.temporyConfig.formlyOptions=o,e.rows.length>0)for(var t=0;t<=e.rows.length-1;t++){var l={name:e.rows[t].option,value:t,group:""};r.proxyModel.temporyConfig.formlyOptions.push(l)}},r.bindGroupedSelectFromProxyModel=function(e,o){if(r.proxyModel.temporyConfig.formlyOptions.length>0){for(var t=0;t<=r.proxyModel.temporyConfig.formlyOptions.length-1;t++){var l={option:r.proxyModel.temporyConfig.formlyOptions[t].name,order:t,group:r.proxyModel.temporyConfig.formlyOptions[t].group};e.rows.push(l)}var n=_.uniq(_.pluck(e.rows,"group"));angular.copy(n,o.list)}},r.bindGroupedSelectToProxyModel=function(e){r.proxyModel.temporyConfig.formlyOptions=[];for(var o=0;o<=e.rows.length-1;o++){var t={name:e.rows[o].option,value:o,group:e.rows[o].group};r.proxyModel.temporyConfig.formlyOptions.push(t)}},r.bindRadioFromProxyModel=function(e){if(r.proxyModel.temporyConfig.formlyOptions.length>0)for(var o=0;o<=r.proxyModel.temporyConfig.formlyOptions.length-1;o++){var t={option:r.proxyModel.temporyConfig.formlyOptions[o].name,order:o,group:""};e.rows.push(t)}},r.bindRadioToProxyModel=function(e){var o=[];if(r.proxyModel.temporyConfig.formlyOptions=o,e.rows.length>0)for(var t=0;t<=e.rows.length-1;t++){var l={name:e.rows[t].option,value:t,group:""};r.proxyModel.temporyConfig.formlyOptions.push(l)}},r}]),angular.module("edaApp.services.formFieldManage",[]).factory("formFieldManage",["EasyFormGenFormlyBindingModels",function(e){function o(e){var o=[];angular.copy(o,e)}function t(o,t,l){var n=t.lines[l].columns.length,i=o.push({className:"row",fieldGroup:[]})-1;t.lines[l].columns.forEach(function(t,l){var r={};if("undefined"!=typeof r&&"none"!==t.control.type){if("header"===t.control.type||"subTitle"===t.control.type){var a=t.control.templateOptions.description;r.template=e.getHeaderTemplateForNcolumnLine(n,a).template,r.className=e.getRawHeaderTemplates().selectedClass}else r=e.getFormlyControlTemplateForNcolumnLine(n,t.control.type),r.className=t.control.className,r.type=t.control.type,r.key=t.control.key,r.templateOptions.type=t.control.templateOptions.type,r.templateOptions.label=t.control.templateOptions.label,r.templateOptions.required=t.control.templateOptions.required,r.templateOptions.placeholder=t.control.templateOptions.placeholder,r.templateOptions.description=t.control.templateOptions.description,r.templateOptions.options=[].concat(t.control.templateOptions.options),"undefined"!=typeof r.templateOptions.datepickerPopup&&(t.control.templateOptions.datepickerPopup=r.templateOptions.datepickerPopup);o[i].fieldGroup.push(r)}})}function l(e){var o={};return angular.copy(o,e),!0}function n(e,o){var t={noError:!1,title:"",Message:""};return t.noError=!1,t.title=e,t.Message=o,t}function i(e,o){var t={noError:!1,title:"",Message:""};return t.noError=!0,t.title=e,t.Message=o,t}var r={};return r.initConfigurationEditFromScratch=function(o,t){var l=e.getEasyFormInitialStateConfigurationModel(t);angular.copy(l,o)},r.bindConfigurationLines=function(o,t,l){if("[object Array]"===Object.prototype.toString.call(t)){var r=e.getEasyFormReloadConfigurationModel(l);return r.lines=[].concat(t),angular.copy(r,o),i("configuration model is bound","lines are bound to configuration model.")}return n("lines is not an array","Checks lines type, it is not an array.")},r.applyConfigurationToformlyModel=function(e,n,i){o(n),l(i);for(var r=e.lines.length,a=0;r>a;a++)t(n,e,a)},r}]),angular.module("edaApp.services.formsByIdService",["ngResource"]).factory("formsByIdService",["$resource",function(e){return e("/api/formGen/:id",{id:"@id"},{})}]),angular.module("edaApp.services.selectOptionManage",[]).factory("selectOptionManage",[function(){function e(e,o){var t={resultFlag:!1,details:""};if("undefined"==typeof o)return t.resultFlag=!1,t.details="Entered option is empty",t;if(""!==o){for(var l=e.rows.length-1;l>=0;l--)if(e.rows[l].option===o)return t.resultFlag=!1,t.details="Entered option is not unique",t;return t.resultFlag=!0,t.details="",t}return t.resultFlag=!1,t.details="Entered option is empty",t}function o(e){var o={rows:[]};angular.copy(o,e)}return{testMe:function(){return"selectOptionManage is here."},initModel:function(e){o(e)},isOptionUnique:function(e,o){for(var t=e.rows.length-1;t>=0;t--)if(e.rows[t].option===o)return!1;return!0},isOptionValidFormat:function(e){return""!==e?!0:!1},addNewOptionRadio:function(o,t){var l={resultFlag:!1,details:""},n=e(o,t);if(n.resultFlag===!0){var i={option:t,order:o.rows.length};return o.rows.push(i),l.resultFlag=!0,l.details="",l}return angular.copy(n,l),l},addNewOptionBasicSelect:function(o,t){var l={resultFlag:!1,details:""},n=e(o,t);if(n.resultFlag===!0){var i={option:t,order:o.rows.length};return o.rows.push(i),l.resultFlag=!0,l.details="",l}return angular.copy(n,l),l},addNewOptionGroupedSelect:function(o,t,l){var n={resultFlag:!1,details:""},i=e(o,t);if(i.resultFlag===!0){var r={option:t,group:l,order:o.rows.length};return o.rows.push(r),n.resultFlag=!0,n.details="",n}return angular.copy(i,n),n},removeOption:function(e,o){var t={resultFlag:!1,details:""};return-1!==o?(e.rows.splice(o,1),t.resultFlag=!0,t.details="",t):(t.resultFlag=!1,t.details="Option index not valid",t)},upthisOption:function(e,o){var t={resultFlag:!1,details:""};if(o>-1){if(o>0){if(e.rows[o-1]){var l=e.rows[o];return e.rows.splice(o,1),e.rows.splice(o-1,0,l),t.resultFlag=!0,t.details="",t}return t.resultFlag=!1,t.details="Can't retreive option from option index",t}return t.resultFlag=!0,t.details="",t}return t.resultFlag=!1,t.details="Option index not valid",t},downthisOption:function(e,o){var t={resultFlag:!1,details:""};if(o>-1){if(o'}),e.setType({name:"blank",template:"
"});var l='

{{options.templateOptions.placeholder}}


';e.setType({name:"subTitle",template:l});var t='
  1. {{option.name}}
';e.setType({name:"basicSelect",template:t});var n='
  1. {{$group}} {{option.name}}
';e.setType({name:"groupedSelect",template:n});var i=["date-disabled","custom-class","show-weeks","starting-day","init-date","min-mode","max-mode","format-day","format-month","format-year","format-day-header","format-day-title","format-month-title","year-range","shortcut-propagation","datepicker-popup","show-button-bar","current-text","clear-text","close-text","close-on-date-selection","datepicker-append-to-body"],s=["datepicker-mode","min-date","max-date"],a={};angular.forEach(i,function(e){a[o(e)]={attribute:e}}),angular.forEach(s,function(e){a[o(e)]={bound:e}}),e.setType({name:"datepicker",template:'',wrapper:["bootstrapLabel","bootstrapHasError"],controller:["$scope",function(e){e.open=function(o){o.preventDefault(),o.stopPropagation(),e.opened=!0}}],defaultOptions:{ngModelAttrs:a,templateOptions:{addonLeft:{"class":"glyphicon glyphicon-calendar",onClick:function(e,o){e.templateOptions.isOpen=!e.templateOptions.isOpen}},onFocus:function(e,o,l){l.to.isOpen=!l.to.isOpen},datepickerOptions:{}}}}),e.setWrapper([{template:['
"," ",'
','
','
'," {{message(options.formControl.$viewValue, options.formControl.$modelValue, this)}}","
","
","
"].join(" ")}])}angular.module("eda.easyformGen.stepway",["ngwfApp"]),angular.module("ngwfApp",["ngwfApp.core","ngwfApp.controllers","ngwfApp.services","ngwfApp.filters","ngwfApp.directives"]).value("easyFormGenVersion","v1.0.15").config(e),e.$inject=["formlyConfigProvider"]}(),angular.module("ngwfApp").run(["$templateCache",function(e){e.put("edaStepWayEasyFormGeneratorTemplate.html",'

lines

layout

controls

save

Command

Add a new line : 

Visual

Command

– Selected line –

number of columns :

{{configuration.lines[configuration.activeLine -1].columns.length}}

Visual

Command

– Apply controls to columns –


  Click / Tap on column to open control selection.

  Select desired control and valid to apply it to column.

Visual

 Command



 Final Step : form preview

DATA MODEL

\n										{{vm.model | json}}\n									

FIELDS MODEL (ready to save to database one)

\n										{{vm.wfFormFieldsOnlyNeededProperties | json}}\n									

Easy form generator : {{easyFormGeneratorVERSION}} — Erwan DATIN (MacKentoch)
'),e.put("editModalTemplate.html",''); +!function(){"use strict";!function(){function e(e){function o(e){return e=e.replace(/[\-_\s]+(.)?/g,function(e,o){return o?o.toUpperCase():""}),e.replace(/^([A-Z])/,function(e,o){return o?o.toLowerCase():""})}e.setType({name:"richEditor",template:''}),e.setType({name:"blank",template:"
"});var l='

{{options.templateOptions.placeholder}}


';e.setType({name:"subTitle",template:l});var t='
  1. {{option.name}}
';e.setType({name:"basicSelect",template:t});var n='
  1. {{$group}} {{option.name}}
';e.setType({name:"groupedSelect",template:n});var i=["date-disabled","custom-class","show-weeks","starting-day","init-date","min-mode","max-mode","format-day","format-month","format-year","format-day-header","format-day-title","format-month-title","year-range","shortcut-propagation","datepicker-popup","show-button-bar","current-text","clear-text","close-text","close-on-date-selection","datepicker-append-to-body"],s=["datepicker-mode","min-date","max-date"],a={};angular.forEach(i,function(e){a[o(e)]={attribute:e}}),angular.forEach(s,function(e){a[o(e)]={bound:e}}),e.setType({name:"datepicker",template:'',wrapper:["bootstrapLabel","bootstrapHasError"],controller:["$scope",function(e){e.open=function(o){o.preventDefault(),o.stopPropagation(),e.opened=!0}}],defaultOptions:{ngModelAttrs:a,templateOptions:{addonLeft:{"class":"glyphicon glyphicon-calendar",onClick:function(e,o){e.templateOptions.isOpen=!e.templateOptions.isOpen}},onFocus:function(e,o,l){l.to.isOpen=!l.to.isOpen},datepickerOptions:{}}}}),e.setWrapper([{template:['
"," ",'
','
','
'," {{message(options.formControl.$viewValue, options.formControl.$modelValue, this)}}","
","
","
"].join(" ")}])}angular.module("eda.easyformGen.stepway",["ngwfApp"]),angular.module("ngwfApp",["ngwfApp.core","ngwfApp.controllers","ngwfApp.services","ngwfApp.filters","ngwfApp.directives"]).value("easyFormGenVersion","v1.0.16").config(e),e.$inject=["formlyConfigProvider"]}(),angular.module("ngwfApp").run(["$templateCache",function(e){e.put("edaStepWayEasyFormGeneratorTemplate.html",'

lines

layout

controls

save

Command

Add a new line : 

Visual

Command

– Selected line –

number of columns :

{{configuration.lines[configuration.activeLine -1].columns.length}}

Visual

Command

– Apply controls to columns –


  Click / Tap on column to open control selection.

  Select desired control and valid to apply it to column.

Visual

 Command



 Final Step : form preview

DATA MODEL

\n										{{vm.model | json}}\n									

FIELDS MODEL (ready to save to database one)

\n										{{vm.wfFormFieldsOnlyNeededProperties | json}}\n									

Easy form generator : {{easyFormGeneratorVERSION}} — Erwan DATIN (MacKentoch)
'),e.put("editModalTemplate.html",''); }]),function(){angular.module("ngwfApp.core",["textAngular","textAngularSetup","ngAnimate","toaster","formly","formlyBootstrap","ui.bootstrap","nya.bootstrap.select"])}(),function(){angular.module("ngwfApp.controllers",["ngwfApp.controllers.ngwfMainController","ngwfApp.controllers.ngwfWfEditController","ngwfApp.controllers.ngwfWfEditMODALController"])}(),function(){function e(e,o){e.FormNameAsTest="initial_name",o(function(){e.FormNameAsTest="name changed after 3s"},3e3)}angular.module("ngwfApp.controllers.ngwfMainController",[]).controller("ngwfMainController",e),e.$inject=["$scope","$timeout"]}(),function(){function e(e,o,l,t,n,i,s,a,r,c,d){function p(){return{showDebug:!1,configurationModelNumberofLines:1}}function u(){return{editTab:{active:!0},previewTab:{active:!1}}}function m(o){var l=JSON.parse(o.formlyField);e.configurationLoaded={},c.bindConfigurationLines(e.configurationLoaded,l),c.applyConfigurationToformlyModel(e.configurationLoaded,e.previewLoadedForm.fieldsModel,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.previewLoadedForm.cancelButtonText=o.cancelButtonText,e.previewLoadedForm.submitButtonText=o.submitButtonText}function f(){i.pop({type:"info",timeout:2e3,title:"should save data model if it were not a static example",body:"data :"+t("json")(e.vm.model,4),showCloseButton:!0})}function v(){return{numColumn:-1,exist:!0,control:{type:"none",key:"none",subtype:"none"}}}function g(){return{line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}}function y(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()}function b(){return e.debug.configurationModelNumberofLines=e.configuration.lines.length,e.configuration.lines.length}function h(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)}function w(o){if(o>-1&&e.configuration.lines[o-1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function x(o){if(o>-1&&e.configuration.lines[o+1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function C(){e.configuration.lines.push({line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function S(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):s(function(){i.pop({type:"warning",title:"Last line",body:"Can't delete the last line",showCloseButton:!0})},100),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))}function T(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function L(){e.configuration.configStepCounter=0}function k(){var o=e.configuration.listConfigStep.length-1;e.configuration.configStepCounter!==o&&e.configuration.configStepCounter++,N(e.configuration.configStepCounter)}function O(){0!==e.configuration.configStepCounter&&e.configuration.configStepCounter--,N(e.configuration.configStepCounter)}function R(o){return o=0;o--)e.configuration.stepIndicators[o]=!1}function N(o){D(),e.configuration.stepIndicators[o]=!0}e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.vm.onSubmit=f,e.easyFormGeneratorVERSION=l,e.debug=p(),e.tab=u(),e.configuration={},e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.columnTemplate=v(),e.lineTemplate=g(),e.resetToZeroModel=y,e.countConfigurationModelLines=b,e.setActiveLineNumber=h,e.upThisLine=w,e.downThisLine=x,e.addNewline=C,e.removeThisLine=S,e.increaseNumberOfColumns=T,e.decreaseNumberOfColumns=F,e.resetStepCounter=L,e.nextConfigStep=k,e.previousConfigStep=O,e.stepReachable=R,e.toggleAnimation=E,e.nyaSelect={},e.animationsEnabled=!0,e.showModalAddCtrlToColumn=P,e.loadExistingFormsList=q(),e.formlyList={},e.previewLoadedForm={fieldsModel:[]},e.configurationLoaded={},e.previewExistingform=m,e.saveThisForm=M,q(),c.initConfigurationEditFromScratch(e.configuration),d.initNyaSelect(e.nyaSelect)}angular.module("ngwfApp.controllers.ngwfWfEditController",[]).controller("ngwfWfEditController",e),e.$inject=["$scope","$templateCache","easyFormGenVersion","$filter","$anchorScroll","toaster","$timeout","$modal","$log","formFieldManage","controllerModalProxy"]}(),function(){function e(e,o,l,t,n,i,s){function a(){var o=i.addNewOptionRadio(e.radioRowCollection,e.newOptionRadio.saisie);o.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionRadio.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionRadio={saisie:""}}function r(o){var l=i.removeOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Delete was cancelled.",showCloseButton:!0})}function c(o){var l=i.upthisOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function d(o){var l=i.downthisOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function p(){var o=i.addNewOptionBasicSelect(e.basicSelectRowCollection,e.newOptionBasicSelect.saisie);o.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionBasicSelect.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionBasicSelect={saisie:""}}function u(o){var l=i.removeOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Delete was cancelled.",showCloseButton:!0})}function m(o){var l=i.upthisOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function f(o){var l=i.downthisOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function v(){e.groupSelectGroupClick.showList=!e.groupSelectGroupClick.showList}function g(){if(""!==e.newGroupGroupedSelect.saisie){for(var o=e.GroupedSelectGroups.list.length-1;o>=0;o--)e.GroupedSelectGroups.list[o]===e.newGroupGroupedSelect.saisie&&t.pop({type:"warning",timeout:2e3,title:"Group already exists",body:"No group added.",showCloseButton:!0});e.GroupedSelectGroups.list.push(e.newGroupGroupedSelect.saisie)}else t.pop({type:"warning",timeout:2e3,title:"Not a valid group to add",body:"No group added.",showCloseButton:!0});e.newGroupGroupedSelect.saisie=""}function y(){var o=i.addNewOptionGroupedSelect(e.groupedSelectRowCollection,e.newOptionGroupedSelect.saisie,"");o.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionGroupedSelect.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionGroupedSelect={saisie:""}}function b(o){var l=i.removeOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Delete was cancelled.",showCloseButton:!0})}function h(o){var l=i.upthisOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function w(o){var l=i.downthisOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function x(){e.demodt.dt=new Date}function C(){e.demodt.dt=null}function S(o){o.preventDefault(),o.stopPropagation(),e.demodt.opened=!0}function T(){return{formatYear:"yy",startingDay:1,showWeeks:!0,initDate:null}}function F(o){e.nyaSelect.selectedControl="none",$();for(var l=e.nyaSelect.controls.length-1;l>=0;l--)e.nyaSelect.controls[l].id===o&&(e.nyaSelect.selectedControl=e.nyaSelect.controls[l].id);"Date"===e.nyaSelect.selectedControl&&D()}function L(){"BasicSelect"===e.nyaSelect.selectedControl&&E(),"GroupedSelect"===e.nyaSelect.selectedControl&&M(),"Radio"===e.nyaSelect.selectedControl&&R(),s.applyConfigToSelectedControl(e.nyaSelect),o.close(e.nyaSelect)}function k(){o.dismiss("cancel")}function O(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:""};e.radioRowCollection.rows.push(l)}}function R(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.radioRowCollection.rows.length>0)for(var l=0;l<=e.radioRowCollection.rows.length-1;l++){var t={name:e.radioRowCollection.rows[l].option,value:l,group:""};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function P(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:""};e.basicSelectRowCollection.rows.push(l)}}function E(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.basicSelectRowCollection.rows.length>0)for(var l=0;l<=e.basicSelectRowCollection.rows.length-1;l++){var t={name:e.basicSelectRowCollection.rows[l].option,value:l,group:""};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function q(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0){for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:e.nyaSelect.temporyConfig.formlyOptions[o].group};e.groupedSelectRowCollection.rows.push(l)}var t=_.uniq(_.pluck(e.groupedSelectRowCollection.rows,"group"));angular.copy(t,e.GroupedSelectGroups.list)}}function M(){e.nyaSelect.temporyConfig.formlyOptions=[];for(var o=0;o<=e.groupedSelectRowCollection.rows.length-1;o++){var l={name:e.groupedSelectRowCollection.rows[o].option,value:o,group:e.groupedSelectRowCollection.rows[o].group};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function D(){e.nyaSelect.temporyConfig.datepickerPopup=e.demodt.formats[0]}function N(){if("none"!==l.selectedControl){for(var o=e.nyaSelect.controls.length-1;o>=0;o--)e.nyaSelect.controls[o].id===l.selectedControl&&(e.modelNyaSelect=l.controls[o]);"BasicSelect"===e.nyaSelect.selectedControl&&P(),"GroupedSelect"===e.nyaSelect.selectedControl&&q(),"Radio"===e.nyaSelect.selectedControl&&O()}}function $(){e.nyaSelect.temporyConfig={formlyLabel:"",formlyRequired:!1,formlyPlaceholder:"",formlyDesciption:"",formlyOptions:[]}}var A={rows:[]};e.radioRowCollection=A,e.newOptionRadio={saisie:""},e.addNewOptionRadio=a,e.removeRadioRow=r,e.upThisRadioRow=c,e.downThisRadioRow=d,e.basicSelectRowCollection=A,e.newOptionBasicSelect={saisie:""},e.addNewOptionBasicSelect=p,e.removeRow=u,e.upThisRow=m,e.downThisRow=f,e.groupedSelectRowCollection=A,e.newOptionGroupedSelect={saisie:""},e.GroupedSelectGroups={list:[]},e.newGroupGroupedSelect={saisie:""},e.groupSelectGroupClick={showList:!1},e.showGroupListToChoose=v,e.addNewGroupToGroupedSelect=g,e.addNewOptionGroupedSelect=y,e.removeGroupedSelectRow=b,e.upThisGroupedSelectRow=h,e.downThisGroupedSelectRow=w,e.demodt={},e.today=x,e.clear=C,e.open=S,e.dateOptions=T(),e.demodt.formats=["dd-MMMM-yyyy","yyyy/MM/dd","dd.MM.yyyy","shortDate"],e.nyaSelect=l,e.nyaSelect.selectedControl=e.nyaSelect.temporyConfig.selectedControl,e.selectThisControl=F,e.ok=L,e.cancel=k,x(),N()}angular.module("ngwfApp.controllers.ngwfWfEditMODALController",[]).controller("ngwfWfEditMODALController",e),e.$inject=["$scope","$modalInstance","nyaSelect","toaster","$timeout","selectOptionManage","controllerModalProxy"]}(),function(){function e(e,o,l,t){function n(e,o,n){function i(){var o=angular.isArray(e.edaEasyFormGeneratorModel.edaFieldsModel)&&e.edaEasyFormGeneratorModel.edaFieldsModel.length>0?e.edaEasyFormGeneratorModel.edaFieldsModel:s();return o}function s(){var e=[{line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}];return e}function a(){var o=angular.isArray(e.edaEasyFormGeneratorModel.dataModel)&&e.edaEasyFormGeneratorModel.dataModel.length>0?e.edaEasyFormGeneratorModel.dataModel:[];return o}function r(){return e.edaEasyFormGeneratorModel}function c(e,o){u()}function d(){return e.returnSaveEvent}function p(o,l){if(o===!0){var t={formName:e.configuration.formName,btnSubmitText:e.configuration.submitButtonText,btnCancelText:e.configuration.cancelButtonText,edaFieldsModel:e.configuration.lines,edaFieldsModelStringified:angular.toJson(e.configuration.lines),formlyFieldsModel:e.vm.wfFormFieldsOnlyNeededProperties,dataModel:e.vm.model};e.edaSaveFormEvent({edaEasyFormGeneratorModel:t}),e.returnSaveEvent=!1}}function u(){if(angular.isDefined(e.edaEasyFormGeneratorModel)){var o=i();e.configurationLoaded={},l.bindConfigurationLines(e.configurationLoaded,o),t.refreshControlFormlyExpressionProperties(e.configurationLoaded),t.refreshControlFormlyValidators(e.configurationLoaded),t.refreshControlFormlyValidation(e.configurationLoaded),e.configuration=angular.copy(e.configurationLoaded),l.applyConfigurationToformlyModel(e.configurationLoaded,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.vm.model=a,e.configuration.formName=angular.isString(e.edaEasyFormGeneratorModel.formName)?e.edaEasyFormGeneratorModel.formName:"",e.configuration.submitButtonText=angular.isString(e.edaEasyFormGeneratorModel.btnSubmitText)?e.edaEasyFormGeneratorModel.btnSubmitText:"Submit",e.configuration.cancelButtonText=angular.isString(e.edaEasyFormGeneratorModel.btnCancelText)?e.edaEasyFormGeneratorModel.btnCancelText:"Cancel"}}e.$watch(r,c,!0),e.$watch(d,p)}function i(e,o,l,t,n,i,s,a,r,c,d){function p(){return{showDebug:!1,configurationModelNumberofLines:1}}function u(){return{editTab:{active:!0},previewTab:{active:!1}}}function m(o){var l=JSON.parse(o.formlyField);e.configurationLoaded={},c.bindConfigurationLines(e.configurationLoaded,l),c.applyConfigurationToformlyModel(e.configurationLoaded,e.previewLoadedForm.fieldsModel,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.previewLoadedForm.cancelButtonText=o.cancelButtonText,e.previewLoadedForm.submitButtonText=o.submitButtonText}function f(){i.pop({type:"info",timeout:2e3,title:"should save data model if it were not a static example",body:"data :"+t("json")(e.vm.model,4),showCloseButton:!0})}function v(){return{numColumn:-1,exist:!0,control:{type:"none",key:"none",subtype:"none"}}}function g(){return{line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}}function y(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()}function b(){return e.debug.configurationModelNumberofLines=e.configuration.lines.length,e.configuration.lines.length}function h(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)}function w(o){if(o>-1&&e.configuration.lines[o-1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function x(o){if(o>-1&&e.configuration.lines[o+1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function C(){e.configuration.lines.push({line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function S(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):s(function(){i.pop({type:"warning",title:"Last line",body:"Can't delete the last line",showCloseButton:!0})},100),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))}function T(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function L(){e.configuration.configStepCounter=0}function k(){var o=e.configuration.listConfigStep.length-1;e.configuration.configStepCounter!==o&&e.configuration.configStepCounter++,D(e.configuration.configStepCounter)}function O(){0!==e.configuration.configStepCounter&&e.configuration.configStepCounter--,D(e.configuration.configStepCounter)}function R(o){return o=0;o--)e.configuration.stepIndicators[o]=!1}function D(o){M(),e.configuration.stepIndicators[o]=!0}e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.vm.onSubmit=f,e.easyFormGeneratorVERSION=l,e.debug=p(),e.tab=u(),e.configuration={},e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.columnTemplate=v(),e.lineTemplate=g(),e.resetToZeroModel=y,e.countConfigurationModelLines=b,e.setActiveLineNumber=h,e.upThisLine=w,e.downThisLine=x,e.addNewline=C,e.removeThisLine=S,e.increaseNumberOfColumns=T,e.decreaseNumberOfColumns=F,e.resetStepCounter=L,e.nextConfigStep=k,e.previousConfigStep=O,e.stepReachable=R,e.toggleAnimation=E,e.nyaSelect={},e.animationsEnabled=!0,e.showModalAddCtrlToColumn=P,e.formlyList={},e.previewLoadedForm={fieldsModel:[]},e.configurationLoaded={},e.previewExistingform=m,e.saveThisForm=q,e.returnSaveEvent=!1,c.initConfigurationEditFromScratch(e.configuration),d.initNyaSelect(e.nyaSelect)}i.$inject=["$scope","$templateCache","easyFormGenVersion","$filter","$anchorScroll","toaster","$timeout","$modal","$log","formFieldManage","controllerModalProxy"];var s={restrict:"E",scope:{edaEasyFormGeneratorModel:"=",edaSaveFormEvent:"&edaSaveFormEvent"},controller:i,controllerAs:"vm",replace:!1,templateUrl:"edaStepWayEasyFormGeneratorTemplate.html",link:n};return s}angular.module("ngwfApp.directives.edaStepWayEasyFormGenDirective",[]).directive("edaStepWayEasyFormGen",e),e.$inject=["$templateCache","$timeout","formFieldManage","controllerModalProxy"]}(),function(){angular.module("ngwfApp.directives",["ngwfApp.directives.ngwfStRatioDirective","ngwfApp.directives.edaStepWayEasyFormGenDirective"])}(),function(){function e(){function e(e,o,l){var t=+l.stRatio;o.css("width",t+"%")}var o={link:e};return o}angular.module("ngwfApp.directives.ngwfStRatioDirective",[]).directive("stRatio",e),e.$inject=[]}(),function(){function e(){function e(e){return c(e)}function o(){var e={};return c(e),e}function l(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyExpressionProperties=o.formlyExpressionProperties)})})})}function t(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyValidators=o.formlyValidators)})})})}function n(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyValidation=o.formlyValidation)})})})}function i(e,o,l,t){return c(e),"undefined"!=typeof o.lines[l].columns[t].control.templateOptions&&(e.temporyConfig.selectedControl="undefined"!=typeof o.lines[l].columns[t].control.selectedControl?o.lines[l].columns[t].control.selectedControl:"none",e.temporyConfig.formlyLabel="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.label?o.lines[l].columns[t].control.templateOptions.label:"",e.temporyConfig.formlyRequired="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.required?o.lines[l].columns[t].control.templateOptions.required:"",e.temporyConfig.formlyDesciption="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.description?o.lines[l].columns[t].control.templateOptions.description:"",e.temporyConfig.formlyPlaceholder="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.placeholder?o.lines[l].columns[t].control.templateOptions.placeholder:"",e.temporyConfig.formlyOptions="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.options?o.lines[l].columns[t].control.templateOptions.options:"",e.temporyConfig.formlyExpressionProperties="undefined"!=typeof o.lines[l].columns[t].control.formlyExpressionProperties?angular.copy(o.lines[l].columns[t].control.formlyExpressionProperties):{},e.temporyConfig.formlyValidators="undefined"!=typeof o.lines[l].columns[t].control.formlyValidators?angular.copy(o.lines[l].columns[t].control.formlyValidators):{},e.temporyConfig.formlyValidation="undefined"!=typeof o.lines[l].columns[t].control.formlyValidation?angular.copy(o.lines[l].columns[t].control.formlyValidation):{},"Date"===e.temporyConfig.selectedControl&&(e.temporyConfig.datepickerPopup="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.datepickerPopup?o.lines[l].columns[t].control.templateOptions.datepickerPopup:"")),e}function s(e,o,l,t){var n=d(l);t.lines[e].columns[o].control.selectedControl=n.selectedControl,t.lines[e].columns[o].control.type=n.formlyType,t.lines[e].columns[o].control.subtype=n.formlySubtype,t.lines[e].columns[o].control.templateOptions={label:"",required:!1,description:"",placeholder:"",options:[]},t.lines[e].columns[o].control.templateOptions.label=n.formlyLabel,t.lines[e].columns[o].control.templateOptions.required=n.formlyRequired,t.lines[e].columns[o].control.templateOptions.description=n.formlyDesciption,t.lines[e].columns[o].control.templateOptions.placeholder=n.formlyPlaceholder,t.lines[e].columns[o].control.templateOptions.options=n.formlyOptions,t.lines[e].columns[o].control.formlyExpressionProperties=angular.copy(n.formlyExpressionProperties),t.lines[e].columns[o].control.formlyValidators=angular.copy(n.formlyValidators),t.lines[e].columns[o].control.formlyValidation=angular.copy(n.formlyValidation),"datepicker"===t.lines[e].columns[o].control.type&&(t.lines[e].columns[o].control.templateOptions.datepickerPopup=n.datepickerPopup);var i=t.lines[e].columns[o].control.type+"-"+Date.now();p(i,t)===!0?t.lines[e].columns[o].control.key=i:(i=t.lines[e].columns[o].control.type+"-"+Date.now(),p(i,t)===!0?t.lines[e].columns[o].control.key=i:i=t.lines[e].columns[o].control.type+"-"+Date.now()),t.lines[e].columns[o].control.edited=!0}function a(e){for(var o=e.controls.length-1;o>=0;o--)e.controls[o].id===e.selectedControl&&(e.controls[o].formlyLabel=e.temporyConfig.formlyLabel,e.controls[o].formlyRequired=e.temporyConfig.formlyRequired,e.controls[o].formlyDesciption=e.temporyConfig.formlyDesciption,e.controls[o].formlyPlaceholder=e.temporyConfig.formlyPlaceholder,e.controls[o].formlyOptions=e.temporyConfig.formlyOptions,"Date"===e.controls[o].id&&(e.controls[o].datepickerPopup=e.temporyConfig.datepickerPopup))}function r(){return{formlyLabel:"",formlyRequired:!1,formlyPlaceholder:"",formlyDesciption:"",formlyOptions:[]}}function c(e){var o={controls:[{id:"empty",name:"no control",subtitle:"no control",group:"Blank",formlyType:"blank",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:"Header",name:"Header",subtitle:"no control",group:"Decoration",formlyType:"header",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:"Subtitle",name:"Subtitle",subtitle:"no control",group:"Decoration",formlyType:"subTitle",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:"TextInput",name:"Text input",subtitle:"Text input",group:"input",formlyType:"input",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Text input field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"Password",name:"Password",subtitle:"Password",group:"input",formlyType:"input",formlySubtype:"password",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Password field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"Email",name:"Email",subtitle:"Email",group:"input",formlyType:"input",formlySubtype:"email",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{emailShape:{expression:function(e,o){var l=o||e;return/^[a-z]+[a-z0-9._]+@[a-z]+\.[a-z.]{2,5}$/.test(l)},message:"$viewValue + ' is not a valid email'"}},formlyValidation:{messages:{required:function(e,o,l){var t="this Email field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return l.to.required?n:void 0}}}},{id:"Date",name:"Date",subtitle:"Date",group:"input",formlyType:"datepicker",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],datepickerPopup:"dd-MMMM-yyyy",formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Date field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"Texarea",name:"Textarea",subtitle:"Textarea",group:"Textarea",formlyType:"textarea",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Textarea field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"RichTextEditor",name:"RichTextEditor",subtitle:"RichTextEditor",group:"Textarea",formlyType:"richEditor",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this RichTextEditor field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"Radio",name:"Radio",subtitle:"Radio",options:[],group:"Radio",formlyType:"radio",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Password field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"Checkbox",name:"Checkbox",subtitle:"Checkbox",group:"Checkbox",formlyType:"checkbox",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{ messages:{required:function(e,o,l){var t="this Checkbox field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"BasicSelect",name:"Basic select",subtitle:"Basic select",options:[],group:"Select",formlyType:"basicSelect",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Basic select field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"GroupedSelect",name:"Grouped Select",subtitle:"Grouped Select",options:[],group:"Select",formlyType:"groupedSelect",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Grouped Select field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}}],selectedControl:"none",temporyConfig:{selectedControl:"none",formlyLabel:"label",formlyRequired:!1,formlyDesciption:"",formlyPlaceholder:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}}};return angular.copy(o,e),!0}function d(e){for(var o={selectedControl:"none",formlyType:"none",formlySubtype:"none",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyPlaceholder:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},l=e.controls.length-1;l>=0;l--)e.selectedControl===e.controls[l].id&&(o.selectedControl=e.selectedControl,o.formlyType=e.controls[l].formlyType,o.formlySubtype=e.controls[l].formlySubtype,o.formlyLabel=e.controls[l].formlyLabel,o.formlyRequired=e.controls[l].formlyRequired,o.formlyDesciption=e.controls[l].formlyDesciption,o.formlyPlaceholder=e.controls[l].formlyPlaceholder,o.formlyOptions=e.controls[l].formlyOptions,o.formlyExpressionProperties=angular.copy(e.controls[l].formlyExpressionProperties),o.formlyValidators=angular.copy(e.controls[l].formlyValidators),o.formlyValidation=angular.copy(e.controls[l].formlyValidation),"datepicker"===e.controls[l].formlyType&&(o.datepickerPopup=e.controls[l].datepickerPopup));return o}function p(e,o){for(var l=!0,t=o.lines.length-1;t>=0;t--)for(var n=o.lines[t].columns.length-1;n>=0;n--)o.lines[t].columns[n].control.key===e&&(l=!1);return l}var u={initNyaSelect:e,getNyASelectFromSelectedLineColumn:i,bindConfigurationModelFromModalReturn:s,applyConfigToSelectedControl:a,resetTemporyConfig:r,getControlsDefinition:o,refreshControlFormlyExpressionProperties:l,refreshControlFormlyValidators:t,refreshControlFormlyValidation:n};return u}angular.module("ngwfApp.services.ngwfEditCtrlControllerModalProxy",[]).factory("controllerModalProxy",e),e.$inject=[]}(),function(){function e(){function e(e){var o={activeLine:1,listConfigStep:["init","first","second","third"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0,submitButtonText:"submit",cancelButtonText:"cancel",lines:[{line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}]};angular.copy(o,e)}function o(e,o){if("[object Array]"===Object.prototype.toString.call(o)){var l={activeLine:1,listConfigStep:["init","first","second","third"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0,submitButtonText:"submit",cancelButtonText:"cancel",lines:[]};return l.lines=[].concat(o),angular.copy(l,e),x("configuration model is bound","lines are bound to configuration model.")}return w("lines is not an array","Checks lines type, it is not an array.")}function l(e,o,l){t(o),h(l);for(var i=e.lines.length,c=0;i>c;c++)1===e.lines[c].columns.length&&("header"===e.lines[c].columns[0].control.type?n(o,e,c):s(o,e,c)),2===e.lines[c].columns.length&&a(o,e,c),3===e.lines[c].columns.length&&r(o,e,c)}function t(e){var o=[];angular.copy(o,e)}function n(e,o,l){var t='

'+b(o.lines[l].columns[0].control)+"


";e.push({template:"undefined"!=typeof o.lines[l].columns[0].control.type&&"header"===o.lines[l].columns[0].control.type?t:"
"})}function i(e,o,l){e.templateOptions.datepickerPopup=d(o.lines[l].columns[0].control)}function s(e,o,l){var t={className:"col-xs-12",type:"undefined"!=typeof o.lines[l].columns[0].control.type?"none"===o.lines[l].columns[0].control.type?"blank":o.lines[l].columns[0].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};"datepicker"===o.lines[l].columns[0].control.type&&i(t,o,l),e.push(t)}function a(e,o,l){var t={className:"col-xs-6",template:'

'+b(o.lines[l].columns[0].control)+"


"},n={className:"col-xs-6",template:'

'+b(o.lines[l].columns[1].control)+"


"},s={className:"col-xs-6",type:"undefined"!=typeof o.lines[l].columns[0].control.type?"none"===o.lines[l].columns[0].control.type?"blank":o.lines[l].columns[0].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};"datepicker"===o.lines[l].columns[0].control.type&&i(s,o,l);var a={className:"col-xs-6",type:"undefined"!=typeof o.lines[l].columns[1].control.type?"none"===o.lines[l].columns[1].control.type?"blank":o.lines[l].columns[1].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[1].control.key?o.lines[l].columns[1].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[1].control),label:c(o.lines[l].columns[1].control),required:f(o.lines[l].columns[1].control),placeholder:y(o.lines[l].columns[1].control),description:b(o.lines[l].columns[1].control),options:v(o.lines[l].columns[1].control)},expressionProperties:p(o.lines[l].columns[1].control),validators:u(o.lines[l].columns[1].control),validation:m(o.lines[l].columns[1].control)};"datepicker"===o.lines[l].columns[1].control.type&&i(a,o,l);var r=[];r.push("header"===o.lines[l].columns[0].control.type?t:s),r.push("header"===o.lines[l].columns[1].control.type?n:a),e.push({className:"row",fieldGroup:r})}function r(e,o,l){var t={className:"col-xs-4",template:'

'+b(o.lines[l].columns[0].control)+"


"},n={className:"col-xs-4",template:'

'+b(o.lines[l].columns[1].control)+"


"},s={className:"col-xs-4",template:'

'+b(o.lines[l].columns[2].control)+"


"},a={className:"col-xs-4",type:"undefined"!=typeof o.lines[l].columns[0].control.type?"none"===o.lines[l].columns[0].control.type?"blank":o.lines[l].columns[0].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};"datepicker"===o.lines[l].columns[0].control.type&&i(a,o,l);var r={className:"col-xs-4",type:"undefined"!=typeof o.lines[l].columns[1].control.type?"none"===o.lines[l].columns[1].control.type?"blank":o.lines[l].columns[1].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[1].control.key?o.lines[l].columns[1].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[1].control),label:c(o.lines[l].columns[1].control),required:f(o.lines[l].columns[1].control),placeholder:y(o.lines[l].columns[1].control),description:b(o.lines[l].columns[1].control),options:v(o.lines[l].columns[1].control)},expressionProperties:p(o.lines[l].columns[1].control),validators:u(o.lines[l].columns[1].control),validation:m(o.lines[l].columns[1].control)};"datepicker"===o.lines[l].columns[1].control.type&&i(r,o,l);var d={className:"col-xs-4",type:"undefined"!=typeof o.lines[l].columns[2].control.type?"none"===o.lines[l].columns[2].control.type?"blank":o.lines[l].columns[2].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[2].control.key?o.lines[l].columns[2].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[2].control),label:c(o.lines[l].columns[2].control),required:f(o.lines[l].columns[2].control),placeholder:y(o.lines[l].columns[2].control),description:b(o.lines[l].columns[2].control),options:v(o.lines[l].columns[2].control)},expressionProperties:p(o.lines[l].columns[2].control),validators:u(o.lines[l].columns[2].control),validation:m(o.lines[l].columns[2].control)};"datepicker"===o.lines[l].columns[2].control.type&&i(d,o,l);var h=[];h.push("header"===o.lines[l].columns[0].control.type?t:a),h.push("header"===o.lines[l].columns[1].control.type?n:r),h.push("header"===o.lines[l].columns[2].control.type?s:d),e.push({className:"row",fieldGroup:h})}function c(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.label?e.templateOptions.label:""}function d(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.datepickerPopup?e.templateOptions.datepickerPopup:""}function p(e){return"undefined"!=typeof e.formlyExpressionProperties?angular.copy(e.formlyExpressionProperties):{}}function u(e){return"undefined"!=typeof e.formlyValidators?angular.copy(e.formlyValidators):{}}function m(e){return"undefined"!=typeof e.formlyValidation?angular.copy(e.formlyValidation):{}}function f(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.required?e.templateOptions.required:""}function v(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.options?e.templateOptions.options:""}function g(e){return"undefined"!=typeof e.subtype?e.subtype:""}function y(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.placeholder?e.templateOptions.placeholder:""}function b(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.description?e.templateOptions.description:""}function h(e){var o={};return angular.copy(o,e),!0}function w(e,o){var l={noError:!1,title:"",Message:""};return l.noError=!1,l.title=e,l.Message=o,l}function x(e,o){var l={noError:!1,title:"",Message:""};return l.noError=!0,l.title=e,l.Message=o,l}var C={initConfigurationEditFromScratch:e,bindConfigurationLines:o,applyConfigurationToformlyModel:l};return C}angular.module("ngwfApp.services.formFieldManage",[]).factory("formFieldManage",e),e.$inject=[]}(),function(){function e(){function e(){return"selectOptionManage is here."}function o(e){p(e)}function l(e,o){for(var l=e.rows.length-1;l>=0;l--)if(e.rows[l].option===o)return!1;return!0}function t(e){return""!==e?!0:!1}function n(e,o){var l={resultFlag:!1,details:""},t=d(e,o);if(t.resultFlag===!0){var n={option:o,order:e.rows.length};return e.rows.push(n),l.resultFlag=!0,l.details="",l}return angular.copy(t,l),l}function i(e,o){var l={resultFlag:!1,details:""},t=d(e,o);if(t.resultFlag===!0){var n={option:o,order:e.rows.length};return e.rows.push(n),l.resultFlag=!0,l.details="",l}return angular.copy(t,l),l}function s(e,o,l){var t={resultFlag:!1,details:""},n=d(e,o);if(n.resultFlag===!0){var i={option:o,group:l,order:e.rows.length};return e.rows.push(i),t.resultFlag=!0,t.details="",t}return angular.copy(n,t),t}function a(e,o){var l={resultFlag:!1,details:""};return-1!==o?(e.rows.splice(o,1),l.resultFlag=!0,l.details="",l):(l.resultFlag=!1,l.details="Option index not valid",l)}function r(e,o){var l={resultFlag:!1,details:""};if(o>-1){if(o>0){if(e.rows[o-1]){var t=e.rows[o];return e.rows.splice(o,1),e.rows.splice(o-1,0,t),l.resultFlag=!0,l.details="",l}return l.resultFlag=!1,l.details="Can't retreive option from option index",l}return l.resultFlag=!0,l.details="",l}return l.resultFlag=!1,l.details="Option index not valid",l}function c(e,o){var l={resultFlag:!1,details:""};if(o>-1){if(o=0;t--)if(e.rows[t].option===o)return l.resultFlag=!1,l.details="Entered option is not unique",l;return l.resultFlag=!0,l.details="",l}return l.resultFlag=!1,l.details="Entered option is empty",l}function p(e){var o={rows:[]};angular.copy(o,e)}var u={testMe:e,initModel:o,isOptionUnique:l,isOptionValidFormat:t,addNewOptionRadio:n,addNewOptionBasicSelect:i,addNewOptionGroupedSelect:s,removeOption:a,upthisOption:r,downthisOption:c};return u}angular.module("ngwfApp.services.selectOptionManage",[]).factory("selectOptionManage",e),e.$inject=[]}(),function(){angular.module("ngwfApp.services",["ngwfApp.services.formFieldManage","ngwfApp.services.selectOptionManage","ngwfApp.services.ngwfEditCtrlControllerModalProxy"])}(),function(){angular.module("ngwfApp.filters",[])}()}(this); diff --git a/dist/public/css/eda.dragdropway.css b/dist/public/css/eda.dragdropway.css index faed16f7..bcad8322 100644 --- a/dist/public/css/eda.dragdropway.css +++ b/dist/public/css/eda.dragdropway.css @@ -1,6 +1,6 @@ /*! * easyFormGenerator — drag and drop way — version - * Version 1.0.15 + * Version 1.0.16 * Author : Erwan Datin (MacKentoch) *Link: https://github.com/MacKentoch/easyFormGenerator * License : 2015 MIT diff --git a/dist/public/css/eda.dragdropway.min.css b/dist/public/css/eda.dragdropway.min.css index da6edfac..92027950 100644 --- a/dist/public/css/eda.dragdropway.min.css +++ b/dist/public/css/eda.dragdropway.min.css @@ -1,6 +1,6 @@ /*! * easyFormGenerator — drag and drop way — version - * Version 1.0.15 + * Version 1.0.16 * Author : Erwan Datin (MacKentoch) *Link: https://github.com/MacKentoch/easyFormGenerator * License : 2015 MIT diff --git a/dist/public/css/eda.stepway.css b/dist/public/css/eda.stepway.css index 666f3c0d..1e61bf65 100755 --- a/dist/public/css/eda.stepway.css +++ b/dist/public/css/eda.stepway.css @@ -1,6 +1,6 @@ /*! * easyFormGenerator — step way — version - * Version 1.0.15 + * Version 1.0.16 * Author : Erwan Datin (MacKentoch) *Link: https://github.com/MacKentoch/easyFormGenerator * License : 2015 MIT diff --git a/dist/public/css/eda.stepway.min.css b/dist/public/css/eda.stepway.min.css index 5aa60903..bcc8c252 100755 --- a/dist/public/css/eda.stepway.min.css +++ b/dist/public/css/eda.stepway.min.css @@ -1,6 +1,6 @@ /*! * easyFormGenerator — step way — version - * Version 1.0.15 + * Version 1.0.16 * Author : Erwan Datin (MacKentoch) *Link: https://github.com/MacKentoch/easyFormGenerator * License : 2015 MIT diff --git a/dist/public/js/eda.dragdropway.js b/dist/public/js/eda.dragdropway.js index 15382c70..5e7ea992 100644 --- a/dist/public/js/eda.dragdropway.js +++ b/dist/public/js/eda.dragdropway.js @@ -1,6 +1,6 @@ /** *easyFormGenerator — drag and drop way — version - *Version 1.0.15 + *Version 1.0.16 *Author : Erwan Datin (MacKentoch) *Link: https://github.com/MacKentoch/easyFormGenerator *License : MIT (2015) @@ -46,7 +46,7 @@ angular 'pageslide-directive' ]) - .value('easyFormGenVersion', 'v1.0.15') + .value('easyFormGenVersion', 'v1.0.16') .run(runfct); diff --git a/dist/public/js/eda.dragdropway.min.js b/dist/public/js/eda.dragdropway.min.js index d42652f1..af802c42 100644 --- a/dist/public/js/eda.dragdropway.min.js +++ b/dist/public/js/eda.dragdropway.min.js @@ -1,4 +1,4 @@ -!function(){"use strict";function e(e){function o(){return['"].join("")}function t(){return['
','
','
','
','
  Edit :
',"
","
",'
','
','
Column will be blank
',"
","
","
",f,"
"].join("")}function l(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function n(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function i(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function r(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function a(){return['
','
','
','
','
  Edit properties :
',"
","
",'
',' ','
','
    ','
  1. '," {{dateformat}}","
  2. ","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function s(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function d(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function c(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no radio : add new radio values -
',"
",' '," "," ",' ',' ',' '," "," ",' ',' ",' '," "," "," ",' ',' ',' ',' "," "," ","
orderoption
',' ',"
{{$index}}{{radioRow.option}}','
',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function p(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function u(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no option : add new options -
',"
",' '," "," ",' ',' ',' '," "," ",' ',' ",' '," "," "," ",' ',' ',' ',' "," "," ","
orderoption
',' ',"
{{$index}}{{basicSelectRow.option}}','
',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function m(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no option : add new options -
',"
",' '," "," ",' ',' ',' ',' '," "," ",' ',' ',' ",' '," "," "," ",' ',' ',' ",' ',' "," "," ","
ordergroupoption
',' ',"
{{$index}}','
','
','

- add new groups -

',"
",'
','
    ','
  1. '," {{GroupedSelectGroup}}","
  2. ","
","
","
",'
'," {{groupedSelectRow.group}}","
","
{{groupedSelectRow.option}}','
',' ',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}var f=o();e.put("editPanelBlankCtrl-tpls.html",t()),e.put("editPanelHeaderCtrl-tpls.html",l()),e.put("editPanelSubTitleCtrl-tpls.html",n()),e.put("editPanelTextInputCtrl-tpls.html",i()),e.put("editPanelPasswordCtrl-tpls.html",r()),e.put("editPanelDateCtrl-tpls.html",a()),e.put("editPanelTextareaCtrl-tpls.html",s()),e.put("editPanelRichTextEditorCtrl-tpls.html",d()),e.put("editPanelRadioCtrl-tpls.html",c()),e.put("editPanelCheckboxCtrl-tpls.html",p()),e.put("editPanelBasicSelectCtrl-tpls.html",u()),e.put("editPanelGroupedSelectCtrl-tpls.html",m())}angular.module("edaApp",["edaApp.providers","edaApp.controllers","edaApp.services","edaApp.filters","edaApp.directives","textAngular","textAngularSetup","ngAnimate","toaster","formly","formlyBootstrap","ui.bootstrap","nya.bootstrap.select","dndLists","mgcrea.ngStrap.affix","pageslide-directive"]).value("easyFormGenVersion","v1.0.15").run(e), +!function(){"use strict";function e(e){function o(){return['"].join("")}function t(){return['
','
','
','
','
  Edit :
',"
","
",'
','
','
Column will be blank
',"
","
","
",f,"
"].join("")}function l(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function n(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function i(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function r(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function a(){return['
','
','
','
','
  Edit properties :
',"
","
",'
',' ','
','
    ','
  1. '," {{dateformat}}","
  2. ","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function s(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function d(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function c(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no radio : add new radio values -
',"
",' '," "," ",' ',' ',' '," "," ",' ',' ",' '," "," "," ",' ',' ',' ',' "," "," ","
orderoption
',' ',"
{{$index}}{{radioRow.option}}','
',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function p(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function u(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no option : add new options -
',"
",' '," "," ",' ',' ',' '," "," ",' ',' ",' '," "," "," ",' ',' ',' ',' "," "," ","
orderoption
',' ',"
{{$index}}{{basicSelectRow.option}}','
',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function m(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no option : add new options -
',"
",' '," "," ",' ',' ',' ',' '," "," ",' ',' ',' ",' '," "," "," ",' ',' ',' ",' ',' "," "," ","
ordergroupoption
',' ',"
{{$index}}','
','
','

- add new groups -

',"
",'
','
    ','
  1. '," {{GroupedSelectGroup}}","
  2. ","
","
","
",'
'," {{groupedSelectRow.group}}","
","
{{groupedSelectRow.option}}','
',' ',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}var f=o();e.put("editPanelBlankCtrl-tpls.html",t()),e.put("editPanelHeaderCtrl-tpls.html",l()),e.put("editPanelSubTitleCtrl-tpls.html",n()),e.put("editPanelTextInputCtrl-tpls.html",i()),e.put("editPanelPasswordCtrl-tpls.html",r()),e.put("editPanelDateCtrl-tpls.html",a()),e.put("editPanelTextareaCtrl-tpls.html",s()),e.put("editPanelRichTextEditorCtrl-tpls.html",d()),e.put("editPanelRadioCtrl-tpls.html",c()),e.put("editPanelCheckboxCtrl-tpls.html",p()),e.put("editPanelBasicSelectCtrl-tpls.html",u()),e.put("editPanelGroupedSelectCtrl-tpls.html",m())}angular.module("edaApp",["edaApp.providers","edaApp.controllers","edaApp.services","edaApp.filters","edaApp.directives","textAngular","textAngularSetup","ngAnimate","toaster","formly","formlyBootstrap","ui.bootstrap","nya.bootstrap.select","dndLists","mgcrea.ngStrap.affix","pageslide-directive"]).value("easyFormGenVersion","v1.0.16").run(e), e.$inject=["$templateCache"],angular.module("edaApp").config(["dragDropConfigProvider",function(e){e.setItemsNotTocount({itemBeingDragged:"dndDraggingSource"})}]),angular.module("edaApp").config(["formlyConfigProvider","EasyFormGenFormlyBindingModelsProvider","dragDropConfigProvider",function(e,o,t){function l(e){return e=e.replace(/[\-_\s]+(.)?/g,function(e,o){return o?o.toUpperCase():""}),e.replace(/^([A-Z])/,function(e,o){return o?o.toLowerCase():""})}e.setType({name:"blank",template:"
"}),o.addEasyFormControlToList({id:"empty",name:"no control",subtitle:"no control",group:"Blank",formlyType:"blank",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
',"
","
","
"].join(""),control:"empty",cssClass:"col-xs-12"},{addToGroupCtrl:"blank"}),o.addEasyFormControlToList({id:"Header",name:"Header",subtitle:"no control",group:"Decoration",formlyType:"header",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','

Header

',"
","
","
","
"].join(""),control:"Header",cssClass:"col-xs-12"},{addToGroupCtrl:"headers"});var n=['
','
','

{{options.templateOptions.placeholder}}

',"
","

","
"].join(" ");e.setType({name:"subTitle",template:n}),o.addEasyFormControlToList({id:"Subtitle",name:"Subtitle",subtitle:"no control",group:"Decoration",formlyType:"subTitle",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','

SubTitle

',"
","
","
","
"].join(""),control:"Subtitle",cssClass:"col-xs-12"},{addToGroupCtrl:"headers"}),o.addEasyFormControlToList({id:"TextInput",name:"Text input",subtitle:"Text input",group:"input",formlyType:"input",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ",'
',' ','

Description

',"
","
","
"].join(""),control:"TextInput",cssClass:"col-xs-12"},{addToGroupCtrl:"inputs"}),o.addEasyFormControlToList({id:"Password",name:"Password",subtitle:"Password",group:"input",formlyType:"input",formlySubtype:"password",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ",'
',' ','

Description

',"
","
","
"].join(""),control:"Password",cssClass:"col-xs-12"},{addToGroupCtrl:"inputs"});var i=["date-disabled","custom-class","show-weeks","starting-day","init-date","min-mode","max-mode","format-day","format-month","format-year","format-day-header","format-day-title","format-month-title","year-range","shortcut-propagation","datepicker-popup","show-button-bar","current-text","clear-text","close-text","close-on-date-selection","datepicker-append-to-body"],r=["datepicker-mode","min-date","max-date"],a={};angular.forEach(i,function(e){a[l(e)]={attribute:e}}),angular.forEach(r,function(e){a[l(e)]={bound:e}});var s=[""].join(" ");e.setType({name:"datepicker",template:s,wrapper:["bootstrapLabel","bootstrapHasError"],controller:["$scope",function(e){e.open=function(o){o.preventDefault(),o.stopPropagation(),e.opened=!0}}],defaultOptions:{ngModelAttrs:a,templateOptions:{addonLeft:{"class":"glyphicon glyphicon-calendar",onClick:function(e){e.templateOptions.isOpen=!e.templateOptions.isOpen}},onFocus:function(e,o,t){t.to.isOpen=!t.to.isOpen},datepickerOptions:{}}}}),o.addEasyFormControlToList({id:"Date",name:"Date",subtitle:"Date",group:"input",formlyType:"datepicker",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],datepickerPopup:"dd-MMMM-yyyy"}),t.addControlToDragDropPresentationModel({label:['
','
',' ",'
','
',' ',' ',"
","
",'

description

',"
","
"].join(""),control:"Date",cssClass:"col-xs-12"},{addToGroupCtrl:"inputs"}),o.addEasyFormControlToList({id:"Texarea",name:"Textarea",subtitle:"Textarea",group:"Textarea",formlyType:"textarea",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
',' ','

description

',"
","
","
"].join(""),control:"Texarea",cssClass:"col-xs-12"},{addToGroupCtrl:"textareas"});var d=['',""].join(" ");e.setType({name:"richEditor",template:d}),o.addEasyFormControlToList({id:"RichTextEditor",name:"RichTextEditor",subtitle:"RichTextEditor",group:"Textarea",formlyType:"richEditor",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
',' ','

description

',"
","
","
"].join(""),control:"RichTextEditor",cssClass:"col-xs-12"},{addToGroupCtrl:"textareas"}),o.addEasyFormControlToList({id:"Radio",name:"Radio",subtitle:"Radio",options:[],group:"Radio",formlyType:"radio",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
','
','
',' ",'
',' ","
",'

description

',"
","
","
"].join(""),control:"Radio",cssClass:"col-xs-12"},{addToGroupCtrl:"radios"}),o.addEasyFormControlToList({id:"Checkbox",name:"Checkbox",subtitle:"Checkbox",group:"Checkbox",formlyType:"checkbox",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ","
",'

description

',"
"].join(""),control:"Checkbox",cssClass:"col-xs-12"},{addToGroupCtrl:"checkboxes"});var c=['
    ','
  1. '," {{option.name}} ","
  2. ","
"].join("");e.setType({name:"basicSelect",template:c}),o.addEasyFormControlToList({id:"BasicSelect",name:"Basic select",subtitle:"Basic select",options:[],group:"Select",formlyType:"basicSelect",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','
    ',' ","
","
"].join(""),control:"BasicSelect",cssClass:"col-xs-12"},{addToGroupCtrl:"selects"});var p=['
    ','
  1. ',' {{$group}}'," "," {{option.name}}",' '," ","
  2. ","
"].join(" ");e.setType({name:"groupedSelect",template:p}),o.addEasyFormControlToList({id:"GroupedSelect",name:"Grouped Select",subtitle:"Grouped Select",options:[],group:"Select",formlyType:"groupedSelect",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','
    ',' ","
","
"].join(""),control:"GroupedSelect",cssClass:"col-xs-12"},{addToGroupCtrl:"selects"})}]),angular.module("edaApp").run(["$templateCache",function(e){e.put("editModalTemplate.html","

no use right now

")}]),angular.module("edaApp.providers.dragDropConfigProvider",[]).provider("dragDropConfig",[function(){function e(e,o){if(l[0].length>0){if(l[0].lengthi;i++)l[0].push([]);t.containerConfig.decoration.forEach(function(t){o.addToGroupCtrl===t.groupId&&l[0][t.WhenIndex].push(e)})}else t.containerConfig.decoration.forEach(function(){l[0].push([])}),t.containerConfig.decoration.forEach(function(t){o.addToGroupCtrl===t.groupId&&l[0][t.WhenIndex].push(e)})}var o=[{cssClass:"col-md-12",numberItemPerRow:0},{cssClass:"col-md-12",numberItemPerRow:1},{cssClass:"col-md-6",numberItemPerRow:2},{cssClass:"col-md-4",numberItemPerRow:3}],t={dropZoneConfig:{decoration:[{WhenIndex:0,ApplycssClass:"col-md-4",fontAwesomeIcon:"fa fa-level-up",title:"Drag control from here : "},{WhenIndex:1,ApplycssClass:"col-md-8",fontAwesomeIcon:"fa fa-level-down",title:"Drop control into here : "}],verboseMode:!1},containerConfig:{decoration:[{WhenIndex:0,ApplycssClass:"col-md-12",title:"Blank : ",groupId:"blank",isCollapsed:!0},{WhenIndex:1,ApplycssClass:"col-md-12",title:"Headers : ",groupId:"headers",isCollapsed:!0},{WhenIndex:2,ApplycssClass:"col-md-12",title:"Text inputs : ",groupId:"inputs",isCollapsed:!0},{WhenIndex:3,ApplycssClass:"col-md-12",title:"Textareas : ",groupId:"textareas",isCollapsed:!0},{WhenIndex:4,ApplycssClass:"col-md-12",title:"Radios : ",groupId:"radios",isCollapsed:!0},{WhenIndex:5,ApplycssClass:"col-md-12",title:"Checkboxes : ",groupId:"checkboxes",isCollapsed:!0},{WhenIndex:6,ApplycssClass:"col-md-12",title:"Selects : ",groupId:"selects",isCollapsed:!0}],verboseMode:!1,collapseEnabled:!0,collapseCtrl:[{atIndex:0,collapse:!0},{atIndex:1,collapse:!0}]},itemConfig:{verboseMode:!1}},l=[[],[[]]],n={itemBeingDragged:""};this.setListItemCssClass=function(e){o=[].concat(e)},this.getItemsNotTocount=function(){return n},this.setItemsNotTocount=function(e){n=angular.copy(e)},this.addControlToDragDropPresentationModel=function(o,t){"undefined"!=typeof o&&"undefined"!=typeof t&&e(o,t)},this.getDragDropPresentationModel=function(){return l},this.$get=[function(){var e={};return e.getListItemCssClass=function(){return o},e.getItemsNotToCount=function(){return n},e.getItemCssDependingNumberItemsInRow=function(e){if("undefined"!=typeof e){for(var t="",l=o.length-1;l>=0;l--)o[l].numberItemPerRow===e&&(t=o[l].cssClass);return t}return""},e.getDistinctItemCssClass=function(){var e=[];return angular.forEach(o,function(o){var t=o.cssClass;if(0===e.length)e.push(t);else{var l=!0;angular.forEach(e,function(e){var o=e;t===o&&(l=!1)}),l&&e.push(t)}}),e},e.getDragDropConfigModel=function(){return t},e.setDragDropConfigContainerDecorationCollapse=function(e,o,t){return"undefined"!=typeof o&&"undefined"!=typeof t&&o===parseInt(o,10)&&(e.containerConfig.decoration[o].isCollapsed=t),!0},e.getDragDropPresentationModel=function(){return l},e}]}]),angular.module("edaApp.providers.EasyFormGenFormlyBindingModels",[]).provider("EasyFormGenFormlyBindingModels",[function(){var e={controls:[],selectedControl:"none",temporyConfig:{selectedControl:"none",formlyLabel:"label",formlyRequired:!1,formlyDesciption:"",formlyPlaceholder:"",formlyOptions:[]}},o={line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]},t={control:{type:"none",key:"none"}},l={submitButtonText:"submit",cancelButtonText:"cancel",lines:[].concat(o)},n={activeLine:1,listConfigStep:["init","first","second","third"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0},i={submitButtonText:"submit",cancelButtonText:"cancel",lines:[]},r={cssClass:["col-xs-12","col-xs-6","col-xs-4"],textContent:"",html_part1:['
','

'].join(""),html_part3:this.textContent,html_part4:["

","
","

"].join(""),simpleHtml1:['

'].join(""),simpleHtml2:["

","
"].join("")},a={className:["col-xs-12","col-xs-6","col-xs-4"],type:"",key:"",templateOptions:{type:"",label:"",required:"",placeholder:"",description:"",options:""}},s=[{controlType:"datepicker",properties:[{isRoot:!1,isTemplateOptions:!0,value:"datepickerPopup"}]}];this.getAllParticularControlProperties=function(){return s},this.addParticularControlProperties=function(e){if("controlType"in e&&"properties"in e){var o=!1;s.length>0&&s.forEach(function(t){t.controlType===e.controlType&&(t.properties=[].concat(e.properties),o=!0)}),o||s.push(e)}return s},this.getEasyFormListControls=function(){return e},this.addEasyFormControlToList=function(o){"undefined"!=typeof o&&e.controls.push(o)},this.getHeaderTemplates=function(){return r},this.addHeaderTemplateCssClass=function(e){"undefined"!=typeof e&&r.cssClass.push(e)},this.getFormlyControlTemplate=function(){return a},this.addformlyControlTemplatesCssClass=function(e){"undefined"!=typeof e&&a.className.push(e)},this.setFormlyControlTemplate=function(e){return"className"in e&&"type"in e&&"key"in e&&"templateOptions"in e&&(a=angular.copy(e)),!0},this.$get=[function(){var d={};return d.getEasyFormListControls=function(){return e},d.getEasyFormInitialStateConfigurationModel=function(e){var o=angular.copy(l);return"undefined"!=typeof e&&e&&angular.extend(o,n),o},d.getEasyFormReloadConfigurationModel=function(e){var o=angular.copy(i);return"undefined"!=typeof e&&e&&angular.extend(o,n),o},d.getEasyFormEmptyConfigurationLineModel=function(){return o},d.getEasyFormConfigurationEmptyControlModel=function(){return t},d.getRawHeaderTemplates=function(){return r},d.getHeaderTemplateForNcolumnLine=function(e,o){if("undefined"!=typeof e&&"undefined"!=typeof o&&e===parseInt(e,10)&&e<=r.cssClass.length){var t={};return t.className=r.cssClass[e-1],r.textContent=o,r.selectedClass=t.className,t.template=[r.simpleHtml1,o,r.simpleHtml2].join(""),t}},d.getRawFormlyControlTemplates=function(){return a},d.getFormlyControlTemplateForNcolumnLine=function(e,o){if("undefined"!=typeof e&&e===parseInt(e,10)&&e<=a.className.length){var t=angular.copy(a);return t.className=a.className[e-1],"undefined"!=typeof o&&s.forEach(function(e){e.controlType===o&&e.properties.forEach(function(e){e.isRoot&&(t[e.value]=""),e.isTemplateOptions&&(t.templateOptions[e.value]="")})}),t}},d}]}]),angular.module("edaApp.providers",["edaApp.providers.dragDropConfigProvider","edaApp.providers.EasyFormGenFormlyBindingModels",function(){}]),angular.module("edaApp.controllers",["edaApp.controllers.edaMainController","edaApp.controllers.edaEditController","edaApp.controllers.edaEditMODALController","edaApp.controllers.edaEditPanelController"]),angular.module("edaApp.controllers.edaEditController",[]).controller("edaEditController",["$scope","easyFormGenVersion","$filter","$anchorScroll","toaster","$timeout","$modal","$log","formFieldManage","formsByIdService","controllerModalProxy","dragDropItemDecorationService","dragDropConfig","ddModelConfModelProxyService","ddItemRightClickedManager",function(e,o,t,l,n,i,r,a,s,d,c,p,u,m,f){function g(){n.pop({type:"info",timeout:2e3,title:"should save data model if it were not a static example",body:"data :"+t("json")(e.vm.model,4),showCloseButton:!0})}function y(){s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}e.easyFormGeneratorVERSION=o,e.tab={editTab:{active:!0},previewTab:{active:!1}},e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.ihm={preview:{formlyModelViewExpanded:!0,formlyFieldsViewExpanded:!0,customizeFormButtonsExpanded:!0,saveThisFormExpanded:!0}},e.easyFormDragDropProperties=u.getDragDropConfigModel(),e.dragDropModel=[].concat(u.getDragDropPresentationModel()),e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.configuration={},s.initConfigurationEditFromScratch(e.configuration,!1),c.initProxyModel(),e.collapseAllGroupControl=function(o){angular.forEach(e.easyFormDragDropProperties.containerConfig.decoration,function(t){t.WhenIndex!==o&&u.setDragDropConfigContainerDecorationCollapse(e.easyFormDragDropProperties,t.WhenIndex,!0)})},e.vm.onSubmit=g,e.resetToZeroModel=function(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()},e.countConfigurationModelLines=function(){return e.configuration.lines.length},e.setActiveLineNumber=function(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)},e.upThisLine=function(o){if(o>-1&&e.configuration.lines[o-1]){var t=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,t),e.configuration.activeLine=1}s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.downThisLine=function(o){if(o>-1&&e.configuration.lines[o+1]){var t=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,t),e.configuration.activeLine=1}s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.removeThisLine=function(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):i(function(){n.pop({type:"warning",title:"Last line",body:"Can't delete the last line",showCloseButton:!0})},100),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))},e.increaseNumberOfColumns=function(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.saveThisForm=function(){if("undefined"==typeof e.configuration.formName)return n.pop({type:"warning",timeout:2e3,title:"Form name is undefined",body:"Form has not been saved.",showCloseButton:!0}),!1;if(""===e.configuration.formName)return n.pop({type:"warning",timeout:2e3,title:"Form name is required",body:"Form has not been saved.",showCloseButton:!0}),!1;n.pop({type:"wait",timeout:1e4,title:"Form is being saved",body:"Wait.",showCloseButton:!0});var o=new d;return o.formName=e.configuration.formName,o.submitButtonText=e.configuration.submitButtonText,o.cancelButtonText=e.configuration.cancelButtonText,o.formlyField=JSON.stringify(e.configuration.lines),n.clear(),n.pop({type:"info",timeout:2e3,title:"Form would be saved if it were not a static example",body:"",showCloseButton:!0}),!0},e.nyaSelect={},c.initNyaSelect(e.nyaSelect),e.animationsEnabled=!0,e.showModalAddCtrlToColumn=function(o,t,l){var n=r.open({animation:e.animationsEnabled,templateUrl:"editModalTemplate.html",controller:"edaEditMODALController",size:"lg",resolve:{nyaSelect:function(){return c.getNyASelectFromSelectedLineColumn(e.nyaSelect,e.configuration,t,l)}}});n.result.then(function(o){c.bindConfigurationModelFromModalReturn(t,l,o,e.configuration),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},function(){a.info("Modal dismissed at: "+new Date)})},e.dragoverCallbackContainer=function(e,o,t){return 0===t?!1:!0},e.dropCallback=function(o,t,l,n,r,a){if(n){if("itemType"===a&&!l.label)return!1;if("containerType"===a&&!angular.isArray(l))return!1}var d=i(function(){e.configuration=angular.copy(m.refreshAllConfigurationFromDragAndDropModel(e.configuration,e.dragDropModel)),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel)},200);return e.$on("$destroy",function(){i.cancel(d)}),l},e.dndItemMoved=function(o,t,l){o>0&&e.dragDropModel[o][t].splice(l,1)},e.dragoverCallbackItems=function(e,o,t,l){return 0===o?!1:!0},e.disableItemDropIf=function(){},e.dropCallbackItems=function(o,t,l,n,r,a,d,c,p,u){if(c){if("itemType"===u&&!d.label)return!1;if("containerType"===u&&!angular.isArray(d))return!1}var g=i(function(){e.configuration=angular.copy(m.refreshAllConfigurationFromDragAndDropModel(e.configuration,e.dragDropModel)),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel)},200);return f.setUnRightClicked(d),e.$on("$destroy",function(){i.cancel(g)}),d},e.editPanelModel={toggle:!1},e.saveFromEditPanel=function(){c.bindSpecialCtrlTemporyModelsToProxyModel(),c.bindConfigurationModelFromProxyModel(c.getEditPanelModelLineIndex(),c.getEditPanelModelColumnIndex(),e.configuration),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel),c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle(),f.resetAllDragDropItemSelectedState(e.dragDropModel)},e.closeEditPanel=function(){f.resetAllDragDropItemSelectedState(e.dragDropModel),c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle()},e.debugProxyModel=c.ProxyModel,e.setRightClicked=function(e,o){o.rightCliked=!0},e.toggleEditPanel=function(o,t,l,n){if(f.resetAllDragDropItemSelectedState(e.dragDropModel),c.getEditPanelModelToggle()){if(c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle(),"undefined"!=typeof c.getEditPanelModelLineIndex()&&"undefined"!=typeof c.getEditPanelModelColumnIndex()&&"undefined"!=typeof c.getEditPanelModelControl())if(c.getEditPanelModelLineIndex()===t&&c.getEditPanelModelColumnIndex()===l&&angular.equals(c.getEditPanelModelControl(),n));else{n.rightCliked=!0;var r=i(function(){c.setEditPanelModelLineIndex(t),c.setEditPanelModelColumnIndex(l),c.setEditPanelModelControl(n),c.setProxyModelFromConfigurationSelection(e.configuration,t,l),c.setEditPanelModelToggle(!0),e.editPanelModel.toggle=c.getEditPanelModelToggle()},200);e.$on("$destroy",function(){i.cancel(r)})}}else n.rightCliked=!0,c.setEditPanelModelLineIndex(t),c.setEditPanelModelColumnIndex(l),c.setEditPanelModelControl(n),c.setProxyModelFromConfigurationSelection(e.configuration,t,l),c.setEditPanelModelToggle(!0),e.editPanelModel.toggle=c.getEditPanelModelToggle()},e.removeThisLine=function(o){e.dragDropModel[1].splice(o,1)},e.model=[],e.insertNewLine=function(){y(),e.dragDropModel[1].push([])}}]),angular.module("edaApp.controllers.edaEditMODALController",[]).controller("edaEditMODALController",["$scope","$modalInstance","nyaSelect","toaster","$timeout","selectOptionManage","controllerModalProxy",function(e,o,t,l,n,i,r){function a(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:""};e.radioRowCollection.rows.push(t)}}function s(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.radioRowCollection.rows.length>0)for(var t=0;t<=e.radioRowCollection.rows.length-1;t++){var l={name:e.radioRowCollection.rows[t].option,value:t,group:""};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function d(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:""};e.basicSelectRowCollection.rows.push(t)}}function c(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.basicSelectRowCollection.rows.length>0)for(var t=0;t<=e.basicSelectRowCollection.rows.length-1;t++){var l={name:e.basicSelectRowCollection.rows[t].option,value:t,group:""};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function p(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0){for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:e.nyaSelect.temporyConfig.formlyOptions[o].group};e.groupedSelectRowCollection.rows.push(t)}var l=_.uniq(_.pluck(e.groupedSelectRowCollection.rows,"group"));angular.copy(l,e.GroupedSelectGroups.list)}}function u(){e.nyaSelect.temporyConfig.formlyOptions=[];for(var o=0;o<=e.groupedSelectRowCollection.rows.length-1;o++){var t={name:e.groupedSelectRowCollection.rows[o].option,value:o,group:e.groupedSelectRowCollection.rows[o].group};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function m(){e.nyaSelect.temporyConfig.datepickerPopup=e.demodt.formats[0]}function f(){e.nyaSelect.temporyConfig={formlyLabel:"",formlyRequired:!1,formlyPlaceholder:"",formlyDesciption:"",formlyOptions:[]}}var g={rows:[]};if(e.radioRowCollection=g,e.newOptionRadio={saisie:""},e.addNewOptionRadio=function(){var o=i.addNewOptionRadio(e.radioRowCollection,e.newOptionRadio.saisie);o.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionRadio.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionRadio={saisie:""}},e.removeRadioRow=function(o){var t=i.removeOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},e.upThisRadioRow=function(o){var t=i.upthisOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.downThisRadioRow=function(o){var t=i.downthisOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.basicSelectRowCollection=g,e.newOptionBasicSelect={saisie:""},e.addNewOptionBasicSelect=function(){var o=i.addNewOptionBasicSelect(e.basicSelectRowCollection,e.newOptionBasicSelect.saisie);o.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionBasicSelect.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionBasicSelect={saisie:""}},e.removeRow=function(o){var t=i.removeOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},e.upThisRow=function(o){var t=i.upthisOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.downThisRow=function(o){var t=i.downthisOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({ type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.groupedSelectRowCollection=g,e.newOptionGroupedSelect={saisie:""},e.GroupedSelectGroups={list:[]},e.newGroupGroupedSelect={saisie:""},e.groupSelectGroupClick={showList:!1},e.showGroupListToChoose=function(){e.groupSelectGroupClick.showList=!e.groupSelectGroupClick.showList},e.addNewGroupToGroupedSelect=function(){if(""!==e.newGroupGroupedSelect.saisie){for(var o=e.GroupedSelectGroups.list.length-1;o>=0;o--)e.GroupedSelectGroups.list[o]===e.newGroupGroupedSelect.saisie&&l.pop({type:"warning",timeout:2e3,title:"Group already exists",body:"No group added.",showCloseButton:!0});e.GroupedSelectGroups.list.push(e.newGroupGroupedSelect.saisie)}else l.pop({type:"warning",timeout:2e3,title:"Not a valid group to add",body:"No group added.",showCloseButton:!0});e.newGroupGroupedSelect.saisie=""},e.addNewOptionGroupedSelect=function(){var o=i.addNewOptionGroupedSelect(e.groupedSelectRowCollection,e.newOptionGroupedSelect.saisie,"");o.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionGroupedSelect.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionGroupedSelect={saisie:""}},e.removeGroupedSelectRow=function(o){var t=i.removeOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},e.upThisGroupedSelectRow=function(o){var t=i.upthisOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.downThisGroupedSelectRow=function(o){var t=i.downthisOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.demodt={},e.today=function(){e.demodt.dt=new Date},e.today(),e.clear=function(){e.demodt.dt=null},e.open=function(o){o.preventDefault(),o.stopPropagation(),e.demodt.opened=!0},e.dateOptions={formatYear:"yy",startingDay:1,showWeeks:!0,initDate:null},e.demodt.formats=["dd-MMMM-yyyy","yyyy/MM/dd","dd.MM.yyyy","shortDate"],e.nyaSelect=t,e.nyaSelect.selectedControl=e.nyaSelect.temporyConfig.selectedControl,"none"!==t.selectedControl){for(var y=e.nyaSelect.controls.length-1;y>=0;y--)e.nyaSelect.controls[y].id===t.selectedControl&&(e.modelNyaSelect=t.controls[y]);"BasicSelect"===e.nyaSelect.selectedControl&&d(),"GroupedSelect"===e.nyaSelect.selectedControl&&p(),"Radio"===e.nyaSelect.selectedControl&&a()}e.selectThisControl=function(o){e.nyaSelect.selectedControl="none",f();for(var t=e.nyaSelect.controls.length-1;t>=0;t--)e.nyaSelect.controls[t].id===o&&(e.nyaSelect.selectedControl=e.nyaSelect.controls[t].id);"Date"===e.nyaSelect.selectedControl&&m()},e.ok=function(){"BasicSelect"===e.nyaSelect.selectedControl&&c(),"GroupedSelect"===e.nyaSelect.selectedControl&&u(),"Radio"===e.nyaSelect.selectedControl&&s(),r.applyConfigToSelectedControl(e.nyaSelect),o.close(e.nyaSelect)},e.cancel=function(){o.dismiss("cancel")}}]),angular.module("edaApp.controllers.edaEditPanelController",[]).controller("edaEditPanelController",["$scope","toaster","$timeout","selectOptionManage","controllerModalProxy",function(e,o,t,l,n){function i(){a.proxyModel.temporyConfig={formlyLabel:"",formlyRequired:!1,formlyPlaceholder:"",formlyDesciption:"",formlyOptions:[]}}function r(){a.proxyModel.temporyConfig.datepickerPopup=a.demodt.formats[0]}var a=this;if(a.proxyModel=n.proxyModel,a.proxyModel.selectedControl=a.proxyModel.temporyConfig.selectedControl,a.basicSelectRowCollection=n.basicSelectRowCollection,a.newOptionBasicSelect=n.newOptionBasicSelect,a.groupedSelectRowCollection=n.groupedSelectRowCollection,a.newOptionGroupedSelect=n.newOptionGroupedSelect,a.GroupedSelectGroups=n.GroupedSelectGroups,a.newGroupGroupedSelect=n.newGroupGroupedSelect,a.groupSelectGroupClick=n.groupSelectGroupClick,a.radioRowCollection=n.radioRowCollection,a.newOptionRadio=n.newOptionRadio,n.resetAllTemporyModels(),"none"!==a.proxyModel.temporyConfig.selectedControl){for(var s=a.proxyModel.controls.length-1;s>=0;s--)a.proxyModel.controls[s].id===a.proxyModel.temporyConfig.selectedControl&&(a.modelproxyModel=a.proxyModel.controls[s]);"BasicSelect"===a.proxyModel.temporyConfig.selectedControl&&n.bindBasicSelectFromProxyModel(a.basicSelectRowCollection),"GroupedSelect"===a.proxyModel.temporyConfig.selectedControl&&n.bindGroupedSelectFromProxyModel(a.groupedSelectRowCollection,a.GroupedSelectGroups),"Radio"===a.proxyModel.temporyConfig.selectedControl&&n.bindRadioFromProxyModel(a.radioRowCollection)}a.updateSpecialControl=function(){return n.basicSelectRowCollection=a.basicSelectRowCollection,n.newOptionBasicSelect=a.newOptionBasicSelect,n.groupedSelectRowCollection=a.groupedSelectRowCollection,n.newOptionGroupedSelect=a.newOptionGroupedSelect,n.GroupedSelectGroups=a.GroupedSelectGroups,n.newGroupGroupedSelect=a.newGroupGroupedSelect,n.groupSelectGroupClick=a.groupSelectGroupClick,n.radioRowCollection=a.radioRowCollection,n.newOptionRadio=a.newOptionRadio,n.bindSpecialCtrlTemporyModelsToProxyModel(),!0},a.resetControl=function(){a.proxyModel.temporyConfig.formlyLabel="",a.proxyModel.temporyConfig.formlyRequired=!1,a.proxyModel.temporyConfig.formlyPlaceholder="",a.proxyModel.temporyConfig.formlyDesciption="",a.proxyModel.temporyConfig.formlyOptions=[],a.proxyModel.temporyConfig.datepickerPopup=r()},a.selectThisControl=function(e){a.proxyModel.selectedControl="none",i();for(var o=a.proxyModel.controls.length-1;o>=0;o--)a.proxyModel.controls[o].id===e&&(a.proxyModel.selectedControl=a.proxyModel.controls[o].id);"Date"===a.proxyModel.selectedControl&&r()},a.addNewOptionRadio=function(){var e=l.addNewOptionRadio(a.radioRowCollection,a.newOptionRadio.saisie);e.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:e.details,body:"'"+a.newOptionRadio.saisie+"' cannot be added.",showCloseButton:!0}),a.newOptionRadio={saisie:""}},a.removeRadioRow=function(e){var t=l.removeOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},a.upThisRadioRow=function(e){var t=l.upthisOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.downThisRadioRow=function(e){var t=l.downthisOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.addNewOptionBasicSelect=function(){var e=l.addNewOptionBasicSelect(a.basicSelectRowCollection,a.newOptionBasicSelect.saisie);e.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:e.details,body:"'"+a.newOptionBasicSelect.saisie+"' cannot be added.",showCloseButton:!0}),a.newOptionBasicSelect={saisie:""}},a.removeRow=function(e){var t=l.removeOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},a.upThisRow=function(e){var t=l.upthisOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.downThisRow=function(e){var t=l.downthisOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.showGroupListToChoose=function(){a.groupSelectGroupClick.showList=!a.groupSelectGroupClick.showList},a.addNewGroupToGroupedSelect=function(){if(""!==a.newGroupGroupedSelect.saisie){for(var e=a.GroupedSelectGroups.list.length-1;e>=0;e--)a.GroupedSelectGroups.list[e]===a.newGroupGroupedSelect.saisie&&o.pop({type:"warning",timeout:2e3,title:"Group already exists",body:"No group added.",showCloseButton:!0});a.GroupedSelectGroups.list.push(a.newGroupGroupedSelect.saisie)}else o.pop({type:"warning",timeout:2e3,title:"Not a valid group to add",body:"No group added.",showCloseButton:!0});a.newGroupGroupedSelect.saisie=""},a.addNewOptionGroupedSelect=function(){var e=l.addNewOptionGroupedSelect(a.groupedSelectRowCollection,a.newOptionGroupedSelect.saisie,"");e.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:e.details,body:"'"+a.newOptionGroupedSelect.saisie+"' cannot be added.",showCloseButton:!0}),a.newOptionGroupedSelect={saisie:""}},a.removeGroupedSelectRow=function(e){var t=l.removeOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},a.upThisGroupedSelectRow=function(e){var t=l.upthisOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.downThisGroupedSelectRow=function(e){var t=l.downthisOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.demodt={},a.today=function(){a.demodt.dt=new Date},a.today(),a.clear=function(){a.demodt.dt=null},a.open=function(e){e.preventDefault(),e.stopPropagation(),a.demodt.opened=!0},a.dateOptions={formatYear:"yy",startingDay:1,showWeeks:!0,initDate:null},a.demodt.formats=["dd-MMMM-yyyy","yyyy/MM/dd","dd.MM.yyyy","shortDate"]}]),angular.module("edaApp.controllers.edaMainController",[]).controller("edaMainController",[function(){}]),angular.module("edaApp.directives.edaDdContentCounterDirective",[]).directive("ddContentCounter",["dragDropItemCounterService","$timeout",function(e,o){return{scope:{valueWhenPlaceholder:"@ddValueWhenPlaceholder",valueWhendragging:"@ddValueWhenDragging",fullModel:"=ddFullModel",currentIndex:"@ddContentCounterCurrentIndex",parentIndex:"@ddContentCounterParentIndex",forceRefresh:"=ddContentCounterForceCssRefresh"},restrict:"A",link:function(t,l){var n;t.$watch(function(){return l[0].children.length},function(i,r){if(i!==r){for(var a=0,s=[],d=l[0].children.length-1;d>=0;d--)e.isHtmlElementToCount(l[0].children[d].classList)?(a++,s.push({item:d,isReal:!0})):s.push({item:d,isReal:!1});t.contentRealCount=a,n=o(function(){e.updateLineItemCss(t.fullModel,s,t.parentIndex,t.currentIndex,a)},20)}}),t.$on("$destroy",function(){console.warn("ddContentCounter timer destruction!"),o.cancel(n)})}}}]),angular.module("edaApp.directives.edaDdDecorContainerDirective",[]).directive("ddDecorContainer",[function(){var e=['
','
 {{currentTitle}}
',"
",'
','
',"
"].join(" ");return{scope:{styleParam:"=ddContainerProperties",isStillCollapsed:"=ddContainerIsCollpased",verboseMode:"@ddContainerVerboseMode",currentIndex:"@ddContainerCurrentIndex",collpaseAll:"&ddCollapseAll"},restrict:"A",template:e,transclude:!0,controller:function(e){e.config={isEnabled:!1},e.collapseFct=function(){e.collpaseAll({exceptThisOne:e.styleParam.WhenIndex}),e.isCollapsed=!e.isCollapsed,e.isStillCollapsed=e.isCollapsed},e.icons={closedClass:"glyphicon glyphicon-eye-open",opened:"glyphicon glyphicon-eye-close"},e.currentIconClass=function(){return e.isCollapsed?e.icons.closedClass:e.icons.opened}},link:function(e,o,t,l,n){var i=e.verboseMode,r=e.currentIndex;if(e.isCollapsed=!1,""!==i){var a=angular.lowercase(i);("true"===a||"1"===a)&&console.dir({whoAmI:"I am verbose from ddDecorContainer link",verbodeMode:a,ParentParentIndex:e.$parent.$parent.$index,ParentIndex:e.$parent.$index,currentIndex:r,styleParam:e.styleParam,columnindex:e.$parent.$parent.$parent.$parent.$index})}e.$watch(function(){return e.isStillCollapsed},function(o,t){o!==t&&0===e.$parent.$parent.$index&&(e.isCollapsed=o)}),e.config.isEnabled=!1,"undefined"!=typeof r&&""!==r&&"0"===r&&"undefined"!=typeof e.styleParam.title&&(e.currentTitle=e.styleParam.title,e.config.isEnabled=!0,e.isCollapsed=!0),n(e.$parent,function(e){var t=angular.element(o.children()[1]);t.append(e)})}}}]),angular.module("edaApp.directives.edaDdDecorDropZoneDirective",[]).directive("ddDecorDropZone",[function(){var e=['
','
','
','
','

','  '," {{currentTitle}}",'
',' ","
","

","
",'
','
','
',"
","
","
","
","
","
"].join(" ");return{scope:{styleParam:"=ddDropZoneProperties",verboseMode:"@ddDropZoneVerboseMode",currentIndex:"@ddDropZoneCurrentIndex",addNewLineFct:"&ddDropZoneAddNewLine"},restrict:"A",template:e,transclude:!0,link:function(e){var o=e.verboseMode,t=e.currentIndex;if(e.headerConfig={HeaderButtonVisible:!1,affixAttr:"bs-affix",affixEnabled:!1},""!==o){var l=angular.lowercase(o);("true"===l||"1"===l)&&console.dir({whoAmI:"I am verbose from ddDecorDropZone link",verbodeMode:l,ParentParentIndex:e.$parent.$parent.$index,ParentIndex:e.$parent.$index,currentIndex:t,styleParam:e.styleParam})}"undefined"!=typeof t&&""!==t&&("undefined"!=typeof e.styleParam.title&&(e.currentTitle=e.styleParam.title),"undefined"!=typeof e.styleParam.fontAwesomeIcon&&(e.currentFontAwesome=e.styleParam.fontAwesomeIcon),"1"===t&&(e.headerConfig.HeaderButtonVisible=!0))}}}]),angular.module("edaApp.directives.edaDdDecorItemDirective",[]).directive("ddDecorItem",["dragDropConfig",function(e){var o=["
",'
',"
"].join(" ");return{scope:{verboseMode:"@ddItemVerboseMode",currentIndex:"@ddItemCurrentIndex",parentIndex:"@ddItemParentIndex",parentParentIndex:"@ddItemParentParentIndex",lineItemsCount:"@ddItemsCount",cssClass:"@ddItemCssClass"},restrict:"A",template:o,transclude:!0,link:function(o,t,l,n,i){var r=o.verboseMode,a=o.currentIndex,s=o.parentIndex,d=e.getDistinctItemCssClass();if(angular.forEach(d,function(e){t.removeClass(e)}),t.addClass(o.cssClass),o.$watch("cssClass",function(e,o){e!==o&&(angular.forEach(d,function(e){t.removeClass(e)}),t.addClass(e))}),""!==r){var c=angular.lowercase(r);("true"===c||"1"===c)&&console.dir({whoAmI:"I am verbose from ddDecorItem directive link",verbodeMode:c,ParentParentIndex:o.$parent.$parent.$index,ParentIndex:s,parentParentIndex:o.parentParentIndex,currentIndex:a,lineItemsCount:o.lineItemsCount})}"0"===o.parentParentIndex&&t.addClass(d[0]),i(o.$parent,function(e){var o=angular.element(t.children()[0]);o.append(e)})}}}]),angular.module("edaApp.directives.edaDdDecorLineDirective",[]).directive("ddDecorLine",["$timeout",function(e){var o=['
',' ',"
",'
'].join(" ");return{scope:{verboseMode:"@ddLineVerboseMode",currentIndex:"@ddLineCurrentIndex",parentIndex:"@ddLineParentIndex",removeLine:"&ddRemoveLine"},restrict:"A",template:o,transclude:!0,link:function(o,t,l,n,i){var r=o.verboseMode,a=o.currentIndex,s=o.parentIndex;if(o.deleteLine={},o.deleteLine.readyToDelete=!1,o.deleteLine.dblClickCount=0,o.isCollapsed=!1,""!==r){var d=angular.lowercase(r);("true"===d||"1"===d)&&console.dir({whoAmI:"I am verbose from ddDecorLine directive link",verbodeMode:d,ParentParentIndex:o.$parent.$parent.$index,ParentIndex:s,currentIndex:a})}o.removeMe=function(t){t.preventDefault(),t.stopPropagation(),"1"===o.parentIndex&&(1===o.deleteLine.dblClickCount&&(o.deleteLine.dblClickCount=0,o.deleteLine.readyToDelete=!1,o.removeLine(),e.cancel(c)),0===o.deleteLine.dblClickCount&&(o.deleteLine.dblClickCount=o.deleteLine.dblClickCount+1,o.deleteLine.readyToDelete=!0))};var c;o.cancelDelete=function(t){c=e(function(){o.deleteLine.dblClickCount=0,o.deleteLine.readyToDelete=!1},500)},o.$on("$destroy",function(){e.cancel(c)}),i(o.$parent,function(e){var o=angular.element(t.children()[0]);o.append(e)})}}}]),angular.module("edaApp.directives.edaDdNoEditableControlDirective",[]).directive("ddNoEditableControl",[function(){return{restrict:"A",link:function(e,o){o.on("click",function(e){e.preventDefault()})}}}]),angular.module("edaApp.directives",["edaApp.directives.edaStRationDirective","edaApp.directives.edaDdDecorDropZoneDirective","edaApp.directives.edaDdDecorContainerDirective","edaApp.directives.edaDdDecorLineDirective","edaApp.directives.edaDdDecorItemDirective","edaApp.directives.edaDdNoEditableControlDirective","edaApp.directives.edaDdContentCounterDirective","edaApp.directives.edaRightClickDirective"]),angular.module("edaApp.directives.edaRightClickDirective",[]).directive("edaRightClick",["$parse",function(e){return{restrict:"A",link:function(o,t,l){var n=e(l.edaRightClick),i=e(l.edaRightClickColIndex),r=e(l.edaSetRightClicked);t.on("contextmenu",function(e){o.$apply(function(){e.preventDefault(),1===i(o)&&r(o,{}),1===i(o)&&n(o,{$event:e})})})}}}]),angular.module("edaApp.directives.edaStRationDirective",[]).directive("stRatio",[function(){return{restrict:"A",link:function(e,o,t){var l=+t.stRatio;o.css("width",l+"%")}}}]),angular.module("edaApp.services.dragDropItemCountersService",[]).factory("dragDropItemCounterService",["dragDropConfig",function(e){var o=[],t=angular.copy(e.getItemsNotToCount()),l={};return l.getItemsNotToCount=function(){return t},l.getModelItemsRealCounter=function(){return o},l.isHtmlElementToCount=function(e){var o=!0;return e.length>0&&angular.forEach(t,function(t){for(var l=e.length-1;l>=0;l--)e[l]===t&&(o&=!1)}),o},l.updateLineItemCss=function(o,t,l,n,i){if("undefined"!=typeof o&&"undefined"!=typeof t&&"undefined"!=typeof l&&"undefined"!=typeof n&&"undefined"!=typeof i){for(var r=o[l][n].length-1;r>=0;r--)for(var a=0;a=0;r--)o[t][l][r].cssClass=e.getItemCssDependingNumberItemsInRow(n);return!0}return!1},t.updateCssClassWholeColumn=function(o,t){if("undefined"!=typeof t&&"undefined"!=typeof o){for(var l=o[t].length-1;l>=0;l--)for(var n=o[t][l].length-1;n>=0;n--)o[t][l][n].cssClass=e.getItemCssDependingNumberItemsInRow(o[t][l].length);return!0}return!1},t}]),angular.module("edaApp.services.dragDropModelConfigModelProxyService",[]).factory("ddModelConfModelProxyService",["EasyFormGenFormlyBindingModels","controllerModalProxy","$parse",function(e,o,t){function l(o){var l={},n=e.getEasyFormListControls(),i=t("controls");return angular.forEach(i(n),function(e){e.id===o.control&&(l=e)}),l}function n(e,o){for(var t=!0,l=o.lines.length-1;l>=0;l--)for(var n=o.lines[l].columns.length-1;n>=0;n--)"undefined"!=typeof o.lines[l].columns[n].control&&o.lines[l].columns[n].control.key===e&&(t=!1);return t}function i(e,o){var t=e+"-"+Date.now();return n(t,o)===!0?t:(t=e+"-"+Date.now(),n(t,o)===!0?t:t=e+"-"+Date.now())}function r(e,o,t){angular.forEach(t.lines,function(t,l){l===o&&(t.line=e)})}function a(e,o,l){t("control.selectedControl").assign(o,t("selectedControl")(e)),t("control.type").assign(o,t("formlyType")(e)),t("control.key").assign(o,i(t("control.type")(o),l)),t("control.subtype").assign(o,t("formlySubtype")(e)),t("control.templateOptions.label").assign(o,t("formlyLabel")(e)),t("control.templateOptions.required").assign(o,t("formlyRequired")(e)),t("control.templateOptions.description").assign(o,t("formlyDesciption")(e)),t("control.templateOptions.placeholder").assign(o,t("formlyPlaceholder")(e)),t("control.templateOptions.options").assign(o,t("formlyOptions")(e)),"datepicker"===t("control.type")(o)&&t("control.templateOptions.datepickerPopup").assign(o,t("datepickerPopup")(e))}var s={};return s.refreshAllConfigurationFromDragAndDropModel=function(o,t){angular.copy(o);return o.lines=[],angular.forEach(t[1],function(t,n){o.lines.push(angular.copy(e.getEasyFormEmptyConfigurationLineModel())),r(n+1,n,o),angular.forEach(t,function(i,r){var s={control:angular.copy(e.getFormlyControlTemplateForNcolumnLine(t.length,l(t[r]).formlyType))},d=l(t[r]);if("undefined"!=typeof i.key){console.warn("debug dragdropModel show this control key : "+i.key),s.control=angular.copy(i.configModelControl);var c=e.getFormlyControlTemplateForNcolumnLine(t.length,l(t[r]).formlyType);s.control.className=c.className,s.control.cssClass=c.className}else a(d,s,o);"undefined"==typeof o.lines[n].columns[r]&&o.lines[n].columns.push(angular.copy(e.getEasyFormConfigurationEmptyControlModel())),o.lines[n].columns[r].control=angular.copy(s.control),o.lines[n].columns[r].numColumn=r+1,o.lines[n].columns[r].exist=!0})}),o},s.refreshControlsKeys=function(e,o){angular.forEach(e.lines,function(e,t){angular.forEach(e.columns,function(e,l){"undefined"!=typeof o[1][t]&&o[1][t].length>0&&(o[1][t][l].key=e.control.key,o[1][t][l].configModelControl=angular.copy(e.control))})}),console.info("refreshControlsKeys"),console.dir({when:"starting","configModel is ":angular.copy(e),"dragDropModel is ":angular.copy(o)})},s}]),angular.module("edaApp.services.edaEditCtrlControllerModalProxy",[]).factory("controllerModalProxy",["EasyFormGenFormlyBindingModels",function(e){function o(o){var t=e.getEasyFormListControls();return angular.copy(t,o),!0}function t(){var o=e.getEasyFormListControls();return r.proxyModel=angular.copy(o),!0}function l(e){for(var o={selectedControl:"none",formlyType:"none",formlySubtype:"none",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyPlaceholder:"",formlyOptions:[]},t=e.controls.length-1;t>=0;t--)e.selectedControl===e.controls[t].id&&(o.selectedControl=e.selectedControl,o.formlyType=e.controls[t].formlyType,o.formlySubtype=e.controls[t].formlySubtype,o.formlyLabel=e.controls[t].formlyLabel,o.formlyRequired=e.controls[t].formlyRequired,o.formlyDesciption=e.controls[t].formlyDesciption,o.formlyPlaceholder=e.controls[t].formlyPlaceholder,o.formlyOptions=e.controls[t].formlyOptions,"datepicker"===e.controls[t].formlyType&&(o.datepickerPopup=e.controls[t].datepickerPopup));return o}function n(e,o){for(var t=!0,l=o.lines.length-1;l>=0;l--)for(var n=o.lines[l].columns.length-1;n>=0;n--)o.lines[l].columns[n].control.key===e&&(t=!1);return t}function i(o){var t="none",l=angular.copy(e.getEasyFormListControls().controls);return l.forEach(function(e){return e.formlyType===o.type&&e.formlySubtype===o.subtype?t=e.id:void 0}),t}var r={};r.ProxyModel={},t(),r.initNyaSelect=function(e){return o(e)},r.getNyASelectFromSelectedLineColumn=function(e,t,l,n){return o(e),"undefined"!=typeof t.lines[l].columns[n].control.templateOptions&&(e.temporyConfig.selectedControl="undefined"!=typeof t.lines[l].columns[n].control.selectedControl?t.lines[l].columns[n].control.selectedControl:"none",e.temporyConfig.formlyLabel="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.label?t.lines[l].columns[n].control.templateOptions.label:"",e.temporyConfig.formlyRequired="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.required?t.lines[l].columns[n].control.templateOptions.required:"",e.temporyConfig.formlyDesciption="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.description?t.lines[l].columns[n].control.templateOptions.description:"",e.temporyConfig.formlyPlaceholder="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.placeholder?t.lines[l].columns[n].control.templateOptions.placeholder:"",e.temporyConfig.formlyOptions="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.options?t.lines[l].columns[n].control.templateOptions.options:"","Date"===e.temporyConfig.selectedControl&&(e.temporyConfig.datepickerPopup="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.datepickerPopup?t.lines[l].columns[n].control.templateOptions.datepickerPopup:"")),e},r.bindConfigurationModelFromModalReturn=function(e,o,t,i){var r=l(t);i.lines[e].columns[o].control.selectedControl=r.selectedControl,i.lines[e].columns[o].control.type=r.formlyType,i.lines[e].columns[o].control.subtype=r.formlySubtype,i.lines[e].columns[o].control.templateOptions={label:"",required:!1,description:"",placeholder:"",options:[]},i.lines[e].columns[o].control.templateOptions.label=r.formlyLabel,i.lines[e].columns[o].control.templateOptions.required=r.formlyRequired,i.lines[e].columns[o].control.templateOptions.description=r.formlyDesciption,i.lines[e].columns[o].control.templateOptions.placeholder=r.formlyPlaceholder,i.lines[e].columns[o].control.templateOptions.options=r.formlyOptions,"datepicker"===i.lines[e].columns[o].control.type&&(i.lines[e].columns[o].control.templateOptions.datepickerPopup=r.datepickerPopup);var a=i.lines[e].columns[o].control.type+"-"+Date.now();n(a,i)===!0?i.lines[e].columns[o].control.key=a:(a=i.lines[e].columns[o].control.type+"-"+Date.now(),n(a,i)===!0?i.lines[e].columns[o].control.key=a:a=i.lines[e].columns[o].control.type+"-"+Date.now()),i.lines[e].columns[o].control.edited=!0},r.applyConfigToSelectedControl=function(e){for(var o=e.controls.length-1;o>=0;o--)e.controls[o].id===e.selectedControl&&(e.controls[o].formlyLabel=e.temporyConfig.formlyLabel,e.controls[o].formlyRequired=e.temporyConfig.formlyRequired,e.controls[o].formlyDesciption=e.temporyConfig.formlyDesciption,e.controls[o].formlyPlaceholder=e.temporyConfig.formlyPlaceholder,e.controls[o].formlyOptions=e.temporyConfig.formlyOptions,"Date"===e.controls[o].id&&(e.controls[o].datepickerPopup=e.temporyConfig.datepickerPopup))},r.initProxyModel=function(e){return t(e)},r.bindConfigurationModelFromProxyModel=function(e,o,t){var l=angular.copy(r.proxyModel.temporyConfig);console.warn("debug edaEditCtrlControllerModalProxy"),console.dir(l),t.lines[e].columns[o].control.selectedControl=l.selectedControl,t.lines[e].columns[o].control.type=l.formlyType,t.lines[e].columns[o].control.subtype=l.formlySubtype,t.lines[e].columns[o].control.templateOptions={label:"",required:!1,description:"",placeholder:"",options:[]},t.lines[e].columns[o].control.templateOptions.label=l.formlyLabel,t.lines[e].columns[o].control.templateOptions.required=l.formlyRequired,t.lines[e].columns[o].control.templateOptions.description=l.formlyDesciption,t.lines[e].columns[o].control.templateOptions.placeholder=l.formlyPlaceholder,t.lines[e].columns[o].control.templateOptions.options=l.formlyOptions,"datepicker"===t.lines[e].columns[o].control.type&&(t.lines[e].columns[o].control.templateOptions.datepickerPopup=l.datepickerPopup);var i=t.lines[e].columns[o].control.type+"-"+Date.now();n(i,t)===!0?t.lines[e].columns[o].control.key=i:(i=t.lines[e].columns[o].control.type+"-"+Date.now(),n(i,t)===!0?t.lines[e].columns[o].control.key=i:i=t.lines[e].columns[o].control.type+"-"+Date.now()),t.lines[e].columns[o].control.edited=!0},r.setProxyModelFromConfigurationSelection=function(e,o,t){return"undefined"!=typeof e.lines[o].columns[t].control&&(r.proxyModel.selectedControl="undefined"!=typeof e.lines[o].columns[t].control.type?i(e.lines[o].columns[t].control):"none",r.proxyModel.temporyConfig.selectedControl="undefined"!=typeof e.lines[o].columns[t].control.type?i(e.lines[o].columns[t].control):"none",r.proxyModel.temporyConfig.formlyType="undefined"!=typeof e.lines[o].columns[t].control.type?e.lines[o].columns[t].control.type:"none",r.proxyModel.temporyConfig.formlySubtype="undefined"!=typeof e.lines[o].columns[t].control.subtype?e.lines[o].columns[t].control.subtype:"none",r.proxyModel.temporyConfig.formlyLabel="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.label?e.lines[o].columns[t].control.templateOptions.label:"",r.proxyModel.temporyConfig.formlyRequired="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.required?e.lines[o].columns[t].control.templateOptions.required:"",r.proxyModel.temporyConfig.formlyDesciption="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.description?e.lines[o].columns[t].control.templateOptions.description:"",r.proxyModel.temporyConfig.formlyPlaceholder="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.placeholder?e.lines[o].columns[t].control.templateOptions.placeholder:"",r.proxyModel.temporyConfig.formlyOptions="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.options?e.lines[o].columns[t].control.templateOptions.options:"","Date"===r.proxyModel.temporyConfig.selectedControl&&(r.proxyModel.temporyConfig.datepickerPopup="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.datepickerPopup?e.lines[o].columns[t].control.templateOptions.datepickerPopup:"")),r.proxyModel},r.getProxyModel=function(){return r.proxyModel};var a={toggle:!1,lineIndex:-1,columnIndex:-1,control:{}};r.getEditPanelModelAllModel=function(){return a},r.setEditPanelModelControl=function(e){var o=!1;return"undefined"!=typeof e&&(a=angular.copy(e),o=!0),o},r.getEditPanelModelColumnIndex=function(){return a.columnIndex},r.setEditPanelModelColumnIndex=function(e){var o=!1;return"undefined"!=typeof e&&(a.columnIndex=e,o=!0),o},r.getEditPanelModelLineIndex=function(){return a.lineIndex},r.setEditPanelModelLineIndex=function(e){var o=!1;return"undefined"!=typeof e&&(a.lineIndex=e,o=!0),o},r.getEditPanelModelControl=function(){return a.control},r.setEditPanelModelControl=function(e){var o=!1;return"undefined"!=typeof e&&(a.control=angular.copy(e),o=!0),o},r.getEditPanelModelToggle=function(){return a.toggle},r.setEditPanelModelToggle=function(e){var o=!1;return"undefined"!=typeof e&&(a.toggle=e,o=!0),o};var s={rows:[]};return r.basicSelectRowCollection=angular.copy(s),r.newOptionBasicSelect=angular.copy({saisie:""}),r.groupedSelectRowCollection=angular.copy(s),r.newOptionGroupedSelect=angular.copy({saisie:""}),r.GroupedSelectGroups=angular.copy({list:[]}),r.newGroupGroupedSelect=angular.copy({saisie:""}),r.groupSelectGroupClick=angular.copy({showList:!1}),r.radioRowCollection=angular.copy(s),r.newOptionRadio=angular.copy({saisie:""}),r.resetAllTemporyModels=function(){return r.basicSelectRowCollection=angular.copy(s),r.newOptionBasicSelect=angular.copy({saisie:""}),r.groupedSelectRowCollection=angular.copy(s),r.newOptionGroupedSelect=angular.copy({saisie:""}),r.GroupedSelectGroups=angular.copy({list:[]}),r.newGroupGroupedSelect=angular.copy({saisie:""}),r.groupSelectGroupClick=angular.copy({showList:!1}),r.radioRowCollection=angular.copy(s),r.newOptionRadio=angular.copy({saisie:""}),!0},r.bindSpecialCtrlTemporyModelsToProxyModel=function(){ "BasicSelect"===r.proxyModel.selectedControl&&r.bindBasicSelectToProxyModel(r.basicSelectRowCollection),"GroupedSelect"===r.proxyModel.selectedControl&&r.bindGroupedSelectToProxyModel(r.groupedSelectRowCollection),"Radio"===r.proxyModel.selectedControl&&r.bindRadioToProxyModel(r.radioRowCollection)},r.bindBasicSelectFromProxyModel=function(e){if(r.proxyModel.temporyConfig.formlyOptions.length>0)for(var o=0;o<=r.proxyModel.temporyConfig.formlyOptions.length-1;o++){var t={option:r.proxyModel.temporyConfig.formlyOptions[o].name,order:o,group:""};e.rows.push(t)}},r.bindBasicSelectToProxyModel=function(e){var o=[];if(r.proxyModel.temporyConfig.formlyOptions=o,e.rows.length>0)for(var t=0;t<=e.rows.length-1;t++){var l={name:e.rows[t].option,value:t,group:""};r.proxyModel.temporyConfig.formlyOptions.push(l)}},r.bindGroupedSelectFromProxyModel=function(e,o){if(r.proxyModel.temporyConfig.formlyOptions.length>0){for(var t=0;t<=r.proxyModel.temporyConfig.formlyOptions.length-1;t++){var l={option:r.proxyModel.temporyConfig.formlyOptions[t].name,order:t,group:r.proxyModel.temporyConfig.formlyOptions[t].group};e.rows.push(l)}var n=_.uniq(_.pluck(e.rows,"group"));angular.copy(n,o.list)}},r.bindGroupedSelectToProxyModel=function(e){r.proxyModel.temporyConfig.formlyOptions=[];for(var o=0;o<=e.rows.length-1;o++){var t={name:e.rows[o].option,value:o,group:e.rows[o].group};r.proxyModel.temporyConfig.formlyOptions.push(t)}},r.bindRadioFromProxyModel=function(e){if(r.proxyModel.temporyConfig.formlyOptions.length>0)for(var o=0;o<=r.proxyModel.temporyConfig.formlyOptions.length-1;o++){var t={option:r.proxyModel.temporyConfig.formlyOptions[o].name,order:o,group:""};e.rows.push(t)}},r.bindRadioToProxyModel=function(e){var o=[];if(r.proxyModel.temporyConfig.formlyOptions=o,e.rows.length>0)for(var t=0;t<=e.rows.length-1;t++){var l={name:e.rows[t].option,value:t,group:""};r.proxyModel.temporyConfig.formlyOptions.push(l)}},r}]),angular.module("edaApp.services.formFieldManage",[]).factory("formFieldManage",["EasyFormGenFormlyBindingModels",function(e){function o(e){var o=[];angular.copy(o,e)}function t(o,t,l){var n=t.lines[l].columns.length,i=o.push({className:"row",fieldGroup:[]})-1;t.lines[l].columns.forEach(function(t,l){var r={};if("undefined"!=typeof r&&"none"!==t.control.type){if("header"===t.control.type||"subTitle"===t.control.type){var a=t.control.templateOptions.description;r.template=e.getHeaderTemplateForNcolumnLine(n,a).template,r.className=e.getRawHeaderTemplates().selectedClass}else r=e.getFormlyControlTemplateForNcolumnLine(n,t.control.type),r.className=t.control.className,r.type=t.control.type,r.key=t.control.key,r.templateOptions.type=t.control.templateOptions.type,r.templateOptions.label=t.control.templateOptions.label,r.templateOptions.required=t.control.templateOptions.required,r.templateOptions.placeholder=t.control.templateOptions.placeholder,r.templateOptions.description=t.control.templateOptions.description,r.templateOptions.options=[].concat(t.control.templateOptions.options),"undefined"!=typeof r.templateOptions.datepickerPopup&&(t.control.templateOptions.datepickerPopup=r.templateOptions.datepickerPopup);o[i].fieldGroup.push(r)}})}function l(e){var o={};return angular.copy(o,e),!0}function n(e,o){var t={noError:!1,title:"",Message:""};return t.noError=!1,t.title=e,t.Message=o,t}function i(e,o){var t={noError:!1,title:"",Message:""};return t.noError=!0,t.title=e,t.Message=o,t}var r={};return r.initConfigurationEditFromScratch=function(o,t){var l=e.getEasyFormInitialStateConfigurationModel(t);angular.copy(l,o)},r.bindConfigurationLines=function(o,t,l){if("[object Array]"===Object.prototype.toString.call(t)){var r=e.getEasyFormReloadConfigurationModel(l);return r.lines=[].concat(t),angular.copy(r,o),i("configuration model is bound","lines are bound to configuration model.")}return n("lines is not an array","Checks lines type, it is not an array.")},r.applyConfigurationToformlyModel=function(e,n,i){o(n),l(i);for(var r=e.lines.length,a=0;r>a;a++)t(n,e,a)},r}]),angular.module("edaApp.services.formsByIdService",["ngResource"]).factory("formsByIdService",["$resource",function(e){return e("/api/formGen/:id",{id:"@id"},{})}]),angular.module("edaApp.services.selectOptionManage",[]).factory("selectOptionManage",[function(){function e(e,o){var t={resultFlag:!1,details:""};if("undefined"==typeof o)return t.resultFlag=!1,t.details="Entered option is empty",t;if(""!==o){for(var l=e.rows.length-1;l>=0;l--)if(e.rows[l].option===o)return t.resultFlag=!1,t.details="Entered option is not unique",t;return t.resultFlag=!0,t.details="",t}return t.resultFlag=!1,t.details="Entered option is empty",t}function o(e){var o={rows:[]};angular.copy(o,e)}return{testMe:function(){return"selectOptionManage is here."},initModel:function(e){o(e)},isOptionUnique:function(e,o){for(var t=e.rows.length-1;t>=0;t--)if(e.rows[t].option===o)return!1;return!0},isOptionValidFormat:function(e){return""!==e?!0:!1},addNewOptionRadio:function(o,t){var l={resultFlag:!1,details:""},n=e(o,t);if(n.resultFlag===!0){var i={option:t,order:o.rows.length};return o.rows.push(i),l.resultFlag=!0,l.details="",l}return angular.copy(n,l),l},addNewOptionBasicSelect:function(o,t){var l={resultFlag:!1,details:""},n=e(o,t);if(n.resultFlag===!0){var i={option:t,order:o.rows.length};return o.rows.push(i),l.resultFlag=!0,l.details="",l}return angular.copy(n,l),l},addNewOptionGroupedSelect:function(o,t,l){var n={resultFlag:!1,details:""},i=e(o,t);if(i.resultFlag===!0){var r={option:t,group:l,order:o.rows.length};return o.rows.push(r),n.resultFlag=!0,n.details="",n}return angular.copy(i,n),n},removeOption:function(e,o){var t={resultFlag:!1,details:""};return-1!==o?(e.rows.splice(o,1),t.resultFlag=!0,t.details="",t):(t.resultFlag=!1,t.details="Option index not valid",t)},upthisOption:function(e,o){var t={resultFlag:!1,details:""};if(o>-1){if(o>0){if(e.rows[o-1]){var l=e.rows[o];return e.rows.splice(o,1),e.rows.splice(o-1,0,l),t.resultFlag=!0,t.details="",t}return t.resultFlag=!1,t.details="Can't retreive option from option index",t}return t.resultFlag=!0,t.details="",t}return t.resultFlag=!1,t.details="Option index not valid",t},downthisOption:function(e,o){var t={resultFlag:!1,details:""};if(o>-1){if(o','\t\",'\t\",\"
\"].join(\"\")}function t(){return['
','
','\t
','\t
','\t
  Edit :
',\"\t
\",\"\t
\",'\t
','\t
','\t
Column will be blank
',\"\t
\",\"\t
\",\"
\",f,\"
\"].join(\"\")}function l(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function n(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function i(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function r(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function a(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
',' ','
','
    ','
  1. ',\" {{dateformat}}\",\"
  2. \",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function s(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function d(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function c(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
',' ',\"
\",\"
\",'
',\"
\",'
','
',' ',\"
\",'
',' ',\"
\",\"
\",\"
\",\"
\",'
','
',' ',\"
\",\"
\",'
','
','
','
','
','
- no radio : add new radio values -
',\"
\",' 0\" class=\"table table-striped\">',\" \",\" \",' ',' ',' ',\" \",\" \",' ',' \",' ',\" \",\" \",\" \",' ',' ',' ',' \",\" \",\" \",\"
orderoption
',' ',\"
{{$index}}{{radioRow.option}}','
',' ',' ',' ',\"
\",\"
\",\"
\",\"
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function p(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function u(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
',' ',\"
\",\"
\",'
',\"
\",'
','
',' ',\"
\",'
',' ',\"
\",\"
\",\"
\",\"
\",'
','
',' ',\"
\",\"
\",'
','
','
','
','
','
- no option : add new options -
',\"
\",' 0\" class=\"table table-striped\">',\" \",\" \",' ',' ',' ',\" \",\" \",' ',' \",' ',\" \",\" \",\" \",' ',' ',' ',' \",\" \",\" \",\"
orderoption
',' ',\"
{{$index}}{{basicSelectRow.option}}','
',' ',' ',' \t',\"
\",\"
\",\"
\",\"
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function m(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
',' ',\"
\",\"
\",'
',\"
\",'
','
',' ',\"
\",'
',' ',\"
\",\"
\",\"
\",\"
\",'
','
',' ',\"
\",\"
\",'
',\"
\",'
','
',' ',\"
\",'
',' ',\"
\",\"
\",\"
\",\"
\",'
','
',' ',\"
\",\"
\",'
','
','
','
','
','
- no option : add new options -
',\"
\",' 0\" class=\"table table-striped\">',\" \",\" \",' ',' ',' ',' ',\" \",\" \",' ',' ',' \",' ',\" \",\" \",\" \",' ',' ',' \",' ',' \",\" \",\" \",\"
ordergroupoption
',' ',\"
{{$index}}','
','
','

- add new groups -

',\"
\",'
0\">','
    ','
  1. ',\" {{GroupedSelectGroup}}\",\"
  2. \",\"
\",\"
\",\"
\",'
',\" {{groupedSelectRow.group}}\",\"
\",\"
{{groupedSelectRow.option}}','
',' ',' ',' ',' ',\"
\",\"
\",\"
\",\"
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}var f=o();e.put(\"editPanelBlankCtrl-tpls.html\",t()),e.put(\"editPanelHeaderCtrl-tpls.html\",l()),e.put(\"editPanelSubTitleCtrl-tpls.html\",n()),e.put(\"editPanelTextInputCtrl-tpls.html\",i()),e.put(\"editPanelPasswordCtrl-tpls.html\",r()),e.put(\"editPanelDateCtrl-tpls.html\",a()),e.put(\"editPanelTextareaCtrl-tpls.html\",s()),e.put(\"editPanelRichTextEditorCtrl-tpls.html\",d()),e.put(\"editPanelRadioCtrl-tpls.html\",c()),e.put(\"editPanelCheckboxCtrl-tpls.html\",p()),e.put(\"editPanelBasicSelectCtrl-tpls.html\",u()),e.put(\"editPanelGroupedSelectCtrl-tpls.html\",m())}angular.module(\"edaApp\",[\"edaApp.providers\",\"edaApp.controllers\",\"edaApp.services\",\"edaApp.filters\",\"edaApp.directives\",\"textAngular\",\"textAngularSetup\",\"ngAnimate\",\"toaster\",\"formly\",\"formlyBootstrap\",\"ui.bootstrap\",\"nya.bootstrap.select\",\"dndLists\",\"mgcrea.ngStrap.affix\",\"pageslide-directive\"]).value(\"easyFormGenVersion\",\"v1.0.14\").run(e),\ne.$inject=[\"$templateCache\"],angular.module(\"edaApp\").config([\"dragDropConfigProvider\",function(e){e.setItemsNotTocount({itemBeingDragged:\"dndDraggingSource\"})}]),angular.module(\"edaApp\").config([\"formlyConfigProvider\",\"EasyFormGenFormlyBindingModelsProvider\",\"dragDropConfigProvider\",function(e,o,t){function l(e){return e=e.replace(/[\\-_\\s]+(.)?/g,function(e,o){return o?o.toUpperCase():\"\"}),e.replace(/^([A-Z])/,function(e,o){return o?o.toLowerCase():\"\"})}e.setType({name:\"blank\",template:\"
\"}),o.addEasyFormControlToList({id:\"empty\",name:\"no control\",subtitle:\"no control\",group:\"Blank\",formlyType:\"blank\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
',\"
\",\"
\",\"
\"].join(\"\"),control:\"empty\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"blank\"}),o.addEasyFormControlToList({id:\"Header\",name:\"Header\",subtitle:\"no control\",group:\"Decoration\",formlyType:\"header\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','

Header

',\"
\",\"
\",\"
\",\"
\"].join(\"\"),control:\"Header\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"headers\"});var n=['
','
','

{{options.templateOptions.placeholder}}

',\"
\",\"

\",\"
\"].join(\" \");e.setType({name:\"subTitle\",template:n}),o.addEasyFormControlToList({id:\"Subtitle\",name:\"Subtitle\",subtitle:\"no control\",group:\"Decoration\",formlyType:\"subTitle\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','

SubTitle

',\"
\",\"
\",\"
\",\"
\"].join(\"\"),control:\"Subtitle\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"headers\"}),o.addEasyFormControlToList({id:\"TextInput\",name:\"Text input\",subtitle:\"Text input\",group:\"input\",formlyType:\"input\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' \",'
',' ','

Description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"TextInput\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"inputs\"}),o.addEasyFormControlToList({id:\"Password\",name:\"Password\",subtitle:\"Password\",group:\"input\",formlyType:\"input\",formlySubtype:\"password\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' \",'
',' ','

Description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"Password\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"inputs\"});var i=[\"date-disabled\",\"custom-class\",\"show-weeks\",\"starting-day\",\"init-date\",\"min-mode\",\"max-mode\",\"format-day\",\"format-month\",\"format-year\",\"format-day-header\",\"format-day-title\",\"format-month-title\",\"year-range\",\"shortcut-propagation\",\"datepicker-popup\",\"show-button-bar\",\"current-text\",\"clear-text\",\"close-text\",\"close-on-date-selection\",\"datepicker-append-to-body\"],r=[\"datepicker-mode\",\"min-date\",\"max-date\"],a={};angular.forEach(i,function(e){a[l(e)]={attribute:e}}),angular.forEach(r,function(e){a[l(e)]={bound:e}});var s=[\"\"].join(\" \");e.setType({name:\"datepicker\",template:s,wrapper:[\"bootstrapLabel\",\"bootstrapHasError\"],controller:[\"$scope\",function(e){e.open=function(o){o.preventDefault(),o.stopPropagation(),e.opened=!0}}],defaultOptions:{ngModelAttrs:a,templateOptions:{addonLeft:{\"class\":\"glyphicon glyphicon-calendar\",onClick:function(e){e.templateOptions.isOpen=!e.templateOptions.isOpen}},onFocus:function(e,o,t){t.to.isOpen=!t.to.isOpen},datepickerOptions:{}}}}),o.addEasyFormControlToList({id:\"Date\",name:\"Date\",subtitle:\"Date\",group:\"input\",formlyType:\"datepicker\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],datepickerPopup:\"dd-MMMM-yyyy\"}),t.addControlToDragDropPresentationModel({label:['
','
',' \",'
',' \t\t\t\t\t
',' \t\t\t\t\t',' \t\t\t\t\t',\" \t\t\t\t\t
\",\"\t\t\t\t\t
\",'

description

',\"
\",\"
\"].join(\"\"),control:\"Date\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"inputs\"}),o.addEasyFormControlToList({id:\"Texarea\",name:\"Textarea\",subtitle:\"Textarea\",group:\"Textarea\",formlyType:\"textarea\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
',' ','

description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"Texarea\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"textareas\"});var d=['',\"\"].join(\" \");e.setType({name:\"richEditor\",template:d}),o.addEasyFormControlToList({id:\"RichTextEditor\",name:\"RichTextEditor\",subtitle:\"RichTextEditor\",group:\"Textarea\",formlyType:\"richEditor\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
',' ','

description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"RichTextEditor\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"textareas\"}),o.addEasyFormControlToList({id:\"Radio\",name:\"Radio\",subtitle:\"Radio\",options:[],group:\"Radio\",formlyType:\"radio\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
','
','
',' \",'
',' \",\"
\",'

description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"Radio\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"radios\"}),o.addEasyFormControlToList({id:\"Checkbox\",name:\"Checkbox\",subtitle:\"Checkbox\",group:\"Checkbox\",formlyType:\"checkbox\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' \",\"
\",'

description

',\"
\"].join(\"\"),control:\"Checkbox\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"checkboxes\"});var c=['
    ','
  1. ',\" {{option.name}} \",\"
  2. \",\"
\"].join(\"\");e.setType({name:\"basicSelect\",template:c}),o.addEasyFormControlToList({id:\"BasicSelect\",name:\"Basic select\",subtitle:\"Basic select\",options:[],group:\"Select\",formlyType:\"basicSelect\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','
    ',' \",\"
\",\"
\"].join(\"\"),control:\"BasicSelect\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"selects\"});var p=['
    ','
  1. ',' {{$group}}',\" \",\" {{option.name}}\",' ',\" \",\"
  2. \",\"
\"].join(\" \");e.setType({name:\"groupedSelect\",template:p}),o.addEasyFormControlToList({id:\"GroupedSelect\",name:\"Grouped Select\",subtitle:\"Grouped Select\",options:[],group:\"Select\",formlyType:\"groupedSelect\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','
    ',' \",\"
\",\"
\"].join(\"\"),control:\"GroupedSelect\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"selects\"})}]),angular.module(\"edaApp\").run([\"$templateCache\",function(e){e.put(\"editModalTemplate.html\",\"

no use right now

\")}]),angular.module(\"edaApp.providers.dragDropConfigProvider\",[]).provider(\"dragDropConfig\",[function(){function e(e,o){if(l[0].length>0){if(l[0].lengthi;i++)l[0].push([]);t.containerConfig.decoration.forEach(function(t){o.addToGroupCtrl===t.groupId&&l[0][t.WhenIndex].push(e)})}else t.containerConfig.decoration.forEach(function(){l[0].push([])}),t.containerConfig.decoration.forEach(function(t){o.addToGroupCtrl===t.groupId&&l[0][t.WhenIndex].push(e)})}var o=[{cssClass:\"col-md-12\",numberItemPerRow:0},{cssClass:\"col-md-12\",numberItemPerRow:1},{cssClass:\"col-md-6\",numberItemPerRow:2},{cssClass:\"col-md-4\",numberItemPerRow:3}],t={dropZoneConfig:{decoration:[{WhenIndex:0,ApplycssClass:\"col-md-4\",fontAwesomeIcon:\"fa fa-level-up\",title:\"Drag control from here : \"},{WhenIndex:1,ApplycssClass:\"col-md-8\",fontAwesomeIcon:\"fa fa-level-down\",title:\"Drop control into here : \"}],verboseMode:!1},containerConfig:{decoration:[{WhenIndex:0,ApplycssClass:\"col-md-12\",title:\"Blank : \",groupId:\"blank\",isCollapsed:!0},{WhenIndex:1,ApplycssClass:\"col-md-12\",title:\"Headers : \",groupId:\"headers\",isCollapsed:!0},{WhenIndex:2,ApplycssClass:\"col-md-12\",title:\"Text inputs : \",groupId:\"inputs\",isCollapsed:!0},{WhenIndex:3,ApplycssClass:\"col-md-12\",title:\"Textareas : \",groupId:\"textareas\",isCollapsed:!0},{WhenIndex:4,ApplycssClass:\"col-md-12\",title:\"Radios : \",groupId:\"radios\",isCollapsed:!0},{WhenIndex:5,ApplycssClass:\"col-md-12\",title:\"Checkboxes : \",groupId:\"checkboxes\",isCollapsed:!0},{WhenIndex:6,ApplycssClass:\"col-md-12\",title:\"Selects : \",groupId:\"selects\",isCollapsed:!0}],verboseMode:!1,collapseEnabled:!0,collapseCtrl:[{atIndex:0,collapse:!0},{atIndex:1,collapse:!0}]},itemConfig:{verboseMode:!1}},l=[[],[[]]],n={itemBeingDragged:\"\"};this.setListItemCssClass=function(e){o=[].concat(e)},this.getItemsNotTocount=function(){return n},this.setItemsNotTocount=function(e){n=angular.copy(e)},this.addControlToDragDropPresentationModel=function(o,t){\"undefined\"!=typeof o&&\"undefined\"!=typeof t&&e(o,t)},this.getDragDropPresentationModel=function(){return l},this.$get=[function(){var e={};return e.getListItemCssClass=function(){return o},e.getItemsNotToCount=function(){return n},e.getItemCssDependingNumberItemsInRow=function(e){if(\"undefined\"!=typeof e){for(var t=\"\",l=o.length-1;l>=0;l--)o[l].numberItemPerRow===e&&(t=o[l].cssClass);return t}return\"\"},e.getDistinctItemCssClass=function(){var e=[];return angular.forEach(o,function(o){var t=o.cssClass;if(0===e.length)e.push(t);else{var l=!0;angular.forEach(e,function(e){var o=e;t===o&&(l=!1)}),l&&e.push(t)}}),e},e.getDragDropConfigModel=function(){return t},e.setDragDropConfigContainerDecorationCollapse=function(e,o,t){return\"undefined\"!=typeof o&&\"undefined\"!=typeof t&&o===parseInt(o,10)&&(e.containerConfig.decoration[o].isCollapsed=t),!0},e.getDragDropPresentationModel=function(){return l},e}]}]),angular.module(\"edaApp.providers.EasyFormGenFormlyBindingModels\",[]).provider(\"EasyFormGenFormlyBindingModels\",[function(){var e={controls:[],selectedControl:\"none\",temporyConfig:{selectedControl:\"none\",formlyLabel:\"label\",formlyRequired:!1,formlyDesciption:\"\",formlyPlaceholder:\"\",formlyOptions:[]}},o={line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]},t={control:{type:\"none\",key:\"none\"}},l={submitButtonText:\"submit\",cancelButtonText:\"cancel\",lines:[].concat(o)},n={activeLine:1,listConfigStep:[\"init\",\"first\",\"second\",\"third\"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0},i={submitButtonText:\"submit\",cancelButtonText:\"cancel\",lines:[]},r={cssClass:[\"col-xs-12\",\"col-xs-6\",\"col-xs-4\"],textContent:\"\",html_part1:['
','

'].join(\"\"),html_part3:this.textContent,html_part4:[\"

\",\"
\",\"

\"].join(\"\"),simpleHtml1:['

'].join(\"\"),simpleHtml2:[\"

\",\"
\"].join(\"\")},a={className:[\"col-xs-12\",\"col-xs-6\",\"col-xs-4\"],type:\"\",key:\"\",templateOptions:{type:\"\",label:\"\",required:\"\",placeholder:\"\",description:\"\",options:\"\"}},s=[{controlType:\"datepicker\",properties:[{isRoot:!1,isTemplateOptions:!0,value:\"datepickerPopup\"}]}];this.getAllParticularControlProperties=function(){return s},this.addParticularControlProperties=function(e){if(\"controlType\"in e&&\"properties\"in e){var o=!1;s.length>0&&s.forEach(function(t){t.controlType===e.controlType&&(t.properties=[].concat(e.properties),o=!0)}),o||s.push(e)}return s},this.getEasyFormListControls=function(){return e},this.addEasyFormControlToList=function(o){\"undefined\"!=typeof o&&e.controls.push(o)},this.getHeaderTemplates=function(){return r},this.addHeaderTemplateCssClass=function(e){\"undefined\"!=typeof e&&r.cssClass.push(e)},this.getFormlyControlTemplate=function(){return a},this.addformlyControlTemplatesCssClass=function(e){\"undefined\"!=typeof e&&a.className.push(e)},this.setFormlyControlTemplate=function(e){return\"className\"in e&&\"type\"in e&&\"key\"in e&&\"templateOptions\"in e&&(a=angular.copy(e)),!0},this.$get=[function(){var d={};return d.getEasyFormListControls=function(){return e},d.getEasyFormInitialStateConfigurationModel=function(e){var o=angular.copy(l);return\"undefined\"!=typeof e&&e&&angular.extend(o,n),o},d.getEasyFormReloadConfigurationModel=function(e){var o=angular.copy(i);return\"undefined\"!=typeof e&&e&&angular.extend(o,n),o},d.getEasyFormEmptyConfigurationLineModel=function(){return o},d.getEasyFormConfigurationEmptyControlModel=function(){return t},d.getRawHeaderTemplates=function(){return r},d.getHeaderTemplateForNcolumnLine=function(e,o){if(\"undefined\"!=typeof e&&\"undefined\"!=typeof o&&e===parseInt(e,10)&&e<=r.cssClass.length){var t={};return t.className=r.cssClass[e-1],r.textContent=o,r.selectedClass=t.className,t.template=[r.simpleHtml1,o,r.simpleHtml2].join(\"\"),t}},d.getRawFormlyControlTemplates=function(){return a},d.getFormlyControlTemplateForNcolumnLine=function(e,o){if(\"undefined\"!=typeof e&&e===parseInt(e,10)&&e<=a.className.length){var t=angular.copy(a);return t.className=a.className[e-1],\"undefined\"!=typeof o&&s.forEach(function(e){e.controlType===o&&e.properties.forEach(function(e){e.isRoot&&(t[e.value]=\"\"),e.isTemplateOptions&&(t.templateOptions[e.value]=\"\")})}),t}},d}]}]),angular.module(\"edaApp.providers\",[\"edaApp.providers.dragDropConfigProvider\",\"edaApp.providers.EasyFormGenFormlyBindingModels\",function(){}]),angular.module(\"edaApp.controllers\",[\"edaApp.controllers.edaMainController\",\"edaApp.controllers.edaEditController\",\"edaApp.controllers.edaEditMODALController\",\"edaApp.controllers.edaEditPanelController\"]),angular.module(\"edaApp.controllers.edaEditController\",[]).controller(\"edaEditController\",[\"$scope\",\"easyFormGenVersion\",\"$filter\",\"$anchorScroll\",\"toaster\",\"$timeout\",\"$modal\",\"$log\",\"formFieldManage\",\"formsByIdService\",\"controllerModalProxy\",\"dragDropItemDecorationService\",\"dragDropConfig\",\"ddModelConfModelProxyService\",\"ddItemRightClickedManager\",function(e,o,t,l,n,i,r,a,s,d,c,p,u,m,f){function g(){n.pop({type:\"info\",timeout:2e3,title:\"should save data model if it were not a static example\",body:\"data :\"+t(\"json\")(e.vm.model,4),showCloseButton:!0})}function y(){s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}e.easyFormGeneratorVERSION=o,e.tab={editTab:{active:!0},previewTab:{active:!1}},e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.ihm={preview:{formlyModelViewExpanded:!0,formlyFieldsViewExpanded:!0,customizeFormButtonsExpanded:!0,saveThisFormExpanded:!0}},e.easyFormDragDropProperties=u.getDragDropConfigModel(),e.dragDropModel=[].concat(u.getDragDropPresentationModel()),e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.configuration={},s.initConfigurationEditFromScratch(e.configuration,!1),c.initProxyModel(),e.collapseAllGroupControl=function(o){angular.forEach(e.easyFormDragDropProperties.containerConfig.decoration,function(t){t.WhenIndex!==o&&u.setDragDropConfigContainerDecorationCollapse(e.easyFormDragDropProperties,t.WhenIndex,!0)})},e.vm.onSubmit=g,e.resetToZeroModel=function(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()},e.countConfigurationModelLines=function(){return e.configuration.lines.length},e.setActiveLineNumber=function(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)},e.upThisLine=function(o){if(o>-1&&e.configuration.lines[o-1]){var t=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,t),e.configuration.activeLine=1}s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.downThisLine=function(o){if(o>-1&&e.configuration.lines[o+1]){var t=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,t),e.configuration.activeLine=1}s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.removeThisLine=function(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):i(function(){n.pop({type:\"warning\",title:\"Last line\",body:\"Can't delete the last line\",showCloseButton:!0})},100),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))},e.increaseNumberOfColumns=function(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.saveThisForm=function(){if(\"undefined\"==typeof e.configuration.formName)return n.pop({type:\"warning\",timeout:2e3,title:\"Form name is undefined\",body:\"Form has not been saved.\",showCloseButton:!0}),!1;if(\"\"===e.configuration.formName)return n.pop({type:\"warning\",timeout:2e3,title:\"Form name is required\",body:\"Form has not been saved.\",showCloseButton:!0}),!1;n.pop({type:\"wait\",timeout:1e4,title:\"Form is being saved\",body:\"Wait.\",showCloseButton:!0});var o=new d;return o.formName=e.configuration.formName,o.submitButtonText=e.configuration.submitButtonText,o.cancelButtonText=e.configuration.cancelButtonText,o.formlyField=JSON.stringify(e.configuration.lines),n.clear(),n.pop({type:\"info\",timeout:2e3,title:\"Form would be saved if it were not a static example\",body:\"\",showCloseButton:!0}),!0},e.nyaSelect={},c.initNyaSelect(e.nyaSelect),e.animationsEnabled=!0,e.showModalAddCtrlToColumn=function(o,t,l){var n=r.open({animation:e.animationsEnabled,templateUrl:\"editModalTemplate.html\",controller:\"edaEditMODALController\",size:\"lg\",resolve:{nyaSelect:function(){return c.getNyASelectFromSelectedLineColumn(e.nyaSelect,e.configuration,t,l)}}});n.result.then(function(o){c.bindConfigurationModelFromModalReturn(t,l,o,e.configuration),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},function(){a.info(\"Modal dismissed at: \"+new Date)})},e.dragoverCallbackContainer=function(e,o,t){return 0===t?!1:!0},e.dropCallback=function(o,t,l,n,r,a){if(n){if(\"itemType\"===a&&!l.label)return!1;if(\"containerType\"===a&&!angular.isArray(l))return!1}var d=i(function(){e.configuration=angular.copy(m.refreshAllConfigurationFromDragAndDropModel(e.configuration,e.dragDropModel)),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel)},200);return e.$on(\"$destroy\",function(){i.cancel(d)}),l},e.dndItemMoved=function(o,t,l){o>0&&e.dragDropModel[o][t].splice(l,1)},e.dragoverCallbackItems=function(e,o,t,l){return 0===o?!1:!0},e.disableItemDropIf=function(){},e.dropCallbackItems=function(o,t,l,n,r,a,d,c,p,u){if(c){if(\"itemType\"===u&&!d.label)return!1;if(\"containerType\"===u&&!angular.isArray(d))return!1}var g=i(function(){e.configuration=angular.copy(m.refreshAllConfigurationFromDragAndDropModel(e.configuration,e.dragDropModel)),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel)},200);return f.setUnRightClicked(d),e.$on(\"$destroy\",function(){i.cancel(g)}),d},e.editPanelModel={toggle:!1},e.saveFromEditPanel=function(){c.bindSpecialCtrlTemporyModelsToProxyModel(),c.bindConfigurationModelFromProxyModel(c.getEditPanelModelLineIndex(),c.getEditPanelModelColumnIndex(),e.configuration),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel),c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle(),f.resetAllDragDropItemSelectedState(e.dragDropModel)},e.closeEditPanel=function(){f.resetAllDragDropItemSelectedState(e.dragDropModel),c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle()},e.debugProxyModel=c.ProxyModel,e.setRightClicked=function(e,o){o.rightCliked=!0},e.toggleEditPanel=function(o,t,l,n){if(f.resetAllDragDropItemSelectedState(e.dragDropModel),c.getEditPanelModelToggle()){if(c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle(),\"undefined\"!=typeof c.getEditPanelModelLineIndex()&&\"undefined\"!=typeof c.getEditPanelModelColumnIndex()&&\"undefined\"!=typeof c.getEditPanelModelControl())if(c.getEditPanelModelLineIndex()===t&&c.getEditPanelModelColumnIndex()===l&&angular.equals(c.getEditPanelModelControl(),n));else{n.rightCliked=!0;var r=i(function(){c.setEditPanelModelLineIndex(t),c.setEditPanelModelColumnIndex(l),c.setEditPanelModelControl(n),c.setProxyModelFromConfigurationSelection(e.configuration,t,l),c.setEditPanelModelToggle(!0),e.editPanelModel.toggle=c.getEditPanelModelToggle()},200);e.$on(\"$destroy\",function(){i.cancel(r)})}}else n.rightCliked=!0,c.setEditPanelModelLineIndex(t),c.setEditPanelModelColumnIndex(l),c.setEditPanelModelControl(n),c.setProxyModelFromConfigurationSelection(e.configuration,t,l),c.setEditPanelModelToggle(!0),e.editPanelModel.toggle=c.getEditPanelModelToggle()},e.removeThisLine=function(o){e.dragDropModel[1].splice(o,1)},e.model=[],e.insertNewLine=function(){y(),e.dragDropModel[1].push([])}}]),angular.module(\"edaApp.controllers.edaEditMODALController\",[]).controller(\"edaEditMODALController\",[\"$scope\",\"$modalInstance\",\"nyaSelect\",\"toaster\",\"$timeout\",\"selectOptionManage\",\"controllerModalProxy\",function(e,o,t,l,n,i,r){function a(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.radioRowCollection.rows.push(t)}}function s(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.radioRowCollection.rows.length>0)for(var t=0;t<=e.radioRowCollection.rows.length-1;t++){var l={name:e.radioRowCollection.rows[t].option,value:t,group:\"\"};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function d(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.basicSelectRowCollection.rows.push(t)}}function c(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.basicSelectRowCollection.rows.length>0)for(var t=0;t<=e.basicSelectRowCollection.rows.length-1;t++){var l={name:e.basicSelectRowCollection.rows[t].option,value:t,group:\"\"};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function p(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0){for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:e.nyaSelect.temporyConfig.formlyOptions[o].group};e.groupedSelectRowCollection.rows.push(t)}var l=_.uniq(_.pluck(e.groupedSelectRowCollection.rows,\"group\"));angular.copy(l,e.GroupedSelectGroups.list)}}function u(){e.nyaSelect.temporyConfig.formlyOptions=[];for(var o=0;o<=e.groupedSelectRowCollection.rows.length-1;o++){var t={name:e.groupedSelectRowCollection.rows[o].option,value:o,group:e.groupedSelectRowCollection.rows[o].group};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function m(){e.nyaSelect.temporyConfig.datepickerPopup=e.demodt.formats[0]}function f(){e.nyaSelect.temporyConfig={formlyLabel:\"\",formlyRequired:!1,formlyPlaceholder:\"\",formlyDesciption:\"\",formlyOptions:[]}}var g={rows:[]};if(e.radioRowCollection=g,e.newOptionRadio={saisie:\"\"},e.addNewOptionRadio=function(){var o=i.addNewOptionRadio(e.radioRowCollection,e.newOptionRadio.saisie);o.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionRadio.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionRadio={saisie:\"\"}},e.removeRadioRow=function(o){var t=i.removeOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},e.upThisRadioRow=function(o){var t=i.upthisOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.downThisRadioRow=function(o){var t=i.downthisOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.basicSelectRowCollection=g,e.newOptionBasicSelect={saisie:\"\"},e.addNewOptionBasicSelect=function(){var o=i.addNewOptionBasicSelect(e.basicSelectRowCollection,e.newOptionBasicSelect.saisie);o.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionBasicSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionBasicSelect={saisie:\"\"}},e.removeRow=function(o){var t=i.removeOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},e.upThisRow=function(o){var t=i.upthisOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.downThisRow=function(o){var t=i.downthisOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({\ntype:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.groupedSelectRowCollection=g,e.newOptionGroupedSelect={saisie:\"\"},e.GroupedSelectGroups={list:[]},e.newGroupGroupedSelect={saisie:\"\"},e.groupSelectGroupClick={showList:!1},e.showGroupListToChoose=function(){e.groupSelectGroupClick.showList=!e.groupSelectGroupClick.showList},e.addNewGroupToGroupedSelect=function(){if(\"\"!==e.newGroupGroupedSelect.saisie){for(var o=e.GroupedSelectGroups.list.length-1;o>=0;o--)e.GroupedSelectGroups.list[o]===e.newGroupGroupedSelect.saisie&&l.pop({type:\"warning\",timeout:2e3,title:\"Group already exists\",body:\"No group added.\",showCloseButton:!0});e.GroupedSelectGroups.list.push(e.newGroupGroupedSelect.saisie)}else l.pop({type:\"warning\",timeout:2e3,title:\"Not a valid group to add\",body:\"No group added.\",showCloseButton:!0});e.newGroupGroupedSelect.saisie=\"\"},e.addNewOptionGroupedSelect=function(){var o=i.addNewOptionGroupedSelect(e.groupedSelectRowCollection,e.newOptionGroupedSelect.saisie,\"\");o.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionGroupedSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionGroupedSelect={saisie:\"\"}},e.removeGroupedSelectRow=function(o){var t=i.removeOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},e.upThisGroupedSelectRow=function(o){var t=i.upthisOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.downThisGroupedSelectRow=function(o){var t=i.downthisOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.demodt={},e.today=function(){e.demodt.dt=new Date},e.today(),e.clear=function(){e.demodt.dt=null},e.open=function(o){o.preventDefault(),o.stopPropagation(),e.demodt.opened=!0},e.dateOptions={formatYear:\"yy\",startingDay:1,showWeeks:!0,initDate:null},e.demodt.formats=[\"dd-MMMM-yyyy\",\"yyyy/MM/dd\",\"dd.MM.yyyy\",\"shortDate\"],e.nyaSelect=t,e.nyaSelect.selectedControl=e.nyaSelect.temporyConfig.selectedControl,\"none\"!==t.selectedControl){for(var y=e.nyaSelect.controls.length-1;y>=0;y--)e.nyaSelect.controls[y].id===t.selectedControl&&(e.modelNyaSelect=t.controls[y]);\"BasicSelect\"===e.nyaSelect.selectedControl&&d(),\"GroupedSelect\"===e.nyaSelect.selectedControl&&p(),\"Radio\"===e.nyaSelect.selectedControl&&a()}e.selectThisControl=function(o){e.nyaSelect.selectedControl=\"none\",f();for(var t=e.nyaSelect.controls.length-1;t>=0;t--)e.nyaSelect.controls[t].id===o&&(e.nyaSelect.selectedControl=e.nyaSelect.controls[t].id);\"Date\"===e.nyaSelect.selectedControl&&m()},e.ok=function(){\"BasicSelect\"===e.nyaSelect.selectedControl&&c(),\"GroupedSelect\"===e.nyaSelect.selectedControl&&u(),\"Radio\"===e.nyaSelect.selectedControl&&s(),r.applyConfigToSelectedControl(e.nyaSelect),o.close(e.nyaSelect)},e.cancel=function(){o.dismiss(\"cancel\")}}]),angular.module(\"edaApp.controllers.edaEditPanelController\",[]).controller(\"edaEditPanelController\",[\"$scope\",\"toaster\",\"$timeout\",\"selectOptionManage\",\"controllerModalProxy\",function(e,o,t,l,n){function i(){a.proxyModel.temporyConfig={formlyLabel:\"\",formlyRequired:!1,formlyPlaceholder:\"\",formlyDesciption:\"\",formlyOptions:[]}}function r(){a.proxyModel.temporyConfig.datepickerPopup=a.demodt.formats[0]}var a=this;if(a.proxyModel=n.proxyModel,a.proxyModel.selectedControl=a.proxyModel.temporyConfig.selectedControl,a.basicSelectRowCollection=n.basicSelectRowCollection,a.newOptionBasicSelect=n.newOptionBasicSelect,a.groupedSelectRowCollection=n.groupedSelectRowCollection,a.newOptionGroupedSelect=n.newOptionGroupedSelect,a.GroupedSelectGroups=n.GroupedSelectGroups,a.newGroupGroupedSelect=n.newGroupGroupedSelect,a.groupSelectGroupClick=n.groupSelectGroupClick,a.radioRowCollection=n.radioRowCollection,a.newOptionRadio=n.newOptionRadio,n.resetAllTemporyModels(),\"none\"!==a.proxyModel.temporyConfig.selectedControl){for(var s=a.proxyModel.controls.length-1;s>=0;s--)a.proxyModel.controls[s].id===a.proxyModel.temporyConfig.selectedControl&&(a.modelproxyModel=a.proxyModel.controls[s]);\"BasicSelect\"===a.proxyModel.temporyConfig.selectedControl&&n.bindBasicSelectFromProxyModel(a.basicSelectRowCollection),\"GroupedSelect\"===a.proxyModel.temporyConfig.selectedControl&&n.bindGroupedSelectFromProxyModel(a.groupedSelectRowCollection,a.GroupedSelectGroups),\"Radio\"===a.proxyModel.temporyConfig.selectedControl&&n.bindRadioFromProxyModel(a.radioRowCollection)}a.updateSpecialControl=function(){return n.basicSelectRowCollection=a.basicSelectRowCollection,n.newOptionBasicSelect=a.newOptionBasicSelect,n.groupedSelectRowCollection=a.groupedSelectRowCollection,n.newOptionGroupedSelect=a.newOptionGroupedSelect,n.GroupedSelectGroups=a.GroupedSelectGroups,n.newGroupGroupedSelect=a.newGroupGroupedSelect,n.groupSelectGroupClick=a.groupSelectGroupClick,n.radioRowCollection=a.radioRowCollection,n.newOptionRadio=a.newOptionRadio,n.bindSpecialCtrlTemporyModelsToProxyModel(),!0},a.resetControl=function(){a.proxyModel.temporyConfig.formlyLabel=\"\",a.proxyModel.temporyConfig.formlyRequired=!1,a.proxyModel.temporyConfig.formlyPlaceholder=\"\",a.proxyModel.temporyConfig.formlyDesciption=\"\",a.proxyModel.temporyConfig.formlyOptions=[],a.proxyModel.temporyConfig.datepickerPopup=r()},a.selectThisControl=function(e){a.proxyModel.selectedControl=\"none\",i();for(var o=a.proxyModel.controls.length-1;o>=0;o--)a.proxyModel.controls[o].id===e&&(a.proxyModel.selectedControl=a.proxyModel.controls[o].id);\"Date\"===a.proxyModel.selectedControl&&r()},a.addNewOptionRadio=function(){var e=l.addNewOptionRadio(a.radioRowCollection,a.newOptionRadio.saisie);e.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:e.details,body:\"'\"+a.newOptionRadio.saisie+\"' cannot be added.\",showCloseButton:!0}),a.newOptionRadio={saisie:\"\"}},a.removeRadioRow=function(e){var t=l.removeOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},a.upThisRadioRow=function(e){var t=l.upthisOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.downThisRadioRow=function(e){var t=l.downthisOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.addNewOptionBasicSelect=function(){var e=l.addNewOptionBasicSelect(a.basicSelectRowCollection,a.newOptionBasicSelect.saisie);e.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:e.details,body:\"'\"+a.newOptionBasicSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),a.newOptionBasicSelect={saisie:\"\"}},a.removeRow=function(e){var t=l.removeOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},a.upThisRow=function(e){var t=l.upthisOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.downThisRow=function(e){var t=l.downthisOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.showGroupListToChoose=function(){a.groupSelectGroupClick.showList=!a.groupSelectGroupClick.showList},a.addNewGroupToGroupedSelect=function(){if(\"\"!==a.newGroupGroupedSelect.saisie){for(var e=a.GroupedSelectGroups.list.length-1;e>=0;e--)a.GroupedSelectGroups.list[e]===a.newGroupGroupedSelect.saisie&&o.pop({type:\"warning\",timeout:2e3,title:\"Group already exists\",body:\"No group added.\",showCloseButton:!0});a.GroupedSelectGroups.list.push(a.newGroupGroupedSelect.saisie)}else o.pop({type:\"warning\",timeout:2e3,title:\"Not a valid group to add\",body:\"No group added.\",showCloseButton:!0});a.newGroupGroupedSelect.saisie=\"\"},a.addNewOptionGroupedSelect=function(){var e=l.addNewOptionGroupedSelect(a.groupedSelectRowCollection,a.newOptionGroupedSelect.saisie,\"\");e.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:e.details,body:\"'\"+a.newOptionGroupedSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),a.newOptionGroupedSelect={saisie:\"\"}},a.removeGroupedSelectRow=function(e){var t=l.removeOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},a.upThisGroupedSelectRow=function(e){var t=l.upthisOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.downThisGroupedSelectRow=function(e){var t=l.downthisOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.demodt={},a.today=function(){a.demodt.dt=new Date},a.today(),a.clear=function(){a.demodt.dt=null},a.open=function(e){e.preventDefault(),e.stopPropagation(),a.demodt.opened=!0},a.dateOptions={formatYear:\"yy\",startingDay:1,showWeeks:!0,initDate:null},a.demodt.formats=[\"dd-MMMM-yyyy\",\"yyyy/MM/dd\",\"dd.MM.yyyy\",\"shortDate\"]}]),angular.module(\"edaApp.controllers.edaMainController\",[]).controller(\"edaMainController\",[function(){}]),angular.module(\"edaApp.directives.edaDdContentCounterDirective\",[]).directive(\"ddContentCounter\",[\"dragDropItemCounterService\",\"$timeout\",function(e,o){return{scope:{valueWhenPlaceholder:\"@ddValueWhenPlaceholder\",valueWhendragging:\"@ddValueWhenDragging\",fullModel:\"=ddFullModel\",currentIndex:\"@ddContentCounterCurrentIndex\",parentIndex:\"@ddContentCounterParentIndex\",forceRefresh:\"=ddContentCounterForceCssRefresh\"},restrict:\"A\",link:function(t,l){var n;t.$watch(function(){return l[0].children.length},function(i,r){if(i!==r){for(var a=0,s=[],d=l[0].children.length-1;d>=0;d--)e.isHtmlElementToCount(l[0].children[d].classList)?(a++,s.push({item:d,isReal:!0})):s.push({item:d,isReal:!1});t.contentRealCount=a,n=o(function(){e.updateLineItemCss(t.fullModel,s,t.parentIndex,t.currentIndex,a)},20)}}),t.$on(\"$destroy\",function(){console.warn(\"ddContentCounter timer destruction!\"),o.cancel(n)})}}}]),angular.module(\"edaApp.directives.edaDdDecorContainerDirective\",[]).directive(\"ddDecorContainer\",[function(){var e=['
','
 {{currentTitle}}
',\"
\",'
','
',\"
\"].join(\" \");return{scope:{styleParam:\"=ddContainerProperties\",isStillCollapsed:\"=ddContainerIsCollpased\",verboseMode:\"@ddContainerVerboseMode\",currentIndex:\"@ddContainerCurrentIndex\",collpaseAll:\"&ddCollapseAll\"},restrict:\"A\",template:e,transclude:!0,controller:function(e){e.config={isEnabled:!1},e.collapseFct=function(){e.collpaseAll({exceptThisOne:e.styleParam.WhenIndex}),e.isCollapsed=!e.isCollapsed,e.isStillCollapsed=e.isCollapsed},e.icons={closedClass:\"glyphicon glyphicon-eye-open\",opened:\"glyphicon glyphicon-eye-close\"},e.currentIconClass=function(){return e.isCollapsed?e.icons.closedClass:e.icons.opened}},link:function(e,o,t,l,n){var i=e.verboseMode,r=e.currentIndex;if(e.isCollapsed=!1,\"\"!==i){var a=angular.lowercase(i);(\"true\"===a||\"1\"===a)&&console.dir({whoAmI:\"I am verbose from ddDecorContainer link\",verbodeMode:a,ParentParentIndex:e.$parent.$parent.$index,ParentIndex:e.$parent.$index,currentIndex:r,styleParam:e.styleParam,columnindex:e.$parent.$parent.$parent.$parent.$index})}e.$watch(function(){return e.isStillCollapsed},function(o,t){o!==t&&0===e.$parent.$parent.$index&&(e.isCollapsed=o)}),e.config.isEnabled=!1,\"undefined\"!=typeof r&&\"\"!==r&&\"0\"===r&&\"undefined\"!=typeof e.styleParam.title&&(e.currentTitle=e.styleParam.title,e.config.isEnabled=!0,e.isCollapsed=!0),n(e.$parent,function(e){var t=angular.element(o.children()[1]);t.append(e)})}}}]),angular.module(\"edaApp.directives.edaDdDecorDropZoneDirective\",[]).directive(\"ddDecorDropZone\",[function(){var e=['
','
','
','
','

','  ',\" {{currentTitle}}\",'
',' \",\"
\",\"

\",\"
\",'
','
','
',\"
\",\"
\",\"
\",\"
\",\"
\",\"
\"].join(\" \");return{scope:{styleParam:\"=ddDropZoneProperties\",verboseMode:\"@ddDropZoneVerboseMode\",currentIndex:\"@ddDropZoneCurrentIndex\",addNewLineFct:\"&ddDropZoneAddNewLine\"},restrict:\"A\",template:e,transclude:!0,link:function(e){var o=e.verboseMode,t=e.currentIndex;if(e.headerConfig={HeaderButtonVisible:!1,affixAttr:\"bs-affix\",affixEnabled:!1},\"\"!==o){var l=angular.lowercase(o);(\"true\"===l||\"1\"===l)&&console.dir({whoAmI:\"I am verbose from ddDecorDropZone link\",verbodeMode:l,ParentParentIndex:e.$parent.$parent.$index,ParentIndex:e.$parent.$index,currentIndex:t,styleParam:e.styleParam})}\"undefined\"!=typeof t&&\"\"!==t&&(\"undefined\"!=typeof e.styleParam.title&&(e.currentTitle=e.styleParam.title),\"undefined\"!=typeof e.styleParam.fontAwesomeIcon&&(e.currentFontAwesome=e.styleParam.fontAwesomeIcon),\"1\"===t&&(e.headerConfig.HeaderButtonVisible=!0))}}}]),angular.module(\"edaApp.directives.edaDdDecorItemDirective\",[]).directive(\"ddDecorItem\",[\"dragDropConfig\",function(e){var o=[\"
\",'
',\"
\"].join(\" \");return{scope:{verboseMode:\"@ddItemVerboseMode\",currentIndex:\"@ddItemCurrentIndex\",parentIndex:\"@ddItemParentIndex\",parentParentIndex:\"@ddItemParentParentIndex\",lineItemsCount:\"@ddItemsCount\",cssClass:\"@ddItemCssClass\"},restrict:\"A\",template:o,transclude:!0,link:function(o,t,l,n,i){var r=o.verboseMode,a=o.currentIndex,s=o.parentIndex,d=e.getDistinctItemCssClass();if(angular.forEach(d,function(e){t.removeClass(e)}),t.addClass(o.cssClass),o.$watch(\"cssClass\",function(e,o){e!==o&&(angular.forEach(d,function(e){t.removeClass(e)}),t.addClass(e))}),\"\"!==r){var c=angular.lowercase(r);(\"true\"===c||\"1\"===c)&&console.dir({whoAmI:\"I am verbose from ddDecorItem directive link\",verbodeMode:c,ParentParentIndex:o.$parent.$parent.$index,ParentIndex:s,parentParentIndex:o.parentParentIndex,currentIndex:a,lineItemsCount:o.lineItemsCount})}\"0\"===o.parentParentIndex&&t.addClass(d[0]),i(o.$parent,function(e){var o=angular.element(t.children()[0]);o.append(e)})}}}]),angular.module(\"edaApp.directives.edaDdDecorLineDirective\",[]).directive(\"ddDecorLine\",[\"$timeout\",function(e){var o=['
',' ',\"
\",'
'].join(\" \");return{scope:{verboseMode:\"@ddLineVerboseMode\",currentIndex:\"@ddLineCurrentIndex\",parentIndex:\"@ddLineParentIndex\",removeLine:\"&ddRemoveLine\"},restrict:\"A\",template:o,transclude:!0,link:function(o,t,l,n,i){var r=o.verboseMode,a=o.currentIndex,s=o.parentIndex;if(o.deleteLine={},o.deleteLine.readyToDelete=!1,o.deleteLine.dblClickCount=0,o.isCollapsed=!1,\"\"!==r){var d=angular.lowercase(r);(\"true\"===d||\"1\"===d)&&console.dir({whoAmI:\"I am verbose from ddDecorLine directive link\",verbodeMode:d,ParentParentIndex:o.$parent.$parent.$index,ParentIndex:s,currentIndex:a})}o.removeMe=function(t){t.preventDefault(),t.stopPropagation(),\"1\"===o.parentIndex&&(1===o.deleteLine.dblClickCount&&(o.deleteLine.dblClickCount=0,o.deleteLine.readyToDelete=!1,o.removeLine(),e.cancel(c)),0===o.deleteLine.dblClickCount&&(o.deleteLine.dblClickCount=o.deleteLine.dblClickCount+1,o.deleteLine.readyToDelete=!0))};var c;o.cancelDelete=function(t){c=e(function(){o.deleteLine.dblClickCount=0,o.deleteLine.readyToDelete=!1},500)},o.$on(\"$destroy\",function(){e.cancel(c)}),i(o.$parent,function(e){var o=angular.element(t.children()[0]);o.append(e)})}}}]),angular.module(\"edaApp.directives.edaDdNoEditableControlDirective\",[]).directive(\"ddNoEditableControl\",[function(){return{restrict:\"A\",link:function(e,o){o.on(\"click\",function(e){e.preventDefault()})}}}]),angular.module(\"edaApp.directives\",[\"edaApp.directives.edaStRationDirective\",\"edaApp.directives.edaDdDecorDropZoneDirective\",\"edaApp.directives.edaDdDecorContainerDirective\",\"edaApp.directives.edaDdDecorLineDirective\",\"edaApp.directives.edaDdDecorItemDirective\",\"edaApp.directives.edaDdNoEditableControlDirective\",\"edaApp.directives.edaDdContentCounterDirective\",\"edaApp.directives.edaRightClickDirective\"]),angular.module(\"edaApp.directives.edaRightClickDirective\",[]).directive(\"edaRightClick\",[\"$parse\",function(e){return{restrict:\"A\",link:function(o,t,l){var n=e(l.edaRightClick),i=e(l.edaRightClickColIndex),r=e(l.edaSetRightClicked);t.on(\"contextmenu\",function(e){o.$apply(function(){e.preventDefault(),1===i(o)&&r(o,{}),1===i(o)&&n(o,{$event:e})})})}}}]),angular.module(\"edaApp.directives.edaStRationDirective\",[]).directive(\"stRatio\",[function(){return{restrict:\"A\",link:function(e,o,t){var l=+t.stRatio;o.css(\"width\",l+\"%\")}}}]),angular.module(\"edaApp.services.dragDropItemCountersService\",[]).factory(\"dragDropItemCounterService\",[\"dragDropConfig\",function(e){var o=[],t=angular.copy(e.getItemsNotToCount()),l={};return l.getItemsNotToCount=function(){return t},l.getModelItemsRealCounter=function(){return o},l.isHtmlElementToCount=function(e){var o=!0;return e.length>0&&angular.forEach(t,function(t){for(var l=e.length-1;l>=0;l--)e[l]===t&&(o&=!1)}),o},l.updateLineItemCss=function(o,t,l,n,i){if(\"undefined\"!=typeof o&&\"undefined\"!=typeof t&&\"undefined\"!=typeof l&&\"undefined\"!=typeof n&&\"undefined\"!=typeof i){for(var r=o[l][n].length-1;r>=0;r--)for(var a=0;a=0;r--)o[t][l][r].cssClass=e.getItemCssDependingNumberItemsInRow(n);return!0}return!1},t.updateCssClassWholeColumn=function(o,t){if(\"undefined\"!=typeof t&&\"undefined\"!=typeof o){for(var l=o[t].length-1;l>=0;l--)for(var n=o[t][l].length-1;n>=0;n--)o[t][l][n].cssClass=e.getItemCssDependingNumberItemsInRow(o[t][l].length);return!0}return!1},t}]),angular.module(\"edaApp.services.dragDropModelConfigModelProxyService\",[]).factory(\"ddModelConfModelProxyService\",[\"EasyFormGenFormlyBindingModels\",\"controllerModalProxy\",\"$parse\",function(e,o,t){function l(o){var l={},n=e.getEasyFormListControls(),i=t(\"controls\");return angular.forEach(i(n),function(e){e.id===o.control&&(l=e)}),l}function n(e,o){for(var t=!0,l=o.lines.length-1;l>=0;l--)for(var n=o.lines[l].columns.length-1;n>=0;n--)\"undefined\"!=typeof o.lines[l].columns[n].control&&o.lines[l].columns[n].control.key===e&&(t=!1);return t}function i(e,o){var t=e+\"-\"+Date.now();return n(t,o)===!0?t:(t=e+\"-\"+Date.now(),n(t,o)===!0?t:t=e+\"-\"+Date.now())}function r(e,o,t){angular.forEach(t.lines,function(t,l){l===o&&(t.line=e)})}function a(e,o,l){t(\"control.selectedControl\").assign(o,t(\"selectedControl\")(e)),t(\"control.type\").assign(o,t(\"formlyType\")(e)),t(\"control.key\").assign(o,i(t(\"control.type\")(o),l)),t(\"control.subtype\").assign(o,t(\"formlySubtype\")(e)),t(\"control.templateOptions.label\").assign(o,t(\"formlyLabel\")(e)),t(\"control.templateOptions.required\").assign(o,t(\"formlyRequired\")(e)),t(\"control.templateOptions.description\").assign(o,t(\"formlyDesciption\")(e)),t(\"control.templateOptions.placeholder\").assign(o,t(\"formlyPlaceholder\")(e)),t(\"control.templateOptions.options\").assign(o,t(\"formlyOptions\")(e)),\"datepicker\"===t(\"control.type\")(o)&&t(\"control.templateOptions.datepickerPopup\").assign(o,t(\"datepickerPopup\")(e))}var s={};return s.refreshAllConfigurationFromDragAndDropModel=function(o,t){angular.copy(o);return o.lines=[],angular.forEach(t[1],function(t,n){o.lines.push(angular.copy(e.getEasyFormEmptyConfigurationLineModel())),r(n+1,n,o),angular.forEach(t,function(i,r){var s={control:angular.copy(e.getFormlyControlTemplateForNcolumnLine(t.length,l(t[r]).formlyType))},d=l(t[r]);if(\"undefined\"!=typeof i.key){console.warn(\"debug dragdropModel show this control key : \"+i.key),s.control=angular.copy(i.configModelControl);var c=e.getFormlyControlTemplateForNcolumnLine(t.length,l(t[r]).formlyType);s.control.className=c.className,s.control.cssClass=c.className}else a(d,s,o);\"undefined\"==typeof o.lines[n].columns[r]&&o.lines[n].columns.push(angular.copy(e.getEasyFormConfigurationEmptyControlModel())),o.lines[n].columns[r].control=angular.copy(s.control),o.lines[n].columns[r].numColumn=r+1,o.lines[n].columns[r].exist=!0})}),o},s.refreshControlsKeys=function(e,o){angular.forEach(e.lines,function(e,t){angular.forEach(e.columns,function(e,l){\"undefined\"!=typeof o[1][t]&&o[1][t].length>0&&(o[1][t][l].key=e.control.key,o[1][t][l].configModelControl=angular.copy(e.control))})}),console.info(\"refreshControlsKeys\"),console.dir({when:\"starting\",\"configModel is \":angular.copy(e),\"dragDropModel is \":angular.copy(o)})},s}]),angular.module(\"edaApp.services.edaEditCtrlControllerModalProxy\",[]).factory(\"controllerModalProxy\",[\"EasyFormGenFormlyBindingModels\",function(e){function o(o){var t=e.getEasyFormListControls();return angular.copy(t,o),!0}function t(){var o=e.getEasyFormListControls();return r.proxyModel=angular.copy(o),!0}function l(e){for(var o={selectedControl:\"none\",formlyType:\"none\",formlySubtype:\"none\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyPlaceholder:\"\",formlyOptions:[]},t=e.controls.length-1;t>=0;t--)e.selectedControl===e.controls[t].id&&(o.selectedControl=e.selectedControl,o.formlyType=e.controls[t].formlyType,o.formlySubtype=e.controls[t].formlySubtype,o.formlyLabel=e.controls[t].formlyLabel,o.formlyRequired=e.controls[t].formlyRequired,o.formlyDesciption=e.controls[t].formlyDesciption,o.formlyPlaceholder=e.controls[t].formlyPlaceholder,o.formlyOptions=e.controls[t].formlyOptions,\"datepicker\"===e.controls[t].formlyType&&(o.datepickerPopup=e.controls[t].datepickerPopup));return o}function n(e,o){for(var t=!0,l=o.lines.length-1;l>=0;l--)for(var n=o.lines[l].columns.length-1;n>=0;n--)o.lines[l].columns[n].control.key===e&&(t=!1);return t}function i(o){var t=\"none\",l=angular.copy(e.getEasyFormListControls().controls);return l.forEach(function(e){return e.formlyType===o.type&&e.formlySubtype===o.subtype?t=e.id:void 0}),t}var r={};r.ProxyModel={},t(),r.initNyaSelect=function(e){return o(e)},r.getNyASelectFromSelectedLineColumn=function(e,t,l,n){return o(e),\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions&&(e.temporyConfig.selectedControl=\"undefined\"!=typeof t.lines[l].columns[n].control.selectedControl?t.lines[l].columns[n].control.selectedControl:\"none\",e.temporyConfig.formlyLabel=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.label?t.lines[l].columns[n].control.templateOptions.label:\"\",e.temporyConfig.formlyRequired=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.required?t.lines[l].columns[n].control.templateOptions.required:\"\",e.temporyConfig.formlyDesciption=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.description?t.lines[l].columns[n].control.templateOptions.description:\"\",e.temporyConfig.formlyPlaceholder=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.placeholder?t.lines[l].columns[n].control.templateOptions.placeholder:\"\",e.temporyConfig.formlyOptions=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.options?t.lines[l].columns[n].control.templateOptions.options:\"\",\"Date\"===e.temporyConfig.selectedControl&&(e.temporyConfig.datepickerPopup=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.datepickerPopup?t.lines[l].columns[n].control.templateOptions.datepickerPopup:\"\")),e},r.bindConfigurationModelFromModalReturn=function(e,o,t,i){var r=l(t);i.lines[e].columns[o].control.selectedControl=r.selectedControl,i.lines[e].columns[o].control.type=r.formlyType,i.lines[e].columns[o].control.subtype=r.formlySubtype,i.lines[e].columns[o].control.templateOptions={label:\"\",required:!1,description:\"\",placeholder:\"\",options:[]},i.lines[e].columns[o].control.templateOptions.label=r.formlyLabel,i.lines[e].columns[o].control.templateOptions.required=r.formlyRequired,i.lines[e].columns[o].control.templateOptions.description=r.formlyDesciption,i.lines[e].columns[o].control.templateOptions.placeholder=r.formlyPlaceholder,i.lines[e].columns[o].control.templateOptions.options=r.formlyOptions,\"datepicker\"===i.lines[e].columns[o].control.type&&(i.lines[e].columns[o].control.templateOptions.datepickerPopup=r.datepickerPopup);var a=i.lines[e].columns[o].control.type+\"-\"+Date.now();n(a,i)===!0?i.lines[e].columns[o].control.key=a:(a=i.lines[e].columns[o].control.type+\"-\"+Date.now(),n(a,i)===!0?i.lines[e].columns[o].control.key=a:a=i.lines[e].columns[o].control.type+\"-\"+Date.now()),i.lines[e].columns[o].control.edited=!0},r.applyConfigToSelectedControl=function(e){for(var o=e.controls.length-1;o>=0;o--)e.controls[o].id===e.selectedControl&&(e.controls[o].formlyLabel=e.temporyConfig.formlyLabel,e.controls[o].formlyRequired=e.temporyConfig.formlyRequired,e.controls[o].formlyDesciption=e.temporyConfig.formlyDesciption,e.controls[o].formlyPlaceholder=e.temporyConfig.formlyPlaceholder,e.controls[o].formlyOptions=e.temporyConfig.formlyOptions,\"Date\"===e.controls[o].id&&(e.controls[o].datepickerPopup=e.temporyConfig.datepickerPopup))},r.initProxyModel=function(e){return t(e)},r.bindConfigurationModelFromProxyModel=function(e,o,t){var l=angular.copy(r.proxyModel.temporyConfig);console.warn(\"debug edaEditCtrlControllerModalProxy\"),console.dir(l),t.lines[e].columns[o].control.selectedControl=l.selectedControl,t.lines[e].columns[o].control.type=l.formlyType,t.lines[e].columns[o].control.subtype=l.formlySubtype,t.lines[e].columns[o].control.templateOptions={label:\"\",required:!1,description:\"\",placeholder:\"\",options:[]},t.lines[e].columns[o].control.templateOptions.label=l.formlyLabel,t.lines[e].columns[o].control.templateOptions.required=l.formlyRequired,t.lines[e].columns[o].control.templateOptions.description=l.formlyDesciption,t.lines[e].columns[o].control.templateOptions.placeholder=l.formlyPlaceholder,t.lines[e].columns[o].control.templateOptions.options=l.formlyOptions,\"datepicker\"===t.lines[e].columns[o].control.type&&(t.lines[e].columns[o].control.templateOptions.datepickerPopup=l.datepickerPopup);var i=t.lines[e].columns[o].control.type+\"-\"+Date.now();n(i,t)===!0?t.lines[e].columns[o].control.key=i:(i=t.lines[e].columns[o].control.type+\"-\"+Date.now(),n(i,t)===!0?t.lines[e].columns[o].control.key=i:i=t.lines[e].columns[o].control.type+\"-\"+Date.now()),t.lines[e].columns[o].control.edited=!0},r.setProxyModelFromConfigurationSelection=function(e,o,t){return\"undefined\"!=typeof e.lines[o].columns[t].control&&(r.proxyModel.selectedControl=\"undefined\"!=typeof e.lines[o].columns[t].control.type?i(e.lines[o].columns[t].control):\"none\",r.proxyModel.temporyConfig.selectedControl=\"undefined\"!=typeof e.lines[o].columns[t].control.type?i(e.lines[o].columns[t].control):\"none\",r.proxyModel.temporyConfig.formlyType=\"undefined\"!=typeof e.lines[o].columns[t].control.type?e.lines[o].columns[t].control.type:\"none\",r.proxyModel.temporyConfig.formlySubtype=\"undefined\"!=typeof e.lines[o].columns[t].control.subtype?e.lines[o].columns[t].control.subtype:\"none\",r.proxyModel.temporyConfig.formlyLabel=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.label?e.lines[o].columns[t].control.templateOptions.label:\"\",r.proxyModel.temporyConfig.formlyRequired=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.required?e.lines[o].columns[t].control.templateOptions.required:\"\",r.proxyModel.temporyConfig.formlyDesciption=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.description?e.lines[o].columns[t].control.templateOptions.description:\"\",r.proxyModel.temporyConfig.formlyPlaceholder=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.placeholder?e.lines[o].columns[t].control.templateOptions.placeholder:\"\",r.proxyModel.temporyConfig.formlyOptions=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.options?e.lines[o].columns[t].control.templateOptions.options:\"\",\"Date\"===r.proxyModel.temporyConfig.selectedControl&&(r.proxyModel.temporyConfig.datepickerPopup=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.datepickerPopup?e.lines[o].columns[t].control.templateOptions.datepickerPopup:\"\")),r.proxyModel},r.getProxyModel=function(){return r.proxyModel};var a={toggle:!1,lineIndex:-1,columnIndex:-1,control:{}};r.getEditPanelModelAllModel=function(){return a},r.setEditPanelModelControl=function(e){var o=!1;return\"undefined\"!=typeof e&&(a=angular.copy(e),o=!0),o},r.getEditPanelModelColumnIndex=function(){return a.columnIndex},r.setEditPanelModelColumnIndex=function(e){var o=!1;return\"undefined\"!=typeof e&&(a.columnIndex=e,o=!0),o},r.getEditPanelModelLineIndex=function(){return a.lineIndex},r.setEditPanelModelLineIndex=function(e){var o=!1;return\"undefined\"!=typeof e&&(a.lineIndex=e,o=!0),o},r.getEditPanelModelControl=function(){return a.control},r.setEditPanelModelControl=function(e){var o=!1;return\"undefined\"!=typeof e&&(a.control=angular.copy(e),o=!0),o},r.getEditPanelModelToggle=function(){return a.toggle},r.setEditPanelModelToggle=function(e){var o=!1;return\"undefined\"!=typeof e&&(a.toggle=e,o=!0),o};var s={rows:[]};return r.basicSelectRowCollection=angular.copy(s),r.newOptionBasicSelect=angular.copy({saisie:\"\"}),r.groupedSelectRowCollection=angular.copy(s),r.newOptionGroupedSelect=angular.copy({saisie:\"\"}),r.GroupedSelectGroups=angular.copy({list:[]}),r.newGroupGroupedSelect=angular.copy({saisie:\"\"}),r.groupSelectGroupClick=angular.copy({showList:!1}),r.radioRowCollection=angular.copy(s),r.newOptionRadio=angular.copy({saisie:\"\"}),r.resetAllTemporyModels=function(){return r.basicSelectRowCollection=angular.copy(s),r.newOptionBasicSelect=angular.copy({saisie:\"\"}),r.groupedSelectRowCollection=angular.copy(s),r.newOptionGroupedSelect=angular.copy({saisie:\"\"}),r.GroupedSelectGroups=angular.copy({list:[]}),r.newGroupGroupedSelect=angular.copy({saisie:\"\"}),r.groupSelectGroupClick=angular.copy({showList:!1}),r.radioRowCollection=angular.copy(s),r.newOptionRadio=angular.copy({saisie:\"\"}),!0},r.bindSpecialCtrlTemporyModelsToProxyModel=function(){\n\"BasicSelect\"===r.proxyModel.selectedControl&&r.bindBasicSelectToProxyModel(r.basicSelectRowCollection),\"GroupedSelect\"===r.proxyModel.selectedControl&&r.bindGroupedSelectToProxyModel(r.groupedSelectRowCollection),\"Radio\"===r.proxyModel.selectedControl&&r.bindRadioToProxyModel(r.radioRowCollection)},r.bindBasicSelectFromProxyModel=function(e){if(r.proxyModel.temporyConfig.formlyOptions.length>0)for(var o=0;o<=r.proxyModel.temporyConfig.formlyOptions.length-1;o++){var t={option:r.proxyModel.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.rows.push(t)}},r.bindBasicSelectToProxyModel=function(e){var o=[];if(r.proxyModel.temporyConfig.formlyOptions=o,e.rows.length>0)for(var t=0;t<=e.rows.length-1;t++){var l={name:e.rows[t].option,value:t,group:\"\"};r.proxyModel.temporyConfig.formlyOptions.push(l)}},r.bindGroupedSelectFromProxyModel=function(e,o){if(r.proxyModel.temporyConfig.formlyOptions.length>0){for(var t=0;t<=r.proxyModel.temporyConfig.formlyOptions.length-1;t++){var l={option:r.proxyModel.temporyConfig.formlyOptions[t].name,order:t,group:r.proxyModel.temporyConfig.formlyOptions[t].group};e.rows.push(l)}var n=_.uniq(_.pluck(e.rows,\"group\"));angular.copy(n,o.list)}},r.bindGroupedSelectToProxyModel=function(e){r.proxyModel.temporyConfig.formlyOptions=[];for(var o=0;o<=e.rows.length-1;o++){var t={name:e.rows[o].option,value:o,group:e.rows[o].group};r.proxyModel.temporyConfig.formlyOptions.push(t)}},r.bindRadioFromProxyModel=function(e){if(r.proxyModel.temporyConfig.formlyOptions.length>0)for(var o=0;o<=r.proxyModel.temporyConfig.formlyOptions.length-1;o++){var t={option:r.proxyModel.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.rows.push(t)}},r.bindRadioToProxyModel=function(e){var o=[];if(r.proxyModel.temporyConfig.formlyOptions=o,e.rows.length>0)for(var t=0;t<=e.rows.length-1;t++){var l={name:e.rows[t].option,value:t,group:\"\"};r.proxyModel.temporyConfig.formlyOptions.push(l)}},r}]),angular.module(\"edaApp.services.formFieldManage\",[]).factory(\"formFieldManage\",[\"EasyFormGenFormlyBindingModels\",function(e){function o(e){var o=[];angular.copy(o,e)}function t(o,t,l){var n=t.lines[l].columns.length,i=o.push({className:\"row\",fieldGroup:[]})-1;t.lines[l].columns.forEach(function(t,l){var r={};if(\"undefined\"!=typeof r&&\"none\"!==t.control.type){if(\"header\"===t.control.type||\"subTitle\"===t.control.type){var a=t.control.templateOptions.description;r.template=e.getHeaderTemplateForNcolumnLine(n,a).template,r.className=e.getRawHeaderTemplates().selectedClass}else r=e.getFormlyControlTemplateForNcolumnLine(n,t.control.type),r.className=t.control.className,r.type=t.control.type,r.key=t.control.key,r.templateOptions.type=t.control.templateOptions.type,r.templateOptions.label=t.control.templateOptions.label,r.templateOptions.required=t.control.templateOptions.required,r.templateOptions.placeholder=t.control.templateOptions.placeholder,r.templateOptions.description=t.control.templateOptions.description,r.templateOptions.options=[].concat(t.control.templateOptions.options),\"undefined\"!=typeof r.templateOptions.datepickerPopup&&(t.control.templateOptions.datepickerPopup=r.templateOptions.datepickerPopup);o[i].fieldGroup.push(r)}})}function l(e){var o={};return angular.copy(o,e),!0}function n(e,o){var t={noError:!1,title:\"\",Message:\"\"};return t.noError=!1,t.title=e,t.Message=o,t}function i(e,o){var t={noError:!1,title:\"\",Message:\"\"};return t.noError=!0,t.title=e,t.Message=o,t}var r={};return r.initConfigurationEditFromScratch=function(o,t){var l=e.getEasyFormInitialStateConfigurationModel(t);angular.copy(l,o)},r.bindConfigurationLines=function(o,t,l){if(\"[object Array]\"===Object.prototype.toString.call(t)){var r=e.getEasyFormReloadConfigurationModel(l);return r.lines=[].concat(t),angular.copy(r,o),i(\"configuration model is bound\",\"lines are bound to configuration model.\")}return n(\"lines is not an array\",\"Checks lines type, it is not an array.\")},r.applyConfigurationToformlyModel=function(e,n,i){o(n),l(i);for(var r=e.lines.length,a=0;r>a;a++)t(n,e,a)},r}]),angular.module(\"edaApp.services.formsByIdService\",[\"ngResource\"]).factory(\"formsByIdService\",[\"$resource\",function(e){return e(\"/api/formGen/:id\",{id:\"@id\"},{})}]),angular.module(\"edaApp.services.selectOptionManage\",[]).factory(\"selectOptionManage\",[function(){function e(e,o){var t={resultFlag:!1,details:\"\"};if(\"undefined\"==typeof o)return t.resultFlag=!1,t.details=\"Entered option is empty\",t;if(\"\"!==o){for(var l=e.rows.length-1;l>=0;l--)if(e.rows[l].option===o)return t.resultFlag=!1,t.details=\"Entered option is not unique\",t;return t.resultFlag=!0,t.details=\"\",t}return t.resultFlag=!1,t.details=\"Entered option is empty\",t}function o(e){var o={rows:[]};angular.copy(o,e)}return{testMe:function(){return\"selectOptionManage is here.\"},initModel:function(e){o(e)},isOptionUnique:function(e,o){for(var t=e.rows.length-1;t>=0;t--)if(e.rows[t].option===o)return!1;return!0},isOptionValidFormat:function(e){return\"\"!==e?!0:!1},addNewOptionRadio:function(o,t){var l={resultFlag:!1,details:\"\"},n=e(o,t);if(n.resultFlag===!0){var i={option:t,order:o.rows.length};return o.rows.push(i),l.resultFlag=!0,l.details=\"\",l}return angular.copy(n,l),l},addNewOptionBasicSelect:function(o,t){var l={resultFlag:!1,details:\"\"},n=e(o,t);if(n.resultFlag===!0){var i={option:t,order:o.rows.length};return o.rows.push(i),l.resultFlag=!0,l.details=\"\",l}return angular.copy(n,l),l},addNewOptionGroupedSelect:function(o,t,l){var n={resultFlag:!1,details:\"\"},i=e(o,t);if(i.resultFlag===!0){var r={option:t,group:l,order:o.rows.length};return o.rows.push(r),n.resultFlag=!0,n.details=\"\",n}return angular.copy(i,n),n},removeOption:function(e,o){var t={resultFlag:!1,details:\"\"};return-1!==o?(e.rows.splice(o,1),t.resultFlag=!0,t.details=\"\",t):(t.resultFlag=!1,t.details=\"Option index not valid\",t)},upthisOption:function(e,o){var t={resultFlag:!1,details:\"\"};if(o>-1){if(o>0){if(e.rows[o-1]){var l=e.rows[o];return e.rows.splice(o,1),e.rows.splice(o-1,0,l),t.resultFlag=!0,t.details=\"\",t}return t.resultFlag=!1,t.details=\"Can't retreive option from option index\",t}return t.resultFlag=!0,t.details=\"\",t}return t.resultFlag=!1,t.details=\"Option index not valid\",t},downthisOption:function(e,o){var t={resultFlag:!1,details:\"\"};if(o>-1){if(o','\t\",'\t\",\"
\"].join(\"\")}function t(){return['
','
','\t
','\t
','\t
  Edit :
',\"\t
\",\"\t
\",'\t
','\t
','\t
Column will be blank
',\"\t
\",\"\t
\",\"
\",f,\"
\"].join(\"\")}function l(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function n(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function i(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function r(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function a(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
',' ','
','
    ','
  1. ',\" {{dateformat}}\",\"
  2. \",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function s(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function d(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function c(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
',' ',\"
\",\"
\",'
',\"
\",'
','
',' ',\"
\",'
',' ',\"
\",\"
\",\"
\",\"
\",'
','
',' ',\"
\",\"
\",'
','
','
','
','
','
- no radio : add new radio values -
',\"
\",' 0\" class=\"table table-striped\">',\" \",\" \",' ',' ',' ',\" \",\" \",' ',' \",' ',\" \",\" \",\" \",' ',' ',' ',' \",\" \",\" \",\"
orderoption
',' ',\"
{{$index}}{{radioRow.option}}','
',' ',' ',' ',\"
\",\"
\",\"
\",\"
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function p(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function u(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
',' ',\"
\",\"
\",'
',\"
\",'
','
',' ',\"
\",'
',' ',\"
\",\"
\",\"
\",\"
\",'
','
',' ',\"
\",\"
\",'
','
','
','
','
','
- no option : add new options -
',\"
\",' 0\" class=\"table table-striped\">',\" \",\" \",' ',' ',' ',\" \",\" \",' ',' \",' ',\" \",\" \",\" \",' ',' ',' ',' \",\" \",\" \",\"
orderoption
',' ',\"
{{$index}}{{basicSelectRow.option}}','
',' ',' ',' \t',\"
\",\"
\",\"
\",\"
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function m(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
',' ',\"
\",\"
\",'
',\"
\",'
','
',' ',\"
\",'
',' ',\"
\",\"
\",\"
\",\"
\",'
','
',' ',\"
\",\"
\",'
',\"
\",'
','
',' ',\"
\",'
',' ',\"
\",\"
\",\"
\",\"
\",'
','
',' ',\"
\",\"
\",'
','
','
','
','
','
- no option : add new options -
',\"
\",' 0\" class=\"table table-striped\">',\" \",\" \",' ',' ',' ',' ',\" \",\" \",' ',' ',' \",' ',\" \",\" \",\" \",' ',' ',' \",' ',' \",\" \",\" \",\"
ordergroupoption
',' ',\"
{{$index}}','
','
','

- add new groups -

',\"
\",'
0\">','
    ','
  1. ',\" {{GroupedSelectGroup}}\",\"
  2. \",\"
\",\"
\",\"
\",'
',\" {{groupedSelectRow.group}}\",\"
\",\"
{{groupedSelectRow.option}}','
',' ',' ',' ',' ',\"
\",\"
\",\"
\",\"
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}var f=o();e.put(\"editPanelBlankCtrl-tpls.html\",t()),e.put(\"editPanelHeaderCtrl-tpls.html\",l()),e.put(\"editPanelSubTitleCtrl-tpls.html\",n()),e.put(\"editPanelTextInputCtrl-tpls.html\",i()),e.put(\"editPanelPasswordCtrl-tpls.html\",r()),e.put(\"editPanelDateCtrl-tpls.html\",a()),e.put(\"editPanelTextareaCtrl-tpls.html\",s()),e.put(\"editPanelRichTextEditorCtrl-tpls.html\",d()),e.put(\"editPanelRadioCtrl-tpls.html\",c()),e.put(\"editPanelCheckboxCtrl-tpls.html\",p()),e.put(\"editPanelBasicSelectCtrl-tpls.html\",u()),e.put(\"editPanelGroupedSelectCtrl-tpls.html\",m())}angular.module(\"edaApp\",[\"edaApp.providers\",\"edaApp.controllers\",\"edaApp.services\",\"edaApp.filters\",\"edaApp.directives\",\"textAngular\",\"textAngularSetup\",\"ngAnimate\",\"toaster\",\"formly\",\"formlyBootstrap\",\"ui.bootstrap\",\"nya.bootstrap.select\",\"dndLists\",\"mgcrea.ngStrap.affix\",\"pageslide-directive\"]).value(\"easyFormGenVersion\",\"v1.0.15\").run(e),\ne.$inject=[\"$templateCache\"],angular.module(\"edaApp\").config([\"dragDropConfigProvider\",function(e){e.setItemsNotTocount({itemBeingDragged:\"dndDraggingSource\"})}]),angular.module(\"edaApp\").config([\"formlyConfigProvider\",\"EasyFormGenFormlyBindingModelsProvider\",\"dragDropConfigProvider\",function(e,o,t){function l(e){return e=e.replace(/[\\-_\\s]+(.)?/g,function(e,o){return o?o.toUpperCase():\"\"}),e.replace(/^([A-Z])/,function(e,o){return o?o.toLowerCase():\"\"})}e.setType({name:\"blank\",template:\"
\"}),o.addEasyFormControlToList({id:\"empty\",name:\"no control\",subtitle:\"no control\",group:\"Blank\",formlyType:\"blank\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
',\"
\",\"
\",\"
\"].join(\"\"),control:\"empty\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"blank\"}),o.addEasyFormControlToList({id:\"Header\",name:\"Header\",subtitle:\"no control\",group:\"Decoration\",formlyType:\"header\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','

Header

',\"
\",\"
\",\"
\",\"
\"].join(\"\"),control:\"Header\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"headers\"});var n=['
','
','

{{options.templateOptions.placeholder}}

',\"
\",\"

\",\"
\"].join(\" \");e.setType({name:\"subTitle\",template:n}),o.addEasyFormControlToList({id:\"Subtitle\",name:\"Subtitle\",subtitle:\"no control\",group:\"Decoration\",formlyType:\"subTitle\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','

SubTitle

',\"
\",\"
\",\"
\",\"
\"].join(\"\"),control:\"Subtitle\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"headers\"}),o.addEasyFormControlToList({id:\"TextInput\",name:\"Text input\",subtitle:\"Text input\",group:\"input\",formlyType:\"input\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' \",'
',' ','

Description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"TextInput\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"inputs\"}),o.addEasyFormControlToList({id:\"Password\",name:\"Password\",subtitle:\"Password\",group:\"input\",formlyType:\"input\",formlySubtype:\"password\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' \",'
',' ','

Description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"Password\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"inputs\"});var i=[\"date-disabled\",\"custom-class\",\"show-weeks\",\"starting-day\",\"init-date\",\"min-mode\",\"max-mode\",\"format-day\",\"format-month\",\"format-year\",\"format-day-header\",\"format-day-title\",\"format-month-title\",\"year-range\",\"shortcut-propagation\",\"datepicker-popup\",\"show-button-bar\",\"current-text\",\"clear-text\",\"close-text\",\"close-on-date-selection\",\"datepicker-append-to-body\"],r=[\"datepicker-mode\",\"min-date\",\"max-date\"],a={};angular.forEach(i,function(e){a[l(e)]={attribute:e}}),angular.forEach(r,function(e){a[l(e)]={bound:e}});var s=[\"\"].join(\" \");e.setType({name:\"datepicker\",template:s,wrapper:[\"bootstrapLabel\",\"bootstrapHasError\"],controller:[\"$scope\",function(e){e.open=function(o){o.preventDefault(),o.stopPropagation(),e.opened=!0}}],defaultOptions:{ngModelAttrs:a,templateOptions:{addonLeft:{\"class\":\"glyphicon glyphicon-calendar\",onClick:function(e){e.templateOptions.isOpen=!e.templateOptions.isOpen}},onFocus:function(e,o,t){t.to.isOpen=!t.to.isOpen},datepickerOptions:{}}}}),o.addEasyFormControlToList({id:\"Date\",name:\"Date\",subtitle:\"Date\",group:\"input\",formlyType:\"datepicker\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],datepickerPopup:\"dd-MMMM-yyyy\"}),t.addControlToDragDropPresentationModel({label:['
','
',' \",'
',' \t\t\t\t\t
',' \t\t\t\t\t',' \t\t\t\t\t',\" \t\t\t\t\t
\",\"\t\t\t\t\t
\",'

description

',\"
\",\"
\"].join(\"\"),control:\"Date\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"inputs\"}),o.addEasyFormControlToList({id:\"Texarea\",name:\"Textarea\",subtitle:\"Textarea\",group:\"Textarea\",formlyType:\"textarea\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
',' ','

description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"Texarea\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"textareas\"});var d=['',\"\"].join(\" \");e.setType({name:\"richEditor\",template:d}),o.addEasyFormControlToList({id:\"RichTextEditor\",name:\"RichTextEditor\",subtitle:\"RichTextEditor\",group:\"Textarea\",formlyType:\"richEditor\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
',' ','

description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"RichTextEditor\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"textareas\"}),o.addEasyFormControlToList({id:\"Radio\",name:\"Radio\",subtitle:\"Radio\",options:[],group:\"Radio\",formlyType:\"radio\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
','
','
',' \",'
',' \",\"
\",'

description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"Radio\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"radios\"}),o.addEasyFormControlToList({id:\"Checkbox\",name:\"Checkbox\",subtitle:\"Checkbox\",group:\"Checkbox\",formlyType:\"checkbox\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' \",\"
\",'

description

',\"
\"].join(\"\"),control:\"Checkbox\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"checkboxes\"});var c=['
    ','
  1. ',\" {{option.name}} \",\"
  2. \",\"
\"].join(\"\");e.setType({name:\"basicSelect\",template:c}),o.addEasyFormControlToList({id:\"BasicSelect\",name:\"Basic select\",subtitle:\"Basic select\",options:[],group:\"Select\",formlyType:\"basicSelect\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','
    ',' \",\"
\",\"
\"].join(\"\"),control:\"BasicSelect\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"selects\"});var p=['
    ','
  1. ',' {{$group}}',\" \",\" {{option.name}}\",' ',\" \",\"
  2. \",\"
\"].join(\" \");e.setType({name:\"groupedSelect\",template:p}),o.addEasyFormControlToList({id:\"GroupedSelect\",name:\"Grouped Select\",subtitle:\"Grouped Select\",options:[],group:\"Select\",formlyType:\"groupedSelect\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','
    ',' \",\"
\",\"
\"].join(\"\"),control:\"GroupedSelect\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"selects\"})}]),angular.module(\"edaApp\").run([\"$templateCache\",function(e){e.put(\"editModalTemplate.html\",\"

no use right now

\")}]),angular.module(\"edaApp.providers.dragDropConfigProvider\",[]).provider(\"dragDropConfig\",[function(){function e(e,o){if(l[0].length>0){if(l[0].lengthi;i++)l[0].push([]);t.containerConfig.decoration.forEach(function(t){o.addToGroupCtrl===t.groupId&&l[0][t.WhenIndex].push(e)})}else t.containerConfig.decoration.forEach(function(){l[0].push([])}),t.containerConfig.decoration.forEach(function(t){o.addToGroupCtrl===t.groupId&&l[0][t.WhenIndex].push(e)})}var o=[{cssClass:\"col-md-12\",numberItemPerRow:0},{cssClass:\"col-md-12\",numberItemPerRow:1},{cssClass:\"col-md-6\",numberItemPerRow:2},{cssClass:\"col-md-4\",numberItemPerRow:3}],t={dropZoneConfig:{decoration:[{WhenIndex:0,ApplycssClass:\"col-md-4\",fontAwesomeIcon:\"fa fa-level-up\",title:\"Drag control from here : \"},{WhenIndex:1,ApplycssClass:\"col-md-8\",fontAwesomeIcon:\"fa fa-level-down\",title:\"Drop control into here : \"}],verboseMode:!1},containerConfig:{decoration:[{WhenIndex:0,ApplycssClass:\"col-md-12\",title:\"Blank : \",groupId:\"blank\",isCollapsed:!0},{WhenIndex:1,ApplycssClass:\"col-md-12\",title:\"Headers : \",groupId:\"headers\",isCollapsed:!0},{WhenIndex:2,ApplycssClass:\"col-md-12\",title:\"Text inputs : \",groupId:\"inputs\",isCollapsed:!0},{WhenIndex:3,ApplycssClass:\"col-md-12\",title:\"Textareas : \",groupId:\"textareas\",isCollapsed:!0},{WhenIndex:4,ApplycssClass:\"col-md-12\",title:\"Radios : \",groupId:\"radios\",isCollapsed:!0},{WhenIndex:5,ApplycssClass:\"col-md-12\",title:\"Checkboxes : \",groupId:\"checkboxes\",isCollapsed:!0},{WhenIndex:6,ApplycssClass:\"col-md-12\",title:\"Selects : \",groupId:\"selects\",isCollapsed:!0}],verboseMode:!1,collapseEnabled:!0,collapseCtrl:[{atIndex:0,collapse:!0},{atIndex:1,collapse:!0}]},itemConfig:{verboseMode:!1}},l=[[],[[]]],n={itemBeingDragged:\"\"};this.setListItemCssClass=function(e){o=[].concat(e)},this.getItemsNotTocount=function(){return n},this.setItemsNotTocount=function(e){n=angular.copy(e)},this.addControlToDragDropPresentationModel=function(o,t){\"undefined\"!=typeof o&&\"undefined\"!=typeof t&&e(o,t)},this.getDragDropPresentationModel=function(){return l},this.$get=[function(){var e={};return e.getListItemCssClass=function(){return o},e.getItemsNotToCount=function(){return n},e.getItemCssDependingNumberItemsInRow=function(e){if(\"undefined\"!=typeof e){for(var t=\"\",l=o.length-1;l>=0;l--)o[l].numberItemPerRow===e&&(t=o[l].cssClass);return t}return\"\"},e.getDistinctItemCssClass=function(){var e=[];return angular.forEach(o,function(o){var t=o.cssClass;if(0===e.length)e.push(t);else{var l=!0;angular.forEach(e,function(e){var o=e;t===o&&(l=!1)}),l&&e.push(t)}}),e},e.getDragDropConfigModel=function(){return t},e.setDragDropConfigContainerDecorationCollapse=function(e,o,t){return\"undefined\"!=typeof o&&\"undefined\"!=typeof t&&o===parseInt(o,10)&&(e.containerConfig.decoration[o].isCollapsed=t),!0},e.getDragDropPresentationModel=function(){return l},e}]}]),angular.module(\"edaApp.providers.EasyFormGenFormlyBindingModels\",[]).provider(\"EasyFormGenFormlyBindingModels\",[function(){var e={controls:[],selectedControl:\"none\",temporyConfig:{selectedControl:\"none\",formlyLabel:\"label\",formlyRequired:!1,formlyDesciption:\"\",formlyPlaceholder:\"\",formlyOptions:[]}},o={line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]},t={control:{type:\"none\",key:\"none\"}},l={submitButtonText:\"submit\",cancelButtonText:\"cancel\",lines:[].concat(o)},n={activeLine:1,listConfigStep:[\"init\",\"first\",\"second\",\"third\"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0},i={submitButtonText:\"submit\",cancelButtonText:\"cancel\",lines:[]},r={cssClass:[\"col-xs-12\",\"col-xs-6\",\"col-xs-4\"],textContent:\"\",html_part1:['
','

'].join(\"\"),html_part3:this.textContent,html_part4:[\"

\",\"
\",\"

\"].join(\"\"),simpleHtml1:['

'].join(\"\"),simpleHtml2:[\"

\",\"
\"].join(\"\")},a={className:[\"col-xs-12\",\"col-xs-6\",\"col-xs-4\"],type:\"\",key:\"\",templateOptions:{type:\"\",label:\"\",required:\"\",placeholder:\"\",description:\"\",options:\"\"}},s=[{controlType:\"datepicker\",properties:[{isRoot:!1,isTemplateOptions:!0,value:\"datepickerPopup\"}]}];this.getAllParticularControlProperties=function(){return s},this.addParticularControlProperties=function(e){if(\"controlType\"in e&&\"properties\"in e){var o=!1;s.length>0&&s.forEach(function(t){t.controlType===e.controlType&&(t.properties=[].concat(e.properties),o=!0)}),o||s.push(e)}return s},this.getEasyFormListControls=function(){return e},this.addEasyFormControlToList=function(o){\"undefined\"!=typeof o&&e.controls.push(o)},this.getHeaderTemplates=function(){return r},this.addHeaderTemplateCssClass=function(e){\"undefined\"!=typeof e&&r.cssClass.push(e)},this.getFormlyControlTemplate=function(){return a},this.addformlyControlTemplatesCssClass=function(e){\"undefined\"!=typeof e&&a.className.push(e)},this.setFormlyControlTemplate=function(e){return\"className\"in e&&\"type\"in e&&\"key\"in e&&\"templateOptions\"in e&&(a=angular.copy(e)),!0},this.$get=[function(){var d={};return d.getEasyFormListControls=function(){return e},d.getEasyFormInitialStateConfigurationModel=function(e){var o=angular.copy(l);return\"undefined\"!=typeof e&&e&&angular.extend(o,n),o},d.getEasyFormReloadConfigurationModel=function(e){var o=angular.copy(i);return\"undefined\"!=typeof e&&e&&angular.extend(o,n),o},d.getEasyFormEmptyConfigurationLineModel=function(){return o},d.getEasyFormConfigurationEmptyControlModel=function(){return t},d.getRawHeaderTemplates=function(){return r},d.getHeaderTemplateForNcolumnLine=function(e,o){if(\"undefined\"!=typeof e&&\"undefined\"!=typeof o&&e===parseInt(e,10)&&e<=r.cssClass.length){var t={};return t.className=r.cssClass[e-1],r.textContent=o,r.selectedClass=t.className,t.template=[r.simpleHtml1,o,r.simpleHtml2].join(\"\"),t}},d.getRawFormlyControlTemplates=function(){return a},d.getFormlyControlTemplateForNcolumnLine=function(e,o){if(\"undefined\"!=typeof e&&e===parseInt(e,10)&&e<=a.className.length){var t=angular.copy(a);return t.className=a.className[e-1],\"undefined\"!=typeof o&&s.forEach(function(e){e.controlType===o&&e.properties.forEach(function(e){e.isRoot&&(t[e.value]=\"\"),e.isTemplateOptions&&(t.templateOptions[e.value]=\"\")})}),t}},d}]}]),angular.module(\"edaApp.providers\",[\"edaApp.providers.dragDropConfigProvider\",\"edaApp.providers.EasyFormGenFormlyBindingModels\",function(){}]),angular.module(\"edaApp.controllers\",[\"edaApp.controllers.edaMainController\",\"edaApp.controllers.edaEditController\",\"edaApp.controllers.edaEditMODALController\",\"edaApp.controllers.edaEditPanelController\"]),angular.module(\"edaApp.controllers.edaEditController\",[]).controller(\"edaEditController\",[\"$scope\",\"easyFormGenVersion\",\"$filter\",\"$anchorScroll\",\"toaster\",\"$timeout\",\"$modal\",\"$log\",\"formFieldManage\",\"formsByIdService\",\"controllerModalProxy\",\"dragDropItemDecorationService\",\"dragDropConfig\",\"ddModelConfModelProxyService\",\"ddItemRightClickedManager\",function(e,o,t,l,n,i,r,a,s,d,c,p,u,m,f){function g(){n.pop({type:\"info\",timeout:2e3,title:\"should save data model if it were not a static example\",body:\"data :\"+t(\"json\")(e.vm.model,4),showCloseButton:!0})}function y(){s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}e.easyFormGeneratorVERSION=o,e.tab={editTab:{active:!0},previewTab:{active:!1}},e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.ihm={preview:{formlyModelViewExpanded:!0,formlyFieldsViewExpanded:!0,customizeFormButtonsExpanded:!0,saveThisFormExpanded:!0}},e.easyFormDragDropProperties=u.getDragDropConfigModel(),e.dragDropModel=[].concat(u.getDragDropPresentationModel()),e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.configuration={},s.initConfigurationEditFromScratch(e.configuration,!1),c.initProxyModel(),e.collapseAllGroupControl=function(o){angular.forEach(e.easyFormDragDropProperties.containerConfig.decoration,function(t){t.WhenIndex!==o&&u.setDragDropConfigContainerDecorationCollapse(e.easyFormDragDropProperties,t.WhenIndex,!0)})},e.vm.onSubmit=g,e.resetToZeroModel=function(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()},e.countConfigurationModelLines=function(){return e.configuration.lines.length},e.setActiveLineNumber=function(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)},e.upThisLine=function(o){if(o>-1&&e.configuration.lines[o-1]){var t=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,t),e.configuration.activeLine=1}s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.downThisLine=function(o){if(o>-1&&e.configuration.lines[o+1]){var t=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,t),e.configuration.activeLine=1}s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.removeThisLine=function(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):i(function(){n.pop({type:\"warning\",title:\"Last line\",body:\"Can't delete the last line\",showCloseButton:!0})},100),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))},e.increaseNumberOfColumns=function(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.saveThisForm=function(){if(\"undefined\"==typeof e.configuration.formName)return n.pop({type:\"warning\",timeout:2e3,title:\"Form name is undefined\",body:\"Form has not been saved.\",showCloseButton:!0}),!1;if(\"\"===e.configuration.formName)return n.pop({type:\"warning\",timeout:2e3,title:\"Form name is required\",body:\"Form has not been saved.\",showCloseButton:!0}),!1;n.pop({type:\"wait\",timeout:1e4,title:\"Form is being saved\",body:\"Wait.\",showCloseButton:!0});var o=new d;return o.formName=e.configuration.formName,o.submitButtonText=e.configuration.submitButtonText,o.cancelButtonText=e.configuration.cancelButtonText,o.formlyField=JSON.stringify(e.configuration.lines),n.clear(),n.pop({type:\"info\",timeout:2e3,title:\"Form would be saved if it were not a static example\",body:\"\",showCloseButton:!0}),!0},e.nyaSelect={},c.initNyaSelect(e.nyaSelect),e.animationsEnabled=!0,e.showModalAddCtrlToColumn=function(o,t,l){var n=r.open({animation:e.animationsEnabled,templateUrl:\"editModalTemplate.html\",controller:\"edaEditMODALController\",size:\"lg\",resolve:{nyaSelect:function(){return c.getNyASelectFromSelectedLineColumn(e.nyaSelect,e.configuration,t,l)}}});n.result.then(function(o){c.bindConfigurationModelFromModalReturn(t,l,o,e.configuration),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},function(){a.info(\"Modal dismissed at: \"+new Date)})},e.dragoverCallbackContainer=function(e,o,t){return 0===t?!1:!0},e.dropCallback=function(o,t,l,n,r,a){if(n){if(\"itemType\"===a&&!l.label)return!1;if(\"containerType\"===a&&!angular.isArray(l))return!1}var d=i(function(){e.configuration=angular.copy(m.refreshAllConfigurationFromDragAndDropModel(e.configuration,e.dragDropModel)),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel)},200);return e.$on(\"$destroy\",function(){i.cancel(d)}),l},e.dndItemMoved=function(o,t,l){o>0&&e.dragDropModel[o][t].splice(l,1)},e.dragoverCallbackItems=function(e,o,t,l){return 0===o?!1:!0},e.disableItemDropIf=function(){},e.dropCallbackItems=function(o,t,l,n,r,a,d,c,p,u){if(c){if(\"itemType\"===u&&!d.label)return!1;if(\"containerType\"===u&&!angular.isArray(d))return!1}var g=i(function(){e.configuration=angular.copy(m.refreshAllConfigurationFromDragAndDropModel(e.configuration,e.dragDropModel)),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel)},200);return f.setUnRightClicked(d),e.$on(\"$destroy\",function(){i.cancel(g)}),d},e.editPanelModel={toggle:!1},e.saveFromEditPanel=function(){c.bindSpecialCtrlTemporyModelsToProxyModel(),c.bindConfigurationModelFromProxyModel(c.getEditPanelModelLineIndex(),c.getEditPanelModelColumnIndex(),e.configuration),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel),c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle(),f.resetAllDragDropItemSelectedState(e.dragDropModel)},e.closeEditPanel=function(){f.resetAllDragDropItemSelectedState(e.dragDropModel),c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle()},e.debugProxyModel=c.ProxyModel,e.setRightClicked=function(e,o){o.rightCliked=!0},e.toggleEditPanel=function(o,t,l,n){if(f.resetAllDragDropItemSelectedState(e.dragDropModel),c.getEditPanelModelToggle()){if(c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle(),\"undefined\"!=typeof c.getEditPanelModelLineIndex()&&\"undefined\"!=typeof c.getEditPanelModelColumnIndex()&&\"undefined\"!=typeof c.getEditPanelModelControl())if(c.getEditPanelModelLineIndex()===t&&c.getEditPanelModelColumnIndex()===l&&angular.equals(c.getEditPanelModelControl(),n));else{n.rightCliked=!0;var r=i(function(){c.setEditPanelModelLineIndex(t),c.setEditPanelModelColumnIndex(l),c.setEditPanelModelControl(n),c.setProxyModelFromConfigurationSelection(e.configuration,t,l),c.setEditPanelModelToggle(!0),e.editPanelModel.toggle=c.getEditPanelModelToggle()},200);e.$on(\"$destroy\",function(){i.cancel(r)})}}else n.rightCliked=!0,c.setEditPanelModelLineIndex(t),c.setEditPanelModelColumnIndex(l),c.setEditPanelModelControl(n),c.setProxyModelFromConfigurationSelection(e.configuration,t,l),c.setEditPanelModelToggle(!0),e.editPanelModel.toggle=c.getEditPanelModelToggle()},e.removeThisLine=function(o){e.dragDropModel[1].splice(o,1)},e.model=[],e.insertNewLine=function(){y(),e.dragDropModel[1].push([])}}]),angular.module(\"edaApp.controllers.edaEditMODALController\",[]).controller(\"edaEditMODALController\",[\"$scope\",\"$modalInstance\",\"nyaSelect\",\"toaster\",\"$timeout\",\"selectOptionManage\",\"controllerModalProxy\",function(e,o,t,l,n,i,r){function a(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.radioRowCollection.rows.push(t)}}function s(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.radioRowCollection.rows.length>0)for(var t=0;t<=e.radioRowCollection.rows.length-1;t++){var l={name:e.radioRowCollection.rows[t].option,value:t,group:\"\"};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function d(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.basicSelectRowCollection.rows.push(t)}}function c(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.basicSelectRowCollection.rows.length>0)for(var t=0;t<=e.basicSelectRowCollection.rows.length-1;t++){var l={name:e.basicSelectRowCollection.rows[t].option,value:t,group:\"\"};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function p(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0){for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:e.nyaSelect.temporyConfig.formlyOptions[o].group};e.groupedSelectRowCollection.rows.push(t)}var l=_.uniq(_.pluck(e.groupedSelectRowCollection.rows,\"group\"));angular.copy(l,e.GroupedSelectGroups.list)}}function u(){e.nyaSelect.temporyConfig.formlyOptions=[];for(var o=0;o<=e.groupedSelectRowCollection.rows.length-1;o++){var t={name:e.groupedSelectRowCollection.rows[o].option,value:o,group:e.groupedSelectRowCollection.rows[o].group};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function m(){e.nyaSelect.temporyConfig.datepickerPopup=e.demodt.formats[0]}function f(){e.nyaSelect.temporyConfig={formlyLabel:\"\",formlyRequired:!1,formlyPlaceholder:\"\",formlyDesciption:\"\",formlyOptions:[]}}var g={rows:[]};if(e.radioRowCollection=g,e.newOptionRadio={saisie:\"\"},e.addNewOptionRadio=function(){var o=i.addNewOptionRadio(e.radioRowCollection,e.newOptionRadio.saisie);o.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionRadio.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionRadio={saisie:\"\"}},e.removeRadioRow=function(o){var t=i.removeOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},e.upThisRadioRow=function(o){var t=i.upthisOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.downThisRadioRow=function(o){var t=i.downthisOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.basicSelectRowCollection=g,e.newOptionBasicSelect={saisie:\"\"},e.addNewOptionBasicSelect=function(){var o=i.addNewOptionBasicSelect(e.basicSelectRowCollection,e.newOptionBasicSelect.saisie);o.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionBasicSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionBasicSelect={saisie:\"\"}},e.removeRow=function(o){var t=i.removeOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},e.upThisRow=function(o){var t=i.upthisOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.downThisRow=function(o){var t=i.downthisOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({\ntype:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.groupedSelectRowCollection=g,e.newOptionGroupedSelect={saisie:\"\"},e.GroupedSelectGroups={list:[]},e.newGroupGroupedSelect={saisie:\"\"},e.groupSelectGroupClick={showList:!1},e.showGroupListToChoose=function(){e.groupSelectGroupClick.showList=!e.groupSelectGroupClick.showList},e.addNewGroupToGroupedSelect=function(){if(\"\"!==e.newGroupGroupedSelect.saisie){for(var o=e.GroupedSelectGroups.list.length-1;o>=0;o--)e.GroupedSelectGroups.list[o]===e.newGroupGroupedSelect.saisie&&l.pop({type:\"warning\",timeout:2e3,title:\"Group already exists\",body:\"No group added.\",showCloseButton:!0});e.GroupedSelectGroups.list.push(e.newGroupGroupedSelect.saisie)}else l.pop({type:\"warning\",timeout:2e3,title:\"Not a valid group to add\",body:\"No group added.\",showCloseButton:!0});e.newGroupGroupedSelect.saisie=\"\"},e.addNewOptionGroupedSelect=function(){var o=i.addNewOptionGroupedSelect(e.groupedSelectRowCollection,e.newOptionGroupedSelect.saisie,\"\");o.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionGroupedSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionGroupedSelect={saisie:\"\"}},e.removeGroupedSelectRow=function(o){var t=i.removeOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},e.upThisGroupedSelectRow=function(o){var t=i.upthisOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.downThisGroupedSelectRow=function(o){var t=i.downthisOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.demodt={},e.today=function(){e.demodt.dt=new Date},e.today(),e.clear=function(){e.demodt.dt=null},e.open=function(o){o.preventDefault(),o.stopPropagation(),e.demodt.opened=!0},e.dateOptions={formatYear:\"yy\",startingDay:1,showWeeks:!0,initDate:null},e.demodt.formats=[\"dd-MMMM-yyyy\",\"yyyy/MM/dd\",\"dd.MM.yyyy\",\"shortDate\"],e.nyaSelect=t,e.nyaSelect.selectedControl=e.nyaSelect.temporyConfig.selectedControl,\"none\"!==t.selectedControl){for(var y=e.nyaSelect.controls.length-1;y>=0;y--)e.nyaSelect.controls[y].id===t.selectedControl&&(e.modelNyaSelect=t.controls[y]);\"BasicSelect\"===e.nyaSelect.selectedControl&&d(),\"GroupedSelect\"===e.nyaSelect.selectedControl&&p(),\"Radio\"===e.nyaSelect.selectedControl&&a()}e.selectThisControl=function(o){e.nyaSelect.selectedControl=\"none\",f();for(var t=e.nyaSelect.controls.length-1;t>=0;t--)e.nyaSelect.controls[t].id===o&&(e.nyaSelect.selectedControl=e.nyaSelect.controls[t].id);\"Date\"===e.nyaSelect.selectedControl&&m()},e.ok=function(){\"BasicSelect\"===e.nyaSelect.selectedControl&&c(),\"GroupedSelect\"===e.nyaSelect.selectedControl&&u(),\"Radio\"===e.nyaSelect.selectedControl&&s(),r.applyConfigToSelectedControl(e.nyaSelect),o.close(e.nyaSelect)},e.cancel=function(){o.dismiss(\"cancel\")}}]),angular.module(\"edaApp.controllers.edaEditPanelController\",[]).controller(\"edaEditPanelController\",[\"$scope\",\"toaster\",\"$timeout\",\"selectOptionManage\",\"controllerModalProxy\",function(e,o,t,l,n){function i(){a.proxyModel.temporyConfig={formlyLabel:\"\",formlyRequired:!1,formlyPlaceholder:\"\",formlyDesciption:\"\",formlyOptions:[]}}function r(){a.proxyModel.temporyConfig.datepickerPopup=a.demodt.formats[0]}var a=this;if(a.proxyModel=n.proxyModel,a.proxyModel.selectedControl=a.proxyModel.temporyConfig.selectedControl,a.basicSelectRowCollection=n.basicSelectRowCollection,a.newOptionBasicSelect=n.newOptionBasicSelect,a.groupedSelectRowCollection=n.groupedSelectRowCollection,a.newOptionGroupedSelect=n.newOptionGroupedSelect,a.GroupedSelectGroups=n.GroupedSelectGroups,a.newGroupGroupedSelect=n.newGroupGroupedSelect,a.groupSelectGroupClick=n.groupSelectGroupClick,a.radioRowCollection=n.radioRowCollection,a.newOptionRadio=n.newOptionRadio,n.resetAllTemporyModels(),\"none\"!==a.proxyModel.temporyConfig.selectedControl){for(var s=a.proxyModel.controls.length-1;s>=0;s--)a.proxyModel.controls[s].id===a.proxyModel.temporyConfig.selectedControl&&(a.modelproxyModel=a.proxyModel.controls[s]);\"BasicSelect\"===a.proxyModel.temporyConfig.selectedControl&&n.bindBasicSelectFromProxyModel(a.basicSelectRowCollection),\"GroupedSelect\"===a.proxyModel.temporyConfig.selectedControl&&n.bindGroupedSelectFromProxyModel(a.groupedSelectRowCollection,a.GroupedSelectGroups),\"Radio\"===a.proxyModel.temporyConfig.selectedControl&&n.bindRadioFromProxyModel(a.radioRowCollection)}a.updateSpecialControl=function(){return n.basicSelectRowCollection=a.basicSelectRowCollection,n.newOptionBasicSelect=a.newOptionBasicSelect,n.groupedSelectRowCollection=a.groupedSelectRowCollection,n.newOptionGroupedSelect=a.newOptionGroupedSelect,n.GroupedSelectGroups=a.GroupedSelectGroups,n.newGroupGroupedSelect=a.newGroupGroupedSelect,n.groupSelectGroupClick=a.groupSelectGroupClick,n.radioRowCollection=a.radioRowCollection,n.newOptionRadio=a.newOptionRadio,n.bindSpecialCtrlTemporyModelsToProxyModel(),!0},a.resetControl=function(){a.proxyModel.temporyConfig.formlyLabel=\"\",a.proxyModel.temporyConfig.formlyRequired=!1,a.proxyModel.temporyConfig.formlyPlaceholder=\"\",a.proxyModel.temporyConfig.formlyDesciption=\"\",a.proxyModel.temporyConfig.formlyOptions=[],a.proxyModel.temporyConfig.datepickerPopup=r()},a.selectThisControl=function(e){a.proxyModel.selectedControl=\"none\",i();for(var o=a.proxyModel.controls.length-1;o>=0;o--)a.proxyModel.controls[o].id===e&&(a.proxyModel.selectedControl=a.proxyModel.controls[o].id);\"Date\"===a.proxyModel.selectedControl&&r()},a.addNewOptionRadio=function(){var e=l.addNewOptionRadio(a.radioRowCollection,a.newOptionRadio.saisie);e.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:e.details,body:\"'\"+a.newOptionRadio.saisie+\"' cannot be added.\",showCloseButton:!0}),a.newOptionRadio={saisie:\"\"}},a.removeRadioRow=function(e){var t=l.removeOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},a.upThisRadioRow=function(e){var t=l.upthisOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.downThisRadioRow=function(e){var t=l.downthisOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.addNewOptionBasicSelect=function(){var e=l.addNewOptionBasicSelect(a.basicSelectRowCollection,a.newOptionBasicSelect.saisie);e.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:e.details,body:\"'\"+a.newOptionBasicSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),a.newOptionBasicSelect={saisie:\"\"}},a.removeRow=function(e){var t=l.removeOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},a.upThisRow=function(e){var t=l.upthisOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.downThisRow=function(e){var t=l.downthisOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.showGroupListToChoose=function(){a.groupSelectGroupClick.showList=!a.groupSelectGroupClick.showList},a.addNewGroupToGroupedSelect=function(){if(\"\"!==a.newGroupGroupedSelect.saisie){for(var e=a.GroupedSelectGroups.list.length-1;e>=0;e--)a.GroupedSelectGroups.list[e]===a.newGroupGroupedSelect.saisie&&o.pop({type:\"warning\",timeout:2e3,title:\"Group already exists\",body:\"No group added.\",showCloseButton:!0});a.GroupedSelectGroups.list.push(a.newGroupGroupedSelect.saisie)}else o.pop({type:\"warning\",timeout:2e3,title:\"Not a valid group to add\",body:\"No group added.\",showCloseButton:!0});a.newGroupGroupedSelect.saisie=\"\"},a.addNewOptionGroupedSelect=function(){var e=l.addNewOptionGroupedSelect(a.groupedSelectRowCollection,a.newOptionGroupedSelect.saisie,\"\");e.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:e.details,body:\"'\"+a.newOptionGroupedSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),a.newOptionGroupedSelect={saisie:\"\"}},a.removeGroupedSelectRow=function(e){var t=l.removeOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},a.upThisGroupedSelectRow=function(e){var t=l.upthisOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.downThisGroupedSelectRow=function(e){var t=l.downthisOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.demodt={},a.today=function(){a.demodt.dt=new Date},a.today(),a.clear=function(){a.demodt.dt=null},a.open=function(e){e.preventDefault(),e.stopPropagation(),a.demodt.opened=!0},a.dateOptions={formatYear:\"yy\",startingDay:1,showWeeks:!0,initDate:null},a.demodt.formats=[\"dd-MMMM-yyyy\",\"yyyy/MM/dd\",\"dd.MM.yyyy\",\"shortDate\"]}]),angular.module(\"edaApp.controllers.edaMainController\",[]).controller(\"edaMainController\",[function(){}]),angular.module(\"edaApp.directives.edaDdContentCounterDirective\",[]).directive(\"ddContentCounter\",[\"dragDropItemCounterService\",\"$timeout\",function(e,o){return{scope:{valueWhenPlaceholder:\"@ddValueWhenPlaceholder\",valueWhendragging:\"@ddValueWhenDragging\",fullModel:\"=ddFullModel\",currentIndex:\"@ddContentCounterCurrentIndex\",parentIndex:\"@ddContentCounterParentIndex\",forceRefresh:\"=ddContentCounterForceCssRefresh\"},restrict:\"A\",link:function(t,l){var n;t.$watch(function(){return l[0].children.length},function(i,r){if(i!==r){for(var a=0,s=[],d=l[0].children.length-1;d>=0;d--)e.isHtmlElementToCount(l[0].children[d].classList)?(a++,s.push({item:d,isReal:!0})):s.push({item:d,isReal:!1});t.contentRealCount=a,n=o(function(){e.updateLineItemCss(t.fullModel,s,t.parentIndex,t.currentIndex,a)},20)}}),t.$on(\"$destroy\",function(){console.warn(\"ddContentCounter timer destruction!\"),o.cancel(n)})}}}]),angular.module(\"edaApp.directives.edaDdDecorContainerDirective\",[]).directive(\"ddDecorContainer\",[function(){var e=['
','
 {{currentTitle}}
',\"
\",'
','
',\"
\"].join(\" \");return{scope:{styleParam:\"=ddContainerProperties\",isStillCollapsed:\"=ddContainerIsCollpased\",verboseMode:\"@ddContainerVerboseMode\",currentIndex:\"@ddContainerCurrentIndex\",collpaseAll:\"&ddCollapseAll\"},restrict:\"A\",template:e,transclude:!0,controller:function(e){e.config={isEnabled:!1},e.collapseFct=function(){e.collpaseAll({exceptThisOne:e.styleParam.WhenIndex}),e.isCollapsed=!e.isCollapsed,e.isStillCollapsed=e.isCollapsed},e.icons={closedClass:\"glyphicon glyphicon-eye-open\",opened:\"glyphicon glyphicon-eye-close\"},e.currentIconClass=function(){return e.isCollapsed?e.icons.closedClass:e.icons.opened}},link:function(e,o,t,l,n){var i=e.verboseMode,r=e.currentIndex;if(e.isCollapsed=!1,\"\"!==i){var a=angular.lowercase(i);(\"true\"===a||\"1\"===a)&&console.dir({whoAmI:\"I am verbose from ddDecorContainer link\",verbodeMode:a,ParentParentIndex:e.$parent.$parent.$index,ParentIndex:e.$parent.$index,currentIndex:r,styleParam:e.styleParam,columnindex:e.$parent.$parent.$parent.$parent.$index})}e.$watch(function(){return e.isStillCollapsed},function(o,t){o!==t&&0===e.$parent.$parent.$index&&(e.isCollapsed=o)}),e.config.isEnabled=!1,\"undefined\"!=typeof r&&\"\"!==r&&\"0\"===r&&\"undefined\"!=typeof e.styleParam.title&&(e.currentTitle=e.styleParam.title,e.config.isEnabled=!0,e.isCollapsed=!0),n(e.$parent,function(e){var t=angular.element(o.children()[1]);t.append(e)})}}}]),angular.module(\"edaApp.directives.edaDdDecorDropZoneDirective\",[]).directive(\"ddDecorDropZone\",[function(){var e=['
','
','
','
','

','  ',\" {{currentTitle}}\",'
',' \",\"
\",\"

\",\"
\",'
','
','
',\"
\",\"
\",\"
\",\"
\",\"
\",\"
\"].join(\" \");return{scope:{styleParam:\"=ddDropZoneProperties\",verboseMode:\"@ddDropZoneVerboseMode\",currentIndex:\"@ddDropZoneCurrentIndex\",addNewLineFct:\"&ddDropZoneAddNewLine\"},restrict:\"A\",template:e,transclude:!0,link:function(e){var o=e.verboseMode,t=e.currentIndex;if(e.headerConfig={HeaderButtonVisible:!1,affixAttr:\"bs-affix\",affixEnabled:!1},\"\"!==o){var l=angular.lowercase(o);(\"true\"===l||\"1\"===l)&&console.dir({whoAmI:\"I am verbose from ddDecorDropZone link\",verbodeMode:l,ParentParentIndex:e.$parent.$parent.$index,ParentIndex:e.$parent.$index,currentIndex:t,styleParam:e.styleParam})}\"undefined\"!=typeof t&&\"\"!==t&&(\"undefined\"!=typeof e.styleParam.title&&(e.currentTitle=e.styleParam.title),\"undefined\"!=typeof e.styleParam.fontAwesomeIcon&&(e.currentFontAwesome=e.styleParam.fontAwesomeIcon),\"1\"===t&&(e.headerConfig.HeaderButtonVisible=!0))}}}]),angular.module(\"edaApp.directives.edaDdDecorItemDirective\",[]).directive(\"ddDecorItem\",[\"dragDropConfig\",function(e){var o=[\"
\",'
',\"
\"].join(\" \");return{scope:{verboseMode:\"@ddItemVerboseMode\",currentIndex:\"@ddItemCurrentIndex\",parentIndex:\"@ddItemParentIndex\",parentParentIndex:\"@ddItemParentParentIndex\",lineItemsCount:\"@ddItemsCount\",cssClass:\"@ddItemCssClass\"},restrict:\"A\",template:o,transclude:!0,link:function(o,t,l,n,i){var r=o.verboseMode,a=o.currentIndex,s=o.parentIndex,d=e.getDistinctItemCssClass();if(angular.forEach(d,function(e){t.removeClass(e)}),t.addClass(o.cssClass),o.$watch(\"cssClass\",function(e,o){e!==o&&(angular.forEach(d,function(e){t.removeClass(e)}),t.addClass(e))}),\"\"!==r){var c=angular.lowercase(r);(\"true\"===c||\"1\"===c)&&console.dir({whoAmI:\"I am verbose from ddDecorItem directive link\",verbodeMode:c,ParentParentIndex:o.$parent.$parent.$index,ParentIndex:s,parentParentIndex:o.parentParentIndex,currentIndex:a,lineItemsCount:o.lineItemsCount})}\"0\"===o.parentParentIndex&&t.addClass(d[0]),i(o.$parent,function(e){var o=angular.element(t.children()[0]);o.append(e)})}}}]),angular.module(\"edaApp.directives.edaDdDecorLineDirective\",[]).directive(\"ddDecorLine\",[\"$timeout\",function(e){var o=['
',' ',\"
\",'
'].join(\" \");return{scope:{verboseMode:\"@ddLineVerboseMode\",currentIndex:\"@ddLineCurrentIndex\",parentIndex:\"@ddLineParentIndex\",removeLine:\"&ddRemoveLine\"},restrict:\"A\",template:o,transclude:!0,link:function(o,t,l,n,i){var r=o.verboseMode,a=o.currentIndex,s=o.parentIndex;if(o.deleteLine={},o.deleteLine.readyToDelete=!1,o.deleteLine.dblClickCount=0,o.isCollapsed=!1,\"\"!==r){var d=angular.lowercase(r);(\"true\"===d||\"1\"===d)&&console.dir({whoAmI:\"I am verbose from ddDecorLine directive link\",verbodeMode:d,ParentParentIndex:o.$parent.$parent.$index,ParentIndex:s,currentIndex:a})}o.removeMe=function(t){t.preventDefault(),t.stopPropagation(),\"1\"===o.parentIndex&&(1===o.deleteLine.dblClickCount&&(o.deleteLine.dblClickCount=0,o.deleteLine.readyToDelete=!1,o.removeLine(),e.cancel(c)),0===o.deleteLine.dblClickCount&&(o.deleteLine.dblClickCount=o.deleteLine.dblClickCount+1,o.deleteLine.readyToDelete=!0))};var c;o.cancelDelete=function(t){c=e(function(){o.deleteLine.dblClickCount=0,o.deleteLine.readyToDelete=!1},500)},o.$on(\"$destroy\",function(){e.cancel(c)}),i(o.$parent,function(e){var o=angular.element(t.children()[0]);o.append(e)})}}}]),angular.module(\"edaApp.directives.edaDdNoEditableControlDirective\",[]).directive(\"ddNoEditableControl\",[function(){return{restrict:\"A\",link:function(e,o){o.on(\"click\",function(e){e.preventDefault()})}}}]),angular.module(\"edaApp.directives\",[\"edaApp.directives.edaStRationDirective\",\"edaApp.directives.edaDdDecorDropZoneDirective\",\"edaApp.directives.edaDdDecorContainerDirective\",\"edaApp.directives.edaDdDecorLineDirective\",\"edaApp.directives.edaDdDecorItemDirective\",\"edaApp.directives.edaDdNoEditableControlDirective\",\"edaApp.directives.edaDdContentCounterDirective\",\"edaApp.directives.edaRightClickDirective\"]),angular.module(\"edaApp.directives.edaRightClickDirective\",[]).directive(\"edaRightClick\",[\"$parse\",function(e){return{restrict:\"A\",link:function(o,t,l){var n=e(l.edaRightClick),i=e(l.edaRightClickColIndex),r=e(l.edaSetRightClicked);t.on(\"contextmenu\",function(e){o.$apply(function(){e.preventDefault(),1===i(o)&&r(o,{}),1===i(o)&&n(o,{$event:e})})})}}}]),angular.module(\"edaApp.directives.edaStRationDirective\",[]).directive(\"stRatio\",[function(){return{restrict:\"A\",link:function(e,o,t){var l=+t.stRatio;o.css(\"width\",l+\"%\")}}}]),angular.module(\"edaApp.services.dragDropItemCountersService\",[]).factory(\"dragDropItemCounterService\",[\"dragDropConfig\",function(e){var o=[],t=angular.copy(e.getItemsNotToCount()),l={};return l.getItemsNotToCount=function(){return t},l.getModelItemsRealCounter=function(){return o},l.isHtmlElementToCount=function(e){var o=!0;return e.length>0&&angular.forEach(t,function(t){for(var l=e.length-1;l>=0;l--)e[l]===t&&(o&=!1)}),o},l.updateLineItemCss=function(o,t,l,n,i){if(\"undefined\"!=typeof o&&\"undefined\"!=typeof t&&\"undefined\"!=typeof l&&\"undefined\"!=typeof n&&\"undefined\"!=typeof i){for(var r=o[l][n].length-1;r>=0;r--)for(var a=0;a=0;r--)o[t][l][r].cssClass=e.getItemCssDependingNumberItemsInRow(n);return!0}return!1},t.updateCssClassWholeColumn=function(o,t){if(\"undefined\"!=typeof t&&\"undefined\"!=typeof o){for(var l=o[t].length-1;l>=0;l--)for(var n=o[t][l].length-1;n>=0;n--)o[t][l][n].cssClass=e.getItemCssDependingNumberItemsInRow(o[t][l].length);return!0}return!1},t}]),angular.module(\"edaApp.services.dragDropModelConfigModelProxyService\",[]).factory(\"ddModelConfModelProxyService\",[\"EasyFormGenFormlyBindingModels\",\"controllerModalProxy\",\"$parse\",function(e,o,t){function l(o){var l={},n=e.getEasyFormListControls(),i=t(\"controls\");return angular.forEach(i(n),function(e){e.id===o.control&&(l=e)}),l}function n(e,o){for(var t=!0,l=o.lines.length-1;l>=0;l--)for(var n=o.lines[l].columns.length-1;n>=0;n--)\"undefined\"!=typeof o.lines[l].columns[n].control&&o.lines[l].columns[n].control.key===e&&(t=!1);return t}function i(e,o){var t=e+\"-\"+Date.now();return n(t,o)===!0?t:(t=e+\"-\"+Date.now(),n(t,o)===!0?t:t=e+\"-\"+Date.now())}function r(e,o,t){angular.forEach(t.lines,function(t,l){l===o&&(t.line=e)})}function a(e,o,l){t(\"control.selectedControl\").assign(o,t(\"selectedControl\")(e)),t(\"control.type\").assign(o,t(\"formlyType\")(e)),t(\"control.key\").assign(o,i(t(\"control.type\")(o),l)),t(\"control.subtype\").assign(o,t(\"formlySubtype\")(e)),t(\"control.templateOptions.label\").assign(o,t(\"formlyLabel\")(e)),t(\"control.templateOptions.required\").assign(o,t(\"formlyRequired\")(e)),t(\"control.templateOptions.description\").assign(o,t(\"formlyDesciption\")(e)),t(\"control.templateOptions.placeholder\").assign(o,t(\"formlyPlaceholder\")(e)),t(\"control.templateOptions.options\").assign(o,t(\"formlyOptions\")(e)),\"datepicker\"===t(\"control.type\")(o)&&t(\"control.templateOptions.datepickerPopup\").assign(o,t(\"datepickerPopup\")(e))}var s={};return s.refreshAllConfigurationFromDragAndDropModel=function(o,t){angular.copy(o);return o.lines=[],angular.forEach(t[1],function(t,n){o.lines.push(angular.copy(e.getEasyFormEmptyConfigurationLineModel())),r(n+1,n,o),angular.forEach(t,function(i,r){var s={control:angular.copy(e.getFormlyControlTemplateForNcolumnLine(t.length,l(t[r]).formlyType))},d=l(t[r]);if(\"undefined\"!=typeof i.key){console.warn(\"debug dragdropModel show this control key : \"+i.key),s.control=angular.copy(i.configModelControl);var c=e.getFormlyControlTemplateForNcolumnLine(t.length,l(t[r]).formlyType);s.control.className=c.className,s.control.cssClass=c.className}else a(d,s,o);\"undefined\"==typeof o.lines[n].columns[r]&&o.lines[n].columns.push(angular.copy(e.getEasyFormConfigurationEmptyControlModel())),o.lines[n].columns[r].control=angular.copy(s.control),o.lines[n].columns[r].numColumn=r+1,o.lines[n].columns[r].exist=!0})}),o},s.refreshControlsKeys=function(e,o){angular.forEach(e.lines,function(e,t){angular.forEach(e.columns,function(e,l){\"undefined\"!=typeof o[1][t]&&o[1][t].length>0&&(o[1][t][l].key=e.control.key,o[1][t][l].configModelControl=angular.copy(e.control))})}),console.info(\"refreshControlsKeys\"),console.dir({when:\"starting\",\"configModel is \":angular.copy(e),\"dragDropModel is \":angular.copy(o)})},s}]),angular.module(\"edaApp.services.edaEditCtrlControllerModalProxy\",[]).factory(\"controllerModalProxy\",[\"EasyFormGenFormlyBindingModels\",function(e){function o(o){var t=e.getEasyFormListControls();return angular.copy(t,o),!0}function t(){var o=e.getEasyFormListControls();return r.proxyModel=angular.copy(o),!0}function l(e){for(var o={selectedControl:\"none\",formlyType:\"none\",formlySubtype:\"none\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyPlaceholder:\"\",formlyOptions:[]},t=e.controls.length-1;t>=0;t--)e.selectedControl===e.controls[t].id&&(o.selectedControl=e.selectedControl,o.formlyType=e.controls[t].formlyType,o.formlySubtype=e.controls[t].formlySubtype,o.formlyLabel=e.controls[t].formlyLabel,o.formlyRequired=e.controls[t].formlyRequired,o.formlyDesciption=e.controls[t].formlyDesciption,o.formlyPlaceholder=e.controls[t].formlyPlaceholder,o.formlyOptions=e.controls[t].formlyOptions,\"datepicker\"===e.controls[t].formlyType&&(o.datepickerPopup=e.controls[t].datepickerPopup));return o}function n(e,o){for(var t=!0,l=o.lines.length-1;l>=0;l--)for(var n=o.lines[l].columns.length-1;n>=0;n--)o.lines[l].columns[n].control.key===e&&(t=!1);return t}function i(o){var t=\"none\",l=angular.copy(e.getEasyFormListControls().controls);return l.forEach(function(e){return e.formlyType===o.type&&e.formlySubtype===o.subtype?t=e.id:void 0}),t}var r={};r.ProxyModel={},t(),r.initNyaSelect=function(e){return o(e)},r.getNyASelectFromSelectedLineColumn=function(e,t,l,n){return o(e),\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions&&(e.temporyConfig.selectedControl=\"undefined\"!=typeof t.lines[l].columns[n].control.selectedControl?t.lines[l].columns[n].control.selectedControl:\"none\",e.temporyConfig.formlyLabel=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.label?t.lines[l].columns[n].control.templateOptions.label:\"\",e.temporyConfig.formlyRequired=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.required?t.lines[l].columns[n].control.templateOptions.required:\"\",e.temporyConfig.formlyDesciption=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.description?t.lines[l].columns[n].control.templateOptions.description:\"\",e.temporyConfig.formlyPlaceholder=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.placeholder?t.lines[l].columns[n].control.templateOptions.placeholder:\"\",e.temporyConfig.formlyOptions=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.options?t.lines[l].columns[n].control.templateOptions.options:\"\",\"Date\"===e.temporyConfig.selectedControl&&(e.temporyConfig.datepickerPopup=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.datepickerPopup?t.lines[l].columns[n].control.templateOptions.datepickerPopup:\"\")),e},r.bindConfigurationModelFromModalReturn=function(e,o,t,i){var r=l(t);i.lines[e].columns[o].control.selectedControl=r.selectedControl,i.lines[e].columns[o].control.type=r.formlyType,i.lines[e].columns[o].control.subtype=r.formlySubtype,i.lines[e].columns[o].control.templateOptions={label:\"\",required:!1,description:\"\",placeholder:\"\",options:[]},i.lines[e].columns[o].control.templateOptions.label=r.formlyLabel,i.lines[e].columns[o].control.templateOptions.required=r.formlyRequired,i.lines[e].columns[o].control.templateOptions.description=r.formlyDesciption,i.lines[e].columns[o].control.templateOptions.placeholder=r.formlyPlaceholder,i.lines[e].columns[o].control.templateOptions.options=r.formlyOptions,\"datepicker\"===i.lines[e].columns[o].control.type&&(i.lines[e].columns[o].control.templateOptions.datepickerPopup=r.datepickerPopup);var a=i.lines[e].columns[o].control.type+\"-\"+Date.now();n(a,i)===!0?i.lines[e].columns[o].control.key=a:(a=i.lines[e].columns[o].control.type+\"-\"+Date.now(),n(a,i)===!0?i.lines[e].columns[o].control.key=a:a=i.lines[e].columns[o].control.type+\"-\"+Date.now()),i.lines[e].columns[o].control.edited=!0},r.applyConfigToSelectedControl=function(e){for(var o=e.controls.length-1;o>=0;o--)e.controls[o].id===e.selectedControl&&(e.controls[o].formlyLabel=e.temporyConfig.formlyLabel,e.controls[o].formlyRequired=e.temporyConfig.formlyRequired,e.controls[o].formlyDesciption=e.temporyConfig.formlyDesciption,e.controls[o].formlyPlaceholder=e.temporyConfig.formlyPlaceholder,e.controls[o].formlyOptions=e.temporyConfig.formlyOptions,\"Date\"===e.controls[o].id&&(e.controls[o].datepickerPopup=e.temporyConfig.datepickerPopup))},r.initProxyModel=function(e){return t(e)},r.bindConfigurationModelFromProxyModel=function(e,o,t){var l=angular.copy(r.proxyModel.temporyConfig);console.warn(\"debug edaEditCtrlControllerModalProxy\"),console.dir(l),t.lines[e].columns[o].control.selectedControl=l.selectedControl,t.lines[e].columns[o].control.type=l.formlyType,t.lines[e].columns[o].control.subtype=l.formlySubtype,t.lines[e].columns[o].control.templateOptions={label:\"\",required:!1,description:\"\",placeholder:\"\",options:[]},t.lines[e].columns[o].control.templateOptions.label=l.formlyLabel,t.lines[e].columns[o].control.templateOptions.required=l.formlyRequired,t.lines[e].columns[o].control.templateOptions.description=l.formlyDesciption,t.lines[e].columns[o].control.templateOptions.placeholder=l.formlyPlaceholder,t.lines[e].columns[o].control.templateOptions.options=l.formlyOptions,\"datepicker\"===t.lines[e].columns[o].control.type&&(t.lines[e].columns[o].control.templateOptions.datepickerPopup=l.datepickerPopup);var i=t.lines[e].columns[o].control.type+\"-\"+Date.now();n(i,t)===!0?t.lines[e].columns[o].control.key=i:(i=t.lines[e].columns[o].control.type+\"-\"+Date.now(),n(i,t)===!0?t.lines[e].columns[o].control.key=i:i=t.lines[e].columns[o].control.type+\"-\"+Date.now()),t.lines[e].columns[o].control.edited=!0},r.setProxyModelFromConfigurationSelection=function(e,o,t){return\"undefined\"!=typeof e.lines[o].columns[t].control&&(r.proxyModel.selectedControl=\"undefined\"!=typeof e.lines[o].columns[t].control.type?i(e.lines[o].columns[t].control):\"none\",r.proxyModel.temporyConfig.selectedControl=\"undefined\"!=typeof e.lines[o].columns[t].control.type?i(e.lines[o].columns[t].control):\"none\",r.proxyModel.temporyConfig.formlyType=\"undefined\"!=typeof e.lines[o].columns[t].control.type?e.lines[o].columns[t].control.type:\"none\",r.proxyModel.temporyConfig.formlySubtype=\"undefined\"!=typeof e.lines[o].columns[t].control.subtype?e.lines[o].columns[t].control.subtype:\"none\",r.proxyModel.temporyConfig.formlyLabel=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.label?e.lines[o].columns[t].control.templateOptions.label:\"\",r.proxyModel.temporyConfig.formlyRequired=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.required?e.lines[o].columns[t].control.templateOptions.required:\"\",r.proxyModel.temporyConfig.formlyDesciption=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.description?e.lines[o].columns[t].control.templateOptions.description:\"\",r.proxyModel.temporyConfig.formlyPlaceholder=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.placeholder?e.lines[o].columns[t].control.templateOptions.placeholder:\"\",r.proxyModel.temporyConfig.formlyOptions=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.options?e.lines[o].columns[t].control.templateOptions.options:\"\",\"Date\"===r.proxyModel.temporyConfig.selectedControl&&(r.proxyModel.temporyConfig.datepickerPopup=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.datepickerPopup?e.lines[o].columns[t].control.templateOptions.datepickerPopup:\"\")),r.proxyModel},r.getProxyModel=function(){return r.proxyModel};var a={toggle:!1,lineIndex:-1,columnIndex:-1,control:{}};r.getEditPanelModelAllModel=function(){return a},r.setEditPanelModelControl=function(e){var o=!1;return\"undefined\"!=typeof e&&(a=angular.copy(e),o=!0),o},r.getEditPanelModelColumnIndex=function(){return a.columnIndex},r.setEditPanelModelColumnIndex=function(e){var o=!1;return\"undefined\"!=typeof e&&(a.columnIndex=e,o=!0),o},r.getEditPanelModelLineIndex=function(){return a.lineIndex},r.setEditPanelModelLineIndex=function(e){var o=!1;return\"undefined\"!=typeof e&&(a.lineIndex=e,o=!0),o},r.getEditPanelModelControl=function(){return a.control},r.setEditPanelModelControl=function(e){var o=!1;return\"undefined\"!=typeof e&&(a.control=angular.copy(e),o=!0),o},r.getEditPanelModelToggle=function(){return a.toggle},r.setEditPanelModelToggle=function(e){var o=!1;return\"undefined\"!=typeof e&&(a.toggle=e,o=!0),o};var s={rows:[]};return r.basicSelectRowCollection=angular.copy(s),r.newOptionBasicSelect=angular.copy({saisie:\"\"}),r.groupedSelectRowCollection=angular.copy(s),r.newOptionGroupedSelect=angular.copy({saisie:\"\"}),r.GroupedSelectGroups=angular.copy({list:[]}),r.newGroupGroupedSelect=angular.copy({saisie:\"\"}),r.groupSelectGroupClick=angular.copy({showList:!1}),r.radioRowCollection=angular.copy(s),r.newOptionRadio=angular.copy({saisie:\"\"}),r.resetAllTemporyModels=function(){return r.basicSelectRowCollection=angular.copy(s),r.newOptionBasicSelect=angular.copy({saisie:\"\"}),r.groupedSelectRowCollection=angular.copy(s),r.newOptionGroupedSelect=angular.copy({saisie:\"\"}),r.GroupedSelectGroups=angular.copy({list:[]}),r.newGroupGroupedSelect=angular.copy({saisie:\"\"}),r.groupSelectGroupClick=angular.copy({showList:!1}),r.radioRowCollection=angular.copy(s),r.newOptionRadio=angular.copy({saisie:\"\"}),!0},r.bindSpecialCtrlTemporyModelsToProxyModel=function(){\n\"BasicSelect\"===r.proxyModel.selectedControl&&r.bindBasicSelectToProxyModel(r.basicSelectRowCollection),\"GroupedSelect\"===r.proxyModel.selectedControl&&r.bindGroupedSelectToProxyModel(r.groupedSelectRowCollection),\"Radio\"===r.proxyModel.selectedControl&&r.bindRadioToProxyModel(r.radioRowCollection)},r.bindBasicSelectFromProxyModel=function(e){if(r.proxyModel.temporyConfig.formlyOptions.length>0)for(var o=0;o<=r.proxyModel.temporyConfig.formlyOptions.length-1;o++){var t={option:r.proxyModel.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.rows.push(t)}},r.bindBasicSelectToProxyModel=function(e){var o=[];if(r.proxyModel.temporyConfig.formlyOptions=o,e.rows.length>0)for(var t=0;t<=e.rows.length-1;t++){var l={name:e.rows[t].option,value:t,group:\"\"};r.proxyModel.temporyConfig.formlyOptions.push(l)}},r.bindGroupedSelectFromProxyModel=function(e,o){if(r.proxyModel.temporyConfig.formlyOptions.length>0){for(var t=0;t<=r.proxyModel.temporyConfig.formlyOptions.length-1;t++){var l={option:r.proxyModel.temporyConfig.formlyOptions[t].name,order:t,group:r.proxyModel.temporyConfig.formlyOptions[t].group};e.rows.push(l)}var n=_.uniq(_.pluck(e.rows,\"group\"));angular.copy(n,o.list)}},r.bindGroupedSelectToProxyModel=function(e){r.proxyModel.temporyConfig.formlyOptions=[];for(var o=0;o<=e.rows.length-1;o++){var t={name:e.rows[o].option,value:o,group:e.rows[o].group};r.proxyModel.temporyConfig.formlyOptions.push(t)}},r.bindRadioFromProxyModel=function(e){if(r.proxyModel.temporyConfig.formlyOptions.length>0)for(var o=0;o<=r.proxyModel.temporyConfig.formlyOptions.length-1;o++){var t={option:r.proxyModel.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.rows.push(t)}},r.bindRadioToProxyModel=function(e){var o=[];if(r.proxyModel.temporyConfig.formlyOptions=o,e.rows.length>0)for(var t=0;t<=e.rows.length-1;t++){var l={name:e.rows[t].option,value:t,group:\"\"};r.proxyModel.temporyConfig.formlyOptions.push(l)}},r}]),angular.module(\"edaApp.services.formFieldManage\",[]).factory(\"formFieldManage\",[\"EasyFormGenFormlyBindingModels\",function(e){function o(e){var o=[];angular.copy(o,e)}function t(o,t,l){var n=t.lines[l].columns.length,i=o.push({className:\"row\",fieldGroup:[]})-1;t.lines[l].columns.forEach(function(t,l){var r={};if(\"undefined\"!=typeof r&&\"none\"!==t.control.type){if(\"header\"===t.control.type||\"subTitle\"===t.control.type){var a=t.control.templateOptions.description;r.template=e.getHeaderTemplateForNcolumnLine(n,a).template,r.className=e.getRawHeaderTemplates().selectedClass}else r=e.getFormlyControlTemplateForNcolumnLine(n,t.control.type),r.className=t.control.className,r.type=t.control.type,r.key=t.control.key,r.templateOptions.type=t.control.templateOptions.type,r.templateOptions.label=t.control.templateOptions.label,r.templateOptions.required=t.control.templateOptions.required,r.templateOptions.placeholder=t.control.templateOptions.placeholder,r.templateOptions.description=t.control.templateOptions.description,r.templateOptions.options=[].concat(t.control.templateOptions.options),\"undefined\"!=typeof r.templateOptions.datepickerPopup&&(t.control.templateOptions.datepickerPopup=r.templateOptions.datepickerPopup);o[i].fieldGroup.push(r)}})}function l(e){var o={};return angular.copy(o,e),!0}function n(e,o){var t={noError:!1,title:\"\",Message:\"\"};return t.noError=!1,t.title=e,t.Message=o,t}function i(e,o){var t={noError:!1,title:\"\",Message:\"\"};return t.noError=!0,t.title=e,t.Message=o,t}var r={};return r.initConfigurationEditFromScratch=function(o,t){var l=e.getEasyFormInitialStateConfigurationModel(t);angular.copy(l,o)},r.bindConfigurationLines=function(o,t,l){if(\"[object Array]\"===Object.prototype.toString.call(t)){var r=e.getEasyFormReloadConfigurationModel(l);return r.lines=[].concat(t),angular.copy(r,o),i(\"configuration model is bound\",\"lines are bound to configuration model.\")}return n(\"lines is not an array\",\"Checks lines type, it is not an array.\")},r.applyConfigurationToformlyModel=function(e,n,i){o(n),l(i);for(var r=e.lines.length,a=0;r>a;a++)t(n,e,a)},r}]),angular.module(\"edaApp.services.formsByIdService\",[\"ngResource\"]).factory(\"formsByIdService\",[\"$resource\",function(e){return e(\"/api/formGen/:id\",{id:\"@id\"},{})}]),angular.module(\"edaApp.services.selectOptionManage\",[]).factory(\"selectOptionManage\",[function(){function e(e,o){var t={resultFlag:!1,details:\"\"};if(\"undefined\"==typeof o)return t.resultFlag=!1,t.details=\"Entered option is empty\",t;if(\"\"!==o){for(var l=e.rows.length-1;l>=0;l--)if(e.rows[l].option===o)return t.resultFlag=!1,t.details=\"Entered option is not unique\",t;return t.resultFlag=!0,t.details=\"\",t}return t.resultFlag=!1,t.details=\"Entered option is empty\",t}function o(e){var o={rows:[]};angular.copy(o,e)}return{testMe:function(){return\"selectOptionManage is here.\"},initModel:function(e){o(e)},isOptionUnique:function(e,o){for(var t=e.rows.length-1;t>=0;t--)if(e.rows[t].option===o)return!1;return!0},isOptionValidFormat:function(e){return\"\"!==e?!0:!1},addNewOptionRadio:function(o,t){var l={resultFlag:!1,details:\"\"},n=e(o,t);if(n.resultFlag===!0){var i={option:t,order:o.rows.length};return o.rows.push(i),l.resultFlag=!0,l.details=\"\",l}return angular.copy(n,l),l},addNewOptionBasicSelect:function(o,t){var l={resultFlag:!1,details:\"\"},n=e(o,t);if(n.resultFlag===!0){var i={option:t,order:o.rows.length};return o.rows.push(i),l.resultFlag=!0,l.details=\"\",l}return angular.copy(n,l),l},addNewOptionGroupedSelect:function(o,t,l){var n={resultFlag:!1,details:\"\"},i=e(o,t);if(i.resultFlag===!0){var r={option:t,group:l,order:o.rows.length};return o.rows.push(r),n.resultFlag=!0,n.details=\"\",n}return angular.copy(i,n),n},removeOption:function(e,o){var t={resultFlag:!1,details:\"\"};return-1!==o?(e.rows.splice(o,1),t.resultFlag=!0,t.details=\"\",t):(t.resultFlag=!1,t.details=\"Option index not valid\",t)},upthisOption:function(e,o){var t={resultFlag:!1,details:\"\"};if(o>-1){if(o>0){if(e.rows[o-1]){var l=e.rows[o];return e.rows.splice(o,1),e.rows.splice(o-1,0,l),t.resultFlag=!0,t.details=\"\",t}return t.resultFlag=!1,t.details=\"Can't retreive option from option index\",t}return t.resultFlag=!0,t.details=\"\",t}return t.resultFlag=!1,t.details=\"Option index not valid\",t},downthisOption:function(e,o){var t={resultFlag:!1,details:\"\"};if(o>-1){if(o'}),e.setType({name:"blank",template:"
"});var l='

{{options.templateOptions.placeholder}}


';e.setType({name:"subTitle",template:l});var t='
  1. {{option.name}}
';e.setType({name:"basicSelect",template:t});var n='
  1. {{$group}} {{option.name}}
';e.setType({name:"groupedSelect",template:n});var i=["date-disabled","custom-class","show-weeks","starting-day","init-date","min-mode","max-mode","format-day","format-month","format-year","format-day-header","format-day-title","format-month-title","year-range","shortcut-propagation","datepicker-popup","show-button-bar","current-text","clear-text","close-text","close-on-date-selection","datepicker-append-to-body"],s=["datepicker-mode","min-date","max-date"],a={};angular.forEach(i,function(e){a[o(e)]={attribute:e}}),angular.forEach(s,function(e){a[o(e)]={bound:e}}),e.setType({name:"datepicker",template:'',wrapper:["bootstrapLabel","bootstrapHasError"],controller:["$scope",function(e){e.open=function(o){o.preventDefault(),o.stopPropagation(),e.opened=!0}}],defaultOptions:{ngModelAttrs:a,templateOptions:{addonLeft:{"class":"glyphicon glyphicon-calendar",onClick:function(e,o){e.templateOptions.isOpen=!e.templateOptions.isOpen}},onFocus:function(e,o,l){l.to.isOpen=!l.to.isOpen},datepickerOptions:{}}}}),e.setWrapper([{template:['
"," ",'
','
','
'," {{message(options.formControl.$viewValue, options.formControl.$modelValue, this)}}","
","
","
"].join(" ")}])}angular.module("eda.easyformGen.stepway",["ngwfApp"]),angular.module("ngwfApp",["ngwfApp.core","ngwfApp.controllers","ngwfApp.services","ngwfApp.filters","ngwfApp.directives"]).value("easyFormGenVersion","v1.0.15").config(e),e.$inject=["formlyConfigProvider"]}(),angular.module("ngwfApp").run(["$templateCache",function(e){e.put("edaStepWayEasyFormGeneratorTemplate.html",'

lines

layout

controls

save

Command

Add a new line : 

Visual

Command

– Selected line –

number of columns :

{{configuration.lines[configuration.activeLine -1].columns.length}}

Visual

Command

– Apply controls to columns –


  Click / Tap on column to open control selection.

  Select desired control and valid to apply it to column.

Visual

 Command



 Final Step : form preview

DATA MODEL

\n										{{vm.model | json}}\n									

FIELDS MODEL (ready to save to database one)

\n										{{vm.wfFormFieldsOnlyNeededProperties | json}}\n									

Easy form generator : {{easyFormGeneratorVERSION}} — Erwan DATIN (MacKentoch)
'),e.put("editModalTemplate.html",''); +!function(){"use strict";!function(){function e(e){function o(e){return e=e.replace(/[\-_\s]+(.)?/g,function(e,o){return o?o.toUpperCase():""}),e.replace(/^([A-Z])/,function(e,o){return o?o.toLowerCase():""})}e.setType({name:"richEditor",template:''}),e.setType({name:"blank",template:"
"});var l='

{{options.templateOptions.placeholder}}


';e.setType({name:"subTitle",template:l});var t='
  1. {{option.name}}
';e.setType({name:"basicSelect",template:t});var n='
  1. {{$group}} {{option.name}}
';e.setType({name:"groupedSelect",template:n});var i=["date-disabled","custom-class","show-weeks","starting-day","init-date","min-mode","max-mode","format-day","format-month","format-year","format-day-header","format-day-title","format-month-title","year-range","shortcut-propagation","datepicker-popup","show-button-bar","current-text","clear-text","close-text","close-on-date-selection","datepicker-append-to-body"],s=["datepicker-mode","min-date","max-date"],a={};angular.forEach(i,function(e){a[o(e)]={attribute:e}}),angular.forEach(s,function(e){a[o(e)]={bound:e}}),e.setType({name:"datepicker",template:'',wrapper:["bootstrapLabel","bootstrapHasError"],controller:["$scope",function(e){e.open=function(o){o.preventDefault(),o.stopPropagation(),e.opened=!0}}],defaultOptions:{ngModelAttrs:a,templateOptions:{addonLeft:{"class":"glyphicon glyphicon-calendar",onClick:function(e,o){e.templateOptions.isOpen=!e.templateOptions.isOpen}},onFocus:function(e,o,l){l.to.isOpen=!l.to.isOpen},datepickerOptions:{}}}}),e.setWrapper([{template:['
"," ",'
','
','
'," {{message(options.formControl.$viewValue, options.formControl.$modelValue, this)}}","
","
","
"].join(" ")}])}angular.module("eda.easyformGen.stepway",["ngwfApp"]),angular.module("ngwfApp",["ngwfApp.core","ngwfApp.controllers","ngwfApp.services","ngwfApp.filters","ngwfApp.directives"]).value("easyFormGenVersion","v1.0.16").config(e),e.$inject=["formlyConfigProvider"]}(),angular.module("ngwfApp").run(["$templateCache",function(e){e.put("edaStepWayEasyFormGeneratorTemplate.html",'

lines

layout

controls

save

Command

Add a new line : 

Visual

Command

– Selected line –

number of columns :

{{configuration.lines[configuration.activeLine -1].columns.length}}

Visual

Command

– Apply controls to columns –


  Click / Tap on column to open control selection.

  Select desired control and valid to apply it to column.

Visual

 Command



 Final Step : form preview

DATA MODEL

\n										{{vm.model | json}}\n									

FIELDS MODEL (ready to save to database one)

\n										{{vm.wfFormFieldsOnlyNeededProperties | json}}\n									

Easy form generator : {{easyFormGeneratorVERSION}} — Erwan DATIN (MacKentoch)
'),e.put("editModalTemplate.html",''); }]),function(){angular.module("ngwfApp.core",["textAngular","textAngularSetup","ngAnimate","toaster","formly","formlyBootstrap","ui.bootstrap","nya.bootstrap.select"])}(),function(){angular.module("ngwfApp.controllers",["ngwfApp.controllers.ngwfMainController","ngwfApp.controllers.ngwfWfEditController","ngwfApp.controllers.ngwfWfEditMODALController"])}(),function(){function e(e,o){e.FormNameAsTest="initial_name",o(function(){e.FormNameAsTest="name changed after 3s"},3e3)}angular.module("ngwfApp.controllers.ngwfMainController",[]).controller("ngwfMainController",e),e.$inject=["$scope","$timeout"]}(),function(){function e(e,o,l,t,n,i,s,a,r,c,d){function p(){return{showDebug:!1,configurationModelNumberofLines:1}}function u(){return{editTab:{active:!0},previewTab:{active:!1}}}function m(o){var l=JSON.parse(o.formlyField);e.configurationLoaded={},c.bindConfigurationLines(e.configurationLoaded,l),c.applyConfigurationToformlyModel(e.configurationLoaded,e.previewLoadedForm.fieldsModel,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.previewLoadedForm.cancelButtonText=o.cancelButtonText,e.previewLoadedForm.submitButtonText=o.submitButtonText}function f(){i.pop({type:"info",timeout:2e3,title:"should save data model if it were not a static example",body:"data :"+t("json")(e.vm.model,4),showCloseButton:!0})}function v(){return{numColumn:-1,exist:!0,control:{type:"none",key:"none",subtype:"none"}}}function g(){return{line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}}function y(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()}function b(){return e.debug.configurationModelNumberofLines=e.configuration.lines.length,e.configuration.lines.length}function h(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)}function w(o){if(o>-1&&e.configuration.lines[o-1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function x(o){if(o>-1&&e.configuration.lines[o+1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function C(){e.configuration.lines.push({line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function S(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):s(function(){i.pop({type:"warning",title:"Last line",body:"Can't delete the last line",showCloseButton:!0})},100),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))}function T(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function L(){e.configuration.configStepCounter=0}function k(){var o=e.configuration.listConfigStep.length-1;e.configuration.configStepCounter!==o&&e.configuration.configStepCounter++,N(e.configuration.configStepCounter)}function O(){0!==e.configuration.configStepCounter&&e.configuration.configStepCounter--,N(e.configuration.configStepCounter)}function R(o){return o=0;o--)e.configuration.stepIndicators[o]=!1}function N(o){D(),e.configuration.stepIndicators[o]=!0}e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.vm.onSubmit=f,e.easyFormGeneratorVERSION=l,e.debug=p(),e.tab=u(),e.configuration={},e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.columnTemplate=v(),e.lineTemplate=g(),e.resetToZeroModel=y,e.countConfigurationModelLines=b,e.setActiveLineNumber=h,e.upThisLine=w,e.downThisLine=x,e.addNewline=C,e.removeThisLine=S,e.increaseNumberOfColumns=T,e.decreaseNumberOfColumns=F,e.resetStepCounter=L,e.nextConfigStep=k,e.previousConfigStep=O,e.stepReachable=R,e.toggleAnimation=E,e.nyaSelect={},e.animationsEnabled=!0,e.showModalAddCtrlToColumn=P,e.loadExistingFormsList=q(),e.formlyList={},e.previewLoadedForm={fieldsModel:[]},e.configurationLoaded={},e.previewExistingform=m,e.saveThisForm=M,q(),c.initConfigurationEditFromScratch(e.configuration),d.initNyaSelect(e.nyaSelect)}angular.module("ngwfApp.controllers.ngwfWfEditController",[]).controller("ngwfWfEditController",e),e.$inject=["$scope","$templateCache","easyFormGenVersion","$filter","$anchorScroll","toaster","$timeout","$modal","$log","formFieldManage","controllerModalProxy"]}(),function(){function e(e,o,l,t,n,i,s){function a(){var o=i.addNewOptionRadio(e.radioRowCollection,e.newOptionRadio.saisie);o.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionRadio.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionRadio={saisie:""}}function r(o){var l=i.removeOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Delete was cancelled.",showCloseButton:!0})}function c(o){var l=i.upthisOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function d(o){var l=i.downthisOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function p(){var o=i.addNewOptionBasicSelect(e.basicSelectRowCollection,e.newOptionBasicSelect.saisie);o.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionBasicSelect.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionBasicSelect={saisie:""}}function u(o){var l=i.removeOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Delete was cancelled.",showCloseButton:!0})}function m(o){var l=i.upthisOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function f(o){var l=i.downthisOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function v(){e.groupSelectGroupClick.showList=!e.groupSelectGroupClick.showList}function g(){if(""!==e.newGroupGroupedSelect.saisie){for(var o=e.GroupedSelectGroups.list.length-1;o>=0;o--)e.GroupedSelectGroups.list[o]===e.newGroupGroupedSelect.saisie&&t.pop({type:"warning",timeout:2e3,title:"Group already exists",body:"No group added.",showCloseButton:!0});e.GroupedSelectGroups.list.push(e.newGroupGroupedSelect.saisie)}else t.pop({type:"warning",timeout:2e3,title:"Not a valid group to add",body:"No group added.",showCloseButton:!0});e.newGroupGroupedSelect.saisie=""}function y(){var o=i.addNewOptionGroupedSelect(e.groupedSelectRowCollection,e.newOptionGroupedSelect.saisie,"");o.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionGroupedSelect.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionGroupedSelect={saisie:""}}function b(o){var l=i.removeOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Delete was cancelled.",showCloseButton:!0})}function h(o){var l=i.upthisOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function w(o){var l=i.downthisOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function x(){e.demodt.dt=new Date}function C(){e.demodt.dt=null}function S(o){o.preventDefault(),o.stopPropagation(),e.demodt.opened=!0}function T(){return{formatYear:"yy",startingDay:1,showWeeks:!0,initDate:null}}function F(o){e.nyaSelect.selectedControl="none",$();for(var l=e.nyaSelect.controls.length-1;l>=0;l--)e.nyaSelect.controls[l].id===o&&(e.nyaSelect.selectedControl=e.nyaSelect.controls[l].id);"Date"===e.nyaSelect.selectedControl&&D()}function L(){"BasicSelect"===e.nyaSelect.selectedControl&&E(),"GroupedSelect"===e.nyaSelect.selectedControl&&M(),"Radio"===e.nyaSelect.selectedControl&&R(),s.applyConfigToSelectedControl(e.nyaSelect),o.close(e.nyaSelect)}function k(){o.dismiss("cancel")}function O(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:""};e.radioRowCollection.rows.push(l)}}function R(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.radioRowCollection.rows.length>0)for(var l=0;l<=e.radioRowCollection.rows.length-1;l++){var t={name:e.radioRowCollection.rows[l].option,value:l,group:""};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function P(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:""};e.basicSelectRowCollection.rows.push(l)}}function E(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.basicSelectRowCollection.rows.length>0)for(var l=0;l<=e.basicSelectRowCollection.rows.length-1;l++){var t={name:e.basicSelectRowCollection.rows[l].option,value:l,group:""};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function q(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0){for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:e.nyaSelect.temporyConfig.formlyOptions[o].group};e.groupedSelectRowCollection.rows.push(l)}var t=_.uniq(_.pluck(e.groupedSelectRowCollection.rows,"group"));angular.copy(t,e.GroupedSelectGroups.list)}}function M(){e.nyaSelect.temporyConfig.formlyOptions=[];for(var o=0;o<=e.groupedSelectRowCollection.rows.length-1;o++){var l={name:e.groupedSelectRowCollection.rows[o].option,value:o,group:e.groupedSelectRowCollection.rows[o].group};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function D(){e.nyaSelect.temporyConfig.datepickerPopup=e.demodt.formats[0]}function N(){if("none"!==l.selectedControl){for(var o=e.nyaSelect.controls.length-1;o>=0;o--)e.nyaSelect.controls[o].id===l.selectedControl&&(e.modelNyaSelect=l.controls[o]);"BasicSelect"===e.nyaSelect.selectedControl&&P(),"GroupedSelect"===e.nyaSelect.selectedControl&&q(),"Radio"===e.nyaSelect.selectedControl&&O()}}function $(){e.nyaSelect.temporyConfig={formlyLabel:"",formlyRequired:!1,formlyPlaceholder:"",formlyDesciption:"",formlyOptions:[]}}var A={rows:[]};e.radioRowCollection=A,e.newOptionRadio={saisie:""},e.addNewOptionRadio=a,e.removeRadioRow=r,e.upThisRadioRow=c,e.downThisRadioRow=d,e.basicSelectRowCollection=A,e.newOptionBasicSelect={saisie:""},e.addNewOptionBasicSelect=p,e.removeRow=u,e.upThisRow=m,e.downThisRow=f,e.groupedSelectRowCollection=A,e.newOptionGroupedSelect={saisie:""},e.GroupedSelectGroups={list:[]},e.newGroupGroupedSelect={saisie:""},e.groupSelectGroupClick={showList:!1},e.showGroupListToChoose=v,e.addNewGroupToGroupedSelect=g,e.addNewOptionGroupedSelect=y,e.removeGroupedSelectRow=b,e.upThisGroupedSelectRow=h,e.downThisGroupedSelectRow=w,e.demodt={},e.today=x,e.clear=C,e.open=S,e.dateOptions=T(),e.demodt.formats=["dd-MMMM-yyyy","yyyy/MM/dd","dd.MM.yyyy","shortDate"],e.nyaSelect=l,e.nyaSelect.selectedControl=e.nyaSelect.temporyConfig.selectedControl,e.selectThisControl=F,e.ok=L,e.cancel=k,x(),N()}angular.module("ngwfApp.controllers.ngwfWfEditMODALController",[]).controller("ngwfWfEditMODALController",e),e.$inject=["$scope","$modalInstance","nyaSelect","toaster","$timeout","selectOptionManage","controllerModalProxy"]}(),function(){function e(e,o,l,t){function n(e,o,n){function i(){var o=angular.isArray(e.edaEasyFormGeneratorModel.edaFieldsModel)&&e.edaEasyFormGeneratorModel.edaFieldsModel.length>0?e.edaEasyFormGeneratorModel.edaFieldsModel:s();return o}function s(){var e=[{line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}];return e}function a(){var o=angular.isArray(e.edaEasyFormGeneratorModel.dataModel)&&e.edaEasyFormGeneratorModel.dataModel.length>0?e.edaEasyFormGeneratorModel.dataModel:[];return o}function r(){return e.edaEasyFormGeneratorModel}function c(e,o){u()}function d(){return e.returnSaveEvent}function p(o,l){if(o===!0){var t={formName:e.configuration.formName,btnSubmitText:e.configuration.submitButtonText,btnCancelText:e.configuration.cancelButtonText,edaFieldsModel:e.configuration.lines,edaFieldsModelStringified:angular.toJson(e.configuration.lines),formlyFieldsModel:e.vm.wfFormFieldsOnlyNeededProperties,dataModel:e.vm.model};e.edaSaveFormEvent({edaEasyFormGeneratorModel:t}),e.returnSaveEvent=!1}}function u(){if(angular.isDefined(e.edaEasyFormGeneratorModel)){var o=i();e.configurationLoaded={},l.bindConfigurationLines(e.configurationLoaded,o),t.refreshControlFormlyExpressionProperties(e.configurationLoaded),t.refreshControlFormlyValidators(e.configurationLoaded),t.refreshControlFormlyValidation(e.configurationLoaded),e.configuration=angular.copy(e.configurationLoaded),l.applyConfigurationToformlyModel(e.configurationLoaded,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.vm.model=a,e.configuration.formName=angular.isString(e.edaEasyFormGeneratorModel.formName)?e.edaEasyFormGeneratorModel.formName:"",e.configuration.submitButtonText=angular.isString(e.edaEasyFormGeneratorModel.btnSubmitText)?e.edaEasyFormGeneratorModel.btnSubmitText:"Submit",e.configuration.cancelButtonText=angular.isString(e.edaEasyFormGeneratorModel.btnCancelText)?e.edaEasyFormGeneratorModel.btnCancelText:"Cancel"}}e.$watch(r,c,!0),e.$watch(d,p)}function i(e,o,l,t,n,i,s,a,r,c,d){function p(){return{showDebug:!1,configurationModelNumberofLines:1}}function u(){return{editTab:{active:!0},previewTab:{active:!1}}}function m(o){var l=JSON.parse(o.formlyField);e.configurationLoaded={},c.bindConfigurationLines(e.configurationLoaded,l),c.applyConfigurationToformlyModel(e.configurationLoaded,e.previewLoadedForm.fieldsModel,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.previewLoadedForm.cancelButtonText=o.cancelButtonText,e.previewLoadedForm.submitButtonText=o.submitButtonText}function f(){i.pop({type:"info",timeout:2e3,title:"should save data model if it were not a static example",body:"data :"+t("json")(e.vm.model,4),showCloseButton:!0})}function v(){return{numColumn:-1,exist:!0,control:{type:"none",key:"none",subtype:"none"}}}function g(){return{line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}}function y(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()}function b(){return e.debug.configurationModelNumberofLines=e.configuration.lines.length,e.configuration.lines.length}function h(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)}function w(o){if(o>-1&&e.configuration.lines[o-1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function x(o){if(o>-1&&e.configuration.lines[o+1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function C(){e.configuration.lines.push({line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function S(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):s(function(){i.pop({type:"warning",title:"Last line",body:"Can't delete the last line",showCloseButton:!0})},100),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))}function T(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function L(){e.configuration.configStepCounter=0}function k(){var o=e.configuration.listConfigStep.length-1;e.configuration.configStepCounter!==o&&e.configuration.configStepCounter++,D(e.configuration.configStepCounter)}function O(){0!==e.configuration.configStepCounter&&e.configuration.configStepCounter--,D(e.configuration.configStepCounter)}function R(o){return o=0;o--)e.configuration.stepIndicators[o]=!1}function D(o){M(),e.configuration.stepIndicators[o]=!0}e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.vm.onSubmit=f,e.easyFormGeneratorVERSION=l,e.debug=p(),e.tab=u(),e.configuration={},e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.columnTemplate=v(),e.lineTemplate=g(),e.resetToZeroModel=y,e.countConfigurationModelLines=b,e.setActiveLineNumber=h,e.upThisLine=w,e.downThisLine=x,e.addNewline=C,e.removeThisLine=S,e.increaseNumberOfColumns=T,e.decreaseNumberOfColumns=F,e.resetStepCounter=L,e.nextConfigStep=k,e.previousConfigStep=O,e.stepReachable=R,e.toggleAnimation=E,e.nyaSelect={},e.animationsEnabled=!0,e.showModalAddCtrlToColumn=P,e.formlyList={},e.previewLoadedForm={fieldsModel:[]},e.configurationLoaded={},e.previewExistingform=m,e.saveThisForm=q,e.returnSaveEvent=!1,c.initConfigurationEditFromScratch(e.configuration),d.initNyaSelect(e.nyaSelect)}i.$inject=["$scope","$templateCache","easyFormGenVersion","$filter","$anchorScroll","toaster","$timeout","$modal","$log","formFieldManage","controllerModalProxy"];var s={restrict:"E",scope:{edaEasyFormGeneratorModel:"=",edaSaveFormEvent:"&edaSaveFormEvent"},controller:i,controllerAs:"vm",replace:!1,templateUrl:"edaStepWayEasyFormGeneratorTemplate.html",link:n};return s}angular.module("ngwfApp.directives.edaStepWayEasyFormGenDirective",[]).directive("edaStepWayEasyFormGen",e),e.$inject=["$templateCache","$timeout","formFieldManage","controllerModalProxy"]}(),function(){angular.module("ngwfApp.directives",["ngwfApp.directives.ngwfStRatioDirective","ngwfApp.directives.edaStepWayEasyFormGenDirective"])}(),function(){function e(){function e(e,o,l){var t=+l.stRatio;o.css("width",t+"%")}var o={link:e};return o}angular.module("ngwfApp.directives.ngwfStRatioDirective",[]).directive("stRatio",e),e.$inject=[]}(),function(){function e(){function e(e){return c(e)}function o(){var e={};return c(e),e}function l(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyExpressionProperties=o.formlyExpressionProperties)})})})}function t(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyValidators=o.formlyValidators)})})})}function n(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyValidation=o.formlyValidation)})})})}function i(e,o,l,t){return c(e),"undefined"!=typeof o.lines[l].columns[t].control.templateOptions&&(e.temporyConfig.selectedControl="undefined"!=typeof o.lines[l].columns[t].control.selectedControl?o.lines[l].columns[t].control.selectedControl:"none",e.temporyConfig.formlyLabel="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.label?o.lines[l].columns[t].control.templateOptions.label:"",e.temporyConfig.formlyRequired="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.required?o.lines[l].columns[t].control.templateOptions.required:"",e.temporyConfig.formlyDesciption="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.description?o.lines[l].columns[t].control.templateOptions.description:"",e.temporyConfig.formlyPlaceholder="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.placeholder?o.lines[l].columns[t].control.templateOptions.placeholder:"",e.temporyConfig.formlyOptions="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.options?o.lines[l].columns[t].control.templateOptions.options:"",e.temporyConfig.formlyExpressionProperties="undefined"!=typeof o.lines[l].columns[t].control.formlyExpressionProperties?angular.copy(o.lines[l].columns[t].control.formlyExpressionProperties):{},e.temporyConfig.formlyValidators="undefined"!=typeof o.lines[l].columns[t].control.formlyValidators?angular.copy(o.lines[l].columns[t].control.formlyValidators):{},e.temporyConfig.formlyValidation="undefined"!=typeof o.lines[l].columns[t].control.formlyValidation?angular.copy(o.lines[l].columns[t].control.formlyValidation):{},"Date"===e.temporyConfig.selectedControl&&(e.temporyConfig.datepickerPopup="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.datepickerPopup?o.lines[l].columns[t].control.templateOptions.datepickerPopup:"")),e}function s(e,o,l,t){var n=d(l);t.lines[e].columns[o].control.selectedControl=n.selectedControl,t.lines[e].columns[o].control.type=n.formlyType,t.lines[e].columns[o].control.subtype=n.formlySubtype,t.lines[e].columns[o].control.templateOptions={label:"",required:!1,description:"",placeholder:"",options:[]},t.lines[e].columns[o].control.templateOptions.label=n.formlyLabel,t.lines[e].columns[o].control.templateOptions.required=n.formlyRequired,t.lines[e].columns[o].control.templateOptions.description=n.formlyDesciption,t.lines[e].columns[o].control.templateOptions.placeholder=n.formlyPlaceholder,t.lines[e].columns[o].control.templateOptions.options=n.formlyOptions,t.lines[e].columns[o].control.formlyExpressionProperties=angular.copy(n.formlyExpressionProperties),t.lines[e].columns[o].control.formlyValidators=angular.copy(n.formlyValidators),t.lines[e].columns[o].control.formlyValidation=angular.copy(n.formlyValidation),"datepicker"===t.lines[e].columns[o].control.type&&(t.lines[e].columns[o].control.templateOptions.datepickerPopup=n.datepickerPopup);var i=t.lines[e].columns[o].control.type+"-"+Date.now();p(i,t)===!0?t.lines[e].columns[o].control.key=i:(i=t.lines[e].columns[o].control.type+"-"+Date.now(),p(i,t)===!0?t.lines[e].columns[o].control.key=i:i=t.lines[e].columns[o].control.type+"-"+Date.now()),t.lines[e].columns[o].control.edited=!0}function a(e){for(var o=e.controls.length-1;o>=0;o--)e.controls[o].id===e.selectedControl&&(e.controls[o].formlyLabel=e.temporyConfig.formlyLabel,e.controls[o].formlyRequired=e.temporyConfig.formlyRequired,e.controls[o].formlyDesciption=e.temporyConfig.formlyDesciption,e.controls[o].formlyPlaceholder=e.temporyConfig.formlyPlaceholder,e.controls[o].formlyOptions=e.temporyConfig.formlyOptions,"Date"===e.controls[o].id&&(e.controls[o].datepickerPopup=e.temporyConfig.datepickerPopup))}function r(){return{formlyLabel:"",formlyRequired:!1,formlyPlaceholder:"",formlyDesciption:"",formlyOptions:[]}}function c(e){var o={controls:[{id:"empty",name:"no control",subtitle:"no control",group:"Blank",formlyType:"blank",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:"Header",name:"Header",subtitle:"no control",group:"Decoration",formlyType:"header",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:"Subtitle",name:"Subtitle",subtitle:"no control",group:"Decoration",formlyType:"subTitle",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:"TextInput",name:"Text input",subtitle:"Text input",group:"input",formlyType:"input",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Text input field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"Password",name:"Password",subtitle:"Password",group:"input",formlyType:"input",formlySubtype:"password",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Password field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"Email",name:"Email",subtitle:"Email",group:"input",formlyType:"input",formlySubtype:"email",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{emailShape:{expression:function(e,o){var l=o||e;return/^[a-z]+[a-z0-9._]+@[a-z]+\.[a-z.]{2,5}$/.test(l)},message:"$viewValue + ' is not a valid email'"}},formlyValidation:{messages:{required:function(e,o,l){var t="this Email field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return l.to.required?n:void 0}}}},{id:"Date",name:"Date",subtitle:"Date",group:"input",formlyType:"datepicker",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],datepickerPopup:"dd-MMMM-yyyy",formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Date field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"Texarea",name:"Textarea",subtitle:"Textarea",group:"Textarea",formlyType:"textarea",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Textarea field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"RichTextEditor",name:"RichTextEditor",subtitle:"RichTextEditor",group:"Textarea",formlyType:"richEditor",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this RichTextEditor field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"Radio",name:"Radio",subtitle:"Radio",options:[],group:"Radio",formlyType:"radio",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Password field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"Checkbox",name:"Checkbox",subtitle:"Checkbox",group:"Checkbox",formlyType:"checkbox",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{ messages:{required:function(e,o,l){var t="this Checkbox field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"BasicSelect",name:"Basic select",subtitle:"Basic select",options:[],group:"Select",formlyType:"basicSelect",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Basic select field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"GroupedSelect",name:"Grouped Select",subtitle:"Grouped Select",options:[],group:"Select",formlyType:"groupedSelect",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Grouped Select field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}}],selectedControl:"none",temporyConfig:{selectedControl:"none",formlyLabel:"label",formlyRequired:!1,formlyDesciption:"",formlyPlaceholder:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}}};return angular.copy(o,e),!0}function d(e){for(var o={selectedControl:"none",formlyType:"none",formlySubtype:"none",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyPlaceholder:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},l=e.controls.length-1;l>=0;l--)e.selectedControl===e.controls[l].id&&(o.selectedControl=e.selectedControl,o.formlyType=e.controls[l].formlyType,o.formlySubtype=e.controls[l].formlySubtype,o.formlyLabel=e.controls[l].formlyLabel,o.formlyRequired=e.controls[l].formlyRequired,o.formlyDesciption=e.controls[l].formlyDesciption,o.formlyPlaceholder=e.controls[l].formlyPlaceholder,o.formlyOptions=e.controls[l].formlyOptions,o.formlyExpressionProperties=angular.copy(e.controls[l].formlyExpressionProperties),o.formlyValidators=angular.copy(e.controls[l].formlyValidators),o.formlyValidation=angular.copy(e.controls[l].formlyValidation),"datepicker"===e.controls[l].formlyType&&(o.datepickerPopup=e.controls[l].datepickerPopup));return o}function p(e,o){for(var l=!0,t=o.lines.length-1;t>=0;t--)for(var n=o.lines[t].columns.length-1;n>=0;n--)o.lines[t].columns[n].control.key===e&&(l=!1);return l}var u={initNyaSelect:e,getNyASelectFromSelectedLineColumn:i,bindConfigurationModelFromModalReturn:s,applyConfigToSelectedControl:a,resetTemporyConfig:r,getControlsDefinition:o,refreshControlFormlyExpressionProperties:l,refreshControlFormlyValidators:t,refreshControlFormlyValidation:n};return u}angular.module("ngwfApp.services.ngwfEditCtrlControllerModalProxy",[]).factory("controllerModalProxy",e),e.$inject=[]}(),function(){function e(){function e(e){var o={activeLine:1,listConfigStep:["init","first","second","third"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0,submitButtonText:"submit",cancelButtonText:"cancel",lines:[{line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}]};angular.copy(o,e)}function o(e,o){if("[object Array]"===Object.prototype.toString.call(o)){var l={activeLine:1,listConfigStep:["init","first","second","third"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0,submitButtonText:"submit",cancelButtonText:"cancel",lines:[]};return l.lines=[].concat(o),angular.copy(l,e),x("configuration model is bound","lines are bound to configuration model.")}return w("lines is not an array","Checks lines type, it is not an array.")}function l(e,o,l){t(o),h(l);for(var i=e.lines.length,c=0;i>c;c++)1===e.lines[c].columns.length&&("header"===e.lines[c].columns[0].control.type?n(o,e,c):s(o,e,c)),2===e.lines[c].columns.length&&a(o,e,c),3===e.lines[c].columns.length&&r(o,e,c)}function t(e){var o=[];angular.copy(o,e)}function n(e,o,l){var t='

'+b(o.lines[l].columns[0].control)+"


";e.push({template:"undefined"!=typeof o.lines[l].columns[0].control.type&&"header"===o.lines[l].columns[0].control.type?t:"
"})}function i(e,o,l){e.templateOptions.datepickerPopup=d(o.lines[l].columns[0].control)}function s(e,o,l){var t={className:"col-xs-12",type:"undefined"!=typeof o.lines[l].columns[0].control.type?"none"===o.lines[l].columns[0].control.type?"blank":o.lines[l].columns[0].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};"datepicker"===o.lines[l].columns[0].control.type&&i(t,o,l),e.push(t)}function a(e,o,l){var t={className:"col-xs-6",template:'

'+b(o.lines[l].columns[0].control)+"


"},n={className:"col-xs-6",template:'

'+b(o.lines[l].columns[1].control)+"


"},s={className:"col-xs-6",type:"undefined"!=typeof o.lines[l].columns[0].control.type?"none"===o.lines[l].columns[0].control.type?"blank":o.lines[l].columns[0].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};"datepicker"===o.lines[l].columns[0].control.type&&i(s,o,l);var a={className:"col-xs-6",type:"undefined"!=typeof o.lines[l].columns[1].control.type?"none"===o.lines[l].columns[1].control.type?"blank":o.lines[l].columns[1].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[1].control.key?o.lines[l].columns[1].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[1].control),label:c(o.lines[l].columns[1].control),required:f(o.lines[l].columns[1].control),placeholder:y(o.lines[l].columns[1].control),description:b(o.lines[l].columns[1].control),options:v(o.lines[l].columns[1].control)},expressionProperties:p(o.lines[l].columns[1].control),validators:u(o.lines[l].columns[1].control),validation:m(o.lines[l].columns[1].control)};"datepicker"===o.lines[l].columns[1].control.type&&i(a,o,l);var r=[];r.push("header"===o.lines[l].columns[0].control.type?t:s),r.push("header"===o.lines[l].columns[1].control.type?n:a),e.push({className:"row",fieldGroup:r})}function r(e,o,l){var t={className:"col-xs-4",template:'

'+b(o.lines[l].columns[0].control)+"


"},n={className:"col-xs-4",template:'

'+b(o.lines[l].columns[1].control)+"


"},s={className:"col-xs-4",template:'

'+b(o.lines[l].columns[2].control)+"


"},a={className:"col-xs-4",type:"undefined"!=typeof o.lines[l].columns[0].control.type?"none"===o.lines[l].columns[0].control.type?"blank":o.lines[l].columns[0].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};"datepicker"===o.lines[l].columns[0].control.type&&i(a,o,l);var r={className:"col-xs-4",type:"undefined"!=typeof o.lines[l].columns[1].control.type?"none"===o.lines[l].columns[1].control.type?"blank":o.lines[l].columns[1].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[1].control.key?o.lines[l].columns[1].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[1].control),label:c(o.lines[l].columns[1].control),required:f(o.lines[l].columns[1].control),placeholder:y(o.lines[l].columns[1].control),description:b(o.lines[l].columns[1].control),options:v(o.lines[l].columns[1].control)},expressionProperties:p(o.lines[l].columns[1].control),validators:u(o.lines[l].columns[1].control),validation:m(o.lines[l].columns[1].control)};"datepicker"===o.lines[l].columns[1].control.type&&i(r,o,l);var d={className:"col-xs-4",type:"undefined"!=typeof o.lines[l].columns[2].control.type?"none"===o.lines[l].columns[2].control.type?"blank":o.lines[l].columns[2].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[2].control.key?o.lines[l].columns[2].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[2].control),label:c(o.lines[l].columns[2].control),required:f(o.lines[l].columns[2].control),placeholder:y(o.lines[l].columns[2].control),description:b(o.lines[l].columns[2].control),options:v(o.lines[l].columns[2].control)},expressionProperties:p(o.lines[l].columns[2].control),validators:u(o.lines[l].columns[2].control),validation:m(o.lines[l].columns[2].control)};"datepicker"===o.lines[l].columns[2].control.type&&i(d,o,l);var h=[];h.push("header"===o.lines[l].columns[0].control.type?t:a),h.push("header"===o.lines[l].columns[1].control.type?n:r),h.push("header"===o.lines[l].columns[2].control.type?s:d),e.push({className:"row",fieldGroup:h})}function c(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.label?e.templateOptions.label:""}function d(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.datepickerPopup?e.templateOptions.datepickerPopup:""}function p(e){return"undefined"!=typeof e.formlyExpressionProperties?angular.copy(e.formlyExpressionProperties):{}}function u(e){return"undefined"!=typeof e.formlyValidators?angular.copy(e.formlyValidators):{}}function m(e){return"undefined"!=typeof e.formlyValidation?angular.copy(e.formlyValidation):{}}function f(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.required?e.templateOptions.required:""}function v(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.options?e.templateOptions.options:""}function g(e){return"undefined"!=typeof e.subtype?e.subtype:""}function y(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.placeholder?e.templateOptions.placeholder:""}function b(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.description?e.templateOptions.description:""}function h(e){var o={};return angular.copy(o,e),!0}function w(e,o){var l={noError:!1,title:"",Message:""};return l.noError=!1,l.title=e,l.Message=o,l}function x(e,o){var l={noError:!1,title:"",Message:""};return l.noError=!0,l.title=e,l.Message=o,l}var C={initConfigurationEditFromScratch:e,bindConfigurationLines:o,applyConfigurationToformlyModel:l};return C}angular.module("ngwfApp.services.formFieldManage",[]).factory("formFieldManage",e),e.$inject=[]}(),function(){function e(){function e(){return"selectOptionManage is here."}function o(e){p(e)}function l(e,o){for(var l=e.rows.length-1;l>=0;l--)if(e.rows[l].option===o)return!1;return!0}function t(e){return""!==e?!0:!1}function n(e,o){var l={resultFlag:!1,details:""},t=d(e,o);if(t.resultFlag===!0){var n={option:o,order:e.rows.length};return e.rows.push(n),l.resultFlag=!0,l.details="",l}return angular.copy(t,l),l}function i(e,o){var l={resultFlag:!1,details:""},t=d(e,o);if(t.resultFlag===!0){var n={option:o,order:e.rows.length};return e.rows.push(n),l.resultFlag=!0,l.details="",l}return angular.copy(t,l),l}function s(e,o,l){var t={resultFlag:!1,details:""},n=d(e,o);if(n.resultFlag===!0){var i={option:o,group:l,order:e.rows.length};return e.rows.push(i),t.resultFlag=!0,t.details="",t}return angular.copy(n,t),t}function a(e,o){var l={resultFlag:!1,details:""};return-1!==o?(e.rows.splice(o,1),l.resultFlag=!0,l.details="",l):(l.resultFlag=!1,l.details="Option index not valid",l)}function r(e,o){var l={resultFlag:!1,details:""};if(o>-1){if(o>0){if(e.rows[o-1]){var t=e.rows[o];return e.rows.splice(o,1),e.rows.splice(o-1,0,t),l.resultFlag=!0,l.details="",l}return l.resultFlag=!1,l.details="Can't retreive option from option index",l}return l.resultFlag=!0,l.details="",l}return l.resultFlag=!1,l.details="Option index not valid",l}function c(e,o){var l={resultFlag:!1,details:""};if(o>-1){if(o=0;t--)if(e.rows[t].option===o)return l.resultFlag=!1,l.details="Entered option is not unique",l;return l.resultFlag=!0,l.details="",l}return l.resultFlag=!1,l.details="Entered option is empty",l}function p(e){var o={rows:[]};angular.copy(o,e)}var u={testMe:e,initModel:o,isOptionUnique:l,isOptionValidFormat:t,addNewOptionRadio:n,addNewOptionBasicSelect:i,addNewOptionGroupedSelect:s,removeOption:a,upthisOption:r,downthisOption:c};return u}angular.module("ngwfApp.services.selectOptionManage",[]).factory("selectOptionManage",e),e.$inject=[]}(),function(){angular.module("ngwfApp.services",["ngwfApp.services.formFieldManage","ngwfApp.services.selectOptionManage","ngwfApp.services.ngwfEditCtrlControllerModalProxy"])}(),function(){angular.module("ngwfApp.filters",[])}()}(this); diff --git a/dist/public/js/eda.stepway.min.js.map b/dist/public/js/eda.stepway.min.js.map index adc45d59..d9bee44e 100644 --- a/dist/public/js/eda.stepway.min.js.map +++ b/dist/public/js/eda.stepway.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["eda.stepway.min.js"],"names":["configfct","formlyConfigProvider","camelize","string","replace","match","chr","toUpperCase","toLowerCase","setType","name","template","subTitleTemplate","basicSelectTemplate","groupedSelectTemplate","attributes","bindings","ngModelAttrs","angular","forEach","attr","attribute","binding","bound","wrapper","controller","$scope","open","$event","preventDefault","stopPropagation","opened","defaultOptions","templateOptions","addonLeft","class","onClick","options","scope","isOpen","onFocus","$viewValue","$modelValue","to","datepickerOptions","setWrapper","join","module","value","config","$inject","run","$templateCache","put","ngwfMainController","$timeout","FormNameAsTest","ngwfWfEditController","easyFormGenVersion","$filter","$anchorScroll","toaster","$modal","$log","formFieldManage","controllerModalProxy","initDebugModel","showDebug","configurationModelNumberofLines","initTabModel","editTab","active","previewTab","previewExistingform","formlyform","configlines","JSON","parse","formlyField","configurationLoaded","bindConfigurationLines","applyConfigurationToformlyModel","previewLoadedForm","fieldsModel","vm","model","wfFormFieldsOnlyNeededProperties","copy","wfFormFields","cancelButtonText","submitButtonText","onSubmit","pop","type","timeout","title","body","showCloseButton","initColumnTemplate","numColumn","exist","control","key","subtype","initLineTemplate","line","activeColumn","columns","resetToZeroModel","configuration","activeLine","lines","length","splice","countConfigurationModelLines","debug","setActiveLineNumber","lineNumber","upThisLine","indexLine","currentLineObj","downThisLine","addNewline","push","removeThisLine","index","increaseNumberOfColumns","MaxNumberOfColumns","newNumberOfColumns","decreaseNumberOfColumns","resetStepCounter","configStepCounter","nextConfigStep","configStepCounterMAX","listConfigStep","setTrueThisStepIndicator","previousConfigStep","stepReachable","indexStep","showModalAddCtrlToColumn","size","numcolumn","modalInstance","animation","animationsEnabled","templateUrl","resolve","nyaSelect","getNyASelectFromSelectedLineColumn","result","then","modalAddCtrlModel","bindConfigurationModelFromModalReturn","toggleAnimation","loadExistingFormsAsList","saveThisForm","formName","clear","resetAllIndicators","i","stepIndicators","indexIndicator","this","easyFormGeneratorVERSION","tab","numberOfColumns","MinNumberOfColumns","columnTemplate","lineTemplate","loadExistingFormsList","formlyList","initConfigurationEditFromScratch","initNyaSelect","ngwfWfEditMODALController","$modalInstance","selectOptionManage","addNewOptionRadio","radioRowCollection","newOptionRadio","saisie","resultFlag","details","removeRadioRow","removeOption","upThisRadioRow","upthisOption","downThisRadioRow","downthisOption","addNewOptionBasicSelect","basicSelectRowCollection","newOptionBasicSelect","removeRow","upThisRow","downThisRow","showGroupListToChoose","groupSelectGroupClick","showList","addNewGroupToGroupedSelect","newGroupGroupedSelect","GroupedSelectGroups","list","addNewOptionGroupedSelect","groupedSelectRowCollection","newOptionGroupedSelect","removeGroupedSelectRow","upThisGroupedSelectRow","downThisGroupedSelectRow","today","demodt","dt","Date","openfct","dateOptionsInit","formatYear","startingDay","showWeeks","initDate","selectThisControl","controlName","selectedControl","resetTemporyConfig","controls","id","initDatePicker","okfct","bindBasicSelectToNya","bindGroupedSelectToNya","bindRadioToNya","applyConfigToSelectedControl","close","cancelfct","dismiss","bindRadioFromNYA","temporyConfig","formlyOptions","newOption","option","order","group","rows","resetNyASelectOptions","bindBasicSelectFromNYA","bindGroupedSelectFromNYA","filteredgroup","_","uniq","pluck","datepickerPopup","formats","initNyaSelectConformingSelectedControl","modelNyaSelect","formlyLabel","formlyRequired","formlyPlaceholder","formlyDesciption","initOptionModel","dateOptions","ok","cancel","edaStepWayEasyFormGen","linkFct","element","attrs","returnAttributeConfigurationLinesIfNotEmpty","edaEasyFormGeneratorModelToReturn","isArray","edaEasyFormGeneratorModel","edaFieldsModel","emptyEdaFieldsModel","emptyModel","returnAttributeDataModelIfNotEmpty","dataModelToReturn","dataModel","watchEdaEasyFormModelExpression","watchEdaEasyFormModelHasChanged","newValue","oldValue","loadExistingConfigurationModel","watchReturnSaveEventExpression","returnSaveEvent","watchReturnSaveEventhasChanged","_easyFormGeneratorModel","btnSubmitText","btnCancelText","edaFieldsModelStringified","toJson","formlyFieldsModel","edaSaveFormEvent","isDefined","refreshControlFormlyExpressionProperties","refreshControlFormlyValidators","refreshControlFormlyValidation","isString","$watch","edaStepWayEasyFormGenCtrl","directive","restrict","controllerAs","link","stRatio","linkfct","ratio","css","nyaSelectObj","resetNyaSelect","getControlsDefinition","configurationModel","isObject","column","controlIndex","_controlsDefinition","aControl","aControlIndex","formlyType","formlySubtype","formlyExpressionProperties","formlyValidators","formlyValidation","configurationObj","label","required","description","placeholder","extractedProps","returnControlFromAddCtrlModalModel","newKey","now","validKeyUniqueness","edited","newNyaSelectObj","subtitle","messages","viewValue","modelValue","defaultReturnMsg","returnMsg","emailShape","expression","test","message","CtrlModalModel","modelToReturn","thisKey","isUnique","j","service","factory","configurationModelInit","Object","prototype","toString","call","configurationModelResult","concat","getMessageObject","getErrorObject","formlyModel","formlyDataModel","resetFormlyModel","resetDataModel","addOneColumnHeader","addOneColumnControl","addTwoColumnControl","addThreeColumnControl","resetformly","lineIndex","headerTemplateCol0","extractTemplateOptionDescription","addDatepickerPopupProperty","fieldToPush","extractTemplateOptionDatepickerPopup","className","extractTemplateOptionType","extractTemplateOptionLabel","extractTemplateOptionRequired","extractTemplateOptionPlaceholder","extractTemplateOptionOptions","expressionProperties","extractFormlyExpressionProperties","validators","extractFormlyValidators","validation","extractFormlyValidation","headerTemplateCol1","controlCol0","controlCol1","FieldGroup","fieldGroup","headerTemplateCol2","controlCol2","obj","emptyDataModel","errorTitle","errorMessage","messageObj","noError","Message","messageTitle","messageBody","testMe","initModel","selectObj","resetModel","isOptionUnique","textValue","isOptionValidFormat","newOptionText","fullResponse","checkResult","validOption","newOptionGroup","AtIndex","indexOption","currentOption","zeroModel"],"mappings":"CAOE,WACA,cAeD,WAwBG,QAASA,GAAUC,GAyKjB,QAASC,GAASC,GAKhB,MAJAA,GAASA,EAAOC,QAAQ,gBAAiB,SAASC,EAAOC,GACvD,MAAOA,GAAMA,EAAIC,cAAgB,KAG5BJ,EAAOC,QAAQ,WAAY,SAASC,EAAOC,GAChD,MAAOA,GAAMA,EAAIE,cAAgB,KA3KrCP,EAAqBQ,SAEjBC,KAAM,aAENC,SAAU,+GAIdV,EAAqBQ,SAEjBC,KAAM,QACNC,SAAU,eAKd,IAAIC,GAAmB,qHACvBX,GAAqBQ,SAEjBC,KAAM,WACNC,SAAUC,GAId,IAAIC,GAAwB,qUAS7BZ,GAAqBQ,SAEhBC,KAAM,cACNC,SAAUE,GAKf,IAAIC,GAA0B,mgBAc9Bb,GAAqBQ,SAEhBC,KAAM,gBACNC,SAAUG,GASd,IAAIC,IACF,gBACA,eACA,aACA,eACA,YACA,WACA,WACA,aACA,eACA,cACA,oBACA,mBACA,qBACA,aACA,uBACA,mBACA,kBACA,eACA,aACA,aACA,0BACA,6BAGEC,GACF,kBACA,WACA,YAGEC,IAEJC,SAAQC,QAAQJ,EAAY,SAASK,GACnCH,EAAaf,EAASkB,KAAUC,UAAWD,KAG7CF,QAAQC,QAAQH,EAAU,SAASM,GACjCL,EAAaf,EAASoB,KAAaC,MAAOD,KAK5CrB,EAAqBQ,SACnBC,KAAM,aACNC,SAAU,wMACVa,SAAU,iBAAkB,qBAC5BC,YAAa,SAAU,SAASC,GAC7BA,EAAOC,KAAO,SAASC,GACtBA,EAAOC,iBACPD,EAAOE,kBACPJ,EAAOK,QAAS,KAIpBC,gBACEf,aAAcA,EACdgB,iBACEC,WACEC,QAAO,+BACPC,QAAS,SAASC,EAASC,GACzBD,EAAQJ,gBAAgBM,QAAUF,EAAQJ,gBAAgBM,SAG9DC,QAAS,SAASC,EAAYC,EAAaJ,GACzCA,EAAMK,GAAGJ,QAAUD,EAAMK,GAAGJ,QAE9BK,yBAYN3C,EAAqB4C,aAEflC,UACE,kDACA,qFACA,2CACA,2BACA,kEACA,mDACA,uDACA,gGACA,0FACA,YACA,UACA,UACAmC,KAAK,QAzLjB5B,QACG6B,OAAO,2BAA4B,YAEtC7B,QACG6B,OAAO,WACN,eACA,sBACA,mBACA,kBACA,uBAEDC,MAAM,qBAAsB,WAC5BC,OAAOjD,GAORA,EAAUkD,SAAW,2BAyLzBhC,QAAQ6B,OAAO,WAAWI,KAAK,iBAAkB,SAASC,GAAiBA,EAAeC,IAAI,2CAA2C,+hkBACzID,EAAeC,IAAI,yBAAyB;;IAa5C,WAGCnC,QACE6B,OAAO,gBACL,cACA,mBACA,YACA,UACA,SACA,kBACA,eACA,4BAgBL,WAIC7B,QAAQ6B,OAAO,uBACI,yCACA,2CACA,qDAmBnB,WAQC,QAASO,GAAmB5B,EAAQ6B,GAEnC7B,EAAO8B,eAAiB,eAExBD,EAAS,WACR7B,EAAO8B,eAAiB,yBACtB,KAXLtC,QACE6B,OAAO,6CACPtB,WAAW,qBAAsB6B,GAElCA,EAAmBJ,SAAW,SAAU,eAkC1C,WAwBI,QAASO,GACuB/B,EACA0B,EACAM,EACAC,EACAC,EACAC,EACAN,EACAO,EACAC,EACAC,EACAC,GAyE9B,QAASC,KACP,OACCC,WAAY,EACZC,gCAAkC,GAIrC,QAASC,KACP,OACEC,SAAWC,QAAS,GACpBC,YAAcD,QAAS,IAI3B,QAASE,GAAoBC,GAC5B,GAAIC,GAAcC,KAAKC,MAAMH,EAAWI,YAExCpD,GAAOqD,uBACPf,EAAgBgB,uBAAuBtD,EAAOqD,oBAAoBJ,GAClEX,EAAgBiB,gCAAgCvD,EAAOqD,oBAAqBrD,EAAOwD,kBAAkBC,YAAazD,EAAO0D,GAAGC,OAC5H3D,EAAO0D,GAAGE,iCAAmCpE,QAAQqE,KAAK7D,EAAO0D,GAAGI,cACpE9D,EAAOwD,kBAAkBO,iBAAmBf,EAAWe,iBACvD/D,EAAOwD,kBAAkBQ,iBAAmBhB,EAAWgB,iBAGxD,QAASC,KACP9B,EAAQ+B,KACJC,KAAM,OACNC,QAAQ,IACRC,MAAO,yDACPC,KAAM,SAAWrC,EAAQ,QAAQjC,EAAO0D,GAAGC,MAAO,GAClDY,iBAAiB,IAIvB,QAASC,KACP,OACEC,UAAW,GACXC,OAAM,EACNC,SACER,KAAK,OACLS,IAAK,OACLC,QAAS,SAWf,QAASC,KACP,OACEC,KAAK,GACLC,aAAe,EACfC,UAEIR,UAAW,EACXC,OAAM,EACNC,SACER,KAAK,OACLS,IAAK,WAaf,QAASM,KAKP,MAJAlF,GAAOmF,cAAcC,WAAa,EAC9BpF,EAAOmF,cAAcE,MAAMC,OAAS,GACtCtF,EAAOmF,cAAcE,MAAME,OAAO,EAAGvF,EAAOmF,cAAcE,MAAMC,OAAS,GAEpEtF,EAAOwF,+BAGhB,QAASA,KAGP,MADAxF,GAAOyF,MAAM/C,gCAAkC1C,EAAOmF,cAAcE,MAAMC,OACnEtF,EAAOmF,cAAcE,MAAMC,OAGpC,QAASI,GAAoBC,GACvBA,GAAc3F,EAAOwF,iCACvBxF,EAAOmF,cAAcC,WAAaO,GAItC,QAASC,GAAWC,GAClB,GAAIA,EAAY,IACV7F,EAAOmF,cAAcE,MAAMQ,EAAY,GAAI,CAC7C,GAAIC,GAAiB9F,EAAOmF,cAAcE,MAAMQ,EAChD7F,GAAOmF,cAAcE,MAAME,OAAOM,EAAY,GAC9C7F,EAAOmF,cAAcE,MAAME,OAAQM,EAAY,EAAI,EAAGC,GAEtD9F,EAAOmF,cAAcC,WAAa,EAItC9C,EAAgBiB,gCAAgCvD,EAAOmF,cAAenF,EAAO0D,GAAGI,aAAc9D,EAAO0D,GAAGC,OACxG3D,EAAO0D,GAAGE,iCAAmCpE,QAAQqE,KAAK7D,EAAO0D,GAAGI,cAGtE,QAASiC,GAAaF,GACpB,GAAIA,EAAY,IACV7F,EAAOmF,cAAcE,MAAMQ,EAAY,GAAI,CAC7C,GAAIC,GAAiB9F,EAAOmF,cAAcE,MAAMQ,EAChD7F,GAAOmF,cAAcE,MAAME,OAAOM,EAAY,GAC9C7F,EAAOmF,cAAcE,MAAME,OAAQM,EAAY,EAAI,EAAGC,GAEtD9F,EAAOmF,cAAcC,WAAa,EAItC9C,EAAgBiB,gCAAgCvD,EAAOmF,cAAenF,EAAO0D,GAAGI,aAAc9D,EAAO0D,GAAGC,OACxG3D,EAAO0D,GAAGE,iCAAmCpE,QAAQqE,KAAK7D,EAAO0D,GAAGI,cAGtE,QAASkC,KACPhG,EAAOmF,cAAcE,MAAMY,MAEvBlB,KAAK,GACLC,aAAe,EACfC,UAEYR,UAAW,EACXC,OAAM,EACNC,SACYR,KAAK,OACLS,IAAK,YAajCtC,EAAgBiB,gCAAgCvD,EAAOmF,cAAenF,EAAO0D,GAAGI,aAAc9D,EAAO0D,GAAGC,OACxG3D,EAAO0D,GAAGE,iCAAmCpE,QAAQqE,KAAK7D,EAAO0D,GAAGI,cAGtE,QAASoC,GAAeC,GAClBA,EAAQ,KACNnG,EAAOmF,cAAcE,MAAMC,OAAS,GAEhCtF,EAAOmF,cAAcC,aAAee,EAAQ,IAC9CnG,EAAOmF,cAAcC,WAAa,GAEpCpF,EAAOmF,cAAcE,MAAME,OAAOY,EAAO,IAE3CtE,EAAS,WACLM,EAAQ+B,KACAC,KAAM,UACNE,MAAO,YACPC,KAAM,6BACNC,iBAAiB,KAE1B,KAGPjC,EAAgBiB,gCAAgCvD,EAAOmF,cAAenF,EAAO0D,GAAGI,aAAc9D,EAAO0D,GAAGC,OACxG3D,EAAO0D,GAAGE,iCAAmCpE,QAAQqE,KAAK7D,EAAO0D,GAAGI,eAItE,QAASsC,KACP,GAAIpG,EACGmF,cACAE,MAAMrF,EAAOmF,cAAcC,WAAY,GACvCH,QAAQK,OAAStF,EAAOqG,mBAAoB,CAEjD,GAAIC,GAAqBtG,EACImF,cACAE,MAAMrF,EAAOmF,cAAcC,WAAY,GACvCH,QACAgB,MAEOxB,UAAW,GACXC,OAAO,EACPC,SACYR,KAAK,OACLS,IAAK,SAUrD5E,GACKmF,cACAE,MAAMrF,EAAOmF,cAAcC,WAAY,GACvCH,QAAQqB,EAAqB,GAC7B7B,UAAY6B,EAGjBhE,EAAgBiB,gCAAgCvD,EAAOmF,cAAenF,EAAO0D,GAAGI,aAAc9D,EAAO0D,GAAGC,OACxG3D,EAAO0D,GAAGE,iCAAmCpE,QAAQqE,KAAK7D,EAAO0D,GAAGI,cAGxE,QAASyC,KACHvG,EACGmF,cACAE,MAAMrF,EAAOmF,cAAcC,WAAY,GACvCH,QAAQK,OAAS,GACtBtF,EAAOmF,cACJE,MAAMrF,EAAOmF,cAAcC,WAAY,GACvCH,QACAM,OAAOvF,EAAOmF,cAAcE,MAAMrF,EAAOmF,cAAcC,WAAY,GAAGH,QAAQK,OAAQ,EAAG,GAG9FhD,EAAgBiB,gCAAgCvD,EAAOmF,cAAenF,EAAO0D,GAAGI,aAAc9D,EAAO0D,GAAGC,OAExG3D,EAAO0D,GAAGE,iCAAmCpE,QAAQqE,KAAK7D,EAAO0D,GAAGI,cAGtE,QAAS0C,KACPxG,EAAOmF,cAAcsB,kBAAoB,EAG3C,QAASC,KACP,GAAIC,GAAuB3G,EAAOmF,cAAcyB,eAAetB,OAAQ,CACnEtF,GAAOmF,cAAcsB,oBAAsBE,GAC3C3G,EAAOmF,cAAcsB,oBAEzBI,EAAyB7G,EAAOmF,cAAcsB,mBAGhD,QAASK,KACwC,IAA3C9G,EAAOmF,cAAcsB,mBACvBzG,EAAOmF,cAAcsB,oBAEvBI,EAAyB7G,EAAOmF,cAAcsB,mBAGhD,QAASM,GAAcC,GACrB,MAAIA,GAAYhH,EAAOmF,cAAcsB,kBAC5B,WAEA,UAIX,QAASQ,GAAyBC,EAAMrB,EAAWsB,GAEjD,GAAIC,GAAgBhF,EAAOnC,MACOoH,UAAWrH,EAAOsH,kBAClBC,YAAa,yBACbxH,WAAY,4BACZmH,KAAM,KACNM,SACEC,UAAW,WACT,MAAOlF,GACImF,mCAAmC1H,EAAOyH,UAAWzH,EAAOmF,cAAcU,EAAWsB,MAKtIC,GAAcO,OAAOC,KAAK,SAAUC,GAChCtF,EAAqBuF,sCAAsCjC,EAAWsB,EAAWU,EAAmB7H,EAAOmF,eAC3G7C,EAAgBiB,gCAAgCvD,EAAOmF,cAAenF,EAAO0D,GAAGI,aAAc9D,EAAO0D,GAAGC,OAExG3D,EAAO0D,GAAGE,iCAAmCpE,QAAQqE,KAAK7D,EAAO0D,GAAGI,eAErE,cAKL,QAASiE,KACP/H,EAAOsH,mBAAqBtH,EAAOsH,kBAUrC,QAASU,MAOT,QAASC,KACP,MAA6C,mBAAlCjI,GAAOmF,cAAc+C,UAChC/F,EAAQ+B,KACAC,KAAM,UACNC,QAAQ,IACRC,MAAO,yBACPC,KAAM,2BACNC,iBAAiB,KAEhB,GAE6B,KAAlCvE,EAAOmF,cAAc+C,UACzB/F,EAAQ+B,KACAC,KAAM,UACNC,QAAQ,IACRC,MAAO,wBACPC,KAAM,2BACNC,iBAAiB,KAEhB,IAETpC,EAAQ+B,KACAC,KAAM,OACNC,QAAQ,IACRC,MAAO,sBACPC,KAAM,QACNC,iBAAiB,IAIzBpC,EAAQgG,QACRhG,EAAQ+B,KACAC,KAAM,OACNC,QAAQ,IACRC,MAAO,sDACPC,KAAM,GACNC,iBAAiB,KAElB,GAMT,QAAS6D,KACP,IAAK,GAAIC,GAAIrI,EAAOmF,cAAcmD,eAAehD,OAAS,EAAG+C,GAAK,EAAGA,IACnErI,EAAOmF,cAAcmD,eAAeD,IAAK,EAI7C,QAASxB,GAAyB0B,GAC9BH,IACApI,EAAOmF,cAAcmD,eAAeC,IAAkB,EAxa1DvI,EAAO0D,GAA2B8E,KAClCxI,EAAO0D,GAAGC,SACV3D,EAAO0D,GAAGI,gBACV9D,EAAO0D,GAAGE,oCACV5D,EAAO0D,GAAGO,SAAwBA,EAElCjE,EAAOyI,yBAA2BzG,EAClChC,EAAOyF,MAA2BjD,IAClCxC,EAAO0I,IAA2B/F,IAGlC3C,EAAOmF,iBAEPnF,EAAO2I,gBAA2B,EAClC3I,EAAOqG,mBAA2B,EAClCrG,EAAO4I,mBAA2B,EAClC5I,EAAO6I,eAA2BrE,IAElCxE,EAAO8I,aAA2BhE,IAClC9E,EAAOkF,iBAA2BA,EAClClF,EAAOwF,6BAA+BA,EACtCxF,EAAO0F,oBAA2BA,EAClC1F,EAAO4F,WAA2BA,EAClC5F,EAAO+F,aAA2BA,EAClC/F,EAAOgG,WAA2BA,EAClChG,EAAOkG,eAA2BA,EAElClG,EAAOoG,wBAA2BA,EAClCpG,EAAOuG,wBAA2BA,EAElCvG,EAAOwG,iBAA2BA,EAClCxG,EAAO0G,eAA2BA,EAElC1G,EAAO8G,mBAA2BA,EAClC9G,EAAO+G,cAA2BA,EAElC/G,EAAO+H,gBAAkBA,EAEzB/H,EAAOyH,aAEPzH,EAAOsH,mBAA2B,EAElCtH,EAAOiH,yBAA2BA,EAIlCjH,EAAO+I,sBAA2Bf,IAClChI,EAAOgJ,cACPhJ,EAAOwD,mBAA6BC,gBACpCzD,EAAOqD,uBACPrD,EAAO+C,oBAA2BA,EAClC/C,EAAOiI,aAA2BA,EAWlCD,IAEA1F,EAAgB2G,iCAAiCjJ,EAAOmF,eAExD5C,EAAqB2G,cAAclJ,EAAOyH,WApG9CjI,QACG6B,OAAO,+CACPtB,WAAW,uBAAwBgC,GAGpCA,EAAqBP,SACnB,SACA,iBACA,qBACA,UACA,gBACA,UACA,WACA,SACA,OACA,kBACA,2BAkdN,WAkBI,QAAS2H,GAA2BnJ,EACAoJ,EACA3B,EACAtF,EACAN,EACAwH,EACA9G,GAuDlC,QAAS+G,KACP,GAAI3B,GAAS0B,EAAmBC,kBAAkBtJ,EAAOuJ,mBAAoBvJ,EAAOwJ,eAAeC,OAC/F9B,GAAO+B,cAAe,GACpBvH,EAAQ+B,KACNC,KAAM,UACNC,QAAQ,IACRC,MAAOsD,EAAOgC,QACdrF,KAAM,IAAMtE,EAAOwJ,eAAeC,OAAS,qBAC3ClF,iBAAiB,IAIzBvE,EAAOwJ,gBAAkBC,OAAQ,IAGnC,QAASG,GAAezD,GACtB,GAAIwB,GAAS0B,EAAmBQ,aAAa7J,EAAOuJ,mBAAoBpD,EACpEwB,GAAO+B,cAAe,GACtBvH,EAAQ+B,KACNC,KAAM,UACNC,QAAQ,IACRC,MAAOsD,EAAOgC,QACdrF,KAAM,wBACNC,iBAAiB,IAKzB,QAASuF,GAAe3D,GACtB,GAAIwB,GAAS0B,EAAmBU,aAAa/J,EAAOuJ,mBAAoBpD,EACpEwB,GAAO+B,cAAe,GACxBvH,EAAQ+B,KACNC,KAAM,UACNC,QAAQ,IACRC,MAAOsD,EAAOgC,QACdrF,KAAM,uBACNC,iBAAiB,IAKvB,QAASyF,GAAiB7D,GACxB,GAAIwB,GAAS0B,EAAmBY,eAAejK,EAAOuJ,mBAAoBpD,EACtEwB,GAAO+B,cAAe,GACxBvH,EAAQ+B,KACNC,KAAM,UACNC,QAAQ,IACRC,MAAOsD,EAAOgC,QACdrF,KAAM,uBACNC,iBAAiB,IAKvB,QAAS2F,KACP,GAAIvC,GAAS0B,EAAmBa,wBAAwBlK,EAAOmK,yBAA0BnK,EAAOoK,qBAAqBX,OACjH9B,GAAO+B,cAAe,GACxBvH,EAAQ+B,KACNC,KAAM,UACNC,QAAQ,IACRC,MAAOsD,EAAOgC,QACdrF,KAAM,IAAMtE,EAAOoK,qBAAqBX,OAAS,qBACjDlF,iBAAiB,IAIrBvE,EAAOoK,sBAAwBX,OAAQ,IAGzC,QAASY,GAAUlE,GACjB,GAAIwB,GAAS0B,EAAmBQ,aAAa7J,EAAOmK,yBAA0BhE,EAC1EwB,GAAO+B,cAAe,GACxBvH,EAAQ+B,KACNC,KAAM,UACNC,QAAQ,IACRC,MAAOsD,EAAOgC,QACdrF,KAAM,wBACNC,iBAAiB,IAKvB,QAAS+F,GAAUnE,GACjB,GAAIwB,GAAS0B,EAAmBU,aAAa/J,EAAOmK,yBAA0BhE,EAC1EwB,GAAO+B,cAAe,GACxBvH,EAAQ+B,KACNC,KAAM,UACNC,QAAQ,IACRC,MAAOsD,EAAOgC,QACdrF,KAAM,uBACNC,iBAAiB,IAKvB,QAASgG,GAAYpE,GACnB,GAAIwB,GAAS0B,EAAmBY,eAAejK,EAAOmK,yBAA0BhE,EAC5EwB,GAAO+B,cAAe,GACxBvH,EAAQ+B,KACNC,KAAM,UACNC,QAAQ,IACRC,MAAOsD,EAAOgC,QACdrF,KAAM,uBACNC,iBAAiB,IAKvB,QAASiG,KACPxK,EAAOyK,sBAAsBC,UAAY1K,EAAOyK,sBAAsBC,SAGxE,QAASC,KACP,GAA4C,KAAxC3K,EAAO4K,sBAAsBnB,OAAe,CAC9C,IAAK,GAAIpB,GAAIrI,EAAO6K,oBAAoBC,KAAKxF,OAAS,EAAG+C,GAAK,EAAGA,IAC3DrI,EAAO6K,oBAAoBC,KAAKzC,KAAOrI,EAAO4K,sBAAsBnB,QACtEtH,EAAQ+B,KACNC,KAAM,UACNC,QAAQ,IACRC,MAAO,uBACPC,KAAM,kBACNC,iBAAiB,GAIvBvE,GAAO6K,oBAAoBC,KAAK7E,KAAKjG,EAAO4K,sBAAsBnB,YAElEtH,GAAQ+B,KACNC,KAAM,UACNC,QAAQ,IACRC,MAAO,2BACPC,KAAM,kBACNC,iBAAiB,GAGrBvE,GAAO4K,sBAAsBnB,OAAS,GAGxC,QAASsB,KACP,GAAIpD,GAAS0B,EAAmB0B,0BAA0B/K,EAAOgL,2BAA4BhL,EAAOiL,uBAAuBxB,OAAQ,GAC/H9B,GAAO+B,cAAe,GACxBvH,EAAQ+B,KACNC,KAAM,UACNC,QAAQ,IACRC,MAAOsD,EAAOgC,QACdrF,KAAM,IAAMtE,EAAOiL,uBAAuBxB,OAAS,qBACnDlF,iBAAiB,IAMrBvE,EAAOiL,wBAA0BxB,OAAQ,IAG3C,QAASyB,GAAuB/E,GAC9B,GAAIwB,GAAS0B,EAAmBQ,aAAa7J,EAAOgL,2BAA4B7E,EAC5EwB,GAAO+B,cAAe,GACxBvH,EAAQ+B,KACNC,KAAM,UACNC,QAAQ,IACRC,MAAOsD,EAAOgC,QACdrF,KAAM,wBACNC,iBAAiB,IAKvB,QAAS4G,GAAuBhF,GAC9B,GAAIwB,GAAS0B,EAAmBU,aAAa/J,EAAOgL,2BAA4B7E,EAC5EwB,GAAO+B,cAAe,GACxBvH,EAAQ+B,KACNC,KAAM,UACNC,QAAQ,IACRC,MAAOsD,EAAOgC,QACdrF,KAAM,uBACNC,iBAAiB,IAKvB,QAAS6G,GAAyBjF,GAChC,GAAIwB,GAAS0B,EAAmBY,eAAejK,EAAOgL,2BAA4B7E,EAC9EwB,GAAO+B,cAAe,GACxBvH,EAAQ+B,KACNC,KAAM,UACNC,QAAQ,IACRC,MAAOsD,EAAOgC,QACdrF,KAAM,uBACNC,iBAAiB,IAKvB,QAAS8G,KACPrL,EAAOsL,OAAOC,GAAK,GAAIC,MAGzB,QAASrD,KACPnI,EAAOsL,OAAOC,GAAK,KAGrB,QAASE,GAAQvL,GACfA,EAAOC,iBACPD,EAAOE,kBACPJ,EAAOsL,OAAOjL,QAAS,EAGzB,QAASqL,KACP,OACEC,WAAY,KACZC,YAAa,EACbC,WAAW,EACXC,SAAU,MAId,QAASC,GAAkBC,GACzBhM,EAAOyH,UAAUwE,gBAAkB,OACnCC,GAEA,KAAK,GAAI7D,GAAIrI,EAAOyH,UAAU0E,SAAS7G,OAAS,EAAG+C,GAAK,EAAGA,IACrDrI,EAAOyH,UAAU0E,SAAS9D,GAAG+D,KAAOJ,IACtChM,EAAOyH,UAAUwE,gBAAkBjM,EAAOyH,UAAU0E,SAAS9D,GAAG+D,GAI3B,UAArCpM,EAAOyH,UAAUwE,iBACnBI,IAIJ,QAASC,KACkC,gBAArCtM,EAAOyH,UAAUwE,iBACnBM,IAEuC,kBAArCvM,EAAOyH,UAAUwE,iBACnBO,IAEuC,UAArCxM,EAAOyH,UAAUwE,iBACnBQ,IAGFlK,EAAqBmK,6BAA6B1M,EAAOyH,WAEzD2B,EAAeuD,MAAM3M,EAAOyH,WAG9B,QAASmF,KACPxD,EAAeyD,QAAQ,UASzB,QAASC,KACP,GAAI9M,EAAOyH,UAAUsF,cAAcC,cAAc1H,OAAS,EACxD,IAAK,GAAI+C,GAAI,EAAGA,GAAKrI,EAAOyH,UAAUsF,cAAcC,cAAc1H,OAAO,EAAG+C,IAAI,CAC9E,GAAI4E,IACAC,OAAUlN,EAAOyH,UAAUsF,cAAcC,cAAc3E,GAAGrJ,KAC1DmO,MAAS9E,EACT+E,MAAS,GAEbpN,GAAOuJ,mBAAmB8D,KAAKpH,KAAKgH,IAK1C,QAASR,KACP,GAAIa,KAEJ,IADAtN,EAAOyH,UAAUsF,cAAcC,cAAgBM,EAC3CtN,EAAOuJ,mBAAmB8D,KAAK/H,OAAS,EAC1C,IAAK,GAAI+C,GAAI,EAAGA,GAAKrI,EAAOuJ,mBAAmB8D,KAAK/H,OAAS,EAAG+C,IAAI,CAC9D,GAAI4E,IACFjO,KAAQgB,EAAOuJ,mBAAmB8D,KAAKhF,GAAG6E,OAC1C5L,MAAS+G,EACT+E,MAAS,GAEXpN,GAAOyH,UAAUsF,cAAcC,cAAc/G,KAAKgH,IAK5D,QAASM,KACP,GAAIvN,EAAOyH,UAAUsF,cAAcC,cAAc1H,OAAS,EACxD,IAAK,GAAI+C,GAAI,EAAGA,GAAKrI,EAAOyH,UAAUsF,cAAcC,cAAc1H,OAAO,EAAG+C,IAAI,CAC9E,GAAI4E,IACFC,OAAUlN,EAAOyH,UAAUsF,cAAcC,cAAc3E,GAAGrJ,KAC1DmO,MAAS9E,EACT+E,MAAS,GAEXpN,GAAOmK,yBAAyBkD,KAAKpH,KAAKgH,IAKhD,QAASV,KACP,GAAIe,KAEJ,IADAtN,EAAOyH,UAAUsF,cAAcC,cAAgBM,EAC3CtN,EAAOmK,yBAAyBkD,KAAK/H,OAAS,EAChD,IAAK,GAAI+C,GAAI,EAAGA,GAAKrI,EAAOmK,yBAAyBkD,KAAK/H,OAAS,EAAG+C,IAAI,CACxE,GAAI4E,IACFjO,KAAQgB,EAAOmK,yBAAyBkD,KAAKhF,GAAG6E,OAChD5L,MAAS+G,EACT+E,MAAS,GAEXpN,GAAOyH,UAAUsF,cAAcC,cAAc/G,KAAKgH,IAKxD,QAASO,KACP,GAAIxN,EAAOyH,UAAUsF,cAAcC,cAAc1H,OAAS,EAAG,CAC3D,IAAK,GAAI+C,GAAI,EAAGA,GAAKrI,EAAOyH,UAAUsF,cAAcC,cAAc1H,OAAO,EAAG+C,IAAI,CAC9E,GAAI4E,IACFC,OAAUlN,EAAOyH,UAAUsF,cAAcC,cAAc3E,GAAGrJ,KAC1DmO,MAAS9E,EACT+E,MAASpN,EAAOyH,UAAUsF,cAAcC,cAAc3E,GAAG+E,MAE3DpN,GAAOgL,2BAA2BqC,KAAKpH,KAAKgH,GAG9C,GAAIQ,GAAgBC,EAAEC,KAAKD,EAAEE,MAAM5N,EAAOgL,2BAA2BqC,KAAM,SAC3E7N,SAAQqE,KAAK4J,EAAezN,EAAO6K,oBAAoBC,OAI3D,QAAS0B,KACPxM,EAAOyH,UAAUsF,cAAcC,gBAC/B,KAAK,GAAI3E,GAAI,EAAGA,GAAKrI,EAAOgL,2BAA2BqC,KAAK/H,OAAS,EAAG+C,IAAI,CAC1E,GAAI4E,IACFjO,KAAQgB,EAAOgL,2BAA2BqC,KAAKhF,GAAG6E,OAClD5L,MAAS+G,EACT+E,MAASpN,EAAOgL,2BAA2BqC,KAAKhF,GAAG+E,MAErDpN,GAAOyH,UAAUsF,cAAcC,cAAc/G,KAAKgH,IAItD,QAASZ,KACPrM,EAAOyH,UAAUsF,cAAcc,gBAAkB7N,EAAOsL,OAAOwC,QAAQ,GAGzE,QAASC,KAEP,GAAkC,SAA9BtG,EAAUwE,gBAA4B,CACxC,IAAK,GAAI5D,GAAIrI,EAAOyH,UAAU0E,SAAS7G,OAAS,EAAG+C,GAAK,EAAGA,IACpDrI,EAAOyH,UAAU0E,SAAS9D,GAAG+D,KAAO3E,EAAUwE,kBAC/CjM,EAAOgO,eAAiBvG,EAAU0E,SAAS9D,GAGR,iBAArCrI,EAAOyH,UAAUwE,iBACnBsB,IAEuC,kBAArCvN,EAAOyH,UAAUwE,iBACnBuB,IAEuC,UAArCxN,EAAOyH,UAAUwE,iBACnBa,KAKN,QAASZ,KACPlM,EAAOyH,UAAUsF,eACfkB,YAAa,GACbC,gBAAgB,EAChBC,kBAAmB,GACnBC,iBAAkB,GAClBpB,kBAxaJ,GAAIqB,IAAoBhB,QAExBrN,GAAOuJ,mBAAqB8E,EAC5BrO,EAAOwJ,gBAAsBC,OAAQ,IAErCzJ,EAAOsJ,kBAAqBA,EAC5BtJ,EAAO4J,eAAqBA,EAC5B5J,EAAO8J,eAAqBA,EAC5B9J,EAAOgK,iBAAqBA,EAE5BhK,EAAOmK,yBAA2BkE,EAClCrO,EAAOoK,sBAA4BX,OAAQ,IAC3CzJ,EAAOkK,wBAA2BA,EAClClK,EAAOqK,UAA2BA,EAClCrK,EAAOsK,UAA2BA,EAClCtK,EAAOuK,YAA2BA,EAElCvK,EAAOgL,2BAA6BqD,EACpCrO,EAAOiL,wBAA8BxB,OAAQ,IAC7CzJ,EAAO6K,qBAA+BC,SACtC9K,EAAO4K,uBAA8BnB,OAAQ,IAC7CzJ,EAAOyK,uBAA8BC,UAAW,GAChD1K,EAAOwK,sBAA6BA,EACpCxK,EAAO2K,2BAA6BA,EACpC3K,EAAO+K,0BAA6BA,EACpC/K,EAAOkL,uBAA6BA,EACpClL,EAAOmL,uBAA6BA,EACpCnL,EAAOoL,yBAA6BA,EAEpCpL,EAAOsL,UACPtL,EAAOqL,MAAiBA,EACxBrL,EAAOmI,MAAiBA,EACxBnI,EAAOC,KAAiBwL,EACxBzL,EAAOsO,YAAiB5C,IACxB1L,EAAOsL,OAAOwC,SAAW,eAAgB,aAAc,aAAc,aAErE9N,EAAOyH,UAA6BA,EACpCzH,EAAOyH,UAAUwE,gBAAmBjM,EAAOyH,UAAUsF,cAAcd,gBACnEjM,EAAO+L,kBAA6BA,EACpC/L,EAAOuO,GAA6BjC,EACpCtM,EAAOwO,OAA6B5B,EAKpCvB,IAEA0C,IAtEJvO,QACG6B,OAAO,oDACPtB,WAAW,4BAA6BoJ,GAEzCA,EAA0B3H,SACxB,SACA,iBACA,YACA,UACA,WACA,qBACA,2BAycL,WAaC,QAASiN,GACL/M,EACAG,EACAS,EACAC,GAoCH,QAASmM,GAAQ9N,EAAO+N,EAASC,GAoB1B,QAASC,KACP,GAAIC,GACAtP,QAAQuP,QAAQnO,EAAMoO,0BAA0BC,iBAC5CrO,EAAMoO,0BAA0BC,eAAe3J,OAAS,EACtD1E,EAAMoO,0BAA0BC,eAGpCC,GAEL,OAAOJ,GAOf,QAASI,KACR,GAAIC,KAEFpK,KAAQ,EACRC,aAAgB,EAChBC,UAEER,UAAa,EACbC,OAAS,EACTC,SACCR,KAAQ,OACRS,IAAO,WAMZ,OAAOuK,GAGH,QAASC,KACP,GAAIC,GACA7P,QAAQuP,QAAQnO,EAAMoO,0BAA0BM,YAC5C1O,EAAMoO,0BAA0BM,UAAUhK,OAAS,EACnD1E,EAAMoO,0BAA0BM,YAKvC,OAAOD,GAGV,QAASE,KACP,MAAO3O,GAAMoO,0BAGf,QAASQ,GAAgCC,EAAUC,GACjDC,IAKF,QAASC,KACP,MAAOhP,GAAMiP,gBAGf,QAASC,GAA+BL,EAAUC,GAChD,GAAID,KAAa,EAAM,CACrB,GAAIM,IACF7H,SAAoBtH,EAAMuE,cAAc+C,SACxC8H,cAAoBpP,EAAMuE,cAAcnB,iBACxCiM,cAAoBrP,EAAMuE,cAAcpB,iBACxCkL,eAAoBrO,EAAMuE,cAAcE,MAGxC6K,0BAA4B1Q,QAAQ2Q,OAAOvP,EAAMuE,cAAcE,OAE/D+K,kBAAoBxP,EAAM8C,GAAGE,iCAC7B0L,UAAoB1O,EAAM8C,GAAGC,MAE/B/C,GAAMyP,kBACJrB,0BAAiCe,IAGnCnP,EAAMiP,iBAAkB,GAK9B,QAASF,KAEP,GAAGnQ,QAAQ8Q,UAAU1P,EAAMoO,2BAA2B,CACpD,GAAI/L,GAAwB4L,GAC5BjO,GAAMyC,uBAENf,EAAgBgB,uBAAuB1C,EAAMyC,oBAAoBJ,GAQjEV,EAAqBgO,yCAAyC3P,EAAMyC,qBACpEd,EAAqBiO,+BAA+B5P,EAAMyC,qBAC1Dd,EAAqBkO,+BAA+B7P,EAAMyC,qBAG1DzC,EAAMuE,cAAgB3F,QAAQqE,KAAKjD,EAAMyC,qBAGzCf,EAAgBiB,gCAAgC3C,EAAMyC,oBAAqBzC,EAAM8C,GAAGI,aAAclD,EAAM8C,GAAGC,OAE3G/C,EAAM8C,GAAGE,iCAAmCpE,QAAQqE,KAAKjD,EAAM8C,GAAGI,cAClElD,EAAM8C,GAAGC,MAAmCyL,EAC5CxO,EAAMuE,cAAc+C,SAAwB1I,QAAQkR,SAAS9P,EAAMoO,0BAA0B9G,UAAYtH,EAAMoO,0BAA0B9G,SAAW,GACpJtH,EAAMuE,cAAcnB,iBAAwBxE,QAAQkR,SAAS9P,EAAMoO,0BAA0BgB,eAAiBpP,EAAMoO,0BAA0BgB,cAAgB,SAC9JpP,EAAMuE,cAAcpB,iBAAwBvE,QAAQkR,SAAS9P,EAAMoO,0BAA0BiB,eAAiBrP,EAAMoO,0BAA0BiB,cAAgB,UAlIhKrP,EAAM+P,OAAOpB,EACXC,GACA,GAGP5O,EAAM+P,OAAOf,EACPE,GA0IP,QAASc,GACuB5Q,EACA0B,EACAM,EACAC,EACAC,EACAC,EACAN,EACAO,EACAC,EACAC,EACAC,GAmE9B,QAASC,KACP,OACCC,WAAY,EACZC,gCAAkC,GAIrC,QAASC,KACP,OACEC,SAAWC,QAAS,GACpBC,YAAcD,QAAS,IAI3B,QAASE,GAAoBC,GAC5B,GAAIC,GAAcC,KAAKC,MAAMH,EAAWI,YAExCpD,GAAOqD,uBACPf,EAAgBgB,uBAAuBtD,EAAOqD,oBAAoBJ,GAClEX,EAAgBiB,gCAAgCvD,EAAOqD,oBAAqBrD,EAAOwD,kBAAkBC,YAAazD,EAAO0D,GAAGC,OAC5H3D,EAAO0D,GAAGE,iCAAmCpE,QAAQqE,KAAK7D,EAAO0D,GAAGI,cACpE9D,EAAOwD,kBAAkBO,iBAAmBf,EAAWe,iBACvD/D,EAAOwD,kBAAkBQ,iBAAmBhB,EAAWgB,iBAGxD,QAASC,KACP9B,EAAQ+B,KACJC,KAAM,OACNC,QAAQ,IACRC,MAAO,yDACPC,KAAM,SAAWrC,EAAQ,QAAQjC,EAAO0D,GAAGC,MAAO,GAClDY,iBAAiB,IAIvB,QAASC,KACP,OACEC,UAAW,GACXC,OAAM,EACNC,SACER,KAAK,OACLS,IAAK,OACLC,QAAS,SAWf,QAASC,KACP,OACEC,KAAK,GACLC,aAAe,EACfC,UAEIR,UAAW,EACXC,OAAM,EACNC,SACER,KAAK,OACLS,IAAK,WAaf,QAASM,KAKP,MAJAlF,GAAOmF,cAAcC,WAAa,EAC9BpF,EAAOmF,cAAcE,MAAMC,OAAS,GACtCtF,EAAOmF,cAAcE,MAAME,OAAO,EAAGvF,EAAOmF,cAAcE,MAAMC,OAAS,GAEpEtF,EAAOwF,+BAGhB,QAASA,KAGP,MADAxF,GAAOyF,MAAM/C,gCAAkC1C,EAAOmF,cAAcE,MAAMC,OACnEtF,EAAOmF,cAAcE,MAAMC,OAGpC,QAASI,GAAoBC,GACvBA,GAAc3F,EAAOwF,iCACvBxF,EAAOmF,cAAcC,WAAaO,GAItC,QAASC,GAAWC,GAClB,GAAIA,EAAY,IACV7F,EAAOmF,cAAcE,MAAMQ,EAAY,GAAI,CAC7C,GAAIC,GAAiB9F,EAAOmF,cAAcE,MAAMQ,EAChD7F,GAAOmF,cAAcE,MAAME,OAAOM,EAAY,GAC9C7F,EAAOmF,cAAcE,MAAME,OAAQM,EAAY,EAAI,EAAGC,GAEtD9F,EAAOmF,cAAcC,WAAa,EAItC9C,EAAgBiB,gCAAgCvD,EAAOmF,cAAenF,EAAO0D,GAAGI,aAAc9D,EAAO0D,GAAGC,OACxG3D,EAAO0D,GAAGE,iCAAmCpE,QAAQqE,KAAK7D,EAAO0D,GAAGI,cAGtE,QAASiC,GAAaF,GACpB,GAAIA,EAAY,IACV7F,EAAOmF,cAAcE,MAAMQ,EAAY,GAAI,CAC7C,GAAIC,GAAiB9F,EAAOmF,cAAcE,MAAMQ,EAChD7F,GAAOmF,cAAcE,MAAME,OAAOM,EAAY,GAC9C7F,EAAOmF,cAAcE,MAAME,OAAQM,EAAY,EAAI,EAAGC,GAEtD9F,EAAOmF,cAAcC,WAAa,EAItC9C,EAAgBiB,gCAAgCvD,EAAOmF,cAAenF,EAAO0D,GAAGI,aAAc9D,EAAO0D,GAAGC,OACxG3D,EAAO0D,GAAGE,iCAAmCpE,QAAQqE,KAAK7D,EAAO0D,GAAGI,cAGtE,QAASkC,KACPhG,EAAOmF,cAAcE,MAAMY,MAEvBlB,KAAK,GACLC,aAAe,EACfC,UAEYR,UAAW,EACXC,OAAM,EACNC,SACYR,KAAK,OACLS,IAAK,YAajCtC,EAAgBiB,gCAAgCvD,EAAOmF,cAAenF,EAAO0D,GAAGI,aAAc9D,EAAO0D,GAAGC,OACxG3D,EAAO0D,GAAGE,iCAAmCpE,QAAQqE,KAAK7D,EAAO0D,GAAGI,cAGtE,QAASoC,GAAeC,GAClBA,EAAQ,KACNnG,EAAOmF,cAAcE,MAAMC,OAAS,GAEhCtF,EAAOmF,cAAcC,aAAee,EAAQ,IAC9CnG,EAAOmF,cAAcC,WAAa,GAEpCpF,EAAOmF,cAAcE,MAAME,OAAOY,EAAO,IAE3CtE,EAAS,WACLM,EAAQ+B,KACAC,KAAM,UACNE,MAAO,YACPC,KAAM,6BACNC,iBAAiB,KAE1B,KAGPjC,EAAgBiB,gCAAgCvD,EAAOmF,cAAenF,EAAO0D,GAAGI,aAAc9D,EAAO0D,GAAGC,OACxG3D,EAAO0D,GAAGE,iCAAmCpE,QAAQqE,KAAK7D,EAAO0D,GAAGI,eAItE,QAASsC,KACP,GAAIpG,EACGmF,cACAE,MAAMrF,EAAOmF,cAAcC,WAAY,GACvCH,QAAQK,OAAStF,EAAOqG,mBAAoB,CAEjD,GAAIC,GAAqBtG,EACImF,cACAE,MAAMrF,EAAOmF,cAAcC,WAAY,GACvCH,QACAgB,MAEOxB,UAAW,GACXC,OAAO,EACPC,SACYR,KAAK,OACLS,IAAK,SAUrD5E,GACKmF,cACAE,MAAMrF,EAAOmF,cAAcC,WAAY,GACvCH,QAAQqB,EAAqB,GAC7B7B,UAAY6B,EAGjBhE,EAAgBiB,gCAAgCvD,EAAOmF,cAAenF,EAAO0D,GAAGI,aAAc9D,EAAO0D,GAAGC,OACxG3D,EAAO0D,GAAGE,iCAAmCpE,QAAQqE,KAAK7D,EAAO0D,GAAGI,cAGxE,QAASyC,KACHvG,EACGmF,cACAE,MAAMrF,EAAOmF,cAAcC,WAAY,GACvCH,QAAQK,OAAS,GACtBtF,EAAOmF,cACJE,MAAMrF,EAAOmF,cAAcC,WAAY,GACvCH,QACAM,OAAOvF,EAAOmF,cAAcE,MAAMrF,EAAOmF,cAAcC,WAAY,GAAGH,QAAQK,OAAQ,EAAG,GAG9FhD,EAAgBiB,gCAAgCvD,EAAOmF,cAAenF,EAAO0D,GAAGI,aAAc9D,EAAO0D,GAAGC,OAExG3D,EAAO0D,GAAGE,iCAAmCpE,QAAQqE,KAAK7D,EAAO0D,GAAGI,cAGtE,QAAS0C,KACPxG,EAAOmF,cAAcsB,kBAAoB,EAG3C,QAASC,KACP,GAAIC,GAAuB3G,EAAOmF,cAAcyB,eAAetB,OAAQ,CACnEtF,GAAOmF,cAAcsB,oBAAsBE,GAC3C3G,EAAOmF,cAAcsB,oBAEzBI,EAAyB7G,EAAOmF,cAAcsB,mBAGhD,QAASK,KACwC,IAA3C9G,EAAOmF,cAAcsB,mBACvBzG,EAAOmF,cAAcsB,oBAEvBI,EAAyB7G,EAAOmF,cAAcsB,mBAGhD,QAASM,GAAcC,GACrB,MAAIA,GAAYhH,EAAOmF,cAAcsB,kBAC5B,WAEA,UAIX,QAASQ,GAAyBC,EAAMrB,EAAWsB,GAEjD,GAAIC,GAAgBhF,EAAOnC,MACOoH,UAAWrH,EAAOsH,kBAClBC,YAAa,yBACbxH,WAAY,4BACZmH,KAAM,KACNM,SACEC,UAAW,WACT,MAAOlF,GACImF,mCAAmC1H,EAAOyH,UAAWzH,EAAOmF,cAAcU,EAAWsB,MAKtIC,GAAcO,OAAOC,KAAK,SAAUC,GAChCtF,EAAqBuF,sCAAsCjC,EAAWsB,EAAWU,EAAmB7H,EAAOmF,eAC3G7C,EAAgBiB,gCAAgCvD,EAAOmF,cAAenF,EAAO0D,GAAGI,aAAc9D,EAAO0D,GAAGC,OAExG3D,EAAO0D,GAAGE,iCAAmCpE,QAAQqE,KAAK7D,EAAO0D,GAAGI,eAErE,cAKL,QAASiE,KACP/H,EAAOsH,mBAAqBtH,EAAOsH,kBAQrC,QAASW,KACP,MAA6C,mBAAlCjI,GAAOmF,cAAc+C,UAChC/F,EAAQ+B,KACAC,KAAM,UACNC,QAAQ,IACRC,MAAO,yBACPC,KAAM,2BACNC,iBAAiB,KAEhB,GAE6B,KAAlCvE,EAAOmF,cAAc+C,UACzB/F,EAAQ+B,KACAC,KAAM,UACNC,QAAQ,IACRC,MAAO,wBACPC,KAAM,2BACNC,iBAAiB,KAEhB,IAETpC,EAAQ+B,KACAC,KAAM,OACNC,QAAQ,IACRC,MAAO,sBACPC,KAAM,QACNC,iBAAiB,IAIzBpC,EAAQgG,QAGRnI,EAAO6P,iBAAkB,GAClB,GAMT,QAASzH,KACP,IAAK,GAAIC,GAAIrI,EAAOmF,cAAcmD,eAAehD,OAAS,EAAG+C,GAAK,EAAGA,IACnErI,EAAOmF,cAAcmD,eAAeD,IAAK,EAI7C,QAASxB,GAAyB0B,GAC9BH,IACApI,EAAOmF,cAAcmD,eAAeC,IAAkB,EArZ1DvI,EAAO0D,GAA2B8E,KAClCxI,EAAO0D,GAAGC,SACV3D,EAAO0D,GAAGI,gBACV9D,EAAO0D,GAAGE,oCACV5D,EAAO0D,GAAGO,SAAwBA,EAElCjE,EAAOyI,yBAA2BzG,EAClChC,EAAOyF,MAA2BjD,IAClCxC,EAAO0I,IAA2B/F,IAGlC3C,EAAOmF,iBAEPnF,EAAO2I,gBAA2B,EAClC3I,EAAOqG,mBAA2B,EAClCrG,EAAO4I,mBAA2B,EAClC5I,EAAO6I,eAA2BrE,IAElCxE,EAAO8I,aAA2BhE,IAClC9E,EAAOkF,iBAA2BA,EAClClF,EAAOwF,6BAA+BA,EACtCxF,EAAO0F,oBAA2BA,EAClC1F,EAAO4F,WAA2BA,EAClC5F,EAAO+F,aAA2BA,EAClC/F,EAAOgG,WAA2BA,EAClChG,EAAOkG,eAA2BA,EAElClG,EAAOoG,wBAA2BA,EAClCpG,EAAOuG,wBAA2BA,EAElCvG,EAAOwG,iBAA2BA,EAClCxG,EAAO0G,eAA2BA,EAElC1G,EAAO8G,mBAA2BA,EAClC9G,EAAO+G,cAA2BA,EAElC/G,EAAO+H,gBAA2BA,EAElC/H,EAAOyH,aAEPzH,EAAOsH,mBAA2B,EAElCtH,EAAOiH,yBAA2BA,EAGlCjH,EAAOgJ,cACPhJ,EAAOwD,mBAA6BC,gBACpCzD,EAAOqD,uBACPrD,EAAO+C,oBAA2BA,EAClC/C,EAAOiI,aAA2BA,EAClCjI,EAAO6P,iBAA2B,EAQlCvN,EAAgB2G,iCAAiCjJ,EAAOmF,eAExD5C,EAAqB2G,cAAclJ,EAAOyH,WA3P1CmJ,EAA0BpP,SACxB,SACA,iBACA,qBACA,UACA,gBACA,UACA,WACA,SACA,OACA,kBACA,uBAIL,IAAIqP,IACHC,SAAW,IACXlQ,OACMoO,0BAA4B,IAC5BqB,iBAA4B,qBAElCtQ,WAAa6Q,EACbG,aAAe,KAEfrS,SAAU,EACV6I,YAAc,2CACdyJ,KAAOtC,EAER,OAAOmC,GAhDTrR,QACE6B,OAAO,wDACPwP,UAAU,wBAAyBpC,GAEpCA,EAAsBjN,SAClB,iBACA,WACA,kBACA,2BAonBL,WAGAhC,QACE6B,OAAO,sBACP,0CACA,yDAmBF,WASC,QAAS4P,KAQR,QAASC,GAAQtQ,EAAO+N,EAASjP,GAChC,GAAIyR,IAAQzR,EAAY,OACvBiP,GAAQyC,IAAI,QAAQD,EAAM,KAR5B,GAAIN,IACHG,KAAOE,EAGR,OAAOL,GAXTrR,QACE6B,OAAO,8CACPwP,UAAU,UAAWI,GAEtBA,EAAQzP,cAiCV,WASE,QAASe,KAiBR,QAAS2G,GAAcmI,GACtB,MAAOC,GAAeD,GAYvB,QAASE,KACR,GAAIpF,KAEJ,OADAmF,GAAenF,GACRA,EAOR,QAASoE,GAAyCiB,GAE7ChS,QAAQiS,SAASD,IAEpBhS,QAAQC,QAAQ+R,EAAmBnM,MAAO,SAASN,EAAMc,GACxDrG,QAAQC,QAAQsF,EAAKE,QAAS,SAASyM,EAAQC,GAC9C,GAAIC,GAAsBL,GAC1B/R,SAAQC,QAAQmS,EAAoBzF,SAAU,SAAS0F,EAAUC,GAC5DJ,EAAO/M,QAAQR,OAAS0N,EAASE,YACnCL,EAAO/M,QAAQE,UAAYgN,EAASG,gBAEpCN,EAAO/M,QAAQsN,2BAA6BJ,EAASI,kCAY5D,QAASzB,GAA+BgB,GAEnChS,QAAQiS,SAASD,IAEpBhS,QAAQC,QAAQ+R,EAAmBnM,MAAO,SAASN,EAAMc,GACxDrG,QAAQC,QAAQsF,EAAKE,QAAS,SAASyM,EAAQC,GAC9C,GAAIC,GAAsBL,GAC1B/R,SAAQC,QAAQmS,EAAoBzF,SAAU,SAAS0F,EAAUC,GAC5DJ,EAAO/M,QAAQR,OAAS0N,EAASE,YACnCL,EAAO/M,QAAQE,UAAYgN,EAASG,gBAEpCN,EAAO/M,QAAQuN,iBAAmBL,EAASK,wBAYlD,QAASzB,GAA+Be,GAEnChS,QAAQiS,SAASD,IAEpBhS,QAAQC,QAAQ+R,EAAmBnM,MAAO,SAASN,EAAMc,GACxDrG,QAAQC,QAAQsF,EAAKE,QAAS,SAASyM,EAAQC,GAC9C,GAAIC,GAAsBL,GAC1B/R,SAAQC,QAAQmS,EAAoBzF,SAAU,SAAS0F,EAAUC,GAC5DJ,EAAO/M,QAAQR,OAAS0N,EAASE,YACnCL,EAAO/M,QAAQE,UAAYgN,EAASG,gBAEpCN,EAAO/M,QAAQwN,iBAAmBN,EAASM,wBAUhD,QAASzK,GAAmC2J,EAAce,EAAkBvM,EAAWsB,GA0BrF,MAzBAmK,GAAeD,GAK4E,mBAAhFe,GAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,kBAEtE8Q,EAAatE,cAAcd,gBAAiH,mBAAtFmG,GAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQsH,gBAAuCmG,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQsH,gBAAkB,OACzOoF,EAAatE,cAAckB,YAAkH,mBAAzFmE,GAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgB8R,MAA0BD,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgB8R,MAAQ,GAChPhB,EAAatE,cAAcmB,eAAqH,mBAA3FkE,GAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgB+R,SAA4BF,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgB+R,SAAW,GACtPjB,EAAatE,cAAcqB,iBAAuH,mBAA5FgE,GAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgBgS,YAA6BH,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgBgS,YAAc,GAC3PlB,EAAatE,cAAcoB,kBAAwH,mBAA5FiE,GAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgBiS,YAA6BJ,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgBiS,YAAc,GAC5PnB,EAAatE,cAAcC,cAAoH,mBAA1FoF,GAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgBI,QAA2ByR,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgBI,QAAU,GAExP0Q,EAAatE,cAAckF,2BAAgI,mBAA5FG,GAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQsN,2BAA6CzS,QAAQqE,KAAKuO,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQsN,+BACnPZ,EAAatE,cAAcmF,iBAAsH,mBAA3FE,GAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQuN,iBAA4C1S,QAAQqE,KAAKuO,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQuN,qBACzOb,EAAatE,cAAcoF,iBAAsH,mBAA3FC,GAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQwN,iBAA4C3S,QAAQqE,KAAKuO,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQwN,qBAKlL,SAA/Cd,EAAatE,cAAcd,kBAC9BoF,EAAatE,cAAcc,gBAA0H,mBAAhGuE,GAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgBsN,gBAAiCuE,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgBsN,gBAAkB,KAG9PwD,EAGT,QAASvJ,GAAsCjC,EAAWsB,EAAWU,EAAmBuK,GAEtF,GAAIK,GAAiBC,EAAmC7K,EACxDuK,GAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQsH,gBAAoBwG,EAAexG,gBAChGmG,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQR,KAAcsO,EAAeV,WAC1FK,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQE,QAAgB4N,EAAeT,cAE5FI,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,iBACyB8R,MAAO,GACPC,UAAU,EACVC,YAAa,GACbC,YAAa,GACb7R,YAGtFyR,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgB8R,MAAYI,EAAexE,YACxGmE,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgB+R,SAAaG,EAAevE,eACzGkE,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgBgS,YAAcE,EAAerE,iBAC1GgE,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgBiS,YAAcC,EAAetE,kBAC1GiE,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgBI,QAAa8R,EAAezF,cAEzGoF,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQsN,2BAA6BzS,QAAQqE,KAAK4O,EAAeR,4BACtHG,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQuN,iBAAwB1S,QAAQqE,KAAK4O,EAAeP,kBACjHE,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQwN,iBAAwB3S,QAAQqE,KAAK4O,EAAeN,kBAMvC,eAAtEC,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQR,OAC/DiO,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQpE,gBAAgBsN,gBAAkB4E,EAAe5E,gBAKhH,IAAI8E,GAASP,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQR,KAAO,IAAMqH,KAAKoH,KAExFC,GAAmBF,EAAQP,MAAsB,EACnDA,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQC,IAAM+N,GAKnEA,EAASP,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQR,KAAO,IAAMqH,KAAKoH,MAEpFC,EAAmBF,EAAQP,MAAsB,EACnDA,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQC,IAAM+N,EAKnEA,EAASP,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQR,KAAO,IAAMqH,KAAKoH,OAG7FR,EAAiB/M,MAAMQ,GAAWZ,QAAQkC,GAAWxC,QAAQmO,QAAS,EAGxE,QAASpG,GAA6B2E,GAIpC,IAAK,GAAIhJ,GAAIgJ,EAAalF,SAAS7G,OAAS,EAAG+C,GAAK,EAAGA,IACjDgJ,EAAalF,SAAS9D,GAAG+D,KAAOiF,EAAapF,kBAE7CoF,EAAalF,SAAS9D,GAAG4F,YAAsBoD,EAAatE,cAAckB,YAC1EoD,EAAalF,SAAS9D,GAAG6F,eAAuBmD,EAAatE,cAAcmB,eAC3EmD,EAAalF,SAAS9D,GAAG+F,iBAAwBiD,EAAatE,cAAcqB,iBAC5EiD,EAAalF,SAAS9D,GAAG8F,kBAAyBkD,EAAatE,cAAcoB,kBAC7EkD,EAAalF,SAAS9D,GAAG2E,cAAuBqE,EAAatE,cAAcC,cAExC,SAA/BqE,EAAalF,SAAS9D,GAAG+D,KAC5BiF,EAAalF,SAAS9D,GAAGwF,gBAAuBwD,EAAatE,cAAcc,kBAOpF,QAAS3B,KACP,OACS+B,YAAa,GACbC,gBAAgB,EAChBC,kBAAmB,GACnBC,iBAAkB,GAClBpB,kBASX,QAASsE,GAAeD,GACtB,GAAI0B,IAEY5G,WAEaC,GAAI,QACJpN,KAAM,aACNgU,SAAU,aACV5F,MAAO,QACP2E,WAAY,QACZC,cAAe,GACf/D,YAAa,GACbC,gBAAgB,EAChBE,iBAAkB,GAClBpB,iBACAiF,8BACAC,oBACAC,sBAGA/F,GAAI,SAAWpN,KAAM,SAAUgU,SAAU,aAAc5F,MAAO,aAAc2E,WAAY,SAAUC,cAAe,GAAI/D,YAAa,GAAIC,gBAAgB,EAAOE,iBAAkB,GAAIpB,iBAAoBiF,8BAAgCC,oBAAsBC,sBAC7P/F,GAAI,WAAapN,KAAM,WAAYgU,SAAU,aAAc5F,MAAO,aAAc2E,WAAY,WAAYC,cAAe,GAAI/D,YAAa,GAAIC,gBAAgB,EAAOE,iBAAkB,GAAIpB,iBAAoBiF,8BAAgCC,oBAAsBC,sBAGnQ/F,GAAI,YACJpN,KAAM,aACNgU,SAAU,aACV5F,MAAO,QACP2E,WAAY,QACZC,cAAe,GACf/D,YAAa,GACbC,gBAAgB,EAChBE,iBAAkB,GAClBpB,iBACAiF,8BACAC,oBACAC,kBACec,UACTX,SAAU,SAASY,EAAWC,EAAYvS,GAItC,GAAIwS,GAAmB,oCACnBC,EAAuC,mBAAnBzS,GAAMK,GAAGoR,OAA8C,KAAnBzR,EAAMK,GAAGoR,MAAgBzR,EAAMK,GAAGoR,MAAQ,eAAqCe,CAC3I,OAAOC,QAOjBjH,GAAI,WACHpN,KAAM,WACPgU,SAAU,WACV5F,MAAO,QACP2E,WAAY,QACZC,cAAe,WACf/D,YAAa,GACbC,gBAAgB,EAChBE,iBAAkB,GAClBpB,iBACAiF,8BACAC,oBACAC,kBACcc,UACTX,SAAU,SAASY,EAAWC,EAAYvS,GAItC,GAAIwS,GAAmB,kCACnBC,EAAuC,mBAAnBzS,GAAMK,GAAGoR,OAA8C,KAAnBzR,EAAMK,GAAGoR,MAAgBzR,EAAMK,GAAGoR,MAAQ,eAAqCe,CAC3I,OAAOC,QAOhBjH,GAAkB,QAClBpN,KAAmB,QACnBgU,SAAqB,QACrB5F,MAAmB,QACnB2E,WAAqB,QACrBC,cAAuB,QACvB/D,YAAsB,GACtBC,gBAAwB,EACxBE,iBAAyB,GACzBpB,iBACAiF,8BAEAC,kBACgBoB,YACFC,WAAa,SAASL,EAAWC,GAC/B,GAAI7R,GAAQ6R,GAAcD,CAC1B,OAAO,0CAA0CM,KAAKlS,IAExDmS,QAAS,yCAIvBtB,kBACec,UACTX,SAAU,SAASY,EAAWC,EAAYvS,GAKtC,GAAIwS,GAAmB,+BACnBC,EAAuC,mBAAnBzS,GAAMK,GAAGoR,OAA8C,KAAnBzR,EAAMK,GAAGoR,MAAgBzR,EAAMK,GAAGoR,MAAQ,eAAqCe,CAG3I,OAAIxS,GAAMK,GAAGqR,SAAiBe,EAA9B,YAOVjH,GAAI,OACJpN,KAAM,OACNgU,SAAU,OACV5F,MAAO,QACP2E,WAAY,aACZC,cAAe,GACf/D,YAAa,GACbC,gBAAgB,EAChBE,iBAAkB,GAClBpB,iBACAa,gBAAiB,eACjBoE,8BACAC,oBACAC,kBACec,UACTX,SAAU,SAASY,EAAWC,EAAYvS,GAItC,GAAIwS,GAAmB,8BACnBC,EAAuC,mBAAnBzS,GAAMK,GAAGoR,OAA8C,KAAnBzR,EAAMK,GAAGoR,MAAgBzR,EAAMK,GAAGoR,MAAQ,eAAqCe,CAC3I,OAAOC,QAOjBjH,GAAI,UACJpN,KAAM,WACNgU,SAAU,WACV5F,MAAO,WACP2E,WAAY,WACZC,cAAe,GACf/D,YAAa,GACbC,gBAAgB,EAChBE,iBAAkB,GAClBpB,iBACAiF,8BACAC,oBACAC,kBACec,UACTX,SAAU,SAASY,EAAWC,EAAYvS,GAItC,GAAIwS,GAAmB,kCACnBC,EAAuC,mBAAnBzS,GAAMK,GAAGoR,OAA8C,KAAnBzR,EAAMK,GAAGoR,MAAgBzR,EAAMK,GAAGoR,MAAQ,eAAqCe,CAC3I,OAAOC,QAOjBjH,GAAI,iBACJpN,KAAM,iBACNgU,SAAU,iBACV5F,MAAO,WACP2E,WAAY,aACZC,cAAe,GACf/D,YAAa,GACbC,gBAAgB,EAChBE,iBAAkB,GAClBpB,iBACAiF,8BAEAC,oBAEAC,kBACec,UACTX,SAAU,SAASY,EAAWC,EAAYvS,GAItC,GAAIwS,GAAmB,wCACnBC,EAAuC,mBAAnBzS,GAAMK,GAAGoR,OAA8C,KAAnBzR,EAAMK,GAAGoR,MAAgBzR,EAAMK,GAAGoR,MAAQ,eAAqCe,CAC3I,OAAOC,QAOjBjH,GAAI,QACJpN,KAAM,QACNgU,SAAU,QACVrS,WACAyM,MAAO,QACP2E,WAAY,QACZC,cAAe,GACf/D,YAAa,GACbC,gBAAgB,EAChBE,iBAAkB,GAClBpB,iBACAiF,8BACAC,oBACAC,kBACcc,UACTX,SAAU,SAASY,EAAWC,EAAYvS,GAItC,GAAIwS,GAAmB,kCACnBC,EAAuC,mBAAnBzS,GAAMK,GAAGoR,OAA8C,KAAnBzR,EAAMK,GAAGoR,MAAgBzR,EAAMK,GAAGoR,MAAQ,eAAqCe,CAC3I,OAAOC,QAOhBjH,GAAI,WACJpN,KAAM,WACNgU,SAAU,WACV5F,MAAO,WACP2E,WAAY,WACZC,cAAe,GACf/D,YAAa,GACbC,gBAAgB,EAChBE,iBAAkB,GAClBpB,iBACAiF,8BACAC,oBACAC;AACcc,UACTX,SAAU,SAASY,EAAWC,EAAYvS,GAItC,GAAIwS,GAAmB,kCACnBC,EAAuC,mBAAnBzS,GAAMK,GAAGoR,OAA8C,KAAnBzR,EAAMK,GAAGoR,MAAgBzR,EAAMK,GAAGoR,MAAQ,eAAqCe,CAC3I,OAAOC,QAOhBjH,GAAI,cACJpN,KAAM,eACNgU,SAAU,eACVrS,WACAyM,MAAO,SACP2E,WAAY,cACZC,cAAe,GACf/D,YAAa,GACbC,gBAAgB,EAChBE,iBAAkB,GAClBpB,iBACAiF,8BACAC,oBACAC,kBACcc,UACTX,SAAU,SAASY,EAAWC,EAAYvS,GAItC,GAAIwS,GAAmB,sCACnBC,EAAuC,mBAAnBzS,GAAMK,GAAGoR,OAA8C,KAAnBzR,EAAMK,GAAGoR,MAAgBzR,EAAMK,GAAGoR,MAAQ,eAAqCe,CAC3I,OAAOC,QAOhBjH,GAAI,gBACJpN,KAAM,iBACNgU,SAAU,iBACVrS,WACAyM,MAAO,SACP2E,WAAY,gBACZC,cAAe,GACf/D,YAAa,GACbC,gBAAgB,EAChBE,iBAAkB,GAClBpB,iBACAiF,8BACAC,oBACAC,kBACcc,UACTX,SAAU,SAASY,EAAWC,EAAYvS,GAItC,GAAIwS,GAAmB,wCACnBC,EAAuC,mBAAnBzS,GAAMK,GAAGoR,OAA8C,KAAnBzR,EAAMK,GAAGoR,MAAgBzR,EAAMK,GAAGoR,MAAQ,eAAqCe,CAC3I,OAAOC,QAO3BpH,gBAAkB,OAClBc,eACkBd,gBAAiB,OACjBgC,YAAa,QACbC,gBAAgB,EAChBE,iBAAkB,GAClBD,kBAAmB,GACnBnB,iBAEfiF,8BACAC,oBACAC,qBAOrB,OADD3S,SAAQqE,KAAKkP,EAAiB1B,IACtB,EAMT,QAASqB,GAAmCgB,GAkB1C,IAAK,GAhBDC,IACE1H,gBAAgB,OAChB8F,WAAa,OACbC,cAAe,OACf/D,YAAa,GACbC,gBAAiB,EACjBE,iBAAkB,GAClBD,kBAAmB,GACnBnB,iBAEAiF,8BACAC,oBACAC,qBAIG9J,EAAIqL,EAAevH,SAAS7G,OAAS,EAAG+C,GAAK,EAAGA,IACnDqL,EAAezH,kBAAoByH,EAAevH,SAAS9D,GAAG+D,KAChEuH,EAAc1H,gBAAoByH,EAAezH,gBACjD0H,EAAc5B,WAAkB2B,EAAevH,SAAS9D,GAAG0J,WAC3D4B,EAAc3B,cAAmB0B,EAAevH,SAAS9D,GAAG2J,cAC5D2B,EAAc1F,YAAkByF,EAAevH,SAAS9D,GAAG4F,YAC3D0F,EAAczF,eAAoBwF,EAAevH,SAAS9D,GAAG6F,eAC7DyF,EAAcvF,iBAAqBsF,EAAevH,SAAS9D,GAAG+F,iBAC9DuF,EAAcxF,kBAAqBuF,EAAevH,SAAS9D,GAAG8F,kBAC9DwF,EAAc3G,cAAmB0G,EAAevH,SAAS9D,GAAG2E,cAE5D2G,EAAc1B,2BAA8BzS,QAAQqE,KAAK6P,EAAevH,SAAS9D,GAAG4J,4BACpF0B,EAAczB,iBAAyB1S,QAAQqE,KAAK6P,EAAevH,SAAS9D,GAAG6J,kBAC/EyB,EAAcxB,iBAAyB3S,QAAQqE,KAAK6P,EAAevH,SAAS9D,GAAG8J,kBAIjC,eAA1CuB,EAAevH,SAAS9D,GAAG0J,aACpC4B,EAAc9F,gBAAyB6F,EAAevH,SAAS9D,GAAGwF,iBAKjE,OAAO8F,GAMT,QAASd,GAAmBe,EAASxB,GAGnC,IAAK,GAFDyB,IAAW,EAENxL,EAAI+J,EAAiB/M,MAAMC,OAAS,EAAG+C,GAAK,EAAGA,IAEtD,IAAK,GAAIyL,GAAI1B,EAAiB/M,MAAMgD,GAAGpD,QAAQK,OAAS,EAAGwO,GAAK,EAAGA,IAC7D1B,EAAiB/M,MAAMgD,GAAGpD,QAAQ6O,GAAGnP,QAAQC,MAAQgP,IACvDC,GAAW,EAOjB,OAAOA,GAjnBV,GAAIE,IACH7K,cAA6BA,EAC7BxB,mCAAwCA,EACxCI,sCAAyCA,EACzC4E,6BAAqCA,EACrCR,mBAAgCA,EAChCqF,sBAAiCA,EACjChB,yCAA0CA,EAC1CC,+BAAqCA,EACrCC,+BAAqCA,EAGtC,OAAOsD,GAnBTvU,QACE6B,OAAO,wDACP2S,QAAQ,uBAAwBzR,GAEjCA,EAAqBf,cA+pBtB,WAYG,QAASc,KAUP,QAAS2G,GAAiCuI,GACxC,GAAIyC,IACF7O,WAAY,EACZwB,gBACkB,OACA,QACA,SACA,SAElB0B,iBACoB,GACA,GACA,GACA,GAEpB7B,kBAAoB,EACpBzC,iBAAoB,SACpBD,iBAAoB,SACpBsB,QAEUN,KAAK,EACLC,aAAe,EACfC,UAEYR,UAAW,EACXC,OAAM,EACNC,SACYR,KAAK,OACLS,IAAK,YAazCpF,SAAQqE,KAAKoQ,EAAwBzC,GAGvC,QAASlO,GAAuBkO,EAAoBnM,GAClD,GAA8C,mBAA1C6O,OAAOC,UAAUC,SAASC,KAAKhP,GAA8B,CAC/D,GAAIiP,IACFlP,WAAY,EACZwB,gBACkB,OACA,QACA,SACA,SAElB0B,iBACoB,GACA,GACA,GACA,GAEpB7B,kBAAmB,EACnBzC,iBAAmB,SACnBD,iBAAkB,SAClBsB,SAMF,OAJAiP,GAAyBjP,SAAWkP,OAAOlP,GAE3C7F,QAAQqE,KAAKyQ,EAA0B9C,GAEhCgD,EAAiB,+BAA+B,2CAEvD,MAAOC,GAAe,wBAAyB,0CAInD,QAASlR,GAAgCiO,EAAoBkD,EAAaC,GACxEC,EAAiBF,GACjBG,EAAeF,EAKf,KAAK,GADDhP,GAAa6L,EAAmBnM,MAAMC,OACjC+C,EAAI,EAAO1C,EAAJ0C,EAAgBA,IAEuB,IAA/CmJ,EAAmBnM,MAAMgD,GAAGpD,QAAQK,SAEsB,WAAxDkM,EAAmBnM,MAAMgD,GAAGpD,QAAQ,GAAGN,QAAQR,KACjD2Q,EAAmBJ,EAAalD,EAAoBnJ,GAEpD0M,EAAoBL,EAAalD,EAAoBnJ,IAGN,IAA/CmJ,EAAmBnM,MAAMgD,GAAGpD,QAAQK,QACtC0P,EAAoBN,EAAalD,EAAmBnJ,GAEH,IAA/CmJ,EAAmBnM,MAAMgD,GAAGpD,QAAQK,QACtC2P,EAAsBP,EAAalD,EAAmBnJ,GAK9D,QAASuM,GAAiBF,GACxB,GAAIQ,KACJ1V,SAAQqE,KAAKqR,EAAaR,GAK5B,QAASI,GAAmBJ,EAAalD,EAAmB2D,GAI1D,GAAIC,GAAqB,iGAAmGC,EAAiC7D,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAAW,uBAEvN+P,GAAYzO,MAERhH,SAIkC,mBAJjBuS,GACQnM,MAAM8P,GACNlQ,QAAQ,GACRN,QACAR,MAAwF,WAAhEqN,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAoBiR,EAAsC,gBAKxK,QAASE,GAA2BC,EAAa/D,EAAmB2D,GAChEI,EAAYhV,gBAAgBsN,gBAAkB2H,EAAqChE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAGtI,QAASoQ,GAAoBL,EAAalD,EAAmB2D,GAC3D,GAAII,IACFE,UAAW,YACXtR,KAA6E,mBAAhEqN,GAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAwF,SAAhEqN,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAkB,QAASqN,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAO,QAC5OS,IAA2E,mBAA/D4M,GAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQC,IAAuB4M,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQC,IAAM,QAAU4G,KAAKoH,MACtKrS,iBACE4D,KAAwBuR,EAA0BlE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACjG0N,MAAwBsD,EAA2BnE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAClG2N,SAAwBsD,EAA8BpE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACrG6N,YAAwBqD,EAAiCrE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACxG4N,YAAwB8C,EAAiC7D,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACxGhE,QAAwBmV,EAA6BtE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,UAEtGoR,qBAAwBC,EAAkCxE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACzGsR,WAAwBC,EAAwB1E,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAC/FwR,WAAwBC,EAAwB5E,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAK7B,gBAAhE6M,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,MACzDmR,EAA2BC,EAAa/D,EAAmB2D,GAG7DT,EAAYzO,KACVsP,GAIJ,QAASP,GAAoBN,EAAalD,EAAmB2D,GAG3D,GAAIC,IACwBK,UAAW,WACXxW,SAAW,0DAA4DoW,EAAiC7D,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAAW,yBAG1L0R,GACwBZ,UAAW,WACZxW,SAAS,0DAA4DoW,EAAiC7D,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAAW,yBAGvL2R,GACAb,UAAW,WACXtR,KAA6E,mBAAhEqN,GAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAwF,SAAhEqN,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAkB,QAASqN,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAO,QAC5OS,IAA2E,mBAA/D4M,GAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQC,IAAuB4M,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQC,IAAM,QAAU4G,KAAKoH,MACtKrS,iBACI4D,KAAMuR,EAA0BlE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAC/E0N,MAAOsD,EAA2BnE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACjF2N,SAAWsD,EAA8BpE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACxF6N,YAAcqD,EAAiCrE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAC9F4N,YAAc8C,EAAiC7D,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAC9FhE,QAAUmV,EAA6BtE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,UAEtFoR,qBAAuBC,EAAkCxE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACxGsR,WAAaC,EAAwB1E,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACpFwR,WAAaC,EAAwB5E,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAKxB,gBAAhE6M,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,MACzDmR,EAA2BgB,EAAa9E,EAAmB2D,EAG7D,IAAIoB,IACMd,UAAW,WACXtR,KAA6E,mBAAhEqN,GAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAyF,SAAhEqN,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAkB,QAASqN,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAQ,QAC9OS,IAA2E,mBAA/D4M,GAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQC,IAAuB4M,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQC,IAAM,QAAU4G,KAAKoH,MACtKrS,iBACI4D,KAAMuR,EAA0BlE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAC/E0N,MAAOsD,EAA2BnE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACjF2N,SAAWsD,EAA8BpE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACxF6N,YAAcqD,EAAiCrE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAC9F4N,YAAc8C,EAAiC7D,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAC9FhE,QAAUmV,EAA6BtE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,UAEtFoR,qBAAuBC,EAAkCxE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACxGsR,WAAaC,EAAwB1E,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACpFwR,WAAaC,EAAwB5E,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAM9B,gBAAhE6M,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,MACzDmR,EAA2BiB,EAAa/E,EAAmB2D,EAG7D,IAAIqB,KAGFA,GAAWvQ,KADuD,WAAhEuL,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KACzCiR,EAEAkB,GAIhBE,EAAWvQ,KADuD,WAAhEuL,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KACzCkS,EAEAE,GAGlB7B,EAAYzO,MAENwP,UAAW,MACXgB,WAAYD,IAKpB,QAASvB,GAAsBP,EAAalD,EAAmB2D,GAE7D,GAAIC,IACwBK,UAAW,WACXxW,SAAW,0DAA4DoW,EAAiC7D,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAAW,yBAG1L0R,GACwBZ,UAAW,WACZxW,SAAS,0DAA4DoW,EAAiC7D,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAAW,yBAGvL+R,GACwBjB,UAAW,WACZxW,SAAS,0DAA4DoW,EAAiC7D,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAAW,yBAGvL2R,GACsBb,UAAW,WACXtR,KAA6E,mBAAhEqN,GAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAwF,SAAhEqN,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAkB,QAASqN,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAO,QAC5OS,IAA2E,mBAA/D4M,GAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQC,IAAuB4M,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQC,IAAM,QAAU4G,KAAKoH,MACtKrS,iBACI4D,KAAMuR,EAA0BlE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAC/E0N,MAAOsD,EAA2BnE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACjF2N,SAAWsD,EAA8BpE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACxF6N,YAAcqD,EAAiCrE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAC9F4N,YAAc8C,EAAiC7D,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAC9FhE,QAAUmV,EAA6BtE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,UAEtFoR,qBAAuBC,EAAkCxE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACxGsR,WAAaC,EAAwB1E,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACpFwR,WAAaC,EAAwB5E,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAK9C,gBAAhE6M,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,MACzDmR,EAA2BgB,EAAa9E,EAAmB2D,EAG7D,IAAIoB,IACsBd,UAAW,WACXtR,KAA6E,mBAAhEqN,GAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAyF,SAAhEqN,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAkB,QAASqN,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAQ,QAC9OS,IAA2E,mBAA/D4M,GAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQC,IAAuB4M,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQC,IAAM,QAAU4G,KAAKoH,MACtKrS,iBACI4D,KAAMuR,EAA0BlE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAC/E0N,MAAOsD,EAA2BnE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACjF2N,SAAWsD,EAA8BpE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACxF6N,YAAcqD,EAAiCrE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAC9F4N,YAAc8C,EAAiC7D,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAC9FhE,QAAUmV,EAA6BtE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,UAEtFoR,qBAAuBC,EAAkCxE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACxGsR,WAAaC,EAAwB1E,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACpFwR,WAAaC,EAAwB5E,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAK9C,gBAAhE6M,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,MACzDmR,EAA2BiB,EAAa/E,EAAmB2D,EAE7D,IAAIwB,IACsBlB,UAAW,WACXtR,KAA6E,mBAAhEqN,GAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAyF,SAAhEqN,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAkB,QAASqN,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KAAQ,QAC9OS,IAA2E,mBAA/D4M,GAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQC,IAAuB4M,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQC,IAAM,QAAU4G,KAAKoH,MACtKrS,iBACI4D,KAAMuR,EAA0BlE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAC/E0N,MAAOsD,EAA2BnE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACjF2N,SAAWsD,EAA8BpE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACxF6N,YAAcqD,EAAiCrE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAC9F4N,YAAc8C,EAAiC7D,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAC9FhE,QAAUmV,EAA6BtE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,UAEtFoR,qBAAuBC,EAAkCxE,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACxGsR,WAAaC,EAAwB1E,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SACpFwR,WAAaC,EAAwB5E,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,SAK9C,gBAAhE6M,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,MACzDmR,EAA2BqB,EAAanF,EAAmB2D,EAG7D,IAAIqB,KAGFA,GAAWvQ,KADuD,WAAhEuL,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KACzCiR,EAEAkB,GAIhBE,EAAWvQ,KADuD,WAAhEuL,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KACzCkS,EAEAE,GAIhBC,EAAWvQ,KADuD,WAAhEuL,EAAmBnM,MAAM8P,GAAWlQ,QAAQ,GAAGN,QAAQR,KACzCuS,EAEAC,GAIlBjC,EAAYzO,MAENwP,UAAW,MACXgB,WAAYD,IASpB,QAASb,GAA2BiB,GACnC,MAAuC,mBAAxBA,GAAIrW,iBAAwE,mBAA9BqW,GAAIrW,gBAAgB8R,MAAuBuE,EAAIrW,gBAAgB8R,MAAa,GAI1I,QAASmD,GAAqCoB,GAC5C,MAAuC,mBAAxBA,GAAIrW,iBAAkF,mBAAxCqW,GAAIrW,gBAAgBsN,gBAAiC+I,EAAIrW,gBAAgBsN,gBAAuB,GAG/J,QAASmI,GAAkCY,GACzC,MAAkD,mBAAnCA,GAAI3E,2BAA6CzS,QAAQqE,KAAK+S,EAAI3E,+BAGnF,QAASiE,GAAwBU,GAC/B,MAAwC,mBAAzBA,GAAI1E,iBAAmC1S,QAAQqE,KAAK+S,EAAI1E,qBAGzE,QAASkE,GAAwBQ,GAC/B,MAAwC,mBAAzBA,GAAIzE,iBAAoC3S,QAAQqE,KAAK+S,EAAIzE,qBAG1E,QAASyD,GAA8BgB,GACrC,MAAuC,mBAAxBA,GAAIrW,iBAA2E,mBAAjCqW,GAAIrW,gBAAgB+R,SAA0BsE,EAAIrW,gBAAgB+R,SAAgB,GAGjJ,QAASwD,GAA6Bc,GACpC,MAAuC,mBAAxBA,GAAIrW,iBAA0E,mBAAhCqW,GAAIrW,gBAAgBI,QAAyBiW,EAAIrW,gBAAgBI,QAAe,GAG/I,QAAS+U,GAA0BkB,GACjC,MAA+B,mBAAhBA,GAAI/R,QAAyB+R,EAAI/R,QAAS,GAG3D,QAASgR,GAAiCe,GACxC,MAAuC,mBAAxBA,GAAIrW,iBAA8E,mBAApCqW,GAAIrW,gBAAgBiS,YAA6BoE,EAAIrW,gBAAgBiS,YAAmB,GAGvJ,QAAS6C,GAAiCuB,GACxC,MAAuC,mBAAxBA,GAAIrW,iBAA8E,mBAApCqW,GAAIrW,gBAAgBgS,YAA6BqE,EAAIrW,gBAAgBgS,YAAmB,GAGvJ,QAASsC,GAAe+B,GACtB,GAAIC,KAEJ,OADArX,SAAQqE,KAAKgT,EAAgBD,IACtB,EAGT,QAASnC,GAAeqC,EAAYC,GAElC,GAAIC,IACFC,SAAU,EACV5S,MAAO,GACP6S,QAAS,GAMX,OAHAF,GAAWC,SAAU,EACrBD,EAAW3S,MAAQyS,EACnBE,EAAWE,QAAUH,EACdC,EAGT,QAASxC,GAAiB2C,EAAcC,GACtC,GAAIJ,IACFC,SAAU,EACV5S,MAAO,GACP6S,QAAS,GAMX,OAHAF,GAAWC,SAAU,EACrBD,EAAW3S,MAAQ8S,EACnBH,EAAWE,QAAUE,EACdJ,EArbT,GAAIjD,IACF9K,iCAAmCA,EACnC3F,uBAAmCA,EACnCC,gCAAmCA,EAErC,OAAOwQ,GAbXvU,QACG6B,OAAO,uCACP2S,QAAQ,kBAAmB1R,GAE5BA,EAAgBd,cAgdnB,WASG,QAAS6H,KAkBP,QAASgO,KACP,MAAO,8BAKT,QAASC,GAAUC,GACjBC,EAAWD,GAGb,QAASE,GAAeF,EAAWG,GACjC,IAAK,GAAIrP,GAAIkP,EAAUlK,KAAK/H,OAAS,EAAG+C,GAAK,EAAGA,IAC9C,GAAIkP,EAAUlK,KAAKhF,GAAG6E,SAAWwK,EAAW,OAAO,CAErD,QAAO,EAGT,QAASC,GAAoBD,GAC3B,MAAkB,KAAdA,GAA0B,GACvB,EAGT,QAASpO,GAAkBiO,EAAWK,GACpC,GAAIC,IACkBnO,YAAa,EACbC,QAAU,IAG5BmO,EAAcC,EAAYR,EAAWK,EACzC,IAAIE,EAAYpO,cAAe,EAAK,CAEhC,GAAIuD,IACgBC,OAAQ0K,EACRzK,MAAOoK,EAAUlK,KAAK/H,OAM1C,OAHAiS,GAAUlK,KAAKpH,KAAKgH,GACpB4K,EAAanO,YAAa,EAC1BmO,EAAalO,QAAU,GAChBkO,EAGL,MADArY,SAAQqE,KAAKiU,EAAaD,GACnBA,EAIf,QAAS3N,GAAwBqN,EAAWK,GACxC,GAAIC,IACkBnO,YAAa,EACbC,QAAU,IAG5BmO,EAAcC,EAAYR,EAAWK,EACzC,IAAIE,EAAYpO,cAAe,EAAK,CAEhC,GAAIuD,IACgBC,OAAQ0K,EACRzK,MAAOoK,EAAUlK,KAAK/H,OAM1C,OAHAiS,GAAUlK,KAAKpH,KAAKgH,GACpB4K,EAAanO,YAAa,EAC1BmO,EAAalO,QAAU,GAChBkO,EAGL,MADArY,SAAQqE,KAAKiU,EAAaD,GACnBA,EAIjB,QAAS9M,GAA0BwM,EAAWK,EAAeI,GAC3D,GAAIH,IACkBnO,YAAa,EACbC,QAAU,IAG5BmO,EAAcC,EAAYR,EAAWK,EAEzC,IAAIE,EAAYpO,cAAe,EAAK,CAEhC,GAAIuD,IACgBC,OAAQ0K,EACRxK,MAAO4K,EACP7K,MAAOoK,EAAUlK,KAAK/H,OAM1C,OAHAiS,GAAUlK,KAAKpH,KAAKgH,GACpB4K,EAAanO,YAAa,EAC1BmO,EAAalO,QAAU,GAChBkO,EAGL,MADArY,SAAQqE,KAAKiU,EAAaD,GACnBA,EAIf,QAAShO,GAAa0N,EAAWU,GAC/B,GAAIJ,IACgBnO,YAAa,EACbC,QAAU,GAG9B,OAAgB,KAAZsO,GACAV,EAAUlK,KAAK9H,OAAO0S,EAAS,GAC/BJ,EAAanO,YAAa,EAC1BmO,EAAalO,QAAS,GACfkO,IAEPA,EAAanO,YAAa,EAC1BmO,EAAalO,QAAS,yBACfkO,GAIb,QAAS9N,GAAawN,EAAWW,GAC7B,GAAIL,IACgBnO,YAAa,EACbC,QAAU,GAG9B,IAAIuO,EAAc,GAAI,CACpB,GAAIA,EAAc,EAAG,CACnB,GAAIX,EAAUlK,KAAK6K,EAAc,GAAI,CACnC,GAAIC,GAAgBZ,EAAUlK,KAAK6K,EAKnC,OAJAX,GAAUlK,KAAK9H,OAAO2S,EAAc,GACpCX,EAAUlK,KAAK9H,OAAQ2S,EAAc,EAAI,EAAGC,GAC5CN,EAAanO,YAAa,EAC1BmO,EAAalO,QAAU,GAChBkO,EAIP,MAFAA,GAAanO,YAAa,EAC1BmO,EAAalO,QAAU,0CAChBkO,EAKP,MAFAA,GAAanO,YAAa,EAC1BmO,EAAalO,QAAU,GAChBkO,EAKX,MAFAA,GAAanO,YAAa,EAC1BmO,EAAalO,QAAU,yBAChBkO,EAIb,QAAS5N,GAAesN,EAAWW,GAC/B,GAAIL,IACgBnO,YAAa,EACbC,QAAU,GAG9B,IAAIuO,EAAc,GAAI,CACpB,GAAIA,EAAcX,EAAUlK,KAAK/H,OAAS,EAAE,CAC1C,GAAIiS,EAAUlK,KAAK6K,EAAc,GAAI,CACnC,GAAIC,GAAgBZ,EAAUlK,KAAK6K,EAKnC,OAJAX,GAAUlK,KAAK9H,OAAO2S,EAAc,GACpCX,EAAUlK,KAAK9H,OAAQ2S,EAAc,EAAI,EAAGC,GAC5CN,EAAanO,YAAa,EAC1BmO,EAAalO,QAAU,GAChBkO,EAIP,MAFAA,GAAanO,YAAa,EAC1BmO,EAAalO,QAAU,0CAChBkO,EAKT,MAFEA,GAAanO,YAAa,EAC1BmO,EAAalO,QAAU,GAClBkO,EAKT,MAFAA,GAAanO,YAAa,EAC1BmO,EAAalO,QAAU,yBAChBkO,EASb,QAASE,GAAYR,EAAWK,GAC5B,GAAIC,IACkBnO,YAAc,EACdC,QAAc,GAGpC,IAA6B,mBAAlBiO,GAGP,MAFAC,GAAanO,YAAa,EAC1BmO,EAAalO,QAAa,0BACnBkO,CAGX,IAAsB,KAAlBD,EAAsB,CACpB,IAAK,GAAIvP,GAAIkP,EAAUlK,KAAK/H,OAAS,EAAG+C,GAAK,EAAGA,IAC9C,GAAIkP,EAAUlK,KAAKhF,GAAG6E,SAAW0K,EAG/B,MAFAC,GAAanO,YAAa,EAC1BmO,EAAalO,QAAa,+BACnBkO,CAKX,OAFAA,GAAanO,YAAa,EAC1BmO,EAAalO,QAAa,GACnBkO,EAIb,MAFAA,GAAanO,YAAa,EAC1BmO,EAAalO,QAAa,0BACnBkO,EAGX,QAASL,GAAWD,GAClB,GAAIa,IAAc/K,QAClB7N,SAAQqE,KAAKuU,EAAWb,GAvO1B,GAAIxD,IACFsD,OAA4BA,EAC5BC,UAA4BA,EAC5BG,eAA4BA,EAC5BE,oBAA4BA,EAC5BrO,kBAA4BA,EAC5BY,wBAA4BA,EAC5Ba,0BAA4BA,EAC5BlB,aAA4BA,EAC5BE,aAA4BA,EAC5BE,eAA4BA,EAE9B,OAAO8J,GAlBXvU,QACG6B,OAAO,0CACP2S,QAAQ,qBAAsB3K,GAE/BA,EAAmB7H,cAyiBtB,WAGAhC,QAAQ6B,OACA,oBACW,mCACA,sCACA,yDAmBnB,WAGA7B,QACE6B,OAAO,0BAMPmH","file":"eda.stepway.min.js","sourcesContent":["!function(){\"use strict\";!function(){function e(e){function o(e){return e=e.replace(/[\\-_\\s]+(.)?/g,function(e,o){return o?o.toUpperCase():\"\"}),e.replace(/^([A-Z])/,function(e,o){return o?o.toLowerCase():\"\"})}e.setType({name:\"richEditor\",template:''}),e.setType({name:\"blank\",template:\"
\"});var l='

{{options.templateOptions.placeholder}}


';e.setType({name:\"subTitle\",template:l});var t='
  1. {{option.name}}
';e.setType({name:\"basicSelect\",template:t});var n='
  1. {{$group}} {{option.name}}
';e.setType({name:\"groupedSelect\",template:n});var i=[\"date-disabled\",\"custom-class\",\"show-weeks\",\"starting-day\",\"init-date\",\"min-mode\",\"max-mode\",\"format-day\",\"format-month\",\"format-year\",\"format-day-header\",\"format-day-title\",\"format-month-title\",\"year-range\",\"shortcut-propagation\",\"datepicker-popup\",\"show-button-bar\",\"current-text\",\"clear-text\",\"close-text\",\"close-on-date-selection\",\"datepicker-append-to-body\"],s=[\"datepicker-mode\",\"min-date\",\"max-date\"],a={};angular.forEach(i,function(e){a[o(e)]={attribute:e}}),angular.forEach(s,function(e){a[o(e)]={bound:e}}),e.setType({name:\"datepicker\",template:'',wrapper:[\"bootstrapLabel\",\"bootstrapHasError\"],controller:[\"$scope\",function(e){e.open=function(o){o.preventDefault(),o.stopPropagation(),e.opened=!0}}],defaultOptions:{ngModelAttrs:a,templateOptions:{addonLeft:{\"class\":\"glyphicon glyphicon-calendar\",onClick:function(e,o){e.templateOptions.isOpen=!e.templateOptions.isOpen}},onFocus:function(e,o,l){l.to.isOpen=!l.to.isOpen},datepickerOptions:{}}}}),e.setWrapper([{template:['
\",\" \",'
','
','
',\" {{message(options.formControl.$viewValue, options.formControl.$modelValue, this)}}\",\"
\",\"
\",\"
\"].join(\" \")}])}angular.module(\"eda.easyformGen.stepway\",[\"ngwfApp\"]),angular.module(\"ngwfApp\",[\"ngwfApp.core\",\"ngwfApp.controllers\",\"ngwfApp.services\",\"ngwfApp.filters\",\"ngwfApp.directives\"]).value(\"easyFormGenVersion\",\"v1.0.14\").config(e),e.$inject=[\"formlyConfigProvider\"]}(),angular.module(\"ngwfApp\").run([\"$templateCache\",function(e){e.put(\"edaStepWayEasyFormGeneratorTemplate.html\",'

lines

layout

controls

save

Command

Add a new line : 

Visual

  • 1\">
    1\">
    1\">

Command

– Selected line –

number of columns :

{{configuration.lines[configuration.activeLine -1].columns.length}}

Visual

  • 1\">
    1\">
    1\">

Command

– Apply controls to columns –


  Click / Tap on column to open control selection.

  Select desired control and valid to apply it to column.

Visual

  • 1\">
    1\">
    1\">

 Command



 Final Step : form preview

DATA MODEL

\\n\t\t\t\t\t\t\t\t\t\t{{vm.model | json}}\\n\t\t\t\t\t\t\t\t\t

FIELDS MODEL (ready to save to database one)

\\n\t\t\t\t\t\t\t\t\t\t{{vm.wfFormFieldsOnlyNeededProperties | json}}\\n\t\t\t\t\t\t\t\t\t

Easy form generator : {{easyFormGeneratorVERSION}} — Erwan DATIN (MacKentoch)
'),e.put(\"editModalTemplate.html\",'');\n\n}]),function(){angular.module(\"ngwfApp.core\",[\"textAngular\",\"textAngularSetup\",\"ngAnimate\",\"toaster\",\"formly\",\"formlyBootstrap\",\"ui.bootstrap\",\"nya.bootstrap.select\"])}(),function(){angular.module(\"ngwfApp.controllers\",[\"ngwfApp.controllers.ngwfMainController\",\"ngwfApp.controllers.ngwfWfEditController\",\"ngwfApp.controllers.ngwfWfEditMODALController\"])}(),function(){function e(e,o){e.FormNameAsTest=\"initial_name\",o(function(){e.FormNameAsTest=\"name changed after 3s\"},3e3)}angular.module(\"ngwfApp.controllers.ngwfMainController\",[]).controller(\"ngwfMainController\",e),e.$inject=[\"$scope\",\"$timeout\"]}(),function(){function e(e,o,l,t,n,i,s,a,r,c,d){function p(){return{showDebug:!1,configurationModelNumberofLines:1}}function u(){return{editTab:{active:!0},previewTab:{active:!1}}}function m(o){var l=JSON.parse(o.formlyField);e.configurationLoaded={},c.bindConfigurationLines(e.configurationLoaded,l),c.applyConfigurationToformlyModel(e.configurationLoaded,e.previewLoadedForm.fieldsModel,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.previewLoadedForm.cancelButtonText=o.cancelButtonText,e.previewLoadedForm.submitButtonText=o.submitButtonText}function f(){i.pop({type:\"info\",timeout:2e3,title:\"should save data model if it were not a static example\",body:\"data :\"+t(\"json\")(e.vm.model,4),showCloseButton:!0})}function v(){return{numColumn:-1,exist:!0,control:{type:\"none\",key:\"none\",subtype:\"none\"}}}function g(){return{line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}}function y(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()}function b(){return e.debug.configurationModelNumberofLines=e.configuration.lines.length,e.configuration.lines.length}function h(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)}function w(o){if(o>-1&&e.configuration.lines[o-1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function x(o){if(o>-1&&e.configuration.lines[o+1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function C(){e.configuration.lines.push({line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function S(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):s(function(){i.pop({type:\"warning\",title:\"Last line\",body:\"Can't delete the last line\",showCloseButton:!0})},100),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))}function T(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function L(){e.configuration.configStepCounter=0}function k(){var o=e.configuration.listConfigStep.length-1;e.configuration.configStepCounter!==o&&e.configuration.configStepCounter++,N(e.configuration.configStepCounter)}function O(){0!==e.configuration.configStepCounter&&e.configuration.configStepCounter--,N(e.configuration.configStepCounter)}function R(o){return o=0;o--)e.configuration.stepIndicators[o]=!1}function N(o){D(),e.configuration.stepIndicators[o]=!0}e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.vm.onSubmit=f,e.easyFormGeneratorVERSION=l,e.debug=p(),e.tab=u(),e.configuration={},e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.columnTemplate=v(),e.lineTemplate=g(),e.resetToZeroModel=y,e.countConfigurationModelLines=b,e.setActiveLineNumber=h,e.upThisLine=w,e.downThisLine=x,e.addNewline=C,e.removeThisLine=S,e.increaseNumberOfColumns=T,e.decreaseNumberOfColumns=F,e.resetStepCounter=L,e.nextConfigStep=k,e.previousConfigStep=O,e.stepReachable=R,e.toggleAnimation=E,e.nyaSelect={},e.animationsEnabled=!0,e.showModalAddCtrlToColumn=P,e.loadExistingFormsList=q(),e.formlyList={},e.previewLoadedForm={fieldsModel:[]},e.configurationLoaded={},e.previewExistingform=m,e.saveThisForm=M,q(),c.initConfigurationEditFromScratch(e.configuration),d.initNyaSelect(e.nyaSelect)}angular.module(\"ngwfApp.controllers.ngwfWfEditController\",[]).controller(\"ngwfWfEditController\",e),e.$inject=[\"$scope\",\"$templateCache\",\"easyFormGenVersion\",\"$filter\",\"$anchorScroll\",\"toaster\",\"$timeout\",\"$modal\",\"$log\",\"formFieldManage\",\"controllerModalProxy\"]}(),function(){function e(e,o,l,t,n,i,s){function a(){var o=i.addNewOptionRadio(e.radioRowCollection,e.newOptionRadio.saisie);o.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionRadio.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionRadio={saisie:\"\"}}function r(o){var l=i.removeOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Delete was cancelled.\",showCloseButton:!0})}function c(o){var l=i.upthisOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function d(o){var l=i.downthisOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function p(){var o=i.addNewOptionBasicSelect(e.basicSelectRowCollection,e.newOptionBasicSelect.saisie);o.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionBasicSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionBasicSelect={saisie:\"\"}}function u(o){var l=i.removeOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Delete was cancelled.\",showCloseButton:!0})}function m(o){var l=i.upthisOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function f(o){var l=i.downthisOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function v(){e.groupSelectGroupClick.showList=!e.groupSelectGroupClick.showList}function g(){if(\"\"!==e.newGroupGroupedSelect.saisie){for(var o=e.GroupedSelectGroups.list.length-1;o>=0;o--)e.GroupedSelectGroups.list[o]===e.newGroupGroupedSelect.saisie&&t.pop({type:\"warning\",timeout:2e3,title:\"Group already exists\",body:\"No group added.\",showCloseButton:!0});e.GroupedSelectGroups.list.push(e.newGroupGroupedSelect.saisie)}else t.pop({type:\"warning\",timeout:2e3,title:\"Not a valid group to add\",body:\"No group added.\",showCloseButton:!0});e.newGroupGroupedSelect.saisie=\"\"}function y(){var o=i.addNewOptionGroupedSelect(e.groupedSelectRowCollection,e.newOptionGroupedSelect.saisie,\"\");o.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionGroupedSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionGroupedSelect={saisie:\"\"}}function b(o){var l=i.removeOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Delete was cancelled.\",showCloseButton:!0})}function h(o){var l=i.upthisOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function w(o){var l=i.downthisOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function x(){e.demodt.dt=new Date}function C(){e.demodt.dt=null}function S(o){o.preventDefault(),o.stopPropagation(),e.demodt.opened=!0}function T(){return{formatYear:\"yy\",startingDay:1,showWeeks:!0,initDate:null}}function F(o){e.nyaSelect.selectedControl=\"none\",$();for(var l=e.nyaSelect.controls.length-1;l>=0;l--)e.nyaSelect.controls[l].id===o&&(e.nyaSelect.selectedControl=e.nyaSelect.controls[l].id);\"Date\"===e.nyaSelect.selectedControl&&D()}function L(){\"BasicSelect\"===e.nyaSelect.selectedControl&&E(),\"GroupedSelect\"===e.nyaSelect.selectedControl&&M(),\"Radio\"===e.nyaSelect.selectedControl&&R(),s.applyConfigToSelectedControl(e.nyaSelect),o.close(e.nyaSelect)}function k(){o.dismiss(\"cancel\")}function O(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.radioRowCollection.rows.push(l)}}function R(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.radioRowCollection.rows.length>0)for(var l=0;l<=e.radioRowCollection.rows.length-1;l++){var t={name:e.radioRowCollection.rows[l].option,value:l,group:\"\"};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function P(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.basicSelectRowCollection.rows.push(l)}}function E(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.basicSelectRowCollection.rows.length>0)for(var l=0;l<=e.basicSelectRowCollection.rows.length-1;l++){var t={name:e.basicSelectRowCollection.rows[l].option,value:l,group:\"\"};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function q(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0){for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:e.nyaSelect.temporyConfig.formlyOptions[o].group};e.groupedSelectRowCollection.rows.push(l)}var t=_.uniq(_.pluck(e.groupedSelectRowCollection.rows,\"group\"));angular.copy(t,e.GroupedSelectGroups.list)}}function M(){e.nyaSelect.temporyConfig.formlyOptions=[];for(var o=0;o<=e.groupedSelectRowCollection.rows.length-1;o++){var l={name:e.groupedSelectRowCollection.rows[o].option,value:o,group:e.groupedSelectRowCollection.rows[o].group};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function D(){e.nyaSelect.temporyConfig.datepickerPopup=e.demodt.formats[0]}function N(){if(\"none\"!==l.selectedControl){for(var o=e.nyaSelect.controls.length-1;o>=0;o--)e.nyaSelect.controls[o].id===l.selectedControl&&(e.modelNyaSelect=l.controls[o]);\"BasicSelect\"===e.nyaSelect.selectedControl&&P(),\"GroupedSelect\"===e.nyaSelect.selectedControl&&q(),\"Radio\"===e.nyaSelect.selectedControl&&O()}}function $(){e.nyaSelect.temporyConfig={formlyLabel:\"\",formlyRequired:!1,formlyPlaceholder:\"\",formlyDesciption:\"\",formlyOptions:[]}}var A={rows:[]};e.radioRowCollection=A,e.newOptionRadio={saisie:\"\"},e.addNewOptionRadio=a,e.removeRadioRow=r,e.upThisRadioRow=c,e.downThisRadioRow=d,e.basicSelectRowCollection=A,e.newOptionBasicSelect={saisie:\"\"},e.addNewOptionBasicSelect=p,e.removeRow=u,e.upThisRow=m,e.downThisRow=f,e.groupedSelectRowCollection=A,e.newOptionGroupedSelect={saisie:\"\"},e.GroupedSelectGroups={list:[]},e.newGroupGroupedSelect={saisie:\"\"},e.groupSelectGroupClick={showList:!1},e.showGroupListToChoose=v,e.addNewGroupToGroupedSelect=g,e.addNewOptionGroupedSelect=y,e.removeGroupedSelectRow=b,e.upThisGroupedSelectRow=h,e.downThisGroupedSelectRow=w,e.demodt={},e.today=x,e.clear=C,e.open=S,e.dateOptions=T(),e.demodt.formats=[\"dd-MMMM-yyyy\",\"yyyy/MM/dd\",\"dd.MM.yyyy\",\"shortDate\"],e.nyaSelect=l,e.nyaSelect.selectedControl=e.nyaSelect.temporyConfig.selectedControl,e.selectThisControl=F,e.ok=L,e.cancel=k,x(),N()}angular.module(\"ngwfApp.controllers.ngwfWfEditMODALController\",[]).controller(\"ngwfWfEditMODALController\",e),e.$inject=[\"$scope\",\"$modalInstance\",\"nyaSelect\",\"toaster\",\"$timeout\",\"selectOptionManage\",\"controllerModalProxy\"]}(),function(){function e(e,o,l,t){function n(e,o,n){function i(){var o=angular.isArray(e.edaEasyFormGeneratorModel.edaFieldsModel)&&e.edaEasyFormGeneratorModel.edaFieldsModel.length>0?e.edaEasyFormGeneratorModel.edaFieldsModel:s();return o}function s(){var e=[{line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}];return e}function a(){var o=angular.isArray(e.edaEasyFormGeneratorModel.dataModel)&&e.edaEasyFormGeneratorModel.dataModel.length>0?e.edaEasyFormGeneratorModel.dataModel:[];return o}function r(){return e.edaEasyFormGeneratorModel}function c(e,o){u()}function d(){return e.returnSaveEvent}function p(o,l){if(o===!0){var t={formName:e.configuration.formName,btnSubmitText:e.configuration.submitButtonText,btnCancelText:e.configuration.cancelButtonText,edaFieldsModel:e.configuration.lines,edaFieldsModelStringified:angular.toJson(e.configuration.lines),formlyFieldsModel:e.vm.wfFormFieldsOnlyNeededProperties,dataModel:e.vm.model};e.edaSaveFormEvent({edaEasyFormGeneratorModel:t}),e.returnSaveEvent=!1}}function u(){if(angular.isDefined(e.edaEasyFormGeneratorModel)){var o=i();e.configurationLoaded={},l.bindConfigurationLines(e.configurationLoaded,o),t.refreshControlFormlyExpressionProperties(e.configurationLoaded),t.refreshControlFormlyValidators(e.configurationLoaded),t.refreshControlFormlyValidation(e.configurationLoaded),e.configuration=angular.copy(e.configurationLoaded),l.applyConfigurationToformlyModel(e.configurationLoaded,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.vm.model=a,e.configuration.formName=angular.isString(e.edaEasyFormGeneratorModel.formName)?e.edaEasyFormGeneratorModel.formName:\"\",e.configuration.submitButtonText=angular.isString(e.edaEasyFormGeneratorModel.btnSubmitText)?e.edaEasyFormGeneratorModel.btnSubmitText:\"Submit\",e.configuration.cancelButtonText=angular.isString(e.edaEasyFormGeneratorModel.btnCancelText)?e.edaEasyFormGeneratorModel.btnCancelText:\"Cancel\"}}e.$watch(r,c,!0),e.$watch(d,p)}function i(e,o,l,t,n,i,s,a,r,c,d){function p(){return{showDebug:!1,configurationModelNumberofLines:1}}function u(){return{editTab:{active:!0},previewTab:{active:!1}}}function m(o){var l=JSON.parse(o.formlyField);e.configurationLoaded={},c.bindConfigurationLines(e.configurationLoaded,l),c.applyConfigurationToformlyModel(e.configurationLoaded,e.previewLoadedForm.fieldsModel,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.previewLoadedForm.cancelButtonText=o.cancelButtonText,e.previewLoadedForm.submitButtonText=o.submitButtonText}function f(){i.pop({type:\"info\",timeout:2e3,title:\"should save data model if it were not a static example\",body:\"data :\"+t(\"json\")(e.vm.model,4),showCloseButton:!0})}function v(){return{numColumn:-1,exist:!0,control:{type:\"none\",key:\"none\",subtype:\"none\"}}}function g(){return{line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}}function y(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()}function b(){return e.debug.configurationModelNumberofLines=e.configuration.lines.length,e.configuration.lines.length}function h(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)}function w(o){if(o>-1&&e.configuration.lines[o-1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function x(o){if(o>-1&&e.configuration.lines[o+1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function C(){e.configuration.lines.push({line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function S(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):s(function(){i.pop({type:\"warning\",title:\"Last line\",body:\"Can't delete the last line\",showCloseButton:!0})},100),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))}function T(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function L(){e.configuration.configStepCounter=0}function k(){var o=e.configuration.listConfigStep.length-1;e.configuration.configStepCounter!==o&&e.configuration.configStepCounter++,D(e.configuration.configStepCounter)}function O(){0!==e.configuration.configStepCounter&&e.configuration.configStepCounter--,D(e.configuration.configStepCounter)}function R(o){return o=0;o--)e.configuration.stepIndicators[o]=!1}function D(o){M(),e.configuration.stepIndicators[o]=!0}e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.vm.onSubmit=f,e.easyFormGeneratorVERSION=l,e.debug=p(),e.tab=u(),e.configuration={},e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.columnTemplate=v(),e.lineTemplate=g(),e.resetToZeroModel=y,e.countConfigurationModelLines=b,e.setActiveLineNumber=h,e.upThisLine=w,e.downThisLine=x,e.addNewline=C,e.removeThisLine=S,e.increaseNumberOfColumns=T,e.decreaseNumberOfColumns=F,e.resetStepCounter=L,e.nextConfigStep=k,e.previousConfigStep=O,e.stepReachable=R,e.toggleAnimation=E,e.nyaSelect={},e.animationsEnabled=!0,e.showModalAddCtrlToColumn=P,e.formlyList={},e.previewLoadedForm={fieldsModel:[]},e.configurationLoaded={},e.previewExistingform=m,e.saveThisForm=q,e.returnSaveEvent=!1,c.initConfigurationEditFromScratch(e.configuration),d.initNyaSelect(e.nyaSelect)}i.$inject=[\"$scope\",\"$templateCache\",\"easyFormGenVersion\",\"$filter\",\"$anchorScroll\",\"toaster\",\"$timeout\",\"$modal\",\"$log\",\"formFieldManage\",\"controllerModalProxy\"];var s={restrict:\"E\",scope:{edaEasyFormGeneratorModel:\"=\",edaSaveFormEvent:\"&edaSaveFormEvent\"},controller:i,controllerAs:\"vm\",replace:!1,templateUrl:\"edaStepWayEasyFormGeneratorTemplate.html\",link:n};return s}angular.module(\"ngwfApp.directives.edaStepWayEasyFormGenDirective\",[]).directive(\"edaStepWayEasyFormGen\",e),e.$inject=[\"$templateCache\",\"$timeout\",\"formFieldManage\",\"controllerModalProxy\"]}(),function(){angular.module(\"ngwfApp.directives\",[\"ngwfApp.directives.ngwfStRatioDirective\",\"ngwfApp.directives.edaStepWayEasyFormGenDirective\"])}(),function(){function e(){function e(e,o,l){var t=+l.stRatio;o.css(\"width\",t+\"%\")}var o={link:e};return o}angular.module(\"ngwfApp.directives.ngwfStRatioDirective\",[]).directive(\"stRatio\",e),e.$inject=[]}(),function(){function e(){function e(e){return c(e)}function o(){var e={};return c(e),e}function l(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyExpressionProperties=o.formlyExpressionProperties)})})})}function t(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyValidators=o.formlyValidators)})})})}function n(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyValidation=o.formlyValidation)})})})}function i(e,o,l,t){return c(e),\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions&&(e.temporyConfig.selectedControl=\"undefined\"!=typeof o.lines[l].columns[t].control.selectedControl?o.lines[l].columns[t].control.selectedControl:\"none\",e.temporyConfig.formlyLabel=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.label?o.lines[l].columns[t].control.templateOptions.label:\"\",e.temporyConfig.formlyRequired=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.required?o.lines[l].columns[t].control.templateOptions.required:\"\",e.temporyConfig.formlyDesciption=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.description?o.lines[l].columns[t].control.templateOptions.description:\"\",e.temporyConfig.formlyPlaceholder=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.placeholder?o.lines[l].columns[t].control.templateOptions.placeholder:\"\",e.temporyConfig.formlyOptions=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.options?o.lines[l].columns[t].control.templateOptions.options:\"\",e.temporyConfig.formlyExpressionProperties=\"undefined\"!=typeof o.lines[l].columns[t].control.formlyExpressionProperties?angular.copy(o.lines[l].columns[t].control.formlyExpressionProperties):{},e.temporyConfig.formlyValidators=\"undefined\"!=typeof o.lines[l].columns[t].control.formlyValidators?angular.copy(o.lines[l].columns[t].control.formlyValidators):{},e.temporyConfig.formlyValidation=\"undefined\"!=typeof o.lines[l].columns[t].control.formlyValidation?angular.copy(o.lines[l].columns[t].control.formlyValidation):{},\"Date\"===e.temporyConfig.selectedControl&&(e.temporyConfig.datepickerPopup=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.datepickerPopup?o.lines[l].columns[t].control.templateOptions.datepickerPopup:\"\")),e}function s(e,o,l,t){var n=d(l);t.lines[e].columns[o].control.selectedControl=n.selectedControl,t.lines[e].columns[o].control.type=n.formlyType,t.lines[e].columns[o].control.subtype=n.formlySubtype,t.lines[e].columns[o].control.templateOptions={label:\"\",required:!1,description:\"\",placeholder:\"\",options:[]},t.lines[e].columns[o].control.templateOptions.label=n.formlyLabel,t.lines[e].columns[o].control.templateOptions.required=n.formlyRequired,t.lines[e].columns[o].control.templateOptions.description=n.formlyDesciption,t.lines[e].columns[o].control.templateOptions.placeholder=n.formlyPlaceholder,t.lines[e].columns[o].control.templateOptions.options=n.formlyOptions,t.lines[e].columns[o].control.formlyExpressionProperties=angular.copy(n.formlyExpressionProperties),t.lines[e].columns[o].control.formlyValidators=angular.copy(n.formlyValidators),t.lines[e].columns[o].control.formlyValidation=angular.copy(n.formlyValidation),\"datepicker\"===t.lines[e].columns[o].control.type&&(t.lines[e].columns[o].control.templateOptions.datepickerPopup=n.datepickerPopup);var i=t.lines[e].columns[o].control.type+\"-\"+Date.now();p(i,t)===!0?t.lines[e].columns[o].control.key=i:(i=t.lines[e].columns[o].control.type+\"-\"+Date.now(),p(i,t)===!0?t.lines[e].columns[o].control.key=i:i=t.lines[e].columns[o].control.type+\"-\"+Date.now()),t.lines[e].columns[o].control.edited=!0}function a(e){for(var o=e.controls.length-1;o>=0;o--)e.controls[o].id===e.selectedControl&&(e.controls[o].formlyLabel=e.temporyConfig.formlyLabel,e.controls[o].formlyRequired=e.temporyConfig.formlyRequired,e.controls[o].formlyDesciption=e.temporyConfig.formlyDesciption,e.controls[o].formlyPlaceholder=e.temporyConfig.formlyPlaceholder,e.controls[o].formlyOptions=e.temporyConfig.formlyOptions,\"Date\"===e.controls[o].id&&(e.controls[o].datepickerPopup=e.temporyConfig.datepickerPopup))}function r(){return{formlyLabel:\"\",formlyRequired:!1,formlyPlaceholder:\"\",formlyDesciption:\"\",formlyOptions:[]}}function c(e){var o={controls:[{id:\"empty\",name:\"no control\",subtitle:\"no control\",group:\"Blank\",formlyType:\"blank\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:\"Header\",name:\"Header\",subtitle:\"no control\",group:\"Decoration\",formlyType:\"header\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:\"Subtitle\",name:\"Subtitle\",subtitle:\"no control\",group:\"Decoration\",formlyType:\"subTitle\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:\"TextInput\",name:\"Text input\",subtitle:\"Text input\",group:\"input\",formlyType:\"input\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Text input field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Password\",name:\"Password\",subtitle:\"Password\",group:\"input\",formlyType:\"input\",formlySubtype:\"password\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Password field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Email\",name:\"Email\",subtitle:\"Email\",group:\"input\",formlyType:\"input\",formlySubtype:\"email\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{emailShape:{expression:function(e,o){var l=o||e;return/^[a-z]+[a-z0-9._]+@[a-z]+\\.[a-z.]{2,5}$/.test(l)},message:\"$viewValue + ' is not a valid email'\"}},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Email field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return l.to.required?n:void 0}}}},{id:\"Date\",name:\"Date\",subtitle:\"Date\",group:\"input\",formlyType:\"datepicker\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],datepickerPopup:\"dd-MMMM-yyyy\",formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Date field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Texarea\",name:\"Textarea\",subtitle:\"Textarea\",group:\"Textarea\",formlyType:\"textarea\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Textarea field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"RichTextEditor\",name:\"RichTextEditor\",subtitle:\"RichTextEditor\",group:\"Textarea\",formlyType:\"richEditor\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this RichTextEditor field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Radio\",name:\"Radio\",subtitle:\"Radio\",options:[],group:\"Radio\",formlyType:\"radio\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Password field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Checkbox\",name:\"Checkbox\",subtitle:\"Checkbox\",group:\"Checkbox\",formlyType:\"checkbox\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{\nmessages:{required:function(e,o,l){var t=\"this Checkbox field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"BasicSelect\",name:\"Basic select\",subtitle:\"Basic select\",options:[],group:\"Select\",formlyType:\"basicSelect\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Basic select field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"GroupedSelect\",name:\"Grouped Select\",subtitle:\"Grouped Select\",options:[],group:\"Select\",formlyType:\"groupedSelect\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Grouped Select field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}}],selectedControl:\"none\",temporyConfig:{selectedControl:\"none\",formlyLabel:\"label\",formlyRequired:!1,formlyDesciption:\"\",formlyPlaceholder:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}}};return angular.copy(o,e),!0}function d(e){for(var o={selectedControl:\"none\",formlyType:\"none\",formlySubtype:\"none\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyPlaceholder:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},l=e.controls.length-1;l>=0;l--)e.selectedControl===e.controls[l].id&&(o.selectedControl=e.selectedControl,o.formlyType=e.controls[l].formlyType,o.formlySubtype=e.controls[l].formlySubtype,o.formlyLabel=e.controls[l].formlyLabel,o.formlyRequired=e.controls[l].formlyRequired,o.formlyDesciption=e.controls[l].formlyDesciption,o.formlyPlaceholder=e.controls[l].formlyPlaceholder,o.formlyOptions=e.controls[l].formlyOptions,o.formlyExpressionProperties=angular.copy(e.controls[l].formlyExpressionProperties),o.formlyValidators=angular.copy(e.controls[l].formlyValidators),o.formlyValidation=angular.copy(e.controls[l].formlyValidation),\"datepicker\"===e.controls[l].formlyType&&(o.datepickerPopup=e.controls[l].datepickerPopup));return o}function p(e,o){for(var l=!0,t=o.lines.length-1;t>=0;t--)for(var n=o.lines[t].columns.length-1;n>=0;n--)o.lines[t].columns[n].control.key===e&&(l=!1);return l}var u={initNyaSelect:e,getNyASelectFromSelectedLineColumn:i,bindConfigurationModelFromModalReturn:s,applyConfigToSelectedControl:a,resetTemporyConfig:r,getControlsDefinition:o,refreshControlFormlyExpressionProperties:l,refreshControlFormlyValidators:t,refreshControlFormlyValidation:n};return u}angular.module(\"ngwfApp.services.ngwfEditCtrlControllerModalProxy\",[]).factory(\"controllerModalProxy\",e),e.$inject=[]}(),function(){function e(){function e(e){var o={activeLine:1,listConfigStep:[\"init\",\"first\",\"second\",\"third\"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0,submitButtonText:\"submit\",cancelButtonText:\"cancel\",lines:[{line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}]};angular.copy(o,e)}function o(e,o){if(\"[object Array]\"===Object.prototype.toString.call(o)){var l={activeLine:1,listConfigStep:[\"init\",\"first\",\"second\",\"third\"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0,submitButtonText:\"submit\",cancelButtonText:\"cancel\",lines:[]};return l.lines=[].concat(o),angular.copy(l,e),x(\"configuration model is bound\",\"lines are bound to configuration model.\")}return w(\"lines is not an array\",\"Checks lines type, it is not an array.\")}function l(e,o,l){t(o),h(l);for(var i=e.lines.length,c=0;i>c;c++)1===e.lines[c].columns.length&&(\"header\"===e.lines[c].columns[0].control.type?n(o,e,c):s(o,e,c)),2===e.lines[c].columns.length&&a(o,e,c),3===e.lines[c].columns.length&&r(o,e,c)}function t(e){var o=[];angular.copy(o,e)}function n(e,o,l){var t='

'+b(o.lines[l].columns[0].control)+\"


\";e.push({template:\"undefined\"!=typeof o.lines[l].columns[0].control.type&&\"header\"===o.lines[l].columns[0].control.type?t:\"
\"})}function i(e,o,l){e.templateOptions.datepickerPopup=d(o.lines[l].columns[0].control)}function s(e,o,l){var t={className:\"col-xs-12\",type:\"undefined\"!=typeof o.lines[l].columns[0].control.type?\"none\"===o.lines[l].columns[0].control.type?\"blank\":o.lines[l].columns[0].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};\"datepicker\"===o.lines[l].columns[0].control.type&&i(t,o,l),e.push(t)}function a(e,o,l){var t={className:\"col-xs-6\",template:'

'+b(o.lines[l].columns[0].control)+\"


\"},n={className:\"col-xs-6\",template:'

'+b(o.lines[l].columns[1].control)+\"


\"},s={className:\"col-xs-6\",type:\"undefined\"!=typeof o.lines[l].columns[0].control.type?\"none\"===o.lines[l].columns[0].control.type?\"blank\":o.lines[l].columns[0].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};\"datepicker\"===o.lines[l].columns[0].control.type&&i(s,o,l);var a={className:\"col-xs-6\",type:\"undefined\"!=typeof o.lines[l].columns[1].control.type?\"none\"===o.lines[l].columns[1].control.type?\"blank\":o.lines[l].columns[1].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[1].control.key?o.lines[l].columns[1].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[1].control),label:c(o.lines[l].columns[1].control),required:f(o.lines[l].columns[1].control),placeholder:y(o.lines[l].columns[1].control),description:b(o.lines[l].columns[1].control),options:v(o.lines[l].columns[1].control)},expressionProperties:p(o.lines[l].columns[1].control),validators:u(o.lines[l].columns[1].control),validation:m(o.lines[l].columns[1].control)};\"datepicker\"===o.lines[l].columns[1].control.type&&i(a,o,l);var r=[];r.push(\"header\"===o.lines[l].columns[0].control.type?t:s),r.push(\"header\"===o.lines[l].columns[1].control.type?n:a),e.push({className:\"row\",fieldGroup:r})}function r(e,o,l){var t={className:\"col-xs-4\",template:'

'+b(o.lines[l].columns[0].control)+\"


\"},n={className:\"col-xs-4\",template:'

'+b(o.lines[l].columns[1].control)+\"


\"},s={className:\"col-xs-4\",template:'

'+b(o.lines[l].columns[2].control)+\"


\"},a={className:\"col-xs-4\",type:\"undefined\"!=typeof o.lines[l].columns[0].control.type?\"none\"===o.lines[l].columns[0].control.type?\"blank\":o.lines[l].columns[0].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};\"datepicker\"===o.lines[l].columns[0].control.type&&i(a,o,l);var r={className:\"col-xs-4\",type:\"undefined\"!=typeof o.lines[l].columns[1].control.type?\"none\"===o.lines[l].columns[1].control.type?\"blank\":o.lines[l].columns[1].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[1].control.key?o.lines[l].columns[1].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[1].control),label:c(o.lines[l].columns[1].control),required:f(o.lines[l].columns[1].control),placeholder:y(o.lines[l].columns[1].control),description:b(o.lines[l].columns[1].control),options:v(o.lines[l].columns[1].control)},expressionProperties:p(o.lines[l].columns[1].control),validators:u(o.lines[l].columns[1].control),validation:m(o.lines[l].columns[1].control)};\"datepicker\"===o.lines[l].columns[1].control.type&&i(r,o,l);var d={className:\"col-xs-4\",type:\"undefined\"!=typeof o.lines[l].columns[2].control.type?\"none\"===o.lines[l].columns[2].control.type?\"blank\":o.lines[l].columns[2].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[2].control.key?o.lines[l].columns[2].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[2].control),label:c(o.lines[l].columns[2].control),required:f(o.lines[l].columns[2].control),placeholder:y(o.lines[l].columns[2].control),description:b(o.lines[l].columns[2].control),options:v(o.lines[l].columns[2].control)},expressionProperties:p(o.lines[l].columns[2].control),validators:u(o.lines[l].columns[2].control),validation:m(o.lines[l].columns[2].control)};\"datepicker\"===o.lines[l].columns[2].control.type&&i(d,o,l);var h=[];h.push(\"header\"===o.lines[l].columns[0].control.type?t:a),h.push(\"header\"===o.lines[l].columns[1].control.type?n:r),h.push(\"header\"===o.lines[l].columns[2].control.type?s:d),e.push({className:\"row\",fieldGroup:h})}function c(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.label?e.templateOptions.label:\"\"}function d(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.datepickerPopup?e.templateOptions.datepickerPopup:\"\"}function p(e){return\"undefined\"!=typeof e.formlyExpressionProperties?angular.copy(e.formlyExpressionProperties):{}}function u(e){return\"undefined\"!=typeof e.formlyValidators?angular.copy(e.formlyValidators):{}}function m(e){return\"undefined\"!=typeof e.formlyValidation?angular.copy(e.formlyValidation):{}}function f(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.required?e.templateOptions.required:\"\"}function v(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.options?e.templateOptions.options:\"\"}function g(e){return\"undefined\"!=typeof e.subtype?e.subtype:\"\"}function y(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.placeholder?e.templateOptions.placeholder:\"\"}function b(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.description?e.templateOptions.description:\"\"}function h(e){var o={};return angular.copy(o,e),!0}function w(e,o){var l={noError:!1,title:\"\",Message:\"\"};return l.noError=!1,l.title=e,l.Message=o,l}function x(e,o){var l={noError:!1,title:\"\",Message:\"\"};return l.noError=!0,l.title=e,l.Message=o,l}var C={initConfigurationEditFromScratch:e,bindConfigurationLines:o,applyConfigurationToformlyModel:l};return C}angular.module(\"ngwfApp.services.formFieldManage\",[]).factory(\"formFieldManage\",e),e.$inject=[]}(),function(){function e(){function e(){return\"selectOptionManage is here.\"}function o(e){p(e)}function l(e,o){for(var l=e.rows.length-1;l>=0;l--)if(e.rows[l].option===o)return!1;return!0}function t(e){return\"\"!==e?!0:!1}function n(e,o){var l={resultFlag:!1,details:\"\"},t=d(e,o);if(t.resultFlag===!0){var n={option:o,order:e.rows.length};return e.rows.push(n),l.resultFlag=!0,l.details=\"\",l}return angular.copy(t,l),l}function i(e,o){var l={resultFlag:!1,details:\"\"},t=d(e,o);if(t.resultFlag===!0){var n={option:o,order:e.rows.length};return e.rows.push(n),l.resultFlag=!0,l.details=\"\",l}return angular.copy(t,l),l}function s(e,o,l){var t={resultFlag:!1,details:\"\"},n=d(e,o);if(n.resultFlag===!0){var i={option:o,group:l,order:e.rows.length};return e.rows.push(i),t.resultFlag=!0,t.details=\"\",t}return angular.copy(n,t),t}function a(e,o){var l={resultFlag:!1,details:\"\"};return-1!==o?(e.rows.splice(o,1),l.resultFlag=!0,l.details=\"\",l):(l.resultFlag=!1,l.details=\"Option index not valid\",l)}function r(e,o){var l={resultFlag:!1,details:\"\"};if(o>-1){if(o>0){if(e.rows[o-1]){var t=e.rows[o];return e.rows.splice(o,1),e.rows.splice(o-1,0,t),l.resultFlag=!0,l.details=\"\",l}return l.resultFlag=!1,l.details=\"Can't retreive option from option index\",l}return l.resultFlag=!0,l.details=\"\",l}return l.resultFlag=!1,l.details=\"Option index not valid\",l}function c(e,o){var l={resultFlag:!1,details:\"\"};if(o>-1){if(o=0;t--)if(e.rows[t].option===o)return l.resultFlag=!1,l.details=\"Entered option is not unique\",l;return l.resultFlag=!0,l.details=\"\",l}return l.resultFlag=!1,l.details=\"Entered option is empty\",l}function p(e){var o={rows:[]};angular.copy(o,e)}var u={testMe:e,initModel:o,isOptionUnique:l,isOptionValidFormat:t,addNewOptionRadio:n,addNewOptionBasicSelect:i,addNewOptionGroupedSelect:s,removeOption:a,upthisOption:r,downthisOption:c};return u}angular.module(\"ngwfApp.services.selectOptionManage\",[]).factory(\"selectOptionManage\",e),e.$inject=[]}(),function(){angular.module(\"ngwfApp.services\",[\"ngwfApp.services.formFieldManage\",\"ngwfApp.services.selectOptionManage\",\"ngwfApp.services.ngwfEditCtrlControllerModalProxy\"])}(),function(){angular.module(\"ngwfApp.filters\",[])}()}(this);\n//# sourceMappingURL=eda.stepway.min.js.map"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["eda.stepway.min.js"],"names":["configfct","formlyConfigProvider","camelize","string","replace","match","chr","toUpperCase","toLowerCase","setType","name","template","subTitleTemplate","basicSelectTemplate","groupedSelectTemplate","attributes","bindings","ngModelAttrs","angular","forEach","attr","attribute","binding","bound","wrapper","controller","$scope","open","$event","preventDefault","stopPropagation","opened","defaultOptions","templateOptions","addonLeft","class","onClick","options","scope","isOpen","onFocus","$viewValue","$modelValue","to","datepickerOptions","setWrapper","join","module","value","config","$inject","run","$templateCache","put","ngwfMainController","$timeout","FormNameAsTest","ngwfWfEditController","easyFormGenVersion","$filter","$anchorScroll","toaster","$modal","$log","formFieldManage","controllerModalProxy","initDebugModel","showDebug","configurationModelNumberofLines","initTabModel","editTab","active","previewTab","previewExistingform","formlyform","configlines","JSON","parse","formlyField","configurationLoaded","bindConfigurationLines","applyConfigurationToformlyModel","previewLoadedForm","fieldsModel","vm","model","wfFormFieldsOnlyNeededProperties","copy","wfFormFields","cancelButtonText","submitButtonText","onSubmit","pop","type","timeout","title","body","showCloseButton","initColumnTemplate","numColumn","exist","control","key","subtype","initLineTemplate","line","activeColumn","columns","resetToZeroModel","configuration","activeLine","lines","length","splice","countConfigurationModelLines","debug","setActiveLineNumber","lineNumber","upThisLine","indexLine","currentLineObj","downThisLine","addNewline","push","removeThisLine","index","increaseNumberOfColumns","MaxNumberOfColumns","newNumberOfColumns","decreaseNumberOfColumns","resetStepCounter","configStepCounter","nextConfigStep","configStepCounterMAX","listConfigStep","setTrueThisStepIndicator","previousConfigStep","stepReachable","indexStep","showModalAddCtrlToColumn","size","numcolumn","modalInstance","animation","animationsEnabled","templateUrl","resolve","nyaSelect","getNyASelectFromSelectedLineColumn","result","then","modalAddCtrlModel","bindConfigurationModelFromModalReturn","toggleAnimation","loadExistingFormsAsList","saveThisForm","formName","clear","resetAllIndicators","i","stepIndicators","indexIndicator","this","easyFormGeneratorVERSION","tab","numberOfColumns","MinNumberOfColumns","columnTemplate","lineTemplate","loadExistingFormsList","formlyList","initConfigurationEditFromScratch","initNyaSelect","ngwfWfEditMODALController","$modalInstance","selectOptionManage","addNewOptionRadio","radioRowCollection","newOptionRadio","saisie","resultFlag","details","removeRadioRow","removeOption","upThisRadioRow","upthisOption","downThisRadioRow","downthisOption","addNewOptionBasicSelect","basicSelectRowCollection","newOptionBasicSelect","removeRow","upThisRow","downThisRow","showGroupListToChoose","groupSelectGroupClick","showList","addNewGroupToGroupedSelect","newGroupGroupedSelect","GroupedSelectGroups","list","addNewOptionGroupedSelect","groupedSelectRowCollection","newOptionGroupedSelect","removeGroupedSelectRow","upThisGroupedSelectRow","downThisGroupedSelectRow","today","demodt","dt","Date","openfct","dateOptionsInit","formatYear","startingDay","showWeeks","initDate","selectThisControl","controlName","selectedControl","resetTemporyConfig","controls","id","initDatePicker","okfct","bindBasicSelectToNya","bindGroupedSelectToNya","bindRadioToNya","applyConfigToSelectedControl","close","cancelfct","dismiss","bindRadioFromNYA","temporyConfig","formlyOptions","newOption","option","order","group","rows","resetNyASelectOptions","bindBasicSelectFromNYA","bindGroupedSelectFromNYA","filteredgroup","_","uniq","pluck","datepickerPopup","formats","initNyaSelectConformingSelectedControl","modelNyaSelect","formlyLabel","formlyRequired","formlyPlaceholder","formlyDesciption","initOptionModel","dateOptions","ok","cancel","edaStepWayEasyFormGen","linkFct","element","attrs","returnAttributeConfigurationLinesIfNotEmpty","edaEasyFormGeneratorModelToReturn","isArray","edaEasyFormGeneratorModel","edaFieldsModel","emptyEdaFieldsModel","emptyModel","returnAttributeDataModelIfNotEmpty","dataModelToReturn","dataModel","watchEdaEasyFormModelExpression","watchEdaEasyFormModelHasChanged","newValue","oldValue","loadExistingConfigurationModel","watchReturnSaveEventExpression","returnSaveEvent","watchReturnSaveEventhasChanged","_easyFormGeneratorModel","btnSubmitText","btnCancelText","edaFieldsModelStringified","toJson","formlyFieldsModel","edaSaveFormEvent","isDefined","refreshControlFormlyExpressionProperties","refreshControlFormlyValidators","refreshControlFormlyValidation","isString","$watch","edaStepWayEasyFormGenCtrl","directive","restrict","controllerAs","link","stRatio","linkfct","ratio","css","nyaSelectObj","resetNyaSelect","getControlsDefinition","configurationModel","isObject","column","controlIndex","_controlsDefinition","aControl","aControlIndex","formlyType","formlySubtype","formlyExpressionProperties","formlyValidators","formlyValidation","configurationObj","label","required","description","placeholder","extractedProps","returnControlFromAddCtrlModalModel","newKey","now","validKeyUniqueness","edited","newNyaSelectObj","subtitle","messages","viewValue","modelValue","defaultReturnMsg","returnMsg","emailShape","expression","test","message","CtrlModalModel","modelToReturn","thisKey","isUnique","j","service","factory","configurationModelInit","Object","prototype","toString","call","configurationModelResult","concat","getMessageObject","getErrorObject","formlyModel","formlyDataModel","resetFormlyModel","resetDataModel","addOneColumnHeader","addOneColumnControl","addTwoColumnControl","addThreeColumnControl","resetformly","lineIndex","headerTemplateCol0","extractTemplateOptionDescription","addDatepickerPopupProperty","fieldToPush","extractTemplateOptionDatepickerPopup","className","extractTemplateOptionType","extractTemplateOptionLabel","extractTemplateOptionRequired","extractTemplateOptionPlaceholder","extractTemplateOptionOptions","expressionProperties","extractFormlyExpressionProperties","validators","extractFormlyValidators","validation","extractFormlyValidation","headerTemplateCol1","controlCol0","controlCol1","FieldGroup","fieldGroup","headerTemplateCol2","controlCol2","obj","emptyDataModel","errorTitle","errorMessage","messageObj","noError","Message","messageTitle","messageBody","testMe","initModel","selectObj","resetModel","isOptionUnique","textValue","isOptionValidFormat","newOptionText","fullResponse","checkResult","validOption","newOptionGroup","AtIndex","indexOption","currentOption","zeroModel"],"mappings":"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","file":"eda.stepway.min.js","sourcesContent":["!function(){\"use strict\";!function(){function e(e){function o(e){return e=e.replace(/[\\-_\\s]+(.)?/g,function(e,o){return o?o.toUpperCase():\"\"}),e.replace(/^([A-Z])/,function(e,o){return o?o.toLowerCase():\"\"})}e.setType({name:\"richEditor\",template:''}),e.setType({name:\"blank\",template:\"
\"});var l='

{{options.templateOptions.placeholder}}


';e.setType({name:\"subTitle\",template:l});var t='
  1. {{option.name}}
';e.setType({name:\"basicSelect\",template:t});var n='
  1. {{$group}} {{option.name}}
';e.setType({name:\"groupedSelect\",template:n});var i=[\"date-disabled\",\"custom-class\",\"show-weeks\",\"starting-day\",\"init-date\",\"min-mode\",\"max-mode\",\"format-day\",\"format-month\",\"format-year\",\"format-day-header\",\"format-day-title\",\"format-month-title\",\"year-range\",\"shortcut-propagation\",\"datepicker-popup\",\"show-button-bar\",\"current-text\",\"clear-text\",\"close-text\",\"close-on-date-selection\",\"datepicker-append-to-body\"],s=[\"datepicker-mode\",\"min-date\",\"max-date\"],a={};angular.forEach(i,function(e){a[o(e)]={attribute:e}}),angular.forEach(s,function(e){a[o(e)]={bound:e}}),e.setType({name:\"datepicker\",template:'',wrapper:[\"bootstrapLabel\",\"bootstrapHasError\"],controller:[\"$scope\",function(e){e.open=function(o){o.preventDefault(),o.stopPropagation(),e.opened=!0}}],defaultOptions:{ngModelAttrs:a,templateOptions:{addonLeft:{\"class\":\"glyphicon glyphicon-calendar\",onClick:function(e,o){e.templateOptions.isOpen=!e.templateOptions.isOpen}},onFocus:function(e,o,l){l.to.isOpen=!l.to.isOpen},datepickerOptions:{}}}}),e.setWrapper([{template:['
\",\" \",'
','
','
',\" {{message(options.formControl.$viewValue, options.formControl.$modelValue, this)}}\",\"
\",\"
\",\"
\"].join(\" \")}])}angular.module(\"eda.easyformGen.stepway\",[\"ngwfApp\"]),angular.module(\"ngwfApp\",[\"ngwfApp.core\",\"ngwfApp.controllers\",\"ngwfApp.services\",\"ngwfApp.filters\",\"ngwfApp.directives\"]).value(\"easyFormGenVersion\",\"v1.0.15\").config(e),e.$inject=[\"formlyConfigProvider\"]}(),angular.module(\"ngwfApp\").run([\"$templateCache\",function(e){e.put(\"edaStepWayEasyFormGeneratorTemplate.html\",'

lines

layout

controls

save

Command

Add a new line : 

Visual

  • 1\">
    1\">
    1\">

Command

– Selected line –

number of columns :

{{configuration.lines[configuration.activeLine -1].columns.length}}

Visual

  • 1\">
    1\">
    1\">

Command

– Apply controls to columns –


  Click / Tap on column to open control selection.

  Select desired control and valid to apply it to column.

Visual

  • 1\">
    1\">
    1\">

 Command



 Final Step : form preview

DATA MODEL

\\n\t\t\t\t\t\t\t\t\t\t{{vm.model | json}}\\n\t\t\t\t\t\t\t\t\t

FIELDS MODEL (ready to save to database one)

\\n\t\t\t\t\t\t\t\t\t\t{{vm.wfFormFieldsOnlyNeededProperties | json}}\\n\t\t\t\t\t\t\t\t\t

Easy form generator : {{easyFormGeneratorVERSION}} — Erwan DATIN (MacKentoch)
'),e.put(\"editModalTemplate.html\",'');\n\n}]),function(){angular.module(\"ngwfApp.core\",[\"textAngular\",\"textAngularSetup\",\"ngAnimate\",\"toaster\",\"formly\",\"formlyBootstrap\",\"ui.bootstrap\",\"nya.bootstrap.select\"])}(),function(){angular.module(\"ngwfApp.controllers\",[\"ngwfApp.controllers.ngwfMainController\",\"ngwfApp.controllers.ngwfWfEditController\",\"ngwfApp.controllers.ngwfWfEditMODALController\"])}(),function(){function e(e,o){e.FormNameAsTest=\"initial_name\",o(function(){e.FormNameAsTest=\"name changed after 3s\"},3e3)}angular.module(\"ngwfApp.controllers.ngwfMainController\",[]).controller(\"ngwfMainController\",e),e.$inject=[\"$scope\",\"$timeout\"]}(),function(){function e(e,o,l,t,n,i,s,a,r,c,d){function p(){return{showDebug:!1,configurationModelNumberofLines:1}}function u(){return{editTab:{active:!0},previewTab:{active:!1}}}function m(o){var l=JSON.parse(o.formlyField);e.configurationLoaded={},c.bindConfigurationLines(e.configurationLoaded,l),c.applyConfigurationToformlyModel(e.configurationLoaded,e.previewLoadedForm.fieldsModel,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.previewLoadedForm.cancelButtonText=o.cancelButtonText,e.previewLoadedForm.submitButtonText=o.submitButtonText}function f(){i.pop({type:\"info\",timeout:2e3,title:\"should save data model if it were not a static example\",body:\"data :\"+t(\"json\")(e.vm.model,4),showCloseButton:!0})}function v(){return{numColumn:-1,exist:!0,control:{type:\"none\",key:\"none\",subtype:\"none\"}}}function g(){return{line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}}function y(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()}function b(){return e.debug.configurationModelNumberofLines=e.configuration.lines.length,e.configuration.lines.length}function h(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)}function w(o){if(o>-1&&e.configuration.lines[o-1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function x(o){if(o>-1&&e.configuration.lines[o+1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function C(){e.configuration.lines.push({line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function S(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):s(function(){i.pop({type:\"warning\",title:\"Last line\",body:\"Can't delete the last line\",showCloseButton:!0})},100),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))}function T(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function L(){e.configuration.configStepCounter=0}function k(){var o=e.configuration.listConfigStep.length-1;e.configuration.configStepCounter!==o&&e.configuration.configStepCounter++,N(e.configuration.configStepCounter)}function O(){0!==e.configuration.configStepCounter&&e.configuration.configStepCounter--,N(e.configuration.configStepCounter)}function R(o){return o=0;o--)e.configuration.stepIndicators[o]=!1}function N(o){D(),e.configuration.stepIndicators[o]=!0}e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.vm.onSubmit=f,e.easyFormGeneratorVERSION=l,e.debug=p(),e.tab=u(),e.configuration={},e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.columnTemplate=v(),e.lineTemplate=g(),e.resetToZeroModel=y,e.countConfigurationModelLines=b,e.setActiveLineNumber=h,e.upThisLine=w,e.downThisLine=x,e.addNewline=C,e.removeThisLine=S,e.increaseNumberOfColumns=T,e.decreaseNumberOfColumns=F,e.resetStepCounter=L,e.nextConfigStep=k,e.previousConfigStep=O,e.stepReachable=R,e.toggleAnimation=E,e.nyaSelect={},e.animationsEnabled=!0,e.showModalAddCtrlToColumn=P,e.loadExistingFormsList=q(),e.formlyList={},e.previewLoadedForm={fieldsModel:[]},e.configurationLoaded={},e.previewExistingform=m,e.saveThisForm=M,q(),c.initConfigurationEditFromScratch(e.configuration),d.initNyaSelect(e.nyaSelect)}angular.module(\"ngwfApp.controllers.ngwfWfEditController\",[]).controller(\"ngwfWfEditController\",e),e.$inject=[\"$scope\",\"$templateCache\",\"easyFormGenVersion\",\"$filter\",\"$anchorScroll\",\"toaster\",\"$timeout\",\"$modal\",\"$log\",\"formFieldManage\",\"controllerModalProxy\"]}(),function(){function e(e,o,l,t,n,i,s){function a(){var o=i.addNewOptionRadio(e.radioRowCollection,e.newOptionRadio.saisie);o.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionRadio.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionRadio={saisie:\"\"}}function r(o){var l=i.removeOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Delete was cancelled.\",showCloseButton:!0})}function c(o){var l=i.upthisOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function d(o){var l=i.downthisOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function p(){var o=i.addNewOptionBasicSelect(e.basicSelectRowCollection,e.newOptionBasicSelect.saisie);o.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionBasicSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionBasicSelect={saisie:\"\"}}function u(o){var l=i.removeOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Delete was cancelled.\",showCloseButton:!0})}function m(o){var l=i.upthisOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function f(o){var l=i.downthisOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function v(){e.groupSelectGroupClick.showList=!e.groupSelectGroupClick.showList}function g(){if(\"\"!==e.newGroupGroupedSelect.saisie){for(var o=e.GroupedSelectGroups.list.length-1;o>=0;o--)e.GroupedSelectGroups.list[o]===e.newGroupGroupedSelect.saisie&&t.pop({type:\"warning\",timeout:2e3,title:\"Group already exists\",body:\"No group added.\",showCloseButton:!0});e.GroupedSelectGroups.list.push(e.newGroupGroupedSelect.saisie)}else t.pop({type:\"warning\",timeout:2e3,title:\"Not a valid group to add\",body:\"No group added.\",showCloseButton:!0});e.newGroupGroupedSelect.saisie=\"\"}function y(){var o=i.addNewOptionGroupedSelect(e.groupedSelectRowCollection,e.newOptionGroupedSelect.saisie,\"\");o.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionGroupedSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionGroupedSelect={saisie:\"\"}}function b(o){var l=i.removeOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Delete was cancelled.\",showCloseButton:!0})}function h(o){var l=i.upthisOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function w(o){var l=i.downthisOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function x(){e.demodt.dt=new Date}function C(){e.demodt.dt=null}function S(o){o.preventDefault(),o.stopPropagation(),e.demodt.opened=!0}function T(){return{formatYear:\"yy\",startingDay:1,showWeeks:!0,initDate:null}}function F(o){e.nyaSelect.selectedControl=\"none\",$();for(var l=e.nyaSelect.controls.length-1;l>=0;l--)e.nyaSelect.controls[l].id===o&&(e.nyaSelect.selectedControl=e.nyaSelect.controls[l].id);\"Date\"===e.nyaSelect.selectedControl&&D()}function L(){\"BasicSelect\"===e.nyaSelect.selectedControl&&E(),\"GroupedSelect\"===e.nyaSelect.selectedControl&&M(),\"Radio\"===e.nyaSelect.selectedControl&&R(),s.applyConfigToSelectedControl(e.nyaSelect),o.close(e.nyaSelect)}function k(){o.dismiss(\"cancel\")}function O(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.radioRowCollection.rows.push(l)}}function R(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.radioRowCollection.rows.length>0)for(var l=0;l<=e.radioRowCollection.rows.length-1;l++){var t={name:e.radioRowCollection.rows[l].option,value:l,group:\"\"};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function P(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.basicSelectRowCollection.rows.push(l)}}function E(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.basicSelectRowCollection.rows.length>0)for(var l=0;l<=e.basicSelectRowCollection.rows.length-1;l++){var t={name:e.basicSelectRowCollection.rows[l].option,value:l,group:\"\"};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function q(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0){for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:e.nyaSelect.temporyConfig.formlyOptions[o].group};e.groupedSelectRowCollection.rows.push(l)}var t=_.uniq(_.pluck(e.groupedSelectRowCollection.rows,\"group\"));angular.copy(t,e.GroupedSelectGroups.list)}}function M(){e.nyaSelect.temporyConfig.formlyOptions=[];for(var o=0;o<=e.groupedSelectRowCollection.rows.length-1;o++){var l={name:e.groupedSelectRowCollection.rows[o].option,value:o,group:e.groupedSelectRowCollection.rows[o].group};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function D(){e.nyaSelect.temporyConfig.datepickerPopup=e.demodt.formats[0]}function N(){if(\"none\"!==l.selectedControl){for(var o=e.nyaSelect.controls.length-1;o>=0;o--)e.nyaSelect.controls[o].id===l.selectedControl&&(e.modelNyaSelect=l.controls[o]);\"BasicSelect\"===e.nyaSelect.selectedControl&&P(),\"GroupedSelect\"===e.nyaSelect.selectedControl&&q(),\"Radio\"===e.nyaSelect.selectedControl&&O()}}function $(){e.nyaSelect.temporyConfig={formlyLabel:\"\",formlyRequired:!1,formlyPlaceholder:\"\",formlyDesciption:\"\",formlyOptions:[]}}var A={rows:[]};e.radioRowCollection=A,e.newOptionRadio={saisie:\"\"},e.addNewOptionRadio=a,e.removeRadioRow=r,e.upThisRadioRow=c,e.downThisRadioRow=d,e.basicSelectRowCollection=A,e.newOptionBasicSelect={saisie:\"\"},e.addNewOptionBasicSelect=p,e.removeRow=u,e.upThisRow=m,e.downThisRow=f,e.groupedSelectRowCollection=A,e.newOptionGroupedSelect={saisie:\"\"},e.GroupedSelectGroups={list:[]},e.newGroupGroupedSelect={saisie:\"\"},e.groupSelectGroupClick={showList:!1},e.showGroupListToChoose=v,e.addNewGroupToGroupedSelect=g,e.addNewOptionGroupedSelect=y,e.removeGroupedSelectRow=b,e.upThisGroupedSelectRow=h,e.downThisGroupedSelectRow=w,e.demodt={},e.today=x,e.clear=C,e.open=S,e.dateOptions=T(),e.demodt.formats=[\"dd-MMMM-yyyy\",\"yyyy/MM/dd\",\"dd.MM.yyyy\",\"shortDate\"],e.nyaSelect=l,e.nyaSelect.selectedControl=e.nyaSelect.temporyConfig.selectedControl,e.selectThisControl=F,e.ok=L,e.cancel=k,x(),N()}angular.module(\"ngwfApp.controllers.ngwfWfEditMODALController\",[]).controller(\"ngwfWfEditMODALController\",e),e.$inject=[\"$scope\",\"$modalInstance\",\"nyaSelect\",\"toaster\",\"$timeout\",\"selectOptionManage\",\"controllerModalProxy\"]}(),function(){function e(e,o,l,t){function n(e,o,n){function i(){var o=angular.isArray(e.edaEasyFormGeneratorModel.edaFieldsModel)&&e.edaEasyFormGeneratorModel.edaFieldsModel.length>0?e.edaEasyFormGeneratorModel.edaFieldsModel:s();return o}function s(){var e=[{line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}];return e}function a(){var o=angular.isArray(e.edaEasyFormGeneratorModel.dataModel)&&e.edaEasyFormGeneratorModel.dataModel.length>0?e.edaEasyFormGeneratorModel.dataModel:[];return o}function r(){return e.edaEasyFormGeneratorModel}function c(e,o){u()}function d(){return e.returnSaveEvent}function p(o,l){if(o===!0){var t={formName:e.configuration.formName,btnSubmitText:e.configuration.submitButtonText,btnCancelText:e.configuration.cancelButtonText,edaFieldsModel:e.configuration.lines,edaFieldsModelStringified:angular.toJson(e.configuration.lines),formlyFieldsModel:e.vm.wfFormFieldsOnlyNeededProperties,dataModel:e.vm.model};e.edaSaveFormEvent({edaEasyFormGeneratorModel:t}),e.returnSaveEvent=!1}}function u(){if(angular.isDefined(e.edaEasyFormGeneratorModel)){var o=i();e.configurationLoaded={},l.bindConfigurationLines(e.configurationLoaded,o),t.refreshControlFormlyExpressionProperties(e.configurationLoaded),t.refreshControlFormlyValidators(e.configurationLoaded),t.refreshControlFormlyValidation(e.configurationLoaded),e.configuration=angular.copy(e.configurationLoaded),l.applyConfigurationToformlyModel(e.configurationLoaded,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.vm.model=a,e.configuration.formName=angular.isString(e.edaEasyFormGeneratorModel.formName)?e.edaEasyFormGeneratorModel.formName:\"\",e.configuration.submitButtonText=angular.isString(e.edaEasyFormGeneratorModel.btnSubmitText)?e.edaEasyFormGeneratorModel.btnSubmitText:\"Submit\",e.configuration.cancelButtonText=angular.isString(e.edaEasyFormGeneratorModel.btnCancelText)?e.edaEasyFormGeneratorModel.btnCancelText:\"Cancel\"}}e.$watch(r,c,!0),e.$watch(d,p)}function i(e,o,l,t,n,i,s,a,r,c,d){function p(){return{showDebug:!1,configurationModelNumberofLines:1}}function u(){return{editTab:{active:!0},previewTab:{active:!1}}}function m(o){var l=JSON.parse(o.formlyField);e.configurationLoaded={},c.bindConfigurationLines(e.configurationLoaded,l),c.applyConfigurationToformlyModel(e.configurationLoaded,e.previewLoadedForm.fieldsModel,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.previewLoadedForm.cancelButtonText=o.cancelButtonText,e.previewLoadedForm.submitButtonText=o.submitButtonText}function f(){i.pop({type:\"info\",timeout:2e3,title:\"should save data model if it were not a static example\",body:\"data :\"+t(\"json\")(e.vm.model,4),showCloseButton:!0})}function v(){return{numColumn:-1,exist:!0,control:{type:\"none\",key:\"none\",subtype:\"none\"}}}function g(){return{line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}}function y(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()}function b(){return e.debug.configurationModelNumberofLines=e.configuration.lines.length,e.configuration.lines.length}function h(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)}function w(o){if(o>-1&&e.configuration.lines[o-1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function x(o){if(o>-1&&e.configuration.lines[o+1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function C(){e.configuration.lines.push({line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function S(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):s(function(){i.pop({type:\"warning\",title:\"Last line\",body:\"Can't delete the last line\",showCloseButton:!0})},100),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))}function T(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function L(){e.configuration.configStepCounter=0}function k(){var o=e.configuration.listConfigStep.length-1;e.configuration.configStepCounter!==o&&e.configuration.configStepCounter++,D(e.configuration.configStepCounter)}function O(){0!==e.configuration.configStepCounter&&e.configuration.configStepCounter--,D(e.configuration.configStepCounter)}function R(o){return o=0;o--)e.configuration.stepIndicators[o]=!1}function D(o){M(),e.configuration.stepIndicators[o]=!0}e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.vm.onSubmit=f,e.easyFormGeneratorVERSION=l,e.debug=p(),e.tab=u(),e.configuration={},e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.columnTemplate=v(),e.lineTemplate=g(),e.resetToZeroModel=y,e.countConfigurationModelLines=b,e.setActiveLineNumber=h,e.upThisLine=w,e.downThisLine=x,e.addNewline=C,e.removeThisLine=S,e.increaseNumberOfColumns=T,e.decreaseNumberOfColumns=F,e.resetStepCounter=L,e.nextConfigStep=k,e.previousConfigStep=O,e.stepReachable=R,e.toggleAnimation=E,e.nyaSelect={},e.animationsEnabled=!0,e.showModalAddCtrlToColumn=P,e.formlyList={},e.previewLoadedForm={fieldsModel:[]},e.configurationLoaded={},e.previewExistingform=m,e.saveThisForm=q,e.returnSaveEvent=!1,c.initConfigurationEditFromScratch(e.configuration),d.initNyaSelect(e.nyaSelect)}i.$inject=[\"$scope\",\"$templateCache\",\"easyFormGenVersion\",\"$filter\",\"$anchorScroll\",\"toaster\",\"$timeout\",\"$modal\",\"$log\",\"formFieldManage\",\"controllerModalProxy\"];var s={restrict:\"E\",scope:{edaEasyFormGeneratorModel:\"=\",edaSaveFormEvent:\"&edaSaveFormEvent\"},controller:i,controllerAs:\"vm\",replace:!1,templateUrl:\"edaStepWayEasyFormGeneratorTemplate.html\",link:n};return s}angular.module(\"ngwfApp.directives.edaStepWayEasyFormGenDirective\",[]).directive(\"edaStepWayEasyFormGen\",e),e.$inject=[\"$templateCache\",\"$timeout\",\"formFieldManage\",\"controllerModalProxy\"]}(),function(){angular.module(\"ngwfApp.directives\",[\"ngwfApp.directives.ngwfStRatioDirective\",\"ngwfApp.directives.edaStepWayEasyFormGenDirective\"])}(),function(){function e(){function e(e,o,l){var t=+l.stRatio;o.css(\"width\",t+\"%\")}var o={link:e};return o}angular.module(\"ngwfApp.directives.ngwfStRatioDirective\",[]).directive(\"stRatio\",e),e.$inject=[]}(),function(){function e(){function e(e){return c(e)}function o(){var e={};return c(e),e}function l(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyExpressionProperties=o.formlyExpressionProperties)})})})}function t(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyValidators=o.formlyValidators)})})})}function n(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyValidation=o.formlyValidation)})})})}function i(e,o,l,t){return c(e),\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions&&(e.temporyConfig.selectedControl=\"undefined\"!=typeof o.lines[l].columns[t].control.selectedControl?o.lines[l].columns[t].control.selectedControl:\"none\",e.temporyConfig.formlyLabel=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.label?o.lines[l].columns[t].control.templateOptions.label:\"\",e.temporyConfig.formlyRequired=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.required?o.lines[l].columns[t].control.templateOptions.required:\"\",e.temporyConfig.formlyDesciption=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.description?o.lines[l].columns[t].control.templateOptions.description:\"\",e.temporyConfig.formlyPlaceholder=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.placeholder?o.lines[l].columns[t].control.templateOptions.placeholder:\"\",e.temporyConfig.formlyOptions=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.options?o.lines[l].columns[t].control.templateOptions.options:\"\",e.temporyConfig.formlyExpressionProperties=\"undefined\"!=typeof o.lines[l].columns[t].control.formlyExpressionProperties?angular.copy(o.lines[l].columns[t].control.formlyExpressionProperties):{},e.temporyConfig.formlyValidators=\"undefined\"!=typeof o.lines[l].columns[t].control.formlyValidators?angular.copy(o.lines[l].columns[t].control.formlyValidators):{},e.temporyConfig.formlyValidation=\"undefined\"!=typeof o.lines[l].columns[t].control.formlyValidation?angular.copy(o.lines[l].columns[t].control.formlyValidation):{},\"Date\"===e.temporyConfig.selectedControl&&(e.temporyConfig.datepickerPopup=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.datepickerPopup?o.lines[l].columns[t].control.templateOptions.datepickerPopup:\"\")),e}function s(e,o,l,t){var n=d(l);t.lines[e].columns[o].control.selectedControl=n.selectedControl,t.lines[e].columns[o].control.type=n.formlyType,t.lines[e].columns[o].control.subtype=n.formlySubtype,t.lines[e].columns[o].control.templateOptions={label:\"\",required:!1,description:\"\",placeholder:\"\",options:[]},t.lines[e].columns[o].control.templateOptions.label=n.formlyLabel,t.lines[e].columns[o].control.templateOptions.required=n.formlyRequired,t.lines[e].columns[o].control.templateOptions.description=n.formlyDesciption,t.lines[e].columns[o].control.templateOptions.placeholder=n.formlyPlaceholder,t.lines[e].columns[o].control.templateOptions.options=n.formlyOptions,t.lines[e].columns[o].control.formlyExpressionProperties=angular.copy(n.formlyExpressionProperties),t.lines[e].columns[o].control.formlyValidators=angular.copy(n.formlyValidators),t.lines[e].columns[o].control.formlyValidation=angular.copy(n.formlyValidation),\"datepicker\"===t.lines[e].columns[o].control.type&&(t.lines[e].columns[o].control.templateOptions.datepickerPopup=n.datepickerPopup);var i=t.lines[e].columns[o].control.type+\"-\"+Date.now();p(i,t)===!0?t.lines[e].columns[o].control.key=i:(i=t.lines[e].columns[o].control.type+\"-\"+Date.now(),p(i,t)===!0?t.lines[e].columns[o].control.key=i:i=t.lines[e].columns[o].control.type+\"-\"+Date.now()),t.lines[e].columns[o].control.edited=!0}function a(e){for(var o=e.controls.length-1;o>=0;o--)e.controls[o].id===e.selectedControl&&(e.controls[o].formlyLabel=e.temporyConfig.formlyLabel,e.controls[o].formlyRequired=e.temporyConfig.formlyRequired,e.controls[o].formlyDesciption=e.temporyConfig.formlyDesciption,e.controls[o].formlyPlaceholder=e.temporyConfig.formlyPlaceholder,e.controls[o].formlyOptions=e.temporyConfig.formlyOptions,\"Date\"===e.controls[o].id&&(e.controls[o].datepickerPopup=e.temporyConfig.datepickerPopup))}function r(){return{formlyLabel:\"\",formlyRequired:!1,formlyPlaceholder:\"\",formlyDesciption:\"\",formlyOptions:[]}}function c(e){var o={controls:[{id:\"empty\",name:\"no control\",subtitle:\"no control\",group:\"Blank\",formlyType:\"blank\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:\"Header\",name:\"Header\",subtitle:\"no control\",group:\"Decoration\",formlyType:\"header\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:\"Subtitle\",name:\"Subtitle\",subtitle:\"no control\",group:\"Decoration\",formlyType:\"subTitle\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:\"TextInput\",name:\"Text input\",subtitle:\"Text input\",group:\"input\",formlyType:\"input\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Text input field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Password\",name:\"Password\",subtitle:\"Password\",group:\"input\",formlyType:\"input\",formlySubtype:\"password\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Password field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Email\",name:\"Email\",subtitle:\"Email\",group:\"input\",formlyType:\"input\",formlySubtype:\"email\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{emailShape:{expression:function(e,o){var l=o||e;return/^[a-z]+[a-z0-9._]+@[a-z]+\\.[a-z.]{2,5}$/.test(l)},message:\"$viewValue + ' is not a valid email'\"}},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Email field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return l.to.required?n:void 0}}}},{id:\"Date\",name:\"Date\",subtitle:\"Date\",group:\"input\",formlyType:\"datepicker\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],datepickerPopup:\"dd-MMMM-yyyy\",formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Date field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Texarea\",name:\"Textarea\",subtitle:\"Textarea\",group:\"Textarea\",formlyType:\"textarea\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Textarea field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"RichTextEditor\",name:\"RichTextEditor\",subtitle:\"RichTextEditor\",group:\"Textarea\",formlyType:\"richEditor\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this RichTextEditor field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Radio\",name:\"Radio\",subtitle:\"Radio\",options:[],group:\"Radio\",formlyType:\"radio\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Password field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Checkbox\",name:\"Checkbox\",subtitle:\"Checkbox\",group:\"Checkbox\",formlyType:\"checkbox\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{\nmessages:{required:function(e,o,l){var t=\"this Checkbox field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"BasicSelect\",name:\"Basic select\",subtitle:\"Basic select\",options:[],group:\"Select\",formlyType:\"basicSelect\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Basic select field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"GroupedSelect\",name:\"Grouped Select\",subtitle:\"Grouped Select\",options:[],group:\"Select\",formlyType:\"groupedSelect\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Grouped Select field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}}],selectedControl:\"none\",temporyConfig:{selectedControl:\"none\",formlyLabel:\"label\",formlyRequired:!1,formlyDesciption:\"\",formlyPlaceholder:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}}};return angular.copy(o,e),!0}function d(e){for(var o={selectedControl:\"none\",formlyType:\"none\",formlySubtype:\"none\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyPlaceholder:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},l=e.controls.length-1;l>=0;l--)e.selectedControl===e.controls[l].id&&(o.selectedControl=e.selectedControl,o.formlyType=e.controls[l].formlyType,o.formlySubtype=e.controls[l].formlySubtype,o.formlyLabel=e.controls[l].formlyLabel,o.formlyRequired=e.controls[l].formlyRequired,o.formlyDesciption=e.controls[l].formlyDesciption,o.formlyPlaceholder=e.controls[l].formlyPlaceholder,o.formlyOptions=e.controls[l].formlyOptions,o.formlyExpressionProperties=angular.copy(e.controls[l].formlyExpressionProperties),o.formlyValidators=angular.copy(e.controls[l].formlyValidators),o.formlyValidation=angular.copy(e.controls[l].formlyValidation),\"datepicker\"===e.controls[l].formlyType&&(o.datepickerPopup=e.controls[l].datepickerPopup));return o}function p(e,o){for(var l=!0,t=o.lines.length-1;t>=0;t--)for(var n=o.lines[t].columns.length-1;n>=0;n--)o.lines[t].columns[n].control.key===e&&(l=!1);return l}var u={initNyaSelect:e,getNyASelectFromSelectedLineColumn:i,bindConfigurationModelFromModalReturn:s,applyConfigToSelectedControl:a,resetTemporyConfig:r,getControlsDefinition:o,refreshControlFormlyExpressionProperties:l,refreshControlFormlyValidators:t,refreshControlFormlyValidation:n};return u}angular.module(\"ngwfApp.services.ngwfEditCtrlControllerModalProxy\",[]).factory(\"controllerModalProxy\",e),e.$inject=[]}(),function(){function e(){function e(e){var o={activeLine:1,listConfigStep:[\"init\",\"first\",\"second\",\"third\"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0,submitButtonText:\"submit\",cancelButtonText:\"cancel\",lines:[{line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}]};angular.copy(o,e)}function o(e,o){if(\"[object Array]\"===Object.prototype.toString.call(o)){var l={activeLine:1,listConfigStep:[\"init\",\"first\",\"second\",\"third\"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0,submitButtonText:\"submit\",cancelButtonText:\"cancel\",lines:[]};return l.lines=[].concat(o),angular.copy(l,e),x(\"configuration model is bound\",\"lines are bound to configuration model.\")}return w(\"lines is not an array\",\"Checks lines type, it is not an array.\")}function l(e,o,l){t(o),h(l);for(var i=e.lines.length,c=0;i>c;c++)1===e.lines[c].columns.length&&(\"header\"===e.lines[c].columns[0].control.type?n(o,e,c):s(o,e,c)),2===e.lines[c].columns.length&&a(o,e,c),3===e.lines[c].columns.length&&r(o,e,c)}function t(e){var o=[];angular.copy(o,e)}function n(e,o,l){var t='

'+b(o.lines[l].columns[0].control)+\"


\";e.push({template:\"undefined\"!=typeof o.lines[l].columns[0].control.type&&\"header\"===o.lines[l].columns[0].control.type?t:\"
\"})}function i(e,o,l){e.templateOptions.datepickerPopup=d(o.lines[l].columns[0].control)}function s(e,o,l){var t={className:\"col-xs-12\",type:\"undefined\"!=typeof o.lines[l].columns[0].control.type?\"none\"===o.lines[l].columns[0].control.type?\"blank\":o.lines[l].columns[0].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};\"datepicker\"===o.lines[l].columns[0].control.type&&i(t,o,l),e.push(t)}function a(e,o,l){var t={className:\"col-xs-6\",template:'

'+b(o.lines[l].columns[0].control)+\"


\"},n={className:\"col-xs-6\",template:'

'+b(o.lines[l].columns[1].control)+\"


\"},s={className:\"col-xs-6\",type:\"undefined\"!=typeof o.lines[l].columns[0].control.type?\"none\"===o.lines[l].columns[0].control.type?\"blank\":o.lines[l].columns[0].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};\"datepicker\"===o.lines[l].columns[0].control.type&&i(s,o,l);var a={className:\"col-xs-6\",type:\"undefined\"!=typeof o.lines[l].columns[1].control.type?\"none\"===o.lines[l].columns[1].control.type?\"blank\":o.lines[l].columns[1].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[1].control.key?o.lines[l].columns[1].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[1].control),label:c(o.lines[l].columns[1].control),required:f(o.lines[l].columns[1].control),placeholder:y(o.lines[l].columns[1].control),description:b(o.lines[l].columns[1].control),options:v(o.lines[l].columns[1].control)},expressionProperties:p(o.lines[l].columns[1].control),validators:u(o.lines[l].columns[1].control),validation:m(o.lines[l].columns[1].control)};\"datepicker\"===o.lines[l].columns[1].control.type&&i(a,o,l);var r=[];r.push(\"header\"===o.lines[l].columns[0].control.type?t:s),r.push(\"header\"===o.lines[l].columns[1].control.type?n:a),e.push({className:\"row\",fieldGroup:r})}function r(e,o,l){var t={className:\"col-xs-4\",template:'

'+b(o.lines[l].columns[0].control)+\"


\"},n={className:\"col-xs-4\",template:'

'+b(o.lines[l].columns[1].control)+\"


\"},s={className:\"col-xs-4\",template:'

'+b(o.lines[l].columns[2].control)+\"


\"},a={className:\"col-xs-4\",type:\"undefined\"!=typeof o.lines[l].columns[0].control.type?\"none\"===o.lines[l].columns[0].control.type?\"blank\":o.lines[l].columns[0].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};\"datepicker\"===o.lines[l].columns[0].control.type&&i(a,o,l);var r={className:\"col-xs-4\",type:\"undefined\"!=typeof o.lines[l].columns[1].control.type?\"none\"===o.lines[l].columns[1].control.type?\"blank\":o.lines[l].columns[1].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[1].control.key?o.lines[l].columns[1].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[1].control),label:c(o.lines[l].columns[1].control),required:f(o.lines[l].columns[1].control),placeholder:y(o.lines[l].columns[1].control),description:b(o.lines[l].columns[1].control),options:v(o.lines[l].columns[1].control)},expressionProperties:p(o.lines[l].columns[1].control),validators:u(o.lines[l].columns[1].control),validation:m(o.lines[l].columns[1].control)};\"datepicker\"===o.lines[l].columns[1].control.type&&i(r,o,l);var d={className:\"col-xs-4\",type:\"undefined\"!=typeof o.lines[l].columns[2].control.type?\"none\"===o.lines[l].columns[2].control.type?\"blank\":o.lines[l].columns[2].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[2].control.key?o.lines[l].columns[2].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[2].control),label:c(o.lines[l].columns[2].control),required:f(o.lines[l].columns[2].control),placeholder:y(o.lines[l].columns[2].control),description:b(o.lines[l].columns[2].control),options:v(o.lines[l].columns[2].control)},expressionProperties:p(o.lines[l].columns[2].control),validators:u(o.lines[l].columns[2].control),validation:m(o.lines[l].columns[2].control)};\"datepicker\"===o.lines[l].columns[2].control.type&&i(d,o,l);var h=[];h.push(\"header\"===o.lines[l].columns[0].control.type?t:a),h.push(\"header\"===o.lines[l].columns[1].control.type?n:r),h.push(\"header\"===o.lines[l].columns[2].control.type?s:d),e.push({className:\"row\",fieldGroup:h})}function c(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.label?e.templateOptions.label:\"\"}function d(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.datepickerPopup?e.templateOptions.datepickerPopup:\"\"}function p(e){return\"undefined\"!=typeof e.formlyExpressionProperties?angular.copy(e.formlyExpressionProperties):{}}function u(e){return\"undefined\"!=typeof e.formlyValidators?angular.copy(e.formlyValidators):{}}function m(e){return\"undefined\"!=typeof e.formlyValidation?angular.copy(e.formlyValidation):{}}function f(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.required?e.templateOptions.required:\"\"}function v(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.options?e.templateOptions.options:\"\"}function g(e){return\"undefined\"!=typeof e.subtype?e.subtype:\"\"}function y(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.placeholder?e.templateOptions.placeholder:\"\"}function b(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.description?e.templateOptions.description:\"\"}function h(e){var o={};return angular.copy(o,e),!0}function w(e,o){var l={noError:!1,title:\"\",Message:\"\"};return l.noError=!1,l.title=e,l.Message=o,l}function x(e,o){var l={noError:!1,title:\"\",Message:\"\"};return l.noError=!0,l.title=e,l.Message=o,l}var C={initConfigurationEditFromScratch:e,bindConfigurationLines:o,applyConfigurationToformlyModel:l};return C}angular.module(\"ngwfApp.services.formFieldManage\",[]).factory(\"formFieldManage\",e),e.$inject=[]}(),function(){function e(){function e(){return\"selectOptionManage is here.\"}function o(e){p(e)}function l(e,o){for(var l=e.rows.length-1;l>=0;l--)if(e.rows[l].option===o)return!1;return!0}function t(e){return\"\"!==e?!0:!1}function n(e,o){var l={resultFlag:!1,details:\"\"},t=d(e,o);if(t.resultFlag===!0){var n={option:o,order:e.rows.length};return e.rows.push(n),l.resultFlag=!0,l.details=\"\",l}return angular.copy(t,l),l}function i(e,o){var l={resultFlag:!1,details:\"\"},t=d(e,o);if(t.resultFlag===!0){var n={option:o,order:e.rows.length};return e.rows.push(n),l.resultFlag=!0,l.details=\"\",l}return angular.copy(t,l),l}function s(e,o,l){var t={resultFlag:!1,details:\"\"},n=d(e,o);if(n.resultFlag===!0){var i={option:o,group:l,order:e.rows.length};return e.rows.push(i),t.resultFlag=!0,t.details=\"\",t}return angular.copy(n,t),t}function a(e,o){var l={resultFlag:!1,details:\"\"};return-1!==o?(e.rows.splice(o,1),l.resultFlag=!0,l.details=\"\",l):(l.resultFlag=!1,l.details=\"Option index not valid\",l)}function r(e,o){var l={resultFlag:!1,details:\"\"};if(o>-1){if(o>0){if(e.rows[o-1]){var t=e.rows[o];return e.rows.splice(o,1),e.rows.splice(o-1,0,t),l.resultFlag=!0,l.details=\"\",l}return l.resultFlag=!1,l.details=\"Can't retreive option from option index\",l}return l.resultFlag=!0,l.details=\"\",l}return l.resultFlag=!1,l.details=\"Option index not valid\",l}function c(e,o){var l={resultFlag:!1,details:\"\"};if(o>-1){if(o=0;t--)if(e.rows[t].option===o)return l.resultFlag=!1,l.details=\"Entered option is not unique\",l;return l.resultFlag=!0,l.details=\"\",l}return l.resultFlag=!1,l.details=\"Entered option is empty\",l}function p(e){var o={rows:[]};angular.copy(o,e)}var u={testMe:e,initModel:o,isOptionUnique:l,isOptionValidFormat:t,addNewOptionRadio:n,addNewOptionBasicSelect:i,addNewOptionGroupedSelect:s,removeOption:a,upthisOption:r,downthisOption:c};return u}angular.module(\"ngwfApp.services.selectOptionManage\",[]).factory(\"selectOptionManage\",e),e.$inject=[]}(),function(){angular.module(\"ngwfApp.services\",[\"ngwfApp.services.formFieldManage\",\"ngwfApp.services.selectOptionManage\",\"ngwfApp.services.ngwfEditCtrlControllerModalProxy\"])}(),function(){angular.module(\"ngwfApp.filters\",[])}()}(this);\n//# sourceMappingURL=eda.stepway.min.js.map"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/dist/public/lib/js/angular-animate.min.js b/dist/public/lib/js/angular-animate.min.js index 34e732d4..71ae4d93 100644 --- a/dist/public/lib/js/angular-animate.min.js +++ b/dist/public/lib/js/angular-animate.min.js @@ -1,33 +1,56 @@ /* - AngularJS v1.3.16 - (c) 2010-2014 Google, Inc. http://angularjs.org + AngularJS v1.4.5 + (c) 2010-2015 Google, Inc. http://angularjs.org License: MIT */ -(function(N,f,W){'use strict';f.module("ngAnimate",["ng"]).directive("ngAnimateChildren",function(){return function(X,r,g){g=g.ngAnimateChildren;f.isString(g)&&0===g.length?r.data("$$ngAnimateChildren",!0):X.$watch(g,function(f){r.data("$$ngAnimateChildren",!!f)})}}).factory("$$animateReflow",["$$rAF","$document",function(f,r){var g=r[0].body;return function(r){return f(function(){r(g.offsetWidth)})}}]).config(["$provide","$animateProvider",function(X,r){function g(f){for(var n=0;n=B&&b>=y&&c()}var m=g(e);a=e.data("$$ngAnimateCSS3Data");if(-1!=m.getAttribute("class").indexOf(b)&&a){var k= -"",t="";n(b.split(" "),function(a,b){var e=(0=a&&(a=h,h=0,b.push(e),e=[]);e.push(l.fn); +l.children.forEach(function(a){h++;c.push(a)});a--}e.length&&b.push(e);return b}(c)}var O=[],x=Q(a);return function(t,z,E){function h(a){a=a.hasAttribute("ng-animate-ref")?[a]:a.querySelectorAll("[ng-animate-ref]");var b=[];q(a,function(a){var c=a.getAttribute("ng-animate-ref");c&&c.length&&b.push(a)});return b}function S(a){var b=[],c={};q(a,function(a,g){var d=G(a.element),f=0<=["enter","move"].indexOf(a.event),d=a.structural?h(d):[];if(d.length){var e=f?"to":"from";q(d,function(a){var b=a.getAttribute("ng-animate-ref"); +c[b]=c[b]||{};c[b][e]={animationID:g,element:I(a)}})}else b.push(a)});var d={},f={};q(c,function(c,e){var h=c.from,r=c.to;if(h&&r){var J=a[h.animationID],k=a[r.animationID],B=h.animationID.toString();if(!f[B]){var l=f[B]={structural:!0,beforeStart:function(){J.beforeStart();k.beforeStart()},close:function(){J.close();k.close()},classes:u(J.classes,k.classes),from:J,to:k,anchors:[]};l.classes.length?b.push(l):(b.push(J),b.push(k))}f[B].anchors.push({out:h.element,"in":r.element})}else h=h?h.animationID: +r.animationID,r=h.toString(),d[r]||(d[r]=!0,b.push(a[h]))});return b}function u(a,b){a=a.split(" ");b=b.split(" ");for(var c=[],d=0;dC.expectedEndTime)?v.cancel(C.timer):p.push(r)}z&&(u=v(d,u,!1),p[0]={timer:u,expectedEndTime:k},p.push(r),a.data("$$animateCss",p));a.on(m.join(" "),l);xa(a,c)}} +function d(){var b=a.data("$$animateCss");if(b){for(var c=1;c=M&&b>=K&&(S=!0,r())}if(!s)if(g.parentNode){var H,m=[],k=function(a){if(S)z&&a&&(z=!1,r());else if(z=!a,D.animationDuration)if(a=na(g,z),z)w.push(a);else{var b=w,c=b.indexOf(a);0<=a&&b.splice(c,1)}},p=0").html(a);f.forEach(a.children(), -function(a){a=f.element(a);h?h.after(a):d.prepend(a);h=a;q(a)(b)});c.renderMessages(e,g)})}}}]).directive("ngMessage",["$animate",function(f){return{require:"^ngMessages",transclude:"element",terminal:!0,restrict:"AE",link:function(k,l,b,d,a){for(var c,g,e=l[0],n=e.parentNode,h=0,p=0;h (https://github.com/mgcrea) * @license MIT License, http://www.opensource.org/licenses/MIT */ -!function(e,t,n){'use strict';function a(e,n,a,o,i,r){function s(e,n){return angular.element((n||t).querySelectorAll(e))}function l(e){return u[e]?u[e]:u[e]=n.get(e,{cache:r}).then(function(e){return e.data})}this.compile=function(t){t.template&&/\.html$/.test(t.template)&&(console.warn('Deprecated use of `template` option to pass a file. Please use the `templateUrl` option instead.'),t.templateUrl=t.template,t.template='');var n=t.templateUrl,r=t.template||'',u=t.controller,c=t.controllerAs,d=angular.copy(t.resolve||{}),f=angular.copy(t.locals||{}),p=t.transformTemplate||angular.identity,g=t.bindToController;return angular.forEach(d,function(e,t){d[t]=angular.isString(e)?a.get(e):a.invoke(e)}),angular.extend(d,f),d.$template=n?l(n):e.when(r),t.contentTemplate&&(d.$template=e.all([d.$template,l(t.contentTemplate)]).then(function(e){var n=angular.element(e[0]),a=s('[ng-bind="content"]',n[0]).removeAttr('ng-bind').html(e[1]);return t.templateUrl||a.next().remove(),n[0].outerHTML})),e.all(d).then(function(e){var n=p(e.$template);t.html&&(n=n.replace(/ng-bind="/gi,'ng-bind-html="'));var a=angular.element('
').html(n.trim()).contents(),r=o(a);return{locals:e,element:a,link:function(t){if(e.$scope=t,u){var n=i(u,e,!0);g&&angular.extend(n.instance,e);var o=angular.isObject(n)?n:n();a.data('$ngControllerController',o),a.children().data('$ngControllerController',o),c&&(t[c]=o)}return r.apply(null,arguments)}}})};var u={}}angular.module('mgcrea.ngStrap',['mgcrea.ngStrap.modal','mgcrea.ngStrap.aside','mgcrea.ngStrap.alert','mgcrea.ngStrap.button','mgcrea.ngStrap.select','mgcrea.ngStrap.datepicker','mgcrea.ngStrap.timepicker','mgcrea.ngStrap.navbar','mgcrea.ngStrap.tooltip','mgcrea.ngStrap.popover','mgcrea.ngStrap.dropdown','mgcrea.ngStrap.typeahead','mgcrea.ngStrap.scrollspy','mgcrea.ngStrap.affix','mgcrea.ngStrap.tab','mgcrea.ngStrap.collapse']),angular.module('mgcrea.ngStrap.affix',['mgcrea.ngStrap.helpers.dimensions','mgcrea.ngStrap.helpers.debounce']).provider('$affix',function(){var e=this.defaults={offsetTop:'auto',inlineStyles:!0};this.$get=['$window','debounce','dimensions',function(t,n,a){function o(o,s){function l(e,t,n){var a=u(),o=c();return v>=a?'top':null!==e&&a+e<=t.top?'middle':null!==w&&t.top+n+$>=o-w?'bottom':'middle'}function u(){return p[0]===t?t.pageYOffset:p[0].scrollTop}function c(){return p[0]===t?t.document.body.scrollHeight:p[0].scrollHeight}var d={},f=angular.extend({},e,s),p=f.target,g='affix affix-top affix-bottom',m=!1,$=0,h=0,v=0,w=0,y=null,b=null,D=o.parent();if(f.offsetParent)if(f.offsetParent.match(/^\d+$/))for(var k=0;k<1*f.offsetParent-1;k++)D=D.parent();else D=angular.element(f.offsetParent);return d.init=function(){this.$parseOffsets(),h=a.offset(o[0]).top+$,m=!o[0].style.width,p.on('scroll',this.checkPosition),p.on('click',this.checkPositionWithEventLoop),r.on('resize',this.$debouncedOnResize),this.checkPosition(),this.checkPositionWithEventLoop()},d.destroy=function(){p.off('scroll',this.checkPosition),p.off('click',this.checkPositionWithEventLoop),r.off('resize',this.$debouncedOnResize)},d.checkPositionWithEventLoop=function(){setTimeout(d.checkPosition,1)},d.checkPosition=function(){var e=u(),t=a.offset(o[0]),n=a.height(o[0]),r=l(b,t,n);y!==r&&(y=r,o.removeClass(g).addClass('affix'+('middle'!==r?'-'+r:'')),'top'===r?(b=null,m&&o.css('width',''),f.inlineStyles&&(o.css('position',f.offsetParent?'':'relative'),o.css('top',''))):'bottom'===r?(b=f.offsetUnpin?-(1*f.offsetUnpin):t.top-e,m&&o.css('width',''),f.inlineStyles&&(o.css('position',f.offsetParent?'':'relative'),o.css('top',f.offsetParent?'':i[0].offsetHeight-w-n-h+'px'))):(b=null,m&&o.css('width',o[0].offsetWidth+'px'),f.inlineStyles&&(o.css('position','fixed'),o.css('top',$+'px'))))},d.$onResize=function(){d.$parseOffsets(),d.checkPosition()},d.$debouncedOnResize=n(d.$onResize,50),d.$parseOffsets=function(){var e=o.css('position');f.inlineStyles&&o.css('position',f.offsetParent?'':'relative'),f.offsetTop&&('auto'===f.offsetTop&&(f.offsetTop='+0'),f.offsetTop.match(/^[-+]\d+$/)?($=1*-f.offsetTop,v=f.offsetParent?a.offset(D[0]).top+1*f.offsetTop:a.offset(o[0]).top-a.css(o[0],'marginTop',!0)+1*f.offsetTop):v=1*f.offsetTop),f.offsetBottom&&(w=f.offsetParent&&f.offsetBottom.match(/^[-+]\d+$/)?c()-(a.offset(D[0]).top+a.height(D[0]))+1*f.offsetBottom+1:1*f.offsetBottom),f.inlineStyles&&o.css('position',e)},d.init(),d}var i=angular.element(t.document.body),r=angular.element(t);return o}]}).directive('bsAffix',['$affix','$window',function(e,t){return{restrict:'EAC',require:'^?bsAffixTarget',link:function(n,a,o,i){var r={scope:n,target:i?i.$element:angular.element(t)};angular.forEach(['offsetTop','offsetBottom','offsetParent','offsetUnpin','inlineStyles'],function(e){if(angular.isDefined(o[e])){var t=o[e];/true/i.test(t)&&(t=!0),/false/i.test(t)&&(t=!1),r[e]=t}});var s=e(a,r);n.$on('$destroy',function(){s&&s.destroy(),r=null,s=null})}}}]).directive('bsAffixTarget',function(){return{controller:['$element',function(e){this.$element=e}]}}),angular.module('mgcrea.ngStrap.alert',['mgcrea.ngStrap.modal']).provider('$alert',function(){var e=this.defaults={animation:'am-fade',prefixClass:'alert',prefixEvent:'alert',placement:null,templateUrl:'alert/alert.tpl.html',container:!1,element:null,backdrop:!1,keyboard:!0,show:!0,duration:!1,type:!1,dismissable:!0};this.$get=['$modal','$timeout',function(t,n){function a(a){var o={},i=angular.extend({},e,a);o=t(i),o.$scope.dismissable=!!i.dismissable,i.type&&(o.$scope.type=i.type);var r=o.show;return i.duration&&(o.show=function(){r(),n(function(){o.hide()},1e3*i.duration)}),o}return a}]}).directive('bsAlert',['$window','$sce','$alert',function(e,t,n){e.requestAnimationFrame||e.setTimeout;return{restrict:'EAC',scope:!0,link:function(e,a,o,i){var r={scope:e,element:a,show:!1};angular.forEach(['template','templateUrl','controller','controllerAs','placement','keyboard','html','container','animation','duration','dismissable'],function(e){angular.isDefined(o[e])&&(r[e]=o[e])});var s=/^(false|0|)$/i;angular.forEach(['keyboard','html','container','dismissable'],function(e){angular.isDefined(o[e])&&s.test(o[e])&&(r[e]=!1)}),e.hasOwnProperty('title')||(e.title=''),angular.forEach(['title','content','type'],function(n){o[n]&&o.$observe(n,function(a,o){e[n]=t.trustAsHtml(a)})}),o.bsAlert&&e.$watch(o.bsAlert,function(t,n){angular.isObject(t)?angular.extend(e,t):e.content=t},!0);var l=n(r);a.on(o.trigger||'click',l.toggle),e.$on('$destroy',function(){l&&l.destroy(),r=null,l=null})}}}]),angular.module('mgcrea.ngStrap.aside',['mgcrea.ngStrap.modal']).provider('$aside',function(){var e=this.defaults={animation:'am-fade-and-slide-right',prefixClass:'aside',prefixEvent:'aside',placement:'right',templateUrl:'aside/aside.tpl.html',contentTemplate:!1,container:!1,element:null,backdrop:!0,keyboard:!0,html:!1,show:!0};this.$get=['$modal',function(t){function n(n){var a={},o=angular.extend({},e,n);return a=t(o)}return n}]}).directive('bsAside',['$window','$sce','$aside',function(e,t,n){e.requestAnimationFrame||e.setTimeout;return{restrict:'EAC',scope:!0,link:function(e,a,o,i){var r={scope:e,element:a,show:!1};angular.forEach(['template','templateUrl','controller','controllerAs','contentTemplate','placement','backdrop','keyboard','html','container','animation'],function(e){angular.isDefined(o[e])&&(r[e]=o[e])});var s=/^(false|0|)$/i;angular.forEach(['backdrop','keyboard','html','container'],function(e){angular.isDefined(o[e])&&s.test(o[e])&&(r[e]=!1)}),angular.forEach(['title','content'],function(n){o[n]&&o.$observe(n,function(a,o){e[n]=t.trustAsHtml(a)})}),o.bsAside&&e.$watch(o.bsAside,function(t,n){angular.isObject(t)?angular.extend(e,t):e.content=t},!0);var l=n(r);a.on(o.trigger||'click',l.toggle),e.$on('$destroy',function(){l&&l.destroy(),r=null,l=null})}}}]),angular.module('mgcrea.ngStrap.button',[]).provider('$button',function(){var e=this.defaults={activeClass:'active',toggleEvent:'click'};this.$get=function(){return{defaults:e}}}).directive('bsCheckboxGroup',function(){return{restrict:'A',require:'ngModel',compile:function(e,t){e.attr('data-toggle','buttons'),e.removeAttr('ng-model');var n=e[0].querySelectorAll('input[type="checkbox"]');angular.forEach(n,function(e){var n=angular.element(e);n.attr('bs-checkbox',''),n.attr('ng-model',t.ngModel+'.'+n.attr('value'))})}}}).directive('bsCheckbox',['$button','$$rAF',function(e,t){var n=e.defaults,a=/^(true|false|\d+)$/;return{restrict:'A',require:'ngModel',link:function(e,o,i,r){var s=n,l='INPUT'===o[0].nodeName,u=l?o.parent():o,c=angular.isDefined(i.trueValue)?i.trueValue:!0;a.test(i.trueValue)&&(c=e.$eval(i.trueValue));var d=angular.isDefined(i.falseValue)?i.falseValue:!1;a.test(i.falseValue)&&(d=e.$eval(i.falseValue));var f='boolean'!=typeof c||'boolean'!=typeof d;f&&(r.$parsers.push(function(e){return e?c:d}),r.$formatters.push(function(e){return angular.equals(e,c)}),e.$watch(i.ngModel,function(e,t){r.$render()})),r.$render=function(){var e=angular.equals(r.$modelValue,c);t(function(){l&&(o[0].checked=e),u.toggleClass(s.activeClass,e)})},o.bind(s.toggleEvent,function(){e.$apply(function(){l||r.$setViewValue(!u.hasClass('active')),f||r.$render()})})}}}]).directive('bsRadioGroup',function(){return{restrict:'A',require:'ngModel',compile:function(e,t){e.attr('data-toggle','buttons'),e.removeAttr('ng-model');var n=e[0].querySelectorAll('input[type="radio"]');angular.forEach(n,function(e){angular.element(e).attr('bs-radio',''),angular.element(e).attr('ng-model',t.ngModel)})}}}).directive('bsRadio',['$button','$$rAF',function(e,t){var n=e.defaults,a=/^(true|false|\d+)$/;return{restrict:'A',require:'ngModel',link:function(e,o,i,r){var s,l=n,u='INPUT'===o[0].nodeName,c=u?o.parent():o;i.$observe('value',function(t){s=a.test(t)?e.$eval(t):t,r.$render()}),r.$render=function(){var e=angular.equals(r.$modelValue,s);t(function(){u&&(o[0].checked=e),c.toggleClass(l.activeClass,e)})},o.bind(l.toggleEvent,function(){e.$apply(function(){r.$setViewValue(s),r.$render()})})}}}]),angular.module('mgcrea.ngStrap.collapse',[]).provider('$collapse',function(){var e=this.defaults={animation:'am-collapse',disallowToggle:!1,activeClass:'in',startCollapsed:!1,allowMultiple:!1},t=this.controller=function(t,n,a){function o(e){for(var t=l.$targets.$active,n=0;nt;t++)angular.forEach(g.rows[t],u.$setDisabledEl)},u.select=function(e,t){angular.isDate(n.$dateValue)||(n.$dateValue=new Date(e)),!g.$mode||t?(n.$setViewValue(angular.copy(e)),n.$render(),p.autoclose&&!t&&l(function(){u.hide(!0)})):(angular.extend($,{year:e.getFullYear(),month:e.getMonth(),date:e.getDate()}),u.setMode(g.$mode-1),u.$build())},u.setMode=function(e){g.$mode=e,h=u.$views[g.$mode],u.$build()},u.$build=function(e){e===!0&&h.built||(e!==!1||h.built)&&h.build.call(h)},u.$updateSelected=function(){for(var e=0,t=g.rows.length;t>e;e++)angular.forEach(g.rows[e],o)},u.$isSelected=function(e){return h.isSelected(e)},u.$setDisabledEl=function(e){e.disabled=h.isDisabled(e.date)},u.$selectPane=function(e){var t=h.steps,n=new Date(Date.UTC($.year+(t.year||0)*e,$.month+(t.month||0)*e,1));angular.extend($,{year:n.getUTCFullYear(),month:n.getUTCMonth(),date:n.getUTCDate()}),u.$build()},u.$onMouseDown=function(e){if(e.preventDefault(),e.stopPropagation(),d){var t=angular.element(e.target);'button'!==t[0].nodeName.toLowerCase()&&(t=t.parent()),t.triggerHandler('click')}},u.$onKeyDown=function(e){if(/(38|37|39|40|13)/.test(e.keyCode)&&!e.shiftKey&&!e.altKey){if(e.preventDefault(),e.stopPropagation(),13===e.keyCode)return g.$mode?g.$apply(function(){u.setMode(g.$mode-1)}):u.hide(!0);h.onKeyDown(e),f.$digest()}};var v=u.init;u.init=function(){return c&&p.useNative?(t.prop('type','date'),void t.css('-webkit-appearance','textfield')):(d&&(t.prop('type','text'),t.attr('readonly','true'),t.on('click',i)),void v())};var w=u.destroy;u.destroy=function(){c&&p.useNative&&t.off('click',i),w()};var y=u.show;u.show=function(){y(),l(function(){u.$isShown&&(u.$element.on(d?'touchstart':'mousedown',u.$onMouseDown),p.keyboard&&t.on('keydown',u.$onKeyDown))},0,!1)};var b=u.hide;return u.hide=function(e){u.$isShown&&(u.$element.off(d?'touchstart':'mousedown',u.$onMouseDown),p.keyboard&&t.off('keydown',u.$onKeyDown),b(e))},u}var c=(angular.element(t.document.body),/(ip(a|o)d|iphone|android)/gi.test(t.navigator.userAgent)),d='createTouch'in t.document&&c;return e.lang||(e.lang=i.getDefaultLocale()),u.defaults=e,u}]}).directive('bsDatepicker',['$window','$parse','$q','$dateFormatter','$dateParser','$datepicker',function(e,t,n,a,o,i){var r=(i.defaults,/(ip(a|o)d|iphone|android)/gi.test(e.navigator.userAgent));return{restrict:'EAC',require:'ngModel',link:function(e,t,n,s){function l(e){return e&&e.length?e:null}function u(e){if(angular.isDate(e)){var t=isNaN(p.$options.minDate)||e.getTime()>=p.$options.minDate,n=isNaN(p.$options.maxDate)||e.getTime()<=p.$options.maxDate,a=t&&n;s.$setValidity('date',a),s.$setValidity('min',t),s.$setValidity('max',n),a&&(s.$dateValue=e)}}function c(){return!s.$dateValue||isNaN(s.$dateValue.getTime())?'':m(s.$dateValue,d.dateFormat)}var d={scope:e};angular.forEach(['template','templateUrl','controller','controllerAs','placement','container','delay','trigger','html','animation','autoclose','dateType','dateFormat','timezone','modelDateFormat','dayFormat','strictFormat','startWeek','startDate','useNative','lang','startView','minView','iconLeft','iconRight','daysOfWeekDisabled','id','prefixClass','prefixEvent'],function(e){angular.isDefined(n[e])&&(d[e]=n[e])});var f=/^(false|0|)$/i;angular.forEach(['html','container','autoclose','useNative'],function(e){angular.isDefined(n[e])&&f.test(n[e])&&(d[e]=!1)}),n.bsShow&&e.$watch(n.bsShow,function(e,t){p&&angular.isDefined(e)&&(angular.isString(e)&&(e=!!e.match(/true|,?(datepicker),?/i)),e===!0?p.show():p.hide())});var p=i(t,s,d);d=p.$options,r&&d.useNative&&(d.dateFormat='yyyy-MM-dd');var g=d.lang,m=function(e,t){return a.formatDate(e,t,g)},$=o({format:d.dateFormat,lang:g,strict:d.strictFormat});angular.forEach(['minDate','maxDate'],function(e){angular.isDefined(n[e])&&n.$observe(e,function(t){p.$options[e]=$.getDateForAttribute(e,t),!isNaN(p.$options[e])&&p.$build(!1),u(s.$dateValue)})}),e.$watch(n.ngModel,function(e,t){p.update(s.$dateValue)},!0),angular.isDefined(n.disabledDates)&&e.$watch(n.disabledDates,function(e,t){e=l(e),t=l(t),e&&p.updateDisabledDates(e)}),s.$parsers.unshift(function(e){var t;if(!e)return s.$setValidity('date',!0),null;var n=$.parse(e,s.$dateValue);return!n||isNaN(n.getTime())?void s.$setValidity('date',!1):(u(n),'string'===d.dateType?(t=$.timezoneOffsetAdjust(n,d.timezone,!0),m(t,d.modelDateFormat||d.dateFormat)):(t=$.timezoneOffsetAdjust(s.$dateValue,d.timezone,!0),'number'===d.dateType?t.getTime():'unix'===d.dateType?t.getTime()/1e3:'iso'===d.dateType?t.toISOString():new Date(t)))}),s.$formatters.push(function(e){var t;return t=angular.isUndefined(e)||null===e?0/0:angular.isDate(e)?e:'string'===d.dateType?$.parse(e,null,d.modelDateFormat):new Date('unix'===d.dateType?1e3*e:e),s.$dateValue=$.timezoneOffsetAdjust(t,d.timezone),c()}),s.$render=function(){t.val(c())},e.$on('$destroy',function(){p&&p.destroy(),d=null,p=null})}}}]).provider('datepickerViews',function(){function e(e,t){for(var n=[];e.length>0;)n.push(e.splice(0,t));return n}function t(e,t){return(e%t+t)%t}this.defaults={dayFormat:'dd',daySplit:7};this.$get=['$dateFormatter','$dateParser','$sce',function(n,a,o){return function(i){var r=i.$scope,s=i.$options,l=s.lang,u=function(e,t){return n.formatDate(e,t,l)},c=a({format:s.dateFormat,lang:l,strict:s.strictFormat}),d=n.weekdaysShort(l),f=d.slice(s.startWeek).concat(d.slice(0,s.startWeek)),p=o.trustAsHtml(''+f.join('')+''),g=i.$date||(s.startDate?c.getDateForAttribute('startDate',s.startDate):new Date),m={year:g.getFullYear(),month:g.getMonth(),date:g.getDate()},$=[{format:s.dayFormat,split:7,steps:{month:1},update:function(e,t){!this.built||t||e.getFullYear()!==m.year||e.getMonth()!==m.month?(angular.extend(m,{year:i.$date.getFullYear(),month:i.$date.getMonth(),date:i.$date.getDate()}),i.$build()):(e.getDate()!==m.date||1===e.getDate())&&(m.date=i.$date.getDate(),i.$updateSelected())},build:function(){var n=new Date(m.year,m.month,1),a=n.getTimezoneOffset(),o=new Date(+n-864e5*t(n.getDay()-s.startWeek,7)),l=o.getTimezoneOffset(),d=c.timezoneOffsetAdjust(new Date,s.timezone).toDateString();l!==a&&(o=new Date(+o+6e4*(l-a)));for(var f,g=[],$=0;42>$;$++)f=c.daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth(),o.getDate()+$)),g.push({date:f,isToday:f.toDateString()===d,label:u(f,this.format),selected:i.$date&&this.isSelected(f),muted:f.getMonth()!==m.month,disabled:this.isDisabled(f)});r.title=u(n,s.monthTitleFormat),r.showLabels=!0,r.labels=p,r.rows=e(g,this.split),this.built=!0},isSelected:function(e){return i.$date&&e.getFullYear()===i.$date.getFullYear()&&e.getMonth()===i.$date.getMonth()&&e.getDate()===i.$date.getDate()},isDisabled:function(e){var t=e.getTime();if(ts.maxDate)return!0;if(-1!==s.daysOfWeekDisabled.indexOf(e.getDay()))return!0;if(s.disabledDateRanges)for(var n=0;n=s.disabledDateRanges[n].start&&t<=s.disabledDateRanges[n].end)return!0;return!1},onKeyDown:function(e){if(i.$date){var t,n=i.$date.getTime();37===e.keyCode?t=new Date(n-864e5):38===e.keyCode?t=new Date(n-6048e5):39===e.keyCode?t=new Date(n+864e5):40===e.keyCode&&(t=new Date(n+6048e5)),this.isDisabled(t)||i.select(t,!0)}}},{name:'month',format:s.monthFormat,split:4,steps:{year:1},update:function(e,t){this.built&&e.getFullYear()===m.year?e.getMonth()!==m.month&&(angular.extend(m,{month:i.$date.getMonth(),date:i.$date.getDate()}),i.$updateSelected()):(angular.extend(m,{year:i.$date.getFullYear(),month:i.$date.getMonth(),date:i.$date.getDate()}),i.$build())},build:function(){for(var t,n=(new Date(m.year,0,1),[]),a=0;12>a;a++)t=new Date(m.year,a,1),n.push({date:t,label:u(t,this.format),selected:i.$isSelected(t),disabled:this.isDisabled(t)});r.title=u(t,s.yearTitleFormat),r.showLabels=!1,r.rows=e(n,this.split),this.built=!0},isSelected:function(e){return i.$date&&e.getFullYear()===i.$date.getFullYear()&&e.getMonth()===i.$date.getMonth()},isDisabled:function(e){var t=+new Date(e.getFullYear(),e.getMonth()+1,0);return ts.maxDate},onKeyDown:function(e){if(i.$date){var t=i.$date.getMonth(),n=new Date(i.$date);37===e.keyCode?n.setMonth(t-1):38===e.keyCode?n.setMonth(t-4):39===e.keyCode?n.setMonth(t+1):40===e.keyCode&&n.setMonth(t+4),this.isDisabled(n)||i.select(n,!0)}}},{name:'year',format:s.yearFormat,split:4,steps:{year:12},update:function(e,t){!this.built||t||parseInt(e.getFullYear()/20,10)!==parseInt(m.year/20,10)?(angular.extend(m,{year:i.$date.getFullYear(),month:i.$date.getMonth(),date:i.$date.getDate()}),i.$build()):e.getFullYear()!==m.year&&(angular.extend(m,{year:i.$date.getFullYear(),month:i.$date.getMonth(),date:i.$date.getDate()}),i.$updateSelected())},build:function(){for(var t,n=m.year-m.year%(3*this.split),a=[],o=0;12>o;o++)t=new Date(n+o,0,1),a.push({date:t,label:u(t,this.format),selected:i.$isSelected(t),disabled:this.isDisabled(t)});r.title=a[0].label+'-'+a[a.length-1].label,r.showLabels=!1,r.rows=e(a,this.split),this.built=!0},isSelected:function(e){return i.$date&&e.getFullYear()===i.$date.getFullYear()},isDisabled:function(e){var t=+new Date(e.getFullYear()+1,0,0);return ts.maxDate},onKeyDown:function(e){if(i.$date){var t=i.$date.getFullYear(),n=new Date(i.$date);37===e.keyCode?n.setYear(t-1):38===e.keyCode?n.setYear(t-4):39===e.keyCode?n.setYear(t+1):40===e.keyCode&&n.setYear(t+4),this.isDisabled(n)||i.select(n,!0)}}}];return{views:s.minView?Array.prototype.slice.call($,s.minView):$,viewDate:m}}}]}),angular.module('mgcrea.ngStrap.dropdown',['mgcrea.ngStrap.tooltip']).provider('$dropdown',function(){var e=this.defaults={animation:'am-fade',prefixClass:'dropdown',prefixEvent:'dropdown',placement:'bottom-left',templateUrl:'dropdown/dropdown.tpl.html',trigger:'click',container:!1,keyboard:!0,html:!1,delay:0};this.$get=['$window','$rootScope','$tooltip','$timeout',function(t,n,a,o){function i(t,i){function l(e){return e.target!==t[0]?e.target!==t[0]&&u.hide():void 0}{var u={},c=angular.extend({},e,i);u.$scope=c.scope&&c.scope.$new()||n.$new()}u=a(t,c);var d=t.parent();u.$onKeyDown=function(e){if(/(38|40)/.test(e.keyCode)){e.preventDefault(),e.stopPropagation();var t=angular.element(u.$element[0].querySelectorAll('li:not(.divider) a'));if(t.length){var n;angular.forEach(t,function(e,t){s&&s.call(e,':focus')&&(n=t)}),38===e.keyCode&&n>0?n--:40===e.keyCode&&no;o++)if(e[o].toLowerCase()===a)return o;return-1}t.prototype.setMilliseconds=function(e){this.milliseconds=e},t.prototype.setSeconds=function(e){this.seconds=e},t.prototype.setMinutes=function(e){this.minutes=e},t.prototype.setHours=function(e){this.hours=e},t.prototype.getHours=function(){return this.hours},t.prototype.setDate=function(e){this.day=e},t.prototype.setMonth=function(e){this.month=e},t.prototype.setFullYear=function(e){this.year=e},t.prototype.fromDate=function(e){return this.year=e.getFullYear(),this.month=e.getMonth(),this.day=e.getDate(),this.hours=e.getHours(),this.minutes=e.getMinutes(),this.seconds=e.getSeconds(),this.milliseconds=e.getMilliseconds(),this},t.prototype.toDate=function(){return new Date(this.year,this.month,this.day,this.hours,this.minutes,this.seconds,this.milliseconds)};var i=t.prototype,r=this.defaults={format:'shortDate',strict:!1};this.$get=['$locale','dateFilter',function(e,s){var l=function(l){function u(e){var t,n=Object.keys(h),a=[],o=[],i=e;for(t=0;t1){var r=i.search(n[t]);e=e.split(n[t]).join(''),h[n[t]]&&(a[r]=h[n[t]])}return angular.forEach(a,function(e){e&&o.push(e)}),o}function c(e){return e.replace(/\//g,'[\\/]').replace('/-/g','[-]').replace(/\./g,'[.]').replace(/\\s/g,'[\\s]')}function d(e){var t,n=Object.keys($),a=e;for(t=0;t=1*e&&2===e.length?2e3+1*e:1*e)}};return m.init=function(){m.$format=e.DATETIME_FORMATS[g.format]||g.format,f=d(m.$format),p=u(m.$format)},m.isValid=function(e){return angular.isDate(e)?!isNaN(e.getTime()):f.test(e)},m.parse=function(n,a,o,i){o&&(o=e.DATETIME_FORMATS[o]||o),angular.isDate(n)&&(n=s(n,o||m.$format,i));var r=o?d(o):f,l=o?u(o):p,c=r.exec(n);if(!c)return!1;for(var g=(new t).fromDate(a&&!isNaN(a.getTime())?a:new Date(1970,0,1,0)),$=0;$').html(n.trim()).contents(),r=o(a);return{locals:e,element:a,link:function(t){if(e.$scope=t,u){var n=i(u,e,!0);g&&angular.extend(n.instance,e);var o=angular.isObject(n)?n:n();a.data('$ngControllerController',o),a.children().data('$ngControllerController',o),c&&(t[c]=o)}return r.apply(null,arguments)}}})};var u={}}angular.module('mgcrea.ngStrap',['mgcrea.ngStrap.modal','mgcrea.ngStrap.aside','mgcrea.ngStrap.alert','mgcrea.ngStrap.button','mgcrea.ngStrap.select','mgcrea.ngStrap.datepicker','mgcrea.ngStrap.timepicker','mgcrea.ngStrap.navbar','mgcrea.ngStrap.tooltip','mgcrea.ngStrap.popover','mgcrea.ngStrap.dropdown','mgcrea.ngStrap.typeahead','mgcrea.ngStrap.scrollspy','mgcrea.ngStrap.affix','mgcrea.ngStrap.tab','mgcrea.ngStrap.collapse']),angular.module('mgcrea.ngStrap.affix',['mgcrea.ngStrap.helpers.dimensions','mgcrea.ngStrap.helpers.debounce']).provider('$affix',function(){var e=this.defaults={offsetTop:'auto',inlineStyles:!0};this.$get=['$window','debounce','dimensions',function(t,n,a){function o(o,s){function l(e,t,n){var a=u(),o=c();return v>=a?'top':null!==e&&a+e<=t.top?'middle':null!==w&&t.top+n+$>=o-w?'bottom':'middle'}function u(){return p[0]===t?t.pageYOffset:p[0].scrollTop}function c(){return p[0]===t?t.document.body.scrollHeight:p[0].scrollHeight}var d={},f=angular.extend({},e,s),p=f.target,g='affix affix-top affix-bottom',m=!1,$=0,h=0,v=0,w=0,y=null,b=null,D=o.parent();if(f.offsetParent)if(f.offsetParent.match(/^\d+$/))for(var k=0;k<1*f.offsetParent-1;k++)D=D.parent();else D=angular.element(f.offsetParent);return d.init=function(){this.$parseOffsets(),h=a.offset(o[0]).top+$,m=!o[0].style.width,p.on('scroll',this.checkPosition),p.on('click',this.checkPositionWithEventLoop),r.on('resize',this.$debouncedOnResize),this.checkPosition(),this.checkPositionWithEventLoop()},d.destroy=function(){p.off('scroll',this.checkPosition),p.off('click',this.checkPositionWithEventLoop),r.off('resize',this.$debouncedOnResize)},d.checkPositionWithEventLoop=function(){setTimeout(d.checkPosition,1)},d.checkPosition=function(){var e=u(),t=a.offset(o[0]),n=a.height(o[0]),r=l(b,t,n);y!==r&&(y=r,o.removeClass(g).addClass('affix'+('middle'!==r?'-'+r:'')),'top'===r?(b=null,m&&o.css('width',''),f.inlineStyles&&(o.css('position',f.offsetParent?'':'relative'),o.css('top',''))):'bottom'===r?(b=f.offsetUnpin?-(1*f.offsetUnpin):t.top-e,m&&o.css('width',''),f.inlineStyles&&(o.css('position',f.offsetParent?'':'relative'),o.css('top',f.offsetParent?'':i[0].offsetHeight-w-n-h+'px'))):(b=null,m&&o.css('width',o[0].offsetWidth+'px'),f.inlineStyles&&(o.css('position','fixed'),o.css('top',$+'px'))))},d.$onResize=function(){d.$parseOffsets(),d.checkPosition()},d.$debouncedOnResize=n(d.$onResize,50),d.$parseOffsets=function(){var e=o.css('position');f.inlineStyles&&o.css('position',f.offsetParent?'':'relative'),f.offsetTop&&('auto'===f.offsetTop&&(f.offsetTop='+0'),f.offsetTop.match(/^[-+]\d+$/)?($=1*-f.offsetTop,v=f.offsetParent?a.offset(D[0]).top+1*f.offsetTop:a.offset(o[0]).top-a.css(o[0],'marginTop',!0)+1*f.offsetTop):v=1*f.offsetTop),f.offsetBottom&&(w=f.offsetParent&&f.offsetBottom.match(/^[-+]\d+$/)?c()-(a.offset(D[0]).top+a.height(D[0]))+1*f.offsetBottom+1:1*f.offsetBottom),f.inlineStyles&&o.css('position',e)},d.init(),d}var i=angular.element(t.document.body),r=angular.element(t);return o}]}).directive('bsAffix',['$affix','$window',function(e,t){return{restrict:'EAC',require:'^?bsAffixTarget',link:function(n,a,o,i){var r={scope:n,target:i?i.$element:angular.element(t)};angular.forEach(['offsetTop','offsetBottom','offsetParent','offsetUnpin','inlineStyles'],function(e){if(angular.isDefined(o[e])){var t=o[e];/true/i.test(t)&&(t=!0),/false/i.test(t)&&(t=!1),r[e]=t}});var s=e(a,r);n.$on('$destroy',function(){s&&s.destroy(),r=null,s=null})}}}]).directive('bsAffixTarget',function(){return{controller:['$element',function(e){this.$element=e}]}}),angular.module('mgcrea.ngStrap.alert',['mgcrea.ngStrap.modal']).provider('$alert',function(){var e=this.defaults={animation:'am-fade',prefixClass:'alert',prefixEvent:'alert',placement:null,templateUrl:'alert/alert.tpl.html',container:!1,element:null,backdrop:!1,keyboard:!0,show:!0,duration:!1,type:!1,dismissable:!0};this.$get=['$modal','$timeout',function(t,n){function a(a){var o={},i=angular.extend({},e,a);o=t(i),o.$scope.dismissable=!!i.dismissable,i.type&&(o.$scope.type=i.type);var r=o.show;return i.duration&&(o.show=function(){r(),n(function(){o.hide()},1e3*i.duration)}),o}return a}]}).directive('bsAlert',['$window','$sce','$alert',function(e,t,n){e.requestAnimationFrame||e.setTimeout;return{restrict:'EAC',scope:!0,link:function(e,a,o,i){var r={scope:e,element:a,show:!1};angular.forEach(['template','templateUrl','controller','controllerAs','placement','keyboard','html','container','animation','duration','dismissable'],function(e){angular.isDefined(o[e])&&(r[e]=o[e])});var s=/^(false|0|)$/i;angular.forEach(['keyboard','html','container','dismissable'],function(e){angular.isDefined(o[e])&&s.test(o[e])&&(r[e]=!1)}),e.hasOwnProperty('title')||(e.title=''),angular.forEach(['title','content','type'],function(n){o[n]&&o.$observe(n,function(a,o){e[n]=t.trustAsHtml(a)})}),o.bsAlert&&e.$watch(o.bsAlert,function(t,n){angular.isObject(t)?angular.extend(e,t):e.content=t},!0);var l=n(r);a.on(o.trigger||'click',l.toggle),e.$on('$destroy',function(){l&&l.destroy(),r=null,l=null})}}}]),angular.module('mgcrea.ngStrap.aside',['mgcrea.ngStrap.modal']).provider('$aside',function(){var e=this.defaults={animation:'am-fade-and-slide-right',prefixClass:'aside',prefixEvent:'aside',placement:'right',templateUrl:'aside/aside.tpl.html',contentTemplate:!1,container:!1,element:null,backdrop:!0,keyboard:!0,html:!1,show:!0};this.$get=['$modal',function(t){function n(n){var a={},o=angular.extend({},e,n);return a=t(o)}return n}]}).directive('bsAside',['$window','$sce','$aside',function(e,t,n){e.requestAnimationFrame||e.setTimeout;return{restrict:'EAC',scope:!0,link:function(e,a,o,i){var r={scope:e,element:a,show:!1};angular.forEach(['template','templateUrl','controller','controllerAs','contentTemplate','placement','backdrop','keyboard','html','container','animation'],function(e){angular.isDefined(o[e])&&(r[e]=o[e])});var s=/^(false|0|)$/i;angular.forEach(['backdrop','keyboard','html','container'],function(e){angular.isDefined(o[e])&&s.test(o[e])&&(r[e]=!1)}),angular.forEach(['title','content'],function(n){o[n]&&o.$observe(n,function(a,o){e[n]=t.trustAsHtml(a)})}),o.bsAside&&e.$watch(o.bsAside,function(t,n){angular.isObject(t)?angular.extend(e,t):e.content=t},!0);var l=n(r);a.on(o.trigger||'click',l.toggle),e.$on('$destroy',function(){l&&l.destroy(),r=null,l=null})}}}]),angular.module('mgcrea.ngStrap.button',[]).provider('$button',function(){var e=this.defaults={activeClass:'active',toggleEvent:'click'};this.$get=function(){return{defaults:e}}}).directive('bsCheckboxGroup',function(){return{restrict:'A',require:'ngModel',compile:function(e,t){e.attr('data-toggle','buttons'),e.removeAttr('ng-model');var n=e[0].querySelectorAll('input[type="checkbox"]');angular.forEach(n,function(e){var n=angular.element(e);n.attr('bs-checkbox',''),n.attr('ng-model',t.ngModel+'.'+n.attr('value'))})}}}).directive('bsCheckbox',['$button','$$rAF',function(e,t){var n=e.defaults,a=/^(true|false|\d+)$/;return{restrict:'A',require:'ngModel',link:function(e,o,i,r){var s=n,l='INPUT'===o[0].nodeName,u=l?o.parent():o,c=angular.isDefined(i.trueValue)?i.trueValue:!0;a.test(i.trueValue)&&(c=e.$eval(i.trueValue));var d=angular.isDefined(i.falseValue)?i.falseValue:!1;a.test(i.falseValue)&&(d=e.$eval(i.falseValue));var f='boolean'!=typeof c||'boolean'!=typeof d;f&&(r.$parsers.push(function(e){return e?c:d}),r.$formatters.push(function(e){return angular.equals(e,c)}),e.$watch(i.ngModel,function(e,t){r.$render()})),r.$render=function(){var e=angular.equals(r.$modelValue,c);t(function(){l&&(o[0].checked=e),u.toggleClass(s.activeClass,e)})},o.bind(s.toggleEvent,function(){e.$apply(function(){l||r.$setViewValue(!u.hasClass('active')),f||r.$render()})})}}}]).directive('bsRadioGroup',function(){return{restrict:'A',require:'ngModel',compile:function(e,t){e.attr('data-toggle','buttons'),e.removeAttr('ng-model');var n=e[0].querySelectorAll('input[type="radio"]');angular.forEach(n,function(e){angular.element(e).attr('bs-radio',''),angular.element(e).attr('ng-model',t.ngModel)})}}}).directive('bsRadio',['$button','$$rAF',function(e,t){var n=e.defaults,a=/^(true|false|\d+)$/;return{restrict:'A',require:'ngModel',link:function(e,o,i,r){var s,l=n,u='INPUT'===o[0].nodeName,c=u?o.parent():o;i.$observe('value',function(t){s=a.test(t)?e.$eval(t):t,r.$render()}),r.$render=function(){var e=angular.equals(r.$modelValue,s);t(function(){u&&(o[0].checked=e),c.toggleClass(l.activeClass,e)})},o.bind(l.toggleEvent,function(){e.$apply(function(){r.$setViewValue(s),r.$render()})})}}}]),angular.module('mgcrea.ngStrap.collapse',[]).provider('$collapse',function(){var e=this.defaults={animation:'am-collapse',disallowToggle:!1,activeClass:'in',startCollapsed:!1,allowMultiple:!1},t=this.controller=function(t,n,a){function o(e){for(var t=l.$targets.$active,n=0;nt;t++)angular.forEach(g.rows[t],u.$setDisabledEl)},u.select=function(e,t){angular.isDate(n.$dateValue)||(n.$dateValue=new Date(e)),!g.$mode||t?(n.$setViewValue(angular.copy(e)),n.$render(),p.autoclose&&!t&&l(function(){u.hide(!0)})):(angular.extend($,{year:e.getFullYear(),month:e.getMonth(),date:e.getDate()}),u.setMode(g.$mode-1),u.$build())},u.setMode=function(e){g.$mode=e,h=u.$views[g.$mode],u.$build()},u.$build=function(e){e===!0&&h.built||(e!==!1||h.built)&&h.build.call(h)},u.$updateSelected=function(){for(var e=0,t=g.rows.length;t>e;e++)angular.forEach(g.rows[e],o)},u.$isSelected=function(e){return h.isSelected(e)},u.$setDisabledEl=function(e){e.disabled=h.isDisabled(e.date)},u.$selectPane=function(e){var t=h.steps,n=new Date(Date.UTC($.year+(t.year||0)*e,$.month+(t.month||0)*e,1));angular.extend($,{year:n.getUTCFullYear(),month:n.getUTCMonth(),date:n.getUTCDate()}),u.$build()},u.$onMouseDown=function(e){if(e.preventDefault(),e.stopPropagation(),d){var t=angular.element(e.target);'button'!==t[0].nodeName.toLowerCase()&&(t=t.parent()),t.triggerHandler('click')}},u.$onKeyDown=function(e){if(/(38|37|39|40|13)/.test(e.keyCode)&&!e.shiftKey&&!e.altKey){if(e.preventDefault(),e.stopPropagation(),13===e.keyCode)return g.$mode?g.$apply(function(){u.setMode(g.$mode-1)}):u.hide(!0);h.onKeyDown(e),f.$digest()}};var v=u.init;u.init=function(){return c&&p.useNative?(t.prop('type','date'),void t.css('-webkit-appearance','textfield')):(d&&(t.prop('type','text'),t.attr('readonly','true'),t.on('click',i)),void v())};var w=u.destroy;u.destroy=function(){c&&p.useNative&&t.off('click',i),w()};var y=u.show;u.show=function(){!d&&t.attr('readonly')||t.attr('disabled')||(y(),l(function(){u.$isShown&&(u.$element.on(d?'touchstart':'mousedown',u.$onMouseDown),p.keyboard&&t.on('keydown',u.$onKeyDown))},0,!1))};var b=u.hide;return u.hide=function(e){u.$isShown&&(u.$element.off(d?'touchstart':'mousedown',u.$onMouseDown),p.keyboard&&t.off('keydown',u.$onKeyDown),b(e))},u}var c=(angular.element(t.document.body),/(ip(a|o)d|iphone|android)/gi.test(t.navigator.userAgent)),d='createTouch'in t.document&&c;return e.lang||(e.lang=i.getDefaultLocale()),u.defaults=e,u}]}).directive('bsDatepicker',['$window','$parse','$q','$dateFormatter','$dateParser','$datepicker',function(e,t,n,a,o,i){var r=(i.defaults,/(ip(a|o)d|iphone|android)/gi.test(e.navigator.userAgent));return{restrict:'EAC',require:'ngModel',link:function(e,t,n,s){function l(e){return e&&e.length?e:null}function u(e){if(angular.isDate(e)){var t=isNaN(p.$options.minDate)||e.getTime()>=p.$options.minDate,n=isNaN(p.$options.maxDate)||e.getTime()<=p.$options.maxDate,a=t&&n;s.$setValidity('date',a),s.$setValidity('min',t),s.$setValidity('max',n),a&&(s.$dateValue=e)}}function c(){return!s.$dateValue||isNaN(s.$dateValue.getTime())?'':m(s.$dateValue,d.dateFormat)}var d={scope:e};angular.forEach(['template','templateUrl','controller','controllerAs','placement','container','delay','trigger','html','animation','autoclose','dateType','dateFormat','timezone','modelDateFormat','dayFormat','strictFormat','startWeek','startDate','useNative','lang','startView','minView','iconLeft','iconRight','daysOfWeekDisabled','id','prefixClass','prefixEvent'],function(e){angular.isDefined(n[e])&&(d[e]=n[e])});var f=/^(false|0|)$/i;angular.forEach(['html','container','autoclose','useNative'],function(e){angular.isDefined(n[e])&&f.test(n[e])&&(d[e]=!1)}),n.bsShow&&e.$watch(n.bsShow,function(e,t){p&&angular.isDefined(e)&&(angular.isString(e)&&(e=!!e.match(/true|,?(datepicker),?/i)),e===!0?p.show():p.hide())});var p=i(t,s,d);d=p.$options,r&&d.useNative&&(d.dateFormat='yyyy-MM-dd');var g=d.lang,m=function(e,t){return a.formatDate(e,t,g)},$=o({format:d.dateFormat,lang:g,strict:d.strictFormat});angular.forEach(['minDate','maxDate'],function(e){angular.isDefined(n[e])&&n.$observe(e,function(t){p.$options[e]=$.getDateForAttribute(e,t),!isNaN(p.$options[e])&&p.$build(!1),u(s.$dateValue)})}),e.$watch(n.ngModel,function(e,t){p.update(s.$dateValue)},!0),angular.isDefined(n.disabledDates)&&e.$watch(n.disabledDates,function(e,t){e=l(e),t=l(t),e&&p.updateDisabledDates(e)}),s.$parsers.unshift(function(e){var t;if(!e)return s.$setValidity('date',!0),null;var n=$.parse(e,s.$dateValue);return!n||isNaN(n.getTime())?void s.$setValidity('date',!1):(u(n),'string'===d.dateType?(t=$.timezoneOffsetAdjust(n,d.timezone,!0),m(t,d.modelDateFormat||d.dateFormat)):(t=$.timezoneOffsetAdjust(s.$dateValue,d.timezone,!0),'number'===d.dateType?t.getTime():'unix'===d.dateType?t.getTime()/1e3:'iso'===d.dateType?t.toISOString():new Date(t)))}),s.$formatters.push(function(e){var t;return t=angular.isUndefined(e)||null===e?0/0:angular.isDate(e)?e:'string'===d.dateType?$.parse(e,null,d.modelDateFormat):new Date('unix'===d.dateType?1e3*e:e),s.$dateValue=$.timezoneOffsetAdjust(t,d.timezone),c()}),s.$render=function(){t.val(c())},e.$on('$destroy',function(){p&&p.destroy(),d=null,p=null})}}}]).provider('datepickerViews',function(){function e(e,t){for(var n=[];e.length>0;)n.push(e.splice(0,t));return n}function t(e,t){return(e%t+t)%t}this.defaults={dayFormat:'dd',daySplit:7};this.$get=['$dateFormatter','$dateParser','$sce',function(n,a,o){return function(i){var r=i.$scope,s=i.$options,l=s.lang,u=function(e,t){return n.formatDate(e,t,l)},c=a({format:s.dateFormat,lang:l,strict:s.strictFormat}),d=n.weekdaysShort(l),f=d.slice(s.startWeek).concat(d.slice(0,s.startWeek)),p=o.trustAsHtml(''+f.join('')+''),g=i.$date||(s.startDate?c.getDateForAttribute('startDate',s.startDate):new Date),m={year:g.getFullYear(),month:g.getMonth(),date:g.getDate()},$=[{format:s.dayFormat,split:7,steps:{month:1},update:function(e,t){!this.built||t||e.getFullYear()!==m.year||e.getMonth()!==m.month?(angular.extend(m,{year:i.$date.getFullYear(),month:i.$date.getMonth(),date:i.$date.getDate()}),i.$build()):(e.getDate()!==m.date||1===e.getDate())&&(m.date=i.$date.getDate(),i.$updateSelected())},build:function(){var n=new Date(m.year,m.month,1),a=n.getTimezoneOffset(),o=new Date(+n-864e5*t(n.getDay()-s.startWeek,7)),l=o.getTimezoneOffset(),d=c.timezoneOffsetAdjust(new Date,s.timezone).toDateString();l!==a&&(o=new Date(+o+6e4*(l-a)));for(var f,g=[],$=0;42>$;$++)f=c.daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth(),o.getDate()+$)),g.push({date:f,isToday:f.toDateString()===d,label:u(f,this.format),selected:i.$date&&this.isSelected(f),muted:f.getMonth()!==m.month,disabled:this.isDisabled(f)});r.title=u(n,s.monthTitleFormat),r.showLabels=!0,r.labels=p,r.rows=e(g,this.split),this.built=!0},isSelected:function(e){return i.$date&&e.getFullYear()===i.$date.getFullYear()&&e.getMonth()===i.$date.getMonth()&&e.getDate()===i.$date.getDate()},isDisabled:function(e){var t=e.getTime();if(ts.maxDate)return!0;if(-1!==s.daysOfWeekDisabled.indexOf(e.getDay()))return!0;if(s.disabledDateRanges)for(var n=0;n=s.disabledDateRanges[n].start&&t<=s.disabledDateRanges[n].end)return!0;return!1},onKeyDown:function(e){if(i.$date){var t,n=i.$date.getTime();37===e.keyCode?t=new Date(n-864e5):38===e.keyCode?t=new Date(n-6048e5):39===e.keyCode?t=new Date(n+864e5):40===e.keyCode&&(t=new Date(n+6048e5)),this.isDisabled(t)||i.select(t,!0)}}},{name:'month',format:s.monthFormat,split:4,steps:{year:1},update:function(e,t){this.built&&e.getFullYear()===m.year?e.getMonth()!==m.month&&(angular.extend(m,{month:i.$date.getMonth(),date:i.$date.getDate()}),i.$updateSelected()):(angular.extend(m,{year:i.$date.getFullYear(),month:i.$date.getMonth(),date:i.$date.getDate()}),i.$build())},build:function(){for(var t,n=(new Date(m.year,0,1),[]),a=0;12>a;a++)t=new Date(m.year,a,1),n.push({date:t,label:u(t,this.format),selected:i.$isSelected(t),disabled:this.isDisabled(t)});r.title=u(t,s.yearTitleFormat),r.showLabels=!1,r.rows=e(n,this.split),this.built=!0},isSelected:function(e){return i.$date&&e.getFullYear()===i.$date.getFullYear()&&e.getMonth()===i.$date.getMonth()},isDisabled:function(e){var t=+new Date(e.getFullYear(),e.getMonth()+1,0);return ts.maxDate},onKeyDown:function(e){if(i.$date){var t=i.$date.getMonth(),n=new Date(i.$date);37===e.keyCode?n.setMonth(t-1):38===e.keyCode?n.setMonth(t-4):39===e.keyCode?n.setMonth(t+1):40===e.keyCode&&n.setMonth(t+4),this.isDisabled(n)||i.select(n,!0)}}},{name:'year',format:s.yearFormat,split:4,steps:{year:12},update:function(e,t){!this.built||t||parseInt(e.getFullYear()/20,10)!==parseInt(m.year/20,10)?(angular.extend(m,{year:i.$date.getFullYear(),month:i.$date.getMonth(),date:i.$date.getDate()}),i.$build()):e.getFullYear()!==m.year&&(angular.extend(m,{year:i.$date.getFullYear(),month:i.$date.getMonth(),date:i.$date.getDate()}),i.$updateSelected())},build:function(){for(var t,n=m.year-m.year%(3*this.split),a=[],o=0;12>o;o++)t=new Date(n+o,0,1),a.push({date:t,label:u(t,this.format),selected:i.$isSelected(t),disabled:this.isDisabled(t)});r.title=a[0].label+'-'+a[a.length-1].label,r.showLabels=!1,r.rows=e(a,this.split),this.built=!0},isSelected:function(e){return i.$date&&e.getFullYear()===i.$date.getFullYear()},isDisabled:function(e){var t=+new Date(e.getFullYear()+1,0,0);return ts.maxDate},onKeyDown:function(e){if(i.$date){var t=i.$date.getFullYear(),n=new Date(i.$date);37===e.keyCode?n.setYear(t-1):38===e.keyCode?n.setYear(t-4):39===e.keyCode?n.setYear(t+1):40===e.keyCode&&n.setYear(t+4),this.isDisabled(n)||i.select(n,!0)}}}];return{views:s.minView?Array.prototype.slice.call($,s.minView):$,viewDate:m}}}]}),angular.module('mgcrea.ngStrap.dropdown',['mgcrea.ngStrap.tooltip']).provider('$dropdown',function(){var e=this.defaults={animation:'am-fade',prefixClass:'dropdown',prefixEvent:'dropdown',placement:'bottom-left',templateUrl:'dropdown/dropdown.tpl.html',trigger:'click',container:!1,keyboard:!0,html:!1,delay:0};this.$get=['$window','$rootScope','$tooltip','$timeout',function(t,n,a,o){function i(t,i){function l(e){return e.target!==t[0]?e.target!==t[0]&&u.hide():void 0}{var u={},c=angular.extend({},e,i);u.$scope=c.scope&&c.scope.$new()||n.$new()}u=a(t,c);var d=t.parent();u.$onKeyDown=function(e){if(/(38|40)/.test(e.keyCode)){e.preventDefault(),e.stopPropagation();var t=angular.element(u.$element[0].querySelectorAll('li:not(.divider) a'));if(t.length){var n;angular.forEach(t,function(e,t){s&&s.call(e,':focus')&&(n=t)}),38===e.keyCode&&n>0?n--:40===e.keyCode&&no;o++)if(e[o].toLowerCase()===a)return o;return-1}t.prototype.setMilliseconds=function(e){this.milliseconds=e},t.prototype.setSeconds=function(e){this.seconds=e},t.prototype.setMinutes=function(e){this.minutes=e},t.prototype.setHours=function(e){this.hours=e},t.prototype.getHours=function(){return this.hours},t.prototype.setDate=function(e){this.day=e},t.prototype.setMonth=function(e){this.month=e},t.prototype.setFullYear=function(e){this.year=e},t.prototype.fromDate=function(e){return this.year=e.getFullYear(),this.month=e.getMonth(),this.day=e.getDate(),this.hours=e.getHours(),this.minutes=e.getMinutes(),this.seconds=e.getSeconds(),this.milliseconds=e.getMilliseconds(),this},t.prototype.toDate=function(){return new Date(this.year,this.month,this.day,this.hours,this.minutes,this.seconds,this.milliseconds)};var i=t.prototype,r=this.defaults={format:'shortDate',strict:!1};this.$get=['$locale','dateFilter',function(e,s){var l=function(l){function u(e){var t,n=Object.keys(h),a=[],o=[],i=e;for(t=0;t1){var r=i.search(n[t]);e=e.split(n[t]).join(''),h[n[t]]&&(a[r]=h[n[t]])}return angular.forEach(a,function(e){e&&o.push(e)}),o}function c(e){return e.replace(/\//g,'[\\/]').replace('/-/g','[-]').replace(/\./g,'[.]').replace(/\\s/g,'[\\s]')}function d(e){var t,n=Object.keys($),a=e;for(t=0;t=1*e&&2===e.length?2e3+1*e:1*e)}};return m.init=function(){m.$format=e.DATETIME_FORMATS[g.format]||g.format,f=d(m.$format),p=u(m.$format)},m.isValid=function(e){return angular.isDate(e)?!isNaN(e.getTime()):f.test(e)},m.parse=function(n,a,o,i){o&&(o=e.DATETIME_FORMATS[o]||o),angular.isDate(n)&&(n=s(n,o||m.$format,i));var r=o?d(o):f,l=o?u(o):p,c=r.exec(n);if(!c)return!1;for(var g=(new t).fromDate(a&&!isNaN(a.getTime())?a:new Date(1970,0,1,0)),$=0;$12?e.getHours()+2:0),e):null},m.timezoneOffsetAdjust=function(e,t,n){return e?(t&&'UTC'===t&&(e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+(n?-1:1)*e.getTimezoneOffset())),e):null},m.init(),m};return l}]}]),angular.module('mgcrea.ngStrap.helpers.debounce',[]).factory('debounce',['$timeout',function(e){return function(t,n,a){var o=null;return function(){var i=this,r=arguments,s=a&&!o;return o&&e.cancel(o),o=e(function(){o=null,a||t.apply(i,r)},n,!1),s&&t.apply(i,r),o}}}]).factory('throttle',['$timeout',function(e){return function(t,n,a){var o=null;return a||(a={}),function(){var i=this,r=arguments;o||(a.leading!==!1&&t.apply(i,r),o=e(function(){o=null,a.trailing!==!1&&t.apply(i,r)},n,!1))}}}]),angular.module('mgcrea.ngStrap.helpers.dimensions',[]).factory('dimensions',['$document','$window',function(t,n){var a=(angular.element,{}),o=a.nodeName=function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()};a.css=function(t,n,a){var o;return o=t.currentStyle?t.currentStyle[n]:e.getComputedStyle?e.getComputedStyle(t)[n]:t.style[n],a===!0?parseFloat(o)||0:o},a.offset=function(t){var n=t.getBoundingClientRect(),a=t.ownerDocument;return{width:n.width||t.offsetWidth,height:n.height||t.offsetHeight,top:n.top+(e.pageYOffset||a.documentElement.scrollTop)-(a.documentElement.clientTop||0),left:n.left+(e.pageXOffset||a.documentElement.scrollLeft)-(a.documentElement.clientLeft||0)}},a.setOffset=function(e,t,n){var o,i,r,s,l,u,c,d=a.css(e,'position'),f=angular.element(e),p={};'static'===d&&(e.style.position='relative'),l=a.offset(e),r=a.css(e,'top'),u=a.css(e,'left'),c=('absolute'===d||'fixed'===d)&&(r+u).indexOf('auto')>-1,c?(o=a.position(e),s=o.top,i=o.left):(s=parseFloat(r)||0,i=parseFloat(u)||0),angular.isFunction(t)&&(t=t.call(e,n,l)),null!==t.top&&(p.top=t.top-l.top+s),null!==t.left&&(p.left=t.left-l.left+i),'using'in t?t.using.call(f,p):f.css({top:p.top+'px',left:p.left+'px'})},a.position=function(e){var t,n,r={top:0,left:0};return'fixed'===a.css(e,'position')?n=e.getBoundingClientRect():(t=i(e),n=a.offset(e),o(t,'html')||(r=a.offset(t)),r.top+=a.css(t,'borderTopWidth',!0),r.left+=a.css(t,'borderLeftWidth',!0)),{width:e.offsetWidth,height:e.offsetHeight,top:n.top-r.top-a.css(e,'marginTop',!0),left:n.left-r.left-a.css(e,'marginLeft',!0)}};var i=function(e){var t=e.ownerDocument,n=e.offsetParent||t;if(o(n,'#document'))return t.documentElement;for(;n&&!o(n,'html')&&'static'===a.css(n,'position');)n=n.offsetParent;return n||t.documentElement};return a.height=function(e,t){var n=e.offsetHeight;return t?n+=a.css(e,'marginTop',!0)+a.css(e,'marginBottom',!0):n-=a.css(e,'paddingTop',!0)+a.css(e,'paddingBottom',!0)+a.css(e,'borderTopWidth',!0)+a.css(e,'borderBottomWidth',!0),n},a.width=function(e,t){var n=e.offsetWidth;return t?n+=a.css(e,'marginLeft',!0)+a.css(e,'marginRight',!0):n-=a.css(e,'paddingLeft',!0)+a.css(e,'paddingRight',!0)+a.css(e,'borderLeftWidth',!0)+a.css(e,'borderRightWidth',!0),n},a}]),angular.module('mgcrea.ngStrap.helpers.parseOptions',[]).provider('$parseOptions',function(){var e=this.defaults={regexp:/^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+(.*?)(?:\s+track\s+by\s+(.*?))?$/};this.$get=['$parse','$q',function(t,n){function a(a,o){function i(e,t){return e.map(function(e,n){var a,o,i={};return i[c]=e,a=u(t,i),o=p(t,i),{label:a,value:o,index:n}})}var r={},s=angular.extend({},e,o);r.$values=[];var l,u,c,d,f,p,g;return r.init=function(){r.$match=l=a.match(s.regexp),u=t(l[2]||l[1]),c=l[4]||l[6],d=l[5],f=t(l[3]||''),p=t(l[2]?l[1]:c),g=t(l[7])},r.valuesFn=function(e,t){var a;try{a=g(e,t)}catch(o){a=[]}return n.when(a).then(function(t){return angular.isArray(t)||(t=[]),r.$values=t.length?i(t,e):[],r.$values})},r.displayValue=function(e){var t={};return t[c]=e,u(t)},r.init(),r}return a}]}),angular.version.minor<3&&angular.version.dot<14&&angular.module('ng').factory('$$rAF',['$window','$timeout',function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame,a=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.mozCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,o=!!n,i=o?function(e){var t=n(e);return function(){a(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return i.supported=o,i}]),angular.module('mgcrea.ngStrap.modal',['mgcrea.ngStrap.core','mgcrea.ngStrap.helpers.dimensions']).provider('$modal',function(){var e=this.defaults={animation:'am-fade',backdropAnimation:'am-fade',prefixClass:'modal',prefixEvent:'modal',placement:'top',templateUrl:'modal/modal.tpl.html',template:'',contentTemplate:!1,container:!1,element:null,backdrop:!0,keyboard:!0,html:!1,show:!0};this.$get=['$window','$rootScope','$bsCompiler','$q','$templateCache','$http','$animate','$timeout','$sce','dimensions',function(n,a,o,i,r,s,l,u,c,d){function f(t){function n(){k.$emit(b.prefixEvent+'.show',y)}function i(){k.$emit(b.prefixEvent+'.hide',y),h.removeClass(b.prefixClass+'-open'),b.animation&&h.removeClass(b.prefixClass+'-with-'+b.animation)}function r(){b.backdrop&&(x.on('click',f),C.on('click',f),C.on('wheel',v))}function s(){b.backdrop&&(x.off('click',f),C.off('click',f),C.off('wheel',v))}function u(){b.keyboard&&x.on('keyup',y.$onKeyUp)}function d(){b.keyboard&&x.off('keyup',y.$onKeyUp)}function f(e){e.target===e.currentTarget&&('static'===b.backdrop?y.focus():y.hide())}function v(e){e.preventDefault()}function w(){y.$isShown&&null!==x&&(s(),d()),T&&(T.$destroy(),T=null),x&&(x.remove(),x=y.$element=null)}var y={},b=y.$options=angular.extend({},e,t),D=y.$promise=o.compile(b),k=y.$scope=b.scope&&b.scope.$new()||a.$new();b.element||b.container||(b.container='body'),y.$id=b.id||b.element&&b.element.attr('id')||'',m(['title','content'],function(e){b[e]&&(k[e]=c.trustAsHtml(b[e]))}),k.$hide=function(){k.$$postDigest(function(){y.hide()})},k.$show=function(){k.$$postDigest(function(){y.show()})},k.$toggle=function(){k.$$postDigest(function(){y.toggle()})},y.$isShown=k.$isShown=!1;var S,x,T,C=angular.element('
');return C.css({position:'fixed',top:'0px',left:'0px',bottom:'0px',right:'0px','z-index':1038}),D.then(function(e){S=e,y.init()}),y.init=function(){b.show&&k.$$postDigest(function(){y.show()})},y.destroy=function(){w(),C&&(C.remove(),C=null),k.$destroy()},y.show=function(){if(!y.$isShown){var e,t;if(angular.isElement(b.container)?(e=b.container,t=b.container[0].lastChild?angular.element(b.container[0].lastChild):null):b.container?(e=g(b.container),t=e[0]&&e[0].lastChild?angular.element(e[0].lastChild):null):(e=null,t=b.element),x&&w(),T=y.$scope.$new(),x=y.$element=S.link(T,function(e,t){}),!k.$emit(b.prefixEvent+'.show.before',y).defaultPrevented){x.css({display:'block'}).addClass(b.placement),b.animation&&(b.backdrop&&C.addClass(b.backdropAnimation),x.addClass(b.animation)),b.backdrop&&l.enter(C,h,null),angular.version.minor<=2?l.enter(x,e,t,n):l.enter(x,e,t).then(n),y.$isShown=k.$isShown=!0,p(k);var a=x[0];$(function(){a.focus()}),h.addClass(b.prefixClass+'-open'),b.animation&&h.addClass(b.prefixClass+'-with-'+b.animation),r(),u()}}},y.hide=function(){y.$isShown&&(k.$emit(b.prefixEvent+'.hide.before',y).defaultPrevented||(angular.version.minor<=2?l.leave(x,i):l.leave(x).then(i),b.backdrop&&l.leave(C),y.$isShown=k.$isShown=!1,p(k),s(),d()))},y.toggle=function(){y.$isShown?y.hide():y.show()},y.focus=function(){x[0].focus()},y.$onKeyUp=function(e){27===e.which&&y.$isShown&&(y.hide(),e.stopPropagation())},y}function p(e){e.$$phase||e.$root&&e.$root.$$phase||e.$digest()}function g(e,n){return angular.element((n||t).querySelectorAll(e))}var m=angular.forEach,$=(String.prototype.trim,n.requestAnimationFrame||n.setTimeout),h=angular.element(n.document.body);return f}]}).directive('bsModal',['$window','$sce','$modal',function(e,t,n){return{restrict:'EAC',scope:!0,link:function(e,a,o,i){var r={scope:e,element:a,show:!1};angular.forEach(['template','templateUrl','controller','controllerAs','contentTemplate','controller','placement','backdrop','keyboard','html','container','animation','id','prefixEvent','prefixClass'],function(e){angular.isDefined(o[e])&&(r[e]=o[e])});var s=/^(false|0|)$/i;angular.forEach(['backdrop','keyboard','html','container'],function(e){angular.isDefined(o[e])&&s.test(o[e])&&(r[e]=!1)}),angular.forEach(['title','content'],function(n){o[n]&&o.$observe(n,function(a,o){e[n]=t.trustAsHtml(a)})}),o.bsModal&&e.$watch(o.bsModal,function(t,n){angular.isObject(t)?angular.extend(e,t):e.content=t},!0);var l=n(r);a.on(o.trigger||'click',l.toggle),e.$on('$destroy',function(){l&&l.destroy(),r=null,l=null})}}}]),angular.module('mgcrea.ngStrap.navbar',[]).provider('$navbar',function(){var e=this.defaults={activeClass:'active',routeAttr:'data-match-route',strict:!1};this.$get=function(){return{defaults:e}}}).directive('bsNavbar',['$window','$location','$navbar',function(e,t,n){var a=n.defaults;return{restrict:'A',link:function(e,n,o,i){var r=angular.copy(a);angular.forEach(Object.keys(a),function(e){angular.isDefined(o[e])&&(r[e]=o[e])}),e.$watch(function(){return t.path()},function(e,t){var a=n[0].querySelectorAll('li['+r.routeAttr+']');angular.forEach(a,function(t){var n=angular.element(t),a=n.attr(r.routeAttr).replace('/','\\/');r.strict&&(a='^'+a+'$');var o=new RegExp(a,'i');o.test(e)?n.addClass(r.activeClass):n.removeClass(r.activeClass)})})}}}]),angular.module('mgcrea.ngStrap.scrollspy',['mgcrea.ngStrap.helpers.debounce','mgcrea.ngStrap.helpers.dimensions']).provider('$scrollspy',function(){var e=this.$$spies={},n=this.defaults={debounce:150,throttle:100,offset:100};this.$get=['$window','$document','$rootScope','dimensions','debounce','throttle',function(a,o,i,r,s,l){function u(e,t){return e[0].nodeName&&e[0].nodeName.toLowerCase()===t.toLowerCase()}function c(o){var c=angular.extend({},n,o);c.element||(c.element=p);var g=u(c.element,'body'),m=g?d:c.element,$=g?'window':c.id;if(e[$])return e[$].$$count++,e[$];var h,v,w,y,b,D,k,S,x={},T=x.$trackedElements=[],C=[];return x.init=function(){this.$$count=1,y=s(this.checkPosition,c.debounce),b=l(this.checkPosition,c.throttle),m.on('click',this.checkPositionWithEventLoop),d.on('resize',y),m.on('scroll',b),D=s(this.checkOffsets,c.debounce),h=i.$on('$viewContentLoaded',D),v=i.$on('$includeContentLoaded',D),D(),$&&(e[$]=x)},x.destroy=function(){this.$$count--,this.$$count>0||(m.off('click',this.checkPositionWithEventLoop),d.off('resize',y),m.off('scroll',b),h(),v(),$&&delete e[$])},x.checkPosition=function(){if(C.length){if(S=(g?a.pageYOffset:m.prop('scrollTop'))||0,k=Math.max(a.innerHeight,f.prop('clientHeight')),SC[e+1].offsetTop))return x.$activateElement(C[e])}},x.checkPositionWithEventLoop=function(){setTimeout(x.checkPosition,1)},x.$activateElement=function(e){if(w){var t=x.$getTrackedElement(w);t&&(t.source.removeClass('active'),u(t.source,'li')&&u(t.source.parent().parent(),'li')&&t.source.parent().parent().removeClass('active'))}w=e.target,e.source.addClass('active'),u(e.source,'li')&&u(e.source.parent().parent(),'li')&&e.source.parent().parent().addClass('active')},x.$getTrackedElement=function(e){return T.filter(function(t){return t.target===e})[0]},x.checkOffsets=function(){angular.forEach(T,function(e){var n=t.querySelector(e.target);e.offsetTop=n?r.offset(n).top:null,c.offset&&null!==e.offsetTop&&(e.offsetTop-=1*c.offset)}),C=T.filter(function(e){return null!==e.offsetTop}).sort(function(e,t){return e.offsetTop-t.offsetTop}),y()},x.trackElement=function(e,t){T.push({target:e,source:t})},x.untrackElement=function(e,t){for(var n,a=T.length;a--;)if(T[a].target===e&&T[a].source===t){n=a;break}T=T.splice(n,1)},x.activate=function(e){T[e].addClass('active')},x.init(),x}var d=angular.element(a),f=angular.element(o.prop('documentElement')),p=angular.element(a.document.body);return c}]}).directive('bsScrollspy',['$rootScope','debounce','dimensions','$scrollspy',function(e,t,n,a){return{restrict:'EAC',link:function(e,t,n){var o={scope:e};angular.forEach(['offset','target'],function(e){angular.isDefined(n[e])&&(o[e]=n[e])});var i=a(o);i.trackElement(o.target,t),e.$on('$destroy',function(){i&&(i.untrackElement(o.target,t),i.destroy()),o=null,i=null})}}}]).directive('bsScrollspyList',['$rootScope','debounce','dimensions','$scrollspy',function(e,t,n,a){return{restrict:'A',compile:function(e,t){var n=e[0].querySelectorAll('li > a[href]');angular.forEach(n,function(e){var t=angular.element(e);t.parent().attr('bs-scrollspy','').attr('data-target',t.attr('href'))})}}}]),angular.module('mgcrea.ngStrap.select',['mgcrea.ngStrap.tooltip','mgcrea.ngStrap.helpers.parseOptions']).provider('$select',function(){var e=this.defaults={animation:'am-fade',prefixClass:'select',prefixEvent:'$select',placement:'bottom-left',templateUrl:'select/select.tpl.html',trigger:'focus',container:!1,keyboard:!0,html:!1,delay:0,multiple:!1,allNoneButtons:!1,sort:!0,caretHtml:' ',placeholder:'Choose among the following...',allText:'All',noneText:'None',maxLength:3,maxLengthHtml:'selected',iconCheckmark:'glyphicon glyphicon-ok'};this.$get=['$window','$document','$rootScope','$tooltip','$timeout',function(t,n,a,o,i){function r(t,n,a){var r={},s=angular.extend({},e,a);r=o(t,s);var u=r.$scope;u.$matches=[],u.$activeIndex=s.multiple?[]:-1,u.$isMultiple=s.multiple,u.$showAllNoneButtons=s.allNoneButtons&&s.multiple,u.$iconCheckmark=s.iconCheckmark,u.$allText=s.allText,u.$noneText=s.noneText,u.$activate=function(e){u.$$postDigest(function(){r.activate(e)})},u.$select=function(e,t){u.$$postDigest(function(){r.select(e)})},u.$isVisible=function(){return r.$isVisible()},u.$isActive=function(e){return r.$isActive(e)},u.$selectAll=function(){for(var e=0;e=u.$matches.length&&(u.$activeIndex=s.multiple?[]:0)},r.$isVisible=function(){return s.minLength&&n?u.$matches.length&&n.$viewValue.length>=s.minLength:u.$matches.length},r.$isActive=function(e){return s.multiple?-1!==u.$activeIndex.indexOf(e):u.$activeIndex===e},r.$getIndex=function(e){var t=u.$matches.length,n=t;if(t){for(n=t;n--&&u.$matches[n].value!==e;);if(!(0>n))return n}},r.$onMouseDown=function(e){if(e.preventDefault(),e.stopPropagation(),l){var t=angular.element(e.target);t.triggerHandler('click')}},r.$onKeyDown=function(e){return/(9|13|38|40)/.test(e.keyCode)?(e.preventDefault(),e.stopPropagation(),s.multiple&&9===e.keyCode?r.hide():s.multiple||13!==e.keyCode&&9!==e.keyCode?void(s.multiple||(38===e.keyCode&&u.$activeIndex>0?u.$activeIndex--:38===e.keyCode&&u.$activeIndex<0?u.$activeIndex=u.$matches.length-1:40===e.keyCode&&u.$activeIndex'),c.after(t)}var d=o(n.bsOptions),f=a(t,r,s),p=d.$match[7].replace(/\|.+/,'').trim();e.$watchCollection(p,function(t,n){d.valuesFn(e,r).then(function(e){f.update(e),r.$render()})}),e.$watch(n.ngModel,function(e,t){f.$updateActiveIndex(),r.$render()},!0),r.$render=function(){var e,n;s.multiple&&angular.isArray(r.$modelValue)?(e=r.$modelValue.map(function(e){return n=f.$getIndex(e),angular.isDefined(n)?f.$scope.$matches[n].label:!1}).filter(angular.isDefined),e=e.length>(s.maxLength||i.maxLength)?e.length+' '+(s.maxLengthHtml||i.maxLengthHtml):e.join(', ')):(n=f.$getIndex(r.$modelValue),e=angular.isDefined(n)?f.$scope.$matches[n].label:!1),t.html((e?e:s.placeholder)+(s.caretHtml?s.caretHtml:i.caretHtml))},s.multiple&&(r.$isEmpty=function(e){return!e||0===e.length}),e.$on('$destroy',function(){f&&f.destroy(),s=null,f=null})}}}]),angular.module('mgcrea.ngStrap.popover',['mgcrea.ngStrap.tooltip']).provider('$popover',function(){var e=this.defaults={animation:'am-fade',customClass:'',container:!1,target:!1,placement:'right',templateUrl:'popover/popover.tpl.html',contentTemplate:!1,trigger:'click',keyboard:!0,html:!1,title:'',content:'',delay:0,autoClose:!1};this.$get=['$tooltip',function(t){function n(n,a){var o=angular.extend({},e,a),i=t(n,o);return o.content&&(i.$scope.content=o.content),i}return n}]}).directive('bsPopover',['$window','$sce','$popover',function(e,t,n){var a=e.requestAnimationFrame||e.setTimeout;return{restrict:'EAC',scope:!0,link:function(e,o,i){var r={scope:e};angular.forEach(['template','templateUrl','controller','controllerAs','contentTemplate','placement','container','delay','trigger','html','animation','customClass','autoClose','id','prefixClass','prefixEvent'],function(e){angular.isDefined(i[e])&&(r[e]=i[e])});var s=/^(false|0|)$/i;angular.forEach(['html','container','autoClose'],function(e){angular.isDefined(i[e])&&s.test(i[e])&&(r[e]=!1)});var l=o.attr('data-target');angular.isDefined(l)&&(r.target=s.test(l)?!1:l),angular.forEach(['title','content'],function(n){i[n]&&i.$observe(n,function(o,i){e[n]=t.trustAsHtml(o),angular.isDefined(i)&&a(function(){u&&u.$applyPlacement()})})}),i.bsPopover&&e.$watch(i.bsPopover,function(t,n){angular.isObject(t)?angular.extend(e,t):e.content=t,angular.isDefined(n)&&a(function(){u&&u.$applyPlacement()})},!0),i.bsShow&&e.$watch(i.bsShow,function(e,t){u&&angular.isDefined(e)&&(angular.isString(e)&&(e=!!e.match(/true|,?(popover),?/i)),e===!0?u.show():u.hide())}),i.viewport&&e.$watch(i.viewport,function(e){u&&angular.isDefined(e)&&u.setViewport(e)});var u=n(o,r);e.$on('$destroy',function(){u&&u.destroy(),r=null,u=null})}}}]),angular.module('mgcrea.ngStrap.tab',[]).provider('$tab',function(){var e=this.defaults={animation:'am-fade',template:'tab/tab.tpl.html',navClass:'nav-tabs',activeClass:'active'},t=this.controller=function(t,n,a){var o=this;o.$options=angular.copy(e),angular.forEach(['animation','navClass','activeClass'],function(e){angular.isDefined(a[e])&&(o.$options[e]=a[e])}),t.$navClass=o.$options.navClass,t.$activeClass=o.$options.activeClass,o.$panes=t.$panes=[],o.$activePaneChangeListeners=o.$viewChangeListeners=[],o.$push=function(e){angular.isUndefined(o.$panes.$active)&&t.$setActive(e.name||0),o.$panes.push(e)},o.$remove=function(e){var t,n=o.$panes.indexOf(e),a=o.$panes.$active;t=angular.isString(a)?o.$panes.map(function(e){return e.name}).indexOf(a):o.$panes.$active,o.$panes.splice(n,1),t>n?t--:n===t&&t===o.$panes.length&&t--,t>=0&&ts.top+s.height&&(o.top=s.top+s.height-u)}else{var c=t.left-r,d=t.left+r+n;cs.width&&(o.left=s.left+s.width-d)}return o}function E(e,t,n){var a=m('.tooltip-arrow, .arrow',R[0]);a.css(n?'left':'top',50*(1-e/t)+'%').css(n?'top':'left','')}function A(){clearTimeout(H),F.$isShown&&null!==R&&(V.autoClose&&k(),V.keyboard&&b()),Y&&(Y.$destroy(),Y=null),R&&(R.remove(),R=F.$element=null)}var F={},V=F.$options=angular.extend({},e,r),O=F.$promise=o.compile(V),P=F.$scope=V.scope&&V.scope.$new()||a.$new(),I=i[0].nodeName.toLowerCase();if(V.delay&&angular.isString(V.delay)){var N=V.delay.split(',').map(parseFloat);V.delay=N.length>1?{show:N[0],hide:N[1]}:N[0]}F.$id=V.id||i.attr('id')||'',V.title&&(P.title=u.trustAsHtml(V.title)),P.$setEnabled=function(e){P.$$postDigest(function(){F.setEnabled(e)})},P.$hide=function(){P.$$postDigest(function(){F.hide()})},P.$show=function(){P.$$postDigest(function(){F.show()})},P.$toggle=function(){P.$$postDigest(function(){F.toggle()})},F.$isShown=P.$isShown=!1;var H,L,U,R,q,Y;O.then(function(e){U=e,F.init()}),F.init=function(){V.delay&&angular.isNumber(V.delay)&&(V.delay={show:V.delay,hide:V.delay}),'self'===V.container?q=i:angular.isElement(V.container)?q=V.container:V.container&&(q=m(V.container)),v(),V.target&&(V.target=angular.isElement(V.target)?V.target:m(V.target)),V.show&&P.$$postDigest(function(){'focus'===V.trigger?i[0].focus():F.show()})},F.destroy=function(){w(),A(),P.$destroy()},F.enter=function(){return clearTimeout(H),L='in',V.delay&&V.delay.show?void(H=setTimeout(function(){'in'===L&&F.show()},V.delay.show)):F.show()},F.show=function(){if(V.bsEnabled&&!F.$isShown){P.$emit(V.prefixEvent+'.show.before',F);var e,t;V.container?(e=q,t=q[0].lastChild?angular.element(q[0].lastChild):null):(e=null,t=i),R&&A(),Y=F.$scope.$new(),R=F.$element=U.link(Y,function(e,t){}),R.css({top:'-9999px',left:'-9999px',right:'auto',display:'block',visibility:'hidden'}),V.animation&&R.addClass(V.animation),V.type&&R.addClass(V.prefixClass+'-'+V.type),V.customClass&&R.addClass(V.customClass),t?t.after(R):e.prepend(R),F.$isShown=P.$isShown=!0,g(P),F.$applyPlacement(),angular.version.minor<=2?l.enter(R,e,t,s):l.enter(R,e,t).then(s),g(P),d(function(){R&&R.css({visibility:'visible'})}),V.keyboard&&('focus'!==V.trigger&&F.focus(),y()),V.autoClose&&D()}},F.leave=function(){return clearTimeout(H),L='out',V.delay&&V.delay.hide?void(H=setTimeout(function(){'out'===L&&F.hide()},V.delay.hide)):F.hide()};var z,j;F.hide=function(e){F.$isShown&&(P.$emit(V.prefixEvent+'.hide.before',F),z=e,j=R,angular.version.minor<=2?l.leave(R,p):l.leave(R).then(p),F.$isShown=P.$isShown=!1,g(P),V.keyboard&&null!==R&&b(),V.autoClose&&null!==R&&k())},F.toggle=function(){F.$isShown?F.leave():F.enter()},F.focus=function(){R[0].focus()},F.setEnabled=function(e){V.bsEnabled=e},F.setViewport=function(e){V.viewport=e},F.$applyPlacement=function(){if(R){var t=V.placement,n=/\s?auto?\s?/i,a=n.test(t);a&&(t=t.replace(n,'')||e.placement),R.addClass(V.placement);var o=x(),r=R.prop('offsetWidth'),s=R.prop('offsetHeight');if(a){var l=t,u=V.container?m(V.container):i.parent(),c=x(u);l.indexOf('bottom')>=0&&o.bottom+s>c.bottom?t=l.replace('bottom','top'):l.indexOf('top')>=0&&o.top-sc.width?t='right'===l?'left':t.replace('left','right'):('left'===l||'bottom-right'===l||'top-right'===l)&&o.left-rt?t+12:t-12),n.$setViewValue(angular.copy(n.$dateValue)),n.$render()}},f.$build=function(){var e,t,n=m.midIndex=parseInt(g.length/2,10),a=[];for(e=0;e1*g.maxTime},m.$arrowAction=function(e,t){'picker'===g.arrowBehavior?f.$setTimeByStep(e,t):f.$moveIndex(e,t)},f.$setTimeByStep=function(e,t){{var n=new Date(f.$date),a=n.getHours(),o=(h(n,k).length,n.getMinutes()),i=(h(n,x).length,n.getSeconds());h(n,T).length}0===t?n.setHours(a-parseInt(g.hourStep,10)*e):1===t?n.setMinutes(o-parseInt(g.minuteStep,10)*e):2===t&&n.setSeconds(i-parseInt(g.secondStep,10)*e),f.select(n,t,!0)},f.$moveIndex=function(e,t){var n;0===t?(n=new Date(1970,0,1,b.hour+e*g.length,b.minute,b.second),angular.extend(b,{hour:n.getHours()})):1===t?(n=new Date(1970,0,1,b.hour,b.minute+e*g.length*g.minuteStep,b.second),angular.extend(b,{minute:n.getMinutes()})):2===t&&(n=new Date(1970,0,1,b.hour,b.minute,b.second+e*g.length*g.secondStep),angular.extend(b,{second:n.getSeconds()})),f.$build()},f.$onMouseDown=function(e){if('input'!==e.target.nodeName.toLowerCase()&&e.preventDefault(),e.stopPropagation(),c){var t=angular.element(e.target);'button'!==t[0].nodeName.toLowerCase()&&(t=t.parent()),t.triggerHandler('click')}},f.$onKeyDown=function(e){if(/(38|37|39|40|13)/.test(e.keyCode)&&!e.shiftKey&&!e.altKey){if(e.preventDefault(),e.stopPropagation(),13===e.keyCode)return f.hide(!0);var t=new Date(f.$date),n=t.getHours(),a=h(t,k).length,o=t.getMinutes(),i=h(t,x).length,r=t.getSeconds(),s=h(t,T).length,u=1,c=/(37|39)/.test(e.keyCode),d=2+1*C+1*M;c&&(37===e.keyCode?v=1>v?d-1:v-1:39===e.keyCode&&(v=d-1>v?v+1:0));var m=[0,a],$=0;38===e.keyCode&&($=-1),40===e.keyCode&&($=1);var w=2===v&&C,y=2===v&&!C||3===v&&C;0===v?(t.setHours(n+$*parseInt(g.hourStep,10)),a=h(t,k).length,m=[0,a]):1===v?(t.setMinutes(o+$*parseInt(g.minuteStep,10)),i=h(t,x).length,m=[a+u,i]):w?(t.setSeconds(r+$*parseInt(g.secondStep,10)),s=h(t,T).length,m=[a+u+i+u,s]):y&&(c||f.switchMeridian(),m=[a+u+i+u+(s+u)*C,2]),f.select(t,v,!0),l(m[0],m[1]),p.$digest()}};var E=f.init;f.init=function(){return u&&g.useNative?(t.prop('type','time'),void t.css('-webkit-appearance','textfield')):(c&&(t.prop('type','text'),t.attr('readonly','true'),t.on('click',d)),void E())};var A=f.destroy;f.destroy=function(){u&&g.useNative&&t.off('click',d),A()};var F=f.show;f.show=function(){F(),s(function(){f.$element&&f.$element.on(c?'touchstart':'mousedown',f.$onMouseDown),g.keyboard&&t&&t.on('keydown',f.$onKeyDown)},0,!1)};var V=f.hide;return f.hide=function(e){f.$isShown&&(f.$element&&f.$element.off(c?'touchstart':'mousedown',f.$onMouseDown),g.keyboard&&t&&t.off('keydown',f.$onKeyDown),V(e))},f}var u=(angular.element(t.document.body),/(ip(a|o)d|iphone|android)/gi.test(t.navigator.userAgent)),c='createTouch'in t.document&&u;return e.lang||(e.lang=i.getDefaultLocale()),l.defaults=e,l}]}).directive('bsTimepicker',['$window','$parse','$q','$dateFormatter','$dateParser','$timepicker',function(e,t,n,a,o,i){{var r=i.defaults,s=/(ip(a|o)d|iphone|android)/gi.test(e.navigator.userAgent);e.requestAnimationFrame||e.setTimeout}return{restrict:'EAC',require:'ngModel',link:function(e,t,n,l){function u(e){if(angular.isDate(e)){var t=isNaN(d.minTime)||new Date(e.getTime()).setFullYear(1970,0,1)>=d.minTime,n=isNaN(d.maxTime)||new Date(e.getTime()).setFullYear(1970,0,1)<=d.maxTime,a=t&&n;l.$setValidity('date',a),l.$setValidity('min',t),l.$setValidity('max',n),a&&(l.$dateValue=e)}}function c(){return!l.$dateValue||isNaN(l.$dateValue.getTime())?'':m(l.$dateValue,d.timeFormat)}var d={scope:e};angular.forEach(['template','templateUrl','controller','controllerAs','placement','container','delay','trigger','keyboard','html','animation','autoclose','timeType','timeFormat','timezone','modelTimeFormat','useNative','hourStep','minuteStep','secondStep','length','arrowBehavior','iconUp','iconDown','roundDisplay','id','prefixClass','prefixEvent'],function(e){angular.isDefined(n[e])&&(d[e]=n[e])});var f=/^(false|0|)$/i;angular.forEach(['html','container','autoclose','useNative','roundDisplay'],function(e){angular.isDefined(n[e])&&f.test(n[e])&&(d[e]=!1)}),n.bsShow&&e.$watch(n.bsShow,function(e,t){p&&angular.isDefined(e)&&(angular.isString(e)&&(e=!!e.match(/true|,?(timepicker),?/i)),e===!0?p.show():p.hide())}),s&&(d.useNative||r.useNative)&&(d.timeFormat='HH:mm');var p=i(t,l,d);d=p.$options;var g=d.lang,m=function(e,t,n){return a.formatDate(e,t,g,n)},$=o({format:d.timeFormat,lang:g});angular.forEach(['minTime','maxTime'],function(e){angular.isDefined(n[e])&&n.$observe(e,function(t){p.$options[e]=$.getTimeForAttribute(e,t),!isNaN(p.$options[e])&&p.$build(),u(l.$dateValue)})}),e.$watch(n.ngModel,function(e,t){p.update(l.$dateValue)},!0),l.$parsers.unshift(function(e){var t;if(!e)return l.$setValidity('date',!0),null;var n=angular.isDate(e)?e:$.parse(e,l.$dateValue);return!n||isNaN(n.getTime())?void l.$setValidity('date',!1):(u(n),'string'===d.timeType?(t=$.timezoneOffsetAdjust(n,d.timezone,!0),m(t,d.modelTimeFormat||d.timeFormat)):(t=$.timezoneOffsetAdjust(l.$dateValue,d.timezone,!0),'number'===d.timeType?t.getTime():'unix'===d.timeType?t.getTime()/1e3:'iso'===d.timeType?t.toISOString():new Date(t)))}),l.$formatters.push(function(e){var t;return t=angular.isUndefined(e)||null===e?0/0:angular.isDate(e)?e:'string'===d.timeType?$.parse(e,null,d.modelTimeFormat):new Date('unix'===d.timeType?1e3*e:e),l.$dateValue=$.timezoneOffsetAdjust(t,d.timezone),c()}),l.$render=function(){t.val(c())},e.$on('$destroy',function(){p&&p.destroy(),d=null,p=null})}}}]),angular.module('mgcrea.ngStrap.typeahead',['mgcrea.ngStrap.tooltip','mgcrea.ngStrap.helpers.parseOptions']).provider('$typeahead',function(){var e=this.defaults={animation:'am-fade',prefixClass:'typeahead',prefixEvent:'$typeahead',placement:'bottom-left',templateUrl:'typeahead/typeahead.tpl.html',trigger:'focus',container:!1,keyboard:!0,html:!1,delay:0,minLength:1,filter:'filter',limit:6,autoSelect:!1,comparator:'',trimValue:!0};this.$get=['$window','$rootScope','$tooltip','$$rAF','$timeout',function(t,n,a,o,i){function r(t,n,r){var l={},u=angular.extend({},e,r);l=a(t,u);var c=r.scope,d=l.$scope;d.$resetMatches=function(){d.$matches=[],d.$activeIndex=u.autoSelect?0:-1},d.$resetMatches(),d.$activate=function(e){d.$$postDigest(function(){l.activate(e)})},d.$select=function(e,t){d.$$postDigest(function(){l.select(e)})},d.$isVisible=function(){return l.$isVisible()},l.update=function(e){d.$matches=e,d.$activeIndex>=e.length&&(d.$activeIndex=u.autoSelect?0:-1),s(d),o(l.$applyPlacement)},l.activate=function(e){d.$activeIndex=e},l.select=function(e){if(-1!==e){var t=d.$matches[e].value;n.$setViewValue(t),n.$render(),d.$resetMatches(),c&&c.$digest(),d.$emit(u.prefixEvent+'.select',t,e,l)}},l.$isVisible=function(){return u.minLength&&n?d.$matches.length&&angular.isString(n.$viewValue)&&n.$viewValue.length>=u.minLength:!!d.$matches.length},l.$getIndex=function(e){var t=d.$matches.length,n=t;if(t){for(n=t;n--&&d.$matches[n].value!==e;);if(!(0>n))return n}},l.$onMouseDown=function(e){e.preventDefault(),e.stopPropagation()},l.$onKeyDown=function(e){/(38|40|13)/.test(e.keyCode)&&(!l.$isVisible()||13===e.keyCode&&-1===d.$activeIndex||(e.preventDefault(),e.stopPropagation()),13===e.keyCode&&d.$matches.length?l.select(d.$activeIndex):38===e.keyCode&&d.$activeIndex>0?d.$activeIndex--:40===e.keyCode&&d.$activeIndex0)return void r.$setViewValue(r.$viewValue.substring(0,r.$viewValue.length-1));e.length>c&&(e=e.slice(0,c));var n=g.$isVisible();n&&g.update(e),(1!==e.length||e[0].value!==t)&&(!n&&g.update(e),r.$render())})}),r.$formatters.push(function(e){var t=p.displayValue(e);return t?t:e&&'object'!=typeof e?e:''}),r.$render=function(){if(r.$isEmpty(r.$viewValue))return t.val('');var e=g.$getIndex(r.$modelValue),n=angular.isDefined(e)?g.$scope.$matches[e].label:r.$viewValue;n=angular.isObject(n)?p.displayValue(n):n;var a=n?n.toString().replace(/<(?:.|\n)*?>/gm,''):'';t.val(s.trimValue===!1?a:a.trim())},e.$on('$destroy',function(){g&&g.destroy(),s=null,g=null})}}}])}(window,document); +},m.daylightSavingAdjust=function(e){return e?(e.setHours(e.getHours()>12?e.getHours()+2:0),e):null},m.timezoneOffsetAdjust=function(e,t,n){return e?(t&&'UTC'===t&&(e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+(n?-1:1)*e.getTimezoneOffset())),e):null},m.init(),m};return l}]}]),angular.module('mgcrea.ngStrap.helpers.debounce',[]).factory('debounce',['$timeout',function(e){return function(t,n,a){var o=null;return function(){var i=this,r=arguments,s=a&&!o;return o&&e.cancel(o),o=e(function(){o=null,a||t.apply(i,r)},n,!1),s&&t.apply(i,r),o}}}]).factory('throttle',['$timeout',function(e){return function(t,n,a){var o=null;return a||(a={}),function(){var i=this,r=arguments;o||(a.leading!==!1&&t.apply(i,r),o=e(function(){o=null,a.trailing!==!1&&t.apply(i,r)},n,!1))}}}]),angular.module('mgcrea.ngStrap.helpers.dimensions',[]).factory('dimensions',['$document','$window',function(t,n){var a=(angular.element,{}),o=a.nodeName=function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()};a.css=function(t,n,a){var o;return o=t.currentStyle?t.currentStyle[n]:e.getComputedStyle?e.getComputedStyle(t)[n]:t.style[n],a===!0?parseFloat(o)||0:o},a.offset=function(t){var n=t.getBoundingClientRect(),a=t.ownerDocument;return{width:n.width||t.offsetWidth,height:n.height||t.offsetHeight,top:n.top+(e.pageYOffset||a.documentElement.scrollTop)-(a.documentElement.clientTop||0),left:n.left+(e.pageXOffset||a.documentElement.scrollLeft)-(a.documentElement.clientLeft||0)}},a.setOffset=function(e,t,n){var o,i,r,s,l,u,c,d=a.css(e,'position'),f=angular.element(e),p={};'static'===d&&(e.style.position='relative'),l=a.offset(e),r=a.css(e,'top'),u=a.css(e,'left'),c=('absolute'===d||'fixed'===d)&&(r+u).indexOf('auto')>-1,c?(o=a.position(e),s=o.top,i=o.left):(s=parseFloat(r)||0,i=parseFloat(u)||0),angular.isFunction(t)&&(t=t.call(e,n,l)),null!==t.top&&(p.top=t.top-l.top+s),null!==t.left&&(p.left=t.left-l.left+i),'using'in t?t.using.call(f,p):f.css({top:p.top+'px',left:p.left+'px'})},a.position=function(e){var t,n,r={top:0,left:0};return'fixed'===a.css(e,'position')?n=e.getBoundingClientRect():(t=i(e),n=a.offset(e),o(t,'html')||(r=a.offset(t)),r.top+=a.css(t,'borderTopWidth',!0),r.left+=a.css(t,'borderLeftWidth',!0)),{width:e.offsetWidth,height:e.offsetHeight,top:n.top-r.top-a.css(e,'marginTop',!0),left:n.left-r.left-a.css(e,'marginLeft',!0)}};var i=function(e){var t=e.ownerDocument,n=e.offsetParent||t;if(o(n,'#document'))return t.documentElement;for(;n&&!o(n,'html')&&'static'===a.css(n,'position');)n=n.offsetParent;return n||t.documentElement};return a.height=function(e,t){var n=e.offsetHeight;return t?n+=a.css(e,'marginTop',!0)+a.css(e,'marginBottom',!0):n-=a.css(e,'paddingTop',!0)+a.css(e,'paddingBottom',!0)+a.css(e,'borderTopWidth',!0)+a.css(e,'borderBottomWidth',!0),n},a.width=function(e,t){var n=e.offsetWidth;return t?n+=a.css(e,'marginLeft',!0)+a.css(e,'marginRight',!0):n-=a.css(e,'paddingLeft',!0)+a.css(e,'paddingRight',!0)+a.css(e,'borderLeftWidth',!0)+a.css(e,'borderRightWidth',!0),n},a}]),angular.module('mgcrea.ngStrap.helpers.parseOptions',[]).provider('$parseOptions',function(){var e=this.defaults={regexp:/^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+(.*?)(?:\s+track\s+by\s+(.*?))?$/};this.$get=['$parse','$q',function(t,n){function a(a,o){function i(e,t){return e.map(function(e,n){var a,o,i={};return i[c]=e,a=u(t,i),o=p(t,i),{label:a,value:o,index:n}})}var r={},s=angular.extend({},e,o);r.$values=[];var l,u,c,d,f,p,g;return r.init=function(){r.$match=l=a.match(s.regexp),u=t(l[2]||l[1]),c=l[4]||l[6],d=l[5],f=t(l[3]||''),p=t(l[2]?l[1]:c),g=t(l[7])},r.valuesFn=function(e,t){return n.when(g(e,t)).then(function(t){return angular.isArray(t)||(t=[]),r.$values=t.length?i(t,e):[],r.$values})},r.displayValue=function(e){var t={};return t[c]=e,u(t)},r.init(),r}return a}]}),angular.version.minor<3&&angular.version.dot<14&&angular.module('ng').factory('$$rAF',['$window','$timeout',function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame,a=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.mozCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,o=!!n,i=o?function(e){var t=n(e);return function(){a(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return i.supported=o,i}]),angular.module('mgcrea.ngStrap.modal',['mgcrea.ngStrap.core','mgcrea.ngStrap.helpers.dimensions']).provider('$modal',function(){var e=this.defaults={animation:'am-fade',backdropAnimation:'am-fade',prefixClass:'modal',prefixEvent:'modal',placement:'top',templateUrl:'modal/modal.tpl.html',template:'',contentTemplate:!1,container:!1,element:null,backdrop:!0,keyboard:!0,html:!1,show:!0};this.$get=['$window','$rootScope','$bsCompiler','$q','$templateCache','$http','$animate','$timeout','$sce','dimensions',function(n,a,o,i,r,s,l,u,c,d){function f(t){function n(){k.$emit(b.prefixEvent+'.show',y)}function i(){k.$emit(b.prefixEvent+'.hide',y),h.removeClass(b.prefixClass+'-open'),b.animation&&h.removeClass(b.prefixClass+'-with-'+b.animation)}function r(){b.backdrop&&(x.on('click',f),C.on('click',f),C.on('wheel',v))}function s(){b.backdrop&&(x.off('click',f),C.off('click',f),C.off('wheel',v))}function u(){b.keyboard&&x.on('keyup',y.$onKeyUp)}function d(){b.keyboard&&x.off('keyup',y.$onKeyUp)}function f(e){e.target===e.currentTarget&&('static'===b.backdrop?y.focus():y.hide())}function v(e){e.preventDefault()}function w(){y.$isShown&&null!==x&&(s(),d()),T&&(T.$destroy(),T=null),x&&(x.remove(),x=y.$element=null)}var y={},b=y.$options=angular.extend({},e,t),D=y.$promise=o.compile(b),k=y.$scope=b.scope&&b.scope.$new()||a.$new();b.element||b.container||(b.container='body'),y.$id=b.id||b.element&&b.element.attr('id')||'',m(['title','content'],function(e){b[e]&&(k[e]=c.trustAsHtml(b[e]))}),k.$hide=function(){k.$$postDigest(function(){y.hide()})},k.$show=function(){k.$$postDigest(function(){y.show()})},k.$toggle=function(){k.$$postDigest(function(){y.toggle()})},y.$isShown=k.$isShown=!1;var S,x,T,C=angular.element('
');return C.css({position:'fixed',top:'0px',left:'0px',bottom:'0px',right:'0px','z-index':1038}),D.then(function(e){S=e,y.init()}),y.init=function(){b.show&&k.$$postDigest(function(){y.show()})},y.destroy=function(){w(),C&&(C.remove(),C=null),k.$destroy()},y.show=function(){if(!y.$isShown){var e,t;if(angular.isElement(b.container)?(e=b.container,t=b.container[0].lastChild?angular.element(b.container[0].lastChild):null):b.container?(e=g(b.container),t=e[0]&&e[0].lastChild?angular.element(e[0].lastChild):null):(e=null,t=b.element),x&&w(),T=y.$scope.$new(),x=y.$element=S.link(T,function(e,t){}),!k.$emit(b.prefixEvent+'.show.before',y).defaultPrevented){x.css({display:'block'}).addClass(b.placement),b.animation&&(b.backdrop&&C.addClass(b.backdropAnimation),x.addClass(b.animation)),b.backdrop&&l.enter(C,h,null),angular.version.minor<=2?l.enter(x,e,t,n):l.enter(x,e,t).then(n),y.$isShown=k.$isShown=!0,p(k);var a=x[0];$(function(){a.focus()}),h.addClass(b.prefixClass+'-open'),b.animation&&h.addClass(b.prefixClass+'-with-'+b.animation),r(),u()}}},y.hide=function(){y.$isShown&&(k.$emit(b.prefixEvent+'.hide.before',y).defaultPrevented||(angular.version.minor<=2?l.leave(x,i):l.leave(x).then(i),b.backdrop&&l.leave(C),y.$isShown=k.$isShown=!1,p(k),s(),d()))},y.toggle=function(){y.$isShown?y.hide():y.show()},y.focus=function(){x[0].focus()},y.$onKeyUp=function(e){27===e.which&&y.$isShown&&(y.hide(),e.stopPropagation())},y}function p(e){e.$$phase||e.$root&&e.$root.$$phase||e.$digest()}function g(e,n){return angular.element((n||t).querySelectorAll(e))}var m=angular.forEach,$=(String.prototype.trim,n.requestAnimationFrame||n.setTimeout),h=angular.element(n.document.body);return f}]}).directive('bsModal',['$window','$sce','$modal',function(e,t,n){return{restrict:'EAC',scope:!0,link:function(e,a,o,i){var r={scope:e,element:a,show:!1};angular.forEach(['template','templateUrl','controller','controllerAs','contentTemplate','controller','placement','backdrop','keyboard','html','container','animation','id','prefixEvent','prefixClass'],function(e){angular.isDefined(o[e])&&(r[e]=o[e])});var s=/^(false|0|)$/i;angular.forEach(['backdrop','keyboard','html','container'],function(e){angular.isDefined(o[e])&&s.test(o[e])&&(r[e]=!1)}),angular.forEach(['title','content'],function(n){o[n]&&o.$observe(n,function(a,o){e[n]=t.trustAsHtml(a)})}),o.bsModal&&e.$watch(o.bsModal,function(t,n){angular.isObject(t)?angular.extend(e,t):e.content=t},!0);var l=n(r);a.on(o.trigger||'click',l.toggle),e.$on('$destroy',function(){l&&l.destroy(),r=null,l=null})}}}]),angular.module('mgcrea.ngStrap.navbar',[]).provider('$navbar',function(){var e=this.defaults={activeClass:'active',routeAttr:'data-match-route',strict:!1};this.$get=function(){return{defaults:e}}}).directive('bsNavbar',['$window','$location','$navbar',function(e,t,n){var a=n.defaults;return{restrict:'A',link:function(e,n,o,i){var r=angular.copy(a);angular.forEach(Object.keys(a),function(e){angular.isDefined(o[e])&&(r[e]=o[e])}),e.$watch(function(){return t.path()},function(e,t){var a=n[0].querySelectorAll('li['+r.routeAttr+']');angular.forEach(a,function(t){var n=angular.element(t),a=n.attr(r.routeAttr).replace('/','\\/');r.strict&&(a='^'+a+'$');var o=new RegExp(a,'i');o.test(e)?n.addClass(r.activeClass):n.removeClass(r.activeClass)})})}}}]),angular.module('mgcrea.ngStrap.popover',['mgcrea.ngStrap.tooltip']).provider('$popover',function(){var e=this.defaults={animation:'am-fade',customClass:'',container:!1,target:!1,placement:'right',templateUrl:'popover/popover.tpl.html',contentTemplate:!1,trigger:'click',keyboard:!0,html:!1,title:'',content:'',delay:0,autoClose:!1};this.$get=['$tooltip',function(t){function n(n,a){var o=angular.extend({},e,a),i=t(n,o);return o.content&&(i.$scope.content=o.content),i}return n}]}).directive('bsPopover',['$window','$sce','$popover',function(e,t,n){var a=e.requestAnimationFrame||e.setTimeout;return{restrict:'EAC',scope:!0,link:function(e,o,i){var r={scope:e};angular.forEach(['template','templateUrl','controller','controllerAs','contentTemplate','placement','container','delay','trigger','html','animation','customClass','autoClose','id','prefixClass','prefixEvent'],function(e){angular.isDefined(i[e])&&(r[e]=i[e])});var s=/^(false|0|)$/i;angular.forEach(['html','container','autoClose'],function(e){angular.isDefined(i[e])&&s.test(i[e])&&(r[e]=!1)});var l=o.attr('data-target');angular.isDefined(l)&&(r.target=s.test(l)?!1:l),angular.forEach(['title','content'],function(n){i[n]&&i.$observe(n,function(o,i){e[n]=t.trustAsHtml(o),angular.isDefined(i)&&a(function(){u&&u.$applyPlacement()})})}),i.bsPopover&&e.$watch(i.bsPopover,function(t,n){angular.isObject(t)?angular.extend(e,t):e.content=t,angular.isDefined(n)&&a(function(){u&&u.$applyPlacement()})},!0),i.bsShow&&e.$watch(i.bsShow,function(e,t){u&&angular.isDefined(e)&&(angular.isString(e)&&(e=!!e.match(/true|,?(popover),?/i)),e===!0?u.show():u.hide())}),i.viewport&&e.$watch(i.viewport,function(e){u&&angular.isDefined(e)&&u.setViewport(e)});var u=n(o,r);e.$on('$destroy',function(){u&&u.destroy(),r=null,u=null})}}}]),angular.module('mgcrea.ngStrap.scrollspy',['mgcrea.ngStrap.helpers.debounce','mgcrea.ngStrap.helpers.dimensions']).provider('$scrollspy',function(){var e=this.$$spies={},n=this.defaults={debounce:150,throttle:100,offset:100};this.$get=['$window','$document','$rootScope','dimensions','debounce','throttle',function(a,o,i,r,s,l){function u(e,t){return e[0].nodeName&&e[0].nodeName.toLowerCase()===t.toLowerCase()}function c(o){var c=angular.extend({},n,o);c.element||(c.element=p);var g=u(c.element,'body'),m=g?d:c.element,$=g?'window':c.id;if(e[$])return e[$].$$count++,e[$];var h,v,w,y,b,D,k,S,x={},T=x.$trackedElements=[],C=[];return x.init=function(){this.$$count=1,y=s(this.checkPosition,c.debounce),b=l(this.checkPosition,c.throttle),m.on('click',this.checkPositionWithEventLoop),d.on('resize',y),m.on('scroll',b),D=s(this.checkOffsets,c.debounce),h=i.$on('$viewContentLoaded',D),v=i.$on('$includeContentLoaded',D),D(),$&&(e[$]=x)},x.destroy=function(){this.$$count--,this.$$count>0||(m.off('click',this.checkPositionWithEventLoop),d.off('resize',y),m.off('scroll',b),h(),v(),$&&delete e[$])},x.checkPosition=function(){if(C.length){if(S=(g?a.pageYOffset:m.prop('scrollTop'))||0,k=Math.max(a.innerHeight,f.prop('clientHeight')),SC[e+1].offsetTop))return x.$activateElement(C[e])}},x.checkPositionWithEventLoop=function(){setTimeout(x.checkPosition,1)},x.$activateElement=function(e){if(w){var t=x.$getTrackedElement(w);t&&(t.source.removeClass('active'),u(t.source,'li')&&u(t.source.parent().parent(),'li')&&t.source.parent().parent().removeClass('active'))}w=e.target,e.source.addClass('active'),u(e.source,'li')&&u(e.source.parent().parent(),'li')&&e.source.parent().parent().addClass('active')},x.$getTrackedElement=function(e){return T.filter(function(t){return t.target===e})[0]},x.checkOffsets=function(){angular.forEach(T,function(e){var n=t.querySelector(e.target);e.offsetTop=n?r.offset(n).top:null,c.offset&&null!==e.offsetTop&&(e.offsetTop-=1*c.offset)}),C=T.filter(function(e){return null!==e.offsetTop}).sort(function(e,t){return e.offsetTop-t.offsetTop}),y()},x.trackElement=function(e,t){T.push({target:e,source:t})},x.untrackElement=function(e,t){for(var n,a=T.length;a--;)if(T[a].target===e&&T[a].source===t){n=a;break}T=T.splice(n,1)},x.activate=function(e){T[e].addClass('active')},x.init(),x}var d=angular.element(a),f=angular.element(o.prop('documentElement')),p=angular.element(a.document.body);return c}]}).directive('bsScrollspy',['$rootScope','debounce','dimensions','$scrollspy',function(e,t,n,a){return{restrict:'EAC',link:function(e,t,n){var o={scope:e};angular.forEach(['offset','target'],function(e){angular.isDefined(n[e])&&(o[e]=n[e])});var i=a(o);i.trackElement(o.target,t),e.$on('$destroy',function(){i&&(i.untrackElement(o.target,t),i.destroy()),o=null,i=null})}}}]).directive('bsScrollspyList',['$rootScope','debounce','dimensions','$scrollspy',function(e,t,n,a){return{restrict:'A',compile:function(e,t){var n=e[0].querySelectorAll('li > a[href]');angular.forEach(n,function(e){var t=angular.element(e);t.parent().attr('bs-scrollspy','').attr('data-target',t.attr('href'))})}}}]),angular.module('mgcrea.ngStrap.select',['mgcrea.ngStrap.tooltip','mgcrea.ngStrap.helpers.parseOptions']).provider('$select',function(){var e=this.defaults={animation:'am-fade',prefixClass:'select',prefixEvent:'$select',placement:'bottom-left',templateUrl:'select/select.tpl.html',trigger:'focus',container:!1,keyboard:!0,html:!1,delay:0,multiple:!1,allNoneButtons:!1,sort:!0,caretHtml:' ',placeholder:'Choose among the following...',allText:'All',noneText:'None',maxLength:3,maxLengthHtml:'selected',iconCheckmark:'glyphicon glyphicon-ok'};this.$get=['$window','$document','$rootScope','$tooltip','$timeout',function(t,n,a,o,i){function r(t,n,a){var r={},s=angular.extend({},e,a);r=o(t,s);var u=r.$scope;u.$matches=[],u.$activeIndex=s.multiple?[]:-1,u.$isMultiple=s.multiple,u.$showAllNoneButtons=s.allNoneButtons&&s.multiple,u.$iconCheckmark=s.iconCheckmark,u.$allText=s.allText,u.$noneText=s.noneText,u.$activate=function(e){u.$$postDigest(function(){r.activate(e)})},u.$select=function(e,t){u.$$postDigest(function(){r.select(e)})},u.$isVisible=function(){return r.$isVisible()},u.$isActive=function(e){return r.$isActive(e)},u.$selectAll=function(){for(var e=0;e=u.$matches.length&&(u.$activeIndex=s.multiple?[]:0)},r.$isVisible=function(){return s.minLength&&n?u.$matches.length&&n.$viewValue.length>=s.minLength:u.$matches.length},r.$isActive=function(e){return s.multiple?-1!==u.$activeIndex.indexOf(e):u.$activeIndex===e},r.$getIndex=function(e){var t=u.$matches.length,n=t;if(t){for(n=t;n--&&u.$matches[n].value!==e;);if(!(0>n))return n}},r.$onMouseDown=function(e){if(e.preventDefault(),e.stopPropagation(),l){var t=angular.element(e.target);t.triggerHandler('click')}},r.$onKeyDown=function(e){return/(9|13|38|40)/.test(e.keyCode)?(e.preventDefault(),e.stopPropagation(),s.multiple&&9===e.keyCode?r.hide():s.multiple||13!==e.keyCode&&9!==e.keyCode?void(s.multiple||(38===e.keyCode&&u.$activeIndex>0?u.$activeIndex--:38===e.keyCode&&u.$activeIndex<0?u.$activeIndex=u.$matches.length-1:40===e.keyCode&&u.$activeIndex'),c.after(t)}var d=o(n.bsOptions),f=a(t,r,s),p=d.$match[7].replace(/\|.+/,'').trim();e.$watchCollection(p,function(t,n){d.valuesFn(e,r).then(function(e){f.update(e),r.$render()})}),e.$watch(n.ngModel,function(e,t){f.$updateActiveIndex(),r.$render()},!0),r.$render=function(){var e,n;s.multiple&&angular.isArray(r.$modelValue)?(e=r.$modelValue.map(function(e){return n=f.$getIndex(e),angular.isDefined(n)?f.$scope.$matches[n].label:!1}).filter(angular.isDefined),e=e.length>(s.maxLength||i.maxLength)?e.length+' '+(s.maxLengthHtml||i.maxLengthHtml):e.join(', ')):(n=f.$getIndex(r.$modelValue),e=angular.isDefined(n)?f.$scope.$matches[n].label:!1),t.html((e?e:s.placeholder)+(s.caretHtml?s.caretHtml:i.caretHtml))},s.multiple&&(r.$isEmpty=function(e){return!e||0===e.length}),e.$on('$destroy',function(){f&&f.destroy(),s=null,f=null})}}}]),angular.module('mgcrea.ngStrap.timepicker',['mgcrea.ngStrap.helpers.dateParser','mgcrea.ngStrap.helpers.dateFormatter','mgcrea.ngStrap.tooltip']).provider('$timepicker',function(){var e=this.defaults={animation:'am-fade',prefixClass:'timepicker',placement:'bottom-left',templateUrl:'timepicker/timepicker.tpl.html',trigger:'focus',container:!1,keyboard:!0,html:!1,delay:0,useNative:!0,timeType:'date',timeFormat:'shortTime',timezone:null,modelTimeFormat:null,autoclose:!1,minTime:-(1/0),maxTime:+(1/0),length:5,hourStep:1,minuteStep:5,secondStep:5,roundDisplay:!1,iconUp:'glyphicon glyphicon-chevron-up',iconDown:'glyphicon glyphicon-chevron-down',arrowBehavior:'pager'};this.$get=['$window','$document','$rootScope','$sce','$dateFormatter','$tooltip','$timeout',function(t,n,a,o,i,r,s){function l(t,n,a){function o(e){var t=6e4*g.minuteStep;return new Date(Math.floor(e.getTime()/t)*t)}function l(e,n){var a=e+n;if(t[0].createTextRange){var o=t[0].createTextRange();o.collapse(!0),o.moveStart('character',e),o.moveEnd('character',a),o.select()}else t[0].setSelectionRange?t[0].setSelectionRange(e,a):angular.isUndefined(t[0].selectionStart)&&(t[0].selectionStart=e,t[0].selectionEnd=a)}function d(){t[0].focus()}var f=r(t,angular.extend({},e,a)),p=a.scope,g=f.$options,m=f.$scope,$=g.lang,h=function(e,t,n){return i.formatDate(e,t,$,n)},v=0,w=g.roundDisplay?o(new Date):new Date,y=n.$dateValue||w,b={hour:y.getHours(),meridian:y.getHours()<12,minute:y.getMinutes(),second:y.getSeconds(),millisecond:y.getMilliseconds()},D=i.getDatetimeFormat(g.timeFormat,$),k=i.hoursFormat(D),S=i.timeSeparator(D),x=i.minutesFormat(D),T=i.secondsFormat(D),C=i.showSeconds(D),M=i.showAM(D);m.$iconUp=g.iconUp,m.$iconDown=g.iconDown,m.$select=function(e,t){f.select(e,t)},m.$moveIndex=function(e,t){f.$moveIndex(e,t)},m.$switchMeridian=function(e){f.switchMeridian(e)},f.update=function(e){angular.isDate(e)&&!isNaN(e.getTime())?(f.$date=e,angular.extend(b,{hour:e.getHours(),minute:e.getMinutes(),second:e.getSeconds(),millisecond:e.getMilliseconds()}),f.$build()):f.$isBuilt||f.$build()},f.select=function(e,t,a){(!n.$dateValue||isNaN(n.$dateValue.getTime()))&&(n.$dateValue=new Date(1970,0,1)),angular.isDate(e)||(e=new Date(e)),0===t?n.$dateValue.setHours(e.getHours()):1===t?n.$dateValue.setMinutes(e.getMinutes()):2===t&&n.$dateValue.setSeconds(e.getSeconds()),n.$setViewValue(angular.copy(n.$dateValue)),n.$render(),g.autoclose&&!a&&s(function(){f.hide(!0)})},f.switchMeridian=function(e){if(n.$dateValue&&!isNaN(n.$dateValue.getTime())){var t=(e||n.$dateValue).getHours();n.$dateValue.setHours(12>t?t+12:t-12),n.$setViewValue(angular.copy(n.$dateValue)),n.$render()}},f.$build=function(){var e,t,n=m.midIndex=parseInt(g.length/2,10),a=[];for(e=0;e1*g.maxTime},m.$arrowAction=function(e,t){'picker'===g.arrowBehavior?f.$setTimeByStep(e,t):f.$moveIndex(e,t)},f.$setTimeByStep=function(e,t){var n=new Date(f.$date||y),a=n.getHours(),o=n.getMinutes(),i=n.getSeconds();0===t?n.setHours(a-parseInt(g.hourStep,10)*e):1===t?n.setMinutes(o-parseInt(g.minuteStep,10)*e):2===t&&n.setSeconds(i-parseInt(g.secondStep,10)*e),f.select(n,t,!0)},f.$moveIndex=function(e,t){var n;0===t?(n=new Date(1970,0,1,b.hour+e*g.length,b.minute,b.second),angular.extend(b,{hour:n.getHours()})):1===t?(n=new Date(1970,0,1,b.hour,b.minute+e*g.length*g.minuteStep,b.second),angular.extend(b,{minute:n.getMinutes()})):2===t&&(n=new Date(1970,0,1,b.hour,b.minute,b.second+e*g.length*g.secondStep),angular.extend(b,{second:n.getSeconds()})),f.$build()},f.$onMouseDown=function(e){if('input'!==e.target.nodeName.toLowerCase()&&e.preventDefault(),e.stopPropagation(),c){var t=angular.element(e.target);'button'!==t[0].nodeName.toLowerCase()&&(t=t.parent()),t.triggerHandler('click')}},f.$onKeyDown=function(e){if(/(38|37|39|40|13)/.test(e.keyCode)&&!e.shiftKey&&!e.altKey){if(e.preventDefault(),e.stopPropagation(),13===e.keyCode)return void f.hide(!0);var t=new Date(f.$date),n=t.getHours(),a=h(t,k).length,o=t.getMinutes(),i=h(t,x).length,r=t.getSeconds(),s=h(t,T).length,u=1,c=/(37|39)/.test(e.keyCode),d=2+1*C+1*M;c&&(37===e.keyCode?v=1>v?d-1:v-1:39===e.keyCode&&(v=d-1>v?v+1:0));var m=[0,a],$=0;38===e.keyCode&&($=-1),40===e.keyCode&&($=1);var w=2===v&&C,y=2===v&&!C||3===v&&C;0===v?(t.setHours(n+$*parseInt(g.hourStep,10)),a=h(t,k).length,m=[0,a]):1===v?(t.setMinutes(o+$*parseInt(g.minuteStep,10)),i=h(t,x).length,m=[a+u,i]):w?(t.setSeconds(r+$*parseInt(g.secondStep,10)),s=h(t,T).length,m=[a+u+i+u,s]):y&&(c||f.switchMeridian(),m=[a+u+i+u+(s+u)*C,2]),f.select(t,v,!0),l(m[0],m[1]),p.$digest()}};var E=f.init;f.init=function(){return u&&g.useNative?(t.prop('type','time'),void t.css('-webkit-appearance','textfield')):(c&&(t.prop('type','text'),t.attr('readonly','true'),t.on('click',d)),void E())};var A=f.destroy;f.destroy=function(){u&&g.useNative&&t.off('click',d),A()};var F=f.show;f.show=function(){!c&&t.attr('readonly')||t.attr('disabled')||(F(),s(function(){f.$element&&f.$element.on(c?'touchstart':'mousedown',f.$onMouseDown),g.keyboard&&t&&t.on('keydown',f.$onKeyDown)},0,!1))};var V=f.hide;return f.hide=function(e){f.$isShown&&(f.$element&&f.$element.off(c?'touchstart':'mousedown',f.$onMouseDown),g.keyboard&&t&&t.off('keydown',f.$onKeyDown),V(e))},f}var u=/(ip(a|o)d|iphone|android)/gi.test(t.navigator.userAgent),c='createTouch'in t.document&&u;return e.lang||(e.lang=i.getDefaultLocale()),l.defaults=e,l}]}).directive('bsTimepicker',['$window','$parse','$q','$dateFormatter','$dateParser','$timepicker',function(e,t,a,o,i,r){var s=r.defaults,l=/(ip(a|o)d|iphone|android)/gi.test(e.navigator.userAgent);return{restrict:'EAC',require:'ngModel',link:function(e,t,a,u){function c(e){if(angular.isDate(e)){var t=isNaN(f.minTime)||new Date(e.getTime()).setFullYear(1970,0,1)>=f.minTime,n=isNaN(f.maxTime)||new Date(e.getTime()).setFullYear(1970,0,1)<=f.maxTime,a=t&&n;u.$setValidity('date',a),u.$setValidity('min',t),u.$setValidity('max',n),a&&(u.$dateValue=e)}}function d(){return!u.$dateValue||isNaN(u.$dateValue.getTime())?'':$(u.$dateValue,f.timeFormat)}var f={scope:e};angular.forEach(['template','templateUrl','controller','controllerAs','placement','container','delay','trigger','keyboard','html','animation','autoclose','timeType','timeFormat','timezone','modelTimeFormat','useNative','hourStep','minuteStep','secondStep','length','arrowBehavior','iconUp','iconDown','roundDisplay','id','prefixClass','prefixEvent'],function(e){angular.isDefined(a[e])&&(f[e]=a[e])});var p=/^(false|0|)$/i;angular.forEach(['html','container','autoclose','useNative','roundDisplay'],function(e){angular.isDefined(a[e])&&p.test(a[e])&&(f[e]=!1)}),a.bsShow&&e.$watch(a.bsShow,function(e,t){g&&angular.isDefined(e)&&(angular.isString(e)&&(e=!!e.match(/true|,?(timepicker),?/i)),e===!0?g.show():g.hide())}),l&&(f.useNative||s.useNative)&&(f.timeFormat='HH:mm');var g=r(t,u,f);f=g.$options;var m=f.lang,$=function(e,t,n){return o.formatDate(e,t,m,n)},h=i({format:f.timeFormat,lang:m});angular.forEach(['minTime','maxTime'],function(e){angular.isDefined(a[e])&&a.$observe(e,function(t){g.$options[e]=h.getTimeForAttribute(e,t),!isNaN(g.$options[e])&&g.$build(),c(u.$dateValue)})}),e.$watch(a.ngModel,function(e,t){g.update(u.$dateValue)},!0),u.$parsers.unshift(function(e){var t;if(!e)return u.$setValidity('date',!0),null;var a=angular.isDate(e)?e:h.parse(e,u.$dateValue);return!a||isNaN(a.getTime())?(u.$setValidity('date',!1),n):(c(a),'string'===f.timeType?(t=h.timezoneOffsetAdjust(a,f.timezone,!0),$(t,f.modelTimeFormat||f.timeFormat)):(t=h.timezoneOffsetAdjust(u.$dateValue,f.timezone,!0),'number'===f.timeType?t.getTime():'unix'===f.timeType?t.getTime()/1e3:'iso'===f.timeType?t.toISOString():new Date(t)))}),u.$formatters.push(function(e){var t;return t=angular.isUndefined(e)||null===e?0/0:angular.isDate(e)?e:'string'===f.timeType?h.parse(e,null,f.modelTimeFormat):new Date('unix'===f.timeType?1e3*e:e),u.$dateValue=h.timezoneOffsetAdjust(t,f.timezone),d()}),u.$render=function(){t.val(d())},e.$on('$destroy',function(){g&&g.destroy(),f=null,g=null})}}}]),angular.module('mgcrea.ngStrap.tab',[]).provider('$tab',function(){var e=this.defaults={animation:'am-fade',template:'tab/tab.tpl.html',navClass:'nav-tabs',activeClass:'active'},t=this.controller=function(t,n,a){var o=this;o.$options=angular.copy(e),angular.forEach(['animation','navClass','activeClass'],function(e){angular.isDefined(a[e])&&(o.$options[e]=a[e])}),t.$navClass=o.$options.navClass,t.$activeClass=o.$options.activeClass,o.$panes=t.$panes=[],o.$activePaneChangeListeners=o.$viewChangeListeners=[],o.$push=function(e){angular.isUndefined(o.$panes.$active)&&t.$setActive(e.name||0),o.$panes.push(e)},o.$remove=function(e){var t,n=o.$panes.indexOf(e),a=o.$panes.$active;t=angular.isString(a)?o.$panes.map(function(e){return e.name}).indexOf(a):o.$panes.$active,o.$panes.splice(n,1),t>n?t--:n===t&&t===o.$panes.length&&t--,t>=0&&t=e.length&&(d.$activeIndex=u.autoSelect?0:-1),s(d),o(l.$applyPlacement)},l.activate=function(e){d.$activeIndex=e},l.select=function(e){if(-1!==e){var t=d.$matches[e].value;n.$setViewValue(t),n.$render(),d.$resetMatches(),c&&c.$digest(),d.$emit(u.prefixEvent+'.select',t,e,l)}},l.$isVisible=function(){return u.minLength&&n?d.$matches.length&&angular.isString(n.$viewValue)&&n.$viewValue.length>=u.minLength:!!d.$matches.length},l.$getIndex=function(e){var t=d.$matches.length,n=t;if(t){for(n=t;n--&&d.$matches[n].value!==e;);if(!(0>n))return n}},l.$onMouseDown=function(e){e.preventDefault(),e.stopPropagation()},l.$onKeyDown=function(e){/(38|40|13)/.test(e.keyCode)&&(!l.$isVisible()||13===e.keyCode&&-1===d.$activeIndex||(e.preventDefault(),e.stopPropagation()),13===e.keyCode&&d.$matches.length?l.select(d.$activeIndex):38===e.keyCode&&d.$activeIndex>0?d.$activeIndex--:40===e.keyCode&&d.$activeIndex0)return void r.$setViewValue(r.$viewValue.substring(0,r.$viewValue.length-1));e.length>c&&(e=e.slice(0,c));var n=g.$isVisible();n&&g.update(e),(1!==e.length||e[0].value!==t)&&(!n&&g.update(e),r.$render())})}),r.$formatters.push(function(e){var t=p.displayValue(e);return t?t:e&&'object'!=typeof e?e:''}),r.$render=function(){if(r.$isEmpty(r.$viewValue))return t.val('');var e=g.$getIndex(r.$modelValue),n=angular.isDefined(e)?g.$scope.$matches[e].label:r.$viewValue;n=angular.isObject(n)?p.displayValue(n):n;var a=n?n.toString().replace(/<(?:.|\n)*?>/gm,''):'';t.val(s.trimValue===!1?a:a.trim())},e.$on('$destroy',function(){g&&g.destroy(),s=null,g=null})}}}]),angular.module('mgcrea.ngStrap.tooltip',['mgcrea.ngStrap.core','mgcrea.ngStrap.helpers.dimensions']).provider('$tooltip',function(){var e=this.defaults={animation:'am-fade',customClass:'',prefixClass:'tooltip',prefixEvent:'tooltip',container:!1,target:!1,placement:'top',templateUrl:'tooltip/tooltip.tpl.html',template:'',contentTemplate:!1,trigger:'hover focus',keyboard:!1,html:!1,show:!1,title:'',type:'',delay:0,autoClose:!1,bsEnabled:!0,viewport:{selector:'body',padding:0}};this.$get=['$window','$rootScope','$bsCompiler','$q','$templateCache','$http','$animate','$sce','dimensions','$$rAF','$timeout',function(n,a,o,i,r,s,l,u,c,d,f){function p(i,r){function s(){P.$emit(V.prefixEvent+'.show',F)}function p(){if(P.$emit(V.prefixEvent+'.hide',F),R===j){if(z&&'focus'===V.trigger)return i[0].blur();A()}}function v(){var e=V.trigger.split(' ');angular.forEach(e,function(e){'click'===e?i.on('click',F.toggle):'manual'!==e&&(i.on('hover'===e?'mouseenter':'focus',F.enter),i.on('hover'===e?'mouseleave':'blur',F.leave),'button'===I&&'hover'!==e&&i.on($?'touchstart':'mousedown',F.$onFocusElementMouseDown))})}function w(){for(var e=V.trigger.split(' '),t=e.length;t--;){var n=e[t];'click'===n?i.off('click',F.toggle):'manual'!==n&&(i.off('hover'===n?'mouseenter':'focus',F.enter),i.off('hover'===n?'mouseleave':'blur',F.leave),'button'===I&&'hover'!==n&&i.off($?'touchstart':'mousedown',F.$onFocusElementMouseDown))}}function y(){'focus'!==V.trigger?R.on('keyup',F.$onKeyUp):i.on('keyup',F.$onFocusKeyUp)}function b(){'focus'!==V.trigger?R.off('keyup',F.$onKeyUp):i.off('keyup',F.$onFocusKeyUp)}function D(){f(function(){R.on('click',S),h.on('click',F.hide),K=!0},0,!1)}function k(){K&&(R.off('click',S),h.off('click',F.hide),K=!1)}function S(e){e.stopPropagation()}function x(e){e=e||V.target||i;var a=e[0],o='BODY'===a.tagName,r=a.getBoundingClientRect(),s={};for(var l in r)s[l]=r[l];null===s.width&&(s=angular.extend({},s,{width:r.right-r.left,height:r.bottom-r.top}));var u=o?{top:0,left:0}:c.offset(a),d={scroll:o?t.documentElement.scrollTop||t.body.scrollTop:e.prop('scrollTop')||0},f=o?{width:t.documentElement.clientWidth,height:n.innerHeight}:null;return angular.extend({},s,d,f,u)}function T(e,t,n,a){var o,i=e.split('-');switch(i[0]){case'right':o={top:t.top+t.height/2-a/2,left:t.left+t.width};break;case'bottom':o={top:t.top+t.height,left:t.left+t.width/2-n/2};break;case'left':o={top:t.top+t.height/2-a/2,left:t.left-n};break;default:o={top:t.top-a,left:t.left+t.width/2-n/2}}if(!i[1])return o;if('top'===i[0]||'bottom'===i[0])switch(i[1]){case'left':o.left=t.left;break;case'right':o.left=t.left+t.width-n}else if('left'===i[0]||'right'===i[0])switch(i[1]){case'top':o.top=t.top-a;break;case'bottom':o.top=t.top+t.height}return o}function C(e,t){var n=R[0],a=n.offsetWidth,o=n.offsetHeight,i=parseInt(c.css(n,'margin-top'),10),r=parseInt(c.css(n,'margin-left'),10);isNaN(i)&&(i=0),isNaN(r)&&(r=0),e.top=e.top+i,e.left=e.left+r,c.setOffset(n,angular.extend({using:function(e){R.css({top:Math.round(e.top)+'px',left:Math.round(e.left)+'px',right:''})}},e),0);var s=n.offsetWidth,l=n.offsetHeight;if('top'===t&&l!==o&&(e.top=e.top+o-l),!/top-left|top-right|bottom-left|bottom-right/.test(t)){var u=M(t,e,s,l);if(u.left?e.left+=u.left:e.top+=u.top,c.setOffset(n,e),/top|right|bottom|left/.test(t)){var d=/top|bottom/.test(t),f=d?2*u.left-a+s:2*u.top-o+l,p=d?'offsetWidth':'offsetHeight';E(f,n[p],d)}}}function M(e,t,n,a){var o={top:0,left:0};if(!F.$viewport)return o;var i=V.viewport&&V.viewport.padding||0,r=x(F.$viewport);if(/right|left/.test(e)){var s=t.top-i-r.scroll,l=t.top+i-r.scroll+a;sr.top+r.height&&(o.top=r.top+r.height-l)}else{var u=t.left-i,c=t.left+i+n;ur.right&&(o.left=r.left+r.width-c)}return o}function E(e,t,n){var a=m('.tooltip-arrow, .arrow',R[0]);a.css(n?'left':'top',50*(1-e/t)+'%').css(n?'top':'left','')}function A(){clearTimeout(H),F.$isShown&&null!==R&&(V.autoClose&&k(),V.keyboard&&b()),Y&&(Y.$destroy(),Y=null),R&&(R.remove(),R=F.$element=null)}var F={},V=F.$options=angular.extend({},e,r),O=F.$promise=o.compile(V),P=F.$scope=V.scope&&V.scope.$new()||a.$new(),I=i[0].nodeName.toLowerCase();if(V.delay&&angular.isString(V.delay)){var N=V.delay.split(',').map(parseFloat);V.delay=N.length>1?{show:N[0],hide:N[1]}:N[0]}F.$id=V.id||i.attr('id')||'',V.title&&(P.title=u.trustAsHtml(V.title)),P.$setEnabled=function(e){P.$$postDigest(function(){F.setEnabled(e)})},P.$hide=function(){P.$$postDigest(function(){F.hide()})},P.$show=function(){P.$$postDigest(function(){F.show()})},P.$toggle=function(){P.$$postDigest(function(){F.toggle()})},F.$isShown=P.$isShown=!1;var H,L,U,R,q,Y;O.then(function(e){U=e,F.init()}),F.init=function(){V.delay&&angular.isNumber(V.delay)&&(V.delay={show:V.delay,hide:V.delay}),'self'===V.container?q=i:angular.isElement(V.container)?q=V.container:V.container&&(q=m(V.container)),v(),V.target&&(V.target=angular.isElement(V.target)?V.target:m(V.target)),V.show&&P.$$postDigest(function(){'focus'===V.trigger?i[0].focus():F.show()})},F.destroy=function(){w(),A(),P.$destroy()},F.enter=function(){return clearTimeout(H),L='in',V.delay&&V.delay.show?void(H=setTimeout(function(){'in'===L&&F.show()},V.delay.show)):F.show()},F.show=function(){if(V.bsEnabled&&!F.$isShown){P.$emit(V.prefixEvent+'.show.before',F);var e,t;V.container?(e=q,t=q[0].lastChild?angular.element(q[0].lastChild):null):(e=null,t=i),R&&A(),Y=F.$scope.$new(),R=F.$element=U.link(Y,function(e,t){}),R.css({top:'-9999px',left:'-9999px',right:'auto',display:'block',visibility:'hidden'}),V.animation&&R.addClass(V.animation),V.type&&R.addClass(V.prefixClass+'-'+V.type),V.customClass&&R.addClass(V.customClass),t?t.after(R):e.prepend(R),F.$isShown=P.$isShown=!0,g(P),F.$applyPlacement(),angular.version.minor<=2?l.enter(R,e,t,s):l.enter(R,e,t).then(s),g(P),d(function(){R&&R.css({visibility:'visible'})}),V.keyboard&&('focus'!==V.trigger&&F.focus(),y()),V.autoClose&&D()}},F.leave=function(){return clearTimeout(H),L='out',V.delay&&V.delay.hide?void(H=setTimeout(function(){'out'===L&&F.hide()},V.delay.hide)):F.hide()};var z,j;F.hide=function(e){F.$isShown&&(P.$emit(V.prefixEvent+'.hide.before',F),z=e,j=R,angular.version.minor<=2?l.leave(R,p):l.leave(R).then(p),F.$isShown=P.$isShown=!1,g(P),V.keyboard&&null!==R&&b(),V.autoClose&&null!==R&&k())},F.toggle=function(){F.$isShown?F.leave():F.enter()},F.focus=function(){R[0].focus()},F.setEnabled=function(e){V.bsEnabled=e},F.setViewport=function(e){V.viewport=e},F.$applyPlacement=function(){if(R){var t=V.placement,n=/\s?auto?\s?/i,a=n.test(t);a&&(t=t.replace(n,'')||e.placement),R.addClass(V.placement);var o=x(),i=R.prop('offsetWidth'),r=R.prop('offsetHeight');if(F.$viewport=V.viewport&&m(V.viewport.selector||V.viewport),a){var s=t,l=x(F.$viewport);s.indexOf('bottom')>=0&&o.bottom+r>l.bottom?t=s.replace('bottom','top'):s.indexOf('top')>=0&&o.top-rl.width?t='right'===s?'left':t.replace('left','right'):('left'===s||'bottom-right'===s||'top-right'===s)&&o.left-i= scrollHeight - offsetBottom)) {\n return 'bottom';\n } else {\n return 'middle';\n }\n\n }\n\n function getScrollTop() {\n return targetEl[0] === $window ? $window.pageYOffset : targetEl[0].scrollTop;\n }\n\n function getScrollHeight() {\n return targetEl[0] === $window ? $window.document.body.scrollHeight : targetEl[0].scrollHeight;\n }\n\n $affix.init();\n return $affix;\n\n }\n\n return AffixFactory;\n\n };\n\n })\n\n .directive('bsAffix', function($affix, $window) {\n\n return {\n restrict: 'EAC',\n require: '^?bsAffixTarget',\n link: function postLink(scope, element, attr, affixTarget) {\n\n var options = {scope: scope, target: affixTarget ? affixTarget.$element : angular.element($window)};\n angular.forEach(['offsetTop', 'offsetBottom', 'offsetParent', 'offsetUnpin', 'inlineStyles'], function(key) {\n if(angular.isDefined(attr[key])) {\n var option = attr[key];\n if (/true/i.test(option)) option = true;\n if (/false/i.test(option)) option = false;\n options[key] = option;\n }\n });\n\n var affix = $affix(element, options);\n scope.$on('$destroy', function() {\n affix && affix.destroy();\n options = null;\n affix = null;\n });\n\n }\n };\n\n })\n\n .directive('bsAffixTarget', function() {\n return {\n controller: function($element) {\n this.$element = $element;\n }\n };\n });\n\n// Source: alert/alert.js\n// @BUG: following snippet won't compile correctly\n// @TODO: submit issue to core\n// ' ' +\n\nangular.module('mgcrea.ngStrap.alert', ['mgcrea.ngStrap.modal'])\n\n .provider('$alert', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'alert',\n prefixEvent: 'alert',\n placement: null,\n templateUrl: 'alert/alert.tpl.html',\n container: false,\n element: null,\n backdrop: false,\n keyboard: true,\n show: true,\n // Specific options\n duration: false,\n type: false,\n dismissable: true\n };\n\n this.$get = function($modal, $timeout) {\n\n function AlertFactory(config) {\n\n var $alert = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $alert = $modal(options);\n\n // Support scope as string options [/*title, content, */ type, dismissable]\n $alert.$scope.dismissable = !!options.dismissable;\n if(options.type) {\n $alert.$scope.type = options.type;\n }\n\n // Support auto-close duration\n var show = $alert.show;\n if(options.duration) {\n $alert.show = function() {\n show();\n $timeout(function() {\n $alert.hide();\n }, options.duration * 1000);\n };\n }\n\n return $alert;\n\n }\n\n return AlertFactory;\n\n };\n\n })\n\n .directive('bsAlert', function($window, $sce, $alert) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'keyboard', 'html', 'container', 'animation', 'duration', 'dismissable'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['keyboard', 'html', 'container', 'dismissable'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // overwrite inherited title value when no value specified\n // fix for angular 1.3.1 531a8de72c439d8ddd064874bf364c00cedabb11\n if (!scope.hasOwnProperty('title')){\n scope.title = '';\n }\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content', 'type'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsAlert && scope.$watch(attr.bsAlert, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize alert\n var alert = $alert(options);\n\n // Trigger\n element.on(attr.trigger || 'click', alert.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (alert) alert.destroy();\n options = null;\n alert = null;\n });\n\n }\n };\n\n });\n\n// Source: aside/aside.js\nangular.module('mgcrea.ngStrap.aside', ['mgcrea.ngStrap.modal'])\n\n .provider('$aside', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade-and-slide-right',\n prefixClass: 'aside',\n prefixEvent: 'aside',\n placement: 'right',\n templateUrl: 'aside/aside.tpl.html',\n contentTemplate: false,\n container: false,\n element: null,\n backdrop: true,\n keyboard: true,\n html: false,\n show: true\n };\n\n this.$get = function($modal) {\n\n function AsideFactory(config) {\n\n var $aside = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $aside = $modal(options);\n\n return $aside;\n\n }\n\n return AsideFactory;\n\n };\n\n })\n\n .directive('bsAside', function($window, $sce, $aside) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'backdrop', 'keyboard', 'html', 'container', 'animation'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['backdrop', 'keyboard', 'html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsAside && scope.$watch(attr.bsAside, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize aside\n var aside = $aside(options);\n\n // Trigger\n element.on(attr.trigger || 'click', aside.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (aside) aside.destroy();\n options = null;\n aside = null;\n });\n\n }\n };\n\n });\n\n// Source: button/button.js\nangular.module('mgcrea.ngStrap.button', [])\n\n .provider('$button', function() {\n\n var defaults = this.defaults = {\n activeClass:'active',\n toggleEvent:'click'\n };\n\n this.$get = function() {\n return {defaults: defaults};\n };\n\n })\n\n .directive('bsCheckboxGroup', function() {\n\n return {\n restrict: 'A',\n require: 'ngModel',\n compile: function postLink(element, attr) {\n element.attr('data-toggle', 'buttons');\n element.removeAttr('ng-model');\n var children = element[0].querySelectorAll('input[type=\"checkbox\"]');\n angular.forEach(children, function(child) {\n var childEl = angular.element(child);\n childEl.attr('bs-checkbox', '');\n childEl.attr('ng-model', attr.ngModel + '.' + childEl.attr('value'));\n });\n }\n\n };\n\n })\n\n .directive('bsCheckbox', function($button, $$rAF) {\n\n var defaults = $button.defaults;\n var constantValueRegExp = /^(true|false|\\d+)$/;\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n var options = defaults;\n\n // Support label > input[type=\"checkbox\"]\n var isInput = element[0].nodeName === 'INPUT';\n var activeElement = isInput ? element.parent() : element;\n\n var trueValue = angular.isDefined(attr.trueValue) ? attr.trueValue : true;\n if(constantValueRegExp.test(attr.trueValue)) {\n trueValue = scope.$eval(attr.trueValue);\n }\n var falseValue = angular.isDefined(attr.falseValue) ? attr.falseValue : false;\n if(constantValueRegExp.test(attr.falseValue)) {\n falseValue = scope.$eval(attr.falseValue);\n }\n\n // Parse exotic values\n var hasExoticValues = typeof trueValue !== 'boolean' || typeof falseValue !== 'boolean';\n if(hasExoticValues) {\n controller.$parsers.push(function(viewValue) {\n // console.warn('$parser', element.attr('ng-model'), 'viewValue', viewValue);\n return viewValue ? trueValue : falseValue;\n });\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n return angular.equals(modelValue, trueValue);\n });\n // Fix rendering for exotic values\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n controller.$render();\n });\n }\n\n // model -> view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var isActive = angular.equals(controller.$modelValue, trueValue);\n $$rAF(function() {\n if(isInput) element[0].checked = isActive;\n activeElement.toggleClass(options.activeClass, isActive);\n });\n };\n\n // view -> model\n element.bind(options.toggleEvent, function() {\n scope.$apply(function () {\n // console.warn('!click', element.attr('ng-model'), 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue, 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue);\n if(!isInput) {\n controller.$setViewValue(!activeElement.hasClass('active'));\n }\n if(!hasExoticValues) {\n controller.$render();\n }\n });\n });\n\n }\n\n };\n\n })\n\n .directive('bsRadioGroup', function() {\n\n return {\n restrict: 'A',\n require: 'ngModel',\n compile: function postLink(element, attr) {\n element.attr('data-toggle', 'buttons');\n element.removeAttr('ng-model');\n var children = element[0].querySelectorAll('input[type=\"radio\"]');\n angular.forEach(children, function(child) {\n angular.element(child).attr('bs-radio', '');\n angular.element(child).attr('ng-model', attr.ngModel);\n });\n }\n\n };\n\n })\n\n .directive('bsRadio', function($button, $$rAF) {\n\n var defaults = $button.defaults;\n var constantValueRegExp = /^(true|false|\\d+)$/;\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n var options = defaults;\n\n // Support `label > input[type=\"radio\"]` markup\n var isInput = element[0].nodeName === 'INPUT';\n var activeElement = isInput ? element.parent() : element;\n\n var value;\n attr.$observe('value', function(v) {\n value = constantValueRegExp.test(v) ? scope.$eval(v) : v;\n controller.$render();\n });\n\n // model -> view\n controller.$render = function () {\n // console.warn('$render', element.attr('value'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var isActive = angular.equals(controller.$modelValue, value);\n $$rAF(function() {\n if(isInput) element[0].checked = isActive;\n activeElement.toggleClass(options.activeClass, isActive);\n });\n };\n\n // view -> model\n element.bind(options.toggleEvent, function() {\n scope.$apply(function () {\n // console.warn('!click', element.attr('value'), 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue, 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue);\n controller.$setViewValue(value);\n controller.$render();\n });\n });\n\n }\n\n };\n\n });\n\n// Source: collapse/collapse.js\nangular.module('mgcrea.ngStrap.collapse', [])\n\n .provider('$collapse', function() {\n\n var defaults = this.defaults = {\n animation: 'am-collapse',\n disallowToggle: false,\n activeClass: 'in',\n startCollapsed: false,\n allowMultiple: false\n };\n\n var controller = this.controller = function($scope, $element, $attrs) {\n var self = this;\n\n // Attributes options\n self.$options = angular.copy(defaults);\n angular.forEach(['animation', 'disallowToggle', 'activeClass', 'startCollapsed', 'allowMultiple'], function (key) {\n if(angular.isDefined($attrs[key])) self.$options[key] = $attrs[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['disallowToggle', 'startCollapsed', 'allowMultiple'], function(key) {\n if(angular.isDefined($attrs[key]) && falseValueRegExp.test($attrs[key])) {\n self.$options[key] = false;\n }\n });\n\n self.$toggles = [];\n self.$targets = [];\n\n self.$viewChangeListeners = [];\n\n self.$registerToggle = function(element) {\n self.$toggles.push(element);\n };\n self.$registerTarget = function(element) {\n self.$targets.push(element);\n };\n\n self.$unregisterToggle = function(element) {\n var index = self.$toggles.indexOf(element);\n // remove toggle from $toggles array\n self.$toggles.splice(index, 1);\n };\n self.$unregisterTarget = function(element) {\n var index = self.$targets.indexOf(element);\n\n // remove element from $targets array\n self.$targets.splice(index, 1);\n\n if (self.$options.allowMultiple) {\n // remove target index from $active array values\n deactivateItem(element);\n }\n\n // fix active item indexes\n fixActiveItemIndexes(index);\n\n self.$viewChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n // use array to store all the currently open panels\n self.$targets.$active = !self.$options.startCollapsed ? [0] : [];\n self.$setActive = $scope.$setActive = function(value) {\n if(angular.isArray(value)) {\n self.$targets.$active = value;\n }\n else if(!self.$options.disallowToggle) {\n // toogle element active status\n isActive(value) ? deactivateItem(value) : activateItem(value);\n } else {\n activateItem(value);\n }\n\n self.$viewChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n self.$activeIndexes = function() {\n return self.$options.allowMultiple ? self.$targets.$active :\n self.$targets.$active.length === 1 ? self.$targets.$active[0] : -1;\n };\n\n function fixActiveItemIndexes(index) {\n // item with index was removed, so we\n // need to adjust other items index values\n var activeIndexes = self.$targets.$active;\n for(var i = 0; i < activeIndexes.length; i++) {\n if (index < activeIndexes[i]) {\n activeIndexes[i] = activeIndexes[i] - 1;\n }\n\n // the last item is active, so we need to\n // adjust its index\n if (activeIndexes[i] === self.$targets.length) {\n activeIndexes[i] = self.$targets.length - 1;\n }\n }\n }\n\n function isActive(value) {\n var activeItems = self.$targets.$active;\n return activeItems.indexOf(value) === -1 ? false : true;\n }\n\n function deactivateItem(value) {\n var index = self.$targets.$active.indexOf(value);\n if (index !== -1) {\n self.$targets.$active.splice(index, 1);\n }\n }\n\n function activateItem(value) {\n if (!self.$options.allowMultiple) {\n // remove current selected item\n self.$targets.$active.splice(0, 1);\n }\n\n if (self.$targets.$active.indexOf(value) === -1) {\n self.$targets.$active.push(value);\n }\n }\n\n };\n\n this.$get = function() {\n var $collapse = {};\n $collapse.defaults = defaults;\n $collapse.controller = controller;\n return $collapse;\n };\n\n })\n\n .directive('bsCollapse', function($window, $animate, $collapse) {\n\n var defaults = $collapse.defaults;\n\n return {\n require: ['?ngModel', 'bsCollapse'],\n controller: ['$scope', '$element', '$attrs', $collapse.controller],\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n if(ngModelCtrl) {\n\n // Update the modelValue following\n bsCollapseCtrl.$viewChangeListeners.push(function() {\n ngModelCtrl.$setViewValue(bsCollapseCtrl.$activeIndexes());\n });\n\n // modelValue -> $formatters -> viewValue\n ngModelCtrl.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n if (angular.isArray(modelValue)) {\n // model value is an array, so just replace\n // the active items directly\n bsCollapseCtrl.$setActive(modelValue);\n }\n else {\n var activeIndexes = bsCollapseCtrl.$activeIndexes();\n\n if (angular.isArray(activeIndexes)) {\n // we have an array of selected indexes\n if (activeIndexes.indexOf(modelValue * 1) === -1) {\n // item with modelValue index is not active\n bsCollapseCtrl.$setActive(modelValue * 1);\n }\n }\n else if (activeIndexes !== modelValue * 1) {\n bsCollapseCtrl.$setActive(modelValue * 1);\n }\n }\n return modelValue;\n });\n\n }\n\n }\n };\n\n })\n\n .directive('bsCollapseToggle', function() {\n\n return {\n require: ['^?ngModel', '^bsCollapse'],\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n // Add base attr\n element.attr('data-toggle', 'collapse');\n\n // Push pane to parent bsCollapse controller\n bsCollapseCtrl.$registerToggle(element);\n\n // remove toggle from collapse controller when toggle is destroyed\n scope.$on('$destroy', function() {\n bsCollapseCtrl.$unregisterToggle(element);\n });\n\n element.on('click', function() {\n var index = attrs.bsCollapseToggle && attrs.bsCollapseToggle !== 'bs-collapse-toggle' ? attrs.bsCollapseToggle : bsCollapseCtrl.$toggles.indexOf(element);\n bsCollapseCtrl.$setActive(index * 1);\n scope.$apply();\n });\n\n }\n };\n\n })\n\n .directive('bsCollapseTarget', function($animate) {\n\n return {\n require: ['^?ngModel', '^bsCollapse'],\n // scope: true,\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n // Add base class\n element.addClass('collapse');\n\n // Add animation class\n if(bsCollapseCtrl.$options.animation) {\n element.addClass(bsCollapseCtrl.$options.animation);\n }\n\n // Push pane to parent bsCollapse controller\n bsCollapseCtrl.$registerTarget(element);\n\n // remove pane target from collapse controller when target is destroyed\n scope.$on('$destroy', function() {\n bsCollapseCtrl.$unregisterTarget(element);\n });\n\n function render() {\n var index = bsCollapseCtrl.$targets.indexOf(element);\n var active = bsCollapseCtrl.$activeIndexes();\n var action = 'removeClass';\n if (angular.isArray(active)) {\n if (active.indexOf(index) !== -1) {\n action = 'addClass';\n }\n }\n else if (index === active) {\n action = 'addClass';\n }\n\n $animate[action](element, bsCollapseCtrl.$options.activeClass);\n }\n\n bsCollapseCtrl.$viewChangeListeners.push(function() {\n render();\n });\n render();\n\n }\n };\n\n });\n\n// Source: datepicker/datepicker.js\nangular.module('mgcrea.ngStrap.datepicker', [\n 'mgcrea.ngStrap.helpers.dateParser',\n 'mgcrea.ngStrap.helpers.dateFormatter',\n 'mgcrea.ngStrap.tooltip'])\n\n .provider('$datepicker', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n //uncommenting the following line will break backwards compatability\n // prefixEvent: 'datepicker',\n prefixClass: 'datepicker',\n placement: 'bottom-left',\n templateUrl: 'datepicker/datepicker.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n // lang: $locale.id,\n useNative: false,\n dateType: 'date',\n dateFormat: 'shortDate',\n timezone: null,\n modelDateFormat: null,\n dayFormat: 'dd',\n monthFormat: 'MMM',\n yearFormat: 'yyyy',\n monthTitleFormat: 'MMMM yyyy',\n yearTitleFormat: 'yyyy',\n strictFormat: false,\n autoclose: false,\n minDate: -Infinity,\n maxDate: +Infinity,\n startView: 0,\n minView: 0,\n startWeek: 0,\n daysOfWeekDisabled: '',\n iconLeft: 'glyphicon glyphicon-chevron-left',\n iconRight: 'glyphicon glyphicon-chevron-right'\n };\n\n this.$get = function($window, $document, $rootScope, $sce, $dateFormatter, datepickerViews, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n if(!defaults.lang) defaults.lang = $dateFormatter.getDefaultLocale();\n\n function DatepickerFactory(element, controller, config) {\n\n var $datepicker = $tooltip(element, angular.extend({}, defaults, config));\n var parentScope = config.scope;\n var options = $datepicker.$options;\n var scope = $datepicker.$scope;\n if(options.startView) options.startView -= options.minView;\n\n // View vars\n\n var pickerViews = datepickerViews($datepicker);\n $datepicker.$views = pickerViews.views;\n var viewDate = pickerViews.viewDate;\n scope.$mode = options.startView;\n scope.$iconLeft = options.iconLeft;\n scope.$iconRight = options.iconRight;\n var $picker = $datepicker.$views[scope.$mode];\n\n // Scope methods\n\n scope.$select = function(date) {\n $datepicker.select(date);\n };\n scope.$selectPane = function(value) {\n $datepicker.$selectPane(value);\n };\n scope.$toggleMode = function() {\n $datepicker.setMode((scope.$mode + 1) % $datepicker.$views.length);\n };\n\n // Public methods\n\n $datepicker.update = function(date) {\n // console.warn('$datepicker.update() newValue=%o', date);\n if(angular.isDate(date) && !isNaN(date.getTime())) {\n $datepicker.$date = date;\n $picker.update.call($picker, date);\n }\n // Build only if pristine\n $datepicker.$build(true);\n };\n\n $datepicker.updateDisabledDates = function(dateRanges) {\n options.disabledDateRanges = dateRanges;\n for(var i = 0, l = scope.rows.length; i < l; i++) {\n angular.forEach(scope.rows[i], $datepicker.$setDisabledEl);\n }\n };\n\n $datepicker.select = function(date, keep) {\n // console.warn('$datepicker.select', date, scope.$mode);\n if(!angular.isDate(controller.$dateValue)) controller.$dateValue = new Date(date);\n if(!scope.$mode || keep) {\n controller.$setViewValue(angular.copy(date));\n controller.$render();\n if(options.autoclose && !keep) {\n $timeout(function() { $datepicker.hide(true); });\n }\n } else {\n angular.extend(viewDate, {year: date.getFullYear(), month: date.getMonth(), date: date.getDate()});\n $datepicker.setMode(scope.$mode - 1);\n $datepicker.$build();\n }\n };\n\n $datepicker.setMode = function(mode) {\n // console.warn('$datepicker.setMode', mode);\n scope.$mode = mode;\n $picker = $datepicker.$views[scope.$mode];\n $datepicker.$build();\n };\n\n // Protected methods\n\n $datepicker.$build = function(pristine) {\n // console.warn('$datepicker.$build() viewDate=%o', viewDate);\n if(pristine === true && $picker.built) return;\n if(pristine === false && !$picker.built) return;\n $picker.build.call($picker);\n };\n\n $datepicker.$updateSelected = function() {\n for(var i = 0, l = scope.rows.length; i < l; i++) {\n angular.forEach(scope.rows[i], updateSelected);\n }\n };\n\n $datepicker.$isSelected = function(date) {\n return $picker.isSelected(date);\n };\n\n $datepicker.$setDisabledEl = function(el) {\n el.disabled = $picker.isDisabled(el.date);\n };\n\n $datepicker.$selectPane = function(value) {\n var steps = $picker.steps;\n // set targetDate to first day of month to avoid problems with\n // date values rollover. This assumes the viewDate does not\n // depend on the day of the month\n var targetDate = new Date(Date.UTC(viewDate.year + ((steps.year || 0) * value), viewDate.month + ((steps.month || 0) * value), 1));\n angular.extend(viewDate, {year: targetDate.getUTCFullYear(), month: targetDate.getUTCMonth(), date: targetDate.getUTCDate()});\n $datepicker.$build();\n };\n\n $datepicker.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n if(targetEl[0].nodeName.toLowerCase() !== 'button') {\n targetEl = targetEl.parent();\n }\n targetEl.triggerHandler('click');\n }\n };\n\n $datepicker.$onKeyDown = function(evt) {\n if (!/(38|37|39|40|13)/.test(evt.keyCode) || evt.shiftKey || evt.altKey) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n if(evt.keyCode === 13) {\n if(!scope.$mode) {\n return $datepicker.hide(true);\n } else {\n return scope.$apply(function() { $datepicker.setMode(scope.$mode - 1); });\n }\n }\n\n // Navigate with keyboard\n $picker.onKeyDown(evt);\n parentScope.$digest();\n };\n\n // Private\n\n function updateSelected(el) {\n el.selected = $datepicker.$isSelected(el.date);\n }\n\n function focusElement() {\n element[0].focus();\n }\n\n // Overrides\n\n var _init = $datepicker.init;\n $datepicker.init = function() {\n if(isNative && options.useNative) {\n element.prop('type', 'date');\n element.css('-webkit-appearance', 'textfield');\n return;\n } else if(isTouch) {\n element.prop('type', 'text');\n element.attr('readonly', 'true');\n element.on('click', focusElement);\n }\n _init();\n };\n\n var _destroy = $datepicker.destroy;\n $datepicker.destroy = function() {\n if(isNative && options.useNative) {\n element.off('click', focusElement);\n }\n _destroy();\n };\n\n var _show = $datepicker.show;\n $datepicker.show = function() {\n _show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n // if $datepicker is no longer showing, don't setup events\n if(!$datepicker.$isShown) return;\n $datepicker.$element.on(isTouch ? 'touchstart' : 'mousedown', $datepicker.$onMouseDown);\n if(options.keyboard) {\n element.on('keydown', $datepicker.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $datepicker.hide;\n $datepicker.hide = function(blur) {\n if(!$datepicker.$isShown) return;\n $datepicker.$element.off(isTouch ? 'touchstart' : 'mousedown', $datepicker.$onMouseDown);\n if(options.keyboard) {\n element.off('keydown', $datepicker.$onKeyDown);\n }\n _hide(blur);\n };\n\n return $datepicker;\n\n }\n\n DatepickerFactory.defaults = defaults;\n return DatepickerFactory;\n\n };\n\n })\n\n .directive('bsDatepicker', function($window, $parse, $q, $dateFormatter, $dateParser, $datepicker) {\n\n var defaults = $datepicker.defaults;\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'autoclose', 'dateType', 'dateFormat', 'timezone', 'modelDateFormat', 'dayFormat', 'strictFormat', 'startWeek', 'startDate', 'useNative', 'lang', 'startView', 'minView', 'iconLeft', 'iconRight', 'daysOfWeekDisabled', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoclose', 'useNative'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!datepicker || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(datepicker),?/i);\n newValue === true ? datepicker.show() : datepicker.hide();\n });\n\n // Initialize datepicker\n var datepicker = $datepicker(element, controller, options);\n options = datepicker.$options;\n // Set expected iOS format\n if(isNative && options.useNative) options.dateFormat = 'yyyy-MM-dd';\n\n var lang = options.lang;\n\n var formatDate = function(date, format) {\n return $dateFormatter.formatDate(date, format, lang);\n };\n\n var dateParser = $dateParser({format: options.dateFormat, lang: lang, strict: options.strictFormat});\n\n // Observe attributes for changes\n angular.forEach(['minDate', 'maxDate'], function(key) {\n // console.warn('attr.$observe(%s)', key, attr[key]);\n angular.isDefined(attr[key]) && attr.$observe(key, function(newValue) {\n // console.warn('attr.$observe(%s)=%o', key, newValue);\n datepicker.$options[key] = dateParser.getDateForAttribute(key, newValue);\n // Build only if dirty\n !isNaN(datepicker.$options[key]) && datepicker.$build(false);\n validateAgainstMinMaxDate(controller.$dateValue);\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n datepicker.update(controller.$dateValue);\n }, true);\n\n // Normalize undefined/null/empty array,\n // so that we don't treat changing from undefined->null as a change.\n function normalizeDateRanges(ranges) {\n if (!ranges || !ranges.length) return null;\n return ranges;\n }\n\n if (angular.isDefined(attr.disabledDates)) {\n scope.$watch(attr.disabledDates, function(disabledRanges, previousValue) {\n disabledRanges = normalizeDateRanges(disabledRanges);\n previousValue = normalizeDateRanges(previousValue);\n\n if (disabledRanges) {\n datepicker.updateDisabledDates(disabledRanges);\n }\n });\n }\n\n function validateAgainstMinMaxDate(parsedDate) {\n if (!angular.isDate(parsedDate)) return;\n var isMinValid = isNaN(datepicker.$options.minDate) || parsedDate.getTime() >= datepicker.$options.minDate;\n var isMaxValid = isNaN(datepicker.$options.maxDate) || parsedDate.getTime() <= datepicker.$options.maxDate;\n var isValid = isMinValid && isMaxValid;\n controller.$setValidity('date', isValid);\n controller.$setValidity('min', isMinValid);\n controller.$setValidity('max', isMaxValid);\n // Only update the model when we have a valid date\n if(isValid) controller.$dateValue = parsedDate;\n }\n\n // viewValue -> $parsers -> modelValue\n controller.$parsers.unshift(function(viewValue) {\n // console.warn('$parser(\"%s\"): viewValue=%o', element.attr('ng-model'), viewValue);\n var date;\n // Null values should correctly reset the model value & validity\n if(!viewValue) {\n controller.$setValidity('date', true);\n // BREAKING CHANGE:\n // return null (not undefined) when input value is empty, so angularjs 1.3\n // ngModelController can go ahead and run validators, like ngRequired\n return null;\n }\n var parsedDate = dateParser.parse(viewValue, controller.$dateValue);\n if(!parsedDate || isNaN(parsedDate.getTime())) {\n controller.$setValidity('date', false);\n // return undefined, causes ngModelController to\n // invalidate model value\n return;\n } else {\n validateAgainstMinMaxDate(parsedDate);\n }\n\n if(options.dateType === 'string') {\n date = dateParser.timezoneOffsetAdjust(parsedDate, options.timezone, true);\n return formatDate(date, options.modelDateFormat || options.dateFormat);\n }\n date = dateParser.timezoneOffsetAdjust(controller.$dateValue, options.timezone, true);\n if(options.dateType === 'number') {\n return date.getTime();\n } else if(options.dateType === 'unix') {\n return date.getTime() / 1000;\n } else if(options.dateType === 'iso') {\n return date.toISOString();\n } else {\n return new Date(date);\n }\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var date;\n if(angular.isUndefined(modelValue) || modelValue === null) {\n date = NaN;\n } else if(angular.isDate(modelValue)) {\n date = modelValue;\n } else if(options.dateType === 'string') {\n date = dateParser.parse(modelValue, null, options.modelDateFormat);\n } else if(options.dateType === 'unix') {\n date = new Date(modelValue * 1000);\n } else {\n date = new Date(modelValue);\n }\n // Setup default value?\n // if(isNaN(date.getTime())) {\n // var today = new Date();\n // date = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0, 0);\n // }\n controller.$dateValue = dateParser.timezoneOffsetAdjust(date, options.timezone);\n return getDateFormattedString();\n });\n\n // viewValue -> element\n controller.$render = function() {\n // console.warn('$render(\"%s\"): viewValue=%o', element.attr('ng-model'), controller.$viewValue);\n element.val(getDateFormattedString());\n };\n\n function getDateFormattedString() {\n return !controller.$dateValue || isNaN(controller.$dateValue.getTime()) ? '' : formatDate(controller.$dateValue, options.dateFormat);\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if(datepicker) datepicker.destroy();\n options = null;\n datepicker = null;\n });\n\n }\n };\n\n })\n\n .provider('datepickerViews', function() {\n\n var defaults = this.defaults = {\n dayFormat: 'dd',\n daySplit: 7\n };\n\n // Split array into smaller arrays\n function split(arr, size) {\n var arrays = [];\n while(arr.length > 0) {\n arrays.push(arr.splice(0, size));\n }\n return arrays;\n }\n\n // Modulus operator\n function mod(n, m) {\n return ((n % m) + m) % m;\n }\n\n this.$get = function($dateFormatter, $dateParser, $sce) {\n\n return function(picker) {\n\n var scope = picker.$scope;\n var options = picker.$options;\n\n var lang = options.lang;\n var formatDate = function(date, format) {\n return $dateFormatter.formatDate(date, format, lang);\n };\n var dateParser = $dateParser({format: options.dateFormat, lang: lang, strict: options.strictFormat});\n\n var weekDaysMin = $dateFormatter.weekdaysShort(lang);\n var weekDaysLabels = weekDaysMin.slice(options.startWeek).concat(weekDaysMin.slice(0, options.startWeek));\n var weekDaysLabelsHtml = $sce.trustAsHtml('' + weekDaysLabels.join('') + '');\n\n var startDate = picker.$date || (options.startDate ? dateParser.getDateForAttribute('startDate', options.startDate) : new Date());\n var viewDate = {year: startDate.getFullYear(), month: startDate.getMonth(), date: startDate.getDate()};\n\n var views = [{\n format: options.dayFormat,\n split: 7,\n steps: { month: 1 },\n update: function(date, force) {\n if(!this.built || force || date.getFullYear() !== viewDate.year || date.getMonth() !== viewDate.month) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getDate() !== viewDate.date || date.getDate() === 1) {\n // chaging picker current month will cause viewDate.date to be set to first day of the month,\n // in $datepicker.$selectPane, so picker would not update selected day display if\n // user picks first day of the new month.\n // As a workaround, we are always forcing update when picked date is first day of month.\n viewDate.date = picker.$date.getDate();\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstDayOfMonth = new Date(viewDate.year, viewDate.month, 1), firstDayOfMonthOffset = firstDayOfMonth.getTimezoneOffset();\n var firstDate = new Date(+firstDayOfMonth - mod(firstDayOfMonth.getDay() - options.startWeek, 7) * 864e5), firstDateOffset = firstDate.getTimezoneOffset();\n var today = dateParser.timezoneOffsetAdjust(new Date(), options.timezone).toDateString();\n // Handle daylight time switch\n if(firstDateOffset !== firstDayOfMonthOffset) firstDate = new Date(+firstDate + (firstDateOffset - firstDayOfMonthOffset) * 60e3);\n var days = [], day;\n for(var i = 0; i < 42; i++) { // < 7 * 6\n day = dateParser.daylightSavingAdjust(new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + i));\n days.push({date: day, isToday: day.toDateString() === today, label: formatDate(day, this.format), selected: picker.$date && this.isSelected(day), muted: day.getMonth() !== viewDate.month, disabled: this.isDisabled(day)});\n }\n scope.title = formatDate(firstDayOfMonth, options.monthTitleFormat);\n scope.showLabels = true;\n scope.labels = weekDaysLabelsHtml;\n scope.rows = split(days, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear() && date.getMonth() === picker.$date.getMonth() && date.getDate() === picker.$date.getDate();\n },\n isDisabled: function(date) {\n var time = date.getTime();\n\n // Disabled because of min/max date.\n if (time < options.minDate || time > options.maxDate) return true;\n\n // Disabled due to being a disabled day of the week\n if (options.daysOfWeekDisabled.indexOf(date.getDay()) !== -1) return true;\n\n // Disabled because of disabled date range.\n if (options.disabledDateRanges) {\n for (var i = 0; i < options.disabledDateRanges.length; i++) {\n if (time >= options.disabledDateRanges[i].start && time <= options.disabledDateRanges[i].end) {\n return true;\n }\n }\n }\n\n return false;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualTime = picker.$date.getTime();\n var newDate;\n\n if(evt.keyCode === 37) newDate = new Date(actualTime - 1 * 864e5);\n else if(evt.keyCode === 38) newDate = new Date(actualTime - 7 * 864e5);\n else if(evt.keyCode === 39) newDate = new Date(actualTime + 1 * 864e5);\n else if(evt.keyCode === 40) newDate = new Date(actualTime + 7 * 864e5);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }, {\n name: 'month',\n format: options.monthFormat,\n split: 4,\n steps: { year: 1 },\n update: function(date, force) {\n if(!this.built || date.getFullYear() !== viewDate.year) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getMonth() !== viewDate.month) {\n angular.extend(viewDate, {month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstMonth = new Date(viewDate.year, 0, 1);\n var months = [], month;\n for (var i = 0; i < 12; i++) {\n month = new Date(viewDate.year, i, 1);\n months.push({date: month, label: formatDate(month, this.format), selected: picker.$isSelected(month), disabled: this.isDisabled(month)});\n }\n scope.title = formatDate(month, options.yearTitleFormat);\n scope.showLabels = false;\n scope.rows = split(months, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear() && date.getMonth() === picker.$date.getMonth();\n },\n isDisabled: function(date) {\n var lastDate = +new Date(date.getFullYear(), date.getMonth() + 1, 0);\n return lastDate < options.minDate || date.getTime() > options.maxDate;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualMonth = picker.$date.getMonth();\n var newDate = new Date(picker.$date);\n\n if(evt.keyCode === 37) newDate.setMonth(actualMonth - 1);\n else if(evt.keyCode === 38) newDate.setMonth(actualMonth - 4);\n else if(evt.keyCode === 39) newDate.setMonth(actualMonth + 1);\n else if(evt.keyCode === 40) newDate.setMonth(actualMonth + 4);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }, {\n name: 'year',\n format: options.yearFormat,\n split: 4,\n steps: { year: 12 },\n update: function(date, force) {\n if(!this.built || force || parseInt(date.getFullYear()/20, 10) !== parseInt(viewDate.year/20, 10)) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getFullYear() !== viewDate.year) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstYear = viewDate.year - viewDate.year % (this.split * 3);\n var years = [], year;\n for (var i = 0; i < 12; i++) {\n year = new Date(firstYear + i, 0, 1);\n years.push({date: year, label: formatDate(year, this.format), selected: picker.$isSelected(year), disabled: this.isDisabled(year)});\n }\n scope.title = years[0].label + '-' + years[years.length - 1].label;\n scope.showLabels = false;\n scope.rows = split(years, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear();\n },\n isDisabled: function(date) {\n var lastDate = +new Date(date.getFullYear() + 1, 0, 0);\n return lastDate < options.minDate || date.getTime() > options.maxDate;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualYear = picker.$date.getFullYear(),\n newDate = new Date(picker.$date);\n\n if(evt.keyCode === 37) newDate.setYear(actualYear - 1);\n else if(evt.keyCode === 38) newDate.setYear(actualYear - 4);\n else if(evt.keyCode === 39) newDate.setYear(actualYear + 1);\n else if(evt.keyCode === 40) newDate.setYear(actualYear + 4);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }];\n\n return {\n views: options.minView ? Array.prototype.slice.call(views, options.minView) : views,\n viewDate: viewDate\n };\n\n };\n\n };\n\n });\n\n// Source: dropdown/dropdown.js\nangular.module('mgcrea.ngStrap.dropdown', ['mgcrea.ngStrap.tooltip'])\n\n .provider('$dropdown', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'dropdown',\n prefixEvent: 'dropdown',\n placement: 'bottom-left',\n templateUrl: 'dropdown/dropdown.tpl.html',\n trigger: 'click',\n container: false,\n keyboard: true,\n html: false,\n delay: 0\n };\n\n this.$get = function($window, $rootScope, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var matchesSelector = Element.prototype.matchesSelector || Element.prototype.webkitMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector;\n\n function DropdownFactory(element, config) {\n\n var $dropdown = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n var scope = $dropdown.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n $dropdown = $tooltip(element, options);\n var parentEl = element.parent();\n\n // Protected methods\n\n $dropdown.$onKeyDown = function(evt) {\n if (!/(38|40)/.test(evt.keyCode)) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // Retrieve focused index\n var items = angular.element($dropdown.$element[0].querySelectorAll('li:not(.divider) a'));\n if(!items.length) return;\n var index;\n angular.forEach(items, function(el, i) {\n if(matchesSelector && matchesSelector.call(el, ':focus')) index = i;\n });\n\n // Navigate with keyboard\n if(evt.keyCode === 38 && index > 0) index--;\n else if(evt.keyCode === 40 && index < items.length - 1) index++;\n else if(angular.isUndefined(index)) index = 0;\n items.eq(index)[0].focus();\n\n };\n\n // Overrides\n\n var show = $dropdown.show;\n $dropdown.show = function() {\n show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n options.keyboard && $dropdown.$element && $dropdown.$element.on('keydown', $dropdown.$onKeyDown);\n bodyEl.on('click', onBodyClick);\n }, 0, false);\n parentEl.hasClass('dropdown') && parentEl.addClass('open');\n };\n\n var hide = $dropdown.hide;\n $dropdown.hide = function() {\n if(!$dropdown.$isShown) return;\n options.keyboard && $dropdown.$element && $dropdown.$element.off('keydown', $dropdown.$onKeyDown);\n bodyEl.off('click', onBodyClick);\n parentEl.hasClass('dropdown') && parentEl.removeClass('open');\n hide();\n };\n\n var destroy = $dropdown.destroy;\n $dropdown.destroy = function() {\n bodyEl.off('click', onBodyClick);\n destroy();\n };\n\n // Private functions\n\n function onBodyClick(evt) {\n if(evt.target === element[0]) return;\n return evt.target !== element[0] && $dropdown.hide();\n }\n\n return $dropdown;\n\n }\n\n return DropdownFactory;\n\n };\n\n })\n\n .directive('bsDropdown', function($window, $sce, $dropdown) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'id'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as an object\n attr.bsDropdown && scope.$watch(attr.bsDropdown, function(newValue, oldValue) {\n scope.content = newValue;\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!dropdown || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(dropdown),?/i);\n newValue === true ? dropdown.show() : dropdown.hide();\n });\n\n // Initialize dropdown\n var dropdown = $dropdown(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (dropdown) dropdown.destroy();\n options = null;\n dropdown = null;\n });\n\n }\n };\n\n });\n\n// Source: helpers/compiler.js\n// NOTICE: This file was forked from the angular-material project (github.com/angular/material)\n// MIT Licensed - Copyright (c) 2014-2015 Google, Inc. http://angularjs.org\n\nangular.module('mgcrea.ngStrap.core', [])\n .service('$bsCompiler', bsCompilerService);\n\nfunction bsCompilerService($q, $http, $injector, $compile, $controller, $templateCache) {\n /* jshint validthis: true */\n\n /*\n * @ngdoc service\n * @name $bsCompiler\n * @module material.core\n * @description\n * The $bsCompiler service is an abstraction of angular's compiler, that allows the developer\n * to easily compile an element with a templateUrl, controller, and locals.\n *\n * @usage\n * \n * $bsCompiler.compile({\n * templateUrl: 'modal.html',\n * controller: 'ModalCtrl',\n * locals: {\n * modal: myModalInstance;\n * }\n * }).then(function(compileData) {\n * compileData.element; // modal.html's template in an element\n * compileData.link(myScope); //attach controller & scope to element\n * });\n * \n */\n\n /*\n * @ngdoc method\n * @name $bsCompiler#compile\n * @description A helper to compile an HTML template/templateUrl with a given controller,\n * locals, and scope.\n * @param {object} options An options object, with the following properties:\n *\n * - `controller` - `{(string=|function()=}` Controller fn that should be associated with\n * newly created scope or the name of a registered controller if passed as a string.\n * - `controllerAs` - `{string=}` A controller alias name. If present the controller will be\n * published to scope under the `controllerAs` name.\n * - `template` - `{string=}` An html template as a string.\n * - `templateUrl` - `{string=}` A path to an html template.\n * - `transformTemplate` - `{function(template)=}` A function which transforms the template after\n * it is loaded. It will be given the template string as a parameter, and should\n * return a a new string representing the transformed template.\n * - `resolve` - `{Object.=}` - An optional map of dependencies which should\n * be injected into the controller. If any of these dependencies are promises, the compiler\n * will wait for them all to be resolved, or if one is rejected before the controller is\n * instantiated `compile()` will fail..\n * * `key` - `{string}`: a name of a dependency to be injected into the controller.\n * * `factory` - `{string|function}`: If `string` then it is an alias for a service.\n * Otherwise if function, then it is injected and the return value is treated as the\n * dependency. If the result is a promise, it is resolved before its value is\n * injected into the controller.\n *\n * @returns {object=} promise A promise, which will be resolved with a `compileData` object.\n * `compileData` has the following properties:\n *\n * - `element` - `{element}`: an uncompiled element matching the provided template.\n * - `link` - `{function(scope)}`: A link function, which, when called, will compile\n * the element and instantiate the provided controller (if given).\n * - `locals` - `{object}`: The locals which will be passed into the controller once `link` is\n * called. If `bindToController` is true, they will be coppied to the ctrl instead\n * - `bindToController` - `bool`: bind the locals to the controller, instead of passing them in.\n */\n this.compile = function(options) {\n\n if(options.template && /\\.html$/.test(options.template)) {\n console.warn('Deprecated use of `template` option to pass a file. Please use the `templateUrl` option instead.');\n options.templateUrl = options.template;\n options.template = '';\n }\n\n var templateUrl = options.templateUrl;\n var template = options.template || '';\n var controller = options.controller;\n var controllerAs = options.controllerAs;\n var resolve = angular.copy(options.resolve || {});\n var locals = angular.copy(options.locals || {});\n var transformTemplate = options.transformTemplate || angular.identity;\n var bindToController = options.bindToController;\n\n // Take resolve values and invoke them.\n // Resolves can either be a string (value: 'MyRegisteredAngularConst'),\n // or an invokable 'factory' of sorts: (value: function ValueGetter($dependency) {})\n angular.forEach(resolve, function(value, key) {\n if (angular.isString(value)) {\n resolve[key] = $injector.get(value);\n } else {\n resolve[key] = $injector.invoke(value);\n }\n });\n // Add the locals, which are just straight values to inject\n // eg locals: { three: 3 }, will inject three into the controller\n angular.extend(resolve, locals);\n\n if (templateUrl) {\n resolve.$template = fetchTemplate(templateUrl);\n } else {\n resolve.$template = $q.when(template);\n }\n\n if (options.contentTemplate) {\n // TODO(mgcrea): deprecate?\n resolve.$template = $q.all([resolve.$template, fetchTemplate(options.contentTemplate)])\n .then(function(templates) {\n var templateEl = angular.element(templates[0]);\n var contentEl = findElement('[ng-bind=\"content\"]', templateEl[0]).removeAttr('ng-bind').html(templates[1]);\n // Drop the default footer as you probably don't want it if you use a custom contentTemplate\n if(!options.templateUrl) contentEl.next().remove();\n return templateEl[0].outerHTML;\n });\n }\n\n // Wait for all the resolves to finish if they are promises\n return $q.all(resolve).then(function(locals) {\n\n var template = transformTemplate(locals.$template);\n if (options.html) {\n template = template.replace(/ng-bind=\"/ig, 'ng-bind-html=\"');\n }\n // var element = options.element || angular.element('
').html(template.trim()).contents();\n var element = angular.element('
').html(template.trim()).contents();\n var linkFn = $compile(element);\n\n // Return a linking function that can be used later when the element is ready\n return {\n locals: locals,\n element: element,\n link: function link(scope) {\n locals.$scope = scope;\n\n // Instantiate controller if it exists, because we have scope\n if (controller) {\n var invokeCtrl = $controller(controller, locals, true);\n if (bindToController) {\n angular.extend(invokeCtrl.instance, locals);\n }\n // Support angular@~1.2 invokeCtrl\n var ctrl = angular.isObject(invokeCtrl) ? invokeCtrl : invokeCtrl();\n // See angular-route source for this logic\n element.data('$ngControllerController', ctrl);\n element.children().data('$ngControllerController', ctrl);\n\n if (controllerAs) {\n scope[controllerAs] = ctrl;\n }\n }\n\n return linkFn.apply(null, arguments);\n }\n };\n });\n\n };\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n var fetchPromises = {};\n function fetchTemplate(template) {\n if(fetchPromises[template]) return fetchPromises[template];\n return (fetchPromises[template] = $http.get(template, {cache: $templateCache})\n .then(function(res) {\n return res.data;\n }));\n }\n\n}\n\n// Source: helpers/date-formatter.js\nangular.module('mgcrea.ngStrap.helpers.dateFormatter', [])\n\n .service('$dateFormatter', function($locale, dateFilter) {\n\n // The unused `lang` arguments are on purpose. The default implementation does not\n // use them and it always uses the locale loaded into the `$locale` service.\n // Custom implementations might use it, thus allowing different directives to\n // have different languages.\n\n this.getDefaultLocale = function() {\n return $locale.id;\n };\n\n // Format is either a data format name, e.g. \"shortTime\" or \"fullDate\", or a date format\n // Return either the corresponding date format or the given date format.\n this.getDatetimeFormat = function(format, lang) {\n return $locale.DATETIME_FORMATS[format] || format;\n };\n\n this.weekdaysShort = function(lang) {\n return $locale.DATETIME_FORMATS.SHORTDAY;\n };\n\n function splitTimeFormat(format) {\n return /(h+)([:\\.])?(m+)([:\\.])?(s*)[ ]?(a?)/i.exec(format).slice(1);\n }\n\n // h:mm a => h\n this.hoursFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[0];\n };\n\n // h:mm a => mm\n this.minutesFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[2];\n };\n\n // h:mm:ss a => ss\n this.secondsFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[4];\n };\n\n // h:mm a => :\n this.timeSeparator = function(timeFormat) {\n return splitTimeFormat(timeFormat)[1];\n };\n\n // h:mm:ss a => true, h:mm a => false\n this.showSeconds = function(timeFormat) {\n return !!splitTimeFormat(timeFormat)[4];\n };\n\n // h:mm a => true, H.mm => false\n this.showAM = function(timeFormat) {\n return !!splitTimeFormat(timeFormat)[5];\n };\n\n this.formatDate = function(date, format, lang, timezone){\n return dateFilter(date, format, timezone);\n };\n\n });\n\n// Source: helpers/date-parser.js\nangular.module('mgcrea.ngStrap.helpers.dateParser', [])\n\n.provider('$dateParser', function($localeProvider) {\n\n // define a custom ParseDate object to use instead of native Date\n // to avoid date values wrapping when setting date component values\n function ParseDate() {\n this.year = 1970;\n this.month = 0;\n this.day = 1;\n this.hours = 0;\n this.minutes = 0;\n this.seconds = 0;\n this.milliseconds = 0;\n }\n\n ParseDate.prototype.setMilliseconds = function(value) { this.milliseconds = value; };\n ParseDate.prototype.setSeconds = function(value) { this.seconds = value; };\n ParseDate.prototype.setMinutes = function(value) { this.minutes = value; };\n ParseDate.prototype.setHours = function(value) { this.hours = value; };\n ParseDate.prototype.getHours = function() { return this.hours; };\n ParseDate.prototype.setDate = function(value) { this.day = value; };\n ParseDate.prototype.setMonth = function(value) { this.month = value; };\n ParseDate.prototype.setFullYear = function(value) { this.year = value; };\n ParseDate.prototype.fromDate = function(value) {\n this.year = value.getFullYear();\n this.month = value.getMonth();\n this.day = value.getDate();\n this.hours = value.getHours();\n this.minutes = value.getMinutes();\n this.seconds = value.getSeconds();\n this.milliseconds = value.getMilliseconds();\n return this;\n };\n\n ParseDate.prototype.toDate = function() {\n return new Date(this.year, this.month, this.day, this.hours, this.minutes, this.seconds, this.milliseconds);\n };\n\n var proto = ParseDate.prototype;\n\n function noop() {\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function indexOfCaseInsensitive(array, value) {\n var len = array.length, str=value.toString().toLowerCase();\n for (var i=0; i 12 when midnight changeover, but then cannot generate\n * midnight datetime, so jump to 1AM, otherwise reset.\n * @param date (Date) the date to check\n * @return (Date) the corrected date\n *\n * __ copied from jquery ui datepicker __\n */\n $dateParser.daylightSavingAdjust = function(date) {\n if (!date) {\n return null;\n }\n date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);\n return date;\n };\n\n /* Correct the date for timezone offset.\n * @param date (Date) the date to adjust\n * @param timezone (string) the timezone to adjust for\n * @param undo (boolean) to add or subtract timezone offset\n * @return (Date) the corrected date\n */\n $dateParser.timezoneOffsetAdjust = function(date, timezone, undo) {\n if (!date) {\n return null;\n }\n // Right now, only 'UTC' is supported.\n if (timezone && timezone === 'UTC') {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + (undo?-1:1)*date.getTimezoneOffset());\n }\n return date;\n };\n\n // Private functions\n\n function setMapForFormat(format) {\n var keys = Object.keys(setFnMap), i;\n var map = [], sortedMap = [];\n // Map to setFn\n var clonedFormat = format;\n for(i = 0; i < keys.length; i++) {\n if(format.split(keys[i]).length > 1) {\n var index = clonedFormat.search(keys[i]);\n format = format.split(keys[i]).join('');\n if(setFnMap[keys[i]]) {\n map[index] = setFnMap[keys[i]];\n }\n }\n }\n // Sort result map\n angular.forEach(map, function(v) {\n // conditional required since angular.forEach broke around v1.2.21\n // related pr: https://github.com/angular/angular.js/pull/8525\n if(v) sortedMap.push(v);\n });\n return sortedMap;\n }\n\n function escapeReservedSymbols(text) {\n return text.replace(/\\//g, '[\\\\/]').replace('/-/g', '[-]').replace(/\\./g, '[.]').replace(/\\\\s/g, '[\\\\s]');\n }\n\n function regExpForFormat(format) {\n var keys = Object.keys(regExpMap), i;\n\n var re = format;\n // Abstract replaces to avoid collisions\n for(i = 0; i < keys.length; i++) {\n re = re.split(keys[i]).join('${' + i + '}');\n }\n // Replace abstracted values\n for(i = 0; i < keys.length; i++) {\n re = re.split('${' + i + '}').join('(' + regExpMap[keys[i]] + ')');\n }\n format = escapeReservedSymbols(format);\n\n return new RegExp('^' + re + '$', ['i']);\n }\n\n $dateParser.init();\n return $dateParser;\n\n };\n\n return DateParserFactory;\n\n };\n\n});\n\n// Source: helpers/debounce.js\nangular.module('mgcrea.ngStrap.helpers.debounce', [])\n\n// @source jashkenas/underscore\n// @url https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L693\n.factory('debounce', function($timeout) {\n return function(func, wait, immediate) {\n var timeout = null;\n return function() {\n var context = this,\n args = arguments,\n callNow = immediate && !timeout;\n if(timeout) {\n $timeout.cancel(timeout);\n }\n timeout = $timeout(function later() {\n timeout = null;\n if(!immediate) {\n func.apply(context, args);\n }\n }, wait, false);\n if(callNow) {\n func.apply(context, args);\n }\n return timeout;\n };\n };\n})\n\n\n// @source jashkenas/underscore\n// @url https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L661\n.factory('throttle', function($timeout) {\n return function(func, wait, options) {\n var timeout = null;\n options || (options = {});\n return function() {\n var context = this,\n args = arguments;\n if(!timeout) {\n if(options.leading !== false) {\n func.apply(context, args);\n }\n timeout = $timeout(function later() {\n timeout = null;\n if(options.trailing !== false) {\n func.apply(context, args);\n }\n }, wait, false);\n }\n };\n };\n});\n\n// Source: helpers/dimensions.js\nangular.module('mgcrea.ngStrap.helpers.dimensions', [])\n\n .factory('dimensions', function($document, $window) {\n\n var jqLite = angular.element;\n var fn = {};\n\n /**\n * Test the element nodeName\n * @param element\n * @param name\n */\n var nodeName = fn.nodeName = function(element, name) {\n return element.nodeName && element.nodeName.toLowerCase() === name.toLowerCase();\n };\n\n /**\n * Returns the element computed style\n * @param element\n * @param prop\n * @param extra\n */\n fn.css = function(element, prop, extra) {\n var value;\n if (element.currentStyle) { //IE\n value = element.currentStyle[prop];\n } else if (window.getComputedStyle) {\n value = window.getComputedStyle(element)[prop];\n } else {\n value = element.style[prop];\n }\n return extra === true ? parseFloat(value) || 0 : value;\n };\n\n /**\n * Provides read-only equivalent of jQuery's offset function:\n * @required-by bootstrap-tooltip, bootstrap-affix\n * @url http://api.jquery.com/offset/\n * @param element\n */\n fn.offset = function(element) {\n var boxRect = element.getBoundingClientRect();\n var docElement = element.ownerDocument;\n return {\n width: boxRect.width || element.offsetWidth,\n height: boxRect.height || element.offsetHeight,\n top: boxRect.top + (window.pageYOffset || docElement.documentElement.scrollTop) - (docElement.documentElement.clientTop || 0),\n left: boxRect.left + (window.pageXOffset || docElement.documentElement.scrollLeft) - (docElement.documentElement.clientLeft || 0)\n };\n };\n \n /**\n * Provides set equivalent of jQuery's offset function:\n * @required-by bootstrap-tooltip\n * @url http://api.jquery.com/offset/\n * @param element\n * @param options\n * @param i\n */\n fn.setOffset = function (element, options, i) {\n var curPosition,\n curLeft,\n curCSSTop,\n curTop,\n curOffset,\n curCSSLeft,\n calculatePosition,\n position = fn.css(element, 'position'),\n curElem = angular.element(element),\n props = {};\n \n // Set position first, in-case top/left are set even on static elem\n if (position === 'static') {\n element.style.position = 'relative';\n }\n \n curOffset = fn.offset(element);\n curCSSTop = fn.css(element, 'top');\n curCSSLeft = fn.css(element, 'left');\n calculatePosition = (position === 'absolute' || position === 'fixed') && \n (curCSSTop + curCSSLeft).indexOf('auto') > -1;\n \n // Need to be able to calculate position if either\n // top or left is auto and position is either absolute or fixed\n if (calculatePosition) {\n curPosition = fn.position(element);\n curTop = curPosition.top;\n curLeft = curPosition.left;\n } else {\n curTop = parseFloat(curCSSTop) || 0;\n curLeft = parseFloat(curCSSLeft) || 0;\n }\n \n if (angular.isFunction(options)) {\n options = options.call(element, i, curOffset);\n }\n \n if (options.top !== null ) {\n props.top = (options.top - curOffset.top) + curTop;\n }\n if ( options.left !== null ) {\n props.left = (options.left - curOffset.left) + curLeft;\n }\n\n if ('using' in options) {\n options.using.call(curElem, props);\n } else {\n curElem.css({\n top: props.top + 'px',\n left: props.left + 'px'\n });\n }\n };\n\n /**\n * Provides read-only equivalent of jQuery's position function\n * @required-by bootstrap-tooltip, bootstrap-affix\n * @url http://api.jquery.com/offset/\n * @param element\n */\n fn.position = function(element) {\n\n var offsetParentRect = {top: 0, left: 0},\n offsetParentElement,\n offset;\n\n // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent\n if (fn.css(element, 'position') === 'fixed') {\n\n // We assume that getBoundingClientRect is available when computed position is fixed\n offset = element.getBoundingClientRect();\n\n } else {\n\n // Get *real* offsetParentElement\n offsetParentElement = offsetParent(element);\n\n // Get correct offsets\n offset = fn.offset(element);\n if (!nodeName(offsetParentElement, 'html')) {\n offsetParentRect = fn.offset(offsetParentElement);\n }\n\n // Add offsetParent borders\n offsetParentRect.top += fn.css(offsetParentElement, 'borderTopWidth', true);\n offsetParentRect.left += fn.css(offsetParentElement, 'borderLeftWidth', true);\n }\n\n // Subtract parent offsets and element margins\n return {\n width: element.offsetWidth,\n height: element.offsetHeight,\n top: offset.top - offsetParentRect.top - fn.css(element, 'marginTop', true),\n left: offset.left - offsetParentRect.left - fn.css(element, 'marginLeft', true)\n };\n\n };\n\n /**\n * Returns the closest, non-statically positioned offsetParent of a given element\n * @required-by fn.position\n * @param element\n */\n var offsetParent = function offsetParentElement(element) {\n var docElement = element.ownerDocument;\n var offsetParent = element.offsetParent || docElement;\n if(nodeName(offsetParent, '#document')) return docElement.documentElement;\n while(offsetParent && !nodeName(offsetParent, 'html') && fn.css(offsetParent, 'position') === 'static') {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || docElement.documentElement;\n };\n\n /**\n * Provides equivalent of jQuery's height function\n * @required-by bootstrap-affix\n * @url http://api.jquery.com/height/\n * @param element\n * @param outer\n */\n fn.height = function(element, outer) {\n var value = element.offsetHeight;\n if(outer) {\n value += fn.css(element, 'marginTop', true) + fn.css(element, 'marginBottom', true);\n } else {\n value -= fn.css(element, 'paddingTop', true) + fn.css(element, 'paddingBottom', true) + fn.css(element, 'borderTopWidth', true) + fn.css(element, 'borderBottomWidth', true);\n }\n return value;\n };\n\n /**\n * Provides equivalent of jQuery's width function\n * @required-by bootstrap-affix\n * @url http://api.jquery.com/width/\n * @param element\n * @param outer\n */\n fn.width = function(element, outer) {\n var value = element.offsetWidth;\n if(outer) {\n value += fn.css(element, 'marginLeft', true) + fn.css(element, 'marginRight', true);\n } else {\n value -= fn.css(element, 'paddingLeft', true) + fn.css(element, 'paddingRight', true) + fn.css(element, 'borderLeftWidth', true) + fn.css(element, 'borderRightWidth', true);\n }\n return value;\n };\n\n return fn;\n\n });\n\n// Source: helpers/parse-options.js\nangular.module('mgcrea.ngStrap.helpers.parseOptions', [])\n\n .provider('$parseOptions', function() {\n\n var defaults = this.defaults = {\n regexp: /^\\s*(.*?)(?:\\s+as\\s+(.*?))?(?:\\s+group\\s+by\\s+(.*))?\\s+for\\s+(?:([\\$\\w][\\$\\w]*)|(?:\\(\\s*([\\$\\w][\\$\\w]*)\\s*,\\s*([\\$\\w][\\$\\w]*)\\s*\\)))\\s+in\\s+(.*?)(?:\\s+track\\s+by\\s+(.*?))?$/\n };\n\n this.$get = function($parse, $q) {\n\n function ParseOptionsFactory(attr, config) {\n\n var $parseOptions = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n $parseOptions.$values = [];\n\n // Private vars\n var match, displayFn, valueName, keyName, groupByFn, valueFn, valuesFn;\n\n $parseOptions.init = function() {\n $parseOptions.$match = match = attr.match(options.regexp);\n displayFn = $parse(match[2] || match[1]),\n valueName = match[4] || match[6],\n keyName = match[5],\n groupByFn = $parse(match[3] || ''),\n valueFn = $parse(match[2] ? match[1] : valueName),\n valuesFn = $parse(match[7]);\n };\n\n $parseOptions.valuesFn = function(scope, controller) {\n var valuesPromise;\n try {\n // Might throw 'notarray' error since cea8e75\n valuesPromise = valuesFn(scope, controller);\n } catch(err) {\n valuesPromise = [];\n }\n return $q.when(valuesPromise)\n .then(function(values) {\n if(!angular.isArray(values)) {\n values = [];\n }\n $parseOptions.$values = values.length ? parseValues(values, scope) : [];\n return $parseOptions.$values;\n });\n };\n\n $parseOptions.displayValue = function(modelValue) {\n var scope = {};\n scope[valueName] = modelValue;\n return displayFn(scope);\n };\n\n // Private functions\n\n function parseValues(values, scope) {\n return values.map(function(match, index) {\n var locals = {}, label, value;\n locals[valueName] = match;\n label = displayFn(scope, locals);\n value = valueFn(scope, locals);\n return {label: label, value: value, index: index};\n });\n }\n\n $parseOptions.init();\n return $parseOptions;\n\n }\n\n return ParseOptionsFactory;\n\n };\n\n });\n\n// Source: helpers/raf.js\n(angular.version.minor < 3 && angular.version.dot < 14) && angular.module('ng')\n\n.factory('$$rAF', function($window, $timeout) {\n\n var requestAnimationFrame = $window.requestAnimationFrame ||\n $window.webkitRequestAnimationFrame ||\n $window.mozRequestAnimationFrame;\n\n var cancelAnimationFrame = $window.cancelAnimationFrame ||\n $window.webkitCancelAnimationFrame ||\n $window.mozCancelAnimationFrame ||\n $window.webkitCancelRequestAnimationFrame;\n\n var rafSupported = !!requestAnimationFrame;\n var raf = rafSupported ?\n function(fn) {\n var id = requestAnimationFrame(fn);\n return function() {\n cancelAnimationFrame(id);\n };\n } :\n function(fn) {\n var timer = $timeout(fn, 16.66, false); // 1000 / 60 = 16.666\n return function() {\n $timeout.cancel(timer);\n };\n };\n\n raf.supported = rafSupported;\n\n return raf;\n\n});\n\n// .factory('$$animateReflow', function($$rAF, $document) {\n\n// var bodyEl = $document[0].body;\n\n// return function(fn) {\n// //the returned function acts as the cancellation function\n// return $$rAF(function() {\n// //the line below will force the browser to perform a repaint\n// //so that all the animated elements within the animation frame\n// //will be properly updated and drawn on screen. This is\n// //required to perform multi-class CSS based animations with\n// //Firefox. DO NOT REMOVE THIS LINE.\n// var a = bodyEl.offsetWidth + 1;\n// fn();\n// });\n// };\n\n// });\n\n// Source: modal/modal.js\nangular.module('mgcrea.ngStrap.modal', ['mgcrea.ngStrap.core', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$modal', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n backdropAnimation: 'am-fade',\n prefixClass: 'modal',\n prefixEvent: 'modal',\n placement: 'top',\n templateUrl: 'modal/modal.tpl.html',\n template: '',\n contentTemplate: false,\n container: false,\n element: null,\n backdrop: true,\n keyboard: true,\n html: false,\n show: true\n };\n\n this.$get = function($window, $rootScope, $bsCompiler, $q, $templateCache, $http, $animate, $timeout, $sce, dimensions) {\n\n var forEach = angular.forEach;\n var trim = String.prototype.trim;\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n var bodyElement = angular.element($window.document.body);\n\n function ModalFactory(config) {\n\n var $modal = {};\n\n // Common vars\n var options = $modal.$options = angular.extend({}, defaults, config);\n var promise = $modal.$promise = $bsCompiler.compile(options);\n var scope = $modal.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n if(!options.element && !options.container) {\n options.container = 'body';\n }\n\n // Store $id to identify the triggering element in events\n // give priority to options.id, otherwise, try to use\n // element id if defined\n $modal.$id = options.id || options.element && options.element.attr('id') || '';\n\n // Support scope as string options\n forEach(['title', 'content'], function(key) {\n if(options[key]) scope[key] = $sce.trustAsHtml(options[key]);\n });\n\n // Provide scope helpers\n scope.$hide = function() {\n scope.$$postDigest(function() {\n $modal.hide();\n });\n };\n scope.$show = function() {\n scope.$$postDigest(function() {\n $modal.show();\n });\n };\n scope.$toggle = function() {\n scope.$$postDigest(function() {\n $modal.toggle();\n });\n };\n // Publish isShown as a protected var on scope\n $modal.$isShown = scope.$isShown = false;\n\n // Fetch, compile then initialize modal\n var compileData, modalElement, modalScope;\n var backdropElement = angular.element('
');\n backdropElement.css({position:'fixed', top:'0px', left:'0px', bottom:'0px', right:'0px', 'z-index': 1038});\n promise.then(function(data) {\n compileData = data;\n $modal.init();\n });\n\n $modal.init = function() {\n\n // Options: show\n if(options.show) {\n scope.$$postDigest(function() {\n $modal.show();\n });\n }\n\n };\n\n $modal.destroy = function() {\n\n // Remove element\n destroyModalElement();\n\n // remove backdrop element\n if(backdropElement) {\n backdropElement.remove();\n backdropElement = null;\n }\n\n // Destroy scope\n scope.$destroy();\n };\n\n $modal.show = function() {\n if($modal.$isShown) return;\n\n var parent, after;\n if(angular.isElement(options.container)) {\n parent = options.container;\n after = options.container[0].lastChild ? angular.element(options.container[0].lastChild) : null;\n } else {\n if (options.container) {\n parent = findElement(options.container);\n after = parent[0] && parent[0].lastChild ? angular.element(parent[0].lastChild) : null;\n } else {\n parent = null;\n after = options.element;\n }\n }\n\n // destroy any existing modal elements\n if(modalElement) destroyModalElement();\n\n // create a new scope, so we can destroy it and all child scopes\n // when destroying the modal element\n modalScope = $modal.$scope.$new();\n // Fetch a cloned element linked from template (noop callback is required)\n modalElement = $modal.$element = compileData.link(modalScope, function(clonedElement, scope) {});\n\n if(scope.$emit(options.prefixEvent + '.show.before', $modal).defaultPrevented) {\n return;\n }\n\n // Set the initial positioning.\n modalElement.css({display: 'block'}).addClass(options.placement);\n\n // Options: animation\n if(options.animation) {\n if(options.backdrop) {\n backdropElement.addClass(options.backdropAnimation);\n }\n modalElement.addClass(options.animation);\n }\n\n if(options.backdrop) {\n $animate.enter(backdropElement, bodyElement, null);\n }\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.enter(modalElement, parent, after, enterAnimateCallback);\n } else {\n $animate.enter(modalElement, parent, after).then(enterAnimateCallback);\n }\n\n $modal.$isShown = scope.$isShown = true;\n safeDigest(scope);\n // Focus once the enter-animation has started\n // Weird PhantomJS bug hack\n var el = modalElement[0];\n requestAnimationFrame(function() {\n el.focus();\n });\n\n bodyElement.addClass(options.prefixClass + '-open');\n if(options.animation) {\n bodyElement.addClass(options.prefixClass + '-with-' + options.animation);\n }\n\n // Bind events\n bindBackdropEvents();\n bindKeyboardEvents();\n };\n\n function enterAnimateCallback() {\n scope.$emit(options.prefixEvent + '.show', $modal);\n }\n\n $modal.hide = function() {\n if(!$modal.$isShown) return;\n\n if(scope.$emit(options.prefixEvent + '.hide.before', $modal).defaultPrevented) {\n return;\n }\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.leave(modalElement, leaveAnimateCallback);\n } else {\n $animate.leave(modalElement).then(leaveAnimateCallback);\n }\n\n if(options.backdrop) {\n $animate.leave(backdropElement);\n }\n $modal.$isShown = scope.$isShown = false;\n safeDigest(scope);\n\n // Unbind events\n unbindBackdropEvents();\n unbindKeyboardEvents();\n };\n\n function leaveAnimateCallback() {\n scope.$emit(options.prefixEvent + '.hide', $modal);\n bodyElement.removeClass(options.prefixClass + '-open');\n if(options.animation) {\n bodyElement.removeClass(options.prefixClass + '-with-' + options.animation);\n }\n }\n\n $modal.toggle = function() {\n\n $modal.$isShown ? $modal.hide() : $modal.show();\n\n };\n\n $modal.focus = function() {\n modalElement[0].focus();\n };\n\n // Protected methods\n\n $modal.$onKeyUp = function(evt) {\n\n if (evt.which === 27 && $modal.$isShown) {\n $modal.hide();\n evt.stopPropagation();\n }\n\n };\n\n function bindBackdropEvents() {\n if(options.backdrop) {\n modalElement.on('click', hideOnBackdropClick);\n backdropElement.on('click', hideOnBackdropClick);\n backdropElement.on('wheel', preventEventDefault);\n }\n }\n\n function unbindBackdropEvents() {\n if(options.backdrop) {\n modalElement.off('click', hideOnBackdropClick);\n backdropElement.off('click', hideOnBackdropClick);\n backdropElement.off('wheel', preventEventDefault);\n }\n }\n\n function bindKeyboardEvents() {\n if(options.keyboard) {\n modalElement.on('keyup', $modal.$onKeyUp);\n }\n }\n\n function unbindKeyboardEvents() {\n if(options.keyboard) {\n modalElement.off('keyup', $modal.$onKeyUp);\n }\n }\n\n // Private methods\n\n function hideOnBackdropClick(evt) {\n if(evt.target !== evt.currentTarget) return;\n options.backdrop === 'static' ? $modal.focus() : $modal.hide();\n }\n\n function preventEventDefault(evt) {\n evt.preventDefault();\n }\n\n function destroyModalElement() {\n if($modal.$isShown && modalElement !== null) {\n // un-bind events\n unbindBackdropEvents();\n unbindKeyboardEvents();\n }\n\n if(modalScope) {\n modalScope.$destroy();\n modalScope = null;\n }\n\n if(modalElement) {\n modalElement.remove();\n modalElement = $modal.$element = null;\n }\n }\n\n return $modal;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n return ModalFactory;\n\n };\n\n })\n\n .directive('bsModal', function($window, $sce, $modal) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'controller', 'placement', 'backdrop', 'keyboard', 'html', 'container', 'animation', 'id', 'prefixEvent', 'prefixClass'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['backdrop', 'keyboard', 'html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsModal && scope.$watch(attr.bsModal, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize modal\n var modal = $modal(options);\n\n // Trigger\n element.on(attr.trigger || 'click', modal.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (modal) modal.destroy();\n options = null;\n modal = null;\n });\n\n }\n };\n\n });\n\n// Source: navbar/navbar.js\nangular.module('mgcrea.ngStrap.navbar', [])\n\n .provider('$navbar', function() {\n\n var defaults = this.defaults = {\n activeClass: 'active',\n routeAttr: 'data-match-route',\n strict: false\n };\n\n this.$get = function() {\n return {defaults: defaults};\n };\n\n })\n\n .directive('bsNavbar', function($window, $location, $navbar) {\n\n var defaults = $navbar.defaults;\n\n return {\n restrict: 'A',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = angular.copy(defaults);\n angular.forEach(Object.keys(defaults), function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // Watch for the $location\n scope.$watch(function() {\n\n return $location.path();\n\n }, function(newValue, oldValue) {\n\n var liElements = element[0].querySelectorAll('li[' + options.routeAttr + ']');\n\n angular.forEach(liElements, function(li) {\n\n var liElement = angular.element(li);\n var pattern = liElement.attr(options.routeAttr).replace('/', '\\\\/');\n if(options.strict) {\n pattern = '^' + pattern + '$';\n }\n var regexp = new RegExp(pattern, 'i');\n\n if(regexp.test(newValue)) {\n liElement.addClass(options.activeClass);\n } else {\n liElement.removeClass(options.activeClass);\n }\n\n });\n\n });\n\n }\n\n };\n\n });\n\n// Source: scrollspy/scrollspy.js\nangular.module('mgcrea.ngStrap.scrollspy', ['mgcrea.ngStrap.helpers.debounce', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$scrollspy', function() {\n\n // Pool of registered spies\n var spies = this.$$spies = {};\n\n var defaults = this.defaults = {\n debounce: 150,\n throttle: 100,\n offset: 100\n };\n\n this.$get = function($window, $document, $rootScope, dimensions, debounce, throttle) {\n\n var windowEl = angular.element($window);\n var docEl = angular.element($document.prop('documentElement'));\n var bodyEl = angular.element($window.document.body);\n\n // Helper functions\n\n function nodeName(element, name) {\n return element[0].nodeName && element[0].nodeName.toLowerCase() === name.toLowerCase();\n }\n\n function ScrollSpyFactory(config) {\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n if(!options.element) options.element = bodyEl;\n var isWindowSpy = nodeName(options.element, 'body');\n var scrollEl = isWindowSpy ? windowEl : options.element;\n var scrollId = isWindowSpy ? 'window' : options.id;\n\n // Use existing spy\n if(spies[scrollId]) {\n spies[scrollId].$$count++;\n return spies[scrollId];\n }\n\n var $scrollspy = {};\n\n // Private vars\n var unbindViewContentLoaded, unbindIncludeContentLoaded;\n var trackedElements = $scrollspy.$trackedElements = [];\n var sortedElements = [];\n var activeTarget;\n var debouncedCheckPosition;\n var throttledCheckPosition;\n var debouncedCheckOffsets;\n var viewportHeight;\n var scrollTop;\n\n $scrollspy.init = function() {\n\n // Setup internal ref counter\n this.$$count = 1;\n\n // Bind events\n debouncedCheckPosition = debounce(this.checkPosition, options.debounce);\n throttledCheckPosition = throttle(this.checkPosition, options.throttle);\n scrollEl.on('click', this.checkPositionWithEventLoop);\n windowEl.on('resize', debouncedCheckPosition);\n scrollEl.on('scroll', throttledCheckPosition);\n\n debouncedCheckOffsets = debounce(this.checkOffsets, options.debounce);\n unbindViewContentLoaded = $rootScope.$on('$viewContentLoaded', debouncedCheckOffsets);\n unbindIncludeContentLoaded = $rootScope.$on('$includeContentLoaded', debouncedCheckOffsets);\n debouncedCheckOffsets();\n\n // Register spy for reuse\n if(scrollId) {\n spies[scrollId] = $scrollspy;\n }\n\n };\n\n $scrollspy.destroy = function() {\n\n // Check internal ref counter\n this.$$count--;\n if(this.$$count > 0) {\n return;\n }\n\n // Unbind events\n scrollEl.off('click', this.checkPositionWithEventLoop);\n windowEl.off('resize', debouncedCheckPosition);\n scrollEl.off('scroll', throttledCheckPosition);\n unbindViewContentLoaded();\n unbindIncludeContentLoaded();\n if (scrollId) {\n delete spies[scrollId];\n }\n };\n\n $scrollspy.checkPosition = function() {\n\n // Not ready yet\n if(!sortedElements.length) return;\n\n // Calculate the scroll position\n scrollTop = (isWindowSpy ? $window.pageYOffset : scrollEl.prop('scrollTop')) || 0;\n\n // Calculate the viewport height for use by the components\n viewportHeight = Math.max($window.innerHeight, docEl.prop('clientHeight'));\n\n // Activate first element if scroll is smaller\n if(scrollTop < sortedElements[0].offsetTop && activeTarget !== sortedElements[0].target) {\n return $scrollspy.$activateElement(sortedElements[0]);\n }\n\n // Activate proper element\n for (var i = sortedElements.length; i--;) {\n if(angular.isUndefined(sortedElements[i].offsetTop) || sortedElements[i].offsetTop === null) continue;\n if(activeTarget === sortedElements[i].target) continue;\n if(scrollTop < sortedElements[i].offsetTop) continue;\n if(sortedElements[i + 1] && scrollTop > sortedElements[i + 1].offsetTop) continue;\n return $scrollspy.$activateElement(sortedElements[i]);\n }\n\n };\n\n $scrollspy.checkPositionWithEventLoop = function() {\n // IE 9 throws an error if we use 'this' instead of '$scrollspy'\n // in this setTimeout call\n setTimeout($scrollspy.checkPosition, 1);\n };\n\n // Protected methods\n\n $scrollspy.$activateElement = function(element) {\n if(activeTarget) {\n var activeElement = $scrollspy.$getTrackedElement(activeTarget);\n if(activeElement) {\n activeElement.source.removeClass('active');\n if(nodeName(activeElement.source, 'li') && nodeName(activeElement.source.parent().parent(), 'li')) {\n activeElement.source.parent().parent().removeClass('active');\n }\n }\n }\n activeTarget = element.target;\n element.source.addClass('active');\n if(nodeName(element.source, 'li') && nodeName(element.source.parent().parent(), 'li')) {\n element.source.parent().parent().addClass('active');\n }\n };\n\n $scrollspy.$getTrackedElement = function(target) {\n return trackedElements.filter(function(obj) {\n return obj.target === target;\n })[0];\n };\n\n // Track offsets behavior\n\n $scrollspy.checkOffsets = function() {\n\n angular.forEach(trackedElements, function(trackedElement) {\n var targetElement = document.querySelector(trackedElement.target);\n trackedElement.offsetTop = targetElement ? dimensions.offset(targetElement).top : null;\n if(options.offset && trackedElement.offsetTop !== null) trackedElement.offsetTop -= options.offset * 1;\n });\n\n sortedElements = trackedElements\n .filter(function(el) {\n return el.offsetTop !== null;\n })\n .sort(function(a, b) {\n return a.offsetTop - b.offsetTop;\n });\n\n debouncedCheckPosition();\n\n };\n\n $scrollspy.trackElement = function(target, source) {\n trackedElements.push({target: target, source: source});\n };\n\n $scrollspy.untrackElement = function(target, source) {\n var toDelete;\n for (var i = trackedElements.length; i--;) {\n if(trackedElements[i].target === target && trackedElements[i].source === source) {\n toDelete = i;\n break;\n }\n }\n trackedElements = trackedElements.splice(toDelete, 1);\n };\n\n $scrollspy.activate = function(i) {\n trackedElements[i].addClass('active');\n };\n\n // Initialize plugin\n\n $scrollspy.init();\n return $scrollspy;\n\n }\n\n return ScrollSpyFactory;\n\n };\n\n })\n\n .directive('bsScrollspy', function($rootScope, debounce, dimensions, $scrollspy) {\n\n return {\n restrict: 'EAC',\n link: function postLink(scope, element, attr) {\n\n var options = {scope: scope};\n angular.forEach(['offset', 'target'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n var scrollspy = $scrollspy(options);\n scrollspy.trackElement(options.target, element);\n\n scope.$on('$destroy', function() {\n if (scrollspy) {\n scrollspy.untrackElement(options.target, element);\n scrollspy.destroy();\n }\n options = null;\n scrollspy = null;\n });\n\n }\n };\n\n })\n\n\n .directive('bsScrollspyList', function($rootScope, debounce, dimensions, $scrollspy) {\n\n return {\n restrict: 'A',\n compile: function postLink(element, attr) {\n var children = element[0].querySelectorAll('li > a[href]');\n angular.forEach(children, function(child) {\n var childEl = angular.element(child);\n childEl.parent().attr('bs-scrollspy', '').attr('data-target', childEl.attr('href'));\n });\n }\n\n };\n\n });\n\n// Source: select/select.js\nangular.module('mgcrea.ngStrap.select', ['mgcrea.ngStrap.tooltip', 'mgcrea.ngStrap.helpers.parseOptions'])\n\n .provider('$select', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'select',\n prefixEvent: '$select',\n placement: 'bottom-left',\n templateUrl: 'select/select.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n multiple: false,\n allNoneButtons: false,\n sort: true,\n caretHtml: ' ',\n placeholder: 'Choose among the following...',\n allText: 'All',\n noneText: 'None',\n maxLength: 3,\n maxLengthHtml: 'selected',\n iconCheckmark: 'glyphicon glyphicon-ok'\n };\n\n this.$get = function($window, $document, $rootScope, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n\n function SelectFactory(element, controller, config) {\n\n var $select = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $select = $tooltip(element, options);\n var scope = $select.$scope;\n\n scope.$matches = [];\n if (options.multiple) {\n scope.$activeIndex = [];\n }\n else {\n scope.$activeIndex = -1;\n }\n scope.$isMultiple = options.multiple;\n scope.$showAllNoneButtons = options.allNoneButtons && options.multiple;\n scope.$iconCheckmark = options.iconCheckmark;\n scope.$allText = options.allText;\n scope.$noneText = options.noneText;\n\n scope.$activate = function(index) {\n scope.$$postDigest(function() {\n $select.activate(index);\n });\n };\n\n scope.$select = function(index, evt) {\n scope.$$postDigest(function() {\n $select.select(index);\n });\n };\n\n scope.$isVisible = function() {\n return $select.$isVisible();\n };\n\n scope.$isActive = function(index) {\n return $select.$isActive(index);\n };\n\n scope.$selectAll = function () {\n for (var i = 0; i < scope.$matches.length; i++) {\n if (!scope.$isActive(i)) {\n scope.$select(i);\n }\n }\n };\n\n scope.$selectNone = function () {\n for (var i = 0; i < scope.$matches.length; i++) {\n if (scope.$isActive(i)) {\n scope.$select(i);\n }\n }\n };\n\n // Public methods\n\n $select.update = function(matches) {\n scope.$matches = matches;\n $select.$updateActiveIndex();\n };\n\n $select.activate = function(index) {\n if(options.multiple) {\n $select.$isActive(index) ? scope.$activeIndex.splice(scope.$activeIndex.indexOf(index), 1) : scope.$activeIndex.push(index);\n if(options.sort) scope.$activeIndex.sort(function(a, b) { return a - b; }); // use numeric sort instead of default sort\n } else {\n scope.$activeIndex = index;\n }\n return scope.$activeIndex;\n };\n\n $select.select = function(index) {\n var value = scope.$matches[index].value;\n scope.$apply(function() {\n $select.activate(index);\n if(options.multiple) {\n controller.$setViewValue(scope.$activeIndex.map(function(index) {\n return scope.$matches[index].value;\n }));\n } else {\n controller.$setViewValue(value);\n // Hide if single select\n $select.hide();\n }\n });\n // Emit event\n scope.$emit(options.prefixEvent + '.select', value, index, $select);\n };\n\n // Protected methods\n\n $select.$updateActiveIndex = function() {\n if(controller.$modelValue && scope.$matches.length) {\n if(options.multiple && angular.isArray(controller.$modelValue)) {\n scope.$activeIndex = controller.$modelValue.map(function(value) {\n return $select.$getIndex(value);\n });\n } else {\n scope.$activeIndex = $select.$getIndex(controller.$modelValue);\n }\n } else if(scope.$activeIndex >= scope.$matches.length) {\n scope.$activeIndex = options.multiple ? [] : 0;\n }\n };\n\n $select.$isVisible = function() {\n if(!options.minLength || !controller) {\n return scope.$matches.length;\n }\n // minLength support\n return scope.$matches.length && controller.$viewValue.length >= options.minLength;\n };\n\n $select.$isActive = function(index) {\n if(options.multiple) {\n return scope.$activeIndex.indexOf(index) !== -1;\n } else {\n return scope.$activeIndex === index;\n }\n };\n\n $select.$getIndex = function(value) {\n var l = scope.$matches.length, i = l;\n if(!l) return;\n for(i = l; i--;) {\n if(scope.$matches[i].value === value) break;\n }\n if(i < 0) return;\n return i;\n };\n\n $select.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n targetEl.triggerHandler('click');\n }\n };\n\n $select.$onKeyDown = function(evt) {\n if (!/(9|13|38|40)/.test(evt.keyCode)) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // release focus on tab\n if (options.multiple && evt.keyCode === 9) {\n return $select.hide();\n }\n\n // Select with enter\n if(!options.multiple && (evt.keyCode === 13 || evt.keyCode === 9)) {\n return $select.select(scope.$activeIndex);\n }\n\n if (!options.multiple) {\n // Navigate with keyboard\n if(evt.keyCode === 38 && scope.$activeIndex > 0) scope.$activeIndex--;\n else if(evt.keyCode === 38 && scope.$activeIndex < 0) scope.$activeIndex = scope.$matches.length - 1;\n else if(evt.keyCode === 40 && scope.$activeIndex < scope.$matches.length - 1) scope.$activeIndex++;\n else if(angular.isUndefined(scope.$activeIndex)) scope.$activeIndex = 0;\n scope.$digest();\n }\n };\n\n // Overrides\n\n var _show = $select.show;\n $select.show = function() {\n _show();\n if(options.multiple) {\n $select.$element.addClass('select-multiple');\n }\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n $select.$element.on(isTouch ? 'touchstart' : 'mousedown', $select.$onMouseDown);\n if(options.keyboard) {\n element.on('keydown', $select.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $select.hide;\n $select.hide = function() {\n if(!options.multiple && !controller.$modelValue) {\n scope.$activeIndex = -1;\n }\n $select.$element.off(isTouch ? 'touchstart' : 'mousedown', $select.$onMouseDown);\n if(options.keyboard) {\n element.off('keydown', $select.$onKeyDown);\n }\n _hide(true);\n };\n\n return $select;\n\n }\n\n SelectFactory.defaults = defaults;\n return SelectFactory;\n\n };\n\n })\n\n .directive('bsSelect', function($window, $parse, $q, $select, $parseOptions) {\n\n var defaults = $select.defaults;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope, placeholder: defaults.placeholder};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'placeholder', 'allNoneButtons', 'maxLength', 'maxLengthHtml', 'allText', 'noneText', 'iconCheckmark', 'autoClose', 'id', 'sort', 'caretHtml', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'allNoneButtons', 'sort'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Only parse data-multiple. Angular sets existence attributes to true (multiple/required/etc), they apply this\n // to data-multiple as well for some reason, so we'll parse this ourselves and disregard multiple\n var dataMultiple = element.attr('data-multiple');\n if(angular.isDefined(dataMultiple)) {\n if(falseValueRegExp.test(dataMultiple))\n options.multiple = false;\n else\n options.multiple = dataMultiple;\n }\n\n // Add support for select markup\n if(element[0].nodeName.toLowerCase() === 'select') {\n var inputEl = element;\n inputEl.css('display', 'none');\n element = angular.element('');\n inputEl.after(element);\n }\n\n // Build proper bsOptions\n var parsedOptions = $parseOptions(attr.bsOptions);\n\n // Initialize select\n var select = $select(element, controller, options);\n\n // Watch bsOptions values before filtering for changes\n var watchedOptions = parsedOptions.$match[7].replace(/\\|.+/, '').trim();\n scope.$watchCollection(watchedOptions, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', watchedOptions, newValue, oldValue);\n parsedOptions.valuesFn(scope, controller)\n .then(function(values) {\n select.update(values);\n controller.$render();\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.ngModel, newValue, oldValue);\n select.$updateActiveIndex();\n controller.$render();\n }, true);\n\n // Model rendering in view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var selected, index;\n if(options.multiple && angular.isArray(controller.$modelValue)) {\n selected = controller.$modelValue.map(function(value) {\n index = select.$getIndex(value);\n return angular.isDefined(index) ? select.$scope.$matches[index].label : false;\n }).filter(angular.isDefined);\n if(selected.length > (options.maxLength || defaults.maxLength)) {\n selected = selected.length + ' ' + (options.maxLengthHtml || defaults.maxLengthHtml);\n } else {\n selected = selected.join(', ');\n }\n } else {\n index = select.$getIndex(controller.$modelValue);\n selected = angular.isDefined(index) ? select.$scope.$matches[index].label : false;\n }\n element.html((selected ? selected : options.placeholder) + (options.caretHtml ? options.caretHtml : defaults.caretHtml));\n };\n\n if(options.multiple){\n controller.$isEmpty = function(value){\n return !value || value.length === 0;\n };\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (select) select.destroy();\n options = null;\n select = null;\n });\n\n }\n };\n\n });\n\n// Source: popover/popover.js\nangular.module('mgcrea.ngStrap.popover', ['mgcrea.ngStrap.tooltip'])\n\n .provider('$popover', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n customClass: '',\n // uncommenting the next two lines will break backwards compatability\n // prefixClass: 'popover',\n // prefixEvent: 'popover',\n container: false,\n target: false,\n placement: 'right',\n templateUrl: 'popover/popover.tpl.html',\n contentTemplate: false,\n trigger: 'click',\n keyboard: true,\n html: false,\n title: '',\n content: '',\n delay: 0,\n autoClose: false\n };\n\n this.$get = function($tooltip) {\n\n function PopoverFactory(element, config) {\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n var $popover = $tooltip(element, options);\n\n // Support scope as string options [/*title, */content]\n if(options.content) {\n $popover.$scope.content = options.content;\n }\n\n return $popover;\n\n }\n\n return PopoverFactory;\n\n };\n\n })\n\n .directive('bsPopover', function($window, $sce, $popover) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'customClass', 'autoClose', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoClose'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // should not parse target attribute (anchor tag), only data-target #1454\n var dataTarget = element.attr('data-target');\n if(angular.isDefined(dataTarget)) {\n if(falseValueRegExp.test(dataTarget))\n options.target = false;\n else\n options.target = dataTarget;\n }\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n angular.isDefined(oldValue) && requestAnimationFrame(function() {\n popover && popover.$applyPlacement();\n });\n });\n });\n\n // Support scope as an object\n attr.bsPopover && scope.$watch(attr.bsPopover, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n angular.isDefined(oldValue) && requestAnimationFrame(function() {\n popover && popover.$applyPlacement();\n });\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!popover || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(popover),?/i);\n newValue === true ? popover.show() : popover.hide();\n });\n\n // Viewport support\n attr.viewport && scope.$watch(attr.viewport, function (newValue) {\n if(!popover || !angular.isDefined(newValue)) return;\n popover.setViewport(newValue);\n });\n\n // Initialize popover\n var popover = $popover(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (popover) popover.destroy();\n options = null;\n popover = null;\n });\n\n }\n };\n\n });\n\n// Source: tab/tab.js\nangular.module('mgcrea.ngStrap.tab', [])\n\n .provider('$tab', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n template: 'tab/tab.tpl.html',\n navClass: 'nav-tabs',\n activeClass: 'active'\n };\n\n var controller = this.controller = function($scope, $element, $attrs) {\n var self = this;\n\n // Attributes options\n self.$options = angular.copy(defaults);\n angular.forEach(['animation', 'navClass', 'activeClass'], function(key) {\n if(angular.isDefined($attrs[key])) self.$options[key] = $attrs[key];\n });\n\n // Publish options on scope\n $scope.$navClass = self.$options.navClass;\n $scope.$activeClass = self.$options.activeClass;\n\n self.$panes = $scope.$panes = [];\n\n // Please use $activePaneChangeListeners if you use `bsActivePane`\n // Because we removed `ngModel` as default, we rename viewChangeListeners to\n // activePaneChangeListeners to make more sense.\n self.$activePaneChangeListeners = self.$viewChangeListeners = [];\n\n self.$push = function(pane) {\n if(angular.isUndefined(self.$panes.$active)) {\n $scope.$setActive(pane.name || 0);\n }\n self.$panes.push(pane);\n };\n\n self.$remove = function(pane) {\n var index = self.$panes.indexOf(pane);\n var active = self.$panes.$active;\n var activeIndex;\n if(angular.isString(active)) {\n activeIndex = self.$panes.map(function(pane) {\n return pane.name;\n }).indexOf(active);\n } else {\n activeIndex = self.$panes.$active;\n }\n\n // remove pane from $panes array\n self.$panes.splice(index, 1);\n\n if (index < activeIndex) {\n // we removed a pane before the active pane, so we need to\n // decrement the active pane index\n activeIndex--;\n }\n else if (index === activeIndex && activeIndex === self.$panes.length) {\n // we remove the active pane and it was the one at the end,\n // so select the previous one\n activeIndex--;\n }\n if(activeIndex >= 0 && activeIndex < self.$panes.length) {\n self.$setActive(self.$panes[activeIndex].name || activeIndex);\n } else {\n self.$setActive();\n }\n };\n\n self.$setActive = $scope.$setActive = function(value) {\n self.$panes.$active = value;\n self.$activePaneChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n self.$isActive = $scope.$isActive = function($pane, $index) {\n return self.$panes.$active === $pane.name || self.$panes.$active === $index;\n };\n\n };\n\n this.$get = function() {\n var $tab = {};\n $tab.defaults = defaults;\n $tab.controller = controller;\n return $tab;\n };\n\n })\n\n .directive('bsTabs', function($window, $animate, $tab, $parse) {\n\n var defaults = $tab.defaults;\n\n return {\n require: ['?ngModel', 'bsTabs'],\n transclude: true,\n scope: true,\n controller: ['$scope', '$element', '$attrs', $tab.controller],\n templateUrl: function(element, attr) {\n return attr.template || defaults.template;\n },\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsTabsCtrl = controllers[1];\n\n // 'ngModel' does interfere with form validation\n // and status, use `bsActivePane` instead to avoid it\n if(ngModelCtrl) {\n\n // Update the modelValue following\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n ngModelCtrl.$setViewValue(bsTabsCtrl.$panes.$active);\n });\n\n // modelValue -> $formatters -> viewValue\n ngModelCtrl.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n bsTabsCtrl.$setActive(modelValue);\n return modelValue;\n });\n\n }\n\n if (attrs.bsActivePane) {\n // adapted from angularjs ngModelController bindings\n // https://github.com/angular/angular.js/blob/v1.3.1/src%2Fng%2Fdirective%2Finput.js#L1730\n var parsedBsActivePane = $parse(attrs.bsActivePane);\n\n // Update bsActivePane value with change\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n parsedBsActivePane.assign(scope, bsTabsCtrl.$panes.$active);\n });\n\n // watch bsActivePane for value changes\n scope.$watch(attrs.bsActivePane, function(newValue, oldValue) {\n bsTabsCtrl.$setActive(newValue);\n }, true);\n }\n }\n };\n\n })\n\n .directive('bsPane', function($window, $animate, $sce) {\n\n return {\n require: ['^?ngModel', '^bsTabs'],\n scope: true,\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsTabsCtrl = controllers[1];\n\n // Add base class\n element.addClass('tab-pane');\n\n // Observe title attribute for change\n attrs.$observe('title', function(newValue, oldValue) {\n scope.title = $sce.trustAsHtml(newValue);\n });\n\n // Save tab name into scope\n scope.name = attrs.name;\n\n // Add animation class\n if(bsTabsCtrl.$options.animation) {\n element.addClass(bsTabsCtrl.$options.animation);\n }\n\n attrs.$observe('disabled', function(newValue, oldValue) {\n scope.disabled = scope.$eval(newValue);\n });\n\n // Push pane to parent bsTabs controller\n bsTabsCtrl.$push(scope);\n\n // remove pane from tab controller when pane is destroyed\n scope.$on('$destroy', function() {\n bsTabsCtrl.$remove(scope);\n });\n\n function render() {\n var index = bsTabsCtrl.$panes.indexOf(scope);\n $animate[bsTabsCtrl.$isActive(scope, index) ? 'addClass' : 'removeClass'](element, bsTabsCtrl.$options.activeClass);\n }\n\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n render();\n });\n render();\n\n }\n };\n\n });\n\n// Source: tooltip/tooltip.js\nangular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.core', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$tooltip', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n customClass: '',\n prefixClass: 'tooltip',\n prefixEvent: 'tooltip',\n container: false,\n target: false,\n placement: 'top',\n templateUrl: 'tooltip/tooltip.tpl.html',\n template: '',\n contentTemplate: false,\n trigger: 'hover focus',\n keyboard: false,\n html: false,\n show: false,\n title: '',\n type: '',\n delay: 0,\n autoClose: false,\n bsEnabled: true,\n viewport: {\n selector: 'body',\n padding: 0\n }\n };\n\n this.$get = function($window, $rootScope, $bsCompiler, $q, $templateCache, $http, $animate, $sce, dimensions, $$rAF, $timeout) {\n\n var trim = String.prototype.trim;\n var isTouch = 'createTouch' in $window.document;\n var htmlReplaceRegExp = /ng-bind=\"/ig;\n var $body = angular.element($window.document);\n\n function TooltipFactory(element, config) {\n\n var $tooltip = {};\n\n // Common vars\n var options = $tooltip.$options = angular.extend({}, defaults, config);\n var promise = $tooltip.$promise = $bsCompiler.compile(options);\n var scope = $tooltip.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n var nodeName = element[0].nodeName.toLowerCase();\n if(options.delay && angular.isString(options.delay)) {\n var split = options.delay.split(',').map(parseFloat);\n options.delay = split.length > 1 ? {show: split[0], hide: split[1]} : split[0];\n }\n\n // Store $id to identify the triggering element in events\n // give priority to options.id, otherwise, try to use\n // element id if defined\n $tooltip.$id = options.id || element.attr('id') || '';\n\n // Support scope as string options\n if(options.title) {\n scope.title = $sce.trustAsHtml(options.title);\n }\n\n // Provide scope helpers\n scope.$setEnabled = function(isEnabled) {\n scope.$$postDigest(function() {\n $tooltip.setEnabled(isEnabled);\n });\n };\n scope.$hide = function() {\n scope.$$postDigest(function() {\n $tooltip.hide();\n });\n };\n scope.$show = function() {\n scope.$$postDigest(function() {\n $tooltip.show();\n });\n };\n scope.$toggle = function() {\n scope.$$postDigest(function() {\n $tooltip.toggle();\n });\n };\n // Publish isShown as a protected var on scope\n $tooltip.$isShown = scope.$isShown = false;\n\n // Private vars\n var timeout, hoverState;\n\n // Fetch, compile then initialize tooltip\n var compileData, tipElement, tipContainer, tipScope;\n promise.then(function(data) {\n compileData = data;\n $tooltip.init();\n });\n\n $tooltip.init = function() {\n\n // Options: delay\n if (options.delay && angular.isNumber(options.delay)) {\n options.delay = {\n show: options.delay,\n hide: options.delay\n };\n }\n\n // Replace trigger on touch devices ?\n // if(isTouch && options.trigger === defaults.trigger) {\n // options.trigger.replace(/hover/g, 'click');\n // }\n\n // Options : container\n if(options.container === 'self') {\n tipContainer = element;\n } else if(angular.isElement(options.container)) {\n tipContainer = options.container;\n } else if(options.container) {\n tipContainer = findElement(options.container);\n }\n\n // Options: trigger\n bindTriggerEvents();\n\n // Options: target\n if(options.target) {\n options.target = angular.isElement(options.target) ? options.target : findElement(options.target);\n }\n\n // Options: show\n if(options.show) {\n scope.$$postDigest(function() {\n options.trigger === 'focus' ? element[0].focus() : $tooltip.show();\n });\n }\n\n };\n\n $tooltip.destroy = function() {\n\n // Unbind events\n unbindTriggerEvents();\n\n // Remove element\n destroyTipElement();\n\n // Destroy scope\n scope.$destroy();\n\n };\n\n $tooltip.enter = function() {\n\n clearTimeout(timeout);\n hoverState = 'in';\n if (!options.delay || !options.delay.show) {\n return $tooltip.show();\n }\n\n timeout = setTimeout(function() {\n if (hoverState ==='in') $tooltip.show();\n }, options.delay.show);\n\n };\n\n $tooltip.show = function() {\n if (!options.bsEnabled || $tooltip.$isShown) return;\n\n scope.$emit(options.prefixEvent + '.show.before', $tooltip);\n var parent, after;\n if (options.container) {\n parent = tipContainer;\n if (tipContainer[0].lastChild) {\n after = angular.element(tipContainer[0].lastChild);\n } else {\n after = null;\n }\n } else {\n parent = null;\n after = element;\n }\n\n\n // Hide any existing tipElement\n if(tipElement) destroyTipElement();\n // Fetch a cloned element linked from template\n tipScope = $tooltip.$scope.$new();\n tipElement = $tooltip.$element = compileData.link(tipScope, function(clonedElement, scope) {});\n\n // Set the initial positioning. Make the tooltip invisible\n // so IE doesn't try to focus on it off screen.\n tipElement.css({top: '-9999px', left: '-9999px', right: 'auto', display: 'block', visibility: 'hidden'});\n\n // Options: animation\n if(options.animation) tipElement.addClass(options.animation);\n // Options: type\n if(options.type) tipElement.addClass(options.prefixClass + '-' + options.type);\n // Options: custom classes\n if(options.customClass) tipElement.addClass(options.customClass);\n\n // Append the element, without any animations. If we append\n // using $animate.enter, some of the animations cause the placement\n // to be off due to the transforms.\n after ? after.after(tipElement) : parent.prepend(tipElement);\n\n $tooltip.$isShown = scope.$isShown = true;\n safeDigest(scope);\n\n // Now, apply placement\n $tooltip.$applyPlacement();\n\n // Once placed, animate it.\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.enter(tipElement, parent, after, enterAnimateCallback);\n } else {\n $animate.enter(tipElement, parent, after).then(enterAnimateCallback);\n }\n safeDigest(scope);\n\n $$rAF(function () {\n // Once the tooltip is placed and the animation starts, make the tooltip visible\n if(tipElement) tipElement.css({visibility: 'visible'});\n });\n\n // Bind events\n if(options.keyboard) {\n if(options.trigger !== 'focus') {\n $tooltip.focus();\n }\n bindKeyboardEvents();\n }\n\n if(options.autoClose) {\n bindAutoCloseEvents();\n }\n\n };\n\n function enterAnimateCallback() {\n scope.$emit(options.prefixEvent + '.show', $tooltip);\n }\n\n $tooltip.leave = function() {\n\n clearTimeout(timeout);\n hoverState = 'out';\n if (!options.delay || !options.delay.hide) {\n return $tooltip.hide();\n }\n timeout = setTimeout(function () {\n if (hoverState === 'out') {\n $tooltip.hide();\n }\n }, options.delay.hide);\n\n };\n\n var _blur;\n var _tipToHide;\n $tooltip.hide = function(blur) {\n\n if(!$tooltip.$isShown) return;\n scope.$emit(options.prefixEvent + '.hide.before', $tooltip);\n\n // store blur value for leaveAnimateCallback to use\n _blur = blur;\n\n // store current tipElement reference to use\n // in leaveAnimateCallback\n _tipToHide = tipElement;\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.leave(tipElement, leaveAnimateCallback);\n } else {\n $animate.leave(tipElement).then(leaveAnimateCallback);\n }\n\n $tooltip.$isShown = scope.$isShown = false;\n safeDigest(scope);\n\n // Unbind events\n if(options.keyboard && tipElement !== null) {\n unbindKeyboardEvents();\n }\n\n if(options.autoClose && tipElement !== null) {\n unbindAutoCloseEvents();\n }\n };\n\n function leaveAnimateCallback() {\n scope.$emit(options.prefixEvent + '.hide', $tooltip);\n\n // check if current tipElement still references\n // the same element when hide was called\n if (tipElement === _tipToHide) {\n // Allow to blur the input when hidden, like when pressing enter key\n if(_blur && options.trigger === 'focus') {\n return element[0].blur();\n }\n\n // clean up child scopes\n destroyTipElement();\n }\n }\n\n $tooltip.toggle = function() {\n $tooltip.$isShown ? $tooltip.leave() : $tooltip.enter();\n };\n\n $tooltip.focus = function() {\n tipElement[0].focus();\n };\n\n $tooltip.setEnabled = function(isEnabled) {\n options.bsEnabled = isEnabled;\n };\n\n $tooltip.setViewport = function(viewport) {\n options.viewport = viewport;\n };\n\n // Protected methods\n\n $tooltip.$applyPlacement = function() {\n if(!tipElement) return;\n\n // Determine if we're doing an auto or normal placement\n var placement = options.placement,\n autoToken = /\\s?auto?\\s?/i,\n autoPlace = autoToken.test(placement);\n\n if (autoPlace) {\n placement = placement.replace(autoToken, '') || defaults.placement;\n }\n\n // Need to add the position class before we get\n // the offsets\n tipElement.addClass(options.placement);\n\n // Get the position of the target element\n // and the height and width of the tooltip so we can center it.\n var elementPosition = getPosition(),\n tipWidth = tipElement.prop('offsetWidth'),\n tipHeight = tipElement.prop('offsetHeight');\n\n // If we're auto placing, we need to check the positioning\n if (autoPlace) {\n var originalPlacement = placement;\n var container = options.container ? findElement(options.container) : element.parent();\n var containerPosition = getPosition(container);\n\n // Determine if the vertical placement\n if (originalPlacement.indexOf('bottom') >= 0 && elementPosition.bottom + tipHeight > containerPosition.bottom) {\n placement = originalPlacement.replace('bottom', 'top');\n } else if (originalPlacement.indexOf('top') >= 0 && elementPosition.top - tipHeight < containerPosition.top) {\n placement = originalPlacement.replace('top', 'bottom');\n }\n\n // Determine the horizontal placement\n // The exotic placements of left and right are opposite of the standard placements. Their arrows are put on the left/right\n // and flow in the opposite direction of their placement.\n if ((originalPlacement === 'right' || originalPlacement === 'bottom-left' || originalPlacement === 'top-left') &&\n elementPosition.right + tipWidth > containerPosition.width) {\n\n placement = originalPlacement === 'right' ? 'left' : placement.replace('left', 'right');\n } else if ((originalPlacement === 'left' || originalPlacement === 'bottom-right' || originalPlacement === 'top-right') &&\n elementPosition.left - tipWidth < containerPosition.left) {\n\n placement = originalPlacement === 'left' ? 'right' : placement.replace('right', 'left');\n }\n\n tipElement.removeClass(originalPlacement).addClass(placement);\n }\n\n // Get the tooltip's top and left coordinates to center it with this directive.\n var tipPosition = getCalculatedOffset(placement, elementPosition, tipWidth, tipHeight);\n applyPlacement(tipPosition, placement);\n };\n\n $tooltip.$onKeyUp = function(evt) {\n if (evt.which === 27 && $tooltip.$isShown) {\n $tooltip.hide();\n evt.stopPropagation();\n }\n };\n\n $tooltip.$onFocusKeyUp = function(evt) {\n if (evt.which === 27) {\n element[0].blur();\n evt.stopPropagation();\n }\n };\n\n $tooltip.$onFocusElementMouseDown = function(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n // Some browsers do not auto-focus buttons (eg. Safari)\n $tooltip.$isShown ? element[0].blur() : element[0].focus();\n };\n\n // bind/unbind events\n function bindTriggerEvents() {\n var triggers = options.trigger.split(' ');\n angular.forEach(triggers, function(trigger) {\n if(trigger === 'click') {\n element.on('click', $tooltip.toggle);\n } else if(trigger !== 'manual') {\n element.on(trigger === 'hover' ? 'mouseenter' : 'focus', $tooltip.enter);\n element.on(trigger === 'hover' ? 'mouseleave' : 'blur', $tooltip.leave);\n nodeName === 'button' && trigger !== 'hover' && element.on(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);\n }\n });\n }\n\n function unbindTriggerEvents() {\n var triggers = options.trigger.split(' ');\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i];\n if(trigger === 'click') {\n element.off('click', $tooltip.toggle);\n } else if(trigger !== 'manual') {\n element.off(trigger === 'hover' ? 'mouseenter' : 'focus', $tooltip.enter);\n element.off(trigger === 'hover' ? 'mouseleave' : 'blur', $tooltip.leave);\n nodeName === 'button' && trigger !== 'hover' && element.off(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);\n }\n }\n }\n\n function bindKeyboardEvents() {\n if(options.trigger !== 'focus') {\n tipElement.on('keyup', $tooltip.$onKeyUp);\n } else {\n element.on('keyup', $tooltip.$onFocusKeyUp);\n }\n }\n\n function unbindKeyboardEvents() {\n if(options.trigger !== 'focus') {\n tipElement.off('keyup', $tooltip.$onKeyUp);\n } else {\n element.off('keyup', $tooltip.$onFocusKeyUp);\n }\n }\n\n var _autoCloseEventsBinded = false;\n function bindAutoCloseEvents() {\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n // Stop propagation when clicking inside tooltip\n tipElement.on('click', stopEventPropagation);\n\n // Hide when clicking outside tooltip\n $body.on('click', $tooltip.hide);\n\n _autoCloseEventsBinded = true;\n }, 0, false);\n }\n\n function unbindAutoCloseEvents() {\n if (_autoCloseEventsBinded) {\n tipElement.off('click', stopEventPropagation);\n $body.off('click', $tooltip.hide);\n _autoCloseEventsBinded = false;\n }\n }\n\n function stopEventPropagation(event) {\n event.stopPropagation();\n }\n\n // Private methods\n\n function getPosition($element) {\n $element = $element || (options.target || element);\n\n var el = $element[0],\n isBody = el.tagName === 'BODY';\n\n var elRect = el.getBoundingClientRect();\n var rect = {};\n\n // IE8 has issues with angular.extend and using elRect directly.\n // By coping the values of elRect into a new object, we can continue to use extend\n for (var p in elRect) {\n // DO NOT use hasOwnProperty when inspecting the return of getBoundingClientRect.\n rect[p] = elRect[p];\n }\n\n if (rect.width === null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n rect = angular.extend({}, rect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top });\n }\n var elOffset = isBody ? { top: 0, left: 0 } : dimensions.offset(el),\n scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.prop('scrollTop') || 0 },\n outerDims = isBody ? { width: document.documentElement.clientWidth, height: $window.innerHeight } : null;\n\n return angular.extend({}, rect, scroll, outerDims, elOffset);\n }\n\n function getCalculatedOffset(placement, position, actualWidth, actualHeight) {\n var offset;\n var split = placement.split('-');\n\n switch (split[0]) {\n case 'right':\n offset = {\n top: position.top + position.height / 2 - actualHeight / 2,\n left: position.left + position.width\n };\n break;\n case 'bottom':\n offset = {\n top: position.top + position.height,\n left: position.left + position.width / 2 - actualWidth / 2\n };\n break;\n case 'left':\n offset = {\n top: position.top + position.height / 2 - actualHeight / 2,\n left: position.left - actualWidth\n };\n break;\n default:\n offset = {\n top: position.top - actualHeight,\n left: position.left + position.width / 2 - actualWidth / 2\n };\n break;\n }\n\n if(!split[1]) {\n return offset;\n }\n\n // Add support for corners @todo css\n if(split[0] === 'top' || split[0] === 'bottom') {\n switch (split[1]) {\n case 'left':\n offset.left = position.left;\n break;\n case 'right':\n offset.left = position.left + position.width - actualWidth;\n }\n } else if(split[0] === 'left' || split[0] === 'right') {\n switch (split[1]) {\n case 'top':\n offset.top = position.top - actualHeight;\n break;\n case 'bottom':\n offset.top = position.top + position.height;\n }\n }\n\n return offset;\n }\n\n function applyPlacement(offset, placement) {\n var tip = tipElement[0],\n width = tip.offsetWidth,\n height = tip.offsetHeight;\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt(dimensions.css(tip, 'margin-top'), 10),\n marginLeft = parseInt(dimensions.css(tip, 'margin-left'), 10);\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0;\n if (isNaN(marginLeft)) marginLeft = 0;\n\n offset.top = offset.top + marginTop;\n offset.left = offset.left + marginLeft;\n\n // dimensions setOffset doesn't round pixel values\n // so we use setOffset directly with our own function\n dimensions.setOffset(tip, angular.extend({\n using: function (props) {\n tipElement.css({\n top: Math.round(props.top) + 'px',\n left: Math.round(props.left) + 'px',\n right: ''\n });\n }\n }, offset), 0);\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = tip.offsetWidth,\n actualHeight = tip.offsetHeight;\n\n if (placement === 'top' && actualHeight !== height) {\n offset.top = offset.top + height - actualHeight;\n }\n\n // If it's an exotic placement, exit now instead of\n // applying a delta and changing the arrow\n if (/top-left|top-right|bottom-left|bottom-right/.test(placement)) return;\n\n var delta = getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight);\n\n if (delta.left) {\n offset.left += delta.left;\n } else {\n offset.top += delta.top;\n }\n\n dimensions.setOffset(tip, offset);\n\n if (/top|right|bottom|left/.test(placement)) {\n var isVertical = /top|bottom/.test(placement),\n arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight,\n arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight';\n\n replaceArrow(arrowDelta, tip[arrowOffsetPosition], isVertical);\n }\n }\n\n function getViewportAdjustedDelta(placement, position, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 },\n $viewport = options.viewport && findElement(options.viewport.selector || options.viewport);\n\n if (!$viewport) {\n return delta;\n }\n\n var viewportPadding = options.viewport && options.viewport.padding || 0,\n viewportDimensions = getPosition($viewport);\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = position.top - viewportPadding - viewportDimensions.scroll,\n bottomEdgeOffset = position.top + viewportPadding - viewportDimensions.scroll + actualHeight;\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset;\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset;\n }\n } else {\n var leftEdgeOffset = position.left - viewportPadding,\n rightEdgeOffset = position.left + viewportPadding + actualWidth;\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset;\n } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset;\n }\n }\n\n return delta;\n }\n\n function replaceArrow(delta, dimension, isHorizontal) {\n var $arrow = findElement('.tooltip-arrow, .arrow', tipElement[0]);\n\n $arrow.css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isHorizontal ? 'top' : 'left', '');\n }\n\n function destroyTipElement() {\n // Cancel pending callbacks\n clearTimeout(timeout);\n\n if($tooltip.$isShown && tipElement !== null) {\n if(options.autoClose) {\n unbindAutoCloseEvents();\n }\n\n if(options.keyboard) {\n unbindKeyboardEvents();\n }\n }\n\n if(tipScope) {\n tipScope.$destroy();\n tipScope = null;\n }\n\n if(tipElement) {\n tipElement.remove();\n tipElement = $tooltip.$element = null;\n }\n }\n\n return $tooltip;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n var fetchPromises = {};\n function fetchTemplate(template) {\n if(fetchPromises[template]) return fetchPromises[template];\n return (fetchPromises[template] = $http.get(template, {cache: $templateCache}).then(function(res) {\n return res.data;\n }));\n }\n\n return TooltipFactory;\n\n };\n\n })\n\n .directive('bsTooltip', function($window, $location, $sce, $tooltip, $$rAF) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'backdropAnimation', 'type', 'customClass', 'id'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // should not parse target attribute (anchor tag), only data-target #1454\n var dataTarget = element.attr('data-target');\n if(angular.isDefined(dataTarget)) {\n if(falseValueRegExp.test(dataTarget))\n options.target = false;\n else\n options.target = dataTarget;\n }\n\n // overwrite inherited title value when no value specified\n // fix for angular 1.3.1 531a8de72c439d8ddd064874bf364c00cedabb11\n if (!scope.hasOwnProperty('title')){\n scope.title = '';\n }\n\n // Observe scope attributes for change\n attr.$observe('title', function(newValue) {\n if (angular.isDefined(newValue) || !scope.hasOwnProperty('title')) {\n var oldValue = scope.title;\n scope.title = $sce.trustAsHtml(newValue);\n angular.isDefined(oldValue) && $$rAF(function() {\n tooltip && tooltip.$applyPlacement();\n });\n }\n });\n\n // Support scope as an object\n attr.bsTooltip && scope.$watch(attr.bsTooltip, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.title = newValue;\n }\n angular.isDefined(oldValue) && $$rAF(function() {\n tooltip && tooltip.$applyPlacement();\n });\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!tooltip || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(tooltip),?/i);\n newValue === true ? tooltip.show() : tooltip.hide();\n });\n\n // Enabled binding support\n attr.bsEnabled && scope.$watch(attr.bsEnabled, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.bsEnabled, newValue, oldValue);\n if(!tooltip || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|1|,?(tooltip),?/i);\n newValue === false ? tooltip.setEnabled(false) : tooltip.setEnabled(true);\n });\n\n // Viewport support\n attr.viewport && scope.$watch(attr.viewport, function (newValue) {\n if(!tooltip || !angular.isDefined(newValue)) return;\n tooltip.setViewport(newValue);\n });\n\n // Initialize popover\n var tooltip = $tooltip(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if(tooltip) tooltip.destroy();\n options = null;\n tooltip = null;\n });\n\n }\n };\n\n });\n\n// Source: timepicker/timepicker.js\nangular.module('mgcrea.ngStrap.timepicker', [\n 'mgcrea.ngStrap.helpers.dateParser',\n 'mgcrea.ngStrap.helpers.dateFormatter',\n 'mgcrea.ngStrap.tooltip'])\n\n .provider('$timepicker', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n //uncommenting the following line will break backwards compatability\n // prefixEvent: 'timepicker',\n prefixClass: 'timepicker',\n placement: 'bottom-left',\n templateUrl: 'timepicker/timepicker.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n // lang: $locale.id,\n useNative: true,\n timeType: 'date',\n timeFormat: 'shortTime',\n timezone: null,\n modelTimeFormat: null,\n autoclose: false,\n minTime: -Infinity,\n maxTime: +Infinity,\n length: 5,\n hourStep: 1,\n minuteStep: 5,\n secondStep: 5,\n roundDisplay: false,\n iconUp: 'glyphicon glyphicon-chevron-up',\n iconDown: 'glyphicon glyphicon-chevron-down',\n arrowBehavior: 'pager'\n };\n\n this.$get = function($window, $document, $rootScope, $sce, $dateFormatter, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n if(!defaults.lang) defaults.lang = $dateFormatter.getDefaultLocale();\n\n function timepickerFactory(element, controller, config) {\n\n var $timepicker = $tooltip(element, angular.extend({}, defaults, config));\n var parentScope = config.scope;\n var options = $timepicker.$options;\n var scope = $timepicker.$scope;\n\n var lang = options.lang;\n var formatDate = function(date, format, timezone) {\n return $dateFormatter.formatDate(date, format, lang, timezone);\n };\n\n function floorMinutes(time)\n {\n // coeff used to floor current time to nearest minuteStep interval\n var coeff = 1000 * 60 * options.minuteStep;\n return new Date(Math.floor(time.getTime() / coeff) * coeff);\n }\n\n // View vars\n\n var selectedIndex = 0;\n var defaultDate = options.roundDisplay ? floorMinutes(new Date()) : new Date();\n var startDate = controller.$dateValue || defaultDate;\n var viewDate = {hour: startDate.getHours(), meridian: startDate.getHours() < 12, minute: startDate.getMinutes(), second: startDate.getSeconds(), millisecond: startDate.getMilliseconds()};\n\n var format = $dateFormatter.getDatetimeFormat(options.timeFormat, lang);\n\n var hoursFormat = $dateFormatter.hoursFormat(format),\n timeSeparator = $dateFormatter.timeSeparator(format),\n minutesFormat = $dateFormatter.minutesFormat(format),\n secondsFormat = $dateFormatter.secondsFormat(format),\n showSeconds = $dateFormatter.showSeconds(format),\n showAM = $dateFormatter.showAM(format);\n\n scope.$iconUp = options.iconUp;\n scope.$iconDown = options.iconDown;\n\n // Scope methods\n\n scope.$select = function(date, index) {\n $timepicker.select(date, index);\n };\n scope.$moveIndex = function(value, index) {\n $timepicker.$moveIndex(value, index);\n };\n scope.$switchMeridian = function(date) {\n $timepicker.switchMeridian(date);\n };\n\n // Public methods\n\n $timepicker.update = function(date) {\n // console.warn('$timepicker.update() newValue=%o', date);\n if(angular.isDate(date) && !isNaN(date.getTime())) {\n $timepicker.$date = date;\n angular.extend(viewDate, {hour: date.getHours(), minute: date.getMinutes(), second: date.getSeconds(), millisecond: date.getMilliseconds()});\n $timepicker.$build();\n } else if(!$timepicker.$isBuilt) {\n $timepicker.$build();\n }\n };\n\n $timepicker.select = function(date, index, keep) {\n // console.warn('$timepicker.select', date, scope.$mode);\n if(!controller.$dateValue || isNaN(controller.$dateValue.getTime())) controller.$dateValue = new Date(1970, 0, 1);\n if(!angular.isDate(date)) date = new Date(date);\n if(index === 0) controller.$dateValue.setHours(date.getHours());\n else if(index === 1) controller.$dateValue.setMinutes(date.getMinutes());\n else if(index === 2) controller.$dateValue.setSeconds(date.getSeconds());\n controller.$setViewValue(angular.copy(controller.$dateValue));\n controller.$render();\n if(options.autoclose && !keep) {\n $timeout(function() { $timepicker.hide(true); });\n }\n };\n\n $timepicker.switchMeridian = function(date) {\n if (!controller.$dateValue || isNaN(controller.$dateValue.getTime())) {\n return;\n }\n var hours = (date || controller.$dateValue).getHours();\n controller.$dateValue.setHours(hours < 12 ? hours + 12 : hours - 12);\n controller.$setViewValue(angular.copy(controller.$dateValue));\n controller.$render();\n };\n\n // Protected methods\n\n $timepicker.$build = function() {\n // console.warn('$timepicker.$build() viewDate=%o', viewDate);\n var i, midIndex = scope.midIndex = parseInt(options.length / 2, 10);\n var hours = [], hour;\n for(i = 0; i < options.length; i++) {\n hour = new Date(1970, 0, 1, viewDate.hour - (midIndex - i) * options.hourStep);\n hours.push({date: hour, label: formatDate(hour, hoursFormat), selected: $timepicker.$date && $timepicker.$isSelected(hour, 0), disabled: $timepicker.$isDisabled(hour, 0)});\n }\n var minutes = [], minute;\n for(i = 0; i < options.length; i++) {\n minute = new Date(1970, 0, 1, 0, viewDate.minute - (midIndex - i) * options.minuteStep);\n minutes.push({date: minute, label: formatDate(minute, minutesFormat), selected: $timepicker.$date && $timepicker.$isSelected(minute, 1), disabled: $timepicker.$isDisabled(minute, 1)});\n }\n var seconds = [], second;\n for(i = 0; i < options.length; i++) {\n second = new Date(1970, 0, 1, 0, 0, viewDate.second - (midIndex - i) * options.secondStep);\n seconds.push({date: second, label: formatDate(second, secondsFormat), selected: $timepicker.$date && $timepicker.$isSelected(second, 2), disabled: $timepicker.$isDisabled(second, 2)});\n }\n\n var rows = [];\n for(i = 0; i < options.length; i++) {\n if (showSeconds) {\n rows.push([hours[i], minutes[i], seconds[i]]);\n } else {\n rows.push([hours[i], minutes[i]]);\n }\n }\n scope.rows = rows;\n scope.showSeconds = showSeconds;\n scope.showAM = showAM;\n scope.isAM = ($timepicker.$date || hours[midIndex].date).getHours() < 12;\n scope.timeSeparator = timeSeparator;\n $timepicker.$isBuilt = true;\n };\n\n $timepicker.$isSelected = function(date, index) {\n if(!$timepicker.$date) return false;\n else if(index === 0) {\n return date.getHours() === $timepicker.$date.getHours();\n } else if(index === 1) {\n return date.getMinutes() === $timepicker.$date.getMinutes();\n } else if(index === 2) {\n return date.getSeconds() === $timepicker.$date.getSeconds();\n }\n };\n\n $timepicker.$isDisabled = function(date, index) {\n var selectedTime;\n if(index === 0) {\n selectedTime = date.getTime() + viewDate.minute * 6e4 + viewDate.second * 1e3;\n } else if(index === 1) {\n selectedTime = date.getTime() + viewDate.hour * 36e5 + viewDate.second * 1e3;\n } else if(index === 2) {\n selectedTime = date.getTime() + viewDate.hour * 36e5 + viewDate.minute * 6e4;\n }\n return selectedTime < options.minTime * 1 || selectedTime > options.maxTime * 1;\n };\n\n scope.$arrowAction = function (value, index) {\n if (options.arrowBehavior === 'picker') {\n $timepicker.$setTimeByStep(value,index);\n } else {\n $timepicker.$moveIndex(value,index);\n }\n };\n\n $timepicker.$setTimeByStep = function(value, index) {\n var newDate = new Date($timepicker.$date);\n var hours = newDate.getHours(), hoursLength = formatDate(newDate, hoursFormat).length;\n var minutes = newDate.getMinutes(), minutesLength = formatDate(newDate, minutesFormat).length;\n var seconds = newDate.getSeconds(), secondsLength = formatDate(newDate, secondsFormat).length;\n if (index === 0) {\n newDate.setHours(hours - (parseInt(options.hourStep, 10) * value));\n }\n else if (index === 1) {\n newDate.setMinutes(minutes - (parseInt(options.minuteStep, 10) * value));\n }\n else if (index === 2) {\n newDate.setSeconds(seconds - (parseInt(options.secondStep, 10) * value));\n }\n $timepicker.select(newDate, index, true);\n };\n\n $timepicker.$moveIndex = function(value, index) {\n var targetDate;\n if(index === 0) {\n targetDate = new Date(1970, 0, 1, viewDate.hour + (value * options.length), viewDate.minute, viewDate.second);\n angular.extend(viewDate, {hour: targetDate.getHours()});\n } else if(index === 1) {\n targetDate = new Date(1970, 0, 1, viewDate.hour, viewDate.minute + (value * options.length * options.minuteStep), viewDate.second);\n angular.extend(viewDate, {minute: targetDate.getMinutes()});\n } else if(index === 2) {\n targetDate = new Date(1970, 0, 1, viewDate.hour, viewDate.minute, viewDate.second + (value * options.length * options.secondStep));\n angular.extend(viewDate, {second: targetDate.getSeconds()});\n }\n $timepicker.$build();\n };\n\n $timepicker.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n if(evt.target.nodeName.toLowerCase() !== 'input') evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n if(targetEl[0].nodeName.toLowerCase() !== 'button') {\n targetEl = targetEl.parent();\n }\n targetEl.triggerHandler('click');\n }\n };\n\n $timepicker.$onKeyDown = function(evt) {\n if (!/(38|37|39|40|13)/.test(evt.keyCode) || evt.shiftKey || evt.altKey) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // Close on enter\n if(evt.keyCode === 13) return $timepicker.hide(true);\n\n // Navigate with keyboard\n var newDate = new Date($timepicker.$date);\n var hours = newDate.getHours(), hoursLength = formatDate(newDate, hoursFormat).length;\n var minutes = newDate.getMinutes(), minutesLength = formatDate(newDate, minutesFormat).length;\n var seconds = newDate.getSeconds(), secondsLength = formatDate(newDate, secondsFormat).length;\n var sepLength = 1;\n var lateralMove = /(37|39)/.test(evt.keyCode);\n var count = 2 + showSeconds * 1 + showAM * 1;\n\n // Navigate indexes (left, right)\n if (lateralMove) {\n if(evt.keyCode === 37) selectedIndex = selectedIndex < 1 ? count - 1 : selectedIndex - 1;\n else if(evt.keyCode === 39) selectedIndex = selectedIndex < count - 1 ? selectedIndex + 1 : 0;\n }\n\n // Update values (up, down)\n var selectRange = [0, hoursLength];\n var incr = 0;\n if (evt.keyCode === 38) incr = -1;\n if (evt.keyCode === 40) incr = +1;\n var isSeconds = selectedIndex === 2 && showSeconds;\n var isMeridian = selectedIndex === 2 && !showSeconds || selectedIndex === 3 && showSeconds;\n if(selectedIndex === 0) {\n newDate.setHours(hours + incr*parseInt(options.hourStep, 10));\n // re-calculate hours length because we have changed hours value\n hoursLength = formatDate(newDate, hoursFormat).length;\n selectRange = [0, hoursLength];\n } else if(selectedIndex === 1) {\n newDate.setMinutes(minutes + incr*parseInt(options.minuteStep, 10));\n // re-calculate minutes length because we have changes minutes value\n minutesLength = formatDate(newDate, minutesFormat).length;\n selectRange = [hoursLength + sepLength, minutesLength];\n } else if(isSeconds) {\n newDate.setSeconds(seconds + incr*parseInt(options.secondStep, 10));\n // re-calculate seconds length because we have changes seconds value\n secondsLength = formatDate(newDate, secondsFormat).length;\n selectRange = [hoursLength + sepLength + minutesLength + sepLength, secondsLength];\n } else if(isMeridian) {\n if(!lateralMove) $timepicker.switchMeridian();\n selectRange = [hoursLength + sepLength + minutesLength + sepLength + (secondsLength + sepLength)*showSeconds, 2];\n }\n $timepicker.select(newDate, selectedIndex, true);\n createSelection(selectRange[0], selectRange[1]);\n parentScope.$digest();\n };\n\n // Private\n\n function createSelection(start, length) {\n var end = start + length;\n if(element[0].createTextRange) {\n var selRange = element[0].createTextRange();\n selRange.collapse(true);\n selRange.moveStart('character', start);\n selRange.moveEnd('character', end);\n selRange.select();\n } else if(element[0].setSelectionRange) {\n element[0].setSelectionRange(start, end);\n } else if(angular.isUndefined(element[0].selectionStart)) {\n element[0].selectionStart = start;\n element[0].selectionEnd = end;\n }\n }\n\n function focusElement() {\n element[0].focus();\n }\n\n // Overrides\n\n var _init = $timepicker.init;\n $timepicker.init = function() {\n if(isNative && options.useNative) {\n element.prop('type', 'time');\n element.css('-webkit-appearance', 'textfield');\n return;\n } else if(isTouch) {\n element.prop('type', 'text');\n element.attr('readonly', 'true');\n element.on('click', focusElement);\n }\n _init();\n };\n\n var _destroy = $timepicker.destroy;\n $timepicker.destroy = function() {\n if(isNative && options.useNative) {\n element.off('click', focusElement);\n }\n _destroy();\n };\n\n var _show = $timepicker.show;\n $timepicker.show = function() {\n _show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n $timepicker.$element && $timepicker.$element.on(isTouch ? 'touchstart' : 'mousedown', $timepicker.$onMouseDown);\n if(options.keyboard) {\n element && element.on('keydown', $timepicker.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $timepicker.hide;\n $timepicker.hide = function(blur) {\n if(!$timepicker.$isShown) return;\n $timepicker.$element && $timepicker.$element.off(isTouch ? 'touchstart' : 'mousedown', $timepicker.$onMouseDown);\n if(options.keyboard) {\n element && element.off('keydown', $timepicker.$onKeyDown);\n }\n _hide(blur);\n };\n\n return $timepicker;\n\n }\n\n timepickerFactory.defaults = defaults;\n return timepickerFactory;\n\n };\n\n })\n\n\n .directive('bsTimepicker', function($window, $parse, $q, $dateFormatter, $dateParser, $timepicker) {\n\n var defaults = $timepicker.defaults;\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'autoclose', 'timeType', 'timeFormat', 'timezone', 'modelTimeFormat', 'useNative', 'hourStep', 'minuteStep', 'secondStep', 'length', 'arrowBehavior', 'iconUp', 'iconDown', 'roundDisplay', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoclose', 'useNative', 'roundDisplay'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!timepicker || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(timepicker),?/i);\n newValue === true ? timepicker.show() : timepicker.hide();\n });\n\n // Initialize timepicker\n if(isNative && (options.useNative || defaults.useNative)) options.timeFormat = 'HH:mm';\n var timepicker = $timepicker(element, controller, options);\n options = timepicker.$options;\n\n var lang = options.lang;\n var formatDate = function(date, format, timezone) {\n return $dateFormatter.formatDate(date, format, lang, timezone);\n };\n\n // Initialize parser\n var dateParser = $dateParser({format: options.timeFormat, lang: lang});\n\n // Observe attributes for changes\n angular.forEach(['minTime', 'maxTime'], function(key) {\n // console.warn('attr.$observe(%s)', key, attr[key]);\n angular.isDefined(attr[key]) && attr.$observe(key, function(newValue) {\n timepicker.$options[key] = dateParser.getTimeForAttribute(key, newValue);\n !isNaN(timepicker.$options[key]) && timepicker.$build();\n validateAgainstMinMaxTime(controller.$dateValue);\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.ngModel, newValue, oldValue, controller.$dateValue);\n timepicker.update(controller.$dateValue);\n }, true);\n\n function validateAgainstMinMaxTime(parsedTime) {\n if (!angular.isDate(parsedTime)) return;\n var isMinValid = isNaN(options.minTime) || new Date(parsedTime.getTime()).setFullYear(1970, 0, 1) >= options.minTime;\n var isMaxValid = isNaN(options.maxTime) || new Date(parsedTime.getTime()).setFullYear(1970, 0, 1) <= options.maxTime;\n var isValid = isMinValid && isMaxValid;\n controller.$setValidity('date', isValid);\n controller.$setValidity('min', isMinValid);\n controller.$setValidity('max', isMaxValid);\n // Only update the model when we have a valid date\n if(!isValid) {\n return;\n }\n controller.$dateValue = parsedTime;\n }\n\n // viewValue -> $parsers -> modelValue\n controller.$parsers.unshift(function(viewValue) {\n // console.warn('$parser(\"%s\"): viewValue=%o', element.attr('ng-model'), viewValue);\n var date;\n // Null values should correctly reset the model value & validity\n if(!viewValue) {\n // BREAKING CHANGE:\n // return null (not undefined) when input value is empty, so angularjs 1.3\n // ngModelController can go ahead and run validators, like ngRequired\n controller.$setValidity('date', true);\n return null;\n }\n var parsedTime = angular.isDate(viewValue) ? viewValue : dateParser.parse(viewValue, controller.$dateValue);\n if(!parsedTime || isNaN(parsedTime.getTime())) {\n controller.$setValidity('date', false);\n // return undefined, causes ngModelController to\n // invalidate model value\n return;\n } else {\n validateAgainstMinMaxTime(parsedTime);\n }\n\n if(options.timeType === 'string') {\n date = dateParser.timezoneOffsetAdjust(parsedTime, options.timezone, true);\n return formatDate(date, options.modelTimeFormat || options.timeFormat);\n }\n date = dateParser.timezoneOffsetAdjust(controller.$dateValue, options.timezone, true);\n if(options.timeType === 'number') {\n return date.getTime();\n } else if(options.timeType === 'unix') {\n return date.getTime() / 1000;\n } else if(options.timeType === 'iso') {\n return date.toISOString();\n } else {\n return new Date(date);\n }\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var date;\n if(angular.isUndefined(modelValue) || modelValue === null) {\n date = NaN;\n } else if(angular.isDate(modelValue)) {\n date = modelValue;\n } else if(options.timeType === 'string') {\n date = dateParser.parse(modelValue, null, options.modelTimeFormat);\n } else if(options.timeType === 'unix') {\n date = new Date(modelValue * 1000);\n } else {\n date = new Date(modelValue);\n }\n // Setup default value?\n // if(isNaN(date.getTime())) date = new Date(new Date().setMinutes(0) + 36e5);\n controller.$dateValue = dateParser.timezoneOffsetAdjust(date, options.timezone);\n return getTimeFormattedString();\n });\n\n // viewValue -> element\n controller.$render = function() {\n // console.warn('$render(\"%s\"): viewValue=%o', element.attr('ng-model'), controller.$viewValue);\n element.val(getTimeFormattedString());\n };\n\n function getTimeFormattedString() {\n return !controller.$dateValue || isNaN(controller.$dateValue.getTime()) ? '' : formatDate(controller.$dateValue, options.timeFormat);\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (timepicker) timepicker.destroy();\n options = null;\n timepicker = null;\n });\n\n }\n };\n\n });\n\n// Source: typeahead/typeahead.js\nangular.module('mgcrea.ngStrap.typeahead', ['mgcrea.ngStrap.tooltip', 'mgcrea.ngStrap.helpers.parseOptions'])\n\n .provider('$typeahead', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'typeahead',\n prefixEvent: '$typeahead',\n placement: 'bottom-left',\n templateUrl: 'typeahead/typeahead.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n minLength: 1,\n filter: 'filter',\n limit: 6,\n autoSelect: false,\n comparator: '',\n trimValue: true\n };\n\n this.$get = function($window, $rootScope, $tooltip, $$rAF, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n\n function TypeaheadFactory(element, controller, config) {\n\n var $typeahead = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $typeahead = $tooltip(element, options);\n var parentScope = config.scope;\n var scope = $typeahead.$scope;\n\n scope.$resetMatches = function(){\n scope.$matches = [];\n scope.$activeIndex = options.autoSelect ? 0 : -1; // If set to 0, the first match will be highlighted\n };\n scope.$resetMatches();\n\n scope.$activate = function(index) {\n scope.$$postDigest(function() {\n $typeahead.activate(index);\n });\n };\n\n scope.$select = function(index, evt) {\n scope.$$postDigest(function() {\n $typeahead.select(index);\n });\n };\n\n scope.$isVisible = function() {\n return $typeahead.$isVisible();\n };\n\n // Public methods\n\n $typeahead.update = function(matches) {\n scope.$matches = matches;\n if(scope.$activeIndex >= matches.length) {\n scope.$activeIndex = options.autoSelect ? 0: -1;\n }\n\n // wrap in a $timeout so the results are updated\n // before repositioning\n safeDigest(scope);\n $$rAF($typeahead.$applyPlacement);\n };\n\n $typeahead.activate = function(index) {\n scope.$activeIndex = index;\n };\n\n $typeahead.select = function(index) {\n if(index === -1) return;\n var value = scope.$matches[index].value;\n // console.log('$setViewValue', value);\n controller.$setViewValue(value);\n controller.$render();\n scope.$resetMatches();\n if(parentScope) parentScope.$digest();\n // Emit event\n scope.$emit(options.prefixEvent + '.select', value, index, $typeahead);\n };\n\n // Protected methods\n\n $typeahead.$isVisible = function() {\n if(!options.minLength || !controller) {\n return !!scope.$matches.length;\n }\n // minLength support\n return scope.$matches.length && angular.isString(controller.$viewValue) && controller.$viewValue.length >= options.minLength;\n };\n\n $typeahead.$getIndex = function(value) {\n var l = scope.$matches.length, i = l;\n if(!l) return;\n for(i = l; i--;) {\n if(scope.$matches[i].value === value) break;\n }\n if(i < 0) return;\n return i;\n };\n\n $typeahead.$onMouseDown = function(evt) {\n // Prevent blur on mousedown\n evt.preventDefault();\n evt.stopPropagation();\n };\n\n $typeahead.$onKeyDown = function(evt) {\n if(!/(38|40|13)/.test(evt.keyCode)) return;\n\n // Let ngSubmit pass if the typeahead tip is hidden or no option is selected\n if($typeahead.$isVisible() && !(evt.keyCode === 13 && scope.$activeIndex === -1)) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n\n // Select with enter\n if(evt.keyCode === 13 && scope.$matches.length) {\n $typeahead.select(scope.$activeIndex);\n }\n\n // Navigate with keyboard\n else if(evt.keyCode === 38 && scope.$activeIndex > 0) scope.$activeIndex--;\n else if(evt.keyCode === 40 && scope.$activeIndex < scope.$matches.length - 1) scope.$activeIndex++;\n else if(angular.isUndefined(scope.$activeIndex)) scope.$activeIndex = 0;\n scope.$digest();\n };\n\n // Overrides\n\n var show = $typeahead.show;\n $typeahead.show = function() {\n show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed immediately.\n $timeout(function() {\n $typeahead.$element && $typeahead.$element.on('mousedown', $typeahead.$onMouseDown);\n if(options.keyboard) {\n element && element.on('keydown', $typeahead.$onKeyDown);\n }\n }, 0, false);\n };\n\n var hide = $typeahead.hide;\n $typeahead.hide = function() {\n $typeahead.$element && $typeahead.$element.off('mousedown', $typeahead.$onMouseDown);\n if(options.keyboard) {\n element && element.off('keydown', $typeahead.$onKeyDown);\n }\n if(!options.autoSelect)\n $typeahead.activate(-1);\n hide();\n };\n\n return $typeahead;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n TypeaheadFactory.defaults = defaults;\n return TypeaheadFactory;\n\n };\n\n })\n\n .directive('bsTypeahead', function($window, $parse, $q, $typeahead, $parseOptions) {\n\n var defaults = $typeahead.defaults;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'filter', 'limit', 'minLength', 'watchOptions', 'selectMode', 'autoSelect', 'comparator', 'id', 'prefixEvent', 'prefixClass'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'trimValue'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key])) options[key] = false;\n });\n\n // Disable browser autocompletion\n element.attr('autocomplete' ,'false');\n\n // Build proper bsOptions\n var filter = options.filter || defaults.filter;\n var limit = options.limit || defaults.limit;\n var comparator = options.comparator || defaults.comparator;\n\n var bsOptions = attr.bsOptions;\n if(filter) bsOptions += ' | ' + filter + ':$viewValue';\n if (comparator) bsOptions += ':' + comparator;\n if(limit) bsOptions += ' | limitTo:' + limit;\n var parsedOptions = $parseOptions(bsOptions);\n\n // Initialize typeahead\n var typeahead = $typeahead(element, controller, options);\n\n // Watch options on demand\n if(options.watchOptions) {\n // Watch bsOptions values before filtering for changes, drop function calls\n var watchedOptions = parsedOptions.$match[7].replace(/\\|.+/, '').replace(/\\(.*\\)/g, '').trim();\n scope.$watchCollection(watchedOptions, function (newValue, oldValue) {\n // console.warn('scope.$watch(%s)', watchedOptions, newValue, oldValue);\n parsedOptions.valuesFn(scope, controller).then(function (values) {\n typeahead.update(values);\n controller.$render();\n });\n });\n }\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('$watch', element.attr('ng-model'), newValue);\n scope.$modelValue = newValue; // Publish modelValue on scope for custom templates\n parsedOptions.valuesFn(scope, controller)\n .then(function(values) {\n // Prevent input with no future prospect if selectMode is truthy\n // @TODO test selectMode\n if(options.selectMode && !values.length && newValue.length > 0) {\n controller.$setViewValue(controller.$viewValue.substring(0, controller.$viewValue.length - 1));\n return;\n }\n if(values.length > limit) values = values.slice(0, limit);\n var isVisible = typeahead.$isVisible();\n isVisible && typeahead.update(values);\n // Do not re-queue an update if a correct value has been selected\n if(values.length === 1 && values[0].value === newValue) return;\n !isVisible && typeahead.update(values);\n // Queue a new rendering that will leverage collection loading\n controller.$render();\n });\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var displayValue = parsedOptions.displayValue(modelValue);\n\n // If we can determine the displayValue, use that\n if (displayValue) return displayValue;\n\n // If there's no display value, attempt to use the modelValue.\n // If the model is an object not much we can do\n if (modelValue && typeof modelValue !== 'object') {\n return modelValue;\n }\n return '';\n });\n\n // Model rendering in view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n if(controller.$isEmpty(controller.$viewValue)) return element.val('');\n var index = typeahead.$getIndex(controller.$modelValue);\n var selected = angular.isDefined(index) ? typeahead.$scope.$matches[index].label : controller.$viewValue;\n selected = angular.isObject(selected) ? parsedOptions.displayValue(selected) : selected;\n var value = selected ? selected.toString().replace(/<(?:.|\\n)*?>/gm, '') : '';\n element.val(options.trimValue === false ? value : value.trim());\n };\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (typeahead) typeahead.destroy();\n options = null;\n typeahead = null;\n });\n\n }\n };\n\n });\n\n})(window, document);\n","'use strict';\n\n// NOTICE: This file was forked from the angular-material project (github.com/angular/material)\n// MIT Licensed - Copyright (c) 2014-2015 Google, Inc. http://angularjs.org\n\nangular.module('mgcrea.ngStrap.core', [])\n .service('$bsCompiler', bsCompilerService);\n\nfunction bsCompilerService($q, $http, $injector, $compile, $controller, $templateCache) {\n /* jshint validthis: true */\n\n /*\n * @ngdoc service\n * @name $bsCompiler\n * @module material.core\n * @description\n * The $bsCompiler service is an abstraction of angular's compiler, that allows the developer\n * to easily compile an element with a templateUrl, controller, and locals.\n *\n * @usage\n * \n * $bsCompiler.compile({\n * templateUrl: 'modal.html',\n * controller: 'ModalCtrl',\n * locals: {\n * modal: myModalInstance;\n * }\n * }).then(function(compileData) {\n * compileData.element; // modal.html's template in an element\n * compileData.link(myScope); //attach controller & scope to element\n * });\n * \n */\n\n /*\n * @ngdoc method\n * @name $bsCompiler#compile\n * @description A helper to compile an HTML template/templateUrl with a given controller,\n * locals, and scope.\n * @param {object} options An options object, with the following properties:\n *\n * - `controller` - `{(string=|function()=}` Controller fn that should be associated with\n * newly created scope or the name of a registered controller if passed as a string.\n * - `controllerAs` - `{string=}` A controller alias name. If present the controller will be\n * published to scope under the `controllerAs` name.\n * - `template` - `{string=}` An html template as a string.\n * - `templateUrl` - `{string=}` A path to an html template.\n * - `transformTemplate` - `{function(template)=}` A function which transforms the template after\n * it is loaded. It will be given the template string as a parameter, and should\n * return a a new string representing the transformed template.\n * - `resolve` - `{Object.=}` - An optional map of dependencies which should\n * be injected into the controller. If any of these dependencies are promises, the compiler\n * will wait for them all to be resolved, or if one is rejected before the controller is\n * instantiated `compile()` will fail..\n * * `key` - `{string}`: a name of a dependency to be injected into the controller.\n * * `factory` - `{string|function}`: If `string` then it is an alias for a service.\n * Otherwise if function, then it is injected and the return value is treated as the\n * dependency. If the result is a promise, it is resolved before its value is\n * injected into the controller.\n *\n * @returns {object=} promise A promise, which will be resolved with a `compileData` object.\n * `compileData` has the following properties:\n *\n * - `element` - `{element}`: an uncompiled element matching the provided template.\n * - `link` - `{function(scope)}`: A link function, which, when called, will compile\n * the element and instantiate the provided controller (if given).\n * - `locals` - `{object}`: The locals which will be passed into the controller once `link` is\n * called. If `bindToController` is true, they will be coppied to the ctrl instead\n * - `bindToController` - `bool`: bind the locals to the controller, instead of passing them in.\n */\n this.compile = function(options) {\n\n if(options.template && /\\.html$/.test(options.template)) {\n console.warn('Deprecated use of `template` option to pass a file. Please use the `templateUrl` option instead.');\n options.templateUrl = options.template;\n options.template = '';\n }\n\n var templateUrl = options.templateUrl;\n var template = options.template || '';\n var controller = options.controller;\n var controllerAs = options.controllerAs;\n var resolve = angular.copy(options.resolve || {});\n var locals = angular.copy(options.locals || {});\n var transformTemplate = options.transformTemplate || angular.identity;\n var bindToController = options.bindToController;\n\n // Take resolve values and invoke them.\n // Resolves can either be a string (value: 'MyRegisteredAngularConst'),\n // or an invokable 'factory' of sorts: (value: function ValueGetter($dependency) {})\n angular.forEach(resolve, function(value, key) {\n if (angular.isString(value)) {\n resolve[key] = $injector.get(value);\n } else {\n resolve[key] = $injector.invoke(value);\n }\n });\n // Add the locals, which are just straight values to inject\n // eg locals: { three: 3 }, will inject three into the controller\n angular.extend(resolve, locals);\n\n if (templateUrl) {\n resolve.$template = fetchTemplate(templateUrl);\n } else {\n resolve.$template = $q.when(template);\n }\n\n if (options.contentTemplate) {\n // TODO(mgcrea): deprecate?\n resolve.$template = $q.all([resolve.$template, fetchTemplate(options.contentTemplate)])\n .then(function(templates) {\n var templateEl = angular.element(templates[0]);\n var contentEl = findElement('[ng-bind=\"content\"]', templateEl[0]).removeAttr('ng-bind').html(templates[1]);\n // Drop the default footer as you probably don't want it if you use a custom contentTemplate\n if(!options.templateUrl) contentEl.next().remove();\n return templateEl[0].outerHTML;\n });\n }\n\n // Wait for all the resolves to finish if they are promises\n return $q.all(resolve).then(function(locals) {\n\n var template = transformTemplate(locals.$template);\n if (options.html) {\n template = template.replace(/ng-bind=\"/ig, 'ng-bind-html=\"');\n }\n // var element = options.element || angular.element('
').html(template.trim()).contents();\n var element = angular.element('
').html(template.trim()).contents();\n var linkFn = $compile(element);\n\n // Return a linking function that can be used later when the element is ready\n return {\n locals: locals,\n element: element,\n link: function link(scope) {\n locals.$scope = scope;\n\n // Instantiate controller if it exists, because we have scope\n if (controller) {\n var invokeCtrl = $controller(controller, locals, true);\n if (bindToController) {\n angular.extend(invokeCtrl.instance, locals);\n }\n // Support angular@~1.2 invokeCtrl\n var ctrl = angular.isObject(invokeCtrl) ? invokeCtrl : invokeCtrl();\n // See angular-route source for this logic\n element.data('$ngControllerController', ctrl);\n element.children().data('$ngControllerController', ctrl);\n\n if (controllerAs) {\n scope[controllerAs] = ctrl;\n }\n }\n\n return linkFn.apply(null, arguments);\n }\n };\n });\n\n };\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n var fetchPromises = {};\n function fetchTemplate(template) {\n if(fetchPromises[template]) return fetchPromises[template];\n return (fetchPromises[template] = $http.get(template, {cache: $templateCache})\n .then(function(res) {\n return res.data;\n }));\n }\n\n}\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.dateFormatter', [])\n\n .service('$dateFormatter', function($locale, dateFilter) {\n\n // The unused `lang` arguments are on purpose. The default implementation does not\n // use them and it always uses the locale loaded into the `$locale` service.\n // Custom implementations might use it, thus allowing different directives to\n // have different languages.\n\n this.getDefaultLocale = function() {\n return $locale.id;\n };\n\n // Format is either a data format name, e.g. \"shortTime\" or \"fullDate\", or a date format\n // Return either the corresponding date format or the given date format.\n this.getDatetimeFormat = function(format, lang) {\n return $locale.DATETIME_FORMATS[format] || format;\n };\n\n this.weekdaysShort = function(lang) {\n return $locale.DATETIME_FORMATS.SHORTDAY;\n };\n\n function splitTimeFormat(format) {\n return /(h+)([:\\.])?(m+)([:\\.])?(s*)[ ]?(a?)/i.exec(format).slice(1);\n }\n\n // h:mm a => h\n this.hoursFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[0];\n };\n\n // h:mm a => mm\n this.minutesFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[2];\n };\n\n // h:mm:ss a => ss\n this.secondsFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[4];\n };\n\n // h:mm a => :\n this.timeSeparator = function(timeFormat) {\n return splitTimeFormat(timeFormat)[1];\n };\n\n // h:mm:ss a => true, h:mm a => false\n this.showSeconds = function(timeFormat) {\n return !!splitTimeFormat(timeFormat)[4];\n };\n\n // h:mm a => true, H.mm => false\n this.showAM = function(timeFormat) {\n return !!splitTimeFormat(timeFormat)[5];\n };\n\n this.formatDate = function(date, format, lang, timezone){\n return dateFilter(date, format, timezone);\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.affix', ['mgcrea.ngStrap.helpers.dimensions', 'mgcrea.ngStrap.helpers.debounce'])\n\n .provider('$affix', function() {\n\n var defaults = this.defaults = {\n offsetTop: 'auto',\n inlineStyles: true\n };\n\n this.$get = function($window, debounce, dimensions) {\n\n var bodyEl = angular.element($window.document.body);\n var windowEl = angular.element($window);\n\n function AffixFactory(element, config) {\n\n var $affix = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n var targetEl = options.target;\n\n // Initial private vars\n var reset = 'affix affix-top affix-bottom',\n setWidth = false,\n initialAffixTop = 0,\n initialOffsetTop = 0,\n offsetTop = 0,\n offsetBottom = 0,\n affixed = null,\n unpin = null;\n\n var parent = element.parent();\n // Options: custom parent\n if (options.offsetParent) {\n if (options.offsetParent.match(/^\\d+$/)) {\n for (var i = 0; i < (options.offsetParent * 1) - 1; i++) {\n parent = parent.parent();\n }\n }\n else {\n parent = angular.element(options.offsetParent);\n }\n }\n\n $affix.init = function() {\n\n this.$parseOffsets();\n initialOffsetTop = dimensions.offset(element[0]).top + initialAffixTop;\n setWidth = !element[0].style.width;\n\n // Bind events\n targetEl.on('scroll', this.checkPosition);\n targetEl.on('click', this.checkPositionWithEventLoop);\n windowEl.on('resize', this.$debouncedOnResize);\n\n // Both of these checkPosition() calls are necessary for the case where\n // the user hits refresh after scrolling to the bottom of the page.\n this.checkPosition();\n this.checkPositionWithEventLoop();\n\n };\n\n $affix.destroy = function() {\n\n // Unbind events\n targetEl.off('scroll', this.checkPosition);\n targetEl.off('click', this.checkPositionWithEventLoop);\n windowEl.off('resize', this.$debouncedOnResize);\n\n };\n\n $affix.checkPositionWithEventLoop = function() {\n\n // IE 9 throws an error if we use 'this' instead of '$affix'\n // in this setTimeout call\n setTimeout($affix.checkPosition, 1);\n\n };\n\n $affix.checkPosition = function() {\n // if (!this.$element.is(':visible')) return\n\n var scrollTop = getScrollTop();\n var position = dimensions.offset(element[0]);\n var elementHeight = dimensions.height(element[0]);\n\n // Get required affix class according to position\n var affix = getRequiredAffixClass(unpin, position, elementHeight);\n\n // Did affix status changed this last check?\n if(affixed === affix) return;\n affixed = affix;\n\n // Add proper affix class\n element.removeClass(reset).addClass('affix' + ((affix !== 'middle') ? '-' + affix : ''));\n\n if(affix === 'top') {\n unpin = null;\n if(setWidth) {\n element.css('width', '');\n }\n if (options.inlineStyles) {\n element.css('position', (options.offsetParent) ? '' : 'relative');\n element.css('top', '');\n }\n } else if(affix === 'bottom') {\n if (options.offsetUnpin) {\n unpin = -(options.offsetUnpin * 1);\n }\n else {\n // Calculate unpin threshold when affixed to bottom.\n // Hopefully the browser scrolls pixel by pixel.\n unpin = position.top - scrollTop;\n }\n if(setWidth) {\n element.css('width', '');\n }\n if (options.inlineStyles) {\n element.css('position', (options.offsetParent) ? '' : 'relative');\n element.css('top', (options.offsetParent) ? '' : ((bodyEl[0].offsetHeight - offsetBottom - elementHeight - initialOffsetTop) + 'px'));\n }\n } else { // affix === 'middle'\n unpin = null;\n if(setWidth) {\n element.css('width', element[0].offsetWidth + 'px');\n }\n if (options.inlineStyles) {\n element.css('position', 'fixed');\n element.css('top', initialAffixTop + 'px');\n }\n }\n\n };\n\n $affix.$onResize = function() {\n $affix.$parseOffsets();\n $affix.checkPosition();\n };\n $affix.$debouncedOnResize = debounce($affix.$onResize, 50);\n\n $affix.$parseOffsets = function() {\n var initialPosition = element.css('position');\n // Reset position to calculate correct offsetTop\n if (options.inlineStyles){\n element.css('position', (options.offsetParent) ? '' : 'relative');\n }\n\n if(options.offsetTop) {\n if(options.offsetTop === 'auto') {\n options.offsetTop = '+0';\n }\n if(options.offsetTop.match(/^[-+]\\d+$/)) {\n initialAffixTop = - options.offsetTop * 1;\n if(options.offsetParent) {\n offsetTop = dimensions.offset(parent[0]).top + (options.offsetTop * 1);\n }\n else {\n offsetTop = dimensions.offset(element[0]).top - dimensions.css(element[0], 'marginTop', true) + (options.offsetTop * 1);\n }\n }\n else {\n offsetTop = options.offsetTop * 1;\n }\n }\n\n if(options.offsetBottom) {\n if(options.offsetParent && options.offsetBottom.match(/^[-+]\\d+$/)) {\n // add 1 pixel due to rounding problems...\n offsetBottom = getScrollHeight() - (dimensions.offset(parent[0]).top + dimensions.height(parent[0])) + (options.offsetBottom * 1) + 1;\n }\n else {\n offsetBottom = options.offsetBottom * 1;\n }\n }\n\n // Bring back the element's position after calculations\n if (options.inlineStyles){\n element.css('position', initialPosition);\n }\n };\n\n // Private methods\n\n function getRequiredAffixClass(unpin, position, elementHeight) {\n\n var scrollTop = getScrollTop();\n var scrollHeight = getScrollHeight();\n\n if(scrollTop <= offsetTop) {\n return 'top';\n } else if(unpin !== null && (scrollTop + unpin <= position.top)) {\n return 'middle';\n } else if(offsetBottom !== null && (position.top + elementHeight + initialAffixTop >= scrollHeight - offsetBottom)) {\n return 'bottom';\n } else {\n return 'middle';\n }\n\n }\n\n function getScrollTop() {\n return targetEl[0] === $window ? $window.pageYOffset : targetEl[0].scrollTop;\n }\n\n function getScrollHeight() {\n return targetEl[0] === $window ? $window.document.body.scrollHeight : targetEl[0].scrollHeight;\n }\n\n $affix.init();\n return $affix;\n\n }\n\n return AffixFactory;\n\n };\n\n })\n\n .directive('bsAffix', function($affix, $window) {\n\n return {\n restrict: 'EAC',\n require: '^?bsAffixTarget',\n link: function postLink(scope, element, attr, affixTarget) {\n\n var options = {scope: scope, target: affixTarget ? affixTarget.$element : angular.element($window)};\n angular.forEach(['offsetTop', 'offsetBottom', 'offsetParent', 'offsetUnpin', 'inlineStyles'], function(key) {\n if(angular.isDefined(attr[key])) {\n var option = attr[key];\n if (/true/i.test(option)) option = true;\n if (/false/i.test(option)) option = false;\n options[key] = option;\n }\n });\n\n var affix = $affix(element, options);\n scope.$on('$destroy', function() {\n affix && affix.destroy();\n options = null;\n affix = null;\n });\n\n }\n };\n\n })\n\n .directive('bsAffixTarget', function() {\n return {\n controller: function($element) {\n this.$element = $element;\n }\n };\n });\n","'use strict';\n\n// @BUG: following snippet won't compile correctly\n// @TODO: submit issue to core\n// ' ' +\n\nangular.module('mgcrea.ngStrap.alert', ['mgcrea.ngStrap.modal'])\n\n .provider('$alert', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'alert',\n prefixEvent: 'alert',\n placement: null,\n templateUrl: 'alert/alert.tpl.html',\n container: false,\n element: null,\n backdrop: false,\n keyboard: true,\n show: true,\n // Specific options\n duration: false,\n type: false,\n dismissable: true\n };\n\n this.$get = function($modal, $timeout) {\n\n function AlertFactory(config) {\n\n var $alert = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $alert = $modal(options);\n\n // Support scope as string options [/*title, content, */ type, dismissable]\n $alert.$scope.dismissable = !!options.dismissable;\n if(options.type) {\n $alert.$scope.type = options.type;\n }\n\n // Support auto-close duration\n var show = $alert.show;\n if(options.duration) {\n $alert.show = function() {\n show();\n $timeout(function() {\n $alert.hide();\n }, options.duration * 1000);\n };\n }\n\n return $alert;\n\n }\n\n return AlertFactory;\n\n };\n\n })\n\n .directive('bsAlert', function($window, $sce, $alert) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'keyboard', 'html', 'container', 'animation', 'duration', 'dismissable'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['keyboard', 'html', 'container', 'dismissable'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // overwrite inherited title value when no value specified\n // fix for angular 1.3.1 531a8de72c439d8ddd064874bf364c00cedabb11\n if (!scope.hasOwnProperty('title')){\n scope.title = '';\n }\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content', 'type'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsAlert && scope.$watch(attr.bsAlert, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize alert\n var alert = $alert(options);\n\n // Trigger\n element.on(attr.trigger || 'click', alert.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (alert) alert.destroy();\n options = null;\n alert = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.aside', ['mgcrea.ngStrap.modal'])\n\n .provider('$aside', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade-and-slide-right',\n prefixClass: 'aside',\n prefixEvent: 'aside',\n placement: 'right',\n templateUrl: 'aside/aside.tpl.html',\n contentTemplate: false,\n container: false,\n element: null,\n backdrop: true,\n keyboard: true,\n html: false,\n show: true\n };\n\n this.$get = function($modal) {\n\n function AsideFactory(config) {\n\n var $aside = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $aside = $modal(options);\n\n return $aside;\n\n }\n\n return AsideFactory;\n\n };\n\n })\n\n .directive('bsAside', function($window, $sce, $aside) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'backdrop', 'keyboard', 'html', 'container', 'animation'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['backdrop', 'keyboard', 'html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsAside && scope.$watch(attr.bsAside, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize aside\n var aside = $aside(options);\n\n // Trigger\n element.on(attr.trigger || 'click', aside.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (aside) aside.destroy();\n options = null;\n aside = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.button', [])\n\n .provider('$button', function() {\n\n var defaults = this.defaults = {\n activeClass:'active',\n toggleEvent:'click'\n };\n\n this.$get = function() {\n return {defaults: defaults};\n };\n\n })\n\n .directive('bsCheckboxGroup', function() {\n\n return {\n restrict: 'A',\n require: 'ngModel',\n compile: function postLink(element, attr) {\n element.attr('data-toggle', 'buttons');\n element.removeAttr('ng-model');\n var children = element[0].querySelectorAll('input[type=\"checkbox\"]');\n angular.forEach(children, function(child) {\n var childEl = angular.element(child);\n childEl.attr('bs-checkbox', '');\n childEl.attr('ng-model', attr.ngModel + '.' + childEl.attr('value'));\n });\n }\n\n };\n\n })\n\n .directive('bsCheckbox', function($button, $$rAF) {\n\n var defaults = $button.defaults;\n var constantValueRegExp = /^(true|false|\\d+)$/;\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n var options = defaults;\n\n // Support label > input[type=\"checkbox\"]\n var isInput = element[0].nodeName === 'INPUT';\n var activeElement = isInput ? element.parent() : element;\n\n var trueValue = angular.isDefined(attr.trueValue) ? attr.trueValue : true;\n if(constantValueRegExp.test(attr.trueValue)) {\n trueValue = scope.$eval(attr.trueValue);\n }\n var falseValue = angular.isDefined(attr.falseValue) ? attr.falseValue : false;\n if(constantValueRegExp.test(attr.falseValue)) {\n falseValue = scope.$eval(attr.falseValue);\n }\n\n // Parse exotic values\n var hasExoticValues = typeof trueValue !== 'boolean' || typeof falseValue !== 'boolean';\n if(hasExoticValues) {\n controller.$parsers.push(function(viewValue) {\n // console.warn('$parser', element.attr('ng-model'), 'viewValue', viewValue);\n return viewValue ? trueValue : falseValue;\n });\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n return angular.equals(modelValue, trueValue);\n });\n // Fix rendering for exotic values\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n controller.$render();\n });\n }\n\n // model -> view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var isActive = angular.equals(controller.$modelValue, trueValue);\n $$rAF(function() {\n if(isInput) element[0].checked = isActive;\n activeElement.toggleClass(options.activeClass, isActive);\n });\n };\n\n // view -> model\n element.bind(options.toggleEvent, function() {\n scope.$apply(function () {\n // console.warn('!click', element.attr('ng-model'), 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue, 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue);\n if(!isInput) {\n controller.$setViewValue(!activeElement.hasClass('active'));\n }\n if(!hasExoticValues) {\n controller.$render();\n }\n });\n });\n\n }\n\n };\n\n })\n\n .directive('bsRadioGroup', function() {\n\n return {\n restrict: 'A',\n require: 'ngModel',\n compile: function postLink(element, attr) {\n element.attr('data-toggle', 'buttons');\n element.removeAttr('ng-model');\n var children = element[0].querySelectorAll('input[type=\"radio\"]');\n angular.forEach(children, function(child) {\n angular.element(child).attr('bs-radio', '');\n angular.element(child).attr('ng-model', attr.ngModel);\n });\n }\n\n };\n\n })\n\n .directive('bsRadio', function($button, $$rAF) {\n\n var defaults = $button.defaults;\n var constantValueRegExp = /^(true|false|\\d+)$/;\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n var options = defaults;\n\n // Support `label > input[type=\"radio\"]` markup\n var isInput = element[0].nodeName === 'INPUT';\n var activeElement = isInput ? element.parent() : element;\n\n var value;\n attr.$observe('value', function(v) {\n value = constantValueRegExp.test(v) ? scope.$eval(v) : v;\n controller.$render();\n });\n\n // model -> view\n controller.$render = function () {\n // console.warn('$render', element.attr('value'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var isActive = angular.equals(controller.$modelValue, value);\n $$rAF(function() {\n if(isInput) element[0].checked = isActive;\n activeElement.toggleClass(options.activeClass, isActive);\n });\n };\n\n // view -> model\n element.bind(options.toggleEvent, function() {\n scope.$apply(function () {\n // console.warn('!click', element.attr('value'), 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue, 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue);\n controller.$setViewValue(value);\n controller.$render();\n });\n });\n\n }\n\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.collapse', [])\n\n .provider('$collapse', function() {\n\n var defaults = this.defaults = {\n animation: 'am-collapse',\n disallowToggle: false,\n activeClass: 'in',\n startCollapsed: false,\n allowMultiple: false\n };\n\n var controller = this.controller = function($scope, $element, $attrs) {\n var self = this;\n\n // Attributes options\n self.$options = angular.copy(defaults);\n angular.forEach(['animation', 'disallowToggle', 'activeClass', 'startCollapsed', 'allowMultiple'], function (key) {\n if(angular.isDefined($attrs[key])) self.$options[key] = $attrs[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['disallowToggle', 'startCollapsed', 'allowMultiple'], function(key) {\n if(angular.isDefined($attrs[key]) && falseValueRegExp.test($attrs[key])) {\n self.$options[key] = false;\n }\n });\n\n self.$toggles = [];\n self.$targets = [];\n\n self.$viewChangeListeners = [];\n\n self.$registerToggle = function(element) {\n self.$toggles.push(element);\n };\n self.$registerTarget = function(element) {\n self.$targets.push(element);\n };\n\n self.$unregisterToggle = function(element) {\n var index = self.$toggles.indexOf(element);\n // remove toggle from $toggles array\n self.$toggles.splice(index, 1);\n };\n self.$unregisterTarget = function(element) {\n var index = self.$targets.indexOf(element);\n\n // remove element from $targets array\n self.$targets.splice(index, 1);\n\n if (self.$options.allowMultiple) {\n // remove target index from $active array values\n deactivateItem(element);\n }\n\n // fix active item indexes\n fixActiveItemIndexes(index);\n\n self.$viewChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n // use array to store all the currently open panels\n self.$targets.$active = !self.$options.startCollapsed ? [0] : [];\n self.$setActive = $scope.$setActive = function(value) {\n if(angular.isArray(value)) {\n self.$targets.$active = value;\n }\n else if(!self.$options.disallowToggle) {\n // toogle element active status\n isActive(value) ? deactivateItem(value) : activateItem(value);\n } else {\n activateItem(value);\n }\n\n self.$viewChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n self.$activeIndexes = function() {\n return self.$options.allowMultiple ? self.$targets.$active :\n self.$targets.$active.length === 1 ? self.$targets.$active[0] : -1;\n };\n\n function fixActiveItemIndexes(index) {\n // item with index was removed, so we\n // need to adjust other items index values\n var activeIndexes = self.$targets.$active;\n for(var i = 0; i < activeIndexes.length; i++) {\n if (index < activeIndexes[i]) {\n activeIndexes[i] = activeIndexes[i] - 1;\n }\n\n // the last item is active, so we need to\n // adjust its index\n if (activeIndexes[i] === self.$targets.length) {\n activeIndexes[i] = self.$targets.length - 1;\n }\n }\n }\n\n function isActive(value) {\n var activeItems = self.$targets.$active;\n return activeItems.indexOf(value) === -1 ? false : true;\n }\n\n function deactivateItem(value) {\n var index = self.$targets.$active.indexOf(value);\n if (index !== -1) {\n self.$targets.$active.splice(index, 1);\n }\n }\n\n function activateItem(value) {\n if (!self.$options.allowMultiple) {\n // remove current selected item\n self.$targets.$active.splice(0, 1);\n }\n\n if (self.$targets.$active.indexOf(value) === -1) {\n self.$targets.$active.push(value);\n }\n }\n\n };\n\n this.$get = function() {\n var $collapse = {};\n $collapse.defaults = defaults;\n $collapse.controller = controller;\n return $collapse;\n };\n\n })\n\n .directive('bsCollapse', function($window, $animate, $collapse) {\n\n var defaults = $collapse.defaults;\n\n return {\n require: ['?ngModel', 'bsCollapse'],\n controller: ['$scope', '$element', '$attrs', $collapse.controller],\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n if(ngModelCtrl) {\n\n // Update the modelValue following\n bsCollapseCtrl.$viewChangeListeners.push(function() {\n ngModelCtrl.$setViewValue(bsCollapseCtrl.$activeIndexes());\n });\n\n // modelValue -> $formatters -> viewValue\n ngModelCtrl.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n if (angular.isArray(modelValue)) {\n // model value is an array, so just replace\n // the active items directly\n bsCollapseCtrl.$setActive(modelValue);\n }\n else {\n var activeIndexes = bsCollapseCtrl.$activeIndexes();\n\n if (angular.isArray(activeIndexes)) {\n // we have an array of selected indexes\n if (activeIndexes.indexOf(modelValue * 1) === -1) {\n // item with modelValue index is not active\n bsCollapseCtrl.$setActive(modelValue * 1);\n }\n }\n else if (activeIndexes !== modelValue * 1) {\n bsCollapseCtrl.$setActive(modelValue * 1);\n }\n }\n return modelValue;\n });\n\n }\n\n }\n };\n\n })\n\n .directive('bsCollapseToggle', function() {\n\n return {\n require: ['^?ngModel', '^bsCollapse'],\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n // Add base attr\n element.attr('data-toggle', 'collapse');\n\n // Push pane to parent bsCollapse controller\n bsCollapseCtrl.$registerToggle(element);\n\n // remove toggle from collapse controller when toggle is destroyed\n scope.$on('$destroy', function() {\n bsCollapseCtrl.$unregisterToggle(element);\n });\n\n element.on('click', function() {\n var index = attrs.bsCollapseToggle && attrs.bsCollapseToggle !== 'bs-collapse-toggle' ? attrs.bsCollapseToggle : bsCollapseCtrl.$toggles.indexOf(element);\n bsCollapseCtrl.$setActive(index * 1);\n scope.$apply();\n });\n\n }\n };\n\n })\n\n .directive('bsCollapseTarget', function($animate) {\n\n return {\n require: ['^?ngModel', '^bsCollapse'],\n // scope: true,\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n // Add base class\n element.addClass('collapse');\n\n // Add animation class\n if(bsCollapseCtrl.$options.animation) {\n element.addClass(bsCollapseCtrl.$options.animation);\n }\n\n // Push pane to parent bsCollapse controller\n bsCollapseCtrl.$registerTarget(element);\n\n // remove pane target from collapse controller when target is destroyed\n scope.$on('$destroy', function() {\n bsCollapseCtrl.$unregisterTarget(element);\n });\n\n function render() {\n var index = bsCollapseCtrl.$targets.indexOf(element);\n var active = bsCollapseCtrl.$activeIndexes();\n var action = 'removeClass';\n if (angular.isArray(active)) {\n if (active.indexOf(index) !== -1) {\n action = 'addClass';\n }\n }\n else if (index === active) {\n action = 'addClass';\n }\n\n $animate[action](element, bsCollapseCtrl.$options.activeClass);\n }\n\n bsCollapseCtrl.$viewChangeListeners.push(function() {\n render();\n });\n render();\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.datepicker', [\n 'mgcrea.ngStrap.helpers.dateParser',\n 'mgcrea.ngStrap.helpers.dateFormatter',\n 'mgcrea.ngStrap.tooltip'])\n\n .provider('$datepicker', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n //uncommenting the following line will break backwards compatability\n // prefixEvent: 'datepicker',\n prefixClass: 'datepicker',\n placement: 'bottom-left',\n templateUrl: 'datepicker/datepicker.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n // lang: $locale.id,\n useNative: false,\n dateType: 'date',\n dateFormat: 'shortDate',\n timezone: null,\n modelDateFormat: null,\n dayFormat: 'dd',\n monthFormat: 'MMM',\n yearFormat: 'yyyy',\n monthTitleFormat: 'MMMM yyyy',\n yearTitleFormat: 'yyyy',\n strictFormat: false,\n autoclose: false,\n minDate: -Infinity,\n maxDate: +Infinity,\n startView: 0,\n minView: 0,\n startWeek: 0,\n daysOfWeekDisabled: '',\n iconLeft: 'glyphicon glyphicon-chevron-left',\n iconRight: 'glyphicon glyphicon-chevron-right'\n };\n\n this.$get = function($window, $document, $rootScope, $sce, $dateFormatter, datepickerViews, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n if(!defaults.lang) defaults.lang = $dateFormatter.getDefaultLocale();\n\n function DatepickerFactory(element, controller, config) {\n\n var $datepicker = $tooltip(element, angular.extend({}, defaults, config));\n var parentScope = config.scope;\n var options = $datepicker.$options;\n var scope = $datepicker.$scope;\n if(options.startView) options.startView -= options.minView;\n\n // View vars\n\n var pickerViews = datepickerViews($datepicker);\n $datepicker.$views = pickerViews.views;\n var viewDate = pickerViews.viewDate;\n scope.$mode = options.startView;\n scope.$iconLeft = options.iconLeft;\n scope.$iconRight = options.iconRight;\n var $picker = $datepicker.$views[scope.$mode];\n\n // Scope methods\n\n scope.$select = function(date) {\n $datepicker.select(date);\n };\n scope.$selectPane = function(value) {\n $datepicker.$selectPane(value);\n };\n scope.$toggleMode = function() {\n $datepicker.setMode((scope.$mode + 1) % $datepicker.$views.length);\n };\n\n // Public methods\n\n $datepicker.update = function(date) {\n // console.warn('$datepicker.update() newValue=%o', date);\n if(angular.isDate(date) && !isNaN(date.getTime())) {\n $datepicker.$date = date;\n $picker.update.call($picker, date);\n }\n // Build only if pristine\n $datepicker.$build(true);\n };\n\n $datepicker.updateDisabledDates = function(dateRanges) {\n options.disabledDateRanges = dateRanges;\n for(var i = 0, l = scope.rows.length; i < l; i++) {\n angular.forEach(scope.rows[i], $datepicker.$setDisabledEl);\n }\n };\n\n $datepicker.select = function(date, keep) {\n // console.warn('$datepicker.select', date, scope.$mode);\n if(!angular.isDate(controller.$dateValue)) controller.$dateValue = new Date(date);\n if(!scope.$mode || keep) {\n controller.$setViewValue(angular.copy(date));\n controller.$render();\n if(options.autoclose && !keep) {\n $timeout(function() { $datepicker.hide(true); });\n }\n } else {\n angular.extend(viewDate, {year: date.getFullYear(), month: date.getMonth(), date: date.getDate()});\n $datepicker.setMode(scope.$mode - 1);\n $datepicker.$build();\n }\n };\n\n $datepicker.setMode = function(mode) {\n // console.warn('$datepicker.setMode', mode);\n scope.$mode = mode;\n $picker = $datepicker.$views[scope.$mode];\n $datepicker.$build();\n };\n\n // Protected methods\n\n $datepicker.$build = function(pristine) {\n // console.warn('$datepicker.$build() viewDate=%o', viewDate);\n if(pristine === true && $picker.built) return;\n if(pristine === false && !$picker.built) return;\n $picker.build.call($picker);\n };\n\n $datepicker.$updateSelected = function() {\n for(var i = 0, l = scope.rows.length; i < l; i++) {\n angular.forEach(scope.rows[i], updateSelected);\n }\n };\n\n $datepicker.$isSelected = function(date) {\n return $picker.isSelected(date);\n };\n\n $datepicker.$setDisabledEl = function(el) {\n el.disabled = $picker.isDisabled(el.date);\n };\n\n $datepicker.$selectPane = function(value) {\n var steps = $picker.steps;\n // set targetDate to first day of month to avoid problems with\n // date values rollover. This assumes the viewDate does not\n // depend on the day of the month\n var targetDate = new Date(Date.UTC(viewDate.year + ((steps.year || 0) * value), viewDate.month + ((steps.month || 0) * value), 1));\n angular.extend(viewDate, {year: targetDate.getUTCFullYear(), month: targetDate.getUTCMonth(), date: targetDate.getUTCDate()});\n $datepicker.$build();\n };\n\n $datepicker.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n if(targetEl[0].nodeName.toLowerCase() !== 'button') {\n targetEl = targetEl.parent();\n }\n targetEl.triggerHandler('click');\n }\n };\n\n $datepicker.$onKeyDown = function(evt) {\n if (!/(38|37|39|40|13)/.test(evt.keyCode) || evt.shiftKey || evt.altKey) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n if(evt.keyCode === 13) {\n if(!scope.$mode) {\n return $datepicker.hide(true);\n } else {\n return scope.$apply(function() { $datepicker.setMode(scope.$mode - 1); });\n }\n }\n\n // Navigate with keyboard\n $picker.onKeyDown(evt);\n parentScope.$digest();\n };\n\n // Private\n\n function updateSelected(el) {\n el.selected = $datepicker.$isSelected(el.date);\n }\n\n function focusElement() {\n element[0].focus();\n }\n\n // Overrides\n\n var _init = $datepicker.init;\n $datepicker.init = function() {\n if(isNative && options.useNative) {\n element.prop('type', 'date');\n element.css('-webkit-appearance', 'textfield');\n return;\n } else if(isTouch) {\n element.prop('type', 'text');\n element.attr('readonly', 'true');\n element.on('click', focusElement);\n }\n _init();\n };\n\n var _destroy = $datepicker.destroy;\n $datepicker.destroy = function() {\n if(isNative && options.useNative) {\n element.off('click', focusElement);\n }\n _destroy();\n };\n\n var _show = $datepicker.show;\n $datepicker.show = function() {\n _show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n // if $datepicker is no longer showing, don't setup events\n if(!$datepicker.$isShown) return;\n $datepicker.$element.on(isTouch ? 'touchstart' : 'mousedown', $datepicker.$onMouseDown);\n if(options.keyboard) {\n element.on('keydown', $datepicker.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $datepicker.hide;\n $datepicker.hide = function(blur) {\n if(!$datepicker.$isShown) return;\n $datepicker.$element.off(isTouch ? 'touchstart' : 'mousedown', $datepicker.$onMouseDown);\n if(options.keyboard) {\n element.off('keydown', $datepicker.$onKeyDown);\n }\n _hide(blur);\n };\n\n return $datepicker;\n\n }\n\n DatepickerFactory.defaults = defaults;\n return DatepickerFactory;\n\n };\n\n })\n\n .directive('bsDatepicker', function($window, $parse, $q, $dateFormatter, $dateParser, $datepicker) {\n\n var defaults = $datepicker.defaults;\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'autoclose', 'dateType', 'dateFormat', 'timezone', 'modelDateFormat', 'dayFormat', 'strictFormat', 'startWeek', 'startDate', 'useNative', 'lang', 'startView', 'minView', 'iconLeft', 'iconRight', 'daysOfWeekDisabled', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoclose', 'useNative'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!datepicker || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(datepicker),?/i);\n newValue === true ? datepicker.show() : datepicker.hide();\n });\n\n // Initialize datepicker\n var datepicker = $datepicker(element, controller, options);\n options = datepicker.$options;\n // Set expected iOS format\n if(isNative && options.useNative) options.dateFormat = 'yyyy-MM-dd';\n\n var lang = options.lang;\n\n var formatDate = function(date, format) {\n return $dateFormatter.formatDate(date, format, lang);\n };\n\n var dateParser = $dateParser({format: options.dateFormat, lang: lang, strict: options.strictFormat});\n\n // Observe attributes for changes\n angular.forEach(['minDate', 'maxDate'], function(key) {\n // console.warn('attr.$observe(%s)', key, attr[key]);\n angular.isDefined(attr[key]) && attr.$observe(key, function(newValue) {\n // console.warn('attr.$observe(%s)=%o', key, newValue);\n datepicker.$options[key] = dateParser.getDateForAttribute(key, newValue);\n // Build only if dirty\n !isNaN(datepicker.$options[key]) && datepicker.$build(false);\n validateAgainstMinMaxDate(controller.$dateValue);\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n datepicker.update(controller.$dateValue);\n }, true);\n\n // Normalize undefined/null/empty array,\n // so that we don't treat changing from undefined->null as a change.\n function normalizeDateRanges(ranges) {\n if (!ranges || !ranges.length) return null;\n return ranges;\n }\n\n if (angular.isDefined(attr.disabledDates)) {\n scope.$watch(attr.disabledDates, function(disabledRanges, previousValue) {\n disabledRanges = normalizeDateRanges(disabledRanges);\n previousValue = normalizeDateRanges(previousValue);\n\n if (disabledRanges) {\n datepicker.updateDisabledDates(disabledRanges);\n }\n });\n }\n\n function validateAgainstMinMaxDate(parsedDate) {\n if (!angular.isDate(parsedDate)) return;\n var isMinValid = isNaN(datepicker.$options.minDate) || parsedDate.getTime() >= datepicker.$options.minDate;\n var isMaxValid = isNaN(datepicker.$options.maxDate) || parsedDate.getTime() <= datepicker.$options.maxDate;\n var isValid = isMinValid && isMaxValid;\n controller.$setValidity('date', isValid);\n controller.$setValidity('min', isMinValid);\n controller.$setValidity('max', isMaxValid);\n // Only update the model when we have a valid date\n if(isValid) controller.$dateValue = parsedDate;\n }\n\n // viewValue -> $parsers -> modelValue\n controller.$parsers.unshift(function(viewValue) {\n // console.warn('$parser(\"%s\"): viewValue=%o', element.attr('ng-model'), viewValue);\n var date;\n // Null values should correctly reset the model value & validity\n if(!viewValue) {\n controller.$setValidity('date', true);\n // BREAKING CHANGE:\n // return null (not undefined) when input value is empty, so angularjs 1.3\n // ngModelController can go ahead and run validators, like ngRequired\n return null;\n }\n var parsedDate = dateParser.parse(viewValue, controller.$dateValue);\n if(!parsedDate || isNaN(parsedDate.getTime())) {\n controller.$setValidity('date', false);\n // return undefined, causes ngModelController to\n // invalidate model value\n return;\n } else {\n validateAgainstMinMaxDate(parsedDate);\n }\n\n if(options.dateType === 'string') {\n date = dateParser.timezoneOffsetAdjust(parsedDate, options.timezone, true);\n return formatDate(date, options.modelDateFormat || options.dateFormat);\n }\n date = dateParser.timezoneOffsetAdjust(controller.$dateValue, options.timezone, true);\n if(options.dateType === 'number') {\n return date.getTime();\n } else if(options.dateType === 'unix') {\n return date.getTime() / 1000;\n } else if(options.dateType === 'iso') {\n return date.toISOString();\n } else {\n return new Date(date);\n }\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var date;\n if(angular.isUndefined(modelValue) || modelValue === null) {\n date = NaN;\n } else if(angular.isDate(modelValue)) {\n date = modelValue;\n } else if(options.dateType === 'string') {\n date = dateParser.parse(modelValue, null, options.modelDateFormat);\n } else if(options.dateType === 'unix') {\n date = new Date(modelValue * 1000);\n } else {\n date = new Date(modelValue);\n }\n // Setup default value?\n // if(isNaN(date.getTime())) {\n // var today = new Date();\n // date = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0, 0);\n // }\n controller.$dateValue = dateParser.timezoneOffsetAdjust(date, options.timezone);\n return getDateFormattedString();\n });\n\n // viewValue -> element\n controller.$render = function() {\n // console.warn('$render(\"%s\"): viewValue=%o', element.attr('ng-model'), controller.$viewValue);\n element.val(getDateFormattedString());\n };\n\n function getDateFormattedString() {\n return !controller.$dateValue || isNaN(controller.$dateValue.getTime()) ? '' : formatDate(controller.$dateValue, options.dateFormat);\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if(datepicker) datepicker.destroy();\n options = null;\n datepicker = null;\n });\n\n }\n };\n\n })\n\n .provider('datepickerViews', function() {\n\n var defaults = this.defaults = {\n dayFormat: 'dd',\n daySplit: 7\n };\n\n // Split array into smaller arrays\n function split(arr, size) {\n var arrays = [];\n while(arr.length > 0) {\n arrays.push(arr.splice(0, size));\n }\n return arrays;\n }\n\n // Modulus operator\n function mod(n, m) {\n return ((n % m) + m) % m;\n }\n\n this.$get = function($dateFormatter, $dateParser, $sce) {\n\n return function(picker) {\n\n var scope = picker.$scope;\n var options = picker.$options;\n\n var lang = options.lang;\n var formatDate = function(date, format) {\n return $dateFormatter.formatDate(date, format, lang);\n };\n var dateParser = $dateParser({format: options.dateFormat, lang: lang, strict: options.strictFormat});\n\n var weekDaysMin = $dateFormatter.weekdaysShort(lang);\n var weekDaysLabels = weekDaysMin.slice(options.startWeek).concat(weekDaysMin.slice(0, options.startWeek));\n var weekDaysLabelsHtml = $sce.trustAsHtml('' + weekDaysLabels.join('') + '');\n\n var startDate = picker.$date || (options.startDate ? dateParser.getDateForAttribute('startDate', options.startDate) : new Date());\n var viewDate = {year: startDate.getFullYear(), month: startDate.getMonth(), date: startDate.getDate()};\n\n var views = [{\n format: options.dayFormat,\n split: 7,\n steps: { month: 1 },\n update: function(date, force) {\n if(!this.built || force || date.getFullYear() !== viewDate.year || date.getMonth() !== viewDate.month) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getDate() !== viewDate.date || date.getDate() === 1) {\n // chaging picker current month will cause viewDate.date to be set to first day of the month,\n // in $datepicker.$selectPane, so picker would not update selected day display if\n // user picks first day of the new month.\n // As a workaround, we are always forcing update when picked date is first day of month.\n viewDate.date = picker.$date.getDate();\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstDayOfMonth = new Date(viewDate.year, viewDate.month, 1), firstDayOfMonthOffset = firstDayOfMonth.getTimezoneOffset();\n var firstDate = new Date(+firstDayOfMonth - mod(firstDayOfMonth.getDay() - options.startWeek, 7) * 864e5), firstDateOffset = firstDate.getTimezoneOffset();\n var today = dateParser.timezoneOffsetAdjust(new Date(), options.timezone).toDateString();\n // Handle daylight time switch\n if(firstDateOffset !== firstDayOfMonthOffset) firstDate = new Date(+firstDate + (firstDateOffset - firstDayOfMonthOffset) * 60e3);\n var days = [], day;\n for(var i = 0; i < 42; i++) { // < 7 * 6\n day = dateParser.daylightSavingAdjust(new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + i));\n days.push({date: day, isToday: day.toDateString() === today, label: formatDate(day, this.format), selected: picker.$date && this.isSelected(day), muted: day.getMonth() !== viewDate.month, disabled: this.isDisabled(day)});\n }\n scope.title = formatDate(firstDayOfMonth, options.monthTitleFormat);\n scope.showLabels = true;\n scope.labels = weekDaysLabelsHtml;\n scope.rows = split(days, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear() && date.getMonth() === picker.$date.getMonth() && date.getDate() === picker.$date.getDate();\n },\n isDisabled: function(date) {\n var time = date.getTime();\n\n // Disabled because of min/max date.\n if (time < options.minDate || time > options.maxDate) return true;\n\n // Disabled due to being a disabled day of the week\n if (options.daysOfWeekDisabled.indexOf(date.getDay()) !== -1) return true;\n\n // Disabled because of disabled date range.\n if (options.disabledDateRanges) {\n for (var i = 0; i < options.disabledDateRanges.length; i++) {\n if (time >= options.disabledDateRanges[i].start && time <= options.disabledDateRanges[i].end) {\n return true;\n }\n }\n }\n\n return false;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualTime = picker.$date.getTime();\n var newDate;\n\n if(evt.keyCode === 37) newDate = new Date(actualTime - 1 * 864e5);\n else if(evt.keyCode === 38) newDate = new Date(actualTime - 7 * 864e5);\n else if(evt.keyCode === 39) newDate = new Date(actualTime + 1 * 864e5);\n else if(evt.keyCode === 40) newDate = new Date(actualTime + 7 * 864e5);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }, {\n name: 'month',\n format: options.monthFormat,\n split: 4,\n steps: { year: 1 },\n update: function(date, force) {\n if(!this.built || date.getFullYear() !== viewDate.year) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getMonth() !== viewDate.month) {\n angular.extend(viewDate, {month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstMonth = new Date(viewDate.year, 0, 1);\n var months = [], month;\n for (var i = 0; i < 12; i++) {\n month = new Date(viewDate.year, i, 1);\n months.push({date: month, label: formatDate(month, this.format), selected: picker.$isSelected(month), disabled: this.isDisabled(month)});\n }\n scope.title = formatDate(month, options.yearTitleFormat);\n scope.showLabels = false;\n scope.rows = split(months, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear() && date.getMonth() === picker.$date.getMonth();\n },\n isDisabled: function(date) {\n var lastDate = +new Date(date.getFullYear(), date.getMonth() + 1, 0);\n return lastDate < options.minDate || date.getTime() > options.maxDate;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualMonth = picker.$date.getMonth();\n var newDate = new Date(picker.$date);\n\n if(evt.keyCode === 37) newDate.setMonth(actualMonth - 1);\n else if(evt.keyCode === 38) newDate.setMonth(actualMonth - 4);\n else if(evt.keyCode === 39) newDate.setMonth(actualMonth + 1);\n else if(evt.keyCode === 40) newDate.setMonth(actualMonth + 4);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }, {\n name: 'year',\n format: options.yearFormat,\n split: 4,\n steps: { year: 12 },\n update: function(date, force) {\n if(!this.built || force || parseInt(date.getFullYear()/20, 10) !== parseInt(viewDate.year/20, 10)) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getFullYear() !== viewDate.year) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstYear = viewDate.year - viewDate.year % (this.split * 3);\n var years = [], year;\n for (var i = 0; i < 12; i++) {\n year = new Date(firstYear + i, 0, 1);\n years.push({date: year, label: formatDate(year, this.format), selected: picker.$isSelected(year), disabled: this.isDisabled(year)});\n }\n scope.title = years[0].label + '-' + years[years.length - 1].label;\n scope.showLabels = false;\n scope.rows = split(years, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear();\n },\n isDisabled: function(date) {\n var lastDate = +new Date(date.getFullYear() + 1, 0, 0);\n return lastDate < options.minDate || date.getTime() > options.maxDate;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualYear = picker.$date.getFullYear(),\n newDate = new Date(picker.$date);\n\n if(evt.keyCode === 37) newDate.setYear(actualYear - 1);\n else if(evt.keyCode === 38) newDate.setYear(actualYear - 4);\n else if(evt.keyCode === 39) newDate.setYear(actualYear + 1);\n else if(evt.keyCode === 40) newDate.setYear(actualYear + 4);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }];\n\n return {\n views: options.minView ? Array.prototype.slice.call(views, options.minView) : views,\n viewDate: viewDate\n };\n\n };\n\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.dropdown', ['mgcrea.ngStrap.tooltip'])\n\n .provider('$dropdown', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'dropdown',\n prefixEvent: 'dropdown',\n placement: 'bottom-left',\n templateUrl: 'dropdown/dropdown.tpl.html',\n trigger: 'click',\n container: false,\n keyboard: true,\n html: false,\n delay: 0\n };\n\n this.$get = function($window, $rootScope, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var matchesSelector = Element.prototype.matchesSelector || Element.prototype.webkitMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector;\n\n function DropdownFactory(element, config) {\n\n var $dropdown = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n var scope = $dropdown.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n $dropdown = $tooltip(element, options);\n var parentEl = element.parent();\n\n // Protected methods\n\n $dropdown.$onKeyDown = function(evt) {\n if (!/(38|40)/.test(evt.keyCode)) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // Retrieve focused index\n var items = angular.element($dropdown.$element[0].querySelectorAll('li:not(.divider) a'));\n if(!items.length) return;\n var index;\n angular.forEach(items, function(el, i) {\n if(matchesSelector && matchesSelector.call(el, ':focus')) index = i;\n });\n\n // Navigate with keyboard\n if(evt.keyCode === 38 && index > 0) index--;\n else if(evt.keyCode === 40 && index < items.length - 1) index++;\n else if(angular.isUndefined(index)) index = 0;\n items.eq(index)[0].focus();\n\n };\n\n // Overrides\n\n var show = $dropdown.show;\n $dropdown.show = function() {\n show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n options.keyboard && $dropdown.$element && $dropdown.$element.on('keydown', $dropdown.$onKeyDown);\n bodyEl.on('click', onBodyClick);\n }, 0, false);\n parentEl.hasClass('dropdown') && parentEl.addClass('open');\n };\n\n var hide = $dropdown.hide;\n $dropdown.hide = function() {\n if(!$dropdown.$isShown) return;\n options.keyboard && $dropdown.$element && $dropdown.$element.off('keydown', $dropdown.$onKeyDown);\n bodyEl.off('click', onBodyClick);\n parentEl.hasClass('dropdown') && parentEl.removeClass('open');\n hide();\n };\n\n var destroy = $dropdown.destroy;\n $dropdown.destroy = function() {\n bodyEl.off('click', onBodyClick);\n destroy();\n };\n\n // Private functions\n\n function onBodyClick(evt) {\n if(evt.target === element[0]) return;\n return evt.target !== element[0] && $dropdown.hide();\n }\n\n return $dropdown;\n\n }\n\n return DropdownFactory;\n\n };\n\n })\n\n .directive('bsDropdown', function($window, $sce, $dropdown) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'id'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as an object\n attr.bsDropdown && scope.$watch(attr.bsDropdown, function(newValue, oldValue) {\n scope.content = newValue;\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!dropdown || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(dropdown),?/i);\n newValue === true ? dropdown.show() : dropdown.hide();\n });\n\n // Initialize dropdown\n var dropdown = $dropdown(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (dropdown) dropdown.destroy();\n options = null;\n dropdown = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.dateParser', [])\n\n.provider('$dateParser', function($localeProvider) {\n\n // define a custom ParseDate object to use instead of native Date\n // to avoid date values wrapping when setting date component values\n function ParseDate() {\n this.year = 1970;\n this.month = 0;\n this.day = 1;\n this.hours = 0;\n this.minutes = 0;\n this.seconds = 0;\n this.milliseconds = 0;\n }\n\n ParseDate.prototype.setMilliseconds = function(value) { this.milliseconds = value; };\n ParseDate.prototype.setSeconds = function(value) { this.seconds = value; };\n ParseDate.prototype.setMinutes = function(value) { this.minutes = value; };\n ParseDate.prototype.setHours = function(value) { this.hours = value; };\n ParseDate.prototype.getHours = function() { return this.hours; };\n ParseDate.prototype.setDate = function(value) { this.day = value; };\n ParseDate.prototype.setMonth = function(value) { this.month = value; };\n ParseDate.prototype.setFullYear = function(value) { this.year = value; };\n ParseDate.prototype.fromDate = function(value) {\n this.year = value.getFullYear();\n this.month = value.getMonth();\n this.day = value.getDate();\n this.hours = value.getHours();\n this.minutes = value.getMinutes();\n this.seconds = value.getSeconds();\n this.milliseconds = value.getMilliseconds();\n return this;\n };\n\n ParseDate.prototype.toDate = function() {\n return new Date(this.year, this.month, this.day, this.hours, this.minutes, this.seconds, this.milliseconds);\n };\n\n var proto = ParseDate.prototype;\n\n function noop() {\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function indexOfCaseInsensitive(array, value) {\n var len = array.length, str=value.toString().toLowerCase();\n for (var i=0; i 12 when midnight changeover, but then cannot generate\n * midnight datetime, so jump to 1AM, otherwise reset.\n * @param date (Date) the date to check\n * @return (Date) the corrected date\n *\n * __ copied from jquery ui datepicker __\n */\n $dateParser.daylightSavingAdjust = function(date) {\n if (!date) {\n return null;\n }\n date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);\n return date;\n };\n\n /* Correct the date for timezone offset.\n * @param date (Date) the date to adjust\n * @param timezone (string) the timezone to adjust for\n * @param undo (boolean) to add or subtract timezone offset\n * @return (Date) the corrected date\n */\n $dateParser.timezoneOffsetAdjust = function(date, timezone, undo) {\n if (!date) {\n return null;\n }\n // Right now, only 'UTC' is supported.\n if (timezone && timezone === 'UTC') {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + (undo?-1:1)*date.getTimezoneOffset());\n }\n return date;\n };\n\n // Private functions\n\n function setMapForFormat(format) {\n var keys = Object.keys(setFnMap), i;\n var map = [], sortedMap = [];\n // Map to setFn\n var clonedFormat = format;\n for(i = 0; i < keys.length; i++) {\n if(format.split(keys[i]).length > 1) {\n var index = clonedFormat.search(keys[i]);\n format = format.split(keys[i]).join('');\n if(setFnMap[keys[i]]) {\n map[index] = setFnMap[keys[i]];\n }\n }\n }\n // Sort result map\n angular.forEach(map, function(v) {\n // conditional required since angular.forEach broke around v1.2.21\n // related pr: https://github.com/angular/angular.js/pull/8525\n if(v) sortedMap.push(v);\n });\n return sortedMap;\n }\n\n function escapeReservedSymbols(text) {\n return text.replace(/\\//g, '[\\\\/]').replace('/-/g', '[-]').replace(/\\./g, '[.]').replace(/\\\\s/g, '[\\\\s]');\n }\n\n function regExpForFormat(format) {\n var keys = Object.keys(regExpMap), i;\n\n var re = format;\n // Abstract replaces to avoid collisions\n for(i = 0; i < keys.length; i++) {\n re = re.split(keys[i]).join('${' + i + '}');\n }\n // Replace abstracted values\n for(i = 0; i < keys.length; i++) {\n re = re.split('${' + i + '}').join('(' + regExpMap[keys[i]] + ')');\n }\n format = escapeReservedSymbols(format);\n\n return new RegExp('^' + re + '$', ['i']);\n }\n\n $dateParser.init();\n return $dateParser;\n\n };\n\n return DateParserFactory;\n\n };\n\n});\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.debounce', [])\n\n// @source jashkenas/underscore\n// @url https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L693\n.factory('debounce', function($timeout) {\n return function(func, wait, immediate) {\n var timeout = null;\n return function() {\n var context = this,\n args = arguments,\n callNow = immediate && !timeout;\n if(timeout) {\n $timeout.cancel(timeout);\n }\n timeout = $timeout(function later() {\n timeout = null;\n if(!immediate) {\n func.apply(context, args);\n }\n }, wait, false);\n if(callNow) {\n func.apply(context, args);\n }\n return timeout;\n };\n };\n})\n\n\n// @source jashkenas/underscore\n// @url https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L661\n.factory('throttle', function($timeout) {\n return function(func, wait, options) {\n var timeout = null;\n options || (options = {});\n return function() {\n var context = this,\n args = arguments;\n if(!timeout) {\n if(options.leading !== false) {\n func.apply(context, args);\n }\n timeout = $timeout(function later() {\n timeout = null;\n if(options.trailing !== false) {\n func.apply(context, args);\n }\n }, wait, false);\n }\n };\n };\n});\n\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.dimensions', [])\n\n .factory('dimensions', function($document, $window) {\n\n var jqLite = angular.element;\n var fn = {};\n\n /**\n * Test the element nodeName\n * @param element\n * @param name\n */\n var nodeName = fn.nodeName = function(element, name) {\n return element.nodeName && element.nodeName.toLowerCase() === name.toLowerCase();\n };\n\n /**\n * Returns the element computed style\n * @param element\n * @param prop\n * @param extra\n */\n fn.css = function(element, prop, extra) {\n var value;\n if (element.currentStyle) { //IE\n value = element.currentStyle[prop];\n } else if (window.getComputedStyle) {\n value = window.getComputedStyle(element)[prop];\n } else {\n value = element.style[prop];\n }\n return extra === true ? parseFloat(value) || 0 : value;\n };\n\n /**\n * Provides read-only equivalent of jQuery's offset function:\n * @required-by bootstrap-tooltip, bootstrap-affix\n * @url http://api.jquery.com/offset/\n * @param element\n */\n fn.offset = function(element) {\n var boxRect = element.getBoundingClientRect();\n var docElement = element.ownerDocument;\n return {\n width: boxRect.width || element.offsetWidth,\n height: boxRect.height || element.offsetHeight,\n top: boxRect.top + (window.pageYOffset || docElement.documentElement.scrollTop) - (docElement.documentElement.clientTop || 0),\n left: boxRect.left + (window.pageXOffset || docElement.documentElement.scrollLeft) - (docElement.documentElement.clientLeft || 0)\n };\n };\n \n /**\n * Provides set equivalent of jQuery's offset function:\n * @required-by bootstrap-tooltip\n * @url http://api.jquery.com/offset/\n * @param element\n * @param options\n * @param i\n */\n fn.setOffset = function (element, options, i) {\n var curPosition,\n curLeft,\n curCSSTop,\n curTop,\n curOffset,\n curCSSLeft,\n calculatePosition,\n position = fn.css(element, 'position'),\n curElem = angular.element(element),\n props = {};\n \n // Set position first, in-case top/left are set even on static elem\n if (position === 'static') {\n element.style.position = 'relative';\n }\n \n curOffset = fn.offset(element);\n curCSSTop = fn.css(element, 'top');\n curCSSLeft = fn.css(element, 'left');\n calculatePosition = (position === 'absolute' || position === 'fixed') && \n (curCSSTop + curCSSLeft).indexOf('auto') > -1;\n \n // Need to be able to calculate position if either\n // top or left is auto and position is either absolute or fixed\n if (calculatePosition) {\n curPosition = fn.position(element);\n curTop = curPosition.top;\n curLeft = curPosition.left;\n } else {\n curTop = parseFloat(curCSSTop) || 0;\n curLeft = parseFloat(curCSSLeft) || 0;\n }\n \n if (angular.isFunction(options)) {\n options = options.call(element, i, curOffset);\n }\n \n if (options.top !== null ) {\n props.top = (options.top - curOffset.top) + curTop;\n }\n if ( options.left !== null ) {\n props.left = (options.left - curOffset.left) + curLeft;\n }\n\n if ('using' in options) {\n options.using.call(curElem, props);\n } else {\n curElem.css({\n top: props.top + 'px',\n left: props.left + 'px'\n });\n }\n };\n\n /**\n * Provides read-only equivalent of jQuery's position function\n * @required-by bootstrap-tooltip, bootstrap-affix\n * @url http://api.jquery.com/offset/\n * @param element\n */\n fn.position = function(element) {\n\n var offsetParentRect = {top: 0, left: 0},\n offsetParentElement,\n offset;\n\n // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent\n if (fn.css(element, 'position') === 'fixed') {\n\n // We assume that getBoundingClientRect is available when computed position is fixed\n offset = element.getBoundingClientRect();\n\n } else {\n\n // Get *real* offsetParentElement\n offsetParentElement = offsetParent(element);\n\n // Get correct offsets\n offset = fn.offset(element);\n if (!nodeName(offsetParentElement, 'html')) {\n offsetParentRect = fn.offset(offsetParentElement);\n }\n\n // Add offsetParent borders\n offsetParentRect.top += fn.css(offsetParentElement, 'borderTopWidth', true);\n offsetParentRect.left += fn.css(offsetParentElement, 'borderLeftWidth', true);\n }\n\n // Subtract parent offsets and element margins\n return {\n width: element.offsetWidth,\n height: element.offsetHeight,\n top: offset.top - offsetParentRect.top - fn.css(element, 'marginTop', true),\n left: offset.left - offsetParentRect.left - fn.css(element, 'marginLeft', true)\n };\n\n };\n\n /**\n * Returns the closest, non-statically positioned offsetParent of a given element\n * @required-by fn.position\n * @param element\n */\n var offsetParent = function offsetParentElement(element) {\n var docElement = element.ownerDocument;\n var offsetParent = element.offsetParent || docElement;\n if(nodeName(offsetParent, '#document')) return docElement.documentElement;\n while(offsetParent && !nodeName(offsetParent, 'html') && fn.css(offsetParent, 'position') === 'static') {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || docElement.documentElement;\n };\n\n /**\n * Provides equivalent of jQuery's height function\n * @required-by bootstrap-affix\n * @url http://api.jquery.com/height/\n * @param element\n * @param outer\n */\n fn.height = function(element, outer) {\n var value = element.offsetHeight;\n if(outer) {\n value += fn.css(element, 'marginTop', true) + fn.css(element, 'marginBottom', true);\n } else {\n value -= fn.css(element, 'paddingTop', true) + fn.css(element, 'paddingBottom', true) + fn.css(element, 'borderTopWidth', true) + fn.css(element, 'borderBottomWidth', true);\n }\n return value;\n };\n\n /**\n * Provides equivalent of jQuery's width function\n * @required-by bootstrap-affix\n * @url http://api.jquery.com/width/\n * @param element\n * @param outer\n */\n fn.width = function(element, outer) {\n var value = element.offsetWidth;\n if(outer) {\n value += fn.css(element, 'marginLeft', true) + fn.css(element, 'marginRight', true);\n } else {\n value -= fn.css(element, 'paddingLeft', true) + fn.css(element, 'paddingRight', true) + fn.css(element, 'borderLeftWidth', true) + fn.css(element, 'borderRightWidth', true);\n }\n return value;\n };\n\n return fn;\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.parseOptions', [])\n\n .provider('$parseOptions', function() {\n\n var defaults = this.defaults = {\n regexp: /^\\s*(.*?)(?:\\s+as\\s+(.*?))?(?:\\s+group\\s+by\\s+(.*))?\\s+for\\s+(?:([\\$\\w][\\$\\w]*)|(?:\\(\\s*([\\$\\w][\\$\\w]*)\\s*,\\s*([\\$\\w][\\$\\w]*)\\s*\\)))\\s+in\\s+(.*?)(?:\\s+track\\s+by\\s+(.*?))?$/\n };\n\n this.$get = function($parse, $q) {\n\n function ParseOptionsFactory(attr, config) {\n\n var $parseOptions = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n $parseOptions.$values = [];\n\n // Private vars\n var match, displayFn, valueName, keyName, groupByFn, valueFn, valuesFn;\n\n $parseOptions.init = function() {\n $parseOptions.$match = match = attr.match(options.regexp);\n displayFn = $parse(match[2] || match[1]),\n valueName = match[4] || match[6],\n keyName = match[5],\n groupByFn = $parse(match[3] || ''),\n valueFn = $parse(match[2] ? match[1] : valueName),\n valuesFn = $parse(match[7]);\n };\n\n $parseOptions.valuesFn = function(scope, controller) {\n var valuesPromise;\n try {\n // Might throw 'notarray' error since cea8e75\n valuesPromise = valuesFn(scope, controller);\n } catch(err) {\n valuesPromise = [];\n }\n return $q.when(valuesPromise)\n .then(function(values) {\n if(!angular.isArray(values)) {\n values = [];\n }\n $parseOptions.$values = values.length ? parseValues(values, scope) : [];\n return $parseOptions.$values;\n });\n };\n\n $parseOptions.displayValue = function(modelValue) {\n var scope = {};\n scope[valueName] = modelValue;\n return displayFn(scope);\n };\n\n // Private functions\n\n function parseValues(values, scope) {\n return values.map(function(match, index) {\n var locals = {}, label, value;\n locals[valueName] = match;\n label = displayFn(scope, locals);\n value = valueFn(scope, locals);\n return {label: label, value: value, index: index};\n });\n }\n\n $parseOptions.init();\n return $parseOptions;\n\n }\n\n return ParseOptionsFactory;\n\n };\n\n });\n","'use strict';\n\n(angular.version.minor < 3 && angular.version.dot < 14) && angular.module('ng')\n\n.factory('$$rAF', function($window, $timeout) {\n\n var requestAnimationFrame = $window.requestAnimationFrame ||\n $window.webkitRequestAnimationFrame ||\n $window.mozRequestAnimationFrame;\n\n var cancelAnimationFrame = $window.cancelAnimationFrame ||\n $window.webkitCancelAnimationFrame ||\n $window.mozCancelAnimationFrame ||\n $window.webkitCancelRequestAnimationFrame;\n\n var rafSupported = !!requestAnimationFrame;\n var raf = rafSupported ?\n function(fn) {\n var id = requestAnimationFrame(fn);\n return function() {\n cancelAnimationFrame(id);\n };\n } :\n function(fn) {\n var timer = $timeout(fn, 16.66, false); // 1000 / 60 = 16.666\n return function() {\n $timeout.cancel(timer);\n };\n };\n\n raf.supported = rafSupported;\n\n return raf;\n\n});\n\n// .factory('$$animateReflow', function($$rAF, $document) {\n\n// var bodyEl = $document[0].body;\n\n// return function(fn) {\n// //the returned function acts as the cancellation function\n// return $$rAF(function() {\n// //the line below will force the browser to perform a repaint\n// //so that all the animated elements within the animation frame\n// //will be properly updated and drawn on screen. This is\n// //required to perform multi-class CSS based animations with\n// //Firefox. DO NOT REMOVE THIS LINE.\n// var a = bodyEl.offsetWidth + 1;\n// fn();\n// });\n// };\n\n// });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.modal', ['mgcrea.ngStrap.core', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$modal', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n backdropAnimation: 'am-fade',\n prefixClass: 'modal',\n prefixEvent: 'modal',\n placement: 'top',\n templateUrl: 'modal/modal.tpl.html',\n template: '',\n contentTemplate: false,\n container: false,\n element: null,\n backdrop: true,\n keyboard: true,\n html: false,\n show: true\n };\n\n this.$get = function($window, $rootScope, $bsCompiler, $q, $templateCache, $http, $animate, $timeout, $sce, dimensions) {\n\n var forEach = angular.forEach;\n var trim = String.prototype.trim;\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n var bodyElement = angular.element($window.document.body);\n\n function ModalFactory(config) {\n\n var $modal = {};\n\n // Common vars\n var options = $modal.$options = angular.extend({}, defaults, config);\n var promise = $modal.$promise = $bsCompiler.compile(options);\n var scope = $modal.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n if(!options.element && !options.container) {\n options.container = 'body';\n }\n\n // Store $id to identify the triggering element in events\n // give priority to options.id, otherwise, try to use\n // element id if defined\n $modal.$id = options.id || options.element && options.element.attr('id') || '';\n\n // Support scope as string options\n forEach(['title', 'content'], function(key) {\n if(options[key]) scope[key] = $sce.trustAsHtml(options[key]);\n });\n\n // Provide scope helpers\n scope.$hide = function() {\n scope.$$postDigest(function() {\n $modal.hide();\n });\n };\n scope.$show = function() {\n scope.$$postDigest(function() {\n $modal.show();\n });\n };\n scope.$toggle = function() {\n scope.$$postDigest(function() {\n $modal.toggle();\n });\n };\n // Publish isShown as a protected var on scope\n $modal.$isShown = scope.$isShown = false;\n\n // Fetch, compile then initialize modal\n var compileData, modalElement, modalScope;\n var backdropElement = angular.element('
');\n backdropElement.css({position:'fixed', top:'0px', left:'0px', bottom:'0px', right:'0px', 'z-index': 1038});\n promise.then(function(data) {\n compileData = data;\n $modal.init();\n });\n\n $modal.init = function() {\n\n // Options: show\n if(options.show) {\n scope.$$postDigest(function() {\n $modal.show();\n });\n }\n\n };\n\n $modal.destroy = function() {\n\n // Remove element\n destroyModalElement();\n\n // remove backdrop element\n if(backdropElement) {\n backdropElement.remove();\n backdropElement = null;\n }\n\n // Destroy scope\n scope.$destroy();\n };\n\n $modal.show = function() {\n if($modal.$isShown) return;\n\n var parent, after;\n if(angular.isElement(options.container)) {\n parent = options.container;\n after = options.container[0].lastChild ? angular.element(options.container[0].lastChild) : null;\n } else {\n if (options.container) {\n parent = findElement(options.container);\n after = parent[0] && parent[0].lastChild ? angular.element(parent[0].lastChild) : null;\n } else {\n parent = null;\n after = options.element;\n }\n }\n\n // destroy any existing modal elements\n if(modalElement) destroyModalElement();\n\n // create a new scope, so we can destroy it and all child scopes\n // when destroying the modal element\n modalScope = $modal.$scope.$new();\n // Fetch a cloned element linked from template (noop callback is required)\n modalElement = $modal.$element = compileData.link(modalScope, function(clonedElement, scope) {});\n\n if(scope.$emit(options.prefixEvent + '.show.before', $modal).defaultPrevented) {\n return;\n }\n\n // Set the initial positioning.\n modalElement.css({display: 'block'}).addClass(options.placement);\n\n // Options: animation\n if(options.animation) {\n if(options.backdrop) {\n backdropElement.addClass(options.backdropAnimation);\n }\n modalElement.addClass(options.animation);\n }\n\n if(options.backdrop) {\n $animate.enter(backdropElement, bodyElement, null);\n }\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.enter(modalElement, parent, after, enterAnimateCallback);\n } else {\n $animate.enter(modalElement, parent, after).then(enterAnimateCallback);\n }\n\n $modal.$isShown = scope.$isShown = true;\n safeDigest(scope);\n // Focus once the enter-animation has started\n // Weird PhantomJS bug hack\n var el = modalElement[0];\n requestAnimationFrame(function() {\n el.focus();\n });\n\n bodyElement.addClass(options.prefixClass + '-open');\n if(options.animation) {\n bodyElement.addClass(options.prefixClass + '-with-' + options.animation);\n }\n\n // Bind events\n bindBackdropEvents();\n bindKeyboardEvents();\n };\n\n function enterAnimateCallback() {\n scope.$emit(options.prefixEvent + '.show', $modal);\n }\n\n $modal.hide = function() {\n if(!$modal.$isShown) return;\n\n if(scope.$emit(options.prefixEvent + '.hide.before', $modal).defaultPrevented) {\n return;\n }\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.leave(modalElement, leaveAnimateCallback);\n } else {\n $animate.leave(modalElement).then(leaveAnimateCallback);\n }\n\n if(options.backdrop) {\n $animate.leave(backdropElement);\n }\n $modal.$isShown = scope.$isShown = false;\n safeDigest(scope);\n\n // Unbind events\n unbindBackdropEvents();\n unbindKeyboardEvents();\n };\n\n function leaveAnimateCallback() {\n scope.$emit(options.prefixEvent + '.hide', $modal);\n bodyElement.removeClass(options.prefixClass + '-open');\n if(options.animation) {\n bodyElement.removeClass(options.prefixClass + '-with-' + options.animation);\n }\n }\n\n $modal.toggle = function() {\n\n $modal.$isShown ? $modal.hide() : $modal.show();\n\n };\n\n $modal.focus = function() {\n modalElement[0].focus();\n };\n\n // Protected methods\n\n $modal.$onKeyUp = function(evt) {\n\n if (evt.which === 27 && $modal.$isShown) {\n $modal.hide();\n evt.stopPropagation();\n }\n\n };\n\n function bindBackdropEvents() {\n if(options.backdrop) {\n modalElement.on('click', hideOnBackdropClick);\n backdropElement.on('click', hideOnBackdropClick);\n backdropElement.on('wheel', preventEventDefault);\n }\n }\n\n function unbindBackdropEvents() {\n if(options.backdrop) {\n modalElement.off('click', hideOnBackdropClick);\n backdropElement.off('click', hideOnBackdropClick);\n backdropElement.off('wheel', preventEventDefault);\n }\n }\n\n function bindKeyboardEvents() {\n if(options.keyboard) {\n modalElement.on('keyup', $modal.$onKeyUp);\n }\n }\n\n function unbindKeyboardEvents() {\n if(options.keyboard) {\n modalElement.off('keyup', $modal.$onKeyUp);\n }\n }\n\n // Private methods\n\n function hideOnBackdropClick(evt) {\n if(evt.target !== evt.currentTarget) return;\n options.backdrop === 'static' ? $modal.focus() : $modal.hide();\n }\n\n function preventEventDefault(evt) {\n evt.preventDefault();\n }\n\n function destroyModalElement() {\n if($modal.$isShown && modalElement !== null) {\n // un-bind events\n unbindBackdropEvents();\n unbindKeyboardEvents();\n }\n\n if(modalScope) {\n modalScope.$destroy();\n modalScope = null;\n }\n\n if(modalElement) {\n modalElement.remove();\n modalElement = $modal.$element = null;\n }\n }\n\n return $modal;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n return ModalFactory;\n\n };\n\n })\n\n .directive('bsModal', function($window, $sce, $modal) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'controller', 'placement', 'backdrop', 'keyboard', 'html', 'container', 'animation', 'id', 'prefixEvent', 'prefixClass'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['backdrop', 'keyboard', 'html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsModal && scope.$watch(attr.bsModal, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize modal\n var modal = $modal(options);\n\n // Trigger\n element.on(attr.trigger || 'click', modal.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (modal) modal.destroy();\n options = null;\n modal = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.navbar', [])\n\n .provider('$navbar', function() {\n\n var defaults = this.defaults = {\n activeClass: 'active',\n routeAttr: 'data-match-route',\n strict: false\n };\n\n this.$get = function() {\n return {defaults: defaults};\n };\n\n })\n\n .directive('bsNavbar', function($window, $location, $navbar) {\n\n var defaults = $navbar.defaults;\n\n return {\n restrict: 'A',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = angular.copy(defaults);\n angular.forEach(Object.keys(defaults), function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // Watch for the $location\n scope.$watch(function() {\n\n return $location.path();\n\n }, function(newValue, oldValue) {\n\n var liElements = element[0].querySelectorAll('li[' + options.routeAttr + ']');\n\n angular.forEach(liElements, function(li) {\n\n var liElement = angular.element(li);\n var pattern = liElement.attr(options.routeAttr).replace('/', '\\\\/');\n if(options.strict) {\n pattern = '^' + pattern + '$';\n }\n var regexp = new RegExp(pattern, 'i');\n\n if(regexp.test(newValue)) {\n liElement.addClass(options.activeClass);\n } else {\n liElement.removeClass(options.activeClass);\n }\n\n });\n\n });\n\n }\n\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.scrollspy', ['mgcrea.ngStrap.helpers.debounce', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$scrollspy', function() {\n\n // Pool of registered spies\n var spies = this.$$spies = {};\n\n var defaults = this.defaults = {\n debounce: 150,\n throttle: 100,\n offset: 100\n };\n\n this.$get = function($window, $document, $rootScope, dimensions, debounce, throttle) {\n\n var windowEl = angular.element($window);\n var docEl = angular.element($document.prop('documentElement'));\n var bodyEl = angular.element($window.document.body);\n\n // Helper functions\n\n function nodeName(element, name) {\n return element[0].nodeName && element[0].nodeName.toLowerCase() === name.toLowerCase();\n }\n\n function ScrollSpyFactory(config) {\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n if(!options.element) options.element = bodyEl;\n var isWindowSpy = nodeName(options.element, 'body');\n var scrollEl = isWindowSpy ? windowEl : options.element;\n var scrollId = isWindowSpy ? 'window' : options.id;\n\n // Use existing spy\n if(spies[scrollId]) {\n spies[scrollId].$$count++;\n return spies[scrollId];\n }\n\n var $scrollspy = {};\n\n // Private vars\n var unbindViewContentLoaded, unbindIncludeContentLoaded;\n var trackedElements = $scrollspy.$trackedElements = [];\n var sortedElements = [];\n var activeTarget;\n var debouncedCheckPosition;\n var throttledCheckPosition;\n var debouncedCheckOffsets;\n var viewportHeight;\n var scrollTop;\n\n $scrollspy.init = function() {\n\n // Setup internal ref counter\n this.$$count = 1;\n\n // Bind events\n debouncedCheckPosition = debounce(this.checkPosition, options.debounce);\n throttledCheckPosition = throttle(this.checkPosition, options.throttle);\n scrollEl.on('click', this.checkPositionWithEventLoop);\n windowEl.on('resize', debouncedCheckPosition);\n scrollEl.on('scroll', throttledCheckPosition);\n\n debouncedCheckOffsets = debounce(this.checkOffsets, options.debounce);\n unbindViewContentLoaded = $rootScope.$on('$viewContentLoaded', debouncedCheckOffsets);\n unbindIncludeContentLoaded = $rootScope.$on('$includeContentLoaded', debouncedCheckOffsets);\n debouncedCheckOffsets();\n\n // Register spy for reuse\n if(scrollId) {\n spies[scrollId] = $scrollspy;\n }\n\n };\n\n $scrollspy.destroy = function() {\n\n // Check internal ref counter\n this.$$count--;\n if(this.$$count > 0) {\n return;\n }\n\n // Unbind events\n scrollEl.off('click', this.checkPositionWithEventLoop);\n windowEl.off('resize', debouncedCheckPosition);\n scrollEl.off('scroll', throttledCheckPosition);\n unbindViewContentLoaded();\n unbindIncludeContentLoaded();\n if (scrollId) {\n delete spies[scrollId];\n }\n };\n\n $scrollspy.checkPosition = function() {\n\n // Not ready yet\n if(!sortedElements.length) return;\n\n // Calculate the scroll position\n scrollTop = (isWindowSpy ? $window.pageYOffset : scrollEl.prop('scrollTop')) || 0;\n\n // Calculate the viewport height for use by the components\n viewportHeight = Math.max($window.innerHeight, docEl.prop('clientHeight'));\n\n // Activate first element if scroll is smaller\n if(scrollTop < sortedElements[0].offsetTop && activeTarget !== sortedElements[0].target) {\n return $scrollspy.$activateElement(sortedElements[0]);\n }\n\n // Activate proper element\n for (var i = sortedElements.length; i--;) {\n if(angular.isUndefined(sortedElements[i].offsetTop) || sortedElements[i].offsetTop === null) continue;\n if(activeTarget === sortedElements[i].target) continue;\n if(scrollTop < sortedElements[i].offsetTop) continue;\n if(sortedElements[i + 1] && scrollTop > sortedElements[i + 1].offsetTop) continue;\n return $scrollspy.$activateElement(sortedElements[i]);\n }\n\n };\n\n $scrollspy.checkPositionWithEventLoop = function() {\n // IE 9 throws an error if we use 'this' instead of '$scrollspy'\n // in this setTimeout call\n setTimeout($scrollspy.checkPosition, 1);\n };\n\n // Protected methods\n\n $scrollspy.$activateElement = function(element) {\n if(activeTarget) {\n var activeElement = $scrollspy.$getTrackedElement(activeTarget);\n if(activeElement) {\n activeElement.source.removeClass('active');\n if(nodeName(activeElement.source, 'li') && nodeName(activeElement.source.parent().parent(), 'li')) {\n activeElement.source.parent().parent().removeClass('active');\n }\n }\n }\n activeTarget = element.target;\n element.source.addClass('active');\n if(nodeName(element.source, 'li') && nodeName(element.source.parent().parent(), 'li')) {\n element.source.parent().parent().addClass('active');\n }\n };\n\n $scrollspy.$getTrackedElement = function(target) {\n return trackedElements.filter(function(obj) {\n return obj.target === target;\n })[0];\n };\n\n // Track offsets behavior\n\n $scrollspy.checkOffsets = function() {\n\n angular.forEach(trackedElements, function(trackedElement) {\n var targetElement = document.querySelector(trackedElement.target);\n trackedElement.offsetTop = targetElement ? dimensions.offset(targetElement).top : null;\n if(options.offset && trackedElement.offsetTop !== null) trackedElement.offsetTop -= options.offset * 1;\n });\n\n sortedElements = trackedElements\n .filter(function(el) {\n return el.offsetTop !== null;\n })\n .sort(function(a, b) {\n return a.offsetTop - b.offsetTop;\n });\n\n debouncedCheckPosition();\n\n };\n\n $scrollspy.trackElement = function(target, source) {\n trackedElements.push({target: target, source: source});\n };\n\n $scrollspy.untrackElement = function(target, source) {\n var toDelete;\n for (var i = trackedElements.length; i--;) {\n if(trackedElements[i].target === target && trackedElements[i].source === source) {\n toDelete = i;\n break;\n }\n }\n trackedElements = trackedElements.splice(toDelete, 1);\n };\n\n $scrollspy.activate = function(i) {\n trackedElements[i].addClass('active');\n };\n\n // Initialize plugin\n\n $scrollspy.init();\n return $scrollspy;\n\n }\n\n return ScrollSpyFactory;\n\n };\n\n })\n\n .directive('bsScrollspy', function($rootScope, debounce, dimensions, $scrollspy) {\n\n return {\n restrict: 'EAC',\n link: function postLink(scope, element, attr) {\n\n var options = {scope: scope};\n angular.forEach(['offset', 'target'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n var scrollspy = $scrollspy(options);\n scrollspy.trackElement(options.target, element);\n\n scope.$on('$destroy', function() {\n if (scrollspy) {\n scrollspy.untrackElement(options.target, element);\n scrollspy.destroy();\n }\n options = null;\n scrollspy = null;\n });\n\n }\n };\n\n })\n\n\n .directive('bsScrollspyList', function($rootScope, debounce, dimensions, $scrollspy) {\n\n return {\n restrict: 'A',\n compile: function postLink(element, attr) {\n var children = element[0].querySelectorAll('li > a[href]');\n angular.forEach(children, function(child) {\n var childEl = angular.element(child);\n childEl.parent().attr('bs-scrollspy', '').attr('data-target', childEl.attr('href'));\n });\n }\n\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.select', ['mgcrea.ngStrap.tooltip', 'mgcrea.ngStrap.helpers.parseOptions'])\n\n .provider('$select', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'select',\n prefixEvent: '$select',\n placement: 'bottom-left',\n templateUrl: 'select/select.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n multiple: false,\n allNoneButtons: false,\n sort: true,\n caretHtml: ' ',\n placeholder: 'Choose among the following...',\n allText: 'All',\n noneText: 'None',\n maxLength: 3,\n maxLengthHtml: 'selected',\n iconCheckmark: 'glyphicon glyphicon-ok'\n };\n\n this.$get = function($window, $document, $rootScope, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n\n function SelectFactory(element, controller, config) {\n\n var $select = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $select = $tooltip(element, options);\n var scope = $select.$scope;\n\n scope.$matches = [];\n if (options.multiple) {\n scope.$activeIndex = [];\n }\n else {\n scope.$activeIndex = -1;\n }\n scope.$isMultiple = options.multiple;\n scope.$showAllNoneButtons = options.allNoneButtons && options.multiple;\n scope.$iconCheckmark = options.iconCheckmark;\n scope.$allText = options.allText;\n scope.$noneText = options.noneText;\n\n scope.$activate = function(index) {\n scope.$$postDigest(function() {\n $select.activate(index);\n });\n };\n\n scope.$select = function(index, evt) {\n scope.$$postDigest(function() {\n $select.select(index);\n });\n };\n\n scope.$isVisible = function() {\n return $select.$isVisible();\n };\n\n scope.$isActive = function(index) {\n return $select.$isActive(index);\n };\n\n scope.$selectAll = function () {\n for (var i = 0; i < scope.$matches.length; i++) {\n if (!scope.$isActive(i)) {\n scope.$select(i);\n }\n }\n };\n\n scope.$selectNone = function () {\n for (var i = 0; i < scope.$matches.length; i++) {\n if (scope.$isActive(i)) {\n scope.$select(i);\n }\n }\n };\n\n // Public methods\n\n $select.update = function(matches) {\n scope.$matches = matches;\n $select.$updateActiveIndex();\n };\n\n $select.activate = function(index) {\n if(options.multiple) {\n $select.$isActive(index) ? scope.$activeIndex.splice(scope.$activeIndex.indexOf(index), 1) : scope.$activeIndex.push(index);\n if(options.sort) scope.$activeIndex.sort(function(a, b) { return a - b; }); // use numeric sort instead of default sort\n } else {\n scope.$activeIndex = index;\n }\n return scope.$activeIndex;\n };\n\n $select.select = function(index) {\n var value = scope.$matches[index].value;\n scope.$apply(function() {\n $select.activate(index);\n if(options.multiple) {\n controller.$setViewValue(scope.$activeIndex.map(function(index) {\n return scope.$matches[index].value;\n }));\n } else {\n controller.$setViewValue(value);\n // Hide if single select\n $select.hide();\n }\n });\n // Emit event\n scope.$emit(options.prefixEvent + '.select', value, index, $select);\n };\n\n // Protected methods\n\n $select.$updateActiveIndex = function() {\n if(controller.$modelValue && scope.$matches.length) {\n if(options.multiple && angular.isArray(controller.$modelValue)) {\n scope.$activeIndex = controller.$modelValue.map(function(value) {\n return $select.$getIndex(value);\n });\n } else {\n scope.$activeIndex = $select.$getIndex(controller.$modelValue);\n }\n } else if(scope.$activeIndex >= scope.$matches.length) {\n scope.$activeIndex = options.multiple ? [] : 0;\n }\n };\n\n $select.$isVisible = function() {\n if(!options.minLength || !controller) {\n return scope.$matches.length;\n }\n // minLength support\n return scope.$matches.length && controller.$viewValue.length >= options.minLength;\n };\n\n $select.$isActive = function(index) {\n if(options.multiple) {\n return scope.$activeIndex.indexOf(index) !== -1;\n } else {\n return scope.$activeIndex === index;\n }\n };\n\n $select.$getIndex = function(value) {\n var l = scope.$matches.length, i = l;\n if(!l) return;\n for(i = l; i--;) {\n if(scope.$matches[i].value === value) break;\n }\n if(i < 0) return;\n return i;\n };\n\n $select.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n targetEl.triggerHandler('click');\n }\n };\n\n $select.$onKeyDown = function(evt) {\n if (!/(9|13|38|40)/.test(evt.keyCode)) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // release focus on tab\n if (options.multiple && evt.keyCode === 9) {\n return $select.hide();\n }\n\n // Select with enter\n if(!options.multiple && (evt.keyCode === 13 || evt.keyCode === 9)) {\n return $select.select(scope.$activeIndex);\n }\n\n if (!options.multiple) {\n // Navigate with keyboard\n if(evt.keyCode === 38 && scope.$activeIndex > 0) scope.$activeIndex--;\n else if(evt.keyCode === 38 && scope.$activeIndex < 0) scope.$activeIndex = scope.$matches.length - 1;\n else if(evt.keyCode === 40 && scope.$activeIndex < scope.$matches.length - 1) scope.$activeIndex++;\n else if(angular.isUndefined(scope.$activeIndex)) scope.$activeIndex = 0;\n scope.$digest();\n }\n };\n\n // Overrides\n\n var _show = $select.show;\n $select.show = function() {\n _show();\n if(options.multiple) {\n $select.$element.addClass('select-multiple');\n }\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n $select.$element.on(isTouch ? 'touchstart' : 'mousedown', $select.$onMouseDown);\n if(options.keyboard) {\n element.on('keydown', $select.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $select.hide;\n $select.hide = function() {\n if(!options.multiple && !controller.$modelValue) {\n scope.$activeIndex = -1;\n }\n $select.$element.off(isTouch ? 'touchstart' : 'mousedown', $select.$onMouseDown);\n if(options.keyboard) {\n element.off('keydown', $select.$onKeyDown);\n }\n _hide(true);\n };\n\n return $select;\n\n }\n\n SelectFactory.defaults = defaults;\n return SelectFactory;\n\n };\n\n })\n\n .directive('bsSelect', function($window, $parse, $q, $select, $parseOptions) {\n\n var defaults = $select.defaults;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope, placeholder: defaults.placeholder};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'placeholder', 'allNoneButtons', 'maxLength', 'maxLengthHtml', 'allText', 'noneText', 'iconCheckmark', 'autoClose', 'id', 'sort', 'caretHtml', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'allNoneButtons', 'sort'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Only parse data-multiple. Angular sets existence attributes to true (multiple/required/etc), they apply this\n // to data-multiple as well for some reason, so we'll parse this ourselves and disregard multiple\n var dataMultiple = element.attr('data-multiple');\n if(angular.isDefined(dataMultiple)) {\n if(falseValueRegExp.test(dataMultiple))\n options.multiple = false;\n else\n options.multiple = dataMultiple;\n }\n\n // Add support for select markup\n if(element[0].nodeName.toLowerCase() === 'select') {\n var inputEl = element;\n inputEl.css('display', 'none');\n element = angular.element('');\n inputEl.after(element);\n }\n\n // Build proper bsOptions\n var parsedOptions = $parseOptions(attr.bsOptions);\n\n // Initialize select\n var select = $select(element, controller, options);\n\n // Watch bsOptions values before filtering for changes\n var watchedOptions = parsedOptions.$match[7].replace(/\\|.+/, '').trim();\n scope.$watchCollection(watchedOptions, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', watchedOptions, newValue, oldValue);\n parsedOptions.valuesFn(scope, controller)\n .then(function(values) {\n select.update(values);\n controller.$render();\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.ngModel, newValue, oldValue);\n select.$updateActiveIndex();\n controller.$render();\n }, true);\n\n // Model rendering in view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var selected, index;\n if(options.multiple && angular.isArray(controller.$modelValue)) {\n selected = controller.$modelValue.map(function(value) {\n index = select.$getIndex(value);\n return angular.isDefined(index) ? select.$scope.$matches[index].label : false;\n }).filter(angular.isDefined);\n if(selected.length > (options.maxLength || defaults.maxLength)) {\n selected = selected.length + ' ' + (options.maxLengthHtml || defaults.maxLengthHtml);\n } else {\n selected = selected.join(', ');\n }\n } else {\n index = select.$getIndex(controller.$modelValue);\n selected = angular.isDefined(index) ? select.$scope.$matches[index].label : false;\n }\n element.html((selected ? selected : options.placeholder) + (options.caretHtml ? options.caretHtml : defaults.caretHtml));\n };\n\n if(options.multiple){\n controller.$isEmpty = function(value){\n return !value || value.length === 0;\n };\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (select) select.destroy();\n options = null;\n select = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.popover', ['mgcrea.ngStrap.tooltip'])\n\n .provider('$popover', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n customClass: '',\n // uncommenting the next two lines will break backwards compatability\n // prefixClass: 'popover',\n // prefixEvent: 'popover',\n container: false,\n target: false,\n placement: 'right',\n templateUrl: 'popover/popover.tpl.html',\n contentTemplate: false,\n trigger: 'click',\n keyboard: true,\n html: false,\n title: '',\n content: '',\n delay: 0,\n autoClose: false\n };\n\n this.$get = function($tooltip) {\n\n function PopoverFactory(element, config) {\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n var $popover = $tooltip(element, options);\n\n // Support scope as string options [/*title, */content]\n if(options.content) {\n $popover.$scope.content = options.content;\n }\n\n return $popover;\n\n }\n\n return PopoverFactory;\n\n };\n\n })\n\n .directive('bsPopover', function($window, $sce, $popover) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'customClass', 'autoClose', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoClose'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // should not parse target attribute (anchor tag), only data-target #1454\n var dataTarget = element.attr('data-target');\n if(angular.isDefined(dataTarget)) {\n if(falseValueRegExp.test(dataTarget))\n options.target = false;\n else\n options.target = dataTarget;\n }\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n angular.isDefined(oldValue) && requestAnimationFrame(function() {\n popover && popover.$applyPlacement();\n });\n });\n });\n\n // Support scope as an object\n attr.bsPopover && scope.$watch(attr.bsPopover, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n angular.isDefined(oldValue) && requestAnimationFrame(function() {\n popover && popover.$applyPlacement();\n });\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!popover || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(popover),?/i);\n newValue === true ? popover.show() : popover.hide();\n });\n\n // Viewport support\n attr.viewport && scope.$watch(attr.viewport, function (newValue) {\n if(!popover || !angular.isDefined(newValue)) return;\n popover.setViewport(newValue);\n });\n\n // Initialize popover\n var popover = $popover(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (popover) popover.destroy();\n options = null;\n popover = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.tab', [])\n\n .provider('$tab', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n template: 'tab/tab.tpl.html',\n navClass: 'nav-tabs',\n activeClass: 'active'\n };\n\n var controller = this.controller = function($scope, $element, $attrs) {\n var self = this;\n\n // Attributes options\n self.$options = angular.copy(defaults);\n angular.forEach(['animation', 'navClass', 'activeClass'], function(key) {\n if(angular.isDefined($attrs[key])) self.$options[key] = $attrs[key];\n });\n\n // Publish options on scope\n $scope.$navClass = self.$options.navClass;\n $scope.$activeClass = self.$options.activeClass;\n\n self.$panes = $scope.$panes = [];\n\n // Please use $activePaneChangeListeners if you use `bsActivePane`\n // Because we removed `ngModel` as default, we rename viewChangeListeners to\n // activePaneChangeListeners to make more sense.\n self.$activePaneChangeListeners = self.$viewChangeListeners = [];\n\n self.$push = function(pane) {\n if(angular.isUndefined(self.$panes.$active)) {\n $scope.$setActive(pane.name || 0);\n }\n self.$panes.push(pane);\n };\n\n self.$remove = function(pane) {\n var index = self.$panes.indexOf(pane);\n var active = self.$panes.$active;\n var activeIndex;\n if(angular.isString(active)) {\n activeIndex = self.$panes.map(function(pane) {\n return pane.name;\n }).indexOf(active);\n } else {\n activeIndex = self.$panes.$active;\n }\n\n // remove pane from $panes array\n self.$panes.splice(index, 1);\n\n if (index < activeIndex) {\n // we removed a pane before the active pane, so we need to\n // decrement the active pane index\n activeIndex--;\n }\n else if (index === activeIndex && activeIndex === self.$panes.length) {\n // we remove the active pane and it was the one at the end,\n // so select the previous one\n activeIndex--;\n }\n if(activeIndex >= 0 && activeIndex < self.$panes.length) {\n self.$setActive(self.$panes[activeIndex].name || activeIndex);\n } else {\n self.$setActive();\n }\n };\n\n self.$setActive = $scope.$setActive = function(value) {\n self.$panes.$active = value;\n self.$activePaneChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n self.$isActive = $scope.$isActive = function($pane, $index) {\n return self.$panes.$active === $pane.name || self.$panes.$active === $index;\n };\n\n };\n\n this.$get = function() {\n var $tab = {};\n $tab.defaults = defaults;\n $tab.controller = controller;\n return $tab;\n };\n\n })\n\n .directive('bsTabs', function($window, $animate, $tab, $parse) {\n\n var defaults = $tab.defaults;\n\n return {\n require: ['?ngModel', 'bsTabs'],\n transclude: true,\n scope: true,\n controller: ['$scope', '$element', '$attrs', $tab.controller],\n templateUrl: function(element, attr) {\n return attr.template || defaults.template;\n },\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsTabsCtrl = controllers[1];\n\n // 'ngModel' does interfere with form validation\n // and status, use `bsActivePane` instead to avoid it\n if(ngModelCtrl) {\n\n // Update the modelValue following\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n ngModelCtrl.$setViewValue(bsTabsCtrl.$panes.$active);\n });\n\n // modelValue -> $formatters -> viewValue\n ngModelCtrl.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n bsTabsCtrl.$setActive(modelValue);\n return modelValue;\n });\n\n }\n\n if (attrs.bsActivePane) {\n // adapted from angularjs ngModelController bindings\n // https://github.com/angular/angular.js/blob/v1.3.1/src%2Fng%2Fdirective%2Finput.js#L1730\n var parsedBsActivePane = $parse(attrs.bsActivePane);\n\n // Update bsActivePane value with change\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n parsedBsActivePane.assign(scope, bsTabsCtrl.$panes.$active);\n });\n\n // watch bsActivePane for value changes\n scope.$watch(attrs.bsActivePane, function(newValue, oldValue) {\n bsTabsCtrl.$setActive(newValue);\n }, true);\n }\n }\n };\n\n })\n\n .directive('bsPane', function($window, $animate, $sce) {\n\n return {\n require: ['^?ngModel', '^bsTabs'],\n scope: true,\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsTabsCtrl = controllers[1];\n\n // Add base class\n element.addClass('tab-pane');\n\n // Observe title attribute for change\n attrs.$observe('title', function(newValue, oldValue) {\n scope.title = $sce.trustAsHtml(newValue);\n });\n\n // Save tab name into scope\n scope.name = attrs.name;\n\n // Add animation class\n if(bsTabsCtrl.$options.animation) {\n element.addClass(bsTabsCtrl.$options.animation);\n }\n\n attrs.$observe('disabled', function(newValue, oldValue) {\n scope.disabled = scope.$eval(newValue);\n });\n\n // Push pane to parent bsTabs controller\n bsTabsCtrl.$push(scope);\n\n // remove pane from tab controller when pane is destroyed\n scope.$on('$destroy', function() {\n bsTabsCtrl.$remove(scope);\n });\n\n function render() {\n var index = bsTabsCtrl.$panes.indexOf(scope);\n $animate[bsTabsCtrl.$isActive(scope, index) ? 'addClass' : 'removeClass'](element, bsTabsCtrl.$options.activeClass);\n }\n\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n render();\n });\n render();\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.core', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$tooltip', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n customClass: '',\n prefixClass: 'tooltip',\n prefixEvent: 'tooltip',\n container: false,\n target: false,\n placement: 'top',\n templateUrl: 'tooltip/tooltip.tpl.html',\n template: '',\n contentTemplate: false,\n trigger: 'hover focus',\n keyboard: false,\n html: false,\n show: false,\n title: '',\n type: '',\n delay: 0,\n autoClose: false,\n bsEnabled: true,\n viewport: {\n selector: 'body',\n padding: 0\n }\n };\n\n this.$get = function($window, $rootScope, $bsCompiler, $q, $templateCache, $http, $animate, $sce, dimensions, $$rAF, $timeout) {\n\n var trim = String.prototype.trim;\n var isTouch = 'createTouch' in $window.document;\n var htmlReplaceRegExp = /ng-bind=\"/ig;\n var $body = angular.element($window.document);\n\n function TooltipFactory(element, config) {\n\n var $tooltip = {};\n\n // Common vars\n var options = $tooltip.$options = angular.extend({}, defaults, config);\n var promise = $tooltip.$promise = $bsCompiler.compile(options);\n var scope = $tooltip.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n var nodeName = element[0].nodeName.toLowerCase();\n if(options.delay && angular.isString(options.delay)) {\n var split = options.delay.split(',').map(parseFloat);\n options.delay = split.length > 1 ? {show: split[0], hide: split[1]} : split[0];\n }\n\n // Store $id to identify the triggering element in events\n // give priority to options.id, otherwise, try to use\n // element id if defined\n $tooltip.$id = options.id || element.attr('id') || '';\n\n // Support scope as string options\n if(options.title) {\n scope.title = $sce.trustAsHtml(options.title);\n }\n\n // Provide scope helpers\n scope.$setEnabled = function(isEnabled) {\n scope.$$postDigest(function() {\n $tooltip.setEnabled(isEnabled);\n });\n };\n scope.$hide = function() {\n scope.$$postDigest(function() {\n $tooltip.hide();\n });\n };\n scope.$show = function() {\n scope.$$postDigest(function() {\n $tooltip.show();\n });\n };\n scope.$toggle = function() {\n scope.$$postDigest(function() {\n $tooltip.toggle();\n });\n };\n // Publish isShown as a protected var on scope\n $tooltip.$isShown = scope.$isShown = false;\n\n // Private vars\n var timeout, hoverState;\n\n // Fetch, compile then initialize tooltip\n var compileData, tipElement, tipContainer, tipScope;\n promise.then(function(data) {\n compileData = data;\n $tooltip.init();\n });\n\n $tooltip.init = function() {\n\n // Options: delay\n if (options.delay && angular.isNumber(options.delay)) {\n options.delay = {\n show: options.delay,\n hide: options.delay\n };\n }\n\n // Replace trigger on touch devices ?\n // if(isTouch && options.trigger === defaults.trigger) {\n // options.trigger.replace(/hover/g, 'click');\n // }\n\n // Options : container\n if(options.container === 'self') {\n tipContainer = element;\n } else if(angular.isElement(options.container)) {\n tipContainer = options.container;\n } else if(options.container) {\n tipContainer = findElement(options.container);\n }\n\n // Options: trigger\n bindTriggerEvents();\n\n // Options: target\n if(options.target) {\n options.target = angular.isElement(options.target) ? options.target : findElement(options.target);\n }\n\n // Options: show\n if(options.show) {\n scope.$$postDigest(function() {\n options.trigger === 'focus' ? element[0].focus() : $tooltip.show();\n });\n }\n\n };\n\n $tooltip.destroy = function() {\n\n // Unbind events\n unbindTriggerEvents();\n\n // Remove element\n destroyTipElement();\n\n // Destroy scope\n scope.$destroy();\n\n };\n\n $tooltip.enter = function() {\n\n clearTimeout(timeout);\n hoverState = 'in';\n if (!options.delay || !options.delay.show) {\n return $tooltip.show();\n }\n\n timeout = setTimeout(function() {\n if (hoverState ==='in') $tooltip.show();\n }, options.delay.show);\n\n };\n\n $tooltip.show = function() {\n if (!options.bsEnabled || $tooltip.$isShown) return;\n\n scope.$emit(options.prefixEvent + '.show.before', $tooltip);\n var parent, after;\n if (options.container) {\n parent = tipContainer;\n if (tipContainer[0].lastChild) {\n after = angular.element(tipContainer[0].lastChild);\n } else {\n after = null;\n }\n } else {\n parent = null;\n after = element;\n }\n\n\n // Hide any existing tipElement\n if(tipElement) destroyTipElement();\n // Fetch a cloned element linked from template\n tipScope = $tooltip.$scope.$new();\n tipElement = $tooltip.$element = compileData.link(tipScope, function(clonedElement, scope) {});\n\n // Set the initial positioning. Make the tooltip invisible\n // so IE doesn't try to focus on it off screen.\n tipElement.css({top: '-9999px', left: '-9999px', right: 'auto', display: 'block', visibility: 'hidden'});\n\n // Options: animation\n if(options.animation) tipElement.addClass(options.animation);\n // Options: type\n if(options.type) tipElement.addClass(options.prefixClass + '-' + options.type);\n // Options: custom classes\n if(options.customClass) tipElement.addClass(options.customClass);\n\n // Append the element, without any animations. If we append\n // using $animate.enter, some of the animations cause the placement\n // to be off due to the transforms.\n after ? after.after(tipElement) : parent.prepend(tipElement);\n\n $tooltip.$isShown = scope.$isShown = true;\n safeDigest(scope);\n\n // Now, apply placement\n $tooltip.$applyPlacement();\n\n // Once placed, animate it.\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.enter(tipElement, parent, after, enterAnimateCallback);\n } else {\n $animate.enter(tipElement, parent, after).then(enterAnimateCallback);\n }\n safeDigest(scope);\n\n $$rAF(function () {\n // Once the tooltip is placed and the animation starts, make the tooltip visible\n if(tipElement) tipElement.css({visibility: 'visible'});\n });\n\n // Bind events\n if(options.keyboard) {\n if(options.trigger !== 'focus') {\n $tooltip.focus();\n }\n bindKeyboardEvents();\n }\n\n if(options.autoClose) {\n bindAutoCloseEvents();\n }\n\n };\n\n function enterAnimateCallback() {\n scope.$emit(options.prefixEvent + '.show', $tooltip);\n }\n\n $tooltip.leave = function() {\n\n clearTimeout(timeout);\n hoverState = 'out';\n if (!options.delay || !options.delay.hide) {\n return $tooltip.hide();\n }\n timeout = setTimeout(function () {\n if (hoverState === 'out') {\n $tooltip.hide();\n }\n }, options.delay.hide);\n\n };\n\n var _blur;\n var _tipToHide;\n $tooltip.hide = function(blur) {\n\n if(!$tooltip.$isShown) return;\n scope.$emit(options.prefixEvent + '.hide.before', $tooltip);\n\n // store blur value for leaveAnimateCallback to use\n _blur = blur;\n\n // store current tipElement reference to use\n // in leaveAnimateCallback\n _tipToHide = tipElement;\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.leave(tipElement, leaveAnimateCallback);\n } else {\n $animate.leave(tipElement).then(leaveAnimateCallback);\n }\n\n $tooltip.$isShown = scope.$isShown = false;\n safeDigest(scope);\n\n // Unbind events\n if(options.keyboard && tipElement !== null) {\n unbindKeyboardEvents();\n }\n\n if(options.autoClose && tipElement !== null) {\n unbindAutoCloseEvents();\n }\n };\n\n function leaveAnimateCallback() {\n scope.$emit(options.prefixEvent + '.hide', $tooltip);\n\n // check if current tipElement still references\n // the same element when hide was called\n if (tipElement === _tipToHide) {\n // Allow to blur the input when hidden, like when pressing enter key\n if(_blur && options.trigger === 'focus') {\n return element[0].blur();\n }\n\n // clean up child scopes\n destroyTipElement();\n }\n }\n\n $tooltip.toggle = function() {\n $tooltip.$isShown ? $tooltip.leave() : $tooltip.enter();\n };\n\n $tooltip.focus = function() {\n tipElement[0].focus();\n };\n\n $tooltip.setEnabled = function(isEnabled) {\n options.bsEnabled = isEnabled;\n };\n\n $tooltip.setViewport = function(viewport) {\n options.viewport = viewport;\n };\n\n // Protected methods\n\n $tooltip.$applyPlacement = function() {\n if(!tipElement) return;\n\n // Determine if we're doing an auto or normal placement\n var placement = options.placement,\n autoToken = /\\s?auto?\\s?/i,\n autoPlace = autoToken.test(placement);\n\n if (autoPlace) {\n placement = placement.replace(autoToken, '') || defaults.placement;\n }\n\n // Need to add the position class before we get\n // the offsets\n tipElement.addClass(options.placement);\n\n // Get the position of the target element\n // and the height and width of the tooltip so we can center it.\n var elementPosition = getPosition(),\n tipWidth = tipElement.prop('offsetWidth'),\n tipHeight = tipElement.prop('offsetHeight');\n\n // If we're auto placing, we need to check the positioning\n if (autoPlace) {\n var originalPlacement = placement;\n var container = options.container ? findElement(options.container) : element.parent();\n var containerPosition = getPosition(container);\n\n // Determine if the vertical placement\n if (originalPlacement.indexOf('bottom') >= 0 && elementPosition.bottom + tipHeight > containerPosition.bottom) {\n placement = originalPlacement.replace('bottom', 'top');\n } else if (originalPlacement.indexOf('top') >= 0 && elementPosition.top - tipHeight < containerPosition.top) {\n placement = originalPlacement.replace('top', 'bottom');\n }\n\n // Determine the horizontal placement\n // The exotic placements of left and right are opposite of the standard placements. Their arrows are put on the left/right\n // and flow in the opposite direction of their placement.\n if ((originalPlacement === 'right' || originalPlacement === 'bottom-left' || originalPlacement === 'top-left') &&\n elementPosition.right + tipWidth > containerPosition.width) {\n\n placement = originalPlacement === 'right' ? 'left' : placement.replace('left', 'right');\n } else if ((originalPlacement === 'left' || originalPlacement === 'bottom-right' || originalPlacement === 'top-right') &&\n elementPosition.left - tipWidth < containerPosition.left) {\n\n placement = originalPlacement === 'left' ? 'right' : placement.replace('right', 'left');\n }\n\n tipElement.removeClass(originalPlacement).addClass(placement);\n }\n\n // Get the tooltip's top and left coordinates to center it with this directive.\n var tipPosition = getCalculatedOffset(placement, elementPosition, tipWidth, tipHeight);\n applyPlacement(tipPosition, placement);\n };\n\n $tooltip.$onKeyUp = function(evt) {\n if (evt.which === 27 && $tooltip.$isShown) {\n $tooltip.hide();\n evt.stopPropagation();\n }\n };\n\n $tooltip.$onFocusKeyUp = function(evt) {\n if (evt.which === 27) {\n element[0].blur();\n evt.stopPropagation();\n }\n };\n\n $tooltip.$onFocusElementMouseDown = function(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n // Some browsers do not auto-focus buttons (eg. Safari)\n $tooltip.$isShown ? element[0].blur() : element[0].focus();\n };\n\n // bind/unbind events\n function bindTriggerEvents() {\n var triggers = options.trigger.split(' ');\n angular.forEach(triggers, function(trigger) {\n if(trigger === 'click') {\n element.on('click', $tooltip.toggle);\n } else if(trigger !== 'manual') {\n element.on(trigger === 'hover' ? 'mouseenter' : 'focus', $tooltip.enter);\n element.on(trigger === 'hover' ? 'mouseleave' : 'blur', $tooltip.leave);\n nodeName === 'button' && trigger !== 'hover' && element.on(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);\n }\n });\n }\n\n function unbindTriggerEvents() {\n var triggers = options.trigger.split(' ');\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i];\n if(trigger === 'click') {\n element.off('click', $tooltip.toggle);\n } else if(trigger !== 'manual') {\n element.off(trigger === 'hover' ? 'mouseenter' : 'focus', $tooltip.enter);\n element.off(trigger === 'hover' ? 'mouseleave' : 'blur', $tooltip.leave);\n nodeName === 'button' && trigger !== 'hover' && element.off(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);\n }\n }\n }\n\n function bindKeyboardEvents() {\n if(options.trigger !== 'focus') {\n tipElement.on('keyup', $tooltip.$onKeyUp);\n } else {\n element.on('keyup', $tooltip.$onFocusKeyUp);\n }\n }\n\n function unbindKeyboardEvents() {\n if(options.trigger !== 'focus') {\n tipElement.off('keyup', $tooltip.$onKeyUp);\n } else {\n element.off('keyup', $tooltip.$onFocusKeyUp);\n }\n }\n\n var _autoCloseEventsBinded = false;\n function bindAutoCloseEvents() {\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n // Stop propagation when clicking inside tooltip\n tipElement.on('click', stopEventPropagation);\n\n // Hide when clicking outside tooltip\n $body.on('click', $tooltip.hide);\n\n _autoCloseEventsBinded = true;\n }, 0, false);\n }\n\n function unbindAutoCloseEvents() {\n if (_autoCloseEventsBinded) {\n tipElement.off('click', stopEventPropagation);\n $body.off('click', $tooltip.hide);\n _autoCloseEventsBinded = false;\n }\n }\n\n function stopEventPropagation(event) {\n event.stopPropagation();\n }\n\n // Private methods\n\n function getPosition($element) {\n $element = $element || (options.target || element);\n\n var el = $element[0],\n isBody = el.tagName === 'BODY';\n\n var elRect = el.getBoundingClientRect();\n var rect = {};\n\n // IE8 has issues with angular.extend and using elRect directly.\n // By coping the values of elRect into a new object, we can continue to use extend\n for (var p in elRect) {\n // DO NOT use hasOwnProperty when inspecting the return of getBoundingClientRect.\n rect[p] = elRect[p];\n }\n\n if (rect.width === null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n rect = angular.extend({}, rect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top });\n }\n var elOffset = isBody ? { top: 0, left: 0 } : dimensions.offset(el),\n scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.prop('scrollTop') || 0 },\n outerDims = isBody ? { width: document.documentElement.clientWidth, height: $window.innerHeight } : null;\n\n return angular.extend({}, rect, scroll, outerDims, elOffset);\n }\n\n function getCalculatedOffset(placement, position, actualWidth, actualHeight) {\n var offset;\n var split = placement.split('-');\n\n switch (split[0]) {\n case 'right':\n offset = {\n top: position.top + position.height / 2 - actualHeight / 2,\n left: position.left + position.width\n };\n break;\n case 'bottom':\n offset = {\n top: position.top + position.height,\n left: position.left + position.width / 2 - actualWidth / 2\n };\n break;\n case 'left':\n offset = {\n top: position.top + position.height / 2 - actualHeight / 2,\n left: position.left - actualWidth\n };\n break;\n default:\n offset = {\n top: position.top - actualHeight,\n left: position.left + position.width / 2 - actualWidth / 2\n };\n break;\n }\n\n if(!split[1]) {\n return offset;\n }\n\n // Add support for corners @todo css\n if(split[0] === 'top' || split[0] === 'bottom') {\n switch (split[1]) {\n case 'left':\n offset.left = position.left;\n break;\n case 'right':\n offset.left = position.left + position.width - actualWidth;\n }\n } else if(split[0] === 'left' || split[0] === 'right') {\n switch (split[1]) {\n case 'top':\n offset.top = position.top - actualHeight;\n break;\n case 'bottom':\n offset.top = position.top + position.height;\n }\n }\n\n return offset;\n }\n\n function applyPlacement(offset, placement) {\n var tip = tipElement[0],\n width = tip.offsetWidth,\n height = tip.offsetHeight;\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt(dimensions.css(tip, 'margin-top'), 10),\n marginLeft = parseInt(dimensions.css(tip, 'margin-left'), 10);\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0;\n if (isNaN(marginLeft)) marginLeft = 0;\n\n offset.top = offset.top + marginTop;\n offset.left = offset.left + marginLeft;\n\n // dimensions setOffset doesn't round pixel values\n // so we use setOffset directly with our own function\n dimensions.setOffset(tip, angular.extend({\n using: function (props) {\n tipElement.css({\n top: Math.round(props.top) + 'px',\n left: Math.round(props.left) + 'px',\n right: ''\n });\n }\n }, offset), 0);\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = tip.offsetWidth,\n actualHeight = tip.offsetHeight;\n\n if (placement === 'top' && actualHeight !== height) {\n offset.top = offset.top + height - actualHeight;\n }\n\n // If it's an exotic placement, exit now instead of\n // applying a delta and changing the arrow\n if (/top-left|top-right|bottom-left|bottom-right/.test(placement)) return;\n\n var delta = getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight);\n\n if (delta.left) {\n offset.left += delta.left;\n } else {\n offset.top += delta.top;\n }\n\n dimensions.setOffset(tip, offset);\n\n if (/top|right|bottom|left/.test(placement)) {\n var isVertical = /top|bottom/.test(placement),\n arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight,\n arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight';\n\n replaceArrow(arrowDelta, tip[arrowOffsetPosition], isVertical);\n }\n }\n\n function getViewportAdjustedDelta(placement, position, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 },\n $viewport = options.viewport && findElement(options.viewport.selector || options.viewport);\n\n if (!$viewport) {\n return delta;\n }\n\n var viewportPadding = options.viewport && options.viewport.padding || 0,\n viewportDimensions = getPosition($viewport);\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = position.top - viewportPadding - viewportDimensions.scroll,\n bottomEdgeOffset = position.top + viewportPadding - viewportDimensions.scroll + actualHeight;\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset;\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset;\n }\n } else {\n var leftEdgeOffset = position.left - viewportPadding,\n rightEdgeOffset = position.left + viewportPadding + actualWidth;\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset;\n } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset;\n }\n }\n\n return delta;\n }\n\n function replaceArrow(delta, dimension, isHorizontal) {\n var $arrow = findElement('.tooltip-arrow, .arrow', tipElement[0]);\n\n $arrow.css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isHorizontal ? 'top' : 'left', '');\n }\n\n function destroyTipElement() {\n // Cancel pending callbacks\n clearTimeout(timeout);\n\n if($tooltip.$isShown && tipElement !== null) {\n if(options.autoClose) {\n unbindAutoCloseEvents();\n }\n\n if(options.keyboard) {\n unbindKeyboardEvents();\n }\n }\n\n if(tipScope) {\n tipScope.$destroy();\n tipScope = null;\n }\n\n if(tipElement) {\n tipElement.remove();\n tipElement = $tooltip.$element = null;\n }\n }\n\n return $tooltip;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n var fetchPromises = {};\n function fetchTemplate(template) {\n if(fetchPromises[template]) return fetchPromises[template];\n return (fetchPromises[template] = $http.get(template, {cache: $templateCache}).then(function(res) {\n return res.data;\n }));\n }\n\n return TooltipFactory;\n\n };\n\n })\n\n .directive('bsTooltip', function($window, $location, $sce, $tooltip, $$rAF) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'backdropAnimation', 'type', 'customClass', 'id'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // should not parse target attribute (anchor tag), only data-target #1454\n var dataTarget = element.attr('data-target');\n if(angular.isDefined(dataTarget)) {\n if(falseValueRegExp.test(dataTarget))\n options.target = false;\n else\n options.target = dataTarget;\n }\n\n // overwrite inherited title value when no value specified\n // fix for angular 1.3.1 531a8de72c439d8ddd064874bf364c00cedabb11\n if (!scope.hasOwnProperty('title')){\n scope.title = '';\n }\n\n // Observe scope attributes for change\n attr.$observe('title', function(newValue) {\n if (angular.isDefined(newValue) || !scope.hasOwnProperty('title')) {\n var oldValue = scope.title;\n scope.title = $sce.trustAsHtml(newValue);\n angular.isDefined(oldValue) && $$rAF(function() {\n tooltip && tooltip.$applyPlacement();\n });\n }\n });\n\n // Support scope as an object\n attr.bsTooltip && scope.$watch(attr.bsTooltip, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.title = newValue;\n }\n angular.isDefined(oldValue) && $$rAF(function() {\n tooltip && tooltip.$applyPlacement();\n });\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!tooltip || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(tooltip),?/i);\n newValue === true ? tooltip.show() : tooltip.hide();\n });\n\n // Enabled binding support\n attr.bsEnabled && scope.$watch(attr.bsEnabled, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.bsEnabled, newValue, oldValue);\n if(!tooltip || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|1|,?(tooltip),?/i);\n newValue === false ? tooltip.setEnabled(false) : tooltip.setEnabled(true);\n });\n\n // Viewport support\n attr.viewport && scope.$watch(attr.viewport, function (newValue) {\n if(!tooltip || !angular.isDefined(newValue)) return;\n tooltip.setViewport(newValue);\n });\n\n // Initialize popover\n var tooltip = $tooltip(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if(tooltip) tooltip.destroy();\n options = null;\n tooltip = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.timepicker', [\n 'mgcrea.ngStrap.helpers.dateParser',\n 'mgcrea.ngStrap.helpers.dateFormatter',\n 'mgcrea.ngStrap.tooltip'])\n\n .provider('$timepicker', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n //uncommenting the following line will break backwards compatability\n // prefixEvent: 'timepicker',\n prefixClass: 'timepicker',\n placement: 'bottom-left',\n templateUrl: 'timepicker/timepicker.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n // lang: $locale.id,\n useNative: true,\n timeType: 'date',\n timeFormat: 'shortTime',\n timezone: null,\n modelTimeFormat: null,\n autoclose: false,\n minTime: -Infinity,\n maxTime: +Infinity,\n length: 5,\n hourStep: 1,\n minuteStep: 5,\n secondStep: 5,\n roundDisplay: false,\n iconUp: 'glyphicon glyphicon-chevron-up',\n iconDown: 'glyphicon glyphicon-chevron-down',\n arrowBehavior: 'pager'\n };\n\n this.$get = function($window, $document, $rootScope, $sce, $dateFormatter, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n if(!defaults.lang) defaults.lang = $dateFormatter.getDefaultLocale();\n\n function timepickerFactory(element, controller, config) {\n\n var $timepicker = $tooltip(element, angular.extend({}, defaults, config));\n var parentScope = config.scope;\n var options = $timepicker.$options;\n var scope = $timepicker.$scope;\n\n var lang = options.lang;\n var formatDate = function(date, format, timezone) {\n return $dateFormatter.formatDate(date, format, lang, timezone);\n };\n\n function floorMinutes(time)\n {\n // coeff used to floor current time to nearest minuteStep interval\n var coeff = 1000 * 60 * options.minuteStep;\n return new Date(Math.floor(time.getTime() / coeff) * coeff);\n }\n\n // View vars\n\n var selectedIndex = 0;\n var defaultDate = options.roundDisplay ? floorMinutes(new Date()) : new Date();\n var startDate = controller.$dateValue || defaultDate;\n var viewDate = {hour: startDate.getHours(), meridian: startDate.getHours() < 12, minute: startDate.getMinutes(), second: startDate.getSeconds(), millisecond: startDate.getMilliseconds()};\n\n var format = $dateFormatter.getDatetimeFormat(options.timeFormat, lang);\n\n var hoursFormat = $dateFormatter.hoursFormat(format),\n timeSeparator = $dateFormatter.timeSeparator(format),\n minutesFormat = $dateFormatter.minutesFormat(format),\n secondsFormat = $dateFormatter.secondsFormat(format),\n showSeconds = $dateFormatter.showSeconds(format),\n showAM = $dateFormatter.showAM(format);\n\n scope.$iconUp = options.iconUp;\n scope.$iconDown = options.iconDown;\n\n // Scope methods\n\n scope.$select = function(date, index) {\n $timepicker.select(date, index);\n };\n scope.$moveIndex = function(value, index) {\n $timepicker.$moveIndex(value, index);\n };\n scope.$switchMeridian = function(date) {\n $timepicker.switchMeridian(date);\n };\n\n // Public methods\n\n $timepicker.update = function(date) {\n // console.warn('$timepicker.update() newValue=%o', date);\n if(angular.isDate(date) && !isNaN(date.getTime())) {\n $timepicker.$date = date;\n angular.extend(viewDate, {hour: date.getHours(), minute: date.getMinutes(), second: date.getSeconds(), millisecond: date.getMilliseconds()});\n $timepicker.$build();\n } else if(!$timepicker.$isBuilt) {\n $timepicker.$build();\n }\n };\n\n $timepicker.select = function(date, index, keep) {\n // console.warn('$timepicker.select', date, scope.$mode);\n if(!controller.$dateValue || isNaN(controller.$dateValue.getTime())) controller.$dateValue = new Date(1970, 0, 1);\n if(!angular.isDate(date)) date = new Date(date);\n if(index === 0) controller.$dateValue.setHours(date.getHours());\n else if(index === 1) controller.$dateValue.setMinutes(date.getMinutes());\n else if(index === 2) controller.$dateValue.setSeconds(date.getSeconds());\n controller.$setViewValue(angular.copy(controller.$dateValue));\n controller.$render();\n if(options.autoclose && !keep) {\n $timeout(function() { $timepicker.hide(true); });\n }\n };\n\n $timepicker.switchMeridian = function(date) {\n if (!controller.$dateValue || isNaN(controller.$dateValue.getTime())) {\n return;\n }\n var hours = (date || controller.$dateValue).getHours();\n controller.$dateValue.setHours(hours < 12 ? hours + 12 : hours - 12);\n controller.$setViewValue(angular.copy(controller.$dateValue));\n controller.$render();\n };\n\n // Protected methods\n\n $timepicker.$build = function() {\n // console.warn('$timepicker.$build() viewDate=%o', viewDate);\n var i, midIndex = scope.midIndex = parseInt(options.length / 2, 10);\n var hours = [], hour;\n for(i = 0; i < options.length; i++) {\n hour = new Date(1970, 0, 1, viewDate.hour - (midIndex - i) * options.hourStep);\n hours.push({date: hour, label: formatDate(hour, hoursFormat), selected: $timepicker.$date && $timepicker.$isSelected(hour, 0), disabled: $timepicker.$isDisabled(hour, 0)});\n }\n var minutes = [], minute;\n for(i = 0; i < options.length; i++) {\n minute = new Date(1970, 0, 1, 0, viewDate.minute - (midIndex - i) * options.minuteStep);\n minutes.push({date: minute, label: formatDate(minute, minutesFormat), selected: $timepicker.$date && $timepicker.$isSelected(minute, 1), disabled: $timepicker.$isDisabled(minute, 1)});\n }\n var seconds = [], second;\n for(i = 0; i < options.length; i++) {\n second = new Date(1970, 0, 1, 0, 0, viewDate.second - (midIndex - i) * options.secondStep);\n seconds.push({date: second, label: formatDate(second, secondsFormat), selected: $timepicker.$date && $timepicker.$isSelected(second, 2), disabled: $timepicker.$isDisabled(second, 2)});\n }\n\n var rows = [];\n for(i = 0; i < options.length; i++) {\n if (showSeconds) {\n rows.push([hours[i], minutes[i], seconds[i]]);\n } else {\n rows.push([hours[i], minutes[i]]);\n }\n }\n scope.rows = rows;\n scope.showSeconds = showSeconds;\n scope.showAM = showAM;\n scope.isAM = ($timepicker.$date || hours[midIndex].date).getHours() < 12;\n scope.timeSeparator = timeSeparator;\n $timepicker.$isBuilt = true;\n };\n\n $timepicker.$isSelected = function(date, index) {\n if(!$timepicker.$date) return false;\n else if(index === 0) {\n return date.getHours() === $timepicker.$date.getHours();\n } else if(index === 1) {\n return date.getMinutes() === $timepicker.$date.getMinutes();\n } else if(index === 2) {\n return date.getSeconds() === $timepicker.$date.getSeconds();\n }\n };\n\n $timepicker.$isDisabled = function(date, index) {\n var selectedTime;\n if(index === 0) {\n selectedTime = date.getTime() + viewDate.minute * 6e4 + viewDate.second * 1e3;\n } else if(index === 1) {\n selectedTime = date.getTime() + viewDate.hour * 36e5 + viewDate.second * 1e3;\n } else if(index === 2) {\n selectedTime = date.getTime() + viewDate.hour * 36e5 + viewDate.minute * 6e4;\n }\n return selectedTime < options.minTime * 1 || selectedTime > options.maxTime * 1;\n };\n\n scope.$arrowAction = function (value, index) {\n if (options.arrowBehavior === 'picker') {\n $timepicker.$setTimeByStep(value,index);\n } else {\n $timepicker.$moveIndex(value,index);\n }\n };\n\n $timepicker.$setTimeByStep = function(value, index) {\n var newDate = new Date($timepicker.$date);\n var hours = newDate.getHours(), hoursLength = formatDate(newDate, hoursFormat).length;\n var minutes = newDate.getMinutes(), minutesLength = formatDate(newDate, minutesFormat).length;\n var seconds = newDate.getSeconds(), secondsLength = formatDate(newDate, secondsFormat).length;\n if (index === 0) {\n newDate.setHours(hours - (parseInt(options.hourStep, 10) * value));\n }\n else if (index === 1) {\n newDate.setMinutes(minutes - (parseInt(options.minuteStep, 10) * value));\n }\n else if (index === 2) {\n newDate.setSeconds(seconds - (parseInt(options.secondStep, 10) * value));\n }\n $timepicker.select(newDate, index, true);\n };\n\n $timepicker.$moveIndex = function(value, index) {\n var targetDate;\n if(index === 0) {\n targetDate = new Date(1970, 0, 1, viewDate.hour + (value * options.length), viewDate.minute, viewDate.second);\n angular.extend(viewDate, {hour: targetDate.getHours()});\n } else if(index === 1) {\n targetDate = new Date(1970, 0, 1, viewDate.hour, viewDate.minute + (value * options.length * options.minuteStep), viewDate.second);\n angular.extend(viewDate, {minute: targetDate.getMinutes()});\n } else if(index === 2) {\n targetDate = new Date(1970, 0, 1, viewDate.hour, viewDate.minute, viewDate.second + (value * options.length * options.secondStep));\n angular.extend(viewDate, {second: targetDate.getSeconds()});\n }\n $timepicker.$build();\n };\n\n $timepicker.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n if(evt.target.nodeName.toLowerCase() !== 'input') evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n if(targetEl[0].nodeName.toLowerCase() !== 'button') {\n targetEl = targetEl.parent();\n }\n targetEl.triggerHandler('click');\n }\n };\n\n $timepicker.$onKeyDown = function(evt) {\n if (!/(38|37|39|40|13)/.test(evt.keyCode) || evt.shiftKey || evt.altKey) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // Close on enter\n if(evt.keyCode === 13) return $timepicker.hide(true);\n\n // Navigate with keyboard\n var newDate = new Date($timepicker.$date);\n var hours = newDate.getHours(), hoursLength = formatDate(newDate, hoursFormat).length;\n var minutes = newDate.getMinutes(), minutesLength = formatDate(newDate, minutesFormat).length;\n var seconds = newDate.getSeconds(), secondsLength = formatDate(newDate, secondsFormat).length;\n var sepLength = 1;\n var lateralMove = /(37|39)/.test(evt.keyCode);\n var count = 2 + showSeconds * 1 + showAM * 1;\n\n // Navigate indexes (left, right)\n if (lateralMove) {\n if(evt.keyCode === 37) selectedIndex = selectedIndex < 1 ? count - 1 : selectedIndex - 1;\n else if(evt.keyCode === 39) selectedIndex = selectedIndex < count - 1 ? selectedIndex + 1 : 0;\n }\n\n // Update values (up, down)\n var selectRange = [0, hoursLength];\n var incr = 0;\n if (evt.keyCode === 38) incr = -1;\n if (evt.keyCode === 40) incr = +1;\n var isSeconds = selectedIndex === 2 && showSeconds;\n var isMeridian = selectedIndex === 2 && !showSeconds || selectedIndex === 3 && showSeconds;\n if(selectedIndex === 0) {\n newDate.setHours(hours + incr*parseInt(options.hourStep, 10));\n // re-calculate hours length because we have changed hours value\n hoursLength = formatDate(newDate, hoursFormat).length;\n selectRange = [0, hoursLength];\n } else if(selectedIndex === 1) {\n newDate.setMinutes(minutes + incr*parseInt(options.minuteStep, 10));\n // re-calculate minutes length because we have changes minutes value\n minutesLength = formatDate(newDate, minutesFormat).length;\n selectRange = [hoursLength + sepLength, minutesLength];\n } else if(isSeconds) {\n newDate.setSeconds(seconds + incr*parseInt(options.secondStep, 10));\n // re-calculate seconds length because we have changes seconds value\n secondsLength = formatDate(newDate, secondsFormat).length;\n selectRange = [hoursLength + sepLength + minutesLength + sepLength, secondsLength];\n } else if(isMeridian) {\n if(!lateralMove) $timepicker.switchMeridian();\n selectRange = [hoursLength + sepLength + minutesLength + sepLength + (secondsLength + sepLength)*showSeconds, 2];\n }\n $timepicker.select(newDate, selectedIndex, true);\n createSelection(selectRange[0], selectRange[1]);\n parentScope.$digest();\n };\n\n // Private\n\n function createSelection(start, length) {\n var end = start + length;\n if(element[0].createTextRange) {\n var selRange = element[0].createTextRange();\n selRange.collapse(true);\n selRange.moveStart('character', start);\n selRange.moveEnd('character', end);\n selRange.select();\n } else if(element[0].setSelectionRange) {\n element[0].setSelectionRange(start, end);\n } else if(angular.isUndefined(element[0].selectionStart)) {\n element[0].selectionStart = start;\n element[0].selectionEnd = end;\n }\n }\n\n function focusElement() {\n element[0].focus();\n }\n\n // Overrides\n\n var _init = $timepicker.init;\n $timepicker.init = function() {\n if(isNative && options.useNative) {\n element.prop('type', 'time');\n element.css('-webkit-appearance', 'textfield');\n return;\n } else if(isTouch) {\n element.prop('type', 'text');\n element.attr('readonly', 'true');\n element.on('click', focusElement);\n }\n _init();\n };\n\n var _destroy = $timepicker.destroy;\n $timepicker.destroy = function() {\n if(isNative && options.useNative) {\n element.off('click', focusElement);\n }\n _destroy();\n };\n\n var _show = $timepicker.show;\n $timepicker.show = function() {\n _show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n $timepicker.$element && $timepicker.$element.on(isTouch ? 'touchstart' : 'mousedown', $timepicker.$onMouseDown);\n if(options.keyboard) {\n element && element.on('keydown', $timepicker.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $timepicker.hide;\n $timepicker.hide = function(blur) {\n if(!$timepicker.$isShown) return;\n $timepicker.$element && $timepicker.$element.off(isTouch ? 'touchstart' : 'mousedown', $timepicker.$onMouseDown);\n if(options.keyboard) {\n element && element.off('keydown', $timepicker.$onKeyDown);\n }\n _hide(blur);\n };\n\n return $timepicker;\n\n }\n\n timepickerFactory.defaults = defaults;\n return timepickerFactory;\n\n };\n\n })\n\n\n .directive('bsTimepicker', function($window, $parse, $q, $dateFormatter, $dateParser, $timepicker) {\n\n var defaults = $timepicker.defaults;\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'autoclose', 'timeType', 'timeFormat', 'timezone', 'modelTimeFormat', 'useNative', 'hourStep', 'minuteStep', 'secondStep', 'length', 'arrowBehavior', 'iconUp', 'iconDown', 'roundDisplay', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoclose', 'useNative', 'roundDisplay'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!timepicker || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(timepicker),?/i);\n newValue === true ? timepicker.show() : timepicker.hide();\n });\n\n // Initialize timepicker\n if(isNative && (options.useNative || defaults.useNative)) options.timeFormat = 'HH:mm';\n var timepicker = $timepicker(element, controller, options);\n options = timepicker.$options;\n\n var lang = options.lang;\n var formatDate = function(date, format, timezone) {\n return $dateFormatter.formatDate(date, format, lang, timezone);\n };\n\n // Initialize parser\n var dateParser = $dateParser({format: options.timeFormat, lang: lang});\n\n // Observe attributes for changes\n angular.forEach(['minTime', 'maxTime'], function(key) {\n // console.warn('attr.$observe(%s)', key, attr[key]);\n angular.isDefined(attr[key]) && attr.$observe(key, function(newValue) {\n timepicker.$options[key] = dateParser.getTimeForAttribute(key, newValue);\n !isNaN(timepicker.$options[key]) && timepicker.$build();\n validateAgainstMinMaxTime(controller.$dateValue);\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.ngModel, newValue, oldValue, controller.$dateValue);\n timepicker.update(controller.$dateValue);\n }, true);\n\n function validateAgainstMinMaxTime(parsedTime) {\n if (!angular.isDate(parsedTime)) return;\n var isMinValid = isNaN(options.minTime) || new Date(parsedTime.getTime()).setFullYear(1970, 0, 1) >= options.minTime;\n var isMaxValid = isNaN(options.maxTime) || new Date(parsedTime.getTime()).setFullYear(1970, 0, 1) <= options.maxTime;\n var isValid = isMinValid && isMaxValid;\n controller.$setValidity('date', isValid);\n controller.$setValidity('min', isMinValid);\n controller.$setValidity('max', isMaxValid);\n // Only update the model when we have a valid date\n if(!isValid) {\n return;\n }\n controller.$dateValue = parsedTime;\n }\n\n // viewValue -> $parsers -> modelValue\n controller.$parsers.unshift(function(viewValue) {\n // console.warn('$parser(\"%s\"): viewValue=%o', element.attr('ng-model'), viewValue);\n var date;\n // Null values should correctly reset the model value & validity\n if(!viewValue) {\n // BREAKING CHANGE:\n // return null (not undefined) when input value is empty, so angularjs 1.3\n // ngModelController can go ahead and run validators, like ngRequired\n controller.$setValidity('date', true);\n return null;\n }\n var parsedTime = angular.isDate(viewValue) ? viewValue : dateParser.parse(viewValue, controller.$dateValue);\n if(!parsedTime || isNaN(parsedTime.getTime())) {\n controller.$setValidity('date', false);\n // return undefined, causes ngModelController to\n // invalidate model value\n return;\n } else {\n validateAgainstMinMaxTime(parsedTime);\n }\n\n if(options.timeType === 'string') {\n date = dateParser.timezoneOffsetAdjust(parsedTime, options.timezone, true);\n return formatDate(date, options.modelTimeFormat || options.timeFormat);\n }\n date = dateParser.timezoneOffsetAdjust(controller.$dateValue, options.timezone, true);\n if(options.timeType === 'number') {\n return date.getTime();\n } else if(options.timeType === 'unix') {\n return date.getTime() / 1000;\n } else if(options.timeType === 'iso') {\n return date.toISOString();\n } else {\n return new Date(date);\n }\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var date;\n if(angular.isUndefined(modelValue) || modelValue === null) {\n date = NaN;\n } else if(angular.isDate(modelValue)) {\n date = modelValue;\n } else if(options.timeType === 'string') {\n date = dateParser.parse(modelValue, null, options.modelTimeFormat);\n } else if(options.timeType === 'unix') {\n date = new Date(modelValue * 1000);\n } else {\n date = new Date(modelValue);\n }\n // Setup default value?\n // if(isNaN(date.getTime())) date = new Date(new Date().setMinutes(0) + 36e5);\n controller.$dateValue = dateParser.timezoneOffsetAdjust(date, options.timezone);\n return getTimeFormattedString();\n });\n\n // viewValue -> element\n controller.$render = function() {\n // console.warn('$render(\"%s\"): viewValue=%o', element.attr('ng-model'), controller.$viewValue);\n element.val(getTimeFormattedString());\n };\n\n function getTimeFormattedString() {\n return !controller.$dateValue || isNaN(controller.$dateValue.getTime()) ? '' : formatDate(controller.$dateValue, options.timeFormat);\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (timepicker) timepicker.destroy();\n options = null;\n timepicker = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.typeahead', ['mgcrea.ngStrap.tooltip', 'mgcrea.ngStrap.helpers.parseOptions'])\n\n .provider('$typeahead', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'typeahead',\n prefixEvent: '$typeahead',\n placement: 'bottom-left',\n templateUrl: 'typeahead/typeahead.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n minLength: 1,\n filter: 'filter',\n limit: 6,\n autoSelect: false,\n comparator: '',\n trimValue: true\n };\n\n this.$get = function($window, $rootScope, $tooltip, $$rAF, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n\n function TypeaheadFactory(element, controller, config) {\n\n var $typeahead = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $typeahead = $tooltip(element, options);\n var parentScope = config.scope;\n var scope = $typeahead.$scope;\n\n scope.$resetMatches = function(){\n scope.$matches = [];\n scope.$activeIndex = options.autoSelect ? 0 : -1; // If set to 0, the first match will be highlighted\n };\n scope.$resetMatches();\n\n scope.$activate = function(index) {\n scope.$$postDigest(function() {\n $typeahead.activate(index);\n });\n };\n\n scope.$select = function(index, evt) {\n scope.$$postDigest(function() {\n $typeahead.select(index);\n });\n };\n\n scope.$isVisible = function() {\n return $typeahead.$isVisible();\n };\n\n // Public methods\n\n $typeahead.update = function(matches) {\n scope.$matches = matches;\n if(scope.$activeIndex >= matches.length) {\n scope.$activeIndex = options.autoSelect ? 0: -1;\n }\n\n // wrap in a $timeout so the results are updated\n // before repositioning\n safeDigest(scope);\n $$rAF($typeahead.$applyPlacement);\n };\n\n $typeahead.activate = function(index) {\n scope.$activeIndex = index;\n };\n\n $typeahead.select = function(index) {\n if(index === -1) return;\n var value = scope.$matches[index].value;\n // console.log('$setViewValue', value);\n controller.$setViewValue(value);\n controller.$render();\n scope.$resetMatches();\n if(parentScope) parentScope.$digest();\n // Emit event\n scope.$emit(options.prefixEvent + '.select', value, index, $typeahead);\n };\n\n // Protected methods\n\n $typeahead.$isVisible = function() {\n if(!options.minLength || !controller) {\n return !!scope.$matches.length;\n }\n // minLength support\n return scope.$matches.length && angular.isString(controller.$viewValue) && controller.$viewValue.length >= options.minLength;\n };\n\n $typeahead.$getIndex = function(value) {\n var l = scope.$matches.length, i = l;\n if(!l) return;\n for(i = l; i--;) {\n if(scope.$matches[i].value === value) break;\n }\n if(i < 0) return;\n return i;\n };\n\n $typeahead.$onMouseDown = function(evt) {\n // Prevent blur on mousedown\n evt.preventDefault();\n evt.stopPropagation();\n };\n\n $typeahead.$onKeyDown = function(evt) {\n if(!/(38|40|13)/.test(evt.keyCode)) return;\n\n // Let ngSubmit pass if the typeahead tip is hidden or no option is selected\n if($typeahead.$isVisible() && !(evt.keyCode === 13 && scope.$activeIndex === -1)) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n\n // Select with enter\n if(evt.keyCode === 13 && scope.$matches.length) {\n $typeahead.select(scope.$activeIndex);\n }\n\n // Navigate with keyboard\n else if(evt.keyCode === 38 && scope.$activeIndex > 0) scope.$activeIndex--;\n else if(evt.keyCode === 40 && scope.$activeIndex < scope.$matches.length - 1) scope.$activeIndex++;\n else if(angular.isUndefined(scope.$activeIndex)) scope.$activeIndex = 0;\n scope.$digest();\n };\n\n // Overrides\n\n var show = $typeahead.show;\n $typeahead.show = function() {\n show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed immediately.\n $timeout(function() {\n $typeahead.$element && $typeahead.$element.on('mousedown', $typeahead.$onMouseDown);\n if(options.keyboard) {\n element && element.on('keydown', $typeahead.$onKeyDown);\n }\n }, 0, false);\n };\n\n var hide = $typeahead.hide;\n $typeahead.hide = function() {\n $typeahead.$element && $typeahead.$element.off('mousedown', $typeahead.$onMouseDown);\n if(options.keyboard) {\n element && element.off('keydown', $typeahead.$onKeyDown);\n }\n if(!options.autoSelect)\n $typeahead.activate(-1);\n hide();\n };\n\n return $typeahead;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n TypeaheadFactory.defaults = defaults;\n return TypeaheadFactory;\n\n };\n\n })\n\n .directive('bsTypeahead', function($window, $parse, $q, $typeahead, $parseOptions) {\n\n var defaults = $typeahead.defaults;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'filter', 'limit', 'minLength', 'watchOptions', 'selectMode', 'autoSelect', 'comparator', 'id', 'prefixEvent', 'prefixClass'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'trimValue'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key])) options[key] = false;\n });\n\n // Disable browser autocompletion\n element.attr('autocomplete' ,'false');\n\n // Build proper bsOptions\n var filter = options.filter || defaults.filter;\n var limit = options.limit || defaults.limit;\n var comparator = options.comparator || defaults.comparator;\n\n var bsOptions = attr.bsOptions;\n if(filter) bsOptions += ' | ' + filter + ':$viewValue';\n if (comparator) bsOptions += ':' + comparator;\n if(limit) bsOptions += ' | limitTo:' + limit;\n var parsedOptions = $parseOptions(bsOptions);\n\n // Initialize typeahead\n var typeahead = $typeahead(element, controller, options);\n\n // Watch options on demand\n if(options.watchOptions) {\n // Watch bsOptions values before filtering for changes, drop function calls\n var watchedOptions = parsedOptions.$match[7].replace(/\\|.+/, '').replace(/\\(.*\\)/g, '').trim();\n scope.$watchCollection(watchedOptions, function (newValue, oldValue) {\n // console.warn('scope.$watch(%s)', watchedOptions, newValue, oldValue);\n parsedOptions.valuesFn(scope, controller).then(function (values) {\n typeahead.update(values);\n controller.$render();\n });\n });\n }\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('$watch', element.attr('ng-model'), newValue);\n scope.$modelValue = newValue; // Publish modelValue on scope for custom templates\n parsedOptions.valuesFn(scope, controller)\n .then(function(values) {\n // Prevent input with no future prospect if selectMode is truthy\n // @TODO test selectMode\n if(options.selectMode && !values.length && newValue.length > 0) {\n controller.$setViewValue(controller.$viewValue.substring(0, controller.$viewValue.length - 1));\n return;\n }\n if(values.length > limit) values = values.slice(0, limit);\n var isVisible = typeahead.$isVisible();\n isVisible && typeahead.update(values);\n // Do not re-queue an update if a correct value has been selected\n if(values.length === 1 && values[0].value === newValue) return;\n !isVisible && typeahead.update(values);\n // Queue a new rendering that will leverage collection loading\n controller.$render();\n });\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var displayValue = parsedOptions.displayValue(modelValue);\n\n // If we can determine the displayValue, use that\n if (displayValue) return displayValue;\n\n // If there's no display value, attempt to use the modelValue.\n // If the model is an object not much we can do\n if (modelValue && typeof modelValue !== 'object') {\n return modelValue;\n }\n return '';\n });\n\n // Model rendering in view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n if(controller.$isEmpty(controller.$viewValue)) return element.val('');\n var index = typeahead.$getIndex(controller.$modelValue);\n var selected = angular.isDefined(index) ? typeahead.$scope.$matches[index].label : controller.$viewValue;\n selected = angular.isObject(selected) ? parsedOptions.displayValue(selected) : selected;\n var value = selected ? selected.toString().replace(/<(?:.|\\n)*?>/gm, '') : '';\n element.val(options.trimValue === false ? value : value.trim());\n };\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (typeahead) typeahead.destroy();\n options = null;\n typeahead = null;\n });\n\n }\n };\n\n });\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["angular-strap.js","helpers/compiler.js","helpers/date-formatter.js","affix/affix.js","alert/alert.js","aside/aside.js","button/button.js","collapse/collapse.js","datepicker/datepicker.js","dropdown/dropdown.js","helpers/date-parser.js","helpers/debounce.js","helpers/dimensions.js","helpers/parse-options.js","helpers/raf.js","modal/modal.js","navbar/navbar.js","popover/popover.js","scrollspy/scrollspy.js","select/select.js","timepicker/timepicker.js","tab/tab.js","typeahead/typeahead.js","tooltip/tooltip.js"],"names":["window","document","undefined","templateUrl","options","cache","$templateCache","then","element","res","fetchTemplate","template","fetchPromises","bsCompilerService","$inject","$http","get","angular","module","getDefaultLocale","$locale","this","compile","controller","console","controllerAs","resolve","copy","locals","bindToController","forEach","value","isString","$injector","key","invoke","transformTemplate","identity","extend","$template","when","$q","contentEl","findElement","outerHTML","contentTemplate","all","templateEl","removeAttr","html","templates","replace","next","remove","link","scope","trim","contents","linkFn","invokeCtrl","children","instance","ctrl","isObject","arguments","data","apply","bodyEl","$window","body","windowEl","defaults","AffixFactory","offsetTop","$affix","inlineStyles","$get","reset","setWidth","initialAffixTop","offsetParent","match","getRequiredAffixClass","unpin","position","top","scrollTop","getScrollTop","scrollHeight","getScrollHeight","targetEl","pageYOffset","directive","parent","target","initialOffsetTop","offsetBottom","affixed","init","i","$parseOffsets","on","checkPosition","require","checkPositionWithEventLoop","dimensions","offset","destroy","style","width","off","affix","setTimeout","elementHeight","height","css","addClass","offsetUnpin","offsetHeight","offsetWidth","$debouncedOnResize","$onResize","initialPosition","restrict","affixTarget","$element","option","$on","attr","test","animation","prefixClass","container","provider","backdrop","keyboard","show","duration","type","dismissable","AlertFactory","$alert","$scope","config","$timeout","hide","isDefined","falseValueRegExp","hasOwnProperty","title","newValue","oldValue","trustAsHtml","bsAlert","$observe","content","alert","trigger","toggle","AsideFactory","$aside","requestAnimationFrame","$modal","bsAside","$watch","aside","activeClass","querySelectorAll","childEl","ngModel","child","$button","constantValueRegExp","isInput","trueValue","falseValue","hasExoticValues","viewValue","$formatters","push","$render","modelValue","isActive","equals","checked","activeElement","bind","toggleEvent","$modelValue","$$rAF","$setViewValue","toggleClass","$apply","hasClass","nodeName","self","startCollapsed","allowMultiple","$attrs","activeIndexes","$targets","$active","length","index","indexOf","activeItems","splice","activateItem","$options","$collapse","$viewChangeListeners","$registerToggle","$toggles","$unregisterToggle","$unregisterTarget","deactivateItem","fn","fixActiveItemIndexes","$setActive","disallowToggle","$activeIndexes","bsCollapseCtrl","controllers","$animate","ngModelCtrl","attrs","isArray","bsCollapseToggle","$registerTarget","render","active","action","delay","useNative","dateType","dateFormat","timezone","modelDateFormat","dayFormat","monthFormat","yearFormat","monthTitleFormat","yearTitleFormat","strictFormat","autoclose","minDate","Infinity","maxDate","startView","minView","startWeek","daysOfWeekDisabled","iconLeft","iconRight","isNative","DatepickerFactory","parentScope","$datepicker","pickerViews","views","el","selected","date","focus","viewDate","$iconLeft","$iconRight","$picker","$views","$mode","datepickerViews","$selectPane","$toggleMode","setMode","select","isDate","$build","updateDisabledDates","disabledDateRanges","dateRanges","$date","$dateValue","keep","Date","year","getFullYear","month","getDate","mode","pristine","call","$updateSelected","rows","built","$isSelected","$setDisabledEl","disabled","isDisabled","steps","targetDate","getUTCFullYear","getUTCMonth","UTC","$onMouseDown","evt","preventDefault","stopPropagation","isTouch","getUTCDate","$onKeyDown","keyCode","shiftKey","altKey","updateSelected","onKeyDown","$digest","prop","focusElement","_init","_destroy","_show","_hide","blur","navigator","userAgent","previousValue","normalizeDateRanges","ranges","disabledRanges","datepicker","isMaxValid","isValid","isMinValid","isNaN","parsedDate","getTime","$parsers","unshift","$setValidity","getDateFormattedString","formatDate","bsShow","lang","format","$dateFormatter","dateParser","$dateParser","strict","validateAgainstMinMaxDate","getDateForAttribute","disabledDates","parse","timezoneOffsetAdjust","isUndefined","NaN","daySplit","arr","mod","n","m","arrays","size","$sce","weekDaysMin","weekdaysShort","weekDaysLabelsHtml","startDate","picker","weekDaysLabels","slice","concat","split","getMonth","update","firstDayOfMonth","firstDate","getDay","today","firstDateOffset","build","day","days","isToday","toDateString","label","muted","showLabels","labels","time","isSelected","newDate","name","firstMonth","months","lastDate","actualMonth","parseInt","firstYear","years","actualYear","setYear","placement","matchesSelector","DropdownFactory","$dropdown","onBodyClick","items","$rootScope","$new","parentEl","$isShown","removeClass","prototype","transclusion","bsDropdown","dropdown","service","splitTimeFormat","timeFormat","exec","DATETIME_FORMATS","id","getDatetimeFormat","SHORTDAY","hoursFormat","minutesFormat","secondsFormat","timeSeparator","showSeconds","dateFilter","ParseDate","seconds","$localeProvider","milliseconds","hours","array","isNumeric","parseFloat","isFinite","indexOfCaseInsensitive","len","str","toString","toLowerCase","DateParserFactory","minutes","getHours","getMilliseconds","getMinutes","proto","noop","toDate","regExpMap","sss","mm","keys","setFnMap","map","clonedFormat","search","v","sortedMap","regExpForFormat","re","join","text","Object","escapeReservedSymbols","RegExp","regex","HH","H","hh","h","a","EEEE","EEE","dd","d","MMMM","MMM","SHORTMONTH","MM","M","DAY","yyyy","yy","y","MONTH","ss","setSeconds","s","setMinutes","setHours","setDate","setMonth","setFullYear","setMap","$format","setMapForFormat","baseDate","formatRegex","formatSetMap","matches","fromDate","substr","getTimeForAttribute","daylightSavingAdjust","undo","func","timeout","context","factory","immediate","args","cancel","callNow","leading","trailing","wait","currentStyle","getComputedStyle","extra","boxRect","getBoundingClientRect","left","docElement","ownerDocument","curPosition","curLeft","curCSSTop","documentElement","clientTop","pageXOffset","scrollLeft","clientLeft","curCSSLeft","calculatePosition","curTop","curOffset","curElem","props","isFunction","using","offsetParentRect","offsetParentElement","outer","$parseOptions","$values","regexp","$match","displayFn","valueName","valueFn","ParseOptionsFactory","groupByFn","valuesFn","$parse","keyName","cancelAnimationFrame","values","displayValue","raf","webkitRequestAnimationFrame","mozRequestAnimationFrame","rafSupported","timer","prefixEvent","bodyElement","ModalFactory","enterAnimateCallback","version","minor","modalElement","unbindBackdropEvents","hideOnBackdropClick","backdropElement","preventEventDefault","bindKeyboardEvents","$onKeyUp","destroyModalElement","modalScope","$destroy","promise","$hide","$$postDigest","$id","$show","bottom","right","z-index","compileData","after","isElement","$emit","display","clonedElement","defaultPrevented","enter","backdropAnimation","safeDigest","bindBackdropEvents","leave","leaveAnimateCallback","unbindKeyboardEvents","which","$root","$$phase","query","bsModal","modal","routeAttr","$navbar","liElements","li","liElement","pattern","path","autoClose","$popover","PopoverFactory","$tooltip","dataTarget","popover","bsPopover","$applyPlacement","setViewport","viewport","spies","$document","debounce","throttle","ScrollSpyFactory","scrollEl","isWindowSpy","scrollId","$$count","$scrollspy","unbindViewContentLoaded","unbindIncludeContentLoaded","trackedElements","$trackedElements","sortedElements","activeTarget","debouncedCheckPosition","viewportHeight","throttledCheckPosition","debouncedCheckOffsets","checkOffsets","docEl","$activateElement","source","$getTrackedElement","filter","targetElement","querySelector","trackedElement","b","trackElement","toDelete","untrackElement","activate","scrollspy","multiple","allNoneButtons","sort","caretHtml","placeholder","allText","noneText","maxLength","maxLengthHtml","iconCheckmark","SelectFactory","$select","$activeIndex","$isMultiple","$showAllNoneButtons","$allText","$iconCheckmark","$isActive","$isVisible","$selectNone","$matches","$updateActiveIndex","$getIndex","minLength","$viewValue","l","dataMultiple","inputEl","watchedOptions","$watchCollection","parsedOptions","bsOptions","$isEmpty","timeType","modelTimeFormat","minTime","maxTime","hourStep","minuteStep","secondStep","roundDisplay","iconUp","iconDown","arrowBehavior","$timepicker","timepickerFactory","hour","meridian","coeff","selRange","end","start","setSelectionRange","collapse","selectionStart","moveStart","selectionEnd","moveEnd","floorMinutes","floor","selectedIndex","defaultDate","second","getSeconds","millisecond","$iconUp","$iconDown","$moveIndex","$switchMeridian","switchMeridian","minute","midIndex","$isDisabled","showAM","isAM","selectedTime","$arrowAction","$setTimeByStep","triggerHandler","sepLength","lateralMove","count","minutesLength","selectRange","hoursLength","incr","isSeconds","isMeridian","secondsLength","createSelection","createTextRange","parsedTime","getTimeFormattedString","timepicker","validateAgainstMinMaxTime","navClass","$activeClass","$panes","$activePaneChangeListeners","$push","pane","$navClass","$remove","activeIndex","$pane","$tab","transclude","postLink","bsTabsCtrl","bsActivePane","parsedBsActivePane","assign","limit","autoSelect","comparator","trimValue","$typeahead","$resetMatches","TypeaheadFactory","$filter","expression","results","typeahead","watchOptions","selectMode","isVisible","val","bsEnabled","selector","padding","String","htmlReplaceRegExp","$body","_tipToHide","tipElement","triggers","unbindTriggerEvents","$onFocusElementMouseDown","_autoCloseEventsBinded","bindAutoCloseEvents","unbindAutoCloseEvents","stopEventPropagation","event","getPosition","rect","elRect","p","scroll","isBody","getCalculatedOffset","actualWidth","actualHeight","outerDims","clientWidth","innerHeight","tip","marginTop","marginLeft","setOffset","delta","getViewportAdjustedDelta","isVertical","replaceArrow","arrowDelta","arrowOffsetPosition","viewportDimensions","$viewport","topEdgeOffset","bottomEdgeOffset","viewportPadding","leftEdgeOffset","rightEdgeOffset","dimension","isHorizontal","$arrow","clearTimeout","tipScope","$promise","$bsCompiler","$setEnabled","setEnabled","isEnabled","tipContainer","bindTriggerEvents","destroyTipElement","hoverState","lastChild","visibility","customClass","_blur","elementPosition","autoPlace","autoToken","viewportPosition","originalPlacement","tipHeight","tipPosition","applyPlacement","tipWidth","$location","tooltip","bsTooltip"],"mappings":"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","file":"angular-strap.min.js","sourcesContent":["(function(window, document, undefined) {\n'use strict';\n\n// Source: module.js\nangular.module('mgcrea.ngStrap', [\n 'mgcrea.ngStrap.modal',\n 'mgcrea.ngStrap.aside',\n 'mgcrea.ngStrap.alert',\n 'mgcrea.ngStrap.button',\n 'mgcrea.ngStrap.select',\n 'mgcrea.ngStrap.datepicker',\n 'mgcrea.ngStrap.timepicker',\n 'mgcrea.ngStrap.navbar',\n 'mgcrea.ngStrap.tooltip',\n 'mgcrea.ngStrap.popover',\n 'mgcrea.ngStrap.dropdown',\n 'mgcrea.ngStrap.typeahead',\n 'mgcrea.ngStrap.scrollspy',\n 'mgcrea.ngStrap.affix',\n 'mgcrea.ngStrap.tab',\n 'mgcrea.ngStrap.collapse'\n]);\n\n// Source: affix/affix.js\nangular.module('mgcrea.ngStrap.affix', ['mgcrea.ngStrap.helpers.dimensions', 'mgcrea.ngStrap.helpers.debounce'])\n\n .provider('$affix', function() {\n\n var defaults = this.defaults = {\n offsetTop: 'auto',\n inlineStyles: true\n };\n\n this.$get = function($window, debounce, dimensions) {\n\n var bodyEl = angular.element($window.document.body);\n var windowEl = angular.element($window);\n\n function AffixFactory(element, config) {\n\n var $affix = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n var targetEl = options.target;\n\n // Initial private vars\n var reset = 'affix affix-top affix-bottom',\n setWidth = false,\n initialAffixTop = 0,\n initialOffsetTop = 0,\n offsetTop = 0,\n offsetBottom = 0,\n affixed = null,\n unpin = null;\n\n var parent = element.parent();\n // Options: custom parent\n if (options.offsetParent) {\n if (options.offsetParent.match(/^\\d+$/)) {\n for (var i = 0; i < (options.offsetParent * 1) - 1; i++) {\n parent = parent.parent();\n }\n }\n else {\n parent = angular.element(options.offsetParent);\n }\n }\n\n $affix.init = function() {\n\n this.$parseOffsets();\n initialOffsetTop = dimensions.offset(element[0]).top + initialAffixTop;\n setWidth = !element[0].style.width;\n\n // Bind events\n targetEl.on('scroll', this.checkPosition);\n targetEl.on('click', this.checkPositionWithEventLoop);\n windowEl.on('resize', this.$debouncedOnResize);\n\n // Both of these checkPosition() calls are necessary for the case where\n // the user hits refresh after scrolling to the bottom of the page.\n this.checkPosition();\n this.checkPositionWithEventLoop();\n\n };\n\n $affix.destroy = function() {\n\n // Unbind events\n targetEl.off('scroll', this.checkPosition);\n targetEl.off('click', this.checkPositionWithEventLoop);\n windowEl.off('resize', this.$debouncedOnResize);\n\n };\n\n $affix.checkPositionWithEventLoop = function() {\n\n // IE 9 throws an error if we use 'this' instead of '$affix'\n // in this setTimeout call\n setTimeout($affix.checkPosition, 1);\n\n };\n\n $affix.checkPosition = function() {\n // if (!this.$element.is(':visible')) return\n\n var scrollTop = getScrollTop();\n var position = dimensions.offset(element[0]);\n var elementHeight = dimensions.height(element[0]);\n\n // Get required affix class according to position\n var affix = getRequiredAffixClass(unpin, position, elementHeight);\n\n // Did affix status changed this last check?\n if(affixed === affix) return;\n affixed = affix;\n\n // Add proper affix class\n element.removeClass(reset).addClass('affix' + ((affix !== 'middle') ? '-' + affix : ''));\n\n if(affix === 'top') {\n unpin = null;\n if(setWidth) {\n element.css('width', '');\n }\n if (options.inlineStyles) {\n element.css('position', (options.offsetParent) ? '' : 'relative');\n element.css('top', '');\n }\n } else if(affix === 'bottom') {\n if (options.offsetUnpin) {\n unpin = -(options.offsetUnpin * 1);\n }\n else {\n // Calculate unpin threshold when affixed to bottom.\n // Hopefully the browser scrolls pixel by pixel.\n unpin = position.top - scrollTop;\n }\n if(setWidth) {\n element.css('width', '');\n }\n if (options.inlineStyles) {\n element.css('position', (options.offsetParent) ? '' : 'relative');\n element.css('top', (options.offsetParent) ? '' : ((bodyEl[0].offsetHeight - offsetBottom - elementHeight - initialOffsetTop) + 'px'));\n }\n } else { // affix === 'middle'\n unpin = null;\n if(setWidth) {\n element.css('width', element[0].offsetWidth + 'px');\n }\n if (options.inlineStyles) {\n element.css('position', 'fixed');\n element.css('top', initialAffixTop + 'px');\n }\n }\n\n };\n\n $affix.$onResize = function() {\n $affix.$parseOffsets();\n $affix.checkPosition();\n };\n $affix.$debouncedOnResize = debounce($affix.$onResize, 50);\n\n $affix.$parseOffsets = function() {\n var initialPosition = element.css('position');\n // Reset position to calculate correct offsetTop\n if (options.inlineStyles){\n element.css('position', (options.offsetParent) ? '' : 'relative');\n }\n\n if(options.offsetTop) {\n if(options.offsetTop === 'auto') {\n options.offsetTop = '+0';\n }\n if(options.offsetTop.match(/^[-+]\\d+$/)) {\n initialAffixTop = - options.offsetTop * 1;\n if(options.offsetParent) {\n offsetTop = dimensions.offset(parent[0]).top + (options.offsetTop * 1);\n }\n else {\n offsetTop = dimensions.offset(element[0]).top - dimensions.css(element[0], 'marginTop', true) + (options.offsetTop * 1);\n }\n }\n else {\n offsetTop = options.offsetTop * 1;\n }\n }\n\n if(options.offsetBottom) {\n if(options.offsetParent && options.offsetBottom.match(/^[-+]\\d+$/)) {\n // add 1 pixel due to rounding problems...\n offsetBottom = getScrollHeight() - (dimensions.offset(parent[0]).top + dimensions.height(parent[0])) + (options.offsetBottom * 1) + 1;\n }\n else {\n offsetBottom = options.offsetBottom * 1;\n }\n }\n\n // Bring back the element's position after calculations\n if (options.inlineStyles){\n element.css('position', initialPosition);\n }\n };\n\n // Private methods\n\n function getRequiredAffixClass(unpin, position, elementHeight) {\n\n var scrollTop = getScrollTop();\n var scrollHeight = getScrollHeight();\n\n if(scrollTop <= offsetTop) {\n return 'top';\n } else if(unpin !== null && (scrollTop + unpin <= position.top)) {\n return 'middle';\n } else if(offsetBottom !== null && (position.top + elementHeight + initialAffixTop >= scrollHeight - offsetBottom)) {\n return 'bottom';\n } else {\n return 'middle';\n }\n\n }\n\n function getScrollTop() {\n return targetEl[0] === $window ? $window.pageYOffset : targetEl[0].scrollTop;\n }\n\n function getScrollHeight() {\n return targetEl[0] === $window ? $window.document.body.scrollHeight : targetEl[0].scrollHeight;\n }\n\n $affix.init();\n return $affix;\n\n }\n\n return AffixFactory;\n\n };\n\n })\n\n .directive('bsAffix', function($affix, $window) {\n\n return {\n restrict: 'EAC',\n require: '^?bsAffixTarget',\n link: function postLink(scope, element, attr, affixTarget) {\n\n var options = {scope: scope, target: affixTarget ? affixTarget.$element : angular.element($window)};\n angular.forEach(['offsetTop', 'offsetBottom', 'offsetParent', 'offsetUnpin', 'inlineStyles'], function(key) {\n if(angular.isDefined(attr[key])) {\n var option = attr[key];\n if (/true/i.test(option)) option = true;\n if (/false/i.test(option)) option = false;\n options[key] = option;\n }\n });\n\n var affix = $affix(element, options);\n scope.$on('$destroy', function() {\n affix && affix.destroy();\n options = null;\n affix = null;\n });\n\n }\n };\n\n })\n\n .directive('bsAffixTarget', function() {\n return {\n controller: function($element) {\n this.$element = $element;\n }\n };\n });\n\n// Source: alert/alert.js\n// @BUG: following snippet won't compile correctly\n// @TODO: submit issue to core\n// ' ' +\n\nangular.module('mgcrea.ngStrap.alert', ['mgcrea.ngStrap.modal'])\n\n .provider('$alert', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'alert',\n prefixEvent: 'alert',\n placement: null,\n templateUrl: 'alert/alert.tpl.html',\n container: false,\n element: null,\n backdrop: false,\n keyboard: true,\n show: true,\n // Specific options\n duration: false,\n type: false,\n dismissable: true\n };\n\n this.$get = function($modal, $timeout) {\n\n function AlertFactory(config) {\n\n var $alert = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $alert = $modal(options);\n\n // Support scope as string options [/*title, content, */ type, dismissable]\n $alert.$scope.dismissable = !!options.dismissable;\n if(options.type) {\n $alert.$scope.type = options.type;\n }\n\n // Support auto-close duration\n var show = $alert.show;\n if(options.duration) {\n $alert.show = function() {\n show();\n $timeout(function() {\n $alert.hide();\n }, options.duration * 1000);\n };\n }\n\n return $alert;\n\n }\n\n return AlertFactory;\n\n };\n\n })\n\n .directive('bsAlert', function($window, $sce, $alert) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'keyboard', 'html', 'container', 'animation', 'duration', 'dismissable'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['keyboard', 'html', 'container', 'dismissable'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // overwrite inherited title value when no value specified\n // fix for angular 1.3.1 531a8de72c439d8ddd064874bf364c00cedabb11\n if (!scope.hasOwnProperty('title')){\n scope.title = '';\n }\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content', 'type'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsAlert && scope.$watch(attr.bsAlert, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize alert\n var alert = $alert(options);\n\n // Trigger\n element.on(attr.trigger || 'click', alert.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (alert) alert.destroy();\n options = null;\n alert = null;\n });\n\n }\n };\n\n });\n\n// Source: aside/aside.js\nangular.module('mgcrea.ngStrap.aside', ['mgcrea.ngStrap.modal'])\n\n .provider('$aside', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade-and-slide-right',\n prefixClass: 'aside',\n prefixEvent: 'aside',\n placement: 'right',\n templateUrl: 'aside/aside.tpl.html',\n contentTemplate: false,\n container: false,\n element: null,\n backdrop: true,\n keyboard: true,\n html: false,\n show: true\n };\n\n this.$get = function($modal) {\n\n function AsideFactory(config) {\n\n var $aside = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $aside = $modal(options);\n\n return $aside;\n\n }\n\n return AsideFactory;\n\n };\n\n })\n\n .directive('bsAside', function($window, $sce, $aside) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'backdrop', 'keyboard', 'html', 'container', 'animation'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['backdrop', 'keyboard', 'html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsAside && scope.$watch(attr.bsAside, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize aside\n var aside = $aside(options);\n\n // Trigger\n element.on(attr.trigger || 'click', aside.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (aside) aside.destroy();\n options = null;\n aside = null;\n });\n\n }\n };\n\n });\n\n// Source: button/button.js\nangular.module('mgcrea.ngStrap.button', [])\n\n .provider('$button', function() {\n\n var defaults = this.defaults = {\n activeClass:'active',\n toggleEvent:'click'\n };\n\n this.$get = function() {\n return {defaults: defaults};\n };\n\n })\n\n .directive('bsCheckboxGroup', function() {\n\n return {\n restrict: 'A',\n require: 'ngModel',\n compile: function postLink(element, attr) {\n element.attr('data-toggle', 'buttons');\n element.removeAttr('ng-model');\n var children = element[0].querySelectorAll('input[type=\"checkbox\"]');\n angular.forEach(children, function(child) {\n var childEl = angular.element(child);\n childEl.attr('bs-checkbox', '');\n childEl.attr('ng-model', attr.ngModel + '.' + childEl.attr('value'));\n });\n }\n\n };\n\n })\n\n .directive('bsCheckbox', function($button, $$rAF) {\n\n var defaults = $button.defaults;\n var constantValueRegExp = /^(true|false|\\d+)$/;\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n var options = defaults;\n\n // Support label > input[type=\"checkbox\"]\n var isInput = element[0].nodeName === 'INPUT';\n var activeElement = isInput ? element.parent() : element;\n\n var trueValue = angular.isDefined(attr.trueValue) ? attr.trueValue : true;\n if(constantValueRegExp.test(attr.trueValue)) {\n trueValue = scope.$eval(attr.trueValue);\n }\n var falseValue = angular.isDefined(attr.falseValue) ? attr.falseValue : false;\n if(constantValueRegExp.test(attr.falseValue)) {\n falseValue = scope.$eval(attr.falseValue);\n }\n\n // Parse exotic values\n var hasExoticValues = typeof trueValue !== 'boolean' || typeof falseValue !== 'boolean';\n if(hasExoticValues) {\n controller.$parsers.push(function(viewValue) {\n // console.warn('$parser', element.attr('ng-model'), 'viewValue', viewValue);\n return viewValue ? trueValue : falseValue;\n });\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n return angular.equals(modelValue, trueValue);\n });\n // Fix rendering for exotic values\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n controller.$render();\n });\n }\n\n // model -> view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var isActive = angular.equals(controller.$modelValue, trueValue);\n $$rAF(function() {\n if(isInput) element[0].checked = isActive;\n activeElement.toggleClass(options.activeClass, isActive);\n });\n };\n\n // view -> model\n element.bind(options.toggleEvent, function() {\n scope.$apply(function () {\n // console.warn('!click', element.attr('ng-model'), 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue, 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue);\n if(!isInput) {\n controller.$setViewValue(!activeElement.hasClass('active'));\n }\n if(!hasExoticValues) {\n controller.$render();\n }\n });\n });\n\n }\n\n };\n\n })\n\n .directive('bsRadioGroup', function() {\n\n return {\n restrict: 'A',\n require: 'ngModel',\n compile: function postLink(element, attr) {\n element.attr('data-toggle', 'buttons');\n element.removeAttr('ng-model');\n var children = element[0].querySelectorAll('input[type=\"radio\"]');\n angular.forEach(children, function(child) {\n angular.element(child).attr('bs-radio', '');\n angular.element(child).attr('ng-model', attr.ngModel);\n });\n }\n\n };\n\n })\n\n .directive('bsRadio', function($button, $$rAF) {\n\n var defaults = $button.defaults;\n var constantValueRegExp = /^(true|false|\\d+)$/;\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n var options = defaults;\n\n // Support `label > input[type=\"radio\"]` markup\n var isInput = element[0].nodeName === 'INPUT';\n var activeElement = isInput ? element.parent() : element;\n\n var value;\n attr.$observe('value', function(v) {\n value = constantValueRegExp.test(v) ? scope.$eval(v) : v;\n controller.$render();\n });\n\n // model -> view\n controller.$render = function () {\n // console.warn('$render', element.attr('value'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var isActive = angular.equals(controller.$modelValue, value);\n $$rAF(function() {\n if(isInput) element[0].checked = isActive;\n activeElement.toggleClass(options.activeClass, isActive);\n });\n };\n\n // view -> model\n element.bind(options.toggleEvent, function() {\n scope.$apply(function () {\n // console.warn('!click', element.attr('value'), 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue, 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue);\n controller.$setViewValue(value);\n controller.$render();\n });\n });\n\n }\n\n };\n\n });\n\n// Source: collapse/collapse.js\nangular.module('mgcrea.ngStrap.collapse', [])\n\n .provider('$collapse', function() {\n\n var defaults = this.defaults = {\n animation: 'am-collapse',\n disallowToggle: false,\n activeClass: 'in',\n startCollapsed: false,\n allowMultiple: false\n };\n\n var controller = this.controller = function($scope, $element, $attrs) {\n var self = this;\n\n // Attributes options\n self.$options = angular.copy(defaults);\n angular.forEach(['animation', 'disallowToggle', 'activeClass', 'startCollapsed', 'allowMultiple'], function (key) {\n if(angular.isDefined($attrs[key])) self.$options[key] = $attrs[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['disallowToggle', 'startCollapsed', 'allowMultiple'], function(key) {\n if(angular.isDefined($attrs[key]) && falseValueRegExp.test($attrs[key])) {\n self.$options[key] = false;\n }\n });\n\n self.$toggles = [];\n self.$targets = [];\n\n self.$viewChangeListeners = [];\n\n self.$registerToggle = function(element) {\n self.$toggles.push(element);\n };\n self.$registerTarget = function(element) {\n self.$targets.push(element);\n };\n\n self.$unregisterToggle = function(element) {\n var index = self.$toggles.indexOf(element);\n // remove toggle from $toggles array\n self.$toggles.splice(index, 1);\n };\n self.$unregisterTarget = function(element) {\n var index = self.$targets.indexOf(element);\n\n // remove element from $targets array\n self.$targets.splice(index, 1);\n\n if (self.$options.allowMultiple) {\n // remove target index from $active array values\n deactivateItem(element);\n }\n\n // fix active item indexes\n fixActiveItemIndexes(index);\n\n self.$viewChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n // use array to store all the currently open panels\n self.$targets.$active = !self.$options.startCollapsed ? [0] : [];\n self.$setActive = $scope.$setActive = function(value) {\n if(angular.isArray(value)) {\n self.$targets.$active = value;\n }\n else if(!self.$options.disallowToggle) {\n // toogle element active status\n isActive(value) ? deactivateItem(value) : activateItem(value);\n } else {\n activateItem(value);\n }\n\n self.$viewChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n self.$activeIndexes = function() {\n return self.$options.allowMultiple ? self.$targets.$active :\n self.$targets.$active.length === 1 ? self.$targets.$active[0] : -1;\n };\n\n function fixActiveItemIndexes(index) {\n // item with index was removed, so we\n // need to adjust other items index values\n var activeIndexes = self.$targets.$active;\n for(var i = 0; i < activeIndexes.length; i++) {\n if (index < activeIndexes[i]) {\n activeIndexes[i] = activeIndexes[i] - 1;\n }\n\n // the last item is active, so we need to\n // adjust its index\n if (activeIndexes[i] === self.$targets.length) {\n activeIndexes[i] = self.$targets.length - 1;\n }\n }\n }\n\n function isActive(value) {\n var activeItems = self.$targets.$active;\n return activeItems.indexOf(value) === -1 ? false : true;\n }\n\n function deactivateItem(value) {\n var index = self.$targets.$active.indexOf(value);\n if (index !== -1) {\n self.$targets.$active.splice(index, 1);\n }\n }\n\n function activateItem(value) {\n if (!self.$options.allowMultiple) {\n // remove current selected item\n self.$targets.$active.splice(0, 1);\n }\n\n if (self.$targets.$active.indexOf(value) === -1) {\n self.$targets.$active.push(value);\n }\n }\n\n };\n\n this.$get = function() {\n var $collapse = {};\n $collapse.defaults = defaults;\n $collapse.controller = controller;\n return $collapse;\n };\n\n })\n\n .directive('bsCollapse', function($window, $animate, $collapse) {\n\n var defaults = $collapse.defaults;\n\n return {\n require: ['?ngModel', 'bsCollapse'],\n controller: ['$scope', '$element', '$attrs', $collapse.controller],\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n if(ngModelCtrl) {\n\n // Update the modelValue following\n bsCollapseCtrl.$viewChangeListeners.push(function() {\n ngModelCtrl.$setViewValue(bsCollapseCtrl.$activeIndexes());\n });\n\n // modelValue -> $formatters -> viewValue\n ngModelCtrl.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n if (angular.isArray(modelValue)) {\n // model value is an array, so just replace\n // the active items directly\n bsCollapseCtrl.$setActive(modelValue);\n }\n else {\n var activeIndexes = bsCollapseCtrl.$activeIndexes();\n\n if (angular.isArray(activeIndexes)) {\n // we have an array of selected indexes\n if (activeIndexes.indexOf(modelValue * 1) === -1) {\n // item with modelValue index is not active\n bsCollapseCtrl.$setActive(modelValue * 1);\n }\n }\n else if (activeIndexes !== modelValue * 1) {\n bsCollapseCtrl.$setActive(modelValue * 1);\n }\n }\n return modelValue;\n });\n\n }\n\n }\n };\n\n })\n\n .directive('bsCollapseToggle', function() {\n\n return {\n require: ['^?ngModel', '^bsCollapse'],\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n // Add base attr\n element.attr('data-toggle', 'collapse');\n\n // Push pane to parent bsCollapse controller\n bsCollapseCtrl.$registerToggle(element);\n\n // remove toggle from collapse controller when toggle is destroyed\n scope.$on('$destroy', function() {\n bsCollapseCtrl.$unregisterToggle(element);\n });\n\n element.on('click', function() {\n var index = attrs.bsCollapseToggle && attrs.bsCollapseToggle !== 'bs-collapse-toggle' ? attrs.bsCollapseToggle : bsCollapseCtrl.$toggles.indexOf(element);\n bsCollapseCtrl.$setActive(index * 1);\n scope.$apply();\n });\n\n }\n };\n\n })\n\n .directive('bsCollapseTarget', function($animate) {\n\n return {\n require: ['^?ngModel', '^bsCollapse'],\n // scope: true,\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n // Add base class\n element.addClass('collapse');\n\n // Add animation class\n if(bsCollapseCtrl.$options.animation) {\n element.addClass(bsCollapseCtrl.$options.animation);\n }\n\n // Push pane to parent bsCollapse controller\n bsCollapseCtrl.$registerTarget(element);\n\n // remove pane target from collapse controller when target is destroyed\n scope.$on('$destroy', function() {\n bsCollapseCtrl.$unregisterTarget(element);\n });\n\n function render() {\n var index = bsCollapseCtrl.$targets.indexOf(element);\n var active = bsCollapseCtrl.$activeIndexes();\n var action = 'removeClass';\n if (angular.isArray(active)) {\n if (active.indexOf(index) !== -1) {\n action = 'addClass';\n }\n }\n else if (index === active) {\n action = 'addClass';\n }\n\n $animate[action](element, bsCollapseCtrl.$options.activeClass);\n }\n\n bsCollapseCtrl.$viewChangeListeners.push(function() {\n render();\n });\n render();\n\n }\n };\n\n });\n\n// Source: datepicker/datepicker.js\nangular.module('mgcrea.ngStrap.datepicker', [\n 'mgcrea.ngStrap.helpers.dateParser',\n 'mgcrea.ngStrap.helpers.dateFormatter',\n 'mgcrea.ngStrap.tooltip'])\n\n .provider('$datepicker', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n //uncommenting the following line will break backwards compatability\n // prefixEvent: 'datepicker',\n prefixClass: 'datepicker',\n placement: 'bottom-left',\n templateUrl: 'datepicker/datepicker.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n // lang: $locale.id,\n useNative: false,\n dateType: 'date',\n dateFormat: 'shortDate',\n timezone: null,\n modelDateFormat: null,\n dayFormat: 'dd',\n monthFormat: 'MMM',\n yearFormat: 'yyyy',\n monthTitleFormat: 'MMMM yyyy',\n yearTitleFormat: 'yyyy',\n strictFormat: false,\n autoclose: false,\n minDate: -Infinity,\n maxDate: +Infinity,\n startView: 0,\n minView: 0,\n startWeek: 0,\n daysOfWeekDisabled: '',\n iconLeft: 'glyphicon glyphicon-chevron-left',\n iconRight: 'glyphicon glyphicon-chevron-right'\n };\n\n this.$get = function($window, $document, $rootScope, $sce, $dateFormatter, datepickerViews, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n if(!defaults.lang) defaults.lang = $dateFormatter.getDefaultLocale();\n\n function DatepickerFactory(element, controller, config) {\n\n var $datepicker = $tooltip(element, angular.extend({}, defaults, config));\n var parentScope = config.scope;\n var options = $datepicker.$options;\n var scope = $datepicker.$scope;\n if(options.startView) options.startView -= options.minView;\n\n // View vars\n\n var pickerViews = datepickerViews($datepicker);\n $datepicker.$views = pickerViews.views;\n var viewDate = pickerViews.viewDate;\n scope.$mode = options.startView;\n scope.$iconLeft = options.iconLeft;\n scope.$iconRight = options.iconRight;\n var $picker = $datepicker.$views[scope.$mode];\n\n // Scope methods\n\n scope.$select = function(date) {\n $datepicker.select(date);\n };\n scope.$selectPane = function(value) {\n $datepicker.$selectPane(value);\n };\n scope.$toggleMode = function() {\n $datepicker.setMode((scope.$mode + 1) % $datepicker.$views.length);\n };\n\n // Public methods\n\n $datepicker.update = function(date) {\n // console.warn('$datepicker.update() newValue=%o', date);\n if(angular.isDate(date) && !isNaN(date.getTime())) {\n $datepicker.$date = date;\n $picker.update.call($picker, date);\n }\n // Build only if pristine\n $datepicker.$build(true);\n };\n\n $datepicker.updateDisabledDates = function(dateRanges) {\n options.disabledDateRanges = dateRanges;\n for(var i = 0, l = scope.rows.length; i < l; i++) {\n angular.forEach(scope.rows[i], $datepicker.$setDisabledEl);\n }\n };\n\n $datepicker.select = function(date, keep) {\n // console.warn('$datepicker.select', date, scope.$mode);\n if(!angular.isDate(controller.$dateValue)) controller.$dateValue = new Date(date);\n if(!scope.$mode || keep) {\n controller.$setViewValue(angular.copy(date));\n controller.$render();\n if(options.autoclose && !keep) {\n $timeout(function() { $datepicker.hide(true); });\n }\n } else {\n angular.extend(viewDate, {year: date.getFullYear(), month: date.getMonth(), date: date.getDate()});\n $datepicker.setMode(scope.$mode - 1);\n $datepicker.$build();\n }\n };\n\n $datepicker.setMode = function(mode) {\n // console.warn('$datepicker.setMode', mode);\n scope.$mode = mode;\n $picker = $datepicker.$views[scope.$mode];\n $datepicker.$build();\n };\n\n // Protected methods\n\n $datepicker.$build = function(pristine) {\n // console.warn('$datepicker.$build() viewDate=%o', viewDate);\n if(pristine === true && $picker.built) return;\n if(pristine === false && !$picker.built) return;\n $picker.build.call($picker);\n };\n\n $datepicker.$updateSelected = function() {\n for(var i = 0, l = scope.rows.length; i < l; i++) {\n angular.forEach(scope.rows[i], updateSelected);\n }\n };\n\n $datepicker.$isSelected = function(date) {\n return $picker.isSelected(date);\n };\n\n $datepicker.$setDisabledEl = function(el) {\n el.disabled = $picker.isDisabled(el.date);\n };\n\n $datepicker.$selectPane = function(value) {\n var steps = $picker.steps;\n // set targetDate to first day of month to avoid problems with\n // date values rollover. This assumes the viewDate does not\n // depend on the day of the month\n var targetDate = new Date(Date.UTC(viewDate.year + ((steps.year || 0) * value), viewDate.month + ((steps.month || 0) * value), 1));\n angular.extend(viewDate, {year: targetDate.getUTCFullYear(), month: targetDate.getUTCMonth(), date: targetDate.getUTCDate()});\n $datepicker.$build();\n };\n\n $datepicker.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n if(targetEl[0].nodeName.toLowerCase() !== 'button') {\n targetEl = targetEl.parent();\n }\n targetEl.triggerHandler('click');\n }\n };\n\n $datepicker.$onKeyDown = function(evt) {\n if (!/(38|37|39|40|13)/.test(evt.keyCode) || evt.shiftKey || evt.altKey) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n if(evt.keyCode === 13) {\n if(!scope.$mode) {\n return $datepicker.hide(true);\n } else {\n return scope.$apply(function() { $datepicker.setMode(scope.$mode - 1); });\n }\n }\n\n // Navigate with keyboard\n $picker.onKeyDown(evt);\n parentScope.$digest();\n };\n\n // Private\n\n function updateSelected(el) {\n el.selected = $datepicker.$isSelected(el.date);\n }\n\n function focusElement() {\n element[0].focus();\n }\n\n // Overrides\n\n var _init = $datepicker.init;\n $datepicker.init = function() {\n if(isNative && options.useNative) {\n element.prop('type', 'date');\n element.css('-webkit-appearance', 'textfield');\n return;\n } else if(isTouch) {\n element.prop('type', 'text');\n element.attr('readonly', 'true');\n element.on('click', focusElement);\n }\n _init();\n };\n\n var _destroy = $datepicker.destroy;\n $datepicker.destroy = function() {\n if(isNative && options.useNative) {\n element.off('click', focusElement);\n }\n _destroy();\n };\n\n var _show = $datepicker.show;\n $datepicker.show = function() {\n if((!isTouch && element.attr('readonly')) || element.attr('disabled')) return;\n _show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n // if $datepicker is no longer showing, don't setup events\n if(!$datepicker.$isShown) return;\n $datepicker.$element.on(isTouch ? 'touchstart' : 'mousedown', $datepicker.$onMouseDown);\n if(options.keyboard) {\n element.on('keydown', $datepicker.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $datepicker.hide;\n $datepicker.hide = function(blur) {\n if(!$datepicker.$isShown) return;\n $datepicker.$element.off(isTouch ? 'touchstart' : 'mousedown', $datepicker.$onMouseDown);\n if(options.keyboard) {\n element.off('keydown', $datepicker.$onKeyDown);\n }\n _hide(blur);\n };\n\n return $datepicker;\n\n }\n\n DatepickerFactory.defaults = defaults;\n return DatepickerFactory;\n\n };\n\n })\n\n .directive('bsDatepicker', function($window, $parse, $q, $dateFormatter, $dateParser, $datepicker) {\n\n var defaults = $datepicker.defaults;\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'autoclose', 'dateType', 'dateFormat', 'timezone', 'modelDateFormat', 'dayFormat', 'strictFormat', 'startWeek', 'startDate', 'useNative', 'lang', 'startView', 'minView', 'iconLeft', 'iconRight', 'daysOfWeekDisabled', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoclose', 'useNative'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!datepicker || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(datepicker),?/i);\n newValue === true ? datepicker.show() : datepicker.hide();\n });\n\n // Initialize datepicker\n var datepicker = $datepicker(element, controller, options);\n options = datepicker.$options;\n // Set expected iOS format\n if(isNative && options.useNative) options.dateFormat = 'yyyy-MM-dd';\n\n var lang = options.lang;\n\n var formatDate = function(date, format) {\n return $dateFormatter.formatDate(date, format, lang);\n };\n\n var dateParser = $dateParser({format: options.dateFormat, lang: lang, strict: options.strictFormat});\n\n // Observe attributes for changes\n angular.forEach(['minDate', 'maxDate'], function(key) {\n // console.warn('attr.$observe(%s)', key, attr[key]);\n angular.isDefined(attr[key]) && attr.$observe(key, function(newValue) {\n // console.warn('attr.$observe(%s)=%o', key, newValue);\n datepicker.$options[key] = dateParser.getDateForAttribute(key, newValue);\n // Build only if dirty\n !isNaN(datepicker.$options[key]) && datepicker.$build(false);\n validateAgainstMinMaxDate(controller.$dateValue);\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n datepicker.update(controller.$dateValue);\n }, true);\n\n // Normalize undefined/null/empty array,\n // so that we don't treat changing from undefined->null as a change.\n function normalizeDateRanges(ranges) {\n if (!ranges || !ranges.length) return null;\n return ranges;\n }\n\n if (angular.isDefined(attr.disabledDates)) {\n scope.$watch(attr.disabledDates, function(disabledRanges, previousValue) {\n disabledRanges = normalizeDateRanges(disabledRanges);\n previousValue = normalizeDateRanges(previousValue);\n\n if (disabledRanges) {\n datepicker.updateDisabledDates(disabledRanges);\n }\n });\n }\n\n function validateAgainstMinMaxDate(parsedDate) {\n if (!angular.isDate(parsedDate)) return;\n var isMinValid = isNaN(datepicker.$options.minDate) || parsedDate.getTime() >= datepicker.$options.minDate;\n var isMaxValid = isNaN(datepicker.$options.maxDate) || parsedDate.getTime() <= datepicker.$options.maxDate;\n var isValid = isMinValid && isMaxValid;\n controller.$setValidity('date', isValid);\n controller.$setValidity('min', isMinValid);\n controller.$setValidity('max', isMaxValid);\n // Only update the model when we have a valid date\n if(isValid) controller.$dateValue = parsedDate;\n }\n\n // viewValue -> $parsers -> modelValue\n controller.$parsers.unshift(function(viewValue) {\n // console.warn('$parser(\"%s\"): viewValue=%o', element.attr('ng-model'), viewValue);\n var date;\n // Null values should correctly reset the model value & validity\n if(!viewValue) {\n controller.$setValidity('date', true);\n // BREAKING CHANGE:\n // return null (not undefined) when input value is empty, so angularjs 1.3\n // ngModelController can go ahead and run validators, like ngRequired\n return null;\n }\n var parsedDate = dateParser.parse(viewValue, controller.$dateValue);\n if(!parsedDate || isNaN(parsedDate.getTime())) {\n controller.$setValidity('date', false);\n // return undefined, causes ngModelController to\n // invalidate model value\n return;\n } else {\n validateAgainstMinMaxDate(parsedDate);\n }\n\n if(options.dateType === 'string') {\n date = dateParser.timezoneOffsetAdjust(parsedDate, options.timezone, true);\n return formatDate(date, options.modelDateFormat || options.dateFormat);\n }\n date = dateParser.timezoneOffsetAdjust(controller.$dateValue, options.timezone, true);\n if(options.dateType === 'number') {\n return date.getTime();\n } else if(options.dateType === 'unix') {\n return date.getTime() / 1000;\n } else if(options.dateType === 'iso') {\n return date.toISOString();\n } else {\n return new Date(date);\n }\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var date;\n if(angular.isUndefined(modelValue) || modelValue === null) {\n date = NaN;\n } else if(angular.isDate(modelValue)) {\n date = modelValue;\n } else if(options.dateType === 'string') {\n date = dateParser.parse(modelValue, null, options.modelDateFormat);\n } else if(options.dateType === 'unix') {\n date = new Date(modelValue * 1000);\n } else {\n date = new Date(modelValue);\n }\n // Setup default value?\n // if(isNaN(date.getTime())) {\n // var today = new Date();\n // date = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0, 0);\n // }\n controller.$dateValue = dateParser.timezoneOffsetAdjust(date, options.timezone);\n return getDateFormattedString();\n });\n\n // viewValue -> element\n controller.$render = function() {\n // console.warn('$render(\"%s\"): viewValue=%o', element.attr('ng-model'), controller.$viewValue);\n element.val(getDateFormattedString());\n };\n\n function getDateFormattedString() {\n return !controller.$dateValue || isNaN(controller.$dateValue.getTime()) ? '' : formatDate(controller.$dateValue, options.dateFormat);\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if(datepicker) datepicker.destroy();\n options = null;\n datepicker = null;\n });\n\n }\n };\n\n })\n\n .provider('datepickerViews', function() {\n\n var defaults = this.defaults = {\n dayFormat: 'dd',\n daySplit: 7\n };\n\n // Split array into smaller arrays\n function split(arr, size) {\n var arrays = [];\n while(arr.length > 0) {\n arrays.push(arr.splice(0, size));\n }\n return arrays;\n }\n\n // Modulus operator\n function mod(n, m) {\n return ((n % m) + m) % m;\n }\n\n this.$get = function($dateFormatter, $dateParser, $sce) {\n\n return function(picker) {\n\n var scope = picker.$scope;\n var options = picker.$options;\n\n var lang = options.lang;\n var formatDate = function(date, format) {\n return $dateFormatter.formatDate(date, format, lang);\n };\n var dateParser = $dateParser({format: options.dateFormat, lang: lang, strict: options.strictFormat});\n\n var weekDaysMin = $dateFormatter.weekdaysShort(lang);\n var weekDaysLabels = weekDaysMin.slice(options.startWeek).concat(weekDaysMin.slice(0, options.startWeek));\n var weekDaysLabelsHtml = $sce.trustAsHtml('' + weekDaysLabels.join('') + '');\n\n var startDate = picker.$date || (options.startDate ? dateParser.getDateForAttribute('startDate', options.startDate) : new Date());\n var viewDate = {year: startDate.getFullYear(), month: startDate.getMonth(), date: startDate.getDate()};\n\n var views = [{\n format: options.dayFormat,\n split: 7,\n steps: { month: 1 },\n update: function(date, force) {\n if(!this.built || force || date.getFullYear() !== viewDate.year || date.getMonth() !== viewDate.month) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getDate() !== viewDate.date || date.getDate() === 1) {\n // chaging picker current month will cause viewDate.date to be set to first day of the month,\n // in $datepicker.$selectPane, so picker would not update selected day display if\n // user picks first day of the new month.\n // As a workaround, we are always forcing update when picked date is first day of month.\n viewDate.date = picker.$date.getDate();\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstDayOfMonth = new Date(viewDate.year, viewDate.month, 1), firstDayOfMonthOffset = firstDayOfMonth.getTimezoneOffset();\n var firstDate = new Date(+firstDayOfMonth - mod(firstDayOfMonth.getDay() - options.startWeek, 7) * 864e5), firstDateOffset = firstDate.getTimezoneOffset();\n var today = dateParser.timezoneOffsetAdjust(new Date(), options.timezone).toDateString();\n // Handle daylight time switch\n if(firstDateOffset !== firstDayOfMonthOffset) firstDate = new Date(+firstDate + (firstDateOffset - firstDayOfMonthOffset) * 60e3);\n var days = [], day;\n for(var i = 0; i < 42; i++) { // < 7 * 6\n day = dateParser.daylightSavingAdjust(new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + i));\n days.push({date: day, isToday: day.toDateString() === today, label: formatDate(day, this.format), selected: picker.$date && this.isSelected(day), muted: day.getMonth() !== viewDate.month, disabled: this.isDisabled(day)});\n }\n scope.title = formatDate(firstDayOfMonth, options.monthTitleFormat);\n scope.showLabels = true;\n scope.labels = weekDaysLabelsHtml;\n scope.rows = split(days, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear() && date.getMonth() === picker.$date.getMonth() && date.getDate() === picker.$date.getDate();\n },\n isDisabled: function(date) {\n var time = date.getTime();\n\n // Disabled because of min/max date.\n if (time < options.minDate || time > options.maxDate) return true;\n\n // Disabled due to being a disabled day of the week\n if (options.daysOfWeekDisabled.indexOf(date.getDay()) !== -1) return true;\n\n // Disabled because of disabled date range.\n if (options.disabledDateRanges) {\n for (var i = 0; i < options.disabledDateRanges.length; i++) {\n if (time >= options.disabledDateRanges[i].start && time <= options.disabledDateRanges[i].end) {\n return true;\n }\n }\n }\n\n return false;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualTime = picker.$date.getTime();\n var newDate;\n\n if(evt.keyCode === 37) newDate = new Date(actualTime - 1 * 864e5);\n else if(evt.keyCode === 38) newDate = new Date(actualTime - 7 * 864e5);\n else if(evt.keyCode === 39) newDate = new Date(actualTime + 1 * 864e5);\n else if(evt.keyCode === 40) newDate = new Date(actualTime + 7 * 864e5);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }, {\n name: 'month',\n format: options.monthFormat,\n split: 4,\n steps: { year: 1 },\n update: function(date, force) {\n if(!this.built || date.getFullYear() !== viewDate.year) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getMonth() !== viewDate.month) {\n angular.extend(viewDate, {month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstMonth = new Date(viewDate.year, 0, 1);\n var months = [], month;\n for (var i = 0; i < 12; i++) {\n month = new Date(viewDate.year, i, 1);\n months.push({date: month, label: formatDate(month, this.format), selected: picker.$isSelected(month), disabled: this.isDisabled(month)});\n }\n scope.title = formatDate(month, options.yearTitleFormat);\n scope.showLabels = false;\n scope.rows = split(months, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear() && date.getMonth() === picker.$date.getMonth();\n },\n isDisabled: function(date) {\n var lastDate = +new Date(date.getFullYear(), date.getMonth() + 1, 0);\n return lastDate < options.minDate || date.getTime() > options.maxDate;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualMonth = picker.$date.getMonth();\n var newDate = new Date(picker.$date);\n\n if(evt.keyCode === 37) newDate.setMonth(actualMonth - 1);\n else if(evt.keyCode === 38) newDate.setMonth(actualMonth - 4);\n else if(evt.keyCode === 39) newDate.setMonth(actualMonth + 1);\n else if(evt.keyCode === 40) newDate.setMonth(actualMonth + 4);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }, {\n name: 'year',\n format: options.yearFormat,\n split: 4,\n steps: { year: 12 },\n update: function(date, force) {\n if(!this.built || force || parseInt(date.getFullYear()/20, 10) !== parseInt(viewDate.year/20, 10)) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getFullYear() !== viewDate.year) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstYear = viewDate.year - viewDate.year % (this.split * 3);\n var years = [], year;\n for (var i = 0; i < 12; i++) {\n year = new Date(firstYear + i, 0, 1);\n years.push({date: year, label: formatDate(year, this.format), selected: picker.$isSelected(year), disabled: this.isDisabled(year)});\n }\n scope.title = years[0].label + '-' + years[years.length - 1].label;\n scope.showLabels = false;\n scope.rows = split(years, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear();\n },\n isDisabled: function(date) {\n var lastDate = +new Date(date.getFullYear() + 1, 0, 0);\n return lastDate < options.minDate || date.getTime() > options.maxDate;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualYear = picker.$date.getFullYear(),\n newDate = new Date(picker.$date);\n\n if(evt.keyCode === 37) newDate.setYear(actualYear - 1);\n else if(evt.keyCode === 38) newDate.setYear(actualYear - 4);\n else if(evt.keyCode === 39) newDate.setYear(actualYear + 1);\n else if(evt.keyCode === 40) newDate.setYear(actualYear + 4);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }];\n\n return {\n views: options.minView ? Array.prototype.slice.call(views, options.minView) : views,\n viewDate: viewDate\n };\n\n };\n\n };\n\n });\n\n// Source: dropdown/dropdown.js\nangular.module('mgcrea.ngStrap.dropdown', ['mgcrea.ngStrap.tooltip'])\n\n .provider('$dropdown', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'dropdown',\n prefixEvent: 'dropdown',\n placement: 'bottom-left',\n templateUrl: 'dropdown/dropdown.tpl.html',\n trigger: 'click',\n container: false,\n keyboard: true,\n html: false,\n delay: 0\n };\n\n this.$get = function($window, $rootScope, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var matchesSelector = Element.prototype.matchesSelector || Element.prototype.webkitMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector;\n\n function DropdownFactory(element, config) {\n\n var $dropdown = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n var scope = $dropdown.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n $dropdown = $tooltip(element, options);\n var parentEl = element.parent();\n\n // Protected methods\n\n $dropdown.$onKeyDown = function(evt) {\n if (!/(38|40)/.test(evt.keyCode)) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // Retrieve focused index\n var items = angular.element($dropdown.$element[0].querySelectorAll('li:not(.divider) a'));\n if(!items.length) return;\n var index;\n angular.forEach(items, function(el, i) {\n if(matchesSelector && matchesSelector.call(el, ':focus')) index = i;\n });\n\n // Navigate with keyboard\n if(evt.keyCode === 38 && index > 0) index--;\n else if(evt.keyCode === 40 && index < items.length - 1) index++;\n else if(angular.isUndefined(index)) index = 0;\n items.eq(index)[0].focus();\n\n };\n\n // Overrides\n\n var show = $dropdown.show;\n $dropdown.show = function() {\n show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n options.keyboard && $dropdown.$element && $dropdown.$element.on('keydown', $dropdown.$onKeyDown);\n bodyEl.on('click', onBodyClick);\n }, 0, false);\n parentEl.hasClass('dropdown') && parentEl.addClass('open');\n };\n\n var hide = $dropdown.hide;\n $dropdown.hide = function() {\n if(!$dropdown.$isShown) return;\n options.keyboard && $dropdown.$element && $dropdown.$element.off('keydown', $dropdown.$onKeyDown);\n bodyEl.off('click', onBodyClick);\n parentEl.hasClass('dropdown') && parentEl.removeClass('open');\n hide();\n };\n\n var destroy = $dropdown.destroy;\n $dropdown.destroy = function() {\n bodyEl.off('click', onBodyClick);\n destroy();\n };\n\n // Private functions\n\n function onBodyClick(evt) {\n if(evt.target === element[0]) return;\n return evt.target !== element[0] && $dropdown.hide();\n }\n\n return $dropdown;\n\n }\n\n return DropdownFactory;\n\n };\n\n })\n\n .directive('bsDropdown', function($window, $sce, $dropdown) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'id'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as an object\n attr.bsDropdown && scope.$watch(attr.bsDropdown, function(newValue, oldValue) {\n scope.content = newValue;\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!dropdown || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(dropdown),?/i);\n newValue === true ? dropdown.show() : dropdown.hide();\n });\n\n // Initialize dropdown\n var dropdown = $dropdown(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (dropdown) dropdown.destroy();\n options = null;\n dropdown = null;\n });\n\n }\n };\n\n });\n\n// Source: helpers/compiler.js\n// NOTICE: This file was forked from the angular-material project (github.com/angular/material)\n// MIT Licensed - Copyright (c) 2014-2015 Google, Inc. http://angularjs.org\n\nangular.module('mgcrea.ngStrap.core', [])\n .service('$bsCompiler', bsCompilerService);\n\nfunction bsCompilerService($q, $http, $injector, $compile, $controller, $templateCache) {\n /* jshint validthis: true */\n\n /*\n * @ngdoc service\n * @name $bsCompiler\n * @module material.core\n * @description\n * The $bsCompiler service is an abstraction of angular's compiler, that allows the developer\n * to easily compile an element with a templateUrl, controller, and locals.\n *\n * @usage\n * \n * $bsCompiler.compile({\n * templateUrl: 'modal.html',\n * controller: 'ModalCtrl',\n * locals: {\n * modal: myModalInstance;\n * }\n * }).then(function(compileData) {\n * compileData.element; // modal.html's template in an element\n * compileData.link(myScope); //attach controller & scope to element\n * });\n * \n */\n\n /*\n * @ngdoc method\n * @name $bsCompiler#compile\n * @description A helper to compile an HTML template/templateUrl with a given controller,\n * locals, and scope.\n * @param {object} options An options object, with the following properties:\n *\n * - `controller` - `{(string=|function()=}` Controller fn that should be associated with\n * newly created scope or the name of a registered controller if passed as a string.\n * - `controllerAs` - `{string=}` A controller alias name. If present the controller will be\n * published to scope under the `controllerAs` name.\n * - `template` - `{string=}` An html template as a string.\n * - `templateUrl` - `{string=}` A path to an html template.\n * - `transformTemplate` - `{function(template)=}` A function which transforms the template after\n * it is loaded. It will be given the template string as a parameter, and should\n * return a a new string representing the transformed template.\n * - `resolve` - `{Object.=}` - An optional map of dependencies which should\n * be injected into the controller. If any of these dependencies are promises, the compiler\n * will wait for them all to be resolved, or if one is rejected before the controller is\n * instantiated `compile()` will fail..\n * * `key` - `{string}`: a name of a dependency to be injected into the controller.\n * * `factory` - `{string|function}`: If `string` then it is an alias for a service.\n * Otherwise if function, then it is injected and the return value is treated as the\n * dependency. If the result is a promise, it is resolved before its value is\n * injected into the controller.\n *\n * @returns {object=} promise A promise, which will be resolved with a `compileData` object.\n * `compileData` has the following properties:\n *\n * - `element` - `{element}`: an uncompiled element matching the provided template.\n * - `link` - `{function(scope)}`: A link function, which, when called, will compile\n * the element and instantiate the provided controller (if given).\n * - `locals` - `{object}`: The locals which will be passed into the controller once `link` is\n * called. If `bindToController` is true, they will be coppied to the ctrl instead\n * - `bindToController` - `bool`: bind the locals to the controller, instead of passing them in.\n */\n this.compile = function(options) {\n\n if(options.template && /\\.html$/.test(options.template)) {\n console.warn('Deprecated use of `template` option to pass a file. Please use the `templateUrl` option instead.');\n options.templateUrl = options.template;\n options.template = '';\n }\n\n var templateUrl = options.templateUrl;\n var template = options.template || '';\n var controller = options.controller;\n var controllerAs = options.controllerAs;\n var resolve = angular.copy(options.resolve || {});\n var locals = angular.copy(options.locals || {});\n var transformTemplate = options.transformTemplate || angular.identity;\n var bindToController = options.bindToController;\n\n // Take resolve values and invoke them.\n // Resolves can either be a string (value: 'MyRegisteredAngularConst'),\n // or an invokable 'factory' of sorts: (value: function ValueGetter($dependency) {})\n angular.forEach(resolve, function(value, key) {\n if (angular.isString(value)) {\n resolve[key] = $injector.get(value);\n } else {\n resolve[key] = $injector.invoke(value);\n }\n });\n // Add the locals, which are just straight values to inject\n // eg locals: { three: 3 }, will inject three into the controller\n angular.extend(resolve, locals);\n\n if (templateUrl) {\n resolve.$template = fetchTemplate(templateUrl);\n } else {\n resolve.$template = $q.when(template);\n }\n\n if (options.contentTemplate) {\n // TODO(mgcrea): deprecate?\n resolve.$template = $q.all([resolve.$template, fetchTemplate(options.contentTemplate)])\n .then(function(templates) {\n var templateEl = angular.element(templates[0]);\n var contentEl = findElement('[ng-bind=\"content\"]', templateEl[0]).removeAttr('ng-bind').html(templates[1]);\n // Drop the default footer as you probably don't want it if you use a custom contentTemplate\n if(!options.templateUrl) contentEl.next().remove();\n return templateEl[0].outerHTML;\n });\n }\n\n // Wait for all the resolves to finish if they are promises\n return $q.all(resolve).then(function(locals) {\n\n var template = transformTemplate(locals.$template);\n if (options.html) {\n template = template.replace(/ng-bind=\"/ig, 'ng-bind-html=\"');\n }\n // var element = options.element || angular.element('
').html(template.trim()).contents();\n var element = angular.element('
').html(template.trim()).contents();\n var linkFn = $compile(element);\n\n // Return a linking function that can be used later when the element is ready\n return {\n locals: locals,\n element: element,\n link: function link(scope) {\n locals.$scope = scope;\n\n // Instantiate controller if it exists, because we have scope\n if (controller) {\n var invokeCtrl = $controller(controller, locals, true);\n if (bindToController) {\n angular.extend(invokeCtrl.instance, locals);\n }\n // Support angular@~1.2 invokeCtrl\n var ctrl = angular.isObject(invokeCtrl) ? invokeCtrl : invokeCtrl();\n // See angular-route source for this logic\n element.data('$ngControllerController', ctrl);\n element.children().data('$ngControllerController', ctrl);\n\n if (controllerAs) {\n scope[controllerAs] = ctrl;\n }\n }\n\n return linkFn.apply(null, arguments);\n }\n };\n });\n\n };\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n var fetchPromises = {};\n function fetchTemplate(template) {\n if(fetchPromises[template]) return fetchPromises[template];\n return (fetchPromises[template] = $http.get(template, {cache: $templateCache})\n .then(function(res) {\n return res.data;\n }));\n }\n\n}\n\n// Source: helpers/date-formatter.js\nangular.module('mgcrea.ngStrap.helpers.dateFormatter', [])\n\n .service('$dateFormatter', function($locale, dateFilter) {\n\n // The unused `lang` arguments are on purpose. The default implementation does not\n // use them and it always uses the locale loaded into the `$locale` service.\n // Custom implementations might use it, thus allowing different directives to\n // have different languages.\n\n this.getDefaultLocale = function() {\n return $locale.id;\n };\n\n // Format is either a data format name, e.g. \"shortTime\" or \"fullDate\", or a date format\n // Return either the corresponding date format or the given date format.\n this.getDatetimeFormat = function(format, lang) {\n return $locale.DATETIME_FORMATS[format] || format;\n };\n\n this.weekdaysShort = function(lang) {\n return $locale.DATETIME_FORMATS.SHORTDAY;\n };\n\n function splitTimeFormat(format) {\n return /(h+)([:\\.])?(m+)([:\\.])?(s*)[ ]?(a?)/i.exec(format).slice(1);\n }\n\n // h:mm a => h\n this.hoursFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[0];\n };\n\n // h:mm a => mm\n this.minutesFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[2];\n };\n\n // h:mm:ss a => ss\n this.secondsFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[4];\n };\n\n // h:mm a => :\n this.timeSeparator = function(timeFormat) {\n return splitTimeFormat(timeFormat)[1];\n };\n\n // h:mm:ss a => true, h:mm a => false\n this.showSeconds = function(timeFormat) {\n return !!splitTimeFormat(timeFormat)[4];\n };\n\n // h:mm a => true, H.mm => false\n this.showAM = function(timeFormat) {\n return !!splitTimeFormat(timeFormat)[5];\n };\n\n this.formatDate = function(date, format, lang, timezone){\n return dateFilter(date, format, timezone);\n };\n\n });\n\n// Source: helpers/date-parser.js\nangular.module('mgcrea.ngStrap.helpers.dateParser', [])\n\n.provider('$dateParser', function($localeProvider) {\n\n // define a custom ParseDate object to use instead of native Date\n // to avoid date values wrapping when setting date component values\n function ParseDate() {\n this.year = 1970;\n this.month = 0;\n this.day = 1;\n this.hours = 0;\n this.minutes = 0;\n this.seconds = 0;\n this.milliseconds = 0;\n }\n\n ParseDate.prototype.setMilliseconds = function(value) { this.milliseconds = value; };\n ParseDate.prototype.setSeconds = function(value) { this.seconds = value; };\n ParseDate.prototype.setMinutes = function(value) { this.minutes = value; };\n ParseDate.prototype.setHours = function(value) { this.hours = value; };\n ParseDate.prototype.getHours = function() { return this.hours; };\n ParseDate.prototype.setDate = function(value) { this.day = value; };\n ParseDate.prototype.setMonth = function(value) { this.month = value; };\n ParseDate.prototype.setFullYear = function(value) { this.year = value; };\n ParseDate.prototype.fromDate = function(value) {\n this.year = value.getFullYear();\n this.month = value.getMonth();\n this.day = value.getDate();\n this.hours = value.getHours();\n this.minutes = value.getMinutes();\n this.seconds = value.getSeconds();\n this.milliseconds = value.getMilliseconds();\n return this;\n };\n\n ParseDate.prototype.toDate = function() {\n return new Date(this.year, this.month, this.day, this.hours, this.minutes, this.seconds, this.milliseconds);\n };\n\n var proto = ParseDate.prototype;\n\n function noop() {\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function indexOfCaseInsensitive(array, value) {\n var len = array.length, str=value.toString().toLowerCase();\n for (var i=0; i 12 when midnight changeover, but then cannot generate\n * midnight datetime, so jump to 1AM, otherwise reset.\n * @param date (Date) the date to check\n * @return (Date) the corrected date\n *\n * __ copied from jquery ui datepicker __\n */\n $dateParser.daylightSavingAdjust = function(date) {\n if (!date) {\n return null;\n }\n date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);\n return date;\n };\n\n /* Correct the date for timezone offset.\n * @param date (Date) the date to adjust\n * @param timezone (string) the timezone to adjust for\n * @param undo (boolean) to add or subtract timezone offset\n * @return (Date) the corrected date\n */\n $dateParser.timezoneOffsetAdjust = function(date, timezone, undo) {\n if (!date) {\n return null;\n }\n // Right now, only 'UTC' is supported.\n if (timezone && timezone === 'UTC') {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + (undo?-1:1)*date.getTimezoneOffset());\n }\n return date;\n };\n\n // Private functions\n\n function setMapForFormat(format) {\n var keys = Object.keys(setFnMap), i;\n var map = [], sortedMap = [];\n // Map to setFn\n var clonedFormat = format;\n for(i = 0; i < keys.length; i++) {\n if(format.split(keys[i]).length > 1) {\n var index = clonedFormat.search(keys[i]);\n format = format.split(keys[i]).join('');\n if(setFnMap[keys[i]]) {\n map[index] = setFnMap[keys[i]];\n }\n }\n }\n // Sort result map\n angular.forEach(map, function(v) {\n // conditional required since angular.forEach broke around v1.2.21\n // related pr: https://github.com/angular/angular.js/pull/8525\n if(v) sortedMap.push(v);\n });\n return sortedMap;\n }\n\n function escapeReservedSymbols(text) {\n return text.replace(/\\//g, '[\\\\/]').replace('/-/g', '[-]').replace(/\\./g, '[.]').replace(/\\\\s/g, '[\\\\s]');\n }\n\n function regExpForFormat(format) {\n var keys = Object.keys(regExpMap), i;\n\n var re = format;\n // Abstract replaces to avoid collisions\n for(i = 0; i < keys.length; i++) {\n re = re.split(keys[i]).join('${' + i + '}');\n }\n // Replace abstracted values\n for(i = 0; i < keys.length; i++) {\n re = re.split('${' + i + '}').join('(' + regExpMap[keys[i]] + ')');\n }\n format = escapeReservedSymbols(format);\n\n return new RegExp('^' + re + '$', ['i']);\n }\n\n $dateParser.init();\n return $dateParser;\n\n };\n\n return DateParserFactory;\n\n };\n\n});\n\n// Source: helpers/debounce.js\nangular.module('mgcrea.ngStrap.helpers.debounce', [])\n\n// @source jashkenas/underscore\n// @url https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L693\n.factory('debounce', function($timeout) {\n return function(func, wait, immediate) {\n var timeout = null;\n return function() {\n var context = this,\n args = arguments,\n callNow = immediate && !timeout;\n if(timeout) {\n $timeout.cancel(timeout);\n }\n timeout = $timeout(function later() {\n timeout = null;\n if(!immediate) {\n func.apply(context, args);\n }\n }, wait, false);\n if(callNow) {\n func.apply(context, args);\n }\n return timeout;\n };\n };\n})\n\n\n// @source jashkenas/underscore\n// @url https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L661\n.factory('throttle', function($timeout) {\n return function(func, wait, options) {\n var timeout = null;\n options || (options = {});\n return function() {\n var context = this,\n args = arguments;\n if(!timeout) {\n if(options.leading !== false) {\n func.apply(context, args);\n }\n timeout = $timeout(function later() {\n timeout = null;\n if(options.trailing !== false) {\n func.apply(context, args);\n }\n }, wait, false);\n }\n };\n };\n});\n\n// Source: helpers/dimensions.js\nangular.module('mgcrea.ngStrap.helpers.dimensions', [])\n\n .factory('dimensions', function($document, $window) {\n\n var jqLite = angular.element;\n var fn = {};\n\n /**\n * Test the element nodeName\n * @param element\n * @param name\n */\n var nodeName = fn.nodeName = function(element, name) {\n return element.nodeName && element.nodeName.toLowerCase() === name.toLowerCase();\n };\n\n /**\n * Returns the element computed style\n * @param element\n * @param prop\n * @param extra\n */\n fn.css = function(element, prop, extra) {\n var value;\n if (element.currentStyle) { //IE\n value = element.currentStyle[prop];\n } else if (window.getComputedStyle) {\n value = window.getComputedStyle(element)[prop];\n } else {\n value = element.style[prop];\n }\n return extra === true ? parseFloat(value) || 0 : value;\n };\n\n /**\n * Provides read-only equivalent of jQuery's offset function:\n * @required-by bootstrap-tooltip, bootstrap-affix\n * @url http://api.jquery.com/offset/\n * @param element\n */\n fn.offset = function(element) {\n var boxRect = element.getBoundingClientRect();\n var docElement = element.ownerDocument;\n return {\n width: boxRect.width || element.offsetWidth,\n height: boxRect.height || element.offsetHeight,\n top: boxRect.top + (window.pageYOffset || docElement.documentElement.scrollTop) - (docElement.documentElement.clientTop || 0),\n left: boxRect.left + (window.pageXOffset || docElement.documentElement.scrollLeft) - (docElement.documentElement.clientLeft || 0)\n };\n };\n \n /**\n * Provides set equivalent of jQuery's offset function:\n * @required-by bootstrap-tooltip\n * @url http://api.jquery.com/offset/\n * @param element\n * @param options\n * @param i\n */\n fn.setOffset = function (element, options, i) {\n var curPosition,\n curLeft,\n curCSSTop,\n curTop,\n curOffset,\n curCSSLeft,\n calculatePosition,\n position = fn.css(element, 'position'),\n curElem = angular.element(element),\n props = {};\n \n // Set position first, in-case top/left are set even on static elem\n if (position === 'static') {\n element.style.position = 'relative';\n }\n \n curOffset = fn.offset(element);\n curCSSTop = fn.css(element, 'top');\n curCSSLeft = fn.css(element, 'left');\n calculatePosition = (position === 'absolute' || position === 'fixed') && \n (curCSSTop + curCSSLeft).indexOf('auto') > -1;\n \n // Need to be able to calculate position if either\n // top or left is auto and position is either absolute or fixed\n if (calculatePosition) {\n curPosition = fn.position(element);\n curTop = curPosition.top;\n curLeft = curPosition.left;\n } else {\n curTop = parseFloat(curCSSTop) || 0;\n curLeft = parseFloat(curCSSLeft) || 0;\n }\n \n if (angular.isFunction(options)) {\n options = options.call(element, i, curOffset);\n }\n \n if (options.top !== null ) {\n props.top = (options.top - curOffset.top) + curTop;\n }\n if ( options.left !== null ) {\n props.left = (options.left - curOffset.left) + curLeft;\n }\n\n if ('using' in options) {\n options.using.call(curElem, props);\n } else {\n curElem.css({\n top: props.top + 'px',\n left: props.left + 'px'\n });\n }\n };\n\n /**\n * Provides read-only equivalent of jQuery's position function\n * @required-by bootstrap-tooltip, bootstrap-affix\n * @url http://api.jquery.com/offset/\n * @param element\n */\n fn.position = function(element) {\n\n var offsetParentRect = {top: 0, left: 0},\n offsetParentElement,\n offset;\n\n // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent\n if (fn.css(element, 'position') === 'fixed') {\n\n // We assume that getBoundingClientRect is available when computed position is fixed\n offset = element.getBoundingClientRect();\n\n } else {\n\n // Get *real* offsetParentElement\n offsetParentElement = offsetParent(element);\n\n // Get correct offsets\n offset = fn.offset(element);\n if (!nodeName(offsetParentElement, 'html')) {\n offsetParentRect = fn.offset(offsetParentElement);\n }\n\n // Add offsetParent borders\n offsetParentRect.top += fn.css(offsetParentElement, 'borderTopWidth', true);\n offsetParentRect.left += fn.css(offsetParentElement, 'borderLeftWidth', true);\n }\n\n // Subtract parent offsets and element margins\n return {\n width: element.offsetWidth,\n height: element.offsetHeight,\n top: offset.top - offsetParentRect.top - fn.css(element, 'marginTop', true),\n left: offset.left - offsetParentRect.left - fn.css(element, 'marginLeft', true)\n };\n\n };\n\n /**\n * Returns the closest, non-statically positioned offsetParent of a given element\n * @required-by fn.position\n * @param element\n */\n var offsetParent = function offsetParentElement(element) {\n var docElement = element.ownerDocument;\n var offsetParent = element.offsetParent || docElement;\n if(nodeName(offsetParent, '#document')) return docElement.documentElement;\n while(offsetParent && !nodeName(offsetParent, 'html') && fn.css(offsetParent, 'position') === 'static') {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || docElement.documentElement;\n };\n\n /**\n * Provides equivalent of jQuery's height function\n * @required-by bootstrap-affix\n * @url http://api.jquery.com/height/\n * @param element\n * @param outer\n */\n fn.height = function(element, outer) {\n var value = element.offsetHeight;\n if(outer) {\n value += fn.css(element, 'marginTop', true) + fn.css(element, 'marginBottom', true);\n } else {\n value -= fn.css(element, 'paddingTop', true) + fn.css(element, 'paddingBottom', true) + fn.css(element, 'borderTopWidth', true) + fn.css(element, 'borderBottomWidth', true);\n }\n return value;\n };\n\n /**\n * Provides equivalent of jQuery's width function\n * @required-by bootstrap-affix\n * @url http://api.jquery.com/width/\n * @param element\n * @param outer\n */\n fn.width = function(element, outer) {\n var value = element.offsetWidth;\n if(outer) {\n value += fn.css(element, 'marginLeft', true) + fn.css(element, 'marginRight', true);\n } else {\n value -= fn.css(element, 'paddingLeft', true) + fn.css(element, 'paddingRight', true) + fn.css(element, 'borderLeftWidth', true) + fn.css(element, 'borderRightWidth', true);\n }\n return value;\n };\n\n return fn;\n\n });\n\n// Source: helpers/parse-options.js\nangular.module('mgcrea.ngStrap.helpers.parseOptions', [])\n\n .provider('$parseOptions', function() {\n\n var defaults = this.defaults = {\n regexp: /^\\s*(.*?)(?:\\s+as\\s+(.*?))?(?:\\s+group\\s+by\\s+(.*))?\\s+for\\s+(?:([\\$\\w][\\$\\w]*)|(?:\\(\\s*([\\$\\w][\\$\\w]*)\\s*,\\s*([\\$\\w][\\$\\w]*)\\s*\\)))\\s+in\\s+(.*?)(?:\\s+track\\s+by\\s+(.*?))?$/\n };\n\n this.$get = function($parse, $q) {\n\n function ParseOptionsFactory(attr, config) {\n\n var $parseOptions = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n $parseOptions.$values = [];\n\n // Private vars\n var match, displayFn, valueName, keyName, groupByFn, valueFn, valuesFn;\n\n $parseOptions.init = function() {\n $parseOptions.$match = match = attr.match(options.regexp);\n displayFn = $parse(match[2] || match[1]),\n valueName = match[4] || match[6],\n keyName = match[5],\n groupByFn = $parse(match[3] || ''),\n valueFn = $parse(match[2] ? match[1] : valueName),\n valuesFn = $parse(match[7]);\n };\n\n $parseOptions.valuesFn = function(scope, controller) {\n return $q.when(valuesFn(scope, controller))\n .then(function(values) {\n if(!angular.isArray(values)) {\n values = [];\n }\n $parseOptions.$values = values.length ? parseValues(values, scope) : [];\n return $parseOptions.$values;\n });\n };\n\n $parseOptions.displayValue = function(modelValue) {\n var scope = {};\n scope[valueName] = modelValue;\n return displayFn(scope);\n };\n\n // Private functions\n\n function parseValues(values, scope) {\n return values.map(function(match, index) {\n var locals = {}, label, value;\n locals[valueName] = match;\n label = displayFn(scope, locals);\n value = valueFn(scope, locals);\n return {label: label, value: value, index: index};\n });\n }\n\n $parseOptions.init();\n return $parseOptions;\n\n }\n\n return ParseOptionsFactory;\n\n };\n\n });\n\n// Source: helpers/raf.js\n(angular.version.minor < 3 && angular.version.dot < 14) && angular.module('ng')\n\n.factory('$$rAF', function($window, $timeout) {\n\n var requestAnimationFrame = $window.requestAnimationFrame ||\n $window.webkitRequestAnimationFrame ||\n $window.mozRequestAnimationFrame;\n\n var cancelAnimationFrame = $window.cancelAnimationFrame ||\n $window.webkitCancelAnimationFrame ||\n $window.mozCancelAnimationFrame ||\n $window.webkitCancelRequestAnimationFrame;\n\n var rafSupported = !!requestAnimationFrame;\n var raf = rafSupported ?\n function(fn) {\n var id = requestAnimationFrame(fn);\n return function() {\n cancelAnimationFrame(id);\n };\n } :\n function(fn) {\n var timer = $timeout(fn, 16.66, false); // 1000 / 60 = 16.666\n return function() {\n $timeout.cancel(timer);\n };\n };\n\n raf.supported = rafSupported;\n\n return raf;\n\n});\n\n// .factory('$$animateReflow', function($$rAF, $document) {\n\n// var bodyEl = $document[0].body;\n\n// return function(fn) {\n// //the returned function acts as the cancellation function\n// return $$rAF(function() {\n// //the line below will force the browser to perform a repaint\n// //so that all the animated elements within the animation frame\n// //will be properly updated and drawn on screen. This is\n// //required to perform multi-class CSS based animations with\n// //Firefox. DO NOT REMOVE THIS LINE.\n// var a = bodyEl.offsetWidth + 1;\n// fn();\n// });\n// };\n\n// });\n\n// Source: modal/modal.js\nangular.module('mgcrea.ngStrap.modal', ['mgcrea.ngStrap.core', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$modal', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n backdropAnimation: 'am-fade',\n prefixClass: 'modal',\n prefixEvent: 'modal',\n placement: 'top',\n templateUrl: 'modal/modal.tpl.html',\n template: '',\n contentTemplate: false,\n container: false,\n element: null,\n backdrop: true,\n keyboard: true,\n html: false,\n show: true\n };\n\n this.$get = function($window, $rootScope, $bsCompiler, $q, $templateCache, $http, $animate, $timeout, $sce, dimensions) {\n\n var forEach = angular.forEach;\n var trim = String.prototype.trim;\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n var bodyElement = angular.element($window.document.body);\n\n function ModalFactory(config) {\n\n var $modal = {};\n\n // Common vars\n var options = $modal.$options = angular.extend({}, defaults, config);\n var promise = $modal.$promise = $bsCompiler.compile(options);\n var scope = $modal.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n if(!options.element && !options.container) {\n options.container = 'body';\n }\n\n // Store $id to identify the triggering element in events\n // give priority to options.id, otherwise, try to use\n // element id if defined\n $modal.$id = options.id || options.element && options.element.attr('id') || '';\n\n // Support scope as string options\n forEach(['title', 'content'], function(key) {\n if(options[key]) scope[key] = $sce.trustAsHtml(options[key]);\n });\n\n // Provide scope helpers\n scope.$hide = function() {\n scope.$$postDigest(function() {\n $modal.hide();\n });\n };\n scope.$show = function() {\n scope.$$postDigest(function() {\n $modal.show();\n });\n };\n scope.$toggle = function() {\n scope.$$postDigest(function() {\n $modal.toggle();\n });\n };\n // Publish isShown as a protected var on scope\n $modal.$isShown = scope.$isShown = false;\n\n // Fetch, compile then initialize modal\n var compileData, modalElement, modalScope;\n var backdropElement = angular.element('
');\n backdropElement.css({position:'fixed', top:'0px', left:'0px', bottom:'0px', right:'0px', 'z-index': 1038});\n promise.then(function(data) {\n compileData = data;\n $modal.init();\n });\n\n $modal.init = function() {\n\n // Options: show\n if(options.show) {\n scope.$$postDigest(function() {\n $modal.show();\n });\n }\n\n };\n\n $modal.destroy = function() {\n\n // Remove element\n destroyModalElement();\n\n // remove backdrop element\n if(backdropElement) {\n backdropElement.remove();\n backdropElement = null;\n }\n\n // Destroy scope\n scope.$destroy();\n };\n\n $modal.show = function() {\n if($modal.$isShown) return;\n\n var parent, after;\n if(angular.isElement(options.container)) {\n parent = options.container;\n after = options.container[0].lastChild ? angular.element(options.container[0].lastChild) : null;\n } else {\n if (options.container) {\n parent = findElement(options.container);\n after = parent[0] && parent[0].lastChild ? angular.element(parent[0].lastChild) : null;\n } else {\n parent = null;\n after = options.element;\n }\n }\n\n // destroy any existing modal elements\n if(modalElement) destroyModalElement();\n\n // create a new scope, so we can destroy it and all child scopes\n // when destroying the modal element\n modalScope = $modal.$scope.$new();\n // Fetch a cloned element linked from template (noop callback is required)\n modalElement = $modal.$element = compileData.link(modalScope, function(clonedElement, scope) {});\n\n if(scope.$emit(options.prefixEvent + '.show.before', $modal).defaultPrevented) {\n return;\n }\n\n // Set the initial positioning.\n modalElement.css({display: 'block'}).addClass(options.placement);\n\n // Options: animation\n if(options.animation) {\n if(options.backdrop) {\n backdropElement.addClass(options.backdropAnimation);\n }\n modalElement.addClass(options.animation);\n }\n\n if(options.backdrop) {\n $animate.enter(backdropElement, bodyElement, null);\n }\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.enter(modalElement, parent, after, enterAnimateCallback);\n } else {\n $animate.enter(modalElement, parent, after).then(enterAnimateCallback);\n }\n\n $modal.$isShown = scope.$isShown = true;\n safeDigest(scope);\n // Focus once the enter-animation has started\n // Weird PhantomJS bug hack\n var el = modalElement[0];\n requestAnimationFrame(function() {\n el.focus();\n });\n\n bodyElement.addClass(options.prefixClass + '-open');\n if(options.animation) {\n bodyElement.addClass(options.prefixClass + '-with-' + options.animation);\n }\n\n // Bind events\n bindBackdropEvents();\n bindKeyboardEvents();\n };\n\n function enterAnimateCallback() {\n scope.$emit(options.prefixEvent + '.show', $modal);\n }\n\n $modal.hide = function() {\n if(!$modal.$isShown) return;\n\n if(scope.$emit(options.prefixEvent + '.hide.before', $modal).defaultPrevented) {\n return;\n }\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.leave(modalElement, leaveAnimateCallback);\n } else {\n $animate.leave(modalElement).then(leaveAnimateCallback);\n }\n\n if(options.backdrop) {\n $animate.leave(backdropElement);\n }\n $modal.$isShown = scope.$isShown = false;\n safeDigest(scope);\n\n // Unbind events\n unbindBackdropEvents();\n unbindKeyboardEvents();\n };\n\n function leaveAnimateCallback() {\n scope.$emit(options.prefixEvent + '.hide', $modal);\n bodyElement.removeClass(options.prefixClass + '-open');\n if(options.animation) {\n bodyElement.removeClass(options.prefixClass + '-with-' + options.animation);\n }\n }\n\n $modal.toggle = function() {\n\n $modal.$isShown ? $modal.hide() : $modal.show();\n\n };\n\n $modal.focus = function() {\n modalElement[0].focus();\n };\n\n // Protected methods\n\n $modal.$onKeyUp = function(evt) {\n\n if (evt.which === 27 && $modal.$isShown) {\n $modal.hide();\n evt.stopPropagation();\n }\n\n };\n\n function bindBackdropEvents() {\n if(options.backdrop) {\n modalElement.on('click', hideOnBackdropClick);\n backdropElement.on('click', hideOnBackdropClick);\n backdropElement.on('wheel', preventEventDefault);\n }\n }\n\n function unbindBackdropEvents() {\n if(options.backdrop) {\n modalElement.off('click', hideOnBackdropClick);\n backdropElement.off('click', hideOnBackdropClick);\n backdropElement.off('wheel', preventEventDefault);\n }\n }\n\n function bindKeyboardEvents() {\n if(options.keyboard) {\n modalElement.on('keyup', $modal.$onKeyUp);\n }\n }\n\n function unbindKeyboardEvents() {\n if(options.keyboard) {\n modalElement.off('keyup', $modal.$onKeyUp);\n }\n }\n\n // Private methods\n\n function hideOnBackdropClick(evt) {\n if(evt.target !== evt.currentTarget) return;\n options.backdrop === 'static' ? $modal.focus() : $modal.hide();\n }\n\n function preventEventDefault(evt) {\n evt.preventDefault();\n }\n\n function destroyModalElement() {\n if($modal.$isShown && modalElement !== null) {\n // un-bind events\n unbindBackdropEvents();\n unbindKeyboardEvents();\n }\n\n if(modalScope) {\n modalScope.$destroy();\n modalScope = null;\n }\n\n if(modalElement) {\n modalElement.remove();\n modalElement = $modal.$element = null;\n }\n }\n\n return $modal;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n return ModalFactory;\n\n };\n\n })\n\n .directive('bsModal', function($window, $sce, $modal) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'controller', 'placement', 'backdrop', 'keyboard', 'html', 'container', 'animation', 'id', 'prefixEvent', 'prefixClass'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['backdrop', 'keyboard', 'html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsModal && scope.$watch(attr.bsModal, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize modal\n var modal = $modal(options);\n\n // Trigger\n element.on(attr.trigger || 'click', modal.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (modal) modal.destroy();\n options = null;\n modal = null;\n });\n\n }\n };\n\n });\n\n// Source: navbar/navbar.js\nangular.module('mgcrea.ngStrap.navbar', [])\n\n .provider('$navbar', function() {\n\n var defaults = this.defaults = {\n activeClass: 'active',\n routeAttr: 'data-match-route',\n strict: false\n };\n\n this.$get = function() {\n return {defaults: defaults};\n };\n\n })\n\n .directive('bsNavbar', function($window, $location, $navbar) {\n\n var defaults = $navbar.defaults;\n\n return {\n restrict: 'A',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = angular.copy(defaults);\n angular.forEach(Object.keys(defaults), function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // Watch for the $location\n scope.$watch(function() {\n\n return $location.path();\n\n }, function(newValue, oldValue) {\n\n var liElements = element[0].querySelectorAll('li[' + options.routeAttr + ']');\n\n angular.forEach(liElements, function(li) {\n\n var liElement = angular.element(li);\n var pattern = liElement.attr(options.routeAttr).replace('/', '\\\\/');\n if(options.strict) {\n pattern = '^' + pattern + '$';\n }\n var regexp = new RegExp(pattern, 'i');\n\n if(regexp.test(newValue)) {\n liElement.addClass(options.activeClass);\n } else {\n liElement.removeClass(options.activeClass);\n }\n\n });\n\n });\n\n }\n\n };\n\n });\n\n// Source: popover/popover.js\nangular.module('mgcrea.ngStrap.popover', ['mgcrea.ngStrap.tooltip'])\n\n .provider('$popover', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n customClass: '',\n // uncommenting the next two lines will break backwards compatability\n // prefixClass: 'popover',\n // prefixEvent: 'popover',\n container: false,\n target: false,\n placement: 'right',\n templateUrl: 'popover/popover.tpl.html',\n contentTemplate: false,\n trigger: 'click',\n keyboard: true,\n html: false,\n title: '',\n content: '',\n delay: 0,\n autoClose: false\n };\n\n this.$get = function($tooltip) {\n\n function PopoverFactory(element, config) {\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n var $popover = $tooltip(element, options);\n\n // Support scope as string options [/*title, */content]\n if(options.content) {\n $popover.$scope.content = options.content;\n }\n\n return $popover;\n\n }\n\n return PopoverFactory;\n\n };\n\n })\n\n .directive('bsPopover', function($window, $sce, $popover) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'customClass', 'autoClose', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoClose'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // should not parse target attribute (anchor tag), only data-target #1454\n var dataTarget = element.attr('data-target');\n if(angular.isDefined(dataTarget)) {\n if(falseValueRegExp.test(dataTarget))\n options.target = false;\n else\n options.target = dataTarget;\n }\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n angular.isDefined(oldValue) && requestAnimationFrame(function() {\n popover && popover.$applyPlacement();\n });\n });\n });\n\n // Support scope as an object\n attr.bsPopover && scope.$watch(attr.bsPopover, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n angular.isDefined(oldValue) && requestAnimationFrame(function() {\n popover && popover.$applyPlacement();\n });\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!popover || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(popover),?/i);\n newValue === true ? popover.show() : popover.hide();\n });\n\n // Viewport support\n attr.viewport && scope.$watch(attr.viewport, function (newValue) {\n if(!popover || !angular.isDefined(newValue)) return;\n popover.setViewport(newValue);\n });\n\n // Initialize popover\n var popover = $popover(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (popover) popover.destroy();\n options = null;\n popover = null;\n });\n\n }\n };\n\n });\n\n// Source: scrollspy/scrollspy.js\nangular.module('mgcrea.ngStrap.scrollspy', ['mgcrea.ngStrap.helpers.debounce', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$scrollspy', function() {\n\n // Pool of registered spies\n var spies = this.$$spies = {};\n\n var defaults = this.defaults = {\n debounce: 150,\n throttle: 100,\n offset: 100\n };\n\n this.$get = function($window, $document, $rootScope, dimensions, debounce, throttle) {\n\n var windowEl = angular.element($window);\n var docEl = angular.element($document.prop('documentElement'));\n var bodyEl = angular.element($window.document.body);\n\n // Helper functions\n\n function nodeName(element, name) {\n return element[0].nodeName && element[0].nodeName.toLowerCase() === name.toLowerCase();\n }\n\n function ScrollSpyFactory(config) {\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n if(!options.element) options.element = bodyEl;\n var isWindowSpy = nodeName(options.element, 'body');\n var scrollEl = isWindowSpy ? windowEl : options.element;\n var scrollId = isWindowSpy ? 'window' : options.id;\n\n // Use existing spy\n if(spies[scrollId]) {\n spies[scrollId].$$count++;\n return spies[scrollId];\n }\n\n var $scrollspy = {};\n\n // Private vars\n var unbindViewContentLoaded, unbindIncludeContentLoaded;\n var trackedElements = $scrollspy.$trackedElements = [];\n var sortedElements = [];\n var activeTarget;\n var debouncedCheckPosition;\n var throttledCheckPosition;\n var debouncedCheckOffsets;\n var viewportHeight;\n var scrollTop;\n\n $scrollspy.init = function() {\n\n // Setup internal ref counter\n this.$$count = 1;\n\n // Bind events\n debouncedCheckPosition = debounce(this.checkPosition, options.debounce);\n throttledCheckPosition = throttle(this.checkPosition, options.throttle);\n scrollEl.on('click', this.checkPositionWithEventLoop);\n windowEl.on('resize', debouncedCheckPosition);\n scrollEl.on('scroll', throttledCheckPosition);\n\n debouncedCheckOffsets = debounce(this.checkOffsets, options.debounce);\n unbindViewContentLoaded = $rootScope.$on('$viewContentLoaded', debouncedCheckOffsets);\n unbindIncludeContentLoaded = $rootScope.$on('$includeContentLoaded', debouncedCheckOffsets);\n debouncedCheckOffsets();\n\n // Register spy for reuse\n if(scrollId) {\n spies[scrollId] = $scrollspy;\n }\n\n };\n\n $scrollspy.destroy = function() {\n\n // Check internal ref counter\n this.$$count--;\n if(this.$$count > 0) {\n return;\n }\n\n // Unbind events\n scrollEl.off('click', this.checkPositionWithEventLoop);\n windowEl.off('resize', debouncedCheckPosition);\n scrollEl.off('scroll', throttledCheckPosition);\n unbindViewContentLoaded();\n unbindIncludeContentLoaded();\n if (scrollId) {\n delete spies[scrollId];\n }\n };\n\n $scrollspy.checkPosition = function() {\n\n // Not ready yet\n if(!sortedElements.length) return;\n\n // Calculate the scroll position\n scrollTop = (isWindowSpy ? $window.pageYOffset : scrollEl.prop('scrollTop')) || 0;\n\n // Calculate the viewport height for use by the components\n viewportHeight = Math.max($window.innerHeight, docEl.prop('clientHeight'));\n\n // Activate first element if scroll is smaller\n if(scrollTop < sortedElements[0].offsetTop && activeTarget !== sortedElements[0].target) {\n return $scrollspy.$activateElement(sortedElements[0]);\n }\n\n // Activate proper element\n for (var i = sortedElements.length; i--;) {\n if(angular.isUndefined(sortedElements[i].offsetTop) || sortedElements[i].offsetTop === null) continue;\n if(activeTarget === sortedElements[i].target) continue;\n if(scrollTop < sortedElements[i].offsetTop) continue;\n if(sortedElements[i + 1] && scrollTop > sortedElements[i + 1].offsetTop) continue;\n return $scrollspy.$activateElement(sortedElements[i]);\n }\n\n };\n\n $scrollspy.checkPositionWithEventLoop = function() {\n // IE 9 throws an error if we use 'this' instead of '$scrollspy'\n // in this setTimeout call\n setTimeout($scrollspy.checkPosition, 1);\n };\n\n // Protected methods\n\n $scrollspy.$activateElement = function(element) {\n if(activeTarget) {\n var activeElement = $scrollspy.$getTrackedElement(activeTarget);\n if(activeElement) {\n activeElement.source.removeClass('active');\n if(nodeName(activeElement.source, 'li') && nodeName(activeElement.source.parent().parent(), 'li')) {\n activeElement.source.parent().parent().removeClass('active');\n }\n }\n }\n activeTarget = element.target;\n element.source.addClass('active');\n if(nodeName(element.source, 'li') && nodeName(element.source.parent().parent(), 'li')) {\n element.source.parent().parent().addClass('active');\n }\n };\n\n $scrollspy.$getTrackedElement = function(target) {\n return trackedElements.filter(function(obj) {\n return obj.target === target;\n })[0];\n };\n\n // Track offsets behavior\n\n $scrollspy.checkOffsets = function() {\n\n angular.forEach(trackedElements, function(trackedElement) {\n var targetElement = document.querySelector(trackedElement.target);\n trackedElement.offsetTop = targetElement ? dimensions.offset(targetElement).top : null;\n if(options.offset && trackedElement.offsetTop !== null) trackedElement.offsetTop -= options.offset * 1;\n });\n\n sortedElements = trackedElements\n .filter(function(el) {\n return el.offsetTop !== null;\n })\n .sort(function(a, b) {\n return a.offsetTop - b.offsetTop;\n });\n\n debouncedCheckPosition();\n\n };\n\n $scrollspy.trackElement = function(target, source) {\n trackedElements.push({target: target, source: source});\n };\n\n $scrollspy.untrackElement = function(target, source) {\n var toDelete;\n for (var i = trackedElements.length; i--;) {\n if(trackedElements[i].target === target && trackedElements[i].source === source) {\n toDelete = i;\n break;\n }\n }\n trackedElements = trackedElements.splice(toDelete, 1);\n };\n\n $scrollspy.activate = function(i) {\n trackedElements[i].addClass('active');\n };\n\n // Initialize plugin\n\n $scrollspy.init();\n return $scrollspy;\n\n }\n\n return ScrollSpyFactory;\n\n };\n\n })\n\n .directive('bsScrollspy', function($rootScope, debounce, dimensions, $scrollspy) {\n\n return {\n restrict: 'EAC',\n link: function postLink(scope, element, attr) {\n\n var options = {scope: scope};\n angular.forEach(['offset', 'target'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n var scrollspy = $scrollspy(options);\n scrollspy.trackElement(options.target, element);\n\n scope.$on('$destroy', function() {\n if (scrollspy) {\n scrollspy.untrackElement(options.target, element);\n scrollspy.destroy();\n }\n options = null;\n scrollspy = null;\n });\n\n }\n };\n\n })\n\n\n .directive('bsScrollspyList', function($rootScope, debounce, dimensions, $scrollspy) {\n\n return {\n restrict: 'A',\n compile: function postLink(element, attr) {\n var children = element[0].querySelectorAll('li > a[href]');\n angular.forEach(children, function(child) {\n var childEl = angular.element(child);\n childEl.parent().attr('bs-scrollspy', '').attr('data-target', childEl.attr('href'));\n });\n }\n\n };\n\n });\n\n// Source: select/select.js\nangular.module('mgcrea.ngStrap.select', ['mgcrea.ngStrap.tooltip', 'mgcrea.ngStrap.helpers.parseOptions'])\n\n .provider('$select', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'select',\n prefixEvent: '$select',\n placement: 'bottom-left',\n templateUrl: 'select/select.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n multiple: false,\n allNoneButtons: false,\n sort: true,\n caretHtml: ' ',\n placeholder: 'Choose among the following...',\n allText: 'All',\n noneText: 'None',\n maxLength: 3,\n maxLengthHtml: 'selected',\n iconCheckmark: 'glyphicon glyphicon-ok'\n };\n\n this.$get = function($window, $document, $rootScope, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n\n function SelectFactory(element, controller, config) {\n\n var $select = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $select = $tooltip(element, options);\n var scope = $select.$scope;\n\n scope.$matches = [];\n if (options.multiple) {\n scope.$activeIndex = [];\n }\n else {\n scope.$activeIndex = -1;\n }\n scope.$isMultiple = options.multiple;\n scope.$showAllNoneButtons = options.allNoneButtons && options.multiple;\n scope.$iconCheckmark = options.iconCheckmark;\n scope.$allText = options.allText;\n scope.$noneText = options.noneText;\n\n scope.$activate = function(index) {\n scope.$$postDigest(function() {\n $select.activate(index);\n });\n };\n\n scope.$select = function(index, evt) {\n scope.$$postDigest(function() {\n $select.select(index);\n });\n };\n\n scope.$isVisible = function() {\n return $select.$isVisible();\n };\n\n scope.$isActive = function(index) {\n return $select.$isActive(index);\n };\n\n scope.$selectAll = function () {\n for (var i = 0; i < scope.$matches.length; i++) {\n if (!scope.$isActive(i)) {\n scope.$select(i);\n }\n }\n };\n\n scope.$selectNone = function () {\n for (var i = 0; i < scope.$matches.length; i++) {\n if (scope.$isActive(i)) {\n scope.$select(i);\n }\n }\n };\n\n // Public methods\n\n $select.update = function(matches) {\n scope.$matches = matches;\n $select.$updateActiveIndex();\n };\n\n $select.activate = function(index) {\n if(options.multiple) {\n $select.$isActive(index) ? scope.$activeIndex.splice(scope.$activeIndex.indexOf(index), 1) : scope.$activeIndex.push(index);\n if(options.sort) scope.$activeIndex.sort(function(a, b) { return a - b; }); // use numeric sort instead of default sort\n } else {\n scope.$activeIndex = index;\n }\n return scope.$activeIndex;\n };\n\n $select.select = function(index) {\n var value = scope.$matches[index].value;\n scope.$apply(function() {\n $select.activate(index);\n if(options.multiple) {\n controller.$setViewValue(scope.$activeIndex.map(function(index) {\n return scope.$matches[index].value;\n }));\n } else {\n controller.$setViewValue(value);\n // Hide if single select\n $select.hide();\n }\n });\n // Emit event\n scope.$emit(options.prefixEvent + '.select', value, index, $select);\n };\n\n // Protected methods\n\n $select.$updateActiveIndex = function() {\n if(controller.$modelValue && scope.$matches.length) {\n if(options.multiple && angular.isArray(controller.$modelValue)) {\n scope.$activeIndex = controller.$modelValue.map(function(value) {\n return $select.$getIndex(value);\n });\n } else {\n scope.$activeIndex = $select.$getIndex(controller.$modelValue);\n }\n } else if(scope.$activeIndex >= scope.$matches.length) {\n scope.$activeIndex = options.multiple ? [] : 0;\n }\n };\n\n $select.$isVisible = function() {\n if(!options.minLength || !controller) {\n return scope.$matches.length;\n }\n // minLength support\n return scope.$matches.length && controller.$viewValue.length >= options.minLength;\n };\n\n $select.$isActive = function(index) {\n if(options.multiple) {\n return scope.$activeIndex.indexOf(index) !== -1;\n } else {\n return scope.$activeIndex === index;\n }\n };\n\n $select.$getIndex = function(value) {\n var l = scope.$matches.length, i = l;\n if(!l) return;\n for(i = l; i--;) {\n if(scope.$matches[i].value === value) break;\n }\n if(i < 0) return;\n return i;\n };\n\n $select.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n targetEl.triggerHandler('click');\n }\n };\n\n $select.$onKeyDown = function(evt) {\n if (!/(9|13|38|40)/.test(evt.keyCode)) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // release focus on tab\n if (options.multiple && evt.keyCode === 9) {\n return $select.hide();\n }\n\n // Select with enter\n if(!options.multiple && (evt.keyCode === 13 || evt.keyCode === 9)) {\n return $select.select(scope.$activeIndex);\n }\n\n if (!options.multiple) {\n // Navigate with keyboard\n if(evt.keyCode === 38 && scope.$activeIndex > 0) scope.$activeIndex--;\n else if(evt.keyCode === 38 && scope.$activeIndex < 0) scope.$activeIndex = scope.$matches.length - 1;\n else if(evt.keyCode === 40 && scope.$activeIndex < scope.$matches.length - 1) scope.$activeIndex++;\n else if(angular.isUndefined(scope.$activeIndex)) scope.$activeIndex = 0;\n scope.$digest();\n }\n };\n\n // Overrides\n\n var _show = $select.show;\n $select.show = function() {\n _show();\n if(options.multiple) {\n $select.$element.addClass('select-multiple');\n }\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n $select.$element.on(isTouch ? 'touchstart' : 'mousedown', $select.$onMouseDown);\n if(options.keyboard) {\n element.on('keydown', $select.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $select.hide;\n $select.hide = function() {\n if(!options.multiple && !controller.$modelValue) {\n scope.$activeIndex = -1;\n }\n $select.$element.off(isTouch ? 'touchstart' : 'mousedown', $select.$onMouseDown);\n if(options.keyboard) {\n element.off('keydown', $select.$onKeyDown);\n }\n _hide(true);\n };\n\n return $select;\n\n }\n\n SelectFactory.defaults = defaults;\n return SelectFactory;\n\n };\n\n })\n\n .directive('bsSelect', function($window, $parse, $q, $select, $parseOptions) {\n\n var defaults = $select.defaults;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope, placeholder: defaults.placeholder};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'placeholder', 'allNoneButtons', 'maxLength', 'maxLengthHtml', 'allText', 'noneText', 'iconCheckmark', 'autoClose', 'id', 'sort', 'caretHtml', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'allNoneButtons', 'sort'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Only parse data-multiple. Angular sets existence attributes to true (multiple/required/etc), they apply this\n // to data-multiple as well for some reason, so we'll parse this ourselves and disregard multiple\n var dataMultiple = element.attr('data-multiple');\n if(angular.isDefined(dataMultiple)) {\n if(falseValueRegExp.test(dataMultiple))\n options.multiple = false;\n else\n options.multiple = dataMultiple;\n }\n\n // Add support for select markup\n if(element[0].nodeName.toLowerCase() === 'select') {\n var inputEl = element;\n inputEl.css('display', 'none');\n element = angular.element('');\n inputEl.after(element);\n }\n\n // Build proper bsOptions\n var parsedOptions = $parseOptions(attr.bsOptions);\n\n // Initialize select\n var select = $select(element, controller, options);\n\n // Watch bsOptions values before filtering for changes\n var watchedOptions = parsedOptions.$match[7].replace(/\\|.+/, '').trim();\n scope.$watchCollection(watchedOptions, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', watchedOptions, newValue, oldValue);\n parsedOptions.valuesFn(scope, controller)\n .then(function(values) {\n select.update(values);\n controller.$render();\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.ngModel, newValue, oldValue);\n select.$updateActiveIndex();\n controller.$render();\n }, true);\n\n // Model rendering in view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var selected, index;\n if(options.multiple && angular.isArray(controller.$modelValue)) {\n selected = controller.$modelValue.map(function(value) {\n index = select.$getIndex(value);\n return angular.isDefined(index) ? select.$scope.$matches[index].label : false;\n }).filter(angular.isDefined);\n if(selected.length > (options.maxLength || defaults.maxLength)) {\n selected = selected.length + ' ' + (options.maxLengthHtml || defaults.maxLengthHtml);\n } else {\n selected = selected.join(', ');\n }\n } else {\n index = select.$getIndex(controller.$modelValue);\n selected = angular.isDefined(index) ? select.$scope.$matches[index].label : false;\n }\n element.html((selected ? selected : options.placeholder) + (options.caretHtml ? options.caretHtml : defaults.caretHtml));\n };\n\n if(options.multiple){\n controller.$isEmpty = function(value){\n return !value || value.length === 0;\n };\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (select) select.destroy();\n options = null;\n select = null;\n });\n\n }\n };\n\n });\n\n// Source: timepicker/timepicker.js\nangular.module('mgcrea.ngStrap.timepicker', ['mgcrea.ngStrap.helpers.dateParser', 'mgcrea.ngStrap.helpers.dateFormatter', 'mgcrea.ngStrap.tooltip'])\n\n .provider('$timepicker', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n //uncommenting the following line will break backwards compatability\n // prefixEvent: 'timepicker',\n prefixClass: 'timepicker',\n placement: 'bottom-left',\n templateUrl: 'timepicker/timepicker.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n // lang: $locale.id,\n useNative: true,\n timeType: 'date',\n timeFormat: 'shortTime',\n timezone: null,\n modelTimeFormat: null,\n autoclose: false,\n minTime: -Infinity,\n maxTime: +Infinity,\n length: 5,\n hourStep: 1,\n minuteStep: 5,\n secondStep: 5,\n roundDisplay: false,\n iconUp: 'glyphicon glyphicon-chevron-up',\n iconDown: 'glyphicon glyphicon-chevron-down',\n arrowBehavior: 'pager'\n };\n\n this.$get = function($window, $document, $rootScope, $sce, $dateFormatter, $tooltip, $timeout) {\n\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n if (!defaults.lang) {\n defaults.lang = $dateFormatter.getDefaultLocale();\n }\n\n function timepickerFactory(element, controller, config) {\n\n var $timepicker = $tooltip(element, angular.extend({}, defaults, config));\n var parentScope = config.scope;\n var options = $timepicker.$options;\n var scope = $timepicker.$scope;\n\n var lang = options.lang;\n var formatDate = function(date, format, timezone) {\n return $dateFormatter.formatDate(date, format, lang, timezone);\n };\n\n function floorMinutes(time) {\n // coeff used to floor current time to nearest minuteStep interval\n var coeff = 1000 * 60 * options.minuteStep;\n return new Date(Math.floor(time.getTime() / coeff) * coeff);\n }\n\n // View vars\n\n var selectedIndex = 0;\n var defaultDate = options.roundDisplay ? floorMinutes(new Date()) : new Date();\n var startDate = controller.$dateValue || defaultDate;\n var viewDate = {\n hour: startDate.getHours(),\n meridian: startDate.getHours() < 12,\n minute: startDate.getMinutes(),\n second: startDate.getSeconds(),\n millisecond: startDate.getMilliseconds()\n };\n\n var format = $dateFormatter.getDatetimeFormat(options.timeFormat, lang);\n\n var hoursFormat = $dateFormatter.hoursFormat(format),\n timeSeparator = $dateFormatter.timeSeparator(format),\n minutesFormat = $dateFormatter.minutesFormat(format),\n secondsFormat = $dateFormatter.secondsFormat(format),\n showSeconds = $dateFormatter.showSeconds(format),\n showAM = $dateFormatter.showAM(format);\n\n scope.$iconUp = options.iconUp;\n scope.$iconDown = options.iconDown;\n\n // Scope methods\n\n scope.$select = function(date, index) {\n $timepicker.select(date, index);\n };\n scope.$moveIndex = function(value, index) {\n $timepicker.$moveIndex(value, index);\n };\n scope.$switchMeridian = function(date) {\n $timepicker.switchMeridian(date);\n };\n\n // Public methods\n\n $timepicker.update = function(date) {\n // console.warn('$timepicker.update() newValue=%o', date);\n if (angular.isDate(date) && !isNaN(date.getTime())) {\n $timepicker.$date = date;\n angular.extend(viewDate, {\n hour: date.getHours(),\n minute: date.getMinutes(),\n second: date.getSeconds(),\n millisecond: date.getMilliseconds()\n });\n $timepicker.$build();\n } else if (!$timepicker.$isBuilt) {\n $timepicker.$build();\n }\n };\n\n $timepicker.select = function(date, index, keep) {\n // console.warn('$timepicker.select', date, scope.$mode);\n if (!controller.$dateValue || isNaN(controller.$dateValue.getTime())) controller.$dateValue = new Date(1970, 0, 1);\n if (!angular.isDate(date)) date = new Date(date);\n if (index === 0) controller.$dateValue.setHours(date.getHours());\n else if (index === 1) controller.$dateValue.setMinutes(date.getMinutes());\n else if (index === 2) controller.$dateValue.setSeconds(date.getSeconds());\n controller.$setViewValue(angular.copy(controller.$dateValue));\n controller.$render();\n if (options.autoclose && !keep) {\n $timeout(function() {\n $timepicker.hide(true);\n });\n }\n };\n\n $timepicker.switchMeridian = function(date) {\n if (!controller.$dateValue || isNaN(controller.$dateValue.getTime())) {\n return;\n }\n var hours = (date || controller.$dateValue).getHours();\n controller.$dateValue.setHours(hours < 12 ? hours + 12 : hours - 12);\n controller.$setViewValue(angular.copy(controller.$dateValue));\n controller.$render();\n };\n\n // Protected methods\n\n $timepicker.$build = function() {\n // console.warn('$timepicker.$build() viewDate=%o', viewDate);\n var i, midIndex = scope.midIndex = parseInt(options.length / 2, 10);\n var hours = [],\n hour;\n for (i = 0; i < options.length; i++) {\n hour = new Date(1970, 0, 1, viewDate.hour - (midIndex - i) * options.hourStep);\n hours.push({\n date: hour,\n label: formatDate(hour, hoursFormat),\n selected: $timepicker.$date && $timepicker.$isSelected(hour, 0),\n disabled: $timepicker.$isDisabled(hour, 0)\n });\n }\n var minutes = [],\n minute;\n for (i = 0; i < options.length; i++) {\n minute = new Date(1970, 0, 1, 0, viewDate.minute - (midIndex - i) * options.minuteStep);\n minutes.push({\n date: minute,\n label: formatDate(minute, minutesFormat),\n selected: $timepicker.$date && $timepicker.$isSelected(minute, 1),\n disabled: $timepicker.$isDisabled(minute, 1)\n });\n }\n var seconds = [],\n second;\n for (i = 0; i < options.length; i++) {\n second = new Date(1970, 0, 1, 0, 0, viewDate.second - (midIndex - i) * options.secondStep);\n seconds.push({\n date: second,\n label: formatDate(second, secondsFormat),\n selected: $timepicker.$date && $timepicker.$isSelected(second, 2),\n disabled: $timepicker.$isDisabled(second, 2)\n });\n }\n\n var rows = [];\n for (i = 0; i < options.length; i++) {\n if (showSeconds) {\n rows.push([hours[i], minutes[i], seconds[i]]);\n } else {\n rows.push([hours[i], minutes[i]]);\n }\n }\n scope.rows = rows;\n scope.showSeconds = showSeconds;\n scope.showAM = showAM;\n scope.isAM = ($timepicker.$date || hours[midIndex].date).getHours() < 12;\n scope.timeSeparator = timeSeparator;\n $timepicker.$isBuilt = true;\n };\n\n $timepicker.$isSelected = function(date, index) {\n if (!$timepicker.$date) return false;\n else if (index === 0) {\n return date.getHours() === $timepicker.$date.getHours();\n } else if (index === 1) {\n return date.getMinutes() === $timepicker.$date.getMinutes();\n } else if (index === 2) {\n return date.getSeconds() === $timepicker.$date.getSeconds();\n }\n };\n\n $timepicker.$isDisabled = function(date, index) {\n var selectedTime;\n if (index === 0) {\n selectedTime = date.getTime() + viewDate.minute * 6e4 + viewDate.second * 1e3;\n } else if (index === 1) {\n selectedTime = date.getTime() + viewDate.hour * 36e5 + viewDate.second * 1e3;\n } else if (index === 2) {\n selectedTime = date.getTime() + viewDate.hour * 36e5 + viewDate.minute * 6e4;\n }\n return selectedTime < options.minTime * 1 || selectedTime > options.maxTime * 1;\n };\n\n scope.$arrowAction = function(value, index) {\n if (options.arrowBehavior === 'picker') {\n $timepicker.$setTimeByStep(value, index);\n } else {\n $timepicker.$moveIndex(value, index);\n }\n };\n\n $timepicker.$setTimeByStep = function(value, index) {\n var newDate = new Date($timepicker.$date || startDate);\n var hours = newDate.getHours();\n var minutes = newDate.getMinutes();\n var seconds = newDate.getSeconds();\n if (index === 0) {\n newDate.setHours(hours - (parseInt(options.hourStep, 10) * value));\n } else if (index === 1) {\n newDate.setMinutes(minutes - (parseInt(options.minuteStep, 10) * value));\n } else if (index === 2) {\n newDate.setSeconds(seconds - (parseInt(options.secondStep, 10) * value));\n }\n $timepicker.select(newDate, index, true);\n };\n\n $timepicker.$moveIndex = function(value, index) {\n var targetDate;\n if (index === 0) {\n targetDate = new Date(1970, 0, 1, viewDate.hour + (value * options.length), viewDate.minute, viewDate.second);\n angular.extend(viewDate, {\n hour: targetDate.getHours()\n });\n } else if (index === 1) {\n targetDate = new Date(1970, 0, 1, viewDate.hour, viewDate.minute + (value * options.length * options.minuteStep), viewDate.second);\n angular.extend(viewDate, {\n minute: targetDate.getMinutes()\n });\n } else if (index === 2) {\n targetDate = new Date(1970, 0, 1, viewDate.hour, viewDate.minute, viewDate.second + (value * options.length * options.secondStep));\n angular.extend(viewDate, {\n second: targetDate.getSeconds()\n });\n }\n $timepicker.$build();\n };\n\n $timepicker.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n if (evt.target.nodeName.toLowerCase() !== 'input') evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if (isTouch) {\n var targetEl = angular.element(evt.target);\n if (targetEl[0].nodeName.toLowerCase() !== 'button') {\n targetEl = targetEl.parent();\n }\n targetEl.triggerHandler('click');\n }\n };\n\n $timepicker.$onKeyDown = function(evt) {\n if (!/(38|37|39|40|13)/.test(evt.keyCode) || evt.shiftKey || evt.altKey) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // Close on enter\n if (evt.keyCode === 13) {\n $timepicker.hide(true);\n return;\n }\n\n // Navigate with keyboard\n var newDate = new Date($timepicker.$date);\n var hours = newDate.getHours(),\n hoursLength = formatDate(newDate, hoursFormat).length;\n var minutes = newDate.getMinutes(),\n minutesLength = formatDate(newDate, minutesFormat).length;\n var seconds = newDate.getSeconds(),\n secondsLength = formatDate(newDate, secondsFormat).length;\n var sepLength = 1;\n var lateralMove = /(37|39)/.test(evt.keyCode);\n var count = 2 + showSeconds * 1 + showAM * 1;\n\n // Navigate indexes (left, right)\n if (lateralMove) {\n if (evt.keyCode === 37) selectedIndex = selectedIndex < 1 ? count - 1 : selectedIndex - 1;\n else if (evt.keyCode === 39) selectedIndex = selectedIndex < count - 1 ? selectedIndex + 1 : 0;\n }\n\n // Update values (up, down)\n var selectRange = [0, hoursLength];\n var incr = 0;\n if (evt.keyCode === 38) incr = -1;\n if (evt.keyCode === 40) incr = +1;\n var isSeconds = selectedIndex === 2 && showSeconds;\n var isMeridian = selectedIndex === 2 && !showSeconds || selectedIndex === 3 && showSeconds;\n if (selectedIndex === 0) {\n newDate.setHours(hours + incr * parseInt(options.hourStep, 10));\n // re-calculate hours length because we have changed hours value\n hoursLength = formatDate(newDate, hoursFormat).length;\n selectRange = [0, hoursLength];\n } else if (selectedIndex === 1) {\n newDate.setMinutes(minutes + incr * parseInt(options.minuteStep, 10));\n // re-calculate minutes length because we have changes minutes value\n minutesLength = formatDate(newDate, minutesFormat).length;\n selectRange = [hoursLength + sepLength, minutesLength];\n } else if (isSeconds) {\n newDate.setSeconds(seconds + incr * parseInt(options.secondStep, 10));\n // re-calculate seconds length because we have changes seconds value\n secondsLength = formatDate(newDate, secondsFormat).length;\n selectRange = [hoursLength + sepLength + minutesLength + sepLength, secondsLength];\n } else if (isMeridian) {\n if (!lateralMove) $timepicker.switchMeridian();\n selectRange = [hoursLength + sepLength + minutesLength + sepLength + (secondsLength + sepLength) * showSeconds, 2];\n }\n $timepicker.select(newDate, selectedIndex, true);\n createSelection(selectRange[0], selectRange[1]);\n parentScope.$digest();\n };\n\n // Private\n\n function createSelection(start, length) {\n var end = start + length;\n if (element[0].createTextRange) {\n var selRange = element[0].createTextRange();\n selRange.collapse(true);\n selRange.moveStart('character', start);\n selRange.moveEnd('character', end);\n selRange.select();\n } else if (element[0].setSelectionRange) {\n element[0].setSelectionRange(start, end);\n } else if (angular.isUndefined(element[0].selectionStart)) {\n element[0].selectionStart = start;\n element[0].selectionEnd = end;\n }\n }\n\n function focusElement() {\n element[0].focus();\n }\n\n // Overrides\n\n var _init = $timepicker.init;\n $timepicker.init = function() {\n if (isNative && options.useNative) {\n element.prop('type', 'time');\n element.css('-webkit-appearance', 'textfield');\n return;\n } else if (isTouch) {\n element.prop('type', 'text');\n element.attr('readonly', 'true');\n element.on('click', focusElement);\n }\n _init();\n };\n\n var _destroy = $timepicker.destroy;\n $timepicker.destroy = function() {\n if (isNative && options.useNative) {\n element.off('click', focusElement);\n }\n _destroy();\n };\n\n var _show = $timepicker.show;\n $timepicker.show = function() {\n if((!isTouch && element.attr('readonly')) || element.attr('disabled')) return;\n _show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n $timepicker.$element && $timepicker.$element.on(isTouch ? 'touchstart' : 'mousedown', $timepicker.$onMouseDown);\n if (options.keyboard) {\n element && element.on('keydown', $timepicker.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $timepicker.hide;\n $timepicker.hide = function(blur) {\n if (!$timepicker.$isShown) return;\n $timepicker.$element && $timepicker.$element.off(isTouch ? 'touchstart' : 'mousedown', $timepicker.$onMouseDown);\n if (options.keyboard) {\n element && element.off('keydown', $timepicker.$onKeyDown);\n }\n _hide(blur);\n };\n\n return $timepicker;\n\n }\n\n timepickerFactory.defaults = defaults;\n return timepickerFactory;\n\n };\n\n })\n\n\n .directive('bsTimepicker', function($window, $parse, $q, $dateFormatter, $dateParser, $timepicker) {\n\n var defaults = $timepicker.defaults;\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {\n scope: scope\n };\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'autoclose', 'timeType', 'timeFormat', 'timezone', 'modelTimeFormat', 'useNative', 'hourStep', 'minuteStep', 'secondStep', 'length', 'arrowBehavior', 'iconUp', 'iconDown', 'roundDisplay', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if (angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoclose', 'useNative', 'roundDisplay'], function(key) {\n if (angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if (!timepicker || !angular.isDefined(newValue)) return;\n if (angular.isString(newValue)) newValue = !!newValue.match(/true|,?(timepicker),?/i);\n newValue === true ? timepicker.show() : timepicker.hide();\n });\n\n // Initialize timepicker\n if (isNative && (options.useNative || defaults.useNative)) options.timeFormat = 'HH:mm';\n var timepicker = $timepicker(element, controller, options);\n options = timepicker.$options;\n\n var lang = options.lang;\n var formatDate = function(date, format, timezone) {\n return $dateFormatter.formatDate(date, format, lang, timezone);\n };\n\n // Initialize parser\n var dateParser = $dateParser({\n format: options.timeFormat,\n lang: lang\n });\n\n // Observe attributes for changes\n angular.forEach(['minTime', 'maxTime'], function(key) {\n // console.warn('attr.$observe(%s)', key, attr[key]);\n angular.isDefined(attr[key]) && attr.$observe(key, function(newValue) {\n timepicker.$options[key] = dateParser.getTimeForAttribute(key, newValue);\n !isNaN(timepicker.$options[key]) && timepicker.$build();\n validateAgainstMinMaxTime(controller.$dateValue);\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.ngModel, newValue, oldValue, controller.$dateValue);\n timepicker.update(controller.$dateValue);\n }, true);\n\n function validateAgainstMinMaxTime(parsedTime) {\n if (!angular.isDate(parsedTime)) return;\n var isMinValid = isNaN(options.minTime) || new Date(parsedTime.getTime()).setFullYear(1970, 0, 1) >= options.minTime;\n var isMaxValid = isNaN(options.maxTime) || new Date(parsedTime.getTime()).setFullYear(1970, 0, 1) <= options.maxTime;\n var isValid = isMinValid && isMaxValid;\n controller.$setValidity('date', isValid);\n controller.$setValidity('min', isMinValid);\n controller.$setValidity('max', isMaxValid);\n // Only update the model when we have a valid date\n if (!isValid) {\n return;\n }\n controller.$dateValue = parsedTime;\n }\n\n // viewValue -> $parsers -> modelValue\n controller.$parsers.unshift(function(viewValue) {\n // console.warn('$parser(\"%s\"): viewValue=%o', element.attr('ng-model'), viewValue);\n var date;\n // Null values should correctly reset the model value & validity\n if (!viewValue) {\n // BREAKING CHANGE:\n // return null (not undefined) when input value is empty, so angularjs 1.3\n // ngModelController can go ahead and run validators, like ngRequired\n controller.$setValidity('date', true);\n return null;\n }\n var parsedTime = angular.isDate(viewValue) ? viewValue : dateParser.parse(viewValue, controller.$dateValue);\n if (!parsedTime || isNaN(parsedTime.getTime())) {\n controller.$setValidity('date', false);\n // Return undefined, causes ngModelController to\n // invalidate model value\n return undefined;\n } else {\n validateAgainstMinMaxTime(parsedTime);\n }\n\n if (options.timeType === 'string') {\n date = dateParser.timezoneOffsetAdjust(parsedTime, options.timezone, true);\n return formatDate(date, options.modelTimeFormat || options.timeFormat);\n }\n date = dateParser.timezoneOffsetAdjust(controller.$dateValue, options.timezone, true);\n if (options.timeType === 'number') {\n return date.getTime();\n } else if (options.timeType === 'unix') {\n return date.getTime() / 1000;\n } else if (options.timeType === 'iso') {\n return date.toISOString();\n } else {\n return new Date(date);\n }\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var date;\n if (angular.isUndefined(modelValue) || modelValue === null) {\n date = NaN;\n } else if (angular.isDate(modelValue)) {\n date = modelValue;\n } else if (options.timeType === 'string') {\n date = dateParser.parse(modelValue, null, options.modelTimeFormat);\n } else if (options.timeType === 'unix') {\n date = new Date(modelValue * 1000);\n } else {\n date = new Date(modelValue);\n }\n // Setup default value?\n // if(isNaN(date.getTime())) date = new Date(new Date().setMinutes(0) + 36e5);\n controller.$dateValue = dateParser.timezoneOffsetAdjust(date, options.timezone);\n return getTimeFormattedString();\n });\n\n // viewValue -> element\n controller.$render = function() {\n // console.warn('$render(\"%s\"): viewValue=%o', element.attr('ng-model'), controller.$viewValue);\n element.val(getTimeFormattedString());\n };\n\n function getTimeFormattedString() {\n return !controller.$dateValue || isNaN(controller.$dateValue.getTime()) ? '' : formatDate(controller.$dateValue, options.timeFormat);\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (timepicker) timepicker.destroy();\n options = null;\n timepicker = null;\n });\n\n }\n };\n\n });\n\n// Source: tab/tab.js\nangular.module('mgcrea.ngStrap.tab', [])\n\n .provider('$tab', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n template: 'tab/tab.tpl.html',\n navClass: 'nav-tabs',\n activeClass: 'active'\n };\n\n var controller = this.controller = function($scope, $element, $attrs) {\n var self = this;\n\n // Attributes options\n self.$options = angular.copy(defaults);\n angular.forEach(['animation', 'navClass', 'activeClass'], function(key) {\n if(angular.isDefined($attrs[key])) self.$options[key] = $attrs[key];\n });\n\n // Publish options on scope\n $scope.$navClass = self.$options.navClass;\n $scope.$activeClass = self.$options.activeClass;\n\n self.$panes = $scope.$panes = [];\n\n // Please use $activePaneChangeListeners if you use `bsActivePane`\n // Because we removed `ngModel` as default, we rename viewChangeListeners to\n // activePaneChangeListeners to make more sense.\n self.$activePaneChangeListeners = self.$viewChangeListeners = [];\n\n self.$push = function(pane) {\n if(angular.isUndefined(self.$panes.$active)) {\n $scope.$setActive(pane.name || 0);\n }\n self.$panes.push(pane);\n };\n\n self.$remove = function(pane) {\n var index = self.$panes.indexOf(pane);\n var active = self.$panes.$active;\n var activeIndex;\n if(angular.isString(active)) {\n activeIndex = self.$panes.map(function(pane) {\n return pane.name;\n }).indexOf(active);\n } else {\n activeIndex = self.$panes.$active;\n }\n\n // remove pane from $panes array\n self.$panes.splice(index, 1);\n\n if (index < activeIndex) {\n // we removed a pane before the active pane, so we need to\n // decrement the active pane index\n activeIndex--;\n }\n else if (index === activeIndex && activeIndex === self.$panes.length) {\n // we remove the active pane and it was the one at the end,\n // so select the previous one\n activeIndex--;\n }\n if(activeIndex >= 0 && activeIndex < self.$panes.length) {\n self.$setActive(self.$panes[activeIndex].name || activeIndex);\n } else {\n self.$setActive();\n }\n };\n\n self.$setActive = $scope.$setActive = function(value) {\n self.$panes.$active = value;\n self.$activePaneChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n self.$isActive = $scope.$isActive = function($pane, $index) {\n return self.$panes.$active === $pane.name || self.$panes.$active === $index;\n };\n\n };\n\n this.$get = function() {\n var $tab = {};\n $tab.defaults = defaults;\n $tab.controller = controller;\n return $tab;\n };\n\n })\n\n .directive('bsTabs', function($window, $animate, $tab, $parse) {\n\n var defaults = $tab.defaults;\n\n return {\n require: ['?ngModel', 'bsTabs'],\n transclude: true,\n scope: true,\n controller: ['$scope', '$element', '$attrs', $tab.controller],\n templateUrl: function(element, attr) {\n return attr.template || defaults.template;\n },\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsTabsCtrl = controllers[1];\n\n // 'ngModel' does interfere with form validation\n // and status, use `bsActivePane` instead to avoid it\n if(ngModelCtrl) {\n\n // Update the modelValue following\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n ngModelCtrl.$setViewValue(bsTabsCtrl.$panes.$active);\n });\n\n // modelValue -> $formatters -> viewValue\n ngModelCtrl.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n bsTabsCtrl.$setActive(modelValue);\n return modelValue;\n });\n\n }\n\n if (attrs.bsActivePane) {\n // adapted from angularjs ngModelController bindings\n // https://github.com/angular/angular.js/blob/v1.3.1/src%2Fng%2Fdirective%2Finput.js#L1730\n var parsedBsActivePane = $parse(attrs.bsActivePane);\n\n // Update bsActivePane value with change\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n parsedBsActivePane.assign(scope, bsTabsCtrl.$panes.$active);\n });\n\n // watch bsActivePane for value changes\n scope.$watch(attrs.bsActivePane, function(newValue, oldValue) {\n bsTabsCtrl.$setActive(newValue);\n }, true);\n }\n }\n };\n\n })\n\n .directive('bsPane', function($window, $animate, $sce) {\n\n return {\n require: ['^?ngModel', '^bsTabs'],\n scope: true,\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsTabsCtrl = controllers[1];\n\n // Add base class\n element.addClass('tab-pane');\n\n // Observe title attribute for change\n attrs.$observe('title', function(newValue, oldValue) {\n scope.title = $sce.trustAsHtml(newValue);\n });\n\n // Save tab name into scope\n scope.name = attrs.name;\n\n // Add animation class\n if(bsTabsCtrl.$options.animation) {\n element.addClass(bsTabsCtrl.$options.animation);\n }\n\n attrs.$observe('disabled', function(newValue, oldValue) {\n scope.disabled = scope.$eval(newValue);\n });\n\n // Push pane to parent bsTabs controller\n bsTabsCtrl.$push(scope);\n\n // remove pane from tab controller when pane is destroyed\n scope.$on('$destroy', function() {\n bsTabsCtrl.$remove(scope);\n });\n\n function render() {\n var index = bsTabsCtrl.$panes.indexOf(scope);\n $animate[bsTabsCtrl.$isActive(scope, index) ? 'addClass' : 'removeClass'](element, bsTabsCtrl.$options.activeClass);\n }\n\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n render();\n });\n render();\n\n }\n };\n\n });\n\n// Source: typeahead/typeahead.js\nangular.module('mgcrea.ngStrap.typeahead', ['mgcrea.ngStrap.tooltip', 'mgcrea.ngStrap.helpers.parseOptions'])\n\n .provider('$typeahead', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'typeahead',\n prefixEvent: '$typeahead',\n placement: 'bottom-left',\n templateUrl: 'typeahead/typeahead.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n minLength: 1,\n filter: 'bsAsyncFilter',\n limit: 6,\n autoSelect: false,\n comparator: '',\n trimValue: true\n };\n\n this.$get = function($window, $rootScope, $tooltip, $$rAF, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n\n function TypeaheadFactory(element, controller, config) {\n\n var $typeahead = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $typeahead = $tooltip(element, options);\n var parentScope = config.scope;\n var scope = $typeahead.$scope;\n\n scope.$resetMatches = function() {\n scope.$matches = [];\n scope.$activeIndex = options.autoSelect ? 0 : -1; // If set to 0, the first match will be highlighted\n };\n scope.$resetMatches();\n\n scope.$activate = function(index) {\n scope.$$postDigest(function() {\n $typeahead.activate(index);\n });\n };\n\n scope.$select = function(index, evt) {\n scope.$$postDigest(function() {\n $typeahead.select(index);\n });\n };\n\n scope.$isVisible = function() {\n return $typeahead.$isVisible();\n };\n\n // Public methods\n\n $typeahead.update = function(matches) {\n scope.$matches = matches;\n if (scope.$activeIndex >= matches.length) {\n scope.$activeIndex = options.autoSelect ? 0 : -1;\n }\n\n // wrap in a $timeout so the results are updated\n // before repositioning\n safeDigest(scope);\n $$rAF($typeahead.$applyPlacement);\n };\n\n $typeahead.activate = function(index) {\n scope.$activeIndex = index;\n };\n\n $typeahead.select = function(index) {\n if (index === -1) return;\n var value = scope.$matches[index].value;\n // console.log('$setViewValue', value);\n controller.$setViewValue(value);\n controller.$render();\n scope.$resetMatches();\n if (parentScope) parentScope.$digest();\n // Emit event\n scope.$emit(options.prefixEvent + '.select', value, index, $typeahead);\n };\n\n // Protected methods\n\n $typeahead.$isVisible = function() {\n if (!options.minLength || !controller) {\n return !!scope.$matches.length;\n }\n // minLength support\n return scope.$matches.length && angular.isString(controller.$viewValue) && controller.$viewValue.length >= options.minLength;\n };\n\n $typeahead.$getIndex = function(value) {\n var l = scope.$matches.length,\n i = l;\n if (!l) return;\n for (i = l; i--;) {\n if (scope.$matches[i].value === value) break;\n }\n if (i < 0) return;\n return i;\n };\n\n $typeahead.$onMouseDown = function(evt) {\n // Prevent blur on mousedown\n evt.preventDefault();\n evt.stopPropagation();\n };\n\n $typeahead.$onKeyDown = function(evt) {\n if (!/(38|40|13)/.test(evt.keyCode)) return;\n\n // Let ngSubmit pass if the typeahead tip is hidden or no option is selected\n if ($typeahead.$isVisible() && !(evt.keyCode === 13 && scope.$activeIndex === -1)) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n\n // Select with enter\n if (evt.keyCode === 13 && scope.$matches.length) {\n $typeahead.select(scope.$activeIndex);\n }\n\n // Navigate with keyboard\n else if (evt.keyCode === 38 && scope.$activeIndex > 0) scope.$activeIndex--;\n else if (evt.keyCode === 40 && scope.$activeIndex < scope.$matches.length - 1) scope.$activeIndex++;\n else if (angular.isUndefined(scope.$activeIndex)) scope.$activeIndex = 0;\n scope.$digest();\n };\n\n // Overrides\n\n var show = $typeahead.show;\n $typeahead.show = function() {\n show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed immediately.\n $timeout(function() {\n $typeahead.$element && $typeahead.$element.on('mousedown', $typeahead.$onMouseDown);\n if (options.keyboard) {\n element && element.on('keydown', $typeahead.$onKeyDown);\n }\n }, 0, false);\n };\n\n var hide = $typeahead.hide;\n $typeahead.hide = function() {\n $typeahead.$element && $typeahead.$element.off('mousedown', $typeahead.$onMouseDown);\n if (options.keyboard) {\n element && element.off('keydown', $typeahead.$onKeyDown);\n }\n if (!options.autoSelect)\n $typeahead.activate(-1);\n hide();\n };\n\n return $typeahead;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n TypeaheadFactory.defaults = defaults;\n return TypeaheadFactory;\n\n };\n\n })\n\n .filter('bsAsyncFilter', function($filter) {\n return function(array, expression, comparator) {\n if (array && angular.isFunction(array.then)) {\n return array.then(function(results) {\n return $filter('filter')(results, expression, comparator);\n });\n } else {\n return $filter('filter')(array, expression, comparator);\n }\n };\n })\n\n .directive('bsTypeahead', function($window, $parse, $q, $typeahead, $parseOptions) {\n\n var defaults = $typeahead.defaults;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {\n scope: scope\n };\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'filter', 'limit', 'minLength', 'watchOptions', 'selectMode', 'autoSelect', 'comparator', 'id', 'prefixEvent', 'prefixClass'], function(key) {\n if (angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'trimValue'], function(key) {\n if (angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key])) options[key] = false;\n });\n\n // Disable browser autocompletion\n element.attr('autocomplete', 'false');\n\n // Build proper bsOptions\n var filter = options.filter || defaults.filter;\n var limit = options.limit || defaults.limit;\n var comparator = options.comparator || defaults.comparator;\n\n var bsOptions = attr.bsOptions;\n if (filter) bsOptions += ' | ' + filter + ':$viewValue';\n if (comparator) bsOptions += ':' + comparator;\n if (limit) bsOptions += ' | limitTo:' + limit;\n var parsedOptions = $parseOptions(bsOptions);\n\n // Initialize typeahead\n var typeahead = $typeahead(element, controller, options);\n\n // Watch options on demand\n if (options.watchOptions) {\n // Watch bsOptions values before filtering for changes, drop function calls\n var watchedOptions = parsedOptions.$match[7].replace(/\\|.+/, '').replace(/\\(.*\\)/g, '').trim();\n scope.$watchCollection(watchedOptions, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', watchedOptions, newValue, oldValue);\n parsedOptions.valuesFn(scope, controller).then(function(values) {\n typeahead.update(values);\n controller.$render();\n });\n });\n }\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('$watch', element.attr('ng-model'), newValue);\n scope.$modelValue = newValue; // Publish modelValue on scope for custom templates\n parsedOptions.valuesFn(scope, controller)\n .then(function(values) {\n // Prevent input with no future prospect if selectMode is truthy\n // @TODO test selectMode\n if (options.selectMode && !values.length && newValue.length > 0) {\n controller.$setViewValue(controller.$viewValue.substring(0, controller.$viewValue.length - 1));\n return;\n }\n if (values.length > limit) values = values.slice(0, limit);\n var isVisible = typeahead.$isVisible();\n isVisible && typeahead.update(values);\n // Do not re-queue an update if a correct value has been selected\n if (values.length === 1 && values[0].value === newValue) return;\n !isVisible && typeahead.update(values);\n // Queue a new rendering that will leverage collection loading\n controller.$render();\n });\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var displayValue = parsedOptions.displayValue(modelValue);\n\n // If we can determine the displayValue, use that\n if (displayValue) {\n return displayValue;\n }\n\n // If there's no display value, attempt to use the modelValue.\n // If the model is an object not much we can do\n if (modelValue && typeof modelValue !== 'object') {\n return modelValue;\n }\n return '';\n });\n\n // Model rendering in view\n controller.$render = function() {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n if (controller.$isEmpty(controller.$viewValue)) {\n return element.val('');\n }\n var index = typeahead.$getIndex(controller.$modelValue);\n var selected = angular.isDefined(index) ? typeahead.$scope.$matches[index].label : controller.$viewValue;\n selected = angular.isObject(selected) ? parsedOptions.displayValue(selected) : selected;\n var value = selected ? selected.toString().replace(/<(?:.|\\n)*?>/gm, '') : '';\n element.val(options.trimValue === false ? value : value.trim());\n };\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (typeahead) typeahead.destroy();\n options = null;\n typeahead = null;\n });\n\n }\n };\n\n });\n\n// Source: tooltip/tooltip.js\nangular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.core', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$tooltip', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n customClass: '',\n prefixClass: 'tooltip',\n prefixEvent: 'tooltip',\n container: false,\n target: false,\n placement: 'top',\n templateUrl: 'tooltip/tooltip.tpl.html',\n template: '',\n contentTemplate: false,\n trigger: 'hover focus',\n keyboard: false,\n html: false,\n show: false,\n title: '',\n type: '',\n delay: 0,\n autoClose: false,\n bsEnabled: true,\n viewport: {\n selector: 'body',\n padding: 0\n }\n };\n\n this.$get = function($window, $rootScope, $bsCompiler, $q, $templateCache, $http, $animate, $sce, dimensions, $$rAF, $timeout) {\n\n var trim = String.prototype.trim;\n var isTouch = 'createTouch' in $window.document;\n var htmlReplaceRegExp = /ng-bind=\"/ig;\n var $body = angular.element($window.document);\n\n function TooltipFactory(element, config) {\n\n var $tooltip = {};\n\n // Common vars\n var options = $tooltip.$options = angular.extend({}, defaults, config);\n var promise = $tooltip.$promise = $bsCompiler.compile(options);\n var scope = $tooltip.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n var nodeName = element[0].nodeName.toLowerCase();\n if(options.delay && angular.isString(options.delay)) {\n var split = options.delay.split(',').map(parseFloat);\n options.delay = split.length > 1 ? {show: split[0], hide: split[1]} : split[0];\n }\n\n // Store $id to identify the triggering element in events\n // give priority to options.id, otherwise, try to use\n // element id if defined\n $tooltip.$id = options.id || element.attr('id') || '';\n\n // Support scope as string options\n if(options.title) {\n scope.title = $sce.trustAsHtml(options.title);\n }\n\n // Provide scope helpers\n scope.$setEnabled = function(isEnabled) {\n scope.$$postDigest(function() {\n $tooltip.setEnabled(isEnabled);\n });\n };\n scope.$hide = function() {\n scope.$$postDigest(function() {\n $tooltip.hide();\n });\n };\n scope.$show = function() {\n scope.$$postDigest(function() {\n $tooltip.show();\n });\n };\n scope.$toggle = function() {\n scope.$$postDigest(function() {\n $tooltip.toggle();\n });\n };\n // Publish isShown as a protected var on scope\n $tooltip.$isShown = scope.$isShown = false;\n\n // Private vars\n var timeout, hoverState;\n\n // Fetch, compile then initialize tooltip\n var compileData, tipElement, tipContainer, tipScope;\n promise.then(function(data) {\n compileData = data;\n $tooltip.init();\n });\n\n $tooltip.init = function() {\n\n // Options: delay\n if (options.delay && angular.isNumber(options.delay)) {\n options.delay = {\n show: options.delay,\n hide: options.delay\n };\n }\n\n // Replace trigger on touch devices ?\n // if(isTouch && options.trigger === defaults.trigger) {\n // options.trigger.replace(/hover/g, 'click');\n // }\n\n // Options : container\n if(options.container === 'self') {\n tipContainer = element;\n } else if(angular.isElement(options.container)) {\n tipContainer = options.container;\n } else if(options.container) {\n tipContainer = findElement(options.container);\n }\n\n // Options: trigger\n bindTriggerEvents();\n\n // Options: target\n if(options.target) {\n options.target = angular.isElement(options.target) ? options.target : findElement(options.target);\n }\n\n // Options: show\n if(options.show) {\n scope.$$postDigest(function() {\n options.trigger === 'focus' ? element[0].focus() : $tooltip.show();\n });\n }\n\n };\n\n $tooltip.destroy = function() {\n\n // Unbind events\n unbindTriggerEvents();\n\n // Remove element\n destroyTipElement();\n\n // Destroy scope\n scope.$destroy();\n\n };\n\n $tooltip.enter = function() {\n\n clearTimeout(timeout);\n hoverState = 'in';\n if (!options.delay || !options.delay.show) {\n return $tooltip.show();\n }\n\n timeout = setTimeout(function() {\n if (hoverState ==='in') $tooltip.show();\n }, options.delay.show);\n\n };\n\n $tooltip.show = function() {\n if (!options.bsEnabled || $tooltip.$isShown) return;\n\n scope.$emit(options.prefixEvent + '.show.before', $tooltip);\n var parent, after;\n if (options.container) {\n parent = tipContainer;\n if (tipContainer[0].lastChild) {\n after = angular.element(tipContainer[0].lastChild);\n } else {\n after = null;\n }\n } else {\n parent = null;\n after = element;\n }\n\n\n // Hide any existing tipElement\n if(tipElement) destroyTipElement();\n // Fetch a cloned element linked from template\n tipScope = $tooltip.$scope.$new();\n tipElement = $tooltip.$element = compileData.link(tipScope, function(clonedElement, scope) {});\n\n // Set the initial positioning. Make the tooltip invisible\n // so IE doesn't try to focus on it off screen.\n tipElement.css({top: '-9999px', left: '-9999px', right: 'auto', display: 'block', visibility: 'hidden'});\n\n // Options: animation\n if(options.animation) tipElement.addClass(options.animation);\n // Options: type\n if(options.type) tipElement.addClass(options.prefixClass + '-' + options.type);\n // Options: custom classes\n if(options.customClass) tipElement.addClass(options.customClass);\n\n // Append the element, without any animations. If we append\n // using $animate.enter, some of the animations cause the placement\n // to be off due to the transforms.\n after ? after.after(tipElement) : parent.prepend(tipElement);\n\n $tooltip.$isShown = scope.$isShown = true;\n safeDigest(scope);\n\n // Now, apply placement\n $tooltip.$applyPlacement();\n\n // Once placed, animate it.\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.enter(tipElement, parent, after, enterAnimateCallback);\n } else {\n $animate.enter(tipElement, parent, after).then(enterAnimateCallback);\n }\n safeDigest(scope);\n\n $$rAF(function () {\n // Once the tooltip is placed and the animation starts, make the tooltip visible\n if(tipElement) tipElement.css({visibility: 'visible'});\n });\n\n // Bind events\n if(options.keyboard) {\n if(options.trigger !== 'focus') {\n $tooltip.focus();\n }\n bindKeyboardEvents();\n }\n\n if(options.autoClose) {\n bindAutoCloseEvents();\n }\n\n };\n\n function enterAnimateCallback() {\n scope.$emit(options.prefixEvent + '.show', $tooltip);\n }\n\n $tooltip.leave = function() {\n\n clearTimeout(timeout);\n hoverState = 'out';\n if (!options.delay || !options.delay.hide) {\n return $tooltip.hide();\n }\n timeout = setTimeout(function () {\n if (hoverState === 'out') {\n $tooltip.hide();\n }\n }, options.delay.hide);\n\n };\n\n var _blur;\n var _tipToHide;\n $tooltip.hide = function(blur) {\n\n if(!$tooltip.$isShown) return;\n scope.$emit(options.prefixEvent + '.hide.before', $tooltip);\n\n // store blur value for leaveAnimateCallback to use\n _blur = blur;\n\n // store current tipElement reference to use\n // in leaveAnimateCallback\n _tipToHide = tipElement;\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.leave(tipElement, leaveAnimateCallback);\n } else {\n $animate.leave(tipElement).then(leaveAnimateCallback);\n }\n\n $tooltip.$isShown = scope.$isShown = false;\n safeDigest(scope);\n\n // Unbind events\n if(options.keyboard && tipElement !== null) {\n unbindKeyboardEvents();\n }\n\n if(options.autoClose && tipElement !== null) {\n unbindAutoCloseEvents();\n }\n };\n\n function leaveAnimateCallback() {\n scope.$emit(options.prefixEvent + '.hide', $tooltip);\n\n // check if current tipElement still references\n // the same element when hide was called\n if (tipElement === _tipToHide) {\n // Allow to blur the input when hidden, like when pressing enter key\n if(_blur && options.trigger === 'focus') {\n return element[0].blur();\n }\n\n // clean up child scopes\n destroyTipElement();\n }\n }\n\n $tooltip.toggle = function() {\n $tooltip.$isShown ? $tooltip.leave() : $tooltip.enter();\n };\n\n $tooltip.focus = function() {\n tipElement[0].focus();\n };\n\n $tooltip.setEnabled = function(isEnabled) {\n options.bsEnabled = isEnabled;\n };\n\n $tooltip.setViewport = function(viewport) {\n options.viewport = viewport;\n };\n\n // Protected methods\n\n $tooltip.$applyPlacement = function() {\n if(!tipElement) return;\n\n // Determine if we're doing an auto or normal placement\n var placement = options.placement,\n autoToken = /\\s?auto?\\s?/i,\n autoPlace = autoToken.test(placement);\n\n if (autoPlace) {\n placement = placement.replace(autoToken, '') || defaults.placement;\n }\n\n // Need to add the position class before we get\n // the offsets\n tipElement.addClass(options.placement);\n\n // Get the position of the target element\n // and the height and width of the tooltip so we can center it.\n var elementPosition = getPosition(),\n tipWidth = tipElement.prop('offsetWidth'),\n tipHeight = tipElement.prop('offsetHeight');\n\n // Refresh viewport position\n $tooltip.$viewport = options.viewport && findElement(options.viewport.selector || options.viewport);\n\n // If we're auto placing, we need to check the positioning\n if (autoPlace) {\n var originalPlacement = placement;\n var viewportPosition = getPosition($tooltip.$viewport);\n\n // Determine if the vertical placement\n if (originalPlacement.indexOf('bottom') >= 0 && elementPosition.bottom + tipHeight > viewportPosition.bottom) {\n placement = originalPlacement.replace('bottom', 'top');\n } else if (originalPlacement.indexOf('top') >= 0 && elementPosition.top - tipHeight < viewportPosition.top) {\n placement = originalPlacement.replace('top', 'bottom');\n }\n\n // Determine the horizontal placement\n // The exotic placements of left and right are opposite of the standard placements. Their arrows are put on the left/right\n // and flow in the opposite direction of their placement.\n if ((originalPlacement === 'right' || originalPlacement === 'bottom-left' || originalPlacement === 'top-left') &&\n elementPosition.right + tipWidth > viewportPosition.width) {\n\n placement = originalPlacement === 'right' ? 'left' : placement.replace('left', 'right');\n } else if ((originalPlacement === 'left' || originalPlacement === 'bottom-right' || originalPlacement === 'top-right') &&\n elementPosition.left - tipWidth < viewportPosition.left) {\n\n placement = originalPlacement === 'left' ? 'right' : placement.replace('right', 'left');\n }\n\n tipElement.removeClass(originalPlacement).addClass(placement);\n }\n\n // Get the tooltip's top and left coordinates to center it with this directive.\n var tipPosition = getCalculatedOffset(placement, elementPosition, tipWidth, tipHeight);\n applyPlacement(tipPosition, placement);\n };\n\n $tooltip.$onKeyUp = function(evt) {\n if (evt.which === 27 && $tooltip.$isShown) {\n $tooltip.hide();\n evt.stopPropagation();\n }\n };\n\n $tooltip.$onFocusKeyUp = function(evt) {\n if (evt.which === 27) {\n element[0].blur();\n evt.stopPropagation();\n }\n };\n\n $tooltip.$onFocusElementMouseDown = function(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n // Some browsers do not auto-focus buttons (eg. Safari)\n $tooltip.$isShown ? element[0].blur() : element[0].focus();\n };\n\n // bind/unbind events\n function bindTriggerEvents() {\n var triggers = options.trigger.split(' ');\n angular.forEach(triggers, function(trigger) {\n if(trigger === 'click') {\n element.on('click', $tooltip.toggle);\n } else if(trigger !== 'manual') {\n element.on(trigger === 'hover' ? 'mouseenter' : 'focus', $tooltip.enter);\n element.on(trigger === 'hover' ? 'mouseleave' : 'blur', $tooltip.leave);\n nodeName === 'button' && trigger !== 'hover' && element.on(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);\n }\n });\n }\n\n function unbindTriggerEvents() {\n var triggers = options.trigger.split(' ');\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i];\n if(trigger === 'click') {\n element.off('click', $tooltip.toggle);\n } else if(trigger !== 'manual') {\n element.off(trigger === 'hover' ? 'mouseenter' : 'focus', $tooltip.enter);\n element.off(trigger === 'hover' ? 'mouseleave' : 'blur', $tooltip.leave);\n nodeName === 'button' && trigger !== 'hover' && element.off(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);\n }\n }\n }\n\n function bindKeyboardEvents() {\n if(options.trigger !== 'focus') {\n tipElement.on('keyup', $tooltip.$onKeyUp);\n } else {\n element.on('keyup', $tooltip.$onFocusKeyUp);\n }\n }\n\n function unbindKeyboardEvents() {\n if(options.trigger !== 'focus') {\n tipElement.off('keyup', $tooltip.$onKeyUp);\n } else {\n element.off('keyup', $tooltip.$onFocusKeyUp);\n }\n }\n\n var _autoCloseEventsBinded = false;\n function bindAutoCloseEvents() {\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n // Stop propagation when clicking inside tooltip\n tipElement.on('click', stopEventPropagation);\n\n // Hide when clicking outside tooltip\n $body.on('click', $tooltip.hide);\n\n _autoCloseEventsBinded = true;\n }, 0, false);\n }\n\n function unbindAutoCloseEvents() {\n if (_autoCloseEventsBinded) {\n tipElement.off('click', stopEventPropagation);\n $body.off('click', $tooltip.hide);\n _autoCloseEventsBinded = false;\n }\n }\n\n function stopEventPropagation(event) {\n event.stopPropagation();\n }\n\n // Private methods\n\n function getPosition($element) {\n $element = $element || (options.target || element);\n\n var el = $element[0],\n isBody = el.tagName === 'BODY';\n\n var elRect = el.getBoundingClientRect();\n var rect = {};\n\n // IE8 has issues with angular.extend and using elRect directly.\n // By coping the values of elRect into a new object, we can continue to use extend\n for (var p in elRect) {\n // DO NOT use hasOwnProperty when inspecting the return of getBoundingClientRect.\n rect[p] = elRect[p];\n }\n\n if (rect.width === null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n rect = angular.extend({}, rect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top });\n }\n var elOffset = isBody ? { top: 0, left: 0 } : dimensions.offset(el),\n scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.prop('scrollTop') || 0 },\n outerDims = isBody ? { width: document.documentElement.clientWidth, height: $window.innerHeight } : null;\n\n return angular.extend({}, rect, scroll, outerDims, elOffset);\n }\n\n function getCalculatedOffset(placement, position, actualWidth, actualHeight) {\n var offset;\n var split = placement.split('-');\n\n switch (split[0]) {\n case 'right':\n offset = {\n top: position.top + position.height / 2 - actualHeight / 2,\n left: position.left + position.width\n };\n break;\n case 'bottom':\n offset = {\n top: position.top + position.height,\n left: position.left + position.width / 2 - actualWidth / 2\n };\n break;\n case 'left':\n offset = {\n top: position.top + position.height / 2 - actualHeight / 2,\n left: position.left - actualWidth\n };\n break;\n default:\n offset = {\n top: position.top - actualHeight,\n left: position.left + position.width / 2 - actualWidth / 2\n };\n break;\n }\n\n if(!split[1]) {\n return offset;\n }\n\n // Add support for corners @todo css\n if(split[0] === 'top' || split[0] === 'bottom') {\n switch (split[1]) {\n case 'left':\n offset.left = position.left;\n break;\n case 'right':\n offset.left = position.left + position.width - actualWidth;\n }\n } else if(split[0] === 'left' || split[0] === 'right') {\n switch (split[1]) {\n case 'top':\n offset.top = position.top - actualHeight;\n break;\n case 'bottom':\n offset.top = position.top + position.height;\n }\n }\n\n return offset;\n }\n\n function applyPlacement(offset, placement) {\n var tip = tipElement[0],\n width = tip.offsetWidth,\n height = tip.offsetHeight;\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt(dimensions.css(tip, 'margin-top'), 10),\n marginLeft = parseInt(dimensions.css(tip, 'margin-left'), 10);\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0;\n if (isNaN(marginLeft)) marginLeft = 0;\n\n offset.top = offset.top + marginTop;\n offset.left = offset.left + marginLeft;\n\n // dimensions setOffset doesn't round pixel values\n // so we use setOffset directly with our own function\n dimensions.setOffset(tip, angular.extend({\n using: function (props) {\n tipElement.css({\n top: Math.round(props.top) + 'px',\n left: Math.round(props.left) + 'px',\n right: ''\n });\n }\n }, offset), 0);\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = tip.offsetWidth,\n actualHeight = tip.offsetHeight;\n\n if (placement === 'top' && actualHeight !== height) {\n offset.top = offset.top + height - actualHeight;\n }\n\n // If it's an exotic placement, exit now instead of\n // applying a delta and changing the arrow\n if (/top-left|top-right|bottom-left|bottom-right/.test(placement)) return;\n\n var delta = getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight);\n\n if (delta.left) {\n offset.left += delta.left;\n } else {\n offset.top += delta.top;\n }\n\n dimensions.setOffset(tip, offset);\n\n if (/top|right|bottom|left/.test(placement)) {\n var isVertical = /top|bottom/.test(placement),\n arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight,\n arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight';\n\n replaceArrow(arrowDelta, tip[arrowOffsetPosition], isVertical);\n }\n }\n\n // @source https://github.com/twbs/bootstrap/blob/v3.3.5/js/tooltip.js#L380\n function getViewportAdjustedDelta(placement, position, actualWidth, actualHeight) {\n var delta = {top: 0, left: 0};\n if (!$tooltip.$viewport) return delta;\n\n var viewportPadding = options.viewport && options.viewport.padding || 0;\n var viewportDimensions = getPosition($tooltip.$viewport);\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = position.top - viewportPadding - viewportDimensions.scroll;\n var bottomEdgeOffset = position.top + viewportPadding - viewportDimensions.scroll + actualHeight;\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset;\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset;\n }\n } else {\n var leftEdgeOffset = position.left - viewportPadding;\n var rightEdgeOffset = position.left + viewportPadding + actualWidth;\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset;\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset;\n }\n }\n\n return delta;\n }\n\n function replaceArrow(delta, dimension, isHorizontal) {\n var $arrow = findElement('.tooltip-arrow, .arrow', tipElement[0]);\n\n $arrow.css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isHorizontal ? 'top' : 'left', '');\n }\n\n function destroyTipElement() {\n // Cancel pending callbacks\n clearTimeout(timeout);\n\n if($tooltip.$isShown && tipElement !== null) {\n if(options.autoClose) {\n unbindAutoCloseEvents();\n }\n\n if(options.keyboard) {\n unbindKeyboardEvents();\n }\n }\n\n if(tipScope) {\n tipScope.$destroy();\n tipScope = null;\n }\n\n if(tipElement) {\n tipElement.remove();\n tipElement = $tooltip.$element = null;\n }\n }\n\n return $tooltip;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n var fetchPromises = {};\n function fetchTemplate(template) {\n if(fetchPromises[template]) return fetchPromises[template];\n return (fetchPromises[template] = $http.get(template, {cache: $templateCache}).then(function(res) {\n return res.data;\n }));\n }\n\n return TooltipFactory;\n\n };\n\n })\n\n .directive('bsTooltip', function($window, $location, $sce, $tooltip, $$rAF) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'backdropAnimation', 'type', 'customClass', 'id'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // should not parse target attribute (anchor tag), only data-target #1454\n var dataTarget = element.attr('data-target');\n if(angular.isDefined(dataTarget)) {\n if(falseValueRegExp.test(dataTarget))\n options.target = false;\n else\n options.target = dataTarget;\n }\n\n // overwrite inherited title value when no value specified\n // fix for angular 1.3.1 531a8de72c439d8ddd064874bf364c00cedabb11\n if (!scope.hasOwnProperty('title')){\n scope.title = '';\n }\n\n // Observe scope attributes for change\n attr.$observe('title', function(newValue) {\n if (angular.isDefined(newValue) || !scope.hasOwnProperty('title')) {\n var oldValue = scope.title;\n scope.title = $sce.trustAsHtml(newValue);\n angular.isDefined(oldValue) && $$rAF(function() {\n tooltip && tooltip.$applyPlacement();\n });\n }\n });\n\n // Support scope as an object\n attr.bsTooltip && scope.$watch(attr.bsTooltip, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.title = newValue;\n }\n angular.isDefined(oldValue) && $$rAF(function() {\n tooltip && tooltip.$applyPlacement();\n });\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!tooltip || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(tooltip),?/i);\n newValue === true ? tooltip.show() : tooltip.hide();\n });\n\n // Enabled binding support\n attr.bsEnabled && scope.$watch(attr.bsEnabled, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.bsEnabled, newValue, oldValue);\n if(!tooltip || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|1|,?(tooltip),?/i);\n newValue === false ? tooltip.setEnabled(false) : tooltip.setEnabled(true);\n });\n\n // Viewport support\n attr.viewport && scope.$watch(attr.viewport, function (newValue) {\n if(!tooltip || !angular.isDefined(newValue)) return;\n tooltip.setViewport(newValue);\n });\n\n // Initialize popover\n var tooltip = $tooltip(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if(tooltip) tooltip.destroy();\n options = null;\n tooltip = null;\n });\n\n }\n };\n\n });\n\n})(window, document);\n","'use strict';\n\n// NOTICE: This file was forked from the angular-material project (github.com/angular/material)\n// MIT Licensed - Copyright (c) 2014-2015 Google, Inc. http://angularjs.org\n\nangular.module('mgcrea.ngStrap.core', [])\n .service('$bsCompiler', bsCompilerService);\n\nfunction bsCompilerService($q, $http, $injector, $compile, $controller, $templateCache) {\n /* jshint validthis: true */\n\n /*\n * @ngdoc service\n * @name $bsCompiler\n * @module material.core\n * @description\n * The $bsCompiler service is an abstraction of angular's compiler, that allows the developer\n * to easily compile an element with a templateUrl, controller, and locals.\n *\n * @usage\n * \n * $bsCompiler.compile({\n * templateUrl: 'modal.html',\n * controller: 'ModalCtrl',\n * locals: {\n * modal: myModalInstance;\n * }\n * }).then(function(compileData) {\n * compileData.element; // modal.html's template in an element\n * compileData.link(myScope); //attach controller & scope to element\n * });\n * \n */\n\n /*\n * @ngdoc method\n * @name $bsCompiler#compile\n * @description A helper to compile an HTML template/templateUrl with a given controller,\n * locals, and scope.\n * @param {object} options An options object, with the following properties:\n *\n * - `controller` - `{(string=|function()=}` Controller fn that should be associated with\n * newly created scope or the name of a registered controller if passed as a string.\n * - `controllerAs` - `{string=}` A controller alias name. If present the controller will be\n * published to scope under the `controllerAs` name.\n * - `template` - `{string=}` An html template as a string.\n * - `templateUrl` - `{string=}` A path to an html template.\n * - `transformTemplate` - `{function(template)=}` A function which transforms the template after\n * it is loaded. It will be given the template string as a parameter, and should\n * return a a new string representing the transformed template.\n * - `resolve` - `{Object.=}` - An optional map of dependencies which should\n * be injected into the controller. If any of these dependencies are promises, the compiler\n * will wait for them all to be resolved, or if one is rejected before the controller is\n * instantiated `compile()` will fail..\n * * `key` - `{string}`: a name of a dependency to be injected into the controller.\n * * `factory` - `{string|function}`: If `string` then it is an alias for a service.\n * Otherwise if function, then it is injected and the return value is treated as the\n * dependency. If the result is a promise, it is resolved before its value is\n * injected into the controller.\n *\n * @returns {object=} promise A promise, which will be resolved with a `compileData` object.\n * `compileData` has the following properties:\n *\n * - `element` - `{element}`: an uncompiled element matching the provided template.\n * - `link` - `{function(scope)}`: A link function, which, when called, will compile\n * the element and instantiate the provided controller (if given).\n * - `locals` - `{object}`: The locals which will be passed into the controller once `link` is\n * called. If `bindToController` is true, they will be coppied to the ctrl instead\n * - `bindToController` - `bool`: bind the locals to the controller, instead of passing them in.\n */\n this.compile = function(options) {\n\n if(options.template && /\\.html$/.test(options.template)) {\n console.warn('Deprecated use of `template` option to pass a file. Please use the `templateUrl` option instead.');\n options.templateUrl = options.template;\n options.template = '';\n }\n\n var templateUrl = options.templateUrl;\n var template = options.template || '';\n var controller = options.controller;\n var controllerAs = options.controllerAs;\n var resolve = angular.copy(options.resolve || {});\n var locals = angular.copy(options.locals || {});\n var transformTemplate = options.transformTemplate || angular.identity;\n var bindToController = options.bindToController;\n\n // Take resolve values and invoke them.\n // Resolves can either be a string (value: 'MyRegisteredAngularConst'),\n // or an invokable 'factory' of sorts: (value: function ValueGetter($dependency) {})\n angular.forEach(resolve, function(value, key) {\n if (angular.isString(value)) {\n resolve[key] = $injector.get(value);\n } else {\n resolve[key] = $injector.invoke(value);\n }\n });\n // Add the locals, which are just straight values to inject\n // eg locals: { three: 3 }, will inject three into the controller\n angular.extend(resolve, locals);\n\n if (templateUrl) {\n resolve.$template = fetchTemplate(templateUrl);\n } else {\n resolve.$template = $q.when(template);\n }\n\n if (options.contentTemplate) {\n // TODO(mgcrea): deprecate?\n resolve.$template = $q.all([resolve.$template, fetchTemplate(options.contentTemplate)])\n .then(function(templates) {\n var templateEl = angular.element(templates[0]);\n var contentEl = findElement('[ng-bind=\"content\"]', templateEl[0]).removeAttr('ng-bind').html(templates[1]);\n // Drop the default footer as you probably don't want it if you use a custom contentTemplate\n if(!options.templateUrl) contentEl.next().remove();\n return templateEl[0].outerHTML;\n });\n }\n\n // Wait for all the resolves to finish if they are promises\n return $q.all(resolve).then(function(locals) {\n\n var template = transformTemplate(locals.$template);\n if (options.html) {\n template = template.replace(/ng-bind=\"/ig, 'ng-bind-html=\"');\n }\n // var element = options.element || angular.element('
').html(template.trim()).contents();\n var element = angular.element('
').html(template.trim()).contents();\n var linkFn = $compile(element);\n\n // Return a linking function that can be used later when the element is ready\n return {\n locals: locals,\n element: element,\n link: function link(scope) {\n locals.$scope = scope;\n\n // Instantiate controller if it exists, because we have scope\n if (controller) {\n var invokeCtrl = $controller(controller, locals, true);\n if (bindToController) {\n angular.extend(invokeCtrl.instance, locals);\n }\n // Support angular@~1.2 invokeCtrl\n var ctrl = angular.isObject(invokeCtrl) ? invokeCtrl : invokeCtrl();\n // See angular-route source for this logic\n element.data('$ngControllerController', ctrl);\n element.children().data('$ngControllerController', ctrl);\n\n if (controllerAs) {\n scope[controllerAs] = ctrl;\n }\n }\n\n return linkFn.apply(null, arguments);\n }\n };\n });\n\n };\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n var fetchPromises = {};\n function fetchTemplate(template) {\n if(fetchPromises[template]) return fetchPromises[template];\n return (fetchPromises[template] = $http.get(template, {cache: $templateCache})\n .then(function(res) {\n return res.data;\n }));\n }\n\n}\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.dateFormatter', [])\n\n .service('$dateFormatter', function($locale, dateFilter) {\n\n // The unused `lang` arguments are on purpose. The default implementation does not\n // use them and it always uses the locale loaded into the `$locale` service.\n // Custom implementations might use it, thus allowing different directives to\n // have different languages.\n\n this.getDefaultLocale = function() {\n return $locale.id;\n };\n\n // Format is either a data format name, e.g. \"shortTime\" or \"fullDate\", or a date format\n // Return either the corresponding date format or the given date format.\n this.getDatetimeFormat = function(format, lang) {\n return $locale.DATETIME_FORMATS[format] || format;\n };\n\n this.weekdaysShort = function(lang) {\n return $locale.DATETIME_FORMATS.SHORTDAY;\n };\n\n function splitTimeFormat(format) {\n return /(h+)([:\\.])?(m+)([:\\.])?(s*)[ ]?(a?)/i.exec(format).slice(1);\n }\n\n // h:mm a => h\n this.hoursFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[0];\n };\n\n // h:mm a => mm\n this.minutesFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[2];\n };\n\n // h:mm:ss a => ss\n this.secondsFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[4];\n };\n\n // h:mm a => :\n this.timeSeparator = function(timeFormat) {\n return splitTimeFormat(timeFormat)[1];\n };\n\n // h:mm:ss a => true, h:mm a => false\n this.showSeconds = function(timeFormat) {\n return !!splitTimeFormat(timeFormat)[4];\n };\n\n // h:mm a => true, H.mm => false\n this.showAM = function(timeFormat) {\n return !!splitTimeFormat(timeFormat)[5];\n };\n\n this.formatDate = function(date, format, lang, timezone){\n return dateFilter(date, format, timezone);\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.affix', ['mgcrea.ngStrap.helpers.dimensions', 'mgcrea.ngStrap.helpers.debounce'])\n\n .provider('$affix', function() {\n\n var defaults = this.defaults = {\n offsetTop: 'auto',\n inlineStyles: true\n };\n\n this.$get = function($window, debounce, dimensions) {\n\n var bodyEl = angular.element($window.document.body);\n var windowEl = angular.element($window);\n\n function AffixFactory(element, config) {\n\n var $affix = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n var targetEl = options.target;\n\n // Initial private vars\n var reset = 'affix affix-top affix-bottom',\n setWidth = false,\n initialAffixTop = 0,\n initialOffsetTop = 0,\n offsetTop = 0,\n offsetBottom = 0,\n affixed = null,\n unpin = null;\n\n var parent = element.parent();\n // Options: custom parent\n if (options.offsetParent) {\n if (options.offsetParent.match(/^\\d+$/)) {\n for (var i = 0; i < (options.offsetParent * 1) - 1; i++) {\n parent = parent.parent();\n }\n }\n else {\n parent = angular.element(options.offsetParent);\n }\n }\n\n $affix.init = function() {\n\n this.$parseOffsets();\n initialOffsetTop = dimensions.offset(element[0]).top + initialAffixTop;\n setWidth = !element[0].style.width;\n\n // Bind events\n targetEl.on('scroll', this.checkPosition);\n targetEl.on('click', this.checkPositionWithEventLoop);\n windowEl.on('resize', this.$debouncedOnResize);\n\n // Both of these checkPosition() calls are necessary for the case where\n // the user hits refresh after scrolling to the bottom of the page.\n this.checkPosition();\n this.checkPositionWithEventLoop();\n\n };\n\n $affix.destroy = function() {\n\n // Unbind events\n targetEl.off('scroll', this.checkPosition);\n targetEl.off('click', this.checkPositionWithEventLoop);\n windowEl.off('resize', this.$debouncedOnResize);\n\n };\n\n $affix.checkPositionWithEventLoop = function() {\n\n // IE 9 throws an error if we use 'this' instead of '$affix'\n // in this setTimeout call\n setTimeout($affix.checkPosition, 1);\n\n };\n\n $affix.checkPosition = function() {\n // if (!this.$element.is(':visible')) return\n\n var scrollTop = getScrollTop();\n var position = dimensions.offset(element[0]);\n var elementHeight = dimensions.height(element[0]);\n\n // Get required affix class according to position\n var affix = getRequiredAffixClass(unpin, position, elementHeight);\n\n // Did affix status changed this last check?\n if(affixed === affix) return;\n affixed = affix;\n\n // Add proper affix class\n element.removeClass(reset).addClass('affix' + ((affix !== 'middle') ? '-' + affix : ''));\n\n if(affix === 'top') {\n unpin = null;\n if(setWidth) {\n element.css('width', '');\n }\n if (options.inlineStyles) {\n element.css('position', (options.offsetParent) ? '' : 'relative');\n element.css('top', '');\n }\n } else if(affix === 'bottom') {\n if (options.offsetUnpin) {\n unpin = -(options.offsetUnpin * 1);\n }\n else {\n // Calculate unpin threshold when affixed to bottom.\n // Hopefully the browser scrolls pixel by pixel.\n unpin = position.top - scrollTop;\n }\n if(setWidth) {\n element.css('width', '');\n }\n if (options.inlineStyles) {\n element.css('position', (options.offsetParent) ? '' : 'relative');\n element.css('top', (options.offsetParent) ? '' : ((bodyEl[0].offsetHeight - offsetBottom - elementHeight - initialOffsetTop) + 'px'));\n }\n } else { // affix === 'middle'\n unpin = null;\n if(setWidth) {\n element.css('width', element[0].offsetWidth + 'px');\n }\n if (options.inlineStyles) {\n element.css('position', 'fixed');\n element.css('top', initialAffixTop + 'px');\n }\n }\n\n };\n\n $affix.$onResize = function() {\n $affix.$parseOffsets();\n $affix.checkPosition();\n };\n $affix.$debouncedOnResize = debounce($affix.$onResize, 50);\n\n $affix.$parseOffsets = function() {\n var initialPosition = element.css('position');\n // Reset position to calculate correct offsetTop\n if (options.inlineStyles){\n element.css('position', (options.offsetParent) ? '' : 'relative');\n }\n\n if(options.offsetTop) {\n if(options.offsetTop === 'auto') {\n options.offsetTop = '+0';\n }\n if(options.offsetTop.match(/^[-+]\\d+$/)) {\n initialAffixTop = - options.offsetTop * 1;\n if(options.offsetParent) {\n offsetTop = dimensions.offset(parent[0]).top + (options.offsetTop * 1);\n }\n else {\n offsetTop = dimensions.offset(element[0]).top - dimensions.css(element[0], 'marginTop', true) + (options.offsetTop * 1);\n }\n }\n else {\n offsetTop = options.offsetTop * 1;\n }\n }\n\n if(options.offsetBottom) {\n if(options.offsetParent && options.offsetBottom.match(/^[-+]\\d+$/)) {\n // add 1 pixel due to rounding problems...\n offsetBottom = getScrollHeight() - (dimensions.offset(parent[0]).top + dimensions.height(parent[0])) + (options.offsetBottom * 1) + 1;\n }\n else {\n offsetBottom = options.offsetBottom * 1;\n }\n }\n\n // Bring back the element's position after calculations\n if (options.inlineStyles){\n element.css('position', initialPosition);\n }\n };\n\n // Private methods\n\n function getRequiredAffixClass(unpin, position, elementHeight) {\n\n var scrollTop = getScrollTop();\n var scrollHeight = getScrollHeight();\n\n if(scrollTop <= offsetTop) {\n return 'top';\n } else if(unpin !== null && (scrollTop + unpin <= position.top)) {\n return 'middle';\n } else if(offsetBottom !== null && (position.top + elementHeight + initialAffixTop >= scrollHeight - offsetBottom)) {\n return 'bottom';\n } else {\n return 'middle';\n }\n\n }\n\n function getScrollTop() {\n return targetEl[0] === $window ? $window.pageYOffset : targetEl[0].scrollTop;\n }\n\n function getScrollHeight() {\n return targetEl[0] === $window ? $window.document.body.scrollHeight : targetEl[0].scrollHeight;\n }\n\n $affix.init();\n return $affix;\n\n }\n\n return AffixFactory;\n\n };\n\n })\n\n .directive('bsAffix', function($affix, $window) {\n\n return {\n restrict: 'EAC',\n require: '^?bsAffixTarget',\n link: function postLink(scope, element, attr, affixTarget) {\n\n var options = {scope: scope, target: affixTarget ? affixTarget.$element : angular.element($window)};\n angular.forEach(['offsetTop', 'offsetBottom', 'offsetParent', 'offsetUnpin', 'inlineStyles'], function(key) {\n if(angular.isDefined(attr[key])) {\n var option = attr[key];\n if (/true/i.test(option)) option = true;\n if (/false/i.test(option)) option = false;\n options[key] = option;\n }\n });\n\n var affix = $affix(element, options);\n scope.$on('$destroy', function() {\n affix && affix.destroy();\n options = null;\n affix = null;\n });\n\n }\n };\n\n })\n\n .directive('bsAffixTarget', function() {\n return {\n controller: function($element) {\n this.$element = $element;\n }\n };\n });\n","'use strict';\n\n// @BUG: following snippet won't compile correctly\n// @TODO: submit issue to core\n// ' ' +\n\nangular.module('mgcrea.ngStrap.alert', ['mgcrea.ngStrap.modal'])\n\n .provider('$alert', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'alert',\n prefixEvent: 'alert',\n placement: null,\n templateUrl: 'alert/alert.tpl.html',\n container: false,\n element: null,\n backdrop: false,\n keyboard: true,\n show: true,\n // Specific options\n duration: false,\n type: false,\n dismissable: true\n };\n\n this.$get = function($modal, $timeout) {\n\n function AlertFactory(config) {\n\n var $alert = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $alert = $modal(options);\n\n // Support scope as string options [/*title, content, */ type, dismissable]\n $alert.$scope.dismissable = !!options.dismissable;\n if(options.type) {\n $alert.$scope.type = options.type;\n }\n\n // Support auto-close duration\n var show = $alert.show;\n if(options.duration) {\n $alert.show = function() {\n show();\n $timeout(function() {\n $alert.hide();\n }, options.duration * 1000);\n };\n }\n\n return $alert;\n\n }\n\n return AlertFactory;\n\n };\n\n })\n\n .directive('bsAlert', function($window, $sce, $alert) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'keyboard', 'html', 'container', 'animation', 'duration', 'dismissable'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['keyboard', 'html', 'container', 'dismissable'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // overwrite inherited title value when no value specified\n // fix for angular 1.3.1 531a8de72c439d8ddd064874bf364c00cedabb11\n if (!scope.hasOwnProperty('title')){\n scope.title = '';\n }\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content', 'type'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsAlert && scope.$watch(attr.bsAlert, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize alert\n var alert = $alert(options);\n\n // Trigger\n element.on(attr.trigger || 'click', alert.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (alert) alert.destroy();\n options = null;\n alert = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.aside', ['mgcrea.ngStrap.modal'])\n\n .provider('$aside', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade-and-slide-right',\n prefixClass: 'aside',\n prefixEvent: 'aside',\n placement: 'right',\n templateUrl: 'aside/aside.tpl.html',\n contentTemplate: false,\n container: false,\n element: null,\n backdrop: true,\n keyboard: true,\n html: false,\n show: true\n };\n\n this.$get = function($modal) {\n\n function AsideFactory(config) {\n\n var $aside = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $aside = $modal(options);\n\n return $aside;\n\n }\n\n return AsideFactory;\n\n };\n\n })\n\n .directive('bsAside', function($window, $sce, $aside) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'backdrop', 'keyboard', 'html', 'container', 'animation'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['backdrop', 'keyboard', 'html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsAside && scope.$watch(attr.bsAside, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize aside\n var aside = $aside(options);\n\n // Trigger\n element.on(attr.trigger || 'click', aside.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (aside) aside.destroy();\n options = null;\n aside = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.button', [])\n\n .provider('$button', function() {\n\n var defaults = this.defaults = {\n activeClass:'active',\n toggleEvent:'click'\n };\n\n this.$get = function() {\n return {defaults: defaults};\n };\n\n })\n\n .directive('bsCheckboxGroup', function() {\n\n return {\n restrict: 'A',\n require: 'ngModel',\n compile: function postLink(element, attr) {\n element.attr('data-toggle', 'buttons');\n element.removeAttr('ng-model');\n var children = element[0].querySelectorAll('input[type=\"checkbox\"]');\n angular.forEach(children, function(child) {\n var childEl = angular.element(child);\n childEl.attr('bs-checkbox', '');\n childEl.attr('ng-model', attr.ngModel + '.' + childEl.attr('value'));\n });\n }\n\n };\n\n })\n\n .directive('bsCheckbox', function($button, $$rAF) {\n\n var defaults = $button.defaults;\n var constantValueRegExp = /^(true|false|\\d+)$/;\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n var options = defaults;\n\n // Support label > input[type=\"checkbox\"]\n var isInput = element[0].nodeName === 'INPUT';\n var activeElement = isInput ? element.parent() : element;\n\n var trueValue = angular.isDefined(attr.trueValue) ? attr.trueValue : true;\n if(constantValueRegExp.test(attr.trueValue)) {\n trueValue = scope.$eval(attr.trueValue);\n }\n var falseValue = angular.isDefined(attr.falseValue) ? attr.falseValue : false;\n if(constantValueRegExp.test(attr.falseValue)) {\n falseValue = scope.$eval(attr.falseValue);\n }\n\n // Parse exotic values\n var hasExoticValues = typeof trueValue !== 'boolean' || typeof falseValue !== 'boolean';\n if(hasExoticValues) {\n controller.$parsers.push(function(viewValue) {\n // console.warn('$parser', element.attr('ng-model'), 'viewValue', viewValue);\n return viewValue ? trueValue : falseValue;\n });\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n return angular.equals(modelValue, trueValue);\n });\n // Fix rendering for exotic values\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n controller.$render();\n });\n }\n\n // model -> view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var isActive = angular.equals(controller.$modelValue, trueValue);\n $$rAF(function() {\n if(isInput) element[0].checked = isActive;\n activeElement.toggleClass(options.activeClass, isActive);\n });\n };\n\n // view -> model\n element.bind(options.toggleEvent, function() {\n scope.$apply(function () {\n // console.warn('!click', element.attr('ng-model'), 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue, 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue);\n if(!isInput) {\n controller.$setViewValue(!activeElement.hasClass('active'));\n }\n if(!hasExoticValues) {\n controller.$render();\n }\n });\n });\n\n }\n\n };\n\n })\n\n .directive('bsRadioGroup', function() {\n\n return {\n restrict: 'A',\n require: 'ngModel',\n compile: function postLink(element, attr) {\n element.attr('data-toggle', 'buttons');\n element.removeAttr('ng-model');\n var children = element[0].querySelectorAll('input[type=\"radio\"]');\n angular.forEach(children, function(child) {\n angular.element(child).attr('bs-radio', '');\n angular.element(child).attr('ng-model', attr.ngModel);\n });\n }\n\n };\n\n })\n\n .directive('bsRadio', function($button, $$rAF) {\n\n var defaults = $button.defaults;\n var constantValueRegExp = /^(true|false|\\d+)$/;\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n var options = defaults;\n\n // Support `label > input[type=\"radio\"]` markup\n var isInput = element[0].nodeName === 'INPUT';\n var activeElement = isInput ? element.parent() : element;\n\n var value;\n attr.$observe('value', function(v) {\n value = constantValueRegExp.test(v) ? scope.$eval(v) : v;\n controller.$render();\n });\n\n // model -> view\n controller.$render = function () {\n // console.warn('$render', element.attr('value'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var isActive = angular.equals(controller.$modelValue, value);\n $$rAF(function() {\n if(isInput) element[0].checked = isActive;\n activeElement.toggleClass(options.activeClass, isActive);\n });\n };\n\n // view -> model\n element.bind(options.toggleEvent, function() {\n scope.$apply(function () {\n // console.warn('!click', element.attr('value'), 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue, 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue);\n controller.$setViewValue(value);\n controller.$render();\n });\n });\n\n }\n\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.collapse', [])\n\n .provider('$collapse', function() {\n\n var defaults = this.defaults = {\n animation: 'am-collapse',\n disallowToggle: false,\n activeClass: 'in',\n startCollapsed: false,\n allowMultiple: false\n };\n\n var controller = this.controller = function($scope, $element, $attrs) {\n var self = this;\n\n // Attributes options\n self.$options = angular.copy(defaults);\n angular.forEach(['animation', 'disallowToggle', 'activeClass', 'startCollapsed', 'allowMultiple'], function (key) {\n if(angular.isDefined($attrs[key])) self.$options[key] = $attrs[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['disallowToggle', 'startCollapsed', 'allowMultiple'], function(key) {\n if(angular.isDefined($attrs[key]) && falseValueRegExp.test($attrs[key])) {\n self.$options[key] = false;\n }\n });\n\n self.$toggles = [];\n self.$targets = [];\n\n self.$viewChangeListeners = [];\n\n self.$registerToggle = function(element) {\n self.$toggles.push(element);\n };\n self.$registerTarget = function(element) {\n self.$targets.push(element);\n };\n\n self.$unregisterToggle = function(element) {\n var index = self.$toggles.indexOf(element);\n // remove toggle from $toggles array\n self.$toggles.splice(index, 1);\n };\n self.$unregisterTarget = function(element) {\n var index = self.$targets.indexOf(element);\n\n // remove element from $targets array\n self.$targets.splice(index, 1);\n\n if (self.$options.allowMultiple) {\n // remove target index from $active array values\n deactivateItem(element);\n }\n\n // fix active item indexes\n fixActiveItemIndexes(index);\n\n self.$viewChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n // use array to store all the currently open panels\n self.$targets.$active = !self.$options.startCollapsed ? [0] : [];\n self.$setActive = $scope.$setActive = function(value) {\n if(angular.isArray(value)) {\n self.$targets.$active = value;\n }\n else if(!self.$options.disallowToggle) {\n // toogle element active status\n isActive(value) ? deactivateItem(value) : activateItem(value);\n } else {\n activateItem(value);\n }\n\n self.$viewChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n self.$activeIndexes = function() {\n return self.$options.allowMultiple ? self.$targets.$active :\n self.$targets.$active.length === 1 ? self.$targets.$active[0] : -1;\n };\n\n function fixActiveItemIndexes(index) {\n // item with index was removed, so we\n // need to adjust other items index values\n var activeIndexes = self.$targets.$active;\n for(var i = 0; i < activeIndexes.length; i++) {\n if (index < activeIndexes[i]) {\n activeIndexes[i] = activeIndexes[i] - 1;\n }\n\n // the last item is active, so we need to\n // adjust its index\n if (activeIndexes[i] === self.$targets.length) {\n activeIndexes[i] = self.$targets.length - 1;\n }\n }\n }\n\n function isActive(value) {\n var activeItems = self.$targets.$active;\n return activeItems.indexOf(value) === -1 ? false : true;\n }\n\n function deactivateItem(value) {\n var index = self.$targets.$active.indexOf(value);\n if (index !== -1) {\n self.$targets.$active.splice(index, 1);\n }\n }\n\n function activateItem(value) {\n if (!self.$options.allowMultiple) {\n // remove current selected item\n self.$targets.$active.splice(0, 1);\n }\n\n if (self.$targets.$active.indexOf(value) === -1) {\n self.$targets.$active.push(value);\n }\n }\n\n };\n\n this.$get = function() {\n var $collapse = {};\n $collapse.defaults = defaults;\n $collapse.controller = controller;\n return $collapse;\n };\n\n })\n\n .directive('bsCollapse', function($window, $animate, $collapse) {\n\n var defaults = $collapse.defaults;\n\n return {\n require: ['?ngModel', 'bsCollapse'],\n controller: ['$scope', '$element', '$attrs', $collapse.controller],\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n if(ngModelCtrl) {\n\n // Update the modelValue following\n bsCollapseCtrl.$viewChangeListeners.push(function() {\n ngModelCtrl.$setViewValue(bsCollapseCtrl.$activeIndexes());\n });\n\n // modelValue -> $formatters -> viewValue\n ngModelCtrl.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n if (angular.isArray(modelValue)) {\n // model value is an array, so just replace\n // the active items directly\n bsCollapseCtrl.$setActive(modelValue);\n }\n else {\n var activeIndexes = bsCollapseCtrl.$activeIndexes();\n\n if (angular.isArray(activeIndexes)) {\n // we have an array of selected indexes\n if (activeIndexes.indexOf(modelValue * 1) === -1) {\n // item with modelValue index is not active\n bsCollapseCtrl.$setActive(modelValue * 1);\n }\n }\n else if (activeIndexes !== modelValue * 1) {\n bsCollapseCtrl.$setActive(modelValue * 1);\n }\n }\n return modelValue;\n });\n\n }\n\n }\n };\n\n })\n\n .directive('bsCollapseToggle', function() {\n\n return {\n require: ['^?ngModel', '^bsCollapse'],\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n // Add base attr\n element.attr('data-toggle', 'collapse');\n\n // Push pane to parent bsCollapse controller\n bsCollapseCtrl.$registerToggle(element);\n\n // remove toggle from collapse controller when toggle is destroyed\n scope.$on('$destroy', function() {\n bsCollapseCtrl.$unregisterToggle(element);\n });\n\n element.on('click', function() {\n var index = attrs.bsCollapseToggle && attrs.bsCollapseToggle !== 'bs-collapse-toggle' ? attrs.bsCollapseToggle : bsCollapseCtrl.$toggles.indexOf(element);\n bsCollapseCtrl.$setActive(index * 1);\n scope.$apply();\n });\n\n }\n };\n\n })\n\n .directive('bsCollapseTarget', function($animate) {\n\n return {\n require: ['^?ngModel', '^bsCollapse'],\n // scope: true,\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n // Add base class\n element.addClass('collapse');\n\n // Add animation class\n if(bsCollapseCtrl.$options.animation) {\n element.addClass(bsCollapseCtrl.$options.animation);\n }\n\n // Push pane to parent bsCollapse controller\n bsCollapseCtrl.$registerTarget(element);\n\n // remove pane target from collapse controller when target is destroyed\n scope.$on('$destroy', function() {\n bsCollapseCtrl.$unregisterTarget(element);\n });\n\n function render() {\n var index = bsCollapseCtrl.$targets.indexOf(element);\n var active = bsCollapseCtrl.$activeIndexes();\n var action = 'removeClass';\n if (angular.isArray(active)) {\n if (active.indexOf(index) !== -1) {\n action = 'addClass';\n }\n }\n else if (index === active) {\n action = 'addClass';\n }\n\n $animate[action](element, bsCollapseCtrl.$options.activeClass);\n }\n\n bsCollapseCtrl.$viewChangeListeners.push(function() {\n render();\n });\n render();\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.datepicker', [\n 'mgcrea.ngStrap.helpers.dateParser',\n 'mgcrea.ngStrap.helpers.dateFormatter',\n 'mgcrea.ngStrap.tooltip'])\n\n .provider('$datepicker', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n //uncommenting the following line will break backwards compatability\n // prefixEvent: 'datepicker',\n prefixClass: 'datepicker',\n placement: 'bottom-left',\n templateUrl: 'datepicker/datepicker.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n // lang: $locale.id,\n useNative: false,\n dateType: 'date',\n dateFormat: 'shortDate',\n timezone: null,\n modelDateFormat: null,\n dayFormat: 'dd',\n monthFormat: 'MMM',\n yearFormat: 'yyyy',\n monthTitleFormat: 'MMMM yyyy',\n yearTitleFormat: 'yyyy',\n strictFormat: false,\n autoclose: false,\n minDate: -Infinity,\n maxDate: +Infinity,\n startView: 0,\n minView: 0,\n startWeek: 0,\n daysOfWeekDisabled: '',\n iconLeft: 'glyphicon glyphicon-chevron-left',\n iconRight: 'glyphicon glyphicon-chevron-right'\n };\n\n this.$get = function($window, $document, $rootScope, $sce, $dateFormatter, datepickerViews, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n if(!defaults.lang) defaults.lang = $dateFormatter.getDefaultLocale();\n\n function DatepickerFactory(element, controller, config) {\n\n var $datepicker = $tooltip(element, angular.extend({}, defaults, config));\n var parentScope = config.scope;\n var options = $datepicker.$options;\n var scope = $datepicker.$scope;\n if(options.startView) options.startView -= options.minView;\n\n // View vars\n\n var pickerViews = datepickerViews($datepicker);\n $datepicker.$views = pickerViews.views;\n var viewDate = pickerViews.viewDate;\n scope.$mode = options.startView;\n scope.$iconLeft = options.iconLeft;\n scope.$iconRight = options.iconRight;\n var $picker = $datepicker.$views[scope.$mode];\n\n // Scope methods\n\n scope.$select = function(date) {\n $datepicker.select(date);\n };\n scope.$selectPane = function(value) {\n $datepicker.$selectPane(value);\n };\n scope.$toggleMode = function() {\n $datepicker.setMode((scope.$mode + 1) % $datepicker.$views.length);\n };\n\n // Public methods\n\n $datepicker.update = function(date) {\n // console.warn('$datepicker.update() newValue=%o', date);\n if(angular.isDate(date) && !isNaN(date.getTime())) {\n $datepicker.$date = date;\n $picker.update.call($picker, date);\n }\n // Build only if pristine\n $datepicker.$build(true);\n };\n\n $datepicker.updateDisabledDates = function(dateRanges) {\n options.disabledDateRanges = dateRanges;\n for(var i = 0, l = scope.rows.length; i < l; i++) {\n angular.forEach(scope.rows[i], $datepicker.$setDisabledEl);\n }\n };\n\n $datepicker.select = function(date, keep) {\n // console.warn('$datepicker.select', date, scope.$mode);\n if(!angular.isDate(controller.$dateValue)) controller.$dateValue = new Date(date);\n if(!scope.$mode || keep) {\n controller.$setViewValue(angular.copy(date));\n controller.$render();\n if(options.autoclose && !keep) {\n $timeout(function() { $datepicker.hide(true); });\n }\n } else {\n angular.extend(viewDate, {year: date.getFullYear(), month: date.getMonth(), date: date.getDate()});\n $datepicker.setMode(scope.$mode - 1);\n $datepicker.$build();\n }\n };\n\n $datepicker.setMode = function(mode) {\n // console.warn('$datepicker.setMode', mode);\n scope.$mode = mode;\n $picker = $datepicker.$views[scope.$mode];\n $datepicker.$build();\n };\n\n // Protected methods\n\n $datepicker.$build = function(pristine) {\n // console.warn('$datepicker.$build() viewDate=%o', viewDate);\n if(pristine === true && $picker.built) return;\n if(pristine === false && !$picker.built) return;\n $picker.build.call($picker);\n };\n\n $datepicker.$updateSelected = function() {\n for(var i = 0, l = scope.rows.length; i < l; i++) {\n angular.forEach(scope.rows[i], updateSelected);\n }\n };\n\n $datepicker.$isSelected = function(date) {\n return $picker.isSelected(date);\n };\n\n $datepicker.$setDisabledEl = function(el) {\n el.disabled = $picker.isDisabled(el.date);\n };\n\n $datepicker.$selectPane = function(value) {\n var steps = $picker.steps;\n // set targetDate to first day of month to avoid problems with\n // date values rollover. This assumes the viewDate does not\n // depend on the day of the month\n var targetDate = new Date(Date.UTC(viewDate.year + ((steps.year || 0) * value), viewDate.month + ((steps.month || 0) * value), 1));\n angular.extend(viewDate, {year: targetDate.getUTCFullYear(), month: targetDate.getUTCMonth(), date: targetDate.getUTCDate()});\n $datepicker.$build();\n };\n\n $datepicker.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n if(targetEl[0].nodeName.toLowerCase() !== 'button') {\n targetEl = targetEl.parent();\n }\n targetEl.triggerHandler('click');\n }\n };\n\n $datepicker.$onKeyDown = function(evt) {\n if (!/(38|37|39|40|13)/.test(evt.keyCode) || evt.shiftKey || evt.altKey) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n if(evt.keyCode === 13) {\n if(!scope.$mode) {\n return $datepicker.hide(true);\n } else {\n return scope.$apply(function() { $datepicker.setMode(scope.$mode - 1); });\n }\n }\n\n // Navigate with keyboard\n $picker.onKeyDown(evt);\n parentScope.$digest();\n };\n\n // Private\n\n function updateSelected(el) {\n el.selected = $datepicker.$isSelected(el.date);\n }\n\n function focusElement() {\n element[0].focus();\n }\n\n // Overrides\n\n var _init = $datepicker.init;\n $datepicker.init = function() {\n if(isNative && options.useNative) {\n element.prop('type', 'date');\n element.css('-webkit-appearance', 'textfield');\n return;\n } else if(isTouch) {\n element.prop('type', 'text');\n element.attr('readonly', 'true');\n element.on('click', focusElement);\n }\n _init();\n };\n\n var _destroy = $datepicker.destroy;\n $datepicker.destroy = function() {\n if(isNative && options.useNative) {\n element.off('click', focusElement);\n }\n _destroy();\n };\n\n var _show = $datepicker.show;\n $datepicker.show = function() {\n if((!isTouch && element.attr('readonly')) || element.attr('disabled')) return;\n _show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n // if $datepicker is no longer showing, don't setup events\n if(!$datepicker.$isShown) return;\n $datepicker.$element.on(isTouch ? 'touchstart' : 'mousedown', $datepicker.$onMouseDown);\n if(options.keyboard) {\n element.on('keydown', $datepicker.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $datepicker.hide;\n $datepicker.hide = function(blur) {\n if(!$datepicker.$isShown) return;\n $datepicker.$element.off(isTouch ? 'touchstart' : 'mousedown', $datepicker.$onMouseDown);\n if(options.keyboard) {\n element.off('keydown', $datepicker.$onKeyDown);\n }\n _hide(blur);\n };\n\n return $datepicker;\n\n }\n\n DatepickerFactory.defaults = defaults;\n return DatepickerFactory;\n\n };\n\n })\n\n .directive('bsDatepicker', function($window, $parse, $q, $dateFormatter, $dateParser, $datepicker) {\n\n var defaults = $datepicker.defaults;\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'autoclose', 'dateType', 'dateFormat', 'timezone', 'modelDateFormat', 'dayFormat', 'strictFormat', 'startWeek', 'startDate', 'useNative', 'lang', 'startView', 'minView', 'iconLeft', 'iconRight', 'daysOfWeekDisabled', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoclose', 'useNative'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!datepicker || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(datepicker),?/i);\n newValue === true ? datepicker.show() : datepicker.hide();\n });\n\n // Initialize datepicker\n var datepicker = $datepicker(element, controller, options);\n options = datepicker.$options;\n // Set expected iOS format\n if(isNative && options.useNative) options.dateFormat = 'yyyy-MM-dd';\n\n var lang = options.lang;\n\n var formatDate = function(date, format) {\n return $dateFormatter.formatDate(date, format, lang);\n };\n\n var dateParser = $dateParser({format: options.dateFormat, lang: lang, strict: options.strictFormat});\n\n // Observe attributes for changes\n angular.forEach(['minDate', 'maxDate'], function(key) {\n // console.warn('attr.$observe(%s)', key, attr[key]);\n angular.isDefined(attr[key]) && attr.$observe(key, function(newValue) {\n // console.warn('attr.$observe(%s)=%o', key, newValue);\n datepicker.$options[key] = dateParser.getDateForAttribute(key, newValue);\n // Build only if dirty\n !isNaN(datepicker.$options[key]) && datepicker.$build(false);\n validateAgainstMinMaxDate(controller.$dateValue);\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n datepicker.update(controller.$dateValue);\n }, true);\n\n // Normalize undefined/null/empty array,\n // so that we don't treat changing from undefined->null as a change.\n function normalizeDateRanges(ranges) {\n if (!ranges || !ranges.length) return null;\n return ranges;\n }\n\n if (angular.isDefined(attr.disabledDates)) {\n scope.$watch(attr.disabledDates, function(disabledRanges, previousValue) {\n disabledRanges = normalizeDateRanges(disabledRanges);\n previousValue = normalizeDateRanges(previousValue);\n\n if (disabledRanges) {\n datepicker.updateDisabledDates(disabledRanges);\n }\n });\n }\n\n function validateAgainstMinMaxDate(parsedDate) {\n if (!angular.isDate(parsedDate)) return;\n var isMinValid = isNaN(datepicker.$options.minDate) || parsedDate.getTime() >= datepicker.$options.minDate;\n var isMaxValid = isNaN(datepicker.$options.maxDate) || parsedDate.getTime() <= datepicker.$options.maxDate;\n var isValid = isMinValid && isMaxValid;\n controller.$setValidity('date', isValid);\n controller.$setValidity('min', isMinValid);\n controller.$setValidity('max', isMaxValid);\n // Only update the model when we have a valid date\n if(isValid) controller.$dateValue = parsedDate;\n }\n\n // viewValue -> $parsers -> modelValue\n controller.$parsers.unshift(function(viewValue) {\n // console.warn('$parser(\"%s\"): viewValue=%o', element.attr('ng-model'), viewValue);\n var date;\n // Null values should correctly reset the model value & validity\n if(!viewValue) {\n controller.$setValidity('date', true);\n // BREAKING CHANGE:\n // return null (not undefined) when input value is empty, so angularjs 1.3\n // ngModelController can go ahead and run validators, like ngRequired\n return null;\n }\n var parsedDate = dateParser.parse(viewValue, controller.$dateValue);\n if(!parsedDate || isNaN(parsedDate.getTime())) {\n controller.$setValidity('date', false);\n // return undefined, causes ngModelController to\n // invalidate model value\n return;\n } else {\n validateAgainstMinMaxDate(parsedDate);\n }\n\n if(options.dateType === 'string') {\n date = dateParser.timezoneOffsetAdjust(parsedDate, options.timezone, true);\n return formatDate(date, options.modelDateFormat || options.dateFormat);\n }\n date = dateParser.timezoneOffsetAdjust(controller.$dateValue, options.timezone, true);\n if(options.dateType === 'number') {\n return date.getTime();\n } else if(options.dateType === 'unix') {\n return date.getTime() / 1000;\n } else if(options.dateType === 'iso') {\n return date.toISOString();\n } else {\n return new Date(date);\n }\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var date;\n if(angular.isUndefined(modelValue) || modelValue === null) {\n date = NaN;\n } else if(angular.isDate(modelValue)) {\n date = modelValue;\n } else if(options.dateType === 'string') {\n date = dateParser.parse(modelValue, null, options.modelDateFormat);\n } else if(options.dateType === 'unix') {\n date = new Date(modelValue * 1000);\n } else {\n date = new Date(modelValue);\n }\n // Setup default value?\n // if(isNaN(date.getTime())) {\n // var today = new Date();\n // date = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0, 0);\n // }\n controller.$dateValue = dateParser.timezoneOffsetAdjust(date, options.timezone);\n return getDateFormattedString();\n });\n\n // viewValue -> element\n controller.$render = function() {\n // console.warn('$render(\"%s\"): viewValue=%o', element.attr('ng-model'), controller.$viewValue);\n element.val(getDateFormattedString());\n };\n\n function getDateFormattedString() {\n return !controller.$dateValue || isNaN(controller.$dateValue.getTime()) ? '' : formatDate(controller.$dateValue, options.dateFormat);\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if(datepicker) datepicker.destroy();\n options = null;\n datepicker = null;\n });\n\n }\n };\n\n })\n\n .provider('datepickerViews', function() {\n\n var defaults = this.defaults = {\n dayFormat: 'dd',\n daySplit: 7\n };\n\n // Split array into smaller arrays\n function split(arr, size) {\n var arrays = [];\n while(arr.length > 0) {\n arrays.push(arr.splice(0, size));\n }\n return arrays;\n }\n\n // Modulus operator\n function mod(n, m) {\n return ((n % m) + m) % m;\n }\n\n this.$get = function($dateFormatter, $dateParser, $sce) {\n\n return function(picker) {\n\n var scope = picker.$scope;\n var options = picker.$options;\n\n var lang = options.lang;\n var formatDate = function(date, format) {\n return $dateFormatter.formatDate(date, format, lang);\n };\n var dateParser = $dateParser({format: options.dateFormat, lang: lang, strict: options.strictFormat});\n\n var weekDaysMin = $dateFormatter.weekdaysShort(lang);\n var weekDaysLabels = weekDaysMin.slice(options.startWeek).concat(weekDaysMin.slice(0, options.startWeek));\n var weekDaysLabelsHtml = $sce.trustAsHtml('' + weekDaysLabels.join('') + '');\n\n var startDate = picker.$date || (options.startDate ? dateParser.getDateForAttribute('startDate', options.startDate) : new Date());\n var viewDate = {year: startDate.getFullYear(), month: startDate.getMonth(), date: startDate.getDate()};\n\n var views = [{\n format: options.dayFormat,\n split: 7,\n steps: { month: 1 },\n update: function(date, force) {\n if(!this.built || force || date.getFullYear() !== viewDate.year || date.getMonth() !== viewDate.month) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getDate() !== viewDate.date || date.getDate() === 1) {\n // chaging picker current month will cause viewDate.date to be set to first day of the month,\n // in $datepicker.$selectPane, so picker would not update selected day display if\n // user picks first day of the new month.\n // As a workaround, we are always forcing update when picked date is first day of month.\n viewDate.date = picker.$date.getDate();\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstDayOfMonth = new Date(viewDate.year, viewDate.month, 1), firstDayOfMonthOffset = firstDayOfMonth.getTimezoneOffset();\n var firstDate = new Date(+firstDayOfMonth - mod(firstDayOfMonth.getDay() - options.startWeek, 7) * 864e5), firstDateOffset = firstDate.getTimezoneOffset();\n var today = dateParser.timezoneOffsetAdjust(new Date(), options.timezone).toDateString();\n // Handle daylight time switch\n if(firstDateOffset !== firstDayOfMonthOffset) firstDate = new Date(+firstDate + (firstDateOffset - firstDayOfMonthOffset) * 60e3);\n var days = [], day;\n for(var i = 0; i < 42; i++) { // < 7 * 6\n day = dateParser.daylightSavingAdjust(new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + i));\n days.push({date: day, isToday: day.toDateString() === today, label: formatDate(day, this.format), selected: picker.$date && this.isSelected(day), muted: day.getMonth() !== viewDate.month, disabled: this.isDisabled(day)});\n }\n scope.title = formatDate(firstDayOfMonth, options.monthTitleFormat);\n scope.showLabels = true;\n scope.labels = weekDaysLabelsHtml;\n scope.rows = split(days, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear() && date.getMonth() === picker.$date.getMonth() && date.getDate() === picker.$date.getDate();\n },\n isDisabled: function(date) {\n var time = date.getTime();\n\n // Disabled because of min/max date.\n if (time < options.minDate || time > options.maxDate) return true;\n\n // Disabled due to being a disabled day of the week\n if (options.daysOfWeekDisabled.indexOf(date.getDay()) !== -1) return true;\n\n // Disabled because of disabled date range.\n if (options.disabledDateRanges) {\n for (var i = 0; i < options.disabledDateRanges.length; i++) {\n if (time >= options.disabledDateRanges[i].start && time <= options.disabledDateRanges[i].end) {\n return true;\n }\n }\n }\n\n return false;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualTime = picker.$date.getTime();\n var newDate;\n\n if(evt.keyCode === 37) newDate = new Date(actualTime - 1 * 864e5);\n else if(evt.keyCode === 38) newDate = new Date(actualTime - 7 * 864e5);\n else if(evt.keyCode === 39) newDate = new Date(actualTime + 1 * 864e5);\n else if(evt.keyCode === 40) newDate = new Date(actualTime + 7 * 864e5);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }, {\n name: 'month',\n format: options.monthFormat,\n split: 4,\n steps: { year: 1 },\n update: function(date, force) {\n if(!this.built || date.getFullYear() !== viewDate.year) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getMonth() !== viewDate.month) {\n angular.extend(viewDate, {month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstMonth = new Date(viewDate.year, 0, 1);\n var months = [], month;\n for (var i = 0; i < 12; i++) {\n month = new Date(viewDate.year, i, 1);\n months.push({date: month, label: formatDate(month, this.format), selected: picker.$isSelected(month), disabled: this.isDisabled(month)});\n }\n scope.title = formatDate(month, options.yearTitleFormat);\n scope.showLabels = false;\n scope.rows = split(months, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear() && date.getMonth() === picker.$date.getMonth();\n },\n isDisabled: function(date) {\n var lastDate = +new Date(date.getFullYear(), date.getMonth() + 1, 0);\n return lastDate < options.minDate || date.getTime() > options.maxDate;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualMonth = picker.$date.getMonth();\n var newDate = new Date(picker.$date);\n\n if(evt.keyCode === 37) newDate.setMonth(actualMonth - 1);\n else if(evt.keyCode === 38) newDate.setMonth(actualMonth - 4);\n else if(evt.keyCode === 39) newDate.setMonth(actualMonth + 1);\n else if(evt.keyCode === 40) newDate.setMonth(actualMonth + 4);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }, {\n name: 'year',\n format: options.yearFormat,\n split: 4,\n steps: { year: 12 },\n update: function(date, force) {\n if(!this.built || force || parseInt(date.getFullYear()/20, 10) !== parseInt(viewDate.year/20, 10)) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getFullYear() !== viewDate.year) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstYear = viewDate.year - viewDate.year % (this.split * 3);\n var years = [], year;\n for (var i = 0; i < 12; i++) {\n year = new Date(firstYear + i, 0, 1);\n years.push({date: year, label: formatDate(year, this.format), selected: picker.$isSelected(year), disabled: this.isDisabled(year)});\n }\n scope.title = years[0].label + '-' + years[years.length - 1].label;\n scope.showLabels = false;\n scope.rows = split(years, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear();\n },\n isDisabled: function(date) {\n var lastDate = +new Date(date.getFullYear() + 1, 0, 0);\n return lastDate < options.minDate || date.getTime() > options.maxDate;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualYear = picker.$date.getFullYear(),\n newDate = new Date(picker.$date);\n\n if(evt.keyCode === 37) newDate.setYear(actualYear - 1);\n else if(evt.keyCode === 38) newDate.setYear(actualYear - 4);\n else if(evt.keyCode === 39) newDate.setYear(actualYear + 1);\n else if(evt.keyCode === 40) newDate.setYear(actualYear + 4);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }];\n\n return {\n views: options.minView ? Array.prototype.slice.call(views, options.minView) : views,\n viewDate: viewDate\n };\n\n };\n\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.dropdown', ['mgcrea.ngStrap.tooltip'])\n\n .provider('$dropdown', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'dropdown',\n prefixEvent: 'dropdown',\n placement: 'bottom-left',\n templateUrl: 'dropdown/dropdown.tpl.html',\n trigger: 'click',\n container: false,\n keyboard: true,\n html: false,\n delay: 0\n };\n\n this.$get = function($window, $rootScope, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var matchesSelector = Element.prototype.matchesSelector || Element.prototype.webkitMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector;\n\n function DropdownFactory(element, config) {\n\n var $dropdown = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n var scope = $dropdown.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n $dropdown = $tooltip(element, options);\n var parentEl = element.parent();\n\n // Protected methods\n\n $dropdown.$onKeyDown = function(evt) {\n if (!/(38|40)/.test(evt.keyCode)) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // Retrieve focused index\n var items = angular.element($dropdown.$element[0].querySelectorAll('li:not(.divider) a'));\n if(!items.length) return;\n var index;\n angular.forEach(items, function(el, i) {\n if(matchesSelector && matchesSelector.call(el, ':focus')) index = i;\n });\n\n // Navigate with keyboard\n if(evt.keyCode === 38 && index > 0) index--;\n else if(evt.keyCode === 40 && index < items.length - 1) index++;\n else if(angular.isUndefined(index)) index = 0;\n items.eq(index)[0].focus();\n\n };\n\n // Overrides\n\n var show = $dropdown.show;\n $dropdown.show = function() {\n show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n options.keyboard && $dropdown.$element && $dropdown.$element.on('keydown', $dropdown.$onKeyDown);\n bodyEl.on('click', onBodyClick);\n }, 0, false);\n parentEl.hasClass('dropdown') && parentEl.addClass('open');\n };\n\n var hide = $dropdown.hide;\n $dropdown.hide = function() {\n if(!$dropdown.$isShown) return;\n options.keyboard && $dropdown.$element && $dropdown.$element.off('keydown', $dropdown.$onKeyDown);\n bodyEl.off('click', onBodyClick);\n parentEl.hasClass('dropdown') && parentEl.removeClass('open');\n hide();\n };\n\n var destroy = $dropdown.destroy;\n $dropdown.destroy = function() {\n bodyEl.off('click', onBodyClick);\n destroy();\n };\n\n // Private functions\n\n function onBodyClick(evt) {\n if(evt.target === element[0]) return;\n return evt.target !== element[0] && $dropdown.hide();\n }\n\n return $dropdown;\n\n }\n\n return DropdownFactory;\n\n };\n\n })\n\n .directive('bsDropdown', function($window, $sce, $dropdown) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'id'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as an object\n attr.bsDropdown && scope.$watch(attr.bsDropdown, function(newValue, oldValue) {\n scope.content = newValue;\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!dropdown || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(dropdown),?/i);\n newValue === true ? dropdown.show() : dropdown.hide();\n });\n\n // Initialize dropdown\n var dropdown = $dropdown(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (dropdown) dropdown.destroy();\n options = null;\n dropdown = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.dateParser', [])\n\n.provider('$dateParser', function($localeProvider) {\n\n // define a custom ParseDate object to use instead of native Date\n // to avoid date values wrapping when setting date component values\n function ParseDate() {\n this.year = 1970;\n this.month = 0;\n this.day = 1;\n this.hours = 0;\n this.minutes = 0;\n this.seconds = 0;\n this.milliseconds = 0;\n }\n\n ParseDate.prototype.setMilliseconds = function(value) { this.milliseconds = value; };\n ParseDate.prototype.setSeconds = function(value) { this.seconds = value; };\n ParseDate.prototype.setMinutes = function(value) { this.minutes = value; };\n ParseDate.prototype.setHours = function(value) { this.hours = value; };\n ParseDate.prototype.getHours = function() { return this.hours; };\n ParseDate.prototype.setDate = function(value) { this.day = value; };\n ParseDate.prototype.setMonth = function(value) { this.month = value; };\n ParseDate.prototype.setFullYear = function(value) { this.year = value; };\n ParseDate.prototype.fromDate = function(value) {\n this.year = value.getFullYear();\n this.month = value.getMonth();\n this.day = value.getDate();\n this.hours = value.getHours();\n this.minutes = value.getMinutes();\n this.seconds = value.getSeconds();\n this.milliseconds = value.getMilliseconds();\n return this;\n };\n\n ParseDate.prototype.toDate = function() {\n return new Date(this.year, this.month, this.day, this.hours, this.minutes, this.seconds, this.milliseconds);\n };\n\n var proto = ParseDate.prototype;\n\n function noop() {\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function indexOfCaseInsensitive(array, value) {\n var len = array.length, str=value.toString().toLowerCase();\n for (var i=0; i 12 when midnight changeover, but then cannot generate\n * midnight datetime, so jump to 1AM, otherwise reset.\n * @param date (Date) the date to check\n * @return (Date) the corrected date\n *\n * __ copied from jquery ui datepicker __\n */\n $dateParser.daylightSavingAdjust = function(date) {\n if (!date) {\n return null;\n }\n date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);\n return date;\n };\n\n /* Correct the date for timezone offset.\n * @param date (Date) the date to adjust\n * @param timezone (string) the timezone to adjust for\n * @param undo (boolean) to add or subtract timezone offset\n * @return (Date) the corrected date\n */\n $dateParser.timezoneOffsetAdjust = function(date, timezone, undo) {\n if (!date) {\n return null;\n }\n // Right now, only 'UTC' is supported.\n if (timezone && timezone === 'UTC') {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + (undo?-1:1)*date.getTimezoneOffset());\n }\n return date;\n };\n\n // Private functions\n\n function setMapForFormat(format) {\n var keys = Object.keys(setFnMap), i;\n var map = [], sortedMap = [];\n // Map to setFn\n var clonedFormat = format;\n for(i = 0; i < keys.length; i++) {\n if(format.split(keys[i]).length > 1) {\n var index = clonedFormat.search(keys[i]);\n format = format.split(keys[i]).join('');\n if(setFnMap[keys[i]]) {\n map[index] = setFnMap[keys[i]];\n }\n }\n }\n // Sort result map\n angular.forEach(map, function(v) {\n // conditional required since angular.forEach broke around v1.2.21\n // related pr: https://github.com/angular/angular.js/pull/8525\n if(v) sortedMap.push(v);\n });\n return sortedMap;\n }\n\n function escapeReservedSymbols(text) {\n return text.replace(/\\//g, '[\\\\/]').replace('/-/g', '[-]').replace(/\\./g, '[.]').replace(/\\\\s/g, '[\\\\s]');\n }\n\n function regExpForFormat(format) {\n var keys = Object.keys(regExpMap), i;\n\n var re = format;\n // Abstract replaces to avoid collisions\n for(i = 0; i < keys.length; i++) {\n re = re.split(keys[i]).join('${' + i + '}');\n }\n // Replace abstracted values\n for(i = 0; i < keys.length; i++) {\n re = re.split('${' + i + '}').join('(' + regExpMap[keys[i]] + ')');\n }\n format = escapeReservedSymbols(format);\n\n return new RegExp('^' + re + '$', ['i']);\n }\n\n $dateParser.init();\n return $dateParser;\n\n };\n\n return DateParserFactory;\n\n };\n\n});\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.debounce', [])\n\n// @source jashkenas/underscore\n// @url https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L693\n.factory('debounce', function($timeout) {\n return function(func, wait, immediate) {\n var timeout = null;\n return function() {\n var context = this,\n args = arguments,\n callNow = immediate && !timeout;\n if(timeout) {\n $timeout.cancel(timeout);\n }\n timeout = $timeout(function later() {\n timeout = null;\n if(!immediate) {\n func.apply(context, args);\n }\n }, wait, false);\n if(callNow) {\n func.apply(context, args);\n }\n return timeout;\n };\n };\n})\n\n\n// @source jashkenas/underscore\n// @url https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L661\n.factory('throttle', function($timeout) {\n return function(func, wait, options) {\n var timeout = null;\n options || (options = {});\n return function() {\n var context = this,\n args = arguments;\n if(!timeout) {\n if(options.leading !== false) {\n func.apply(context, args);\n }\n timeout = $timeout(function later() {\n timeout = null;\n if(options.trailing !== false) {\n func.apply(context, args);\n }\n }, wait, false);\n }\n };\n };\n});\n\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.dimensions', [])\n\n .factory('dimensions', function($document, $window) {\n\n var jqLite = angular.element;\n var fn = {};\n\n /**\n * Test the element nodeName\n * @param element\n * @param name\n */\n var nodeName = fn.nodeName = function(element, name) {\n return element.nodeName && element.nodeName.toLowerCase() === name.toLowerCase();\n };\n\n /**\n * Returns the element computed style\n * @param element\n * @param prop\n * @param extra\n */\n fn.css = function(element, prop, extra) {\n var value;\n if (element.currentStyle) { //IE\n value = element.currentStyle[prop];\n } else if (window.getComputedStyle) {\n value = window.getComputedStyle(element)[prop];\n } else {\n value = element.style[prop];\n }\n return extra === true ? parseFloat(value) || 0 : value;\n };\n\n /**\n * Provides read-only equivalent of jQuery's offset function:\n * @required-by bootstrap-tooltip, bootstrap-affix\n * @url http://api.jquery.com/offset/\n * @param element\n */\n fn.offset = function(element) {\n var boxRect = element.getBoundingClientRect();\n var docElement = element.ownerDocument;\n return {\n width: boxRect.width || element.offsetWidth,\n height: boxRect.height || element.offsetHeight,\n top: boxRect.top + (window.pageYOffset || docElement.documentElement.scrollTop) - (docElement.documentElement.clientTop || 0),\n left: boxRect.left + (window.pageXOffset || docElement.documentElement.scrollLeft) - (docElement.documentElement.clientLeft || 0)\n };\n };\n \n /**\n * Provides set equivalent of jQuery's offset function:\n * @required-by bootstrap-tooltip\n * @url http://api.jquery.com/offset/\n * @param element\n * @param options\n * @param i\n */\n fn.setOffset = function (element, options, i) {\n var curPosition,\n curLeft,\n curCSSTop,\n curTop,\n curOffset,\n curCSSLeft,\n calculatePosition,\n position = fn.css(element, 'position'),\n curElem = angular.element(element),\n props = {};\n \n // Set position first, in-case top/left are set even on static elem\n if (position === 'static') {\n element.style.position = 'relative';\n }\n \n curOffset = fn.offset(element);\n curCSSTop = fn.css(element, 'top');\n curCSSLeft = fn.css(element, 'left');\n calculatePosition = (position === 'absolute' || position === 'fixed') && \n (curCSSTop + curCSSLeft).indexOf('auto') > -1;\n \n // Need to be able to calculate position if either\n // top or left is auto and position is either absolute or fixed\n if (calculatePosition) {\n curPosition = fn.position(element);\n curTop = curPosition.top;\n curLeft = curPosition.left;\n } else {\n curTop = parseFloat(curCSSTop) || 0;\n curLeft = parseFloat(curCSSLeft) || 0;\n }\n \n if (angular.isFunction(options)) {\n options = options.call(element, i, curOffset);\n }\n \n if (options.top !== null ) {\n props.top = (options.top - curOffset.top) + curTop;\n }\n if ( options.left !== null ) {\n props.left = (options.left - curOffset.left) + curLeft;\n }\n\n if ('using' in options) {\n options.using.call(curElem, props);\n } else {\n curElem.css({\n top: props.top + 'px',\n left: props.left + 'px'\n });\n }\n };\n\n /**\n * Provides read-only equivalent of jQuery's position function\n * @required-by bootstrap-tooltip, bootstrap-affix\n * @url http://api.jquery.com/offset/\n * @param element\n */\n fn.position = function(element) {\n\n var offsetParentRect = {top: 0, left: 0},\n offsetParentElement,\n offset;\n\n // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent\n if (fn.css(element, 'position') === 'fixed') {\n\n // We assume that getBoundingClientRect is available when computed position is fixed\n offset = element.getBoundingClientRect();\n\n } else {\n\n // Get *real* offsetParentElement\n offsetParentElement = offsetParent(element);\n\n // Get correct offsets\n offset = fn.offset(element);\n if (!nodeName(offsetParentElement, 'html')) {\n offsetParentRect = fn.offset(offsetParentElement);\n }\n\n // Add offsetParent borders\n offsetParentRect.top += fn.css(offsetParentElement, 'borderTopWidth', true);\n offsetParentRect.left += fn.css(offsetParentElement, 'borderLeftWidth', true);\n }\n\n // Subtract parent offsets and element margins\n return {\n width: element.offsetWidth,\n height: element.offsetHeight,\n top: offset.top - offsetParentRect.top - fn.css(element, 'marginTop', true),\n left: offset.left - offsetParentRect.left - fn.css(element, 'marginLeft', true)\n };\n\n };\n\n /**\n * Returns the closest, non-statically positioned offsetParent of a given element\n * @required-by fn.position\n * @param element\n */\n var offsetParent = function offsetParentElement(element) {\n var docElement = element.ownerDocument;\n var offsetParent = element.offsetParent || docElement;\n if(nodeName(offsetParent, '#document')) return docElement.documentElement;\n while(offsetParent && !nodeName(offsetParent, 'html') && fn.css(offsetParent, 'position') === 'static') {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || docElement.documentElement;\n };\n\n /**\n * Provides equivalent of jQuery's height function\n * @required-by bootstrap-affix\n * @url http://api.jquery.com/height/\n * @param element\n * @param outer\n */\n fn.height = function(element, outer) {\n var value = element.offsetHeight;\n if(outer) {\n value += fn.css(element, 'marginTop', true) + fn.css(element, 'marginBottom', true);\n } else {\n value -= fn.css(element, 'paddingTop', true) + fn.css(element, 'paddingBottom', true) + fn.css(element, 'borderTopWidth', true) + fn.css(element, 'borderBottomWidth', true);\n }\n return value;\n };\n\n /**\n * Provides equivalent of jQuery's width function\n * @required-by bootstrap-affix\n * @url http://api.jquery.com/width/\n * @param element\n * @param outer\n */\n fn.width = function(element, outer) {\n var value = element.offsetWidth;\n if(outer) {\n value += fn.css(element, 'marginLeft', true) + fn.css(element, 'marginRight', true);\n } else {\n value -= fn.css(element, 'paddingLeft', true) + fn.css(element, 'paddingRight', true) + fn.css(element, 'borderLeftWidth', true) + fn.css(element, 'borderRightWidth', true);\n }\n return value;\n };\n\n return fn;\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.parseOptions', [])\n\n .provider('$parseOptions', function() {\n\n var defaults = this.defaults = {\n regexp: /^\\s*(.*?)(?:\\s+as\\s+(.*?))?(?:\\s+group\\s+by\\s+(.*))?\\s+for\\s+(?:([\\$\\w][\\$\\w]*)|(?:\\(\\s*([\\$\\w][\\$\\w]*)\\s*,\\s*([\\$\\w][\\$\\w]*)\\s*\\)))\\s+in\\s+(.*?)(?:\\s+track\\s+by\\s+(.*?))?$/\n };\n\n this.$get = function($parse, $q) {\n\n function ParseOptionsFactory(attr, config) {\n\n var $parseOptions = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n $parseOptions.$values = [];\n\n // Private vars\n var match, displayFn, valueName, keyName, groupByFn, valueFn, valuesFn;\n\n $parseOptions.init = function() {\n $parseOptions.$match = match = attr.match(options.regexp);\n displayFn = $parse(match[2] || match[1]),\n valueName = match[4] || match[6],\n keyName = match[5],\n groupByFn = $parse(match[3] || ''),\n valueFn = $parse(match[2] ? match[1] : valueName),\n valuesFn = $parse(match[7]);\n };\n\n $parseOptions.valuesFn = function(scope, controller) {\n return $q.when(valuesFn(scope, controller))\n .then(function(values) {\n if(!angular.isArray(values)) {\n values = [];\n }\n $parseOptions.$values = values.length ? parseValues(values, scope) : [];\n return $parseOptions.$values;\n });\n };\n\n $parseOptions.displayValue = function(modelValue) {\n var scope = {};\n scope[valueName] = modelValue;\n return displayFn(scope);\n };\n\n // Private functions\n\n function parseValues(values, scope) {\n return values.map(function(match, index) {\n var locals = {}, label, value;\n locals[valueName] = match;\n label = displayFn(scope, locals);\n value = valueFn(scope, locals);\n return {label: label, value: value, index: index};\n });\n }\n\n $parseOptions.init();\n return $parseOptions;\n\n }\n\n return ParseOptionsFactory;\n\n };\n\n });\n","'use strict';\n\n(angular.version.minor < 3 && angular.version.dot < 14) && angular.module('ng')\n\n.factory('$$rAF', function($window, $timeout) {\n\n var requestAnimationFrame = $window.requestAnimationFrame ||\n $window.webkitRequestAnimationFrame ||\n $window.mozRequestAnimationFrame;\n\n var cancelAnimationFrame = $window.cancelAnimationFrame ||\n $window.webkitCancelAnimationFrame ||\n $window.mozCancelAnimationFrame ||\n $window.webkitCancelRequestAnimationFrame;\n\n var rafSupported = !!requestAnimationFrame;\n var raf = rafSupported ?\n function(fn) {\n var id = requestAnimationFrame(fn);\n return function() {\n cancelAnimationFrame(id);\n };\n } :\n function(fn) {\n var timer = $timeout(fn, 16.66, false); // 1000 / 60 = 16.666\n return function() {\n $timeout.cancel(timer);\n };\n };\n\n raf.supported = rafSupported;\n\n return raf;\n\n});\n\n// .factory('$$animateReflow', function($$rAF, $document) {\n\n// var bodyEl = $document[0].body;\n\n// return function(fn) {\n// //the returned function acts as the cancellation function\n// return $$rAF(function() {\n// //the line below will force the browser to perform a repaint\n// //so that all the animated elements within the animation frame\n// //will be properly updated and drawn on screen. This is\n// //required to perform multi-class CSS based animations with\n// //Firefox. DO NOT REMOVE THIS LINE.\n// var a = bodyEl.offsetWidth + 1;\n// fn();\n// });\n// };\n\n// });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.modal', ['mgcrea.ngStrap.core', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$modal', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n backdropAnimation: 'am-fade',\n prefixClass: 'modal',\n prefixEvent: 'modal',\n placement: 'top',\n templateUrl: 'modal/modal.tpl.html',\n template: '',\n contentTemplate: false,\n container: false,\n element: null,\n backdrop: true,\n keyboard: true,\n html: false,\n show: true\n };\n\n this.$get = function($window, $rootScope, $bsCompiler, $q, $templateCache, $http, $animate, $timeout, $sce, dimensions) {\n\n var forEach = angular.forEach;\n var trim = String.prototype.trim;\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n var bodyElement = angular.element($window.document.body);\n\n function ModalFactory(config) {\n\n var $modal = {};\n\n // Common vars\n var options = $modal.$options = angular.extend({}, defaults, config);\n var promise = $modal.$promise = $bsCompiler.compile(options);\n var scope = $modal.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n if(!options.element && !options.container) {\n options.container = 'body';\n }\n\n // Store $id to identify the triggering element in events\n // give priority to options.id, otherwise, try to use\n // element id if defined\n $modal.$id = options.id || options.element && options.element.attr('id') || '';\n\n // Support scope as string options\n forEach(['title', 'content'], function(key) {\n if(options[key]) scope[key] = $sce.trustAsHtml(options[key]);\n });\n\n // Provide scope helpers\n scope.$hide = function() {\n scope.$$postDigest(function() {\n $modal.hide();\n });\n };\n scope.$show = function() {\n scope.$$postDigest(function() {\n $modal.show();\n });\n };\n scope.$toggle = function() {\n scope.$$postDigest(function() {\n $modal.toggle();\n });\n };\n // Publish isShown as a protected var on scope\n $modal.$isShown = scope.$isShown = false;\n\n // Fetch, compile then initialize modal\n var compileData, modalElement, modalScope;\n var backdropElement = angular.element('
');\n backdropElement.css({position:'fixed', top:'0px', left:'0px', bottom:'0px', right:'0px', 'z-index': 1038});\n promise.then(function(data) {\n compileData = data;\n $modal.init();\n });\n\n $modal.init = function() {\n\n // Options: show\n if(options.show) {\n scope.$$postDigest(function() {\n $modal.show();\n });\n }\n\n };\n\n $modal.destroy = function() {\n\n // Remove element\n destroyModalElement();\n\n // remove backdrop element\n if(backdropElement) {\n backdropElement.remove();\n backdropElement = null;\n }\n\n // Destroy scope\n scope.$destroy();\n };\n\n $modal.show = function() {\n if($modal.$isShown) return;\n\n var parent, after;\n if(angular.isElement(options.container)) {\n parent = options.container;\n after = options.container[0].lastChild ? angular.element(options.container[0].lastChild) : null;\n } else {\n if (options.container) {\n parent = findElement(options.container);\n after = parent[0] && parent[0].lastChild ? angular.element(parent[0].lastChild) : null;\n } else {\n parent = null;\n after = options.element;\n }\n }\n\n // destroy any existing modal elements\n if(modalElement) destroyModalElement();\n\n // create a new scope, so we can destroy it and all child scopes\n // when destroying the modal element\n modalScope = $modal.$scope.$new();\n // Fetch a cloned element linked from template (noop callback is required)\n modalElement = $modal.$element = compileData.link(modalScope, function(clonedElement, scope) {});\n\n if(scope.$emit(options.prefixEvent + '.show.before', $modal).defaultPrevented) {\n return;\n }\n\n // Set the initial positioning.\n modalElement.css({display: 'block'}).addClass(options.placement);\n\n // Options: animation\n if(options.animation) {\n if(options.backdrop) {\n backdropElement.addClass(options.backdropAnimation);\n }\n modalElement.addClass(options.animation);\n }\n\n if(options.backdrop) {\n $animate.enter(backdropElement, bodyElement, null);\n }\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.enter(modalElement, parent, after, enterAnimateCallback);\n } else {\n $animate.enter(modalElement, parent, after).then(enterAnimateCallback);\n }\n\n $modal.$isShown = scope.$isShown = true;\n safeDigest(scope);\n // Focus once the enter-animation has started\n // Weird PhantomJS bug hack\n var el = modalElement[0];\n requestAnimationFrame(function() {\n el.focus();\n });\n\n bodyElement.addClass(options.prefixClass + '-open');\n if(options.animation) {\n bodyElement.addClass(options.prefixClass + '-with-' + options.animation);\n }\n\n // Bind events\n bindBackdropEvents();\n bindKeyboardEvents();\n };\n\n function enterAnimateCallback() {\n scope.$emit(options.prefixEvent + '.show', $modal);\n }\n\n $modal.hide = function() {\n if(!$modal.$isShown) return;\n\n if(scope.$emit(options.prefixEvent + '.hide.before', $modal).defaultPrevented) {\n return;\n }\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.leave(modalElement, leaveAnimateCallback);\n } else {\n $animate.leave(modalElement).then(leaveAnimateCallback);\n }\n\n if(options.backdrop) {\n $animate.leave(backdropElement);\n }\n $modal.$isShown = scope.$isShown = false;\n safeDigest(scope);\n\n // Unbind events\n unbindBackdropEvents();\n unbindKeyboardEvents();\n };\n\n function leaveAnimateCallback() {\n scope.$emit(options.prefixEvent + '.hide', $modal);\n bodyElement.removeClass(options.prefixClass + '-open');\n if(options.animation) {\n bodyElement.removeClass(options.prefixClass + '-with-' + options.animation);\n }\n }\n\n $modal.toggle = function() {\n\n $modal.$isShown ? $modal.hide() : $modal.show();\n\n };\n\n $modal.focus = function() {\n modalElement[0].focus();\n };\n\n // Protected methods\n\n $modal.$onKeyUp = function(evt) {\n\n if (evt.which === 27 && $modal.$isShown) {\n $modal.hide();\n evt.stopPropagation();\n }\n\n };\n\n function bindBackdropEvents() {\n if(options.backdrop) {\n modalElement.on('click', hideOnBackdropClick);\n backdropElement.on('click', hideOnBackdropClick);\n backdropElement.on('wheel', preventEventDefault);\n }\n }\n\n function unbindBackdropEvents() {\n if(options.backdrop) {\n modalElement.off('click', hideOnBackdropClick);\n backdropElement.off('click', hideOnBackdropClick);\n backdropElement.off('wheel', preventEventDefault);\n }\n }\n\n function bindKeyboardEvents() {\n if(options.keyboard) {\n modalElement.on('keyup', $modal.$onKeyUp);\n }\n }\n\n function unbindKeyboardEvents() {\n if(options.keyboard) {\n modalElement.off('keyup', $modal.$onKeyUp);\n }\n }\n\n // Private methods\n\n function hideOnBackdropClick(evt) {\n if(evt.target !== evt.currentTarget) return;\n options.backdrop === 'static' ? $modal.focus() : $modal.hide();\n }\n\n function preventEventDefault(evt) {\n evt.preventDefault();\n }\n\n function destroyModalElement() {\n if($modal.$isShown && modalElement !== null) {\n // un-bind events\n unbindBackdropEvents();\n unbindKeyboardEvents();\n }\n\n if(modalScope) {\n modalScope.$destroy();\n modalScope = null;\n }\n\n if(modalElement) {\n modalElement.remove();\n modalElement = $modal.$element = null;\n }\n }\n\n return $modal;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n return ModalFactory;\n\n };\n\n })\n\n .directive('bsModal', function($window, $sce, $modal) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'controller', 'placement', 'backdrop', 'keyboard', 'html', 'container', 'animation', 'id', 'prefixEvent', 'prefixClass'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['backdrop', 'keyboard', 'html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsModal && scope.$watch(attr.bsModal, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize modal\n var modal = $modal(options);\n\n // Trigger\n element.on(attr.trigger || 'click', modal.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (modal) modal.destroy();\n options = null;\n modal = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.navbar', [])\n\n .provider('$navbar', function() {\n\n var defaults = this.defaults = {\n activeClass: 'active',\n routeAttr: 'data-match-route',\n strict: false\n };\n\n this.$get = function() {\n return {defaults: defaults};\n };\n\n })\n\n .directive('bsNavbar', function($window, $location, $navbar) {\n\n var defaults = $navbar.defaults;\n\n return {\n restrict: 'A',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = angular.copy(defaults);\n angular.forEach(Object.keys(defaults), function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // Watch for the $location\n scope.$watch(function() {\n\n return $location.path();\n\n }, function(newValue, oldValue) {\n\n var liElements = element[0].querySelectorAll('li[' + options.routeAttr + ']');\n\n angular.forEach(liElements, function(li) {\n\n var liElement = angular.element(li);\n var pattern = liElement.attr(options.routeAttr).replace('/', '\\\\/');\n if(options.strict) {\n pattern = '^' + pattern + '$';\n }\n var regexp = new RegExp(pattern, 'i');\n\n if(regexp.test(newValue)) {\n liElement.addClass(options.activeClass);\n } else {\n liElement.removeClass(options.activeClass);\n }\n\n });\n\n });\n\n }\n\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.popover', ['mgcrea.ngStrap.tooltip'])\n\n .provider('$popover', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n customClass: '',\n // uncommenting the next two lines will break backwards compatability\n // prefixClass: 'popover',\n // prefixEvent: 'popover',\n container: false,\n target: false,\n placement: 'right',\n templateUrl: 'popover/popover.tpl.html',\n contentTemplate: false,\n trigger: 'click',\n keyboard: true,\n html: false,\n title: '',\n content: '',\n delay: 0,\n autoClose: false\n };\n\n this.$get = function($tooltip) {\n\n function PopoverFactory(element, config) {\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n var $popover = $tooltip(element, options);\n\n // Support scope as string options [/*title, */content]\n if(options.content) {\n $popover.$scope.content = options.content;\n }\n\n return $popover;\n\n }\n\n return PopoverFactory;\n\n };\n\n })\n\n .directive('bsPopover', function($window, $sce, $popover) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'customClass', 'autoClose', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoClose'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // should not parse target attribute (anchor tag), only data-target #1454\n var dataTarget = element.attr('data-target');\n if(angular.isDefined(dataTarget)) {\n if(falseValueRegExp.test(dataTarget))\n options.target = false;\n else\n options.target = dataTarget;\n }\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n angular.isDefined(oldValue) && requestAnimationFrame(function() {\n popover && popover.$applyPlacement();\n });\n });\n });\n\n // Support scope as an object\n attr.bsPopover && scope.$watch(attr.bsPopover, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n angular.isDefined(oldValue) && requestAnimationFrame(function() {\n popover && popover.$applyPlacement();\n });\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!popover || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(popover),?/i);\n newValue === true ? popover.show() : popover.hide();\n });\n\n // Viewport support\n attr.viewport && scope.$watch(attr.viewport, function (newValue) {\n if(!popover || !angular.isDefined(newValue)) return;\n popover.setViewport(newValue);\n });\n\n // Initialize popover\n var popover = $popover(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (popover) popover.destroy();\n options = null;\n popover = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.scrollspy', ['mgcrea.ngStrap.helpers.debounce', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$scrollspy', function() {\n\n // Pool of registered spies\n var spies = this.$$spies = {};\n\n var defaults = this.defaults = {\n debounce: 150,\n throttle: 100,\n offset: 100\n };\n\n this.$get = function($window, $document, $rootScope, dimensions, debounce, throttle) {\n\n var windowEl = angular.element($window);\n var docEl = angular.element($document.prop('documentElement'));\n var bodyEl = angular.element($window.document.body);\n\n // Helper functions\n\n function nodeName(element, name) {\n return element[0].nodeName && element[0].nodeName.toLowerCase() === name.toLowerCase();\n }\n\n function ScrollSpyFactory(config) {\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n if(!options.element) options.element = bodyEl;\n var isWindowSpy = nodeName(options.element, 'body');\n var scrollEl = isWindowSpy ? windowEl : options.element;\n var scrollId = isWindowSpy ? 'window' : options.id;\n\n // Use existing spy\n if(spies[scrollId]) {\n spies[scrollId].$$count++;\n return spies[scrollId];\n }\n\n var $scrollspy = {};\n\n // Private vars\n var unbindViewContentLoaded, unbindIncludeContentLoaded;\n var trackedElements = $scrollspy.$trackedElements = [];\n var sortedElements = [];\n var activeTarget;\n var debouncedCheckPosition;\n var throttledCheckPosition;\n var debouncedCheckOffsets;\n var viewportHeight;\n var scrollTop;\n\n $scrollspy.init = function() {\n\n // Setup internal ref counter\n this.$$count = 1;\n\n // Bind events\n debouncedCheckPosition = debounce(this.checkPosition, options.debounce);\n throttledCheckPosition = throttle(this.checkPosition, options.throttle);\n scrollEl.on('click', this.checkPositionWithEventLoop);\n windowEl.on('resize', debouncedCheckPosition);\n scrollEl.on('scroll', throttledCheckPosition);\n\n debouncedCheckOffsets = debounce(this.checkOffsets, options.debounce);\n unbindViewContentLoaded = $rootScope.$on('$viewContentLoaded', debouncedCheckOffsets);\n unbindIncludeContentLoaded = $rootScope.$on('$includeContentLoaded', debouncedCheckOffsets);\n debouncedCheckOffsets();\n\n // Register spy for reuse\n if(scrollId) {\n spies[scrollId] = $scrollspy;\n }\n\n };\n\n $scrollspy.destroy = function() {\n\n // Check internal ref counter\n this.$$count--;\n if(this.$$count > 0) {\n return;\n }\n\n // Unbind events\n scrollEl.off('click', this.checkPositionWithEventLoop);\n windowEl.off('resize', debouncedCheckPosition);\n scrollEl.off('scroll', throttledCheckPosition);\n unbindViewContentLoaded();\n unbindIncludeContentLoaded();\n if (scrollId) {\n delete spies[scrollId];\n }\n };\n\n $scrollspy.checkPosition = function() {\n\n // Not ready yet\n if(!sortedElements.length) return;\n\n // Calculate the scroll position\n scrollTop = (isWindowSpy ? $window.pageYOffset : scrollEl.prop('scrollTop')) || 0;\n\n // Calculate the viewport height for use by the components\n viewportHeight = Math.max($window.innerHeight, docEl.prop('clientHeight'));\n\n // Activate first element if scroll is smaller\n if(scrollTop < sortedElements[0].offsetTop && activeTarget !== sortedElements[0].target) {\n return $scrollspy.$activateElement(sortedElements[0]);\n }\n\n // Activate proper element\n for (var i = sortedElements.length; i--;) {\n if(angular.isUndefined(sortedElements[i].offsetTop) || sortedElements[i].offsetTop === null) continue;\n if(activeTarget === sortedElements[i].target) continue;\n if(scrollTop < sortedElements[i].offsetTop) continue;\n if(sortedElements[i + 1] && scrollTop > sortedElements[i + 1].offsetTop) continue;\n return $scrollspy.$activateElement(sortedElements[i]);\n }\n\n };\n\n $scrollspy.checkPositionWithEventLoop = function() {\n // IE 9 throws an error if we use 'this' instead of '$scrollspy'\n // in this setTimeout call\n setTimeout($scrollspy.checkPosition, 1);\n };\n\n // Protected methods\n\n $scrollspy.$activateElement = function(element) {\n if(activeTarget) {\n var activeElement = $scrollspy.$getTrackedElement(activeTarget);\n if(activeElement) {\n activeElement.source.removeClass('active');\n if(nodeName(activeElement.source, 'li') && nodeName(activeElement.source.parent().parent(), 'li')) {\n activeElement.source.parent().parent().removeClass('active');\n }\n }\n }\n activeTarget = element.target;\n element.source.addClass('active');\n if(nodeName(element.source, 'li') && nodeName(element.source.parent().parent(), 'li')) {\n element.source.parent().parent().addClass('active');\n }\n };\n\n $scrollspy.$getTrackedElement = function(target) {\n return trackedElements.filter(function(obj) {\n return obj.target === target;\n })[0];\n };\n\n // Track offsets behavior\n\n $scrollspy.checkOffsets = function() {\n\n angular.forEach(trackedElements, function(trackedElement) {\n var targetElement = document.querySelector(trackedElement.target);\n trackedElement.offsetTop = targetElement ? dimensions.offset(targetElement).top : null;\n if(options.offset && trackedElement.offsetTop !== null) trackedElement.offsetTop -= options.offset * 1;\n });\n\n sortedElements = trackedElements\n .filter(function(el) {\n return el.offsetTop !== null;\n })\n .sort(function(a, b) {\n return a.offsetTop - b.offsetTop;\n });\n\n debouncedCheckPosition();\n\n };\n\n $scrollspy.trackElement = function(target, source) {\n trackedElements.push({target: target, source: source});\n };\n\n $scrollspy.untrackElement = function(target, source) {\n var toDelete;\n for (var i = trackedElements.length; i--;) {\n if(trackedElements[i].target === target && trackedElements[i].source === source) {\n toDelete = i;\n break;\n }\n }\n trackedElements = trackedElements.splice(toDelete, 1);\n };\n\n $scrollspy.activate = function(i) {\n trackedElements[i].addClass('active');\n };\n\n // Initialize plugin\n\n $scrollspy.init();\n return $scrollspy;\n\n }\n\n return ScrollSpyFactory;\n\n };\n\n })\n\n .directive('bsScrollspy', function($rootScope, debounce, dimensions, $scrollspy) {\n\n return {\n restrict: 'EAC',\n link: function postLink(scope, element, attr) {\n\n var options = {scope: scope};\n angular.forEach(['offset', 'target'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n var scrollspy = $scrollspy(options);\n scrollspy.trackElement(options.target, element);\n\n scope.$on('$destroy', function() {\n if (scrollspy) {\n scrollspy.untrackElement(options.target, element);\n scrollspy.destroy();\n }\n options = null;\n scrollspy = null;\n });\n\n }\n };\n\n })\n\n\n .directive('bsScrollspyList', function($rootScope, debounce, dimensions, $scrollspy) {\n\n return {\n restrict: 'A',\n compile: function postLink(element, attr) {\n var children = element[0].querySelectorAll('li > a[href]');\n angular.forEach(children, function(child) {\n var childEl = angular.element(child);\n childEl.parent().attr('bs-scrollspy', '').attr('data-target', childEl.attr('href'));\n });\n }\n\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.select', ['mgcrea.ngStrap.tooltip', 'mgcrea.ngStrap.helpers.parseOptions'])\n\n .provider('$select', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'select',\n prefixEvent: '$select',\n placement: 'bottom-left',\n templateUrl: 'select/select.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n multiple: false,\n allNoneButtons: false,\n sort: true,\n caretHtml: ' ',\n placeholder: 'Choose among the following...',\n allText: 'All',\n noneText: 'None',\n maxLength: 3,\n maxLengthHtml: 'selected',\n iconCheckmark: 'glyphicon glyphicon-ok'\n };\n\n this.$get = function($window, $document, $rootScope, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n\n function SelectFactory(element, controller, config) {\n\n var $select = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $select = $tooltip(element, options);\n var scope = $select.$scope;\n\n scope.$matches = [];\n if (options.multiple) {\n scope.$activeIndex = [];\n }\n else {\n scope.$activeIndex = -1;\n }\n scope.$isMultiple = options.multiple;\n scope.$showAllNoneButtons = options.allNoneButtons && options.multiple;\n scope.$iconCheckmark = options.iconCheckmark;\n scope.$allText = options.allText;\n scope.$noneText = options.noneText;\n\n scope.$activate = function(index) {\n scope.$$postDigest(function() {\n $select.activate(index);\n });\n };\n\n scope.$select = function(index, evt) {\n scope.$$postDigest(function() {\n $select.select(index);\n });\n };\n\n scope.$isVisible = function() {\n return $select.$isVisible();\n };\n\n scope.$isActive = function(index) {\n return $select.$isActive(index);\n };\n\n scope.$selectAll = function () {\n for (var i = 0; i < scope.$matches.length; i++) {\n if (!scope.$isActive(i)) {\n scope.$select(i);\n }\n }\n };\n\n scope.$selectNone = function () {\n for (var i = 0; i < scope.$matches.length; i++) {\n if (scope.$isActive(i)) {\n scope.$select(i);\n }\n }\n };\n\n // Public methods\n\n $select.update = function(matches) {\n scope.$matches = matches;\n $select.$updateActiveIndex();\n };\n\n $select.activate = function(index) {\n if(options.multiple) {\n $select.$isActive(index) ? scope.$activeIndex.splice(scope.$activeIndex.indexOf(index), 1) : scope.$activeIndex.push(index);\n if(options.sort) scope.$activeIndex.sort(function(a, b) { return a - b; }); // use numeric sort instead of default sort\n } else {\n scope.$activeIndex = index;\n }\n return scope.$activeIndex;\n };\n\n $select.select = function(index) {\n var value = scope.$matches[index].value;\n scope.$apply(function() {\n $select.activate(index);\n if(options.multiple) {\n controller.$setViewValue(scope.$activeIndex.map(function(index) {\n return scope.$matches[index].value;\n }));\n } else {\n controller.$setViewValue(value);\n // Hide if single select\n $select.hide();\n }\n });\n // Emit event\n scope.$emit(options.prefixEvent + '.select', value, index, $select);\n };\n\n // Protected methods\n\n $select.$updateActiveIndex = function() {\n if(controller.$modelValue && scope.$matches.length) {\n if(options.multiple && angular.isArray(controller.$modelValue)) {\n scope.$activeIndex = controller.$modelValue.map(function(value) {\n return $select.$getIndex(value);\n });\n } else {\n scope.$activeIndex = $select.$getIndex(controller.$modelValue);\n }\n } else if(scope.$activeIndex >= scope.$matches.length) {\n scope.$activeIndex = options.multiple ? [] : 0;\n }\n };\n\n $select.$isVisible = function() {\n if(!options.minLength || !controller) {\n return scope.$matches.length;\n }\n // minLength support\n return scope.$matches.length && controller.$viewValue.length >= options.minLength;\n };\n\n $select.$isActive = function(index) {\n if(options.multiple) {\n return scope.$activeIndex.indexOf(index) !== -1;\n } else {\n return scope.$activeIndex === index;\n }\n };\n\n $select.$getIndex = function(value) {\n var l = scope.$matches.length, i = l;\n if(!l) return;\n for(i = l; i--;) {\n if(scope.$matches[i].value === value) break;\n }\n if(i < 0) return;\n return i;\n };\n\n $select.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n targetEl.triggerHandler('click');\n }\n };\n\n $select.$onKeyDown = function(evt) {\n if (!/(9|13|38|40)/.test(evt.keyCode)) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // release focus on tab\n if (options.multiple && evt.keyCode === 9) {\n return $select.hide();\n }\n\n // Select with enter\n if(!options.multiple && (evt.keyCode === 13 || evt.keyCode === 9)) {\n return $select.select(scope.$activeIndex);\n }\n\n if (!options.multiple) {\n // Navigate with keyboard\n if(evt.keyCode === 38 && scope.$activeIndex > 0) scope.$activeIndex--;\n else if(evt.keyCode === 38 && scope.$activeIndex < 0) scope.$activeIndex = scope.$matches.length - 1;\n else if(evt.keyCode === 40 && scope.$activeIndex < scope.$matches.length - 1) scope.$activeIndex++;\n else if(angular.isUndefined(scope.$activeIndex)) scope.$activeIndex = 0;\n scope.$digest();\n }\n };\n\n // Overrides\n\n var _show = $select.show;\n $select.show = function() {\n _show();\n if(options.multiple) {\n $select.$element.addClass('select-multiple');\n }\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n $select.$element.on(isTouch ? 'touchstart' : 'mousedown', $select.$onMouseDown);\n if(options.keyboard) {\n element.on('keydown', $select.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $select.hide;\n $select.hide = function() {\n if(!options.multiple && !controller.$modelValue) {\n scope.$activeIndex = -1;\n }\n $select.$element.off(isTouch ? 'touchstart' : 'mousedown', $select.$onMouseDown);\n if(options.keyboard) {\n element.off('keydown', $select.$onKeyDown);\n }\n _hide(true);\n };\n\n return $select;\n\n }\n\n SelectFactory.defaults = defaults;\n return SelectFactory;\n\n };\n\n })\n\n .directive('bsSelect', function($window, $parse, $q, $select, $parseOptions) {\n\n var defaults = $select.defaults;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope, placeholder: defaults.placeholder};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'placeholder', 'allNoneButtons', 'maxLength', 'maxLengthHtml', 'allText', 'noneText', 'iconCheckmark', 'autoClose', 'id', 'sort', 'caretHtml', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'allNoneButtons', 'sort'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Only parse data-multiple. Angular sets existence attributes to true (multiple/required/etc), they apply this\n // to data-multiple as well for some reason, so we'll parse this ourselves and disregard multiple\n var dataMultiple = element.attr('data-multiple');\n if(angular.isDefined(dataMultiple)) {\n if(falseValueRegExp.test(dataMultiple))\n options.multiple = false;\n else\n options.multiple = dataMultiple;\n }\n\n // Add support for select markup\n if(element[0].nodeName.toLowerCase() === 'select') {\n var inputEl = element;\n inputEl.css('display', 'none');\n element = angular.element('');\n inputEl.after(element);\n }\n\n // Build proper bsOptions\n var parsedOptions = $parseOptions(attr.bsOptions);\n\n // Initialize select\n var select = $select(element, controller, options);\n\n // Watch bsOptions values before filtering for changes\n var watchedOptions = parsedOptions.$match[7].replace(/\\|.+/, '').trim();\n scope.$watchCollection(watchedOptions, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', watchedOptions, newValue, oldValue);\n parsedOptions.valuesFn(scope, controller)\n .then(function(values) {\n select.update(values);\n controller.$render();\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.ngModel, newValue, oldValue);\n select.$updateActiveIndex();\n controller.$render();\n }, true);\n\n // Model rendering in view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var selected, index;\n if(options.multiple && angular.isArray(controller.$modelValue)) {\n selected = controller.$modelValue.map(function(value) {\n index = select.$getIndex(value);\n return angular.isDefined(index) ? select.$scope.$matches[index].label : false;\n }).filter(angular.isDefined);\n if(selected.length > (options.maxLength || defaults.maxLength)) {\n selected = selected.length + ' ' + (options.maxLengthHtml || defaults.maxLengthHtml);\n } else {\n selected = selected.join(', ');\n }\n } else {\n index = select.$getIndex(controller.$modelValue);\n selected = angular.isDefined(index) ? select.$scope.$matches[index].label : false;\n }\n element.html((selected ? selected : options.placeholder) + (options.caretHtml ? options.caretHtml : defaults.caretHtml));\n };\n\n if(options.multiple){\n controller.$isEmpty = function(value){\n return !value || value.length === 0;\n };\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (select) select.destroy();\n options = null;\n select = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.timepicker', ['mgcrea.ngStrap.helpers.dateParser', 'mgcrea.ngStrap.helpers.dateFormatter', 'mgcrea.ngStrap.tooltip'])\n\n .provider('$timepicker', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n //uncommenting the following line will break backwards compatability\n // prefixEvent: 'timepicker',\n prefixClass: 'timepicker',\n placement: 'bottom-left',\n templateUrl: 'timepicker/timepicker.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n // lang: $locale.id,\n useNative: true,\n timeType: 'date',\n timeFormat: 'shortTime',\n timezone: null,\n modelTimeFormat: null,\n autoclose: false,\n minTime: -Infinity,\n maxTime: +Infinity,\n length: 5,\n hourStep: 1,\n minuteStep: 5,\n secondStep: 5,\n roundDisplay: false,\n iconUp: 'glyphicon glyphicon-chevron-up',\n iconDown: 'glyphicon glyphicon-chevron-down',\n arrowBehavior: 'pager'\n };\n\n this.$get = function($window, $document, $rootScope, $sce, $dateFormatter, $tooltip, $timeout) {\n\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n if (!defaults.lang) {\n defaults.lang = $dateFormatter.getDefaultLocale();\n }\n\n function timepickerFactory(element, controller, config) {\n\n var $timepicker = $tooltip(element, angular.extend({}, defaults, config));\n var parentScope = config.scope;\n var options = $timepicker.$options;\n var scope = $timepicker.$scope;\n\n var lang = options.lang;\n var formatDate = function(date, format, timezone) {\n return $dateFormatter.formatDate(date, format, lang, timezone);\n };\n\n function floorMinutes(time) {\n // coeff used to floor current time to nearest minuteStep interval\n var coeff = 1000 * 60 * options.minuteStep;\n return new Date(Math.floor(time.getTime() / coeff) * coeff);\n }\n\n // View vars\n\n var selectedIndex = 0;\n var defaultDate = options.roundDisplay ? floorMinutes(new Date()) : new Date();\n var startDate = controller.$dateValue || defaultDate;\n var viewDate = {\n hour: startDate.getHours(),\n meridian: startDate.getHours() < 12,\n minute: startDate.getMinutes(),\n second: startDate.getSeconds(),\n millisecond: startDate.getMilliseconds()\n };\n\n var format = $dateFormatter.getDatetimeFormat(options.timeFormat, lang);\n\n var hoursFormat = $dateFormatter.hoursFormat(format),\n timeSeparator = $dateFormatter.timeSeparator(format),\n minutesFormat = $dateFormatter.minutesFormat(format),\n secondsFormat = $dateFormatter.secondsFormat(format),\n showSeconds = $dateFormatter.showSeconds(format),\n showAM = $dateFormatter.showAM(format);\n\n scope.$iconUp = options.iconUp;\n scope.$iconDown = options.iconDown;\n\n // Scope methods\n\n scope.$select = function(date, index) {\n $timepicker.select(date, index);\n };\n scope.$moveIndex = function(value, index) {\n $timepicker.$moveIndex(value, index);\n };\n scope.$switchMeridian = function(date) {\n $timepicker.switchMeridian(date);\n };\n\n // Public methods\n\n $timepicker.update = function(date) {\n // console.warn('$timepicker.update() newValue=%o', date);\n if (angular.isDate(date) && !isNaN(date.getTime())) {\n $timepicker.$date = date;\n angular.extend(viewDate, {\n hour: date.getHours(),\n minute: date.getMinutes(),\n second: date.getSeconds(),\n millisecond: date.getMilliseconds()\n });\n $timepicker.$build();\n } else if (!$timepicker.$isBuilt) {\n $timepicker.$build();\n }\n };\n\n $timepicker.select = function(date, index, keep) {\n // console.warn('$timepicker.select', date, scope.$mode);\n if (!controller.$dateValue || isNaN(controller.$dateValue.getTime())) controller.$dateValue = new Date(1970, 0, 1);\n if (!angular.isDate(date)) date = new Date(date);\n if (index === 0) controller.$dateValue.setHours(date.getHours());\n else if (index === 1) controller.$dateValue.setMinutes(date.getMinutes());\n else if (index === 2) controller.$dateValue.setSeconds(date.getSeconds());\n controller.$setViewValue(angular.copy(controller.$dateValue));\n controller.$render();\n if (options.autoclose && !keep) {\n $timeout(function() {\n $timepicker.hide(true);\n });\n }\n };\n\n $timepicker.switchMeridian = function(date) {\n if (!controller.$dateValue || isNaN(controller.$dateValue.getTime())) {\n return;\n }\n var hours = (date || controller.$dateValue).getHours();\n controller.$dateValue.setHours(hours < 12 ? hours + 12 : hours - 12);\n controller.$setViewValue(angular.copy(controller.$dateValue));\n controller.$render();\n };\n\n // Protected methods\n\n $timepicker.$build = function() {\n // console.warn('$timepicker.$build() viewDate=%o', viewDate);\n var i, midIndex = scope.midIndex = parseInt(options.length / 2, 10);\n var hours = [],\n hour;\n for (i = 0; i < options.length; i++) {\n hour = new Date(1970, 0, 1, viewDate.hour - (midIndex - i) * options.hourStep);\n hours.push({\n date: hour,\n label: formatDate(hour, hoursFormat),\n selected: $timepicker.$date && $timepicker.$isSelected(hour, 0),\n disabled: $timepicker.$isDisabled(hour, 0)\n });\n }\n var minutes = [],\n minute;\n for (i = 0; i < options.length; i++) {\n minute = new Date(1970, 0, 1, 0, viewDate.minute - (midIndex - i) * options.minuteStep);\n minutes.push({\n date: minute,\n label: formatDate(minute, minutesFormat),\n selected: $timepicker.$date && $timepicker.$isSelected(minute, 1),\n disabled: $timepicker.$isDisabled(minute, 1)\n });\n }\n var seconds = [],\n second;\n for (i = 0; i < options.length; i++) {\n second = new Date(1970, 0, 1, 0, 0, viewDate.second - (midIndex - i) * options.secondStep);\n seconds.push({\n date: second,\n label: formatDate(second, secondsFormat),\n selected: $timepicker.$date && $timepicker.$isSelected(second, 2),\n disabled: $timepicker.$isDisabled(second, 2)\n });\n }\n\n var rows = [];\n for (i = 0; i < options.length; i++) {\n if (showSeconds) {\n rows.push([hours[i], minutes[i], seconds[i]]);\n } else {\n rows.push([hours[i], minutes[i]]);\n }\n }\n scope.rows = rows;\n scope.showSeconds = showSeconds;\n scope.showAM = showAM;\n scope.isAM = ($timepicker.$date || hours[midIndex].date).getHours() < 12;\n scope.timeSeparator = timeSeparator;\n $timepicker.$isBuilt = true;\n };\n\n $timepicker.$isSelected = function(date, index) {\n if (!$timepicker.$date) return false;\n else if (index === 0) {\n return date.getHours() === $timepicker.$date.getHours();\n } else if (index === 1) {\n return date.getMinutes() === $timepicker.$date.getMinutes();\n } else if (index === 2) {\n return date.getSeconds() === $timepicker.$date.getSeconds();\n }\n };\n\n $timepicker.$isDisabled = function(date, index) {\n var selectedTime;\n if (index === 0) {\n selectedTime = date.getTime() + viewDate.minute * 6e4 + viewDate.second * 1e3;\n } else if (index === 1) {\n selectedTime = date.getTime() + viewDate.hour * 36e5 + viewDate.second * 1e3;\n } else if (index === 2) {\n selectedTime = date.getTime() + viewDate.hour * 36e5 + viewDate.minute * 6e4;\n }\n return selectedTime < options.minTime * 1 || selectedTime > options.maxTime * 1;\n };\n\n scope.$arrowAction = function(value, index) {\n if (options.arrowBehavior === 'picker') {\n $timepicker.$setTimeByStep(value, index);\n } else {\n $timepicker.$moveIndex(value, index);\n }\n };\n\n $timepicker.$setTimeByStep = function(value, index) {\n var newDate = new Date($timepicker.$date || startDate);\n var hours = newDate.getHours();\n var minutes = newDate.getMinutes();\n var seconds = newDate.getSeconds();\n if (index === 0) {\n newDate.setHours(hours - (parseInt(options.hourStep, 10) * value));\n } else if (index === 1) {\n newDate.setMinutes(minutes - (parseInt(options.minuteStep, 10) * value));\n } else if (index === 2) {\n newDate.setSeconds(seconds - (parseInt(options.secondStep, 10) * value));\n }\n $timepicker.select(newDate, index, true);\n };\n\n $timepicker.$moveIndex = function(value, index) {\n var targetDate;\n if (index === 0) {\n targetDate = new Date(1970, 0, 1, viewDate.hour + (value * options.length), viewDate.minute, viewDate.second);\n angular.extend(viewDate, {\n hour: targetDate.getHours()\n });\n } else if (index === 1) {\n targetDate = new Date(1970, 0, 1, viewDate.hour, viewDate.minute + (value * options.length * options.minuteStep), viewDate.second);\n angular.extend(viewDate, {\n minute: targetDate.getMinutes()\n });\n } else if (index === 2) {\n targetDate = new Date(1970, 0, 1, viewDate.hour, viewDate.minute, viewDate.second + (value * options.length * options.secondStep));\n angular.extend(viewDate, {\n second: targetDate.getSeconds()\n });\n }\n $timepicker.$build();\n };\n\n $timepicker.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n if (evt.target.nodeName.toLowerCase() !== 'input') evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if (isTouch) {\n var targetEl = angular.element(evt.target);\n if (targetEl[0].nodeName.toLowerCase() !== 'button') {\n targetEl = targetEl.parent();\n }\n targetEl.triggerHandler('click');\n }\n };\n\n $timepicker.$onKeyDown = function(evt) {\n if (!/(38|37|39|40|13)/.test(evt.keyCode) || evt.shiftKey || evt.altKey) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // Close on enter\n if (evt.keyCode === 13) {\n $timepicker.hide(true);\n return;\n }\n\n // Navigate with keyboard\n var newDate = new Date($timepicker.$date);\n var hours = newDate.getHours(),\n hoursLength = formatDate(newDate, hoursFormat).length;\n var minutes = newDate.getMinutes(),\n minutesLength = formatDate(newDate, minutesFormat).length;\n var seconds = newDate.getSeconds(),\n secondsLength = formatDate(newDate, secondsFormat).length;\n var sepLength = 1;\n var lateralMove = /(37|39)/.test(evt.keyCode);\n var count = 2 + showSeconds * 1 + showAM * 1;\n\n // Navigate indexes (left, right)\n if (lateralMove) {\n if (evt.keyCode === 37) selectedIndex = selectedIndex < 1 ? count - 1 : selectedIndex - 1;\n else if (evt.keyCode === 39) selectedIndex = selectedIndex < count - 1 ? selectedIndex + 1 : 0;\n }\n\n // Update values (up, down)\n var selectRange = [0, hoursLength];\n var incr = 0;\n if (evt.keyCode === 38) incr = -1;\n if (evt.keyCode === 40) incr = +1;\n var isSeconds = selectedIndex === 2 && showSeconds;\n var isMeridian = selectedIndex === 2 && !showSeconds || selectedIndex === 3 && showSeconds;\n if (selectedIndex === 0) {\n newDate.setHours(hours + incr * parseInt(options.hourStep, 10));\n // re-calculate hours length because we have changed hours value\n hoursLength = formatDate(newDate, hoursFormat).length;\n selectRange = [0, hoursLength];\n } else if (selectedIndex === 1) {\n newDate.setMinutes(minutes + incr * parseInt(options.minuteStep, 10));\n // re-calculate minutes length because we have changes minutes value\n minutesLength = formatDate(newDate, minutesFormat).length;\n selectRange = [hoursLength + sepLength, minutesLength];\n } else if (isSeconds) {\n newDate.setSeconds(seconds + incr * parseInt(options.secondStep, 10));\n // re-calculate seconds length because we have changes seconds value\n secondsLength = formatDate(newDate, secondsFormat).length;\n selectRange = [hoursLength + sepLength + minutesLength + sepLength, secondsLength];\n } else if (isMeridian) {\n if (!lateralMove) $timepicker.switchMeridian();\n selectRange = [hoursLength + sepLength + minutesLength + sepLength + (secondsLength + sepLength) * showSeconds, 2];\n }\n $timepicker.select(newDate, selectedIndex, true);\n createSelection(selectRange[0], selectRange[1]);\n parentScope.$digest();\n };\n\n // Private\n\n function createSelection(start, length) {\n var end = start + length;\n if (element[0].createTextRange) {\n var selRange = element[0].createTextRange();\n selRange.collapse(true);\n selRange.moveStart('character', start);\n selRange.moveEnd('character', end);\n selRange.select();\n } else if (element[0].setSelectionRange) {\n element[0].setSelectionRange(start, end);\n } else if (angular.isUndefined(element[0].selectionStart)) {\n element[0].selectionStart = start;\n element[0].selectionEnd = end;\n }\n }\n\n function focusElement() {\n element[0].focus();\n }\n\n // Overrides\n\n var _init = $timepicker.init;\n $timepicker.init = function() {\n if (isNative && options.useNative) {\n element.prop('type', 'time');\n element.css('-webkit-appearance', 'textfield');\n return;\n } else if (isTouch) {\n element.prop('type', 'text');\n element.attr('readonly', 'true');\n element.on('click', focusElement);\n }\n _init();\n };\n\n var _destroy = $timepicker.destroy;\n $timepicker.destroy = function() {\n if (isNative && options.useNative) {\n element.off('click', focusElement);\n }\n _destroy();\n };\n\n var _show = $timepicker.show;\n $timepicker.show = function() {\n if((!isTouch && element.attr('readonly')) || element.attr('disabled')) return;\n _show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n $timepicker.$element && $timepicker.$element.on(isTouch ? 'touchstart' : 'mousedown', $timepicker.$onMouseDown);\n if (options.keyboard) {\n element && element.on('keydown', $timepicker.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $timepicker.hide;\n $timepicker.hide = function(blur) {\n if (!$timepicker.$isShown) return;\n $timepicker.$element && $timepicker.$element.off(isTouch ? 'touchstart' : 'mousedown', $timepicker.$onMouseDown);\n if (options.keyboard) {\n element && element.off('keydown', $timepicker.$onKeyDown);\n }\n _hide(blur);\n };\n\n return $timepicker;\n\n }\n\n timepickerFactory.defaults = defaults;\n return timepickerFactory;\n\n };\n\n })\n\n\n .directive('bsTimepicker', function($window, $parse, $q, $dateFormatter, $dateParser, $timepicker) {\n\n var defaults = $timepicker.defaults;\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {\n scope: scope\n };\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'autoclose', 'timeType', 'timeFormat', 'timezone', 'modelTimeFormat', 'useNative', 'hourStep', 'minuteStep', 'secondStep', 'length', 'arrowBehavior', 'iconUp', 'iconDown', 'roundDisplay', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if (angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoclose', 'useNative', 'roundDisplay'], function(key) {\n if (angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if (!timepicker || !angular.isDefined(newValue)) return;\n if (angular.isString(newValue)) newValue = !!newValue.match(/true|,?(timepicker),?/i);\n newValue === true ? timepicker.show() : timepicker.hide();\n });\n\n // Initialize timepicker\n if (isNative && (options.useNative || defaults.useNative)) options.timeFormat = 'HH:mm';\n var timepicker = $timepicker(element, controller, options);\n options = timepicker.$options;\n\n var lang = options.lang;\n var formatDate = function(date, format, timezone) {\n return $dateFormatter.formatDate(date, format, lang, timezone);\n };\n\n // Initialize parser\n var dateParser = $dateParser({\n format: options.timeFormat,\n lang: lang\n });\n\n // Observe attributes for changes\n angular.forEach(['minTime', 'maxTime'], function(key) {\n // console.warn('attr.$observe(%s)', key, attr[key]);\n angular.isDefined(attr[key]) && attr.$observe(key, function(newValue) {\n timepicker.$options[key] = dateParser.getTimeForAttribute(key, newValue);\n !isNaN(timepicker.$options[key]) && timepicker.$build();\n validateAgainstMinMaxTime(controller.$dateValue);\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.ngModel, newValue, oldValue, controller.$dateValue);\n timepicker.update(controller.$dateValue);\n }, true);\n\n function validateAgainstMinMaxTime(parsedTime) {\n if (!angular.isDate(parsedTime)) return;\n var isMinValid = isNaN(options.minTime) || new Date(parsedTime.getTime()).setFullYear(1970, 0, 1) >= options.minTime;\n var isMaxValid = isNaN(options.maxTime) || new Date(parsedTime.getTime()).setFullYear(1970, 0, 1) <= options.maxTime;\n var isValid = isMinValid && isMaxValid;\n controller.$setValidity('date', isValid);\n controller.$setValidity('min', isMinValid);\n controller.$setValidity('max', isMaxValid);\n // Only update the model when we have a valid date\n if (!isValid) {\n return;\n }\n controller.$dateValue = parsedTime;\n }\n\n // viewValue -> $parsers -> modelValue\n controller.$parsers.unshift(function(viewValue) {\n // console.warn('$parser(\"%s\"): viewValue=%o', element.attr('ng-model'), viewValue);\n var date;\n // Null values should correctly reset the model value & validity\n if (!viewValue) {\n // BREAKING CHANGE:\n // return null (not undefined) when input value is empty, so angularjs 1.3\n // ngModelController can go ahead and run validators, like ngRequired\n controller.$setValidity('date', true);\n return null;\n }\n var parsedTime = angular.isDate(viewValue) ? viewValue : dateParser.parse(viewValue, controller.$dateValue);\n if (!parsedTime || isNaN(parsedTime.getTime())) {\n controller.$setValidity('date', false);\n // Return undefined, causes ngModelController to\n // invalidate model value\n return undefined;\n } else {\n validateAgainstMinMaxTime(parsedTime);\n }\n\n if (options.timeType === 'string') {\n date = dateParser.timezoneOffsetAdjust(parsedTime, options.timezone, true);\n return formatDate(date, options.modelTimeFormat || options.timeFormat);\n }\n date = dateParser.timezoneOffsetAdjust(controller.$dateValue, options.timezone, true);\n if (options.timeType === 'number') {\n return date.getTime();\n } else if (options.timeType === 'unix') {\n return date.getTime() / 1000;\n } else if (options.timeType === 'iso') {\n return date.toISOString();\n } else {\n return new Date(date);\n }\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var date;\n if (angular.isUndefined(modelValue) || modelValue === null) {\n date = NaN;\n } else if (angular.isDate(modelValue)) {\n date = modelValue;\n } else if (options.timeType === 'string') {\n date = dateParser.parse(modelValue, null, options.modelTimeFormat);\n } else if (options.timeType === 'unix') {\n date = new Date(modelValue * 1000);\n } else {\n date = new Date(modelValue);\n }\n // Setup default value?\n // if(isNaN(date.getTime())) date = new Date(new Date().setMinutes(0) + 36e5);\n controller.$dateValue = dateParser.timezoneOffsetAdjust(date, options.timezone);\n return getTimeFormattedString();\n });\n\n // viewValue -> element\n controller.$render = function() {\n // console.warn('$render(\"%s\"): viewValue=%o', element.attr('ng-model'), controller.$viewValue);\n element.val(getTimeFormattedString());\n };\n\n function getTimeFormattedString() {\n return !controller.$dateValue || isNaN(controller.$dateValue.getTime()) ? '' : formatDate(controller.$dateValue, options.timeFormat);\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (timepicker) timepicker.destroy();\n options = null;\n timepicker = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.tab', [])\n\n .provider('$tab', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n template: 'tab/tab.tpl.html',\n navClass: 'nav-tabs',\n activeClass: 'active'\n };\n\n var controller = this.controller = function($scope, $element, $attrs) {\n var self = this;\n\n // Attributes options\n self.$options = angular.copy(defaults);\n angular.forEach(['animation', 'navClass', 'activeClass'], function(key) {\n if(angular.isDefined($attrs[key])) self.$options[key] = $attrs[key];\n });\n\n // Publish options on scope\n $scope.$navClass = self.$options.navClass;\n $scope.$activeClass = self.$options.activeClass;\n\n self.$panes = $scope.$panes = [];\n\n // Please use $activePaneChangeListeners if you use `bsActivePane`\n // Because we removed `ngModel` as default, we rename viewChangeListeners to\n // activePaneChangeListeners to make more sense.\n self.$activePaneChangeListeners = self.$viewChangeListeners = [];\n\n self.$push = function(pane) {\n if(angular.isUndefined(self.$panes.$active)) {\n $scope.$setActive(pane.name || 0);\n }\n self.$panes.push(pane);\n };\n\n self.$remove = function(pane) {\n var index = self.$panes.indexOf(pane);\n var active = self.$panes.$active;\n var activeIndex;\n if(angular.isString(active)) {\n activeIndex = self.$panes.map(function(pane) {\n return pane.name;\n }).indexOf(active);\n } else {\n activeIndex = self.$panes.$active;\n }\n\n // remove pane from $panes array\n self.$panes.splice(index, 1);\n\n if (index < activeIndex) {\n // we removed a pane before the active pane, so we need to\n // decrement the active pane index\n activeIndex--;\n }\n else if (index === activeIndex && activeIndex === self.$panes.length) {\n // we remove the active pane and it was the one at the end,\n // so select the previous one\n activeIndex--;\n }\n if(activeIndex >= 0 && activeIndex < self.$panes.length) {\n self.$setActive(self.$panes[activeIndex].name || activeIndex);\n } else {\n self.$setActive();\n }\n };\n\n self.$setActive = $scope.$setActive = function(value) {\n self.$panes.$active = value;\n self.$activePaneChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n self.$isActive = $scope.$isActive = function($pane, $index) {\n return self.$panes.$active === $pane.name || self.$panes.$active === $index;\n };\n\n };\n\n this.$get = function() {\n var $tab = {};\n $tab.defaults = defaults;\n $tab.controller = controller;\n return $tab;\n };\n\n })\n\n .directive('bsTabs', function($window, $animate, $tab, $parse) {\n\n var defaults = $tab.defaults;\n\n return {\n require: ['?ngModel', 'bsTabs'],\n transclude: true,\n scope: true,\n controller: ['$scope', '$element', '$attrs', $tab.controller],\n templateUrl: function(element, attr) {\n return attr.template || defaults.template;\n },\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsTabsCtrl = controllers[1];\n\n // 'ngModel' does interfere with form validation\n // and status, use `bsActivePane` instead to avoid it\n if(ngModelCtrl) {\n\n // Update the modelValue following\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n ngModelCtrl.$setViewValue(bsTabsCtrl.$panes.$active);\n });\n\n // modelValue -> $formatters -> viewValue\n ngModelCtrl.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n bsTabsCtrl.$setActive(modelValue);\n return modelValue;\n });\n\n }\n\n if (attrs.bsActivePane) {\n // adapted from angularjs ngModelController bindings\n // https://github.com/angular/angular.js/blob/v1.3.1/src%2Fng%2Fdirective%2Finput.js#L1730\n var parsedBsActivePane = $parse(attrs.bsActivePane);\n\n // Update bsActivePane value with change\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n parsedBsActivePane.assign(scope, bsTabsCtrl.$panes.$active);\n });\n\n // watch bsActivePane for value changes\n scope.$watch(attrs.bsActivePane, function(newValue, oldValue) {\n bsTabsCtrl.$setActive(newValue);\n }, true);\n }\n }\n };\n\n })\n\n .directive('bsPane', function($window, $animate, $sce) {\n\n return {\n require: ['^?ngModel', '^bsTabs'],\n scope: true,\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsTabsCtrl = controllers[1];\n\n // Add base class\n element.addClass('tab-pane');\n\n // Observe title attribute for change\n attrs.$observe('title', function(newValue, oldValue) {\n scope.title = $sce.trustAsHtml(newValue);\n });\n\n // Save tab name into scope\n scope.name = attrs.name;\n\n // Add animation class\n if(bsTabsCtrl.$options.animation) {\n element.addClass(bsTabsCtrl.$options.animation);\n }\n\n attrs.$observe('disabled', function(newValue, oldValue) {\n scope.disabled = scope.$eval(newValue);\n });\n\n // Push pane to parent bsTabs controller\n bsTabsCtrl.$push(scope);\n\n // remove pane from tab controller when pane is destroyed\n scope.$on('$destroy', function() {\n bsTabsCtrl.$remove(scope);\n });\n\n function render() {\n var index = bsTabsCtrl.$panes.indexOf(scope);\n $animate[bsTabsCtrl.$isActive(scope, index) ? 'addClass' : 'removeClass'](element, bsTabsCtrl.$options.activeClass);\n }\n\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n render();\n });\n render();\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.typeahead', ['mgcrea.ngStrap.tooltip', 'mgcrea.ngStrap.helpers.parseOptions'])\n\n .provider('$typeahead', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'typeahead',\n prefixEvent: '$typeahead',\n placement: 'bottom-left',\n templateUrl: 'typeahead/typeahead.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n minLength: 1,\n filter: 'bsAsyncFilter',\n limit: 6,\n autoSelect: false,\n comparator: '',\n trimValue: true\n };\n\n this.$get = function($window, $rootScope, $tooltip, $$rAF, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n\n function TypeaheadFactory(element, controller, config) {\n\n var $typeahead = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $typeahead = $tooltip(element, options);\n var parentScope = config.scope;\n var scope = $typeahead.$scope;\n\n scope.$resetMatches = function() {\n scope.$matches = [];\n scope.$activeIndex = options.autoSelect ? 0 : -1; // If set to 0, the first match will be highlighted\n };\n scope.$resetMatches();\n\n scope.$activate = function(index) {\n scope.$$postDigest(function() {\n $typeahead.activate(index);\n });\n };\n\n scope.$select = function(index, evt) {\n scope.$$postDigest(function() {\n $typeahead.select(index);\n });\n };\n\n scope.$isVisible = function() {\n return $typeahead.$isVisible();\n };\n\n // Public methods\n\n $typeahead.update = function(matches) {\n scope.$matches = matches;\n if (scope.$activeIndex >= matches.length) {\n scope.$activeIndex = options.autoSelect ? 0 : -1;\n }\n\n // wrap in a $timeout so the results are updated\n // before repositioning\n safeDigest(scope);\n $$rAF($typeahead.$applyPlacement);\n };\n\n $typeahead.activate = function(index) {\n scope.$activeIndex = index;\n };\n\n $typeahead.select = function(index) {\n if (index === -1) return;\n var value = scope.$matches[index].value;\n // console.log('$setViewValue', value);\n controller.$setViewValue(value);\n controller.$render();\n scope.$resetMatches();\n if (parentScope) parentScope.$digest();\n // Emit event\n scope.$emit(options.prefixEvent + '.select', value, index, $typeahead);\n };\n\n // Protected methods\n\n $typeahead.$isVisible = function() {\n if (!options.minLength || !controller) {\n return !!scope.$matches.length;\n }\n // minLength support\n return scope.$matches.length && angular.isString(controller.$viewValue) && controller.$viewValue.length >= options.minLength;\n };\n\n $typeahead.$getIndex = function(value) {\n var l = scope.$matches.length,\n i = l;\n if (!l) return;\n for (i = l; i--;) {\n if (scope.$matches[i].value === value) break;\n }\n if (i < 0) return;\n return i;\n };\n\n $typeahead.$onMouseDown = function(evt) {\n // Prevent blur on mousedown\n evt.preventDefault();\n evt.stopPropagation();\n };\n\n $typeahead.$onKeyDown = function(evt) {\n if (!/(38|40|13)/.test(evt.keyCode)) return;\n\n // Let ngSubmit pass if the typeahead tip is hidden or no option is selected\n if ($typeahead.$isVisible() && !(evt.keyCode === 13 && scope.$activeIndex === -1)) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n\n // Select with enter\n if (evt.keyCode === 13 && scope.$matches.length) {\n $typeahead.select(scope.$activeIndex);\n }\n\n // Navigate with keyboard\n else if (evt.keyCode === 38 && scope.$activeIndex > 0) scope.$activeIndex--;\n else if (evt.keyCode === 40 && scope.$activeIndex < scope.$matches.length - 1) scope.$activeIndex++;\n else if (angular.isUndefined(scope.$activeIndex)) scope.$activeIndex = 0;\n scope.$digest();\n };\n\n // Overrides\n\n var show = $typeahead.show;\n $typeahead.show = function() {\n show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed immediately.\n $timeout(function() {\n $typeahead.$element && $typeahead.$element.on('mousedown', $typeahead.$onMouseDown);\n if (options.keyboard) {\n element && element.on('keydown', $typeahead.$onKeyDown);\n }\n }, 0, false);\n };\n\n var hide = $typeahead.hide;\n $typeahead.hide = function() {\n $typeahead.$element && $typeahead.$element.off('mousedown', $typeahead.$onMouseDown);\n if (options.keyboard) {\n element && element.off('keydown', $typeahead.$onKeyDown);\n }\n if (!options.autoSelect)\n $typeahead.activate(-1);\n hide();\n };\n\n return $typeahead;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n TypeaheadFactory.defaults = defaults;\n return TypeaheadFactory;\n\n };\n\n })\n\n .filter('bsAsyncFilter', function($filter) {\n return function(array, expression, comparator) {\n if (array && angular.isFunction(array.then)) {\n return array.then(function(results) {\n return $filter('filter')(results, expression, comparator);\n });\n } else {\n return $filter('filter')(array, expression, comparator);\n }\n };\n })\n\n .directive('bsTypeahead', function($window, $parse, $q, $typeahead, $parseOptions) {\n\n var defaults = $typeahead.defaults;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {\n scope: scope\n };\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'filter', 'limit', 'minLength', 'watchOptions', 'selectMode', 'autoSelect', 'comparator', 'id', 'prefixEvent', 'prefixClass'], function(key) {\n if (angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'trimValue'], function(key) {\n if (angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key])) options[key] = false;\n });\n\n // Disable browser autocompletion\n element.attr('autocomplete', 'false');\n\n // Build proper bsOptions\n var filter = options.filter || defaults.filter;\n var limit = options.limit || defaults.limit;\n var comparator = options.comparator || defaults.comparator;\n\n var bsOptions = attr.bsOptions;\n if (filter) bsOptions += ' | ' + filter + ':$viewValue';\n if (comparator) bsOptions += ':' + comparator;\n if (limit) bsOptions += ' | limitTo:' + limit;\n var parsedOptions = $parseOptions(bsOptions);\n\n // Initialize typeahead\n var typeahead = $typeahead(element, controller, options);\n\n // Watch options on demand\n if (options.watchOptions) {\n // Watch bsOptions values before filtering for changes, drop function calls\n var watchedOptions = parsedOptions.$match[7].replace(/\\|.+/, '').replace(/\\(.*\\)/g, '').trim();\n scope.$watchCollection(watchedOptions, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', watchedOptions, newValue, oldValue);\n parsedOptions.valuesFn(scope, controller).then(function(values) {\n typeahead.update(values);\n controller.$render();\n });\n });\n }\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('$watch', element.attr('ng-model'), newValue);\n scope.$modelValue = newValue; // Publish modelValue on scope for custom templates\n parsedOptions.valuesFn(scope, controller)\n .then(function(values) {\n // Prevent input with no future prospect if selectMode is truthy\n // @TODO test selectMode\n if (options.selectMode && !values.length && newValue.length > 0) {\n controller.$setViewValue(controller.$viewValue.substring(0, controller.$viewValue.length - 1));\n return;\n }\n if (values.length > limit) values = values.slice(0, limit);\n var isVisible = typeahead.$isVisible();\n isVisible && typeahead.update(values);\n // Do not re-queue an update if a correct value has been selected\n if (values.length === 1 && values[0].value === newValue) return;\n !isVisible && typeahead.update(values);\n // Queue a new rendering that will leverage collection loading\n controller.$render();\n });\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var displayValue = parsedOptions.displayValue(modelValue);\n\n // If we can determine the displayValue, use that\n if (displayValue) {\n return displayValue;\n }\n\n // If there's no display value, attempt to use the modelValue.\n // If the model is an object not much we can do\n if (modelValue && typeof modelValue !== 'object') {\n return modelValue;\n }\n return '';\n });\n\n // Model rendering in view\n controller.$render = function() {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n if (controller.$isEmpty(controller.$viewValue)) {\n return element.val('');\n }\n var index = typeahead.$getIndex(controller.$modelValue);\n var selected = angular.isDefined(index) ? typeahead.$scope.$matches[index].label : controller.$viewValue;\n selected = angular.isObject(selected) ? parsedOptions.displayValue(selected) : selected;\n var value = selected ? selected.toString().replace(/<(?:.|\\n)*?>/gm, '') : '';\n element.val(options.trimValue === false ? value : value.trim());\n };\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (typeahead) typeahead.destroy();\n options = null;\n typeahead = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.core', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$tooltip', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n customClass: '',\n prefixClass: 'tooltip',\n prefixEvent: 'tooltip',\n container: false,\n target: false,\n placement: 'top',\n templateUrl: 'tooltip/tooltip.tpl.html',\n template: '',\n contentTemplate: false,\n trigger: 'hover focus',\n keyboard: false,\n html: false,\n show: false,\n title: '',\n type: '',\n delay: 0,\n autoClose: false,\n bsEnabled: true,\n viewport: {\n selector: 'body',\n padding: 0\n }\n };\n\n this.$get = function($window, $rootScope, $bsCompiler, $q, $templateCache, $http, $animate, $sce, dimensions, $$rAF, $timeout) {\n\n var trim = String.prototype.trim;\n var isTouch = 'createTouch' in $window.document;\n var htmlReplaceRegExp = /ng-bind=\"/ig;\n var $body = angular.element($window.document);\n\n function TooltipFactory(element, config) {\n\n var $tooltip = {};\n\n // Common vars\n var options = $tooltip.$options = angular.extend({}, defaults, config);\n var promise = $tooltip.$promise = $bsCompiler.compile(options);\n var scope = $tooltip.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n var nodeName = element[0].nodeName.toLowerCase();\n if(options.delay && angular.isString(options.delay)) {\n var split = options.delay.split(',').map(parseFloat);\n options.delay = split.length > 1 ? {show: split[0], hide: split[1]} : split[0];\n }\n\n // Store $id to identify the triggering element in events\n // give priority to options.id, otherwise, try to use\n // element id if defined\n $tooltip.$id = options.id || element.attr('id') || '';\n\n // Support scope as string options\n if(options.title) {\n scope.title = $sce.trustAsHtml(options.title);\n }\n\n // Provide scope helpers\n scope.$setEnabled = function(isEnabled) {\n scope.$$postDigest(function() {\n $tooltip.setEnabled(isEnabled);\n });\n };\n scope.$hide = function() {\n scope.$$postDigest(function() {\n $tooltip.hide();\n });\n };\n scope.$show = function() {\n scope.$$postDigest(function() {\n $tooltip.show();\n });\n };\n scope.$toggle = function() {\n scope.$$postDigest(function() {\n $tooltip.toggle();\n });\n };\n // Publish isShown as a protected var on scope\n $tooltip.$isShown = scope.$isShown = false;\n\n // Private vars\n var timeout, hoverState;\n\n // Fetch, compile then initialize tooltip\n var compileData, tipElement, tipContainer, tipScope;\n promise.then(function(data) {\n compileData = data;\n $tooltip.init();\n });\n\n $tooltip.init = function() {\n\n // Options: delay\n if (options.delay && angular.isNumber(options.delay)) {\n options.delay = {\n show: options.delay,\n hide: options.delay\n };\n }\n\n // Replace trigger on touch devices ?\n // if(isTouch && options.trigger === defaults.trigger) {\n // options.trigger.replace(/hover/g, 'click');\n // }\n\n // Options : container\n if(options.container === 'self') {\n tipContainer = element;\n } else if(angular.isElement(options.container)) {\n tipContainer = options.container;\n } else if(options.container) {\n tipContainer = findElement(options.container);\n }\n\n // Options: trigger\n bindTriggerEvents();\n\n // Options: target\n if(options.target) {\n options.target = angular.isElement(options.target) ? options.target : findElement(options.target);\n }\n\n // Options: show\n if(options.show) {\n scope.$$postDigest(function() {\n options.trigger === 'focus' ? element[0].focus() : $tooltip.show();\n });\n }\n\n };\n\n $tooltip.destroy = function() {\n\n // Unbind events\n unbindTriggerEvents();\n\n // Remove element\n destroyTipElement();\n\n // Destroy scope\n scope.$destroy();\n\n };\n\n $tooltip.enter = function() {\n\n clearTimeout(timeout);\n hoverState = 'in';\n if (!options.delay || !options.delay.show) {\n return $tooltip.show();\n }\n\n timeout = setTimeout(function() {\n if (hoverState ==='in') $tooltip.show();\n }, options.delay.show);\n\n };\n\n $tooltip.show = function() {\n if (!options.bsEnabled || $tooltip.$isShown) return;\n\n scope.$emit(options.prefixEvent + '.show.before', $tooltip);\n var parent, after;\n if (options.container) {\n parent = tipContainer;\n if (tipContainer[0].lastChild) {\n after = angular.element(tipContainer[0].lastChild);\n } else {\n after = null;\n }\n } else {\n parent = null;\n after = element;\n }\n\n\n // Hide any existing tipElement\n if(tipElement) destroyTipElement();\n // Fetch a cloned element linked from template\n tipScope = $tooltip.$scope.$new();\n tipElement = $tooltip.$element = compileData.link(tipScope, function(clonedElement, scope) {});\n\n // Set the initial positioning. Make the tooltip invisible\n // so IE doesn't try to focus on it off screen.\n tipElement.css({top: '-9999px', left: '-9999px', right: 'auto', display: 'block', visibility: 'hidden'});\n\n // Options: animation\n if(options.animation) tipElement.addClass(options.animation);\n // Options: type\n if(options.type) tipElement.addClass(options.prefixClass + '-' + options.type);\n // Options: custom classes\n if(options.customClass) tipElement.addClass(options.customClass);\n\n // Append the element, without any animations. If we append\n // using $animate.enter, some of the animations cause the placement\n // to be off due to the transforms.\n after ? after.after(tipElement) : parent.prepend(tipElement);\n\n $tooltip.$isShown = scope.$isShown = true;\n safeDigest(scope);\n\n // Now, apply placement\n $tooltip.$applyPlacement();\n\n // Once placed, animate it.\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.enter(tipElement, parent, after, enterAnimateCallback);\n } else {\n $animate.enter(tipElement, parent, after).then(enterAnimateCallback);\n }\n safeDigest(scope);\n\n $$rAF(function () {\n // Once the tooltip is placed and the animation starts, make the tooltip visible\n if(tipElement) tipElement.css({visibility: 'visible'});\n });\n\n // Bind events\n if(options.keyboard) {\n if(options.trigger !== 'focus') {\n $tooltip.focus();\n }\n bindKeyboardEvents();\n }\n\n if(options.autoClose) {\n bindAutoCloseEvents();\n }\n\n };\n\n function enterAnimateCallback() {\n scope.$emit(options.prefixEvent + '.show', $tooltip);\n }\n\n $tooltip.leave = function() {\n\n clearTimeout(timeout);\n hoverState = 'out';\n if (!options.delay || !options.delay.hide) {\n return $tooltip.hide();\n }\n timeout = setTimeout(function () {\n if (hoverState === 'out') {\n $tooltip.hide();\n }\n }, options.delay.hide);\n\n };\n\n var _blur;\n var _tipToHide;\n $tooltip.hide = function(blur) {\n\n if(!$tooltip.$isShown) return;\n scope.$emit(options.prefixEvent + '.hide.before', $tooltip);\n\n // store blur value for leaveAnimateCallback to use\n _blur = blur;\n\n // store current tipElement reference to use\n // in leaveAnimateCallback\n _tipToHide = tipElement;\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.leave(tipElement, leaveAnimateCallback);\n } else {\n $animate.leave(tipElement).then(leaveAnimateCallback);\n }\n\n $tooltip.$isShown = scope.$isShown = false;\n safeDigest(scope);\n\n // Unbind events\n if(options.keyboard && tipElement !== null) {\n unbindKeyboardEvents();\n }\n\n if(options.autoClose && tipElement !== null) {\n unbindAutoCloseEvents();\n }\n };\n\n function leaveAnimateCallback() {\n scope.$emit(options.prefixEvent + '.hide', $tooltip);\n\n // check if current tipElement still references\n // the same element when hide was called\n if (tipElement === _tipToHide) {\n // Allow to blur the input when hidden, like when pressing enter key\n if(_blur && options.trigger === 'focus') {\n return element[0].blur();\n }\n\n // clean up child scopes\n destroyTipElement();\n }\n }\n\n $tooltip.toggle = function() {\n $tooltip.$isShown ? $tooltip.leave() : $tooltip.enter();\n };\n\n $tooltip.focus = function() {\n tipElement[0].focus();\n };\n\n $tooltip.setEnabled = function(isEnabled) {\n options.bsEnabled = isEnabled;\n };\n\n $tooltip.setViewport = function(viewport) {\n options.viewport = viewport;\n };\n\n // Protected methods\n\n $tooltip.$applyPlacement = function() {\n if(!tipElement) return;\n\n // Determine if we're doing an auto or normal placement\n var placement = options.placement,\n autoToken = /\\s?auto?\\s?/i,\n autoPlace = autoToken.test(placement);\n\n if (autoPlace) {\n placement = placement.replace(autoToken, '') || defaults.placement;\n }\n\n // Need to add the position class before we get\n // the offsets\n tipElement.addClass(options.placement);\n\n // Get the position of the target element\n // and the height and width of the tooltip so we can center it.\n var elementPosition = getPosition(),\n tipWidth = tipElement.prop('offsetWidth'),\n tipHeight = tipElement.prop('offsetHeight');\n\n // Refresh viewport position\n $tooltip.$viewport = options.viewport && findElement(options.viewport.selector || options.viewport);\n\n // If we're auto placing, we need to check the positioning\n if (autoPlace) {\n var originalPlacement = placement;\n var viewportPosition = getPosition($tooltip.$viewport);\n\n // Determine if the vertical placement\n if (originalPlacement.indexOf('bottom') >= 0 && elementPosition.bottom + tipHeight > viewportPosition.bottom) {\n placement = originalPlacement.replace('bottom', 'top');\n } else if (originalPlacement.indexOf('top') >= 0 && elementPosition.top - tipHeight < viewportPosition.top) {\n placement = originalPlacement.replace('top', 'bottom');\n }\n\n // Determine the horizontal placement\n // The exotic placements of left and right are opposite of the standard placements. Their arrows are put on the left/right\n // and flow in the opposite direction of their placement.\n if ((originalPlacement === 'right' || originalPlacement === 'bottom-left' || originalPlacement === 'top-left') &&\n elementPosition.right + tipWidth > viewportPosition.width) {\n\n placement = originalPlacement === 'right' ? 'left' : placement.replace('left', 'right');\n } else if ((originalPlacement === 'left' || originalPlacement === 'bottom-right' || originalPlacement === 'top-right') &&\n elementPosition.left - tipWidth < viewportPosition.left) {\n\n placement = originalPlacement === 'left' ? 'right' : placement.replace('right', 'left');\n }\n\n tipElement.removeClass(originalPlacement).addClass(placement);\n }\n\n // Get the tooltip's top and left coordinates to center it with this directive.\n var tipPosition = getCalculatedOffset(placement, elementPosition, tipWidth, tipHeight);\n applyPlacement(tipPosition, placement);\n };\n\n $tooltip.$onKeyUp = function(evt) {\n if (evt.which === 27 && $tooltip.$isShown) {\n $tooltip.hide();\n evt.stopPropagation();\n }\n };\n\n $tooltip.$onFocusKeyUp = function(evt) {\n if (evt.which === 27) {\n element[0].blur();\n evt.stopPropagation();\n }\n };\n\n $tooltip.$onFocusElementMouseDown = function(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n // Some browsers do not auto-focus buttons (eg. Safari)\n $tooltip.$isShown ? element[0].blur() : element[0].focus();\n };\n\n // bind/unbind events\n function bindTriggerEvents() {\n var triggers = options.trigger.split(' ');\n angular.forEach(triggers, function(trigger) {\n if(trigger === 'click') {\n element.on('click', $tooltip.toggle);\n } else if(trigger !== 'manual') {\n element.on(trigger === 'hover' ? 'mouseenter' : 'focus', $tooltip.enter);\n element.on(trigger === 'hover' ? 'mouseleave' : 'blur', $tooltip.leave);\n nodeName === 'button' && trigger !== 'hover' && element.on(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);\n }\n });\n }\n\n function unbindTriggerEvents() {\n var triggers = options.trigger.split(' ');\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i];\n if(trigger === 'click') {\n element.off('click', $tooltip.toggle);\n } else if(trigger !== 'manual') {\n element.off(trigger === 'hover' ? 'mouseenter' : 'focus', $tooltip.enter);\n element.off(trigger === 'hover' ? 'mouseleave' : 'blur', $tooltip.leave);\n nodeName === 'button' && trigger !== 'hover' && element.off(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);\n }\n }\n }\n\n function bindKeyboardEvents() {\n if(options.trigger !== 'focus') {\n tipElement.on('keyup', $tooltip.$onKeyUp);\n } else {\n element.on('keyup', $tooltip.$onFocusKeyUp);\n }\n }\n\n function unbindKeyboardEvents() {\n if(options.trigger !== 'focus') {\n tipElement.off('keyup', $tooltip.$onKeyUp);\n } else {\n element.off('keyup', $tooltip.$onFocusKeyUp);\n }\n }\n\n var _autoCloseEventsBinded = false;\n function bindAutoCloseEvents() {\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n // Stop propagation when clicking inside tooltip\n tipElement.on('click', stopEventPropagation);\n\n // Hide when clicking outside tooltip\n $body.on('click', $tooltip.hide);\n\n _autoCloseEventsBinded = true;\n }, 0, false);\n }\n\n function unbindAutoCloseEvents() {\n if (_autoCloseEventsBinded) {\n tipElement.off('click', stopEventPropagation);\n $body.off('click', $tooltip.hide);\n _autoCloseEventsBinded = false;\n }\n }\n\n function stopEventPropagation(event) {\n event.stopPropagation();\n }\n\n // Private methods\n\n function getPosition($element) {\n $element = $element || (options.target || element);\n\n var el = $element[0],\n isBody = el.tagName === 'BODY';\n\n var elRect = el.getBoundingClientRect();\n var rect = {};\n\n // IE8 has issues with angular.extend and using elRect directly.\n // By coping the values of elRect into a new object, we can continue to use extend\n for (var p in elRect) {\n // DO NOT use hasOwnProperty when inspecting the return of getBoundingClientRect.\n rect[p] = elRect[p];\n }\n\n if (rect.width === null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n rect = angular.extend({}, rect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top });\n }\n var elOffset = isBody ? { top: 0, left: 0 } : dimensions.offset(el),\n scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.prop('scrollTop') || 0 },\n outerDims = isBody ? { width: document.documentElement.clientWidth, height: $window.innerHeight } : null;\n\n return angular.extend({}, rect, scroll, outerDims, elOffset);\n }\n\n function getCalculatedOffset(placement, position, actualWidth, actualHeight) {\n var offset;\n var split = placement.split('-');\n\n switch (split[0]) {\n case 'right':\n offset = {\n top: position.top + position.height / 2 - actualHeight / 2,\n left: position.left + position.width\n };\n break;\n case 'bottom':\n offset = {\n top: position.top + position.height,\n left: position.left + position.width / 2 - actualWidth / 2\n };\n break;\n case 'left':\n offset = {\n top: position.top + position.height / 2 - actualHeight / 2,\n left: position.left - actualWidth\n };\n break;\n default:\n offset = {\n top: position.top - actualHeight,\n left: position.left + position.width / 2 - actualWidth / 2\n };\n break;\n }\n\n if(!split[1]) {\n return offset;\n }\n\n // Add support for corners @todo css\n if(split[0] === 'top' || split[0] === 'bottom') {\n switch (split[1]) {\n case 'left':\n offset.left = position.left;\n break;\n case 'right':\n offset.left = position.left + position.width - actualWidth;\n }\n } else if(split[0] === 'left' || split[0] === 'right') {\n switch (split[1]) {\n case 'top':\n offset.top = position.top - actualHeight;\n break;\n case 'bottom':\n offset.top = position.top + position.height;\n }\n }\n\n return offset;\n }\n\n function applyPlacement(offset, placement) {\n var tip = tipElement[0],\n width = tip.offsetWidth,\n height = tip.offsetHeight;\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt(dimensions.css(tip, 'margin-top'), 10),\n marginLeft = parseInt(dimensions.css(tip, 'margin-left'), 10);\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0;\n if (isNaN(marginLeft)) marginLeft = 0;\n\n offset.top = offset.top + marginTop;\n offset.left = offset.left + marginLeft;\n\n // dimensions setOffset doesn't round pixel values\n // so we use setOffset directly with our own function\n dimensions.setOffset(tip, angular.extend({\n using: function (props) {\n tipElement.css({\n top: Math.round(props.top) + 'px',\n left: Math.round(props.left) + 'px',\n right: ''\n });\n }\n }, offset), 0);\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = tip.offsetWidth,\n actualHeight = tip.offsetHeight;\n\n if (placement === 'top' && actualHeight !== height) {\n offset.top = offset.top + height - actualHeight;\n }\n\n // If it's an exotic placement, exit now instead of\n // applying a delta and changing the arrow\n if (/top-left|top-right|bottom-left|bottom-right/.test(placement)) return;\n\n var delta = getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight);\n\n if (delta.left) {\n offset.left += delta.left;\n } else {\n offset.top += delta.top;\n }\n\n dimensions.setOffset(tip, offset);\n\n if (/top|right|bottom|left/.test(placement)) {\n var isVertical = /top|bottom/.test(placement),\n arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight,\n arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight';\n\n replaceArrow(arrowDelta, tip[arrowOffsetPosition], isVertical);\n }\n }\n\n // @source https://github.com/twbs/bootstrap/blob/v3.3.5/js/tooltip.js#L380\n function getViewportAdjustedDelta(placement, position, actualWidth, actualHeight) {\n var delta = {top: 0, left: 0};\n if (!$tooltip.$viewport) return delta;\n\n var viewportPadding = options.viewport && options.viewport.padding || 0;\n var viewportDimensions = getPosition($tooltip.$viewport);\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = position.top - viewportPadding - viewportDimensions.scroll;\n var bottomEdgeOffset = position.top + viewportPadding - viewportDimensions.scroll + actualHeight;\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset;\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset;\n }\n } else {\n var leftEdgeOffset = position.left - viewportPadding;\n var rightEdgeOffset = position.left + viewportPadding + actualWidth;\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset;\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset;\n }\n }\n\n return delta;\n }\n\n function replaceArrow(delta, dimension, isHorizontal) {\n var $arrow = findElement('.tooltip-arrow, .arrow', tipElement[0]);\n\n $arrow.css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isHorizontal ? 'top' : 'left', '');\n }\n\n function destroyTipElement() {\n // Cancel pending callbacks\n clearTimeout(timeout);\n\n if($tooltip.$isShown && tipElement !== null) {\n if(options.autoClose) {\n unbindAutoCloseEvents();\n }\n\n if(options.keyboard) {\n unbindKeyboardEvents();\n }\n }\n\n if(tipScope) {\n tipScope.$destroy();\n tipScope = null;\n }\n\n if(tipElement) {\n tipElement.remove();\n tipElement = $tooltip.$element = null;\n }\n }\n\n return $tooltip;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n var fetchPromises = {};\n function fetchTemplate(template) {\n if(fetchPromises[template]) return fetchPromises[template];\n return (fetchPromises[template] = $http.get(template, {cache: $templateCache}).then(function(res) {\n return res.data;\n }));\n }\n\n return TooltipFactory;\n\n };\n\n })\n\n .directive('bsTooltip', function($window, $location, $sce, $tooltip, $$rAF) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'backdropAnimation', 'type', 'customClass', 'id'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // should not parse target attribute (anchor tag), only data-target #1454\n var dataTarget = element.attr('data-target');\n if(angular.isDefined(dataTarget)) {\n if(falseValueRegExp.test(dataTarget))\n options.target = false;\n else\n options.target = dataTarget;\n }\n\n // overwrite inherited title value when no value specified\n // fix for angular 1.3.1 531a8de72c439d8ddd064874bf364c00cedabb11\n if (!scope.hasOwnProperty('title')){\n scope.title = '';\n }\n\n // Observe scope attributes for change\n attr.$observe('title', function(newValue) {\n if (angular.isDefined(newValue) || !scope.hasOwnProperty('title')) {\n var oldValue = scope.title;\n scope.title = $sce.trustAsHtml(newValue);\n angular.isDefined(oldValue) && $$rAF(function() {\n tooltip && tooltip.$applyPlacement();\n });\n }\n });\n\n // Support scope as an object\n attr.bsTooltip && scope.$watch(attr.bsTooltip, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.title = newValue;\n }\n angular.isDefined(oldValue) && $$rAF(function() {\n tooltip && tooltip.$applyPlacement();\n });\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!tooltip || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(tooltip),?/i);\n newValue === true ? tooltip.show() : tooltip.hide();\n });\n\n // Enabled binding support\n attr.bsEnabled && scope.$watch(attr.bsEnabled, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.bsEnabled, newValue, oldValue);\n if(!tooltip || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|1|,?(tooltip),?/i);\n newValue === false ? tooltip.setEnabled(false) : tooltip.setEnabled(true);\n });\n\n // Viewport support\n attr.viewport && scope.$watch(attr.viewport, function (newValue) {\n if(!tooltip || !angular.isDefined(newValue)) return;\n tooltip.setViewport(newValue);\n });\n\n // Initialize popover\n var tooltip = $tooltip(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if(tooltip) tooltip.destroy();\n options = null;\n tooltip = null;\n });\n\n }\n };\n\n });\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/dist/public/lib/js/angular-strap.tpl.min.js b/dist/public/lib/js/angular-strap.tpl.min.js index 9170ba70..8b97e418 100644 --- a/dist/public/lib/js/angular-strap.tpl.min.js +++ b/dist/public/lib/js/angular-strap.tpl.min.js @@ -1,8 +1,8 @@ /** * angular-strap - * @version v2.3.0 - 2015-07-12 + * @version v2.3.1 - 2015-07-19 * @link http://mgcrea.github.io/angular-strap * @author Olivier Louvignes (https://github.com/mgcrea) * @license MIT License, http://www.opensource.org/licenses/MIT */ -!function(t,e,n){'use strict';angular.module('mgcrea.ngStrap.alert').run(['$templateCache',function(t){t.put('alert/alert.tpl.html','
 
')}]),angular.module('mgcrea.ngStrap.aside').run(['$templateCache',function(t){t.put('aside/aside.tpl.html','')}]),angular.module('mgcrea.ngStrap.datepicker').run(['$templateCache',function(t){t.put('datepicker/datepicker.tpl.html','')}]),angular.module('mgcrea.ngStrap.dropdown').run(['$templateCache',function(t){t.put('dropdown/dropdown.tpl.html','')}]),angular.module('mgcrea.ngStrap.modal').run(['$templateCache',function(t){t.put('modal/modal.tpl.html','')}]),angular.module('mgcrea.ngStrap.select').run(['$templateCache',function(t){t.put('select/select.tpl.html','')}]),angular.module('mgcrea.ngStrap.popover').run(['$templateCache',function(t){t.put('popover/popover.tpl.html','

')}]),angular.module('mgcrea.ngStrap.tab').run(['$templateCache',function(t){t.put('tab/tab.tpl.html','
')}]),angular.module('mgcrea.ngStrap.tooltip').run(['$templateCache',function(t){t.put('tooltip/tooltip.tpl.html','
')}]),angular.module('mgcrea.ngStrap.timepicker').run(['$templateCache',function(t){t.put('timepicker/timepicker.tpl.html','')}]),angular.module('mgcrea.ngStrap.typeahead').run(['$templateCache',function(t){t.put('typeahead/typeahead.tpl.html','')}])}(window,document); \ No newline at end of file +!function(t,e,n){'use strict';angular.module('mgcrea.ngStrap.alert').run(['$templateCache',function(t){t.put('alert/alert.tpl.html','
 
')}]),angular.module('mgcrea.ngStrap.aside').run(['$templateCache',function(t){t.put('aside/aside.tpl.html','')}]),angular.module('mgcrea.ngStrap.datepicker').run(['$templateCache',function(t){t.put('datepicker/datepicker.tpl.html','')}]),angular.module('mgcrea.ngStrap.dropdown').run(['$templateCache',function(t){t.put('dropdown/dropdown.tpl.html','')}]),angular.module('mgcrea.ngStrap.modal').run(['$templateCache',function(t){t.put('modal/modal.tpl.html','')}]),angular.module('mgcrea.ngStrap.popover').run(['$templateCache',function(t){t.put('popover/popover.tpl.html','

')}]),angular.module('mgcrea.ngStrap.select').run(['$templateCache',function(t){t.put('select/select.tpl.html','')}]),angular.module('mgcrea.ngStrap.timepicker').run(['$templateCache',function(t){t.put('timepicker/timepicker.tpl.html','')}]),angular.module('mgcrea.ngStrap.tab').run(['$templateCache',function(t){t.put('tab/tab.tpl.html','
')}]),angular.module('mgcrea.ngStrap.typeahead').run(['$templateCache',function(t){t.put('typeahead/typeahead.tpl.html','')}]),angular.module('mgcrea.ngStrap.tooltip').run(['$templateCache',function(t){t.put('tooltip/tooltip.tpl.html','
')}])}(window,document); \ No newline at end of file diff --git a/dist/public/lib/js/angular.min.js b/dist/public/lib/js/angular.min.js index ba809740..0cf4b172 100644 --- a/dist/public/lib/js/angular.min.js +++ b/dist/public/lib/js/angular.min.js @@ -1,252 +1,293 @@ /* - AngularJS v1.3.16 - (c) 2010-2014 Google, Inc. http://angularjs.org + AngularJS v1.4.5 + (c) 2010-2015 Google, Inc. http://angularjs.org License: MIT */ -(function(T,V,s){'use strict';function F(b){return function(){var a=arguments[0],c;c="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.3.16/"+(b?b+"/":"")+a;for(a=1;a").append(b).html();try{return b[0].nodeType===ab?L(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+L(b)})}catch(d){return L(c)}}function uc(b){try{return decodeURIComponent(b)}catch(a){}} -function vc(b){var a={},c,d;q((b||"").split("&"),function(b){b&&(c=b.replace(/\+/g,"%20").split("="),d=uc(c[0]),y(d)&&(b=y(c[1])?uc(c[1]):!0,wc.call(a,d)?w(a[d])?a[d].push(b):a[d]=[a[d],b]:a[d]=b))});return a}function Qb(b){var a=[];q(b,function(b,d){w(b)?q(b,function(b){a.push(Ca(d,!0)+(!0===b?"":"="+Ca(b,!0)))}):a.push(Ca(d,!0)+(!0===b?"":"="+Ca(b,!0)))});return a.length?a.join("&"):""}function sb(b){return Ca(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function Ca(b,a){return encodeURIComponent(b).replace(/%40/gi, -"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,a?"%20":"+")}function Nd(b,a){var c,d,e=tb.length;b=z(b);for(d=0;d/,">"));}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);c.debugInfoEnabled&&a.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);a.unshift("ng");d=bb(a,c.strictDi);d.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector", -d);c(b)(a)})}]);return d},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;T&&e.test(T.name)&&(c.debugInfoEnabled=!0,T.name=T.name.replace(e,""));if(T&&!f.test(T.name))return d();T.name=T.name.replace(f,"");ba.resumeBootstrap=function(b){q(b,function(b){a.push(b)});return d()};E(ba.resumeDeferredBootstrap)&&ba.resumeDeferredBootstrap()}function Pd(){T.name="NG_ENABLE_DEBUG_INFO!"+T.name;T.location.reload()}function Qd(b){b=ba.element(b).injector();if(!b)throw Ja("test");return b.get("$$testability")} -function yc(b,a){a=a||"_";return b.replace(Rd,function(b,d){return(d?a:"")+b.toLowerCase()})}function Sd(){var b;zc||((pa=T.jQuery)&&pa.fn.on?(z=pa,x(pa.fn,{scope:Ka.scope,isolateScope:Ka.isolateScope,controller:Ka.controller,injector:Ka.injector,inheritedData:Ka.inheritedData}),b=pa.cleanData,pa.cleanData=function(a){var c;if(Rb)Rb=!1;else for(var d=0,e;null!=(e=a[d]);d++)(c=pa._data(e,"events"))&&c.$destroy&&pa(e).triggerHandler("$destroy");b(a)}):z=R,ba.element=z,zc=!0)}function Sb(b,a,c){if(!b)throw Ja("areq", -a||"?",c||"required");return b}function La(b,a,c){c&&w(b)&&(b=b[b.length-1]);Sb(E(b),a,"not a function, got "+(b&&"object"===typeof b?b.constructor.name||"Object":typeof b));return b}function Ma(b,a){if("hasOwnProperty"===b)throw Ja("badname",a);}function Ac(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,g=0;g")+d[2];for(d=d[0];d--;)c=c.lastChild;f=Ya(f,c.childNodes);c=e.firstChild;c.textContent=""}else f.push(a.createTextNode(b));e.textContent="";e.innerHTML="";q(f,function(a){e.appendChild(a)}); -return e}function R(b){if(b instanceof R)return b;var a;O(b)&&(b=U(b),a=!0);if(!(this instanceof R)){if(a&&"<"!=b.charAt(0))throw Ub("nosel");return new R(b)}if(a){a=V;var c;b=(c=mf.exec(b))?[a.createElement(c[1])]:(c=Kc(b,a))?c.childNodes:[]}Lc(this,b)}function Vb(b){return b.cloneNode(!0)}function xb(b,a){a||yb(b);if(b.querySelectorAll)for(var c=b.querySelectorAll("*"),d=0,e=c.length;d 4096 bytes)!"));else{if(r.cookie!==y)for(y=r.cookie,d=y.split("; "),Fa={},f=0;fk&&this.remove(n.key),b},get:function(a){if(k").parent()[0])});var f=Y(a,b,a,c,d,e);N.$$addScopeClass(a);var g=null;return function(b,c,d){Sb(b,"scope");d=d||{};var e=d.parentBoundTranscludeFn,h=d.transcludeControllers;d=d.futureParentElement;e&&e.$$boundTransclude&&(e=e.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==sa(d)&&d.toString().match(/SVG/)?"svg":"html":"html");d="html"!==g?z(T(g,z("
").append(a).html())):c?Ka.clone.call(a):a;if(h)for(var l in h)d.data("$"+l+"Controller",h[l].instance);N.$$addScopeInfo(d, -b);c&&c(d,b);f&&f(b,d,d,e);return d}}function Y(a,b,c,d,e,f){function g(a,c,d,e){var f,l,k,n,m,v,u;if(p)for(u=Array(c.length),n=0;nK.priority)break;if(F=K.scope)K.templateUrl||(I(F)?(Oa("new/isolated scope",J||G,K,x),J=K):Oa("new/isolated scope",J,K,x)),G=G||K;ia=K.name;!K.templateUrl&&K.controller&&(F=K.controller,H=H||{},Oa("'"+ia+"' controller",H[ia],K,x),H[ia]=K);if(F=K.transclude)C=!0,K.$$tlb||(Oa("transclusion",Ga,K,x),Ga=K), -"element"==F?(A=!0,D=K.priority,F=x,x=e.$$element=z(V.createComment(" "+ia+": "+e[ia]+" ")),d=x[0],Q(g,Za.call(F,0),d),gb=N(F,f,D,h&&h.name,{nonTlbTranscludeDirective:Ga})):(F=z(Vb(d)).contents(),x.empty(),gb=N(F,f));if(K.template)if(Yb=!0,Oa("template",Y,K,x),Y=K,F=E(K.template)?K.template(x,e):K.template,F=Yc(F),K.replace){h=K;F=Tb.test(F)?Zc(T(K.templateNamespace,U(F))):[];d=F[0];if(1!=F.length||d.nodeType!==ma)throw da("tplrt",ia,"");Q(g,x,d);L={$attr:{}};F=W(d,[],L);var tf=a.splice(qa+1,a.length- -(qa+1));J&&hb(F);a=a.concat(F).concat(tf);Vc(e,L);L=a.length}else x.html(F);if(K.templateUrl)Yb=!0,Oa("template",Y,K,x),Y=K,K.replace&&(h=K),M=Xb(a.splice(qa,a.length-qa),x,e,g,C&&gb,k,n,{controllerDirectives:H,newIsolateScopeDirective:J,templateDirective:Y,nonTlbTranscludeDirective:Ga}),L=a.length;else if(K.compile)try{xa=K.compile(x,e,gb),E(xa)?B(null,xa,R,jb):xa&&B(xa.pre,xa.post,R,jb)}catch(ac){c(ac,ta(x))}K.terminal&&(M.terminal=!0,D=Math.max(D,K.priority))}M.scope=G&&!0===G.scope;M.transcludeOnThisElement= -C;M.elementTranscludeOnThisElement=A;M.templateOnThisElement=Yb;M.transclude=gb;m.hasElementTranscludeDirective=A;return M}function hb(a){for(var b=0,c=a.length;bm.priority)&&-1!=m.restrict.indexOf(f)&&(k&&(m=Pb(m,{$$start:k,$$end:l})),b.push(m),h=m)}catch(u){c(u)}}return h}function F(b){if(e.hasOwnProperty(b))for(var c= -a.get(b+"Directive"),d=0,f=c.length;d"+b+"";return c.childNodes[0].childNodes;default:return b}}function jb(a,b){if("srcdoc"==b)return B.HTML;var c=sa(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b))return B.RESOURCE_URL}function R(a,c,d,e,f){var g=jb(a,e);f=h[e]||f;var l=b(d,!0,g,f);if(l){if("multiple"===e&&"select"===sa(a))throw da("selmulti",ta(a));c.push({priority:100,compile:function(){return{pre:function(a,c,h){c=h.$$observers||(h.$$observers={});if(k.test(e))throw da("nodomevents"); -var n=h[e];n!==d&&(l=n&&b(n,!0,g,f),d=n);l&&(h[e]=l(a),(c[e]||(c[e]=[])).$$inter=!0,(h.$$observers&&h.$$observers[e].$$scope||a).$watch(l,function(a,b){"class"===e&&a!=b?h.$updateClass(a,b):h.$set(e,a)}))}}}})}}function Q(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g=a)return b;for(;a--;)8===b[a].nodeType&&uf.call(b,a,1);return b}function Ke(){var b= -{},a=!1,c=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(a,c){Ma(a,"controller");I(a)?x(b,a):b[a]=c};this.allowGlobals=function(){a=!0};this.$get=["$injector","$window",function(d,e){function f(a,b,c,d){if(!a||!I(a.$scope))throw F("$controller")("noscp",d,b);a.$scope[b]=c}return function(g,h,l,k){var m,r,n;l=!0===l;k&&O(k)&&(n=k);if(O(g)){k=g.match(c);if(!k)throw vf("ctrlfmt",g);r=k[1];n=n||k[3];g=b.hasOwnProperty(r)?b[r]:Ac(h.$scope,r,!0)||(a?Ac(e,r,!0):s);La(g,r,!0)}if(l)return l=(w(g)?g[g.length- -1]:g).prototype,m=Object.create(l||null),n&&f(h,n,m,r||g.name),x(function(){d.invoke(g,m,h,r);return m},{instance:m,identifier:n});m=d.instantiate(g,h,r);n&&f(h,n,m,r||g.name);return m}}]}function Le(){this.$get=["$window",function(b){return z(b.document)}]}function Me(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b,arguments)}}]}function bc(b,a){if(O(b)){var c=b.replace(wf,"").trim();if(c){var d=a("Content-Type");(d=d&&0===d.indexOf(ad))||(d=(d=c.match(xf))&&yf[d[0]].test(c)); -d&&(b=tc(c))}}return b}function bd(b){var a=ga(),c,d,e;if(!b)return a;q(b.split("\n"),function(b){e=b.indexOf(":");c=L(U(b.substr(0,e)));d=U(b.substr(e+1));c&&(a[c]=a[c]?a[c]+", "+d:d)});return a}function cd(b){var a=I(b)?b:s;return function(c){a||(a=bd(b));return c?(c=a[L(c)],void 0===c&&(c=null),c):a}}function dd(b,a,c,d){if(E(d))return d(b,a,c);q(d,function(d){b=d(b,a,c)});return b}function Pe(){var b=this.defaults={transformResponse:[bc],transformRequest:[function(a){return I(a)&&"[object File]"!== -Aa.call(a)&&"[object Blob]"!==Aa.call(a)&&"[object FormData]"!==Aa.call(a)?$a(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:oa(cc),put:oa(cc),patch:oa(cc)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},a=!1;this.useApplyAsync=function(b){return y(b)?(a=!!b,this):a};var c=this.interceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(d,e,f,g,h,l){function k(a){function c(a){var b=x({},a);b.data=a.data?dd(a.data, -a.headers,a.status,e.transformResponse):a.data;a=a.status;return 200<=a&&300>a?b:h.reject(b)}function d(a){var b,c={};q(a,function(a,d){E(a)?(b=a(),null!=b&&(c[d]=b)):c[d]=a});return c}if(!ba.isObject(a))throw F("$http")("badreq",a);var e=x({method:"get",transformRequest:b.transformRequest,transformResponse:b.transformResponse},a);e.headers=function(a){var c=b.headers,e=x({},a.headers),f,g,c=x({},c.common,c[L(a.method)]);a:for(f in c){a=L(f);for(g in e)if(L(g)===a)continue a;e[f]=c[f]}return d(e)}(a); -e.method=vb(e.method);var f=[function(a){var d=a.headers,e=dd(a.data,cd(d),s,a.transformRequest);C(e)&&q(d,function(a,b){"content-type"===L(b)&&delete d[b]});C(a.withCredentials)&&!C(b.withCredentials)&&(a.withCredentials=b.withCredentials);return m(a,e).then(c,c)},s],g=h.when(e);for(q(u,function(a){(a.request||a.requestError)&&f.unshift(a.request,a.requestError);(a.response||a.responseError)&&f.push(a.response,a.responseError)});f.length;){a=f.shift();var l=f.shift(),g=g.then(a,l)}g.success=function(a){La(a, -"fn");g.then(function(b){a(b.data,b.status,b.headers,e)});return g};g.error=function(a){La(a,"fn");g.then(null,function(b){a(b.data,b.status,b.headers,e)});return g};return g}function m(c,f){function l(b,c,d,e){function f(){m(c,b,d,e)}D&&(200<=b&&300>b?D.put(q,[b,c,bd(d),e]):D.remove(q));a?g.$applyAsync(f):(f(),g.$$phase||g.$apply())}function m(a,b,d,e){b=Math.max(b,0);(200<=b&&300>b?B.resolve:B.reject)({data:a,status:b,headers:cd(d),config:c,statusText:e})}function u(a){m(a.data,a.status,oa(a.headers()), -a.statusText)}function J(){var a=k.pendingRequests.indexOf(c);-1!==a&&k.pendingRequests.splice(a,1)}var B=h.defer(),M=B.promise,D,G,N=c.headers,q=r(c.url,c.params);k.pendingRequests.push(c);M.then(J,J);!c.cache&&!b.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(D=I(c.cache)?c.cache:I(b.cache)?b.cache:n);D&&(G=D.get(q),y(G)?G&&E(G.then)?G.then(u,u):w(G)?m(G[1],G[0],oa(G[2]),G[3]):m(G,200,{},"OK"):D.put(q,M));C(G)&&((G=ed(c.url)?e.cookies()[c.xsrfCookieName||b.xsrfCookieName]:s)&&(N[c.xsrfHeaderName|| -b.xsrfHeaderName]=G),d(c.method,q,f,l,N,c.timeout,c.withCredentials,c.responseType));return M}function r(a,b){if(!b)return a;var c=[];Jd(b,function(a,b){null===a||C(a)||(w(a)||(a=[a]),q(a,function(a){I(a)&&(a=ea(a)?a.toISOString():$a(a));c.push(Ca(b)+"="+Ca(a))}))});0=l&&(v.resolve(n),r(P.$$intervalId),delete f[P.$$intervalId]);u||b.$apply()},h);f[P.$$intervalId]=v;return P}var f={}; -e.cancel=function(b){return b&&b.$$intervalId in f?(f[b.$$intervalId].reject("canceled"),a.clearInterval(b.$$intervalId),delete f[b.$$intervalId],!0):!1};return e}]}function Wd(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"\u00a4",posSuf:"",negPre:"(\u00a4",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January February March April May June July August September October November December".split(" "), -SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a",ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"]},pluralCat:function(b){return 1===b?"one":"other"}}}} -function ec(b){b=b.split("/");for(var a=b.length;a--;)b[a]=sb(b[a]);return b.join("/")}function fd(b,a){var c=ya(b);a.$$protocol=c.protocol;a.$$host=c.hostname;a.$$port=aa(c.port)||Bf[c.protocol]||null}function gd(b,a){var c="/"!==b.charAt(0);c&&(b="/"+b);var d=ya(b);a.$$path=decodeURIComponent(c&&"/"===d.pathname.charAt(0)?d.pathname.substring(1):d.pathname);a.$$search=vc(d.search);a.$$hash=decodeURIComponent(d.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function wa(b,a){if(0=== -a.indexOf(b))return a.substr(b.length)}function Ea(b){var a=b.indexOf("#");return-1==a?b:b.substr(0,a)}function Gb(b){return b.replace(/(#.+)|#$/,"$1")}function fc(b){return b.substr(0,Ea(b).lastIndexOf("/")+1)}function gc(b,a){this.$$html5=!0;a=a||"";var c=fc(b);fd(b,this);this.$$parse=function(a){var b=wa(c,a);if(!O(b))throw Hb("ipthprfx",a,c);gd(b,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var a=Qb(this.$$search),b=this.$$hash?"#"+sb(this.$$hash):"";this.$$url= -ec(this.$$path)+(a?"?"+a:"")+b;this.$$absUrl=c+this.$$url.substr(1)};this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;(f=wa(b,d))!==s?(g=f,g=(f=wa(a,f))!==s?c+(wa("/",f)||f):b+g):(f=wa(c,d))!==s?g=c+f:c==d+"/"&&(g=c);g&&this.$$parse(g);return!!g}}function hc(b,a){var c=fc(b);fd(b,this);this.$$parse=function(d){d=wa(b,d)||wa(c,d);var e;"#"===d.charAt(0)?(e=wa(a,d),C(e)&&(e=d)):e=this.$$html5?d:"";gd(e,this);d=this.$$path;var f=/^\/[A-Z]:(\/.*)/;0===e.indexOf(b)&& -(e=e.replace(b,""));f.exec(e)||(d=(e=f.exec(d))?e[1]:d);this.$$path=d;this.$$compose()};this.$$compose=function(){var c=Qb(this.$$search),e=this.$$hash?"#"+sb(this.$$hash):"";this.$$url=ec(this.$$path)+(c?"?"+c:"")+e;this.$$absUrl=b+(this.$$url?a+this.$$url:"")};this.$$parseLinkUrl=function(a,c){return Ea(b)==Ea(a)?(this.$$parse(a),!0):!1}}function hd(b,a){this.$$html5=!0;hc.apply(this,arguments);var c=fc(b);this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f, -g;b==Ea(d)?f=d:(g=wa(c,d))?f=b+a+g:c===d+"/"&&(f=c);f&&this.$$parse(f);return!!f};this.$$compose=function(){var c=Qb(this.$$search),e=this.$$hash?"#"+sb(this.$$hash):"";this.$$url=ec(this.$$path)+(c?"?"+c:"")+e;this.$$absUrl=b+a+this.$$url}}function Ib(b){return function(){return this[b]}}function id(b,a){return function(c){if(C(c))return this[b];this[b]=a(c);this.$$compose();return this}}function Re(){var b="",a={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(a){return y(a)? -(b=a,this):b};this.html5Mode=function(b){return Wa(b)?(a.enabled=b,this):I(b)?(Wa(b.enabled)&&(a.enabled=b.enabled),Wa(b.requireBase)&&(a.requireBase=b.requireBase),Wa(b.rewriteLinks)&&(a.rewriteLinks=b.rewriteLinks),this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(c,d,e,f,g){function h(a,b,c){var e=k.url(),f=k.$$state;try{d.url(a,b,c),k.$$state=d.state()}catch(g){throw k.url(e),k.$$state=f,g;}}function l(a,b){c.$broadcast("$locationChangeSuccess",k.absUrl(), -a,k.$$state,b)}var k,m;m=d.baseHref();var r=d.url(),n;if(a.enabled){if(!m&&a.requireBase)throw Hb("nobase");n=r.substring(0,r.indexOf("/",r.indexOf("//")+2))+(m||"/");m=e.history?gc:hd}else n=Ea(r),m=hc;k=new m(n,"#"+b);k.$$parseLinkUrl(r,r);k.$$state=d.state();var u=/^\s*(javascript|mailto):/i;f.on("click",function(b){if(a.rewriteLinks&&!b.ctrlKey&&!b.metaKey&&!b.shiftKey&&2!=b.which&&2!=b.button){for(var e=z(b.target);"a"!==sa(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var h=e.prop("href"), -l=e.attr("href")||e.attr("xlink:href");I(h)&&"[object SVGAnimatedString]"===h.toString()&&(h=ya(h.animVal).href);u.test(h)||!h||e.attr("target")||b.isDefaultPrevented()||!k.$$parseLinkUrl(h,l)||(b.preventDefault(),k.absUrl()!=d.url()&&(c.$apply(),g.angular["ff-684208-preventDefault"]=!0))}});Gb(k.absUrl())!=Gb(r)&&d.url(k.absUrl(),!0);var v=!0;d.onUrlChange(function(a,b){c.$evalAsync(function(){var d=k.absUrl(),e=k.$$state,f;k.$$parse(a);k.$$state=b;f=c.$broadcast("$locationChangeStart",a,d,b,e).defaultPrevented; -k.absUrl()===a&&(f?(k.$$parse(d),k.$$state=e,h(d,!1,e)):(v=!1,l(d,e)))});c.$$phase||c.$digest()});c.$watch(function(){var a=Gb(d.url()),b=Gb(k.absUrl()),f=d.state(),g=k.$$replace,n=a!==b||k.$$html5&&e.history&&f!==k.$$state;if(v||n)v=!1,c.$evalAsync(function(){var b=k.absUrl(),d=c.$broadcast("$locationChangeStart",b,a,k.$$state,f).defaultPrevented;k.absUrl()===b&&(d?(k.$$parse(a),k.$$state=f):(n&&h(b,g,f===k.$$state?null:k.$$state),l(a,f)))});k.$$replace=!1});return k}]}function Se(){var b=!0,a=this; -this.debugEnabled=function(a){return y(a)?(b=a,this):b};this.$get=["$window",function(c){function d(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=c.console||{},e=b[a]||b.log||A;a=!1;try{a=!!e.apply}catch(l){}return a?function(){var a=[];q(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"), -info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function ra(b,a){if("__defineGetter__"===b||"__defineSetter__"===b||"__lookupGetter__"===b||"__lookupSetter__"===b||"__proto__"===b)throw ja("isecfld",a);return b}function ka(b,a){if(b){if(b.constructor===b)throw ja("isecfn",a);if(b.window===b)throw ja("isecwindow",a);if(b.children&&(b.nodeName||b.prop&&b.attr&&b.find))throw ja("isecdom",a);if(b===Object)throw ja("isecobj", -a);}return b}function ic(b){return b.constant}function kb(b,a,c,d,e){ka(b,e);ka(a,e);c=c.split(".");for(var f,g=0;1h?jd(g[0],g[1],g[2],g[3],g[4],c,d):function(a,b){var e=0,f;do f=jd(g[e++],g[e++],g[e++],g[e++],g[e++],c,d)(a,b),b=s,a=f;while(e< -h);return f};else{var l="";d&&(l+="s = eso(s, fe);\nl = eso(l, fe);\n");var k=d;q(g,function(a,b){ra(a,c);var e=(b?"s":'((l&&l.hasOwnProperty("'+a+'"))?l:s)')+"."+a;if(d||Pa(a))e="eso("+e+", fe)",k=!0;l+="if(s == null) return undefined;\ns="+e+";\n"});l+="return s;";a=new Function("s","l","eso","fe",l);a.toString=ca(l);k&&(a=Cf(a,c));f=a}f.sharedGetter=!0;f.assign=function(a,c,d){return kb(a,d,b,c,b)};return e[b]=f}function jc(b){return E(b.valueOf)?b.valueOf():Gf.call(b)}function Te(){var b=ga(), -a=ga();this.$get=["$filter","$sniffer",function(c,d){function e(a){var b=a;a.sharedGetter&&(b=function(b,c){return a(b,c)},b.literal=a.literal,b.constant=a.constant,b.assign=a.assign);return b}function f(a,b){for(var c=0,d=a.length;c=this.promise.$$state.status&&d&&d.length&&b(function(){for(var b,e,f=0,g=d.length;fa)for(b in k++,f)e.hasOwnProperty(b)||(u--,delete f[b])}else f!==e&&(f=e,k++);return k}}c.$stateful=!0;var d=this,e,f,g,l=1q&&(P=4-q,S[P]||(S[P]=[]),S[P].push({msg:E(b.exp)?"fn: "+(b.exp.name||b.exp.toString()):b.exp,newVal:f,oldVal:h}));else if(b===d){n=!1;break a}}catch(F){g(F)}if(!(k=s.$$childHead||s!==this&&s.$$nextSibling))for(;s!==this&&!(k=s.$$nextSibling);)s=s.$parent}while(s=k);if((n||p.length)&&!q--)throw t.$$phase=null,c("infdig",a,S);}while(n||p.length);for(t.$$phase=null;H.length;)try{H.shift()()}catch(x){g(x)}}, -$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;if(this!==t){for(var b in this.$$listenerCount)n(this,this.$$listenerCount[b],b);a.$$childHead==this&&(a.$$childHead=this.$$nextSibling);a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync= -this.$applyAsync=A;this.$on=this.$watch=this.$watchGroup=function(){return A};this.$$listeners={};this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}}},$eval:function(a,b){return h(a)(this,b)},$evalAsync:function(a,b){t.$$phase||p.length||l.defer(function(){p.length&&t.$digest()});p.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){H.push(a)},$apply:function(a){try{return r("$apply"),this.$eval(a)}catch(b){g(b)}finally{t.$$phase= -null;try{t.$digest()}catch(c){throw g(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&J.push(b);s()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,n(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,f=!1,h={name:a,targetScope:e,stopPropagation:function(){f=!0},preventDefault:function(){h.defaultPrevented= -!0},defaultPrevented:!1},l=Ya([h],arguments,1),k,m;do{d=e.$$listeners[a]||c;h.currentScope=e;k=0;for(m=d.length;kQa)throw za("iequirks");var d=oa(la);d.isEnabled=function(){return b};d.trustAs=c.trustAs;d.getTrusted=c.getTrusted;d.valueOf=c.valueOf;b||(d.trustAs=d.getTrusted=function(a,b){return b},d.valueOf=na);d.parseAs=function(b,c){var e=a(c);return e.literal&&e.constant?e:a(c,function(a){return d.getTrusted(b,a)})};var e=d.parseAs,f=d.getTrusted,g=d.trustAs;q(la,function(a,b){var c=L(b);d[eb("parse_as_"+c)]=function(b){return e(a,b)};d[eb("get_trusted_"+c)]=function(b){return f(a,b)};d[eb("trust_as_"+ -c)]=function(b){return g(a,b)}});return d}]}function Ze(){this.$get=["$window","$document",function(b,a){var c={},d=aa((/android (\d+)/.exec(L((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||{}).userAgent),f=a[0]||{},g,h=/^(Moz|webkit|ms)(?=[A-Z])/,l=f.body&&f.body.style,k=!1,m=!1;if(l){for(var r in l)if(k=h.exec(r)){g=k[0];g=g.substr(0,1).toUpperCase()+g.substr(1);break}g||(g="WebkitOpacity"in l&&"webkit");k=!!("transition"in l||g+"Transition"in l);m=!!("animation"in l||g+"Animation"in -l);!d||k&&m||(k=O(f.body.style.webkitTransition),m=O(f.body.style.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hasEvent:function(a){if("input"===a&&11>=Qa)return!1;if(C(c[a])){var b=f.createElement("div");c[a]="on"+a in b}return c[a]},csp:cb(),vendorPrefix:g,transitions:k,animations:m,android:d}}]}function af(){this.$get=["$templateCache","$http","$q",function(b,a,c){function d(e,f){d.totalPendingRequests++;var g=a.defaults&&a.defaults.transformResponse;w(g)?g=g.filter(function(a){return a!== -bc}):g===bc&&(g=null);return a.get(e,{cache:b,transformResponse:g})["finally"](function(){d.totalPendingRequests--}).then(function(a){return a.data},function(a){if(!f)throw da("tpload",e);return c.reject(a)})}d.totalPendingRequests=0;return d}]}function bf(){this.$get=["$rootScope","$browser","$location",function(b,a,c){return{findBindings:function(a,b,c){a=a.getElementsByClassName("ng-binding");var g=[];q(a,function(a){var d=ba.element(a).data("$binding");d&&q(d,function(d){c?(new RegExp("(^|\\s)"+ -ld(b)+"(\\s|\\||$)")).test(d)&&g.push(a):-1!=d.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,c){for(var g=["ng-","data-ng-","ng\\:"],h=0;hb;b=Math.abs(b);var g=b+"",h="",l=[],k=!1;if(-1!==g.indexOf("e")){var m=g.match(/([\d\.]+)e(-?)(\d+)/);m&&"-"==m[2]&&m[3]>e+1?b=0:(h=g,k=!0)}if(k)0b&&(h=b.toFixed(e),b=parseFloat(h));else{g=(g.split(td)[1]||"").length;C(e)&&(e=Math.min(Math.max(a.minFrac,g),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);var g=(""+b).split(td),k=g[0],g=g[1]||"",r=0,n=a.lgSize,u=a.gSize;if(k.length>=n+u)for(r=k.length-n,m=0;mb&&(d="-",b=-b);for(b=""+b;b.length-c)e+=c;0===e&&-12==c&&(e=12);return Jb(e,a,d)}}function Kb(b,a){return function(c,d){var e=c["get"+b](), -f=vb(a?"SHORT"+b:b);return d[f][e]}}function ud(b){var a=(new Date(b,0,1)).getDay();return new Date(b,0,(4>=a?5:12)-a)}function vd(b){return function(a){var c=ud(a.getFullYear());a=+new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))-+c;a=1+Math.round(a/6048E5);return Jb(a,b)}}function lc(b,a){return 0>=b.getFullYear()?a.ERAS[0]:a.ERAS[1]}function pd(b){function a(a){var b;if(b=a.match(c)){a=new Date(0);var f=0,g=0,h=b[8]?a.setUTCFullYear:a.setFullYear,l=b[8]?a.setUTCHours:a.setHours; -b[9]&&(f=aa(b[9]+b[10]),g=aa(b[9]+b[11]));h.call(a,aa(b[1]),aa(b[2])-1,aa(b[3]));f=aa(b[4]||0)-f;g=aa(b[5]||0)-g;h=aa(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));l.call(a,f,g,h,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e,f){var g="",h=[],l,k;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;O(c)&&(c=Of.test(c)?aa(c):a(c));Q(c)&&(c=new Date(c));if(!ea(c))return c;for(;e;)(k=Pf.exec(e))?(h=Ya(h,k,1), -e=h.pop()):(h.push(e),e=null);f&&"UTC"===f&&(c=new Date(c.getTime()),c.setMinutes(c.getMinutes()+c.getTimezoneOffset()));q(h,function(a){l=Qf[a];g+=l?l(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function Jf(){return function(b,a){C(a)&&(a=2);return $a(b,a)}}function Kf(){return function(b,a){Q(b)&&(b=b.toString());return w(b)||O(b)?(a=Infinity===Math.abs(Number(a))?Number(a):aa(a))?0b||37<=b&&40>= -b||m(a,this,this.value)});if(e.hasEvent("paste"))a.on("paste cut",m)}a.on("change",l);d.$render=function(){a.val(d.$isEmpty(d.$viewValue)?"":d.$viewValue)}}function Nb(b,a){return function(c,d){var e,f;if(ea(c))return c;if(O(c)){'"'==c.charAt(0)&&'"'==c.charAt(c.length-1)&&(c=c.substring(1,c.length-1));if(Rf.test(c))return new Date(c);b.lastIndex=0;if(e=b.exec(c))return e.shift(),f=d?{yyyy:d.getFullYear(),MM:d.getMonth()+1,dd:d.getDate(),HH:d.getHours(),mm:d.getMinutes(),ss:d.getSeconds(),sss:d.getMilliseconds()/ -1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},q(e,function(b,c){c=q};g.$observe("min",function(a){q=n(a);h.$validate()})}if(y(g.max)||g.ngMax){var t;h.$validators.max=function(a){return!r(a)||C(t)||c(a)<=t};g.$observe("max",function(a){t=n(a);h.$validate()})}}} -function yd(b,a,c,d){(d.$$hasNativeValidators=I(a[0].validity))&&d.$parsers.push(function(b){var c=a.prop("validity")||{};return c.badInput&&!c.typeMismatch?s:b})}function zd(b,a,c,d,e){if(y(d)){b=b(d);if(!b.constant)throw F("ngModel")("constexpr",c,d);return b(a)}return e}function nc(b,a){b="ngClass"+b;return["$animate",function(c){function d(a,b){var c=[],d=0;a:for(;d(?:<\/\1>|)$/,Tb=/<|&#?\w+;/,kf=/<([\w:]+)/,lf=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ha={option:[1,'"],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ha.optgroup=ha.option;ha.tbody=ha.tfoot=ha.colgroup= -ha.caption=ha.thead;ha.th=ha.td;var Ka=R.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===V.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),R(T).on("load",a))},toString:function(){var b=[];q(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?z(this[b]):z(this[this.length+b])},length:0,push:Tf,sort:[].sort,splice:[].splice},Fb={};q("multiple selected checked disabled readOnly required open".split(" "),function(b){Fb[L(b)]=b}); -var Rc={};q("input select option textarea button form details".split(" "),function(b){Rc[b]=!0});var Sc={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};q({data:Wb,removeData:yb},function(b,a){R[a]=b});q({data:Wb,inheritedData:Eb,scope:function(b){return z.data(b,"$scope")||Eb(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return z.data(b,"$isolateScope")||z.data(b,"$isolateScopeNoTemplate")},controller:Nc,injector:function(b){return Eb(b, -"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Bb,css:function(b,a,c){a=eb(a);if(y(c))b.style[a]=c;else return b.style[a]},attr:function(b,a,c){var d=b.nodeType;if(d!==ab&&2!==d&&8!==d)if(d=L(a),Fb[d])if(y(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||A).specified?d:s;else if(y(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?s:b},prop:function(b,a,c){if(y(c))b[a]=c;else return b[a]}, -text:function(){function b(a,b){if(C(b)){var d=a.nodeType;return d===ma||d===ab?a.textContent:""}a.textContent=b}b.$dv="";return b}(),val:function(b,a){if(C(a)){if(b.multiple&&"select"===sa(b)){var c=[];q(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(C(a))return b.innerHTML;xb(b,!0);b.innerHTML=a},empty:Oc},function(b,a){R.prototype[a]=function(a,d){var e,f,g=this.length;if(b!==Oc&&(2==b.length&&b!==Bb&&b!==Nc? -a:d)===s){if(I(a)){for(e=0;e":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a,c)||e(a,c)},"!":function(a,c,d){return!d(a,c)},"=":!0,"|":!0}),cg={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},kc=function(a){this.options=a};kc.prototype={constructor:kc, -lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"=== -a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=y(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw ja("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.indexa){a=this.tokens[a];var g=a.text;if(g===c||g===d||g===e||g===f||!(c||d||e||f))return a}return!1},expect:function(a,c,d,e){return(a=this.peek(a,c,d,e))?(this.tokens.shift(),a):!1},consume:function(a){if(0===this.tokens.length)throw ja("ueoe",this.text);var c=this.expect(a);c||this.throwError("is unexpected, expecting ["+a+ -"]",this.peek());return c},unaryFn:function(a,c){var d=qb[a];return x(function(a,f){return d(a,f,c)},{constant:c.constant,inputs:[c]})},binaryFn:function(a,c,d,e){var f=qb[c];return x(function(c,e){return f(c,e,a,d)},{constant:a.constant&&d.constant,inputs:!e&&[a,d]})},identifier:function(){for(var a=this.consume().text;this.peek(".")&&this.peekAhead(1).identifier&&!this.peekAhead(2,"(");)a+=this.consume().text+this.consume().text;return Df(a,this.options,this.text)},constant:function(){var a=this.consume().value; -return x(function(){return a},{constant:!0,literal:!0})},statements:function(){for(var a=[];;)if(0","<=",">=");)a=this.binaryFn(a,c.text,this.additive());return a},additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a=this.binaryFn(a,c.text,this.multiplicative());return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a= -this.binaryFn(a,c.text,this.unary());return a},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn(lb.ZERO,a.text,this.unary()):(a=this.expect("!"))?this.unaryFn(a.text,this.unary()):this.primary()},fieldAccess:function(a){var c=this.identifier();return x(function(d,e,f){d=f||a(d,e);return null==d?s:c(d)},{assign:function(d,e,f){var g=a(d,f);g||a.assign(d,g={},f);return c.assign(g,e)}})},objectIndex:function(a){var c=this.text,d=this.expression();this.consume("]"); -return x(function(e,f){var g=a(e,f),h=d(e,f);ra(h,c);return g?ka(g[h],c):s},{assign:function(e,f,g){var h=ra(d(e,g),c),l=ka(a(e,g),c);l||a.assign(e,l={},g);return l[h]=f}})},functionCall:function(a,c){var d=[];if(")"!==this.peekToken().text){do d.push(this.expression());while(this.expect(","))}this.consume(")");var e=this.text,f=d.length?[]:null;return function(g,h){var l=c?c(g,h):y(c)?s:g,k=a(g,h,l)||A;if(f)for(var m=d.length;m--;)f[m]=ka(d[m](g,h),e);ka(l,e);if(k){if(k.constructor===k)throw ja("isecfn", -e);if(k===$f||k===ag||k===bg)throw ja("isecff",e);}l=k.apply?k.apply(l,f):k(f[0],f[1],f[2],f[3],f[4]);f&&(f.length=0);return ka(l,e)}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]");return x(function(c,d){for(var e=[],f=0,g=a.length;fa.getHours()? -c.AMPMS[0]:c.AMPMS[1]},Z:function(a){a=-1*a.getTimezoneOffset();return a=(0<=a?"+":"")+(Jb(Math[0=a.getFullYear()?c.ERANAMES[0]:c.ERANAMES[1]}},Pf=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,Of=/^\-?\d+$/;pd.$inject=["$locale"];var Lf=ca(L),Mf=ca(vb);rd.$inject=["$parse"];var Yd=ca({restrict:"E",compile:function(a,c){if(!c.href&&!c.xlinkHref&& -!c.name)return function(a,c){if("a"===c[0].nodeName.toLowerCase()){var f="[object SVGAnimatedString]"===Aa.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}}),wb={};q(Fb,function(a,c){if("multiple"!=a){var d=va("ng-"+c);wb[d]=function(){return{restrict:"A",priority:100,link:function(a,f,g){a.$watch(g[d],function(a){g.$set(c,!!a)})}}}}});q(Sc,function(a,c){wb[c]=function(){return{priority:100,link:function(a,e,f){if("ngPattern"===c&&"/"==f.ngPattern.charAt(0)&& -(e=f.ngPattern.match(Sf))){f.$set("ngPattern",new RegExp(e[1],e[2]));return}a.$watch(f[c],function(a){f.$set(c,a)})}}}});q(["src","srcset","href"],function(a){var c=va("ng-"+a);wb[c]=function(){return{priority:99,link:function(d,e,f){var g=a,h=a;"href"===a&&"[object SVGAnimatedString]"===Aa.call(e.prop("href"))&&(h="xlinkHref",f.$attr[h]="xlink:href",g=null);f.$observe(c,function(c){c?(f.$set(h,c),Qa&&g&&e.prop(g,f[h])):"href"===a&&f.$set(h,null)})}}}});var Lb={$addControl:A,$$renameControl:function(a, -c){a.$name=c},$removeControl:A,$setValidity:A,$setDirty:A,$setPristine:A,$setSubmitted:A};wd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Dd=function(a){return["$timeout",function(c){return{name:"form",restrict:a?"EAC":"E",controller:wd,compile:function(d,e){d.addClass(Ra).addClass(ob);var f=e.name?"name":a&&e.ngForm?"ngForm":!1;return{pre:function(a,d,e,k){if(!("action"in e)){var m=function(c){a.$apply(function(){k.$commitViewValue();k.$setSubmitted()});c.preventDefault()}; -d[0].addEventListener("submit",m,!1);d.on("$destroy",function(){c(function(){d[0].removeEventListener("submit",m,!1)},0,!1)})}var r=k.$$parentForm;f&&(kb(a,null,k.$name,k,k.$name),e.$observe(f,function(c){k.$name!==c&&(kb(a,null,k.$name,s,k.$name),r.$$renameControl(k,c),kb(a,null,k.$name,k,k.$name))}));d.on("$destroy",function(){r.$removeControl(k);f&&kb(a,null,e[f],s,k.$name);x(k,Lb)})}}}}}]},Zd=Dd(),le=Dd(!0),Rf=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,dg=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/, -eg=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,fg=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,Ed=/^(\d{4})-(\d{2})-(\d{2})$/,Fd=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,oc=/^(\d{4})-W(\d\d)$/,Gd=/^(\d{4})-(\d\d)$/,Hd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Id={text:function(a,c,d,e,f,g){mb(a,c,d,e,f,g);mc(e)},date:nb("date",Ed,Nb(Ed,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":nb("datetimelocal",Fd,Nb(Fd,"yyyy MM dd HH mm ss sss".split(" ")), -"yyyy-MM-ddTHH:mm:ss.sss"),time:nb("time",Hd,Nb(Hd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:nb("week",oc,function(a,c){if(ea(a))return a;if(O(a)){oc.lastIndex=0;var d=oc.exec(a);if(d){var e=+d[1],f=+d[2],g=d=0,h=0,l=0,k=ud(e),f=7*(f-1);c&&(d=c.getHours(),g=c.getMinutes(),h=c.getSeconds(),l=c.getMilliseconds());return new Date(e,0,k.getDate()+f,d,g,h,l)}}return NaN},"yyyy-Www"),month:nb("month",Gd,Nb(Gd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,g){yd(a,c,d,e);mb(a,c,d,e,f,g);e.$$parserName= -"number";e.$parsers.push(function(a){return e.$isEmpty(a)?null:fg.test(a)?parseFloat(a):s});e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!Q(a))throw Ob("numfmt",a);a=a.toString()}return a});if(y(d.min)||d.ngMin){var h;e.$validators.min=function(a){return e.$isEmpty(a)||C(h)||a>=h};d.$observe("min",function(a){y(a)&&!Q(a)&&(a=parseFloat(a,10));h=Q(a)&&!isNaN(a)?a:s;e.$validate()})}if(y(d.max)||d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)||C(l)||a<=l};d.$observe("max",function(a){y(a)&& -!Q(a)&&(a=parseFloat(a,10));l=Q(a)&&!isNaN(a)?a:s;e.$validate()})}},url:function(a,c,d,e,f,g){mb(a,c,d,e,f,g);mc(e);e.$$parserName="url";e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||dg.test(d)}},email:function(a,c,d,e,f,g){mb(a,c,d,e,f,g);mc(e);e.$$parserName="email";e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||eg.test(d)}},radio:function(a,c,d,e){C(d.name)&&c.attr("name",++rb);c.on("click",function(a){c[0].checked&&e.$setViewValue(d.value,a&&a.type)});e.$render= -function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,g,h,l){var k=zd(l,a,"ngTrueValue",d.ngTrueValue,!0),m=zd(l,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click",function(a){e.$setViewValue(c[0].checked,a&&a.type)});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return!1===a};e.$formatters.push(function(a){return fa(a,k)});e.$parsers.push(function(a){return a?k:m})},hidden:A,button:A,submit:A,reset:A,file:A},Cc=["$browser", -"$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,g,h,l){l[0]&&(Id[L(h.type)]||Id.text)(f,g,h,l[0],c,a,d,e)}}}}],gg=/^(true|false|\d+)$/,De=function(){return{restrict:"A",priority:100,compile:function(a,c){return gg.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value",a)})}}}},de=["$compile",function(a){return{restrict:"AC",compile:function(c){a.$$addBindingClass(c); -return function(c,e,f){a.$$addBindingInfo(e,f.ngBind);e=e[0];c.$watch(f.ngBind,function(a){e.textContent=a===s?"":a})}}}}],fe=["$interpolate","$compile",function(a,c){return{compile:function(d){c.$$addBindingClass(d);return function(d,f,g){d=a(f.attr(g.$attr.ngBindTemplate));c.$$addBindingInfo(f,d.expressions);f=f[0];g.$observe("ngBindTemplate",function(a){f.textContent=a===s?"":a})}}}}],ee=["$sce","$parse","$compile",function(a,c,d){return{restrict:"A",compile:function(e,f){var g=c(f.ngBindHtml), -h=c(f.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(e);return function(c,e,f){d.$$addBindingInfo(e,f.ngBindHtml);c.$watch(h,function(){e.html(a.getTrustedHtml(g(c))||"")})}}}}],Ce=ca({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),ge=nc("",!0),ie=nc("Odd",0),he=nc("Even",1),je=Ia({compile:function(a,c){c.$set("ngCloak",s);a.removeClass("ng-cloak")}}),ke=[function(){return{restrict:"A",scope:!0,controller:"@", -priority:500}}],Hc={},hg={blur:!0,focus:!0};q("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=va("ng-"+a);Hc[c]=["$parse","$rootScope",function(d,e){return{restrict:"A",compile:function(f,g){var h=d(g[c],null,!0);return function(c,d){d.on(a,function(d){var f=function(){h(c,{$event:d})};hg[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var ne=["$animate",function(a){return{multiElement:!0, -transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var h,l,k;c.$watch(e.ngIf,function(c){c?l||g(function(c,f){l=f;c[c.length++]=V.createComment(" end ngIf: "+e.ngIf+" ");h={clone:c};a.enter(c,d.parent(),d)}):(k&&(k.remove(),k=null),l&&(l.$destroy(),l=null),h&&(k=ub(h.clone),a.leave(k).then(function(){k=null}),h=null))})}}}],oe=["$templateRequest","$anchorScroll","$animate","$sce",function(a,c,d,e){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element", -controller:ba.noop,compile:function(f,g){var h=g.ngInclude||g.src,l=g.onload||"",k=g.autoscroll;return function(f,g,n,q,v){var s=0,t,p,H,J=function(){p&&(p.remove(),p=null);t&&(t.$destroy(),t=null);H&&(d.leave(H).then(function(){p=null}),p=H,H=null)};f.$watch(e.parseAsResourceUrl(h),function(e){var h=function(){!y(k)||k&&!f.$eval(k)||c()},n=++s;e?(a(e,!0).then(function(a){if(n===s){var c=f.$new();q.template=a;a=v(c,function(a){J();d.enter(a,null,g).then(h)});t=c;H=a;t.$emit("$includeContentLoaded", -e);f.$eval(l)}},function(){n===s&&(J(),f.$emit("$includeContentError",e))}),f.$emit("$includeContentRequested",e)):(J(),q.template=null)})}}}}],Fe=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Kc(f.template,V).childNodes)(c,function(a){d.append(a)},{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}],pe=Ia({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}), -Be=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)||", ",g="false"!==d.ngTrim,h=g?U(f):f;e.$parsers.push(function(a){if(!C(a)){var c=[];a&&q(a.split(h),function(a){a&&c.push(g?U(a):a)});return c}});e.$formatters.push(function(a){return w(a)?a.join(f):s});e.$isEmpty=function(a){return!a||!a.length}}}},ob="ng-valid",Ad="ng-invalid",Ra="ng-pristine",Mb="ng-dirty",Cd="ng-pending",Ob=new F("ngModel"),ig=["$scope","$exceptionHandler","$attrs", -"$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,g,h,l,k,m){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=s;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=s;this.$name=m(d.name||"",!1)(a);var r=f(d.ngModel),n=r.assign,u=r,v=n, -P=null,t,p=this;this.$$setOptions=function(a){if((p.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),g=f(d.ngModel+"($$$p)");u=function(a){var d=r(a);E(d)&&(d=c(a));return d};v=function(a,c){E(r(a))?g(a,{$$$p:p.$modelValue}):n(a,p.$modelValue)}}else if(!r.assign)throw Ob("nonassign",d.ngModel,ta(e));};this.$render=A;this.$isEmpty=function(a){return C(a)||""===a||null===a||a!==a};var H=e.inheritedData("$formController")||Lb,J=0;xd({ctrl:this,$element:e,set:function(a,c){a[c]=!0},unset:function(a, -c){delete a[c]},parentForm:H,$animate:g});this.$setPristine=function(){p.$dirty=!1;p.$pristine=!0;g.removeClass(e,Mb);g.addClass(e,Ra)};this.$setDirty=function(){p.$dirty=!0;p.$pristine=!1;g.removeClass(e,Ra);g.addClass(e,Mb);H.$setDirty()};this.$setUntouched=function(){p.$touched=!1;p.$untouched=!0;g.setClass(e,"ng-untouched","ng-touched")};this.$setTouched=function(){p.$touched=!0;p.$untouched=!1;g.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){h.cancel(P);p.$viewValue= -p.$$lastCommittedViewValue;p.$render()};this.$validate=function(){if(!Q(p.$modelValue)||!isNaN(p.$modelValue)){var a=p.$$rawModelValue,c=p.$valid,d=p.$modelValue,e=p.$options&&p.$options.allowInvalid;p.$$runValidators(a,p.$$lastCommittedViewValue,function(f){e||c===f||(p.$modelValue=f?a:s,p.$modelValue!==d&&p.$$writeModelToScope())})}};this.$$runValidators=function(a,c,d){function e(){var d=!0;q(p.$validators,function(e,f){var h=e(a,c);d=d&&h;g(f,h)});return d?!0:(q(p.$asyncValidators,function(a, -c){g(c,null)}),!1)}function f(){var d=[],e=!0;q(p.$asyncValidators,function(f,h){var k=f(a,c);if(!k||!E(k.then))throw Ob("$asyncValidators",k);g(h,s);d.push(k.then(function(){g(h,!0)},function(a){e=!1;g(h,!1)}))});d.length?k.all(d).then(function(){h(e)},A):h(!0)}function g(a,c){l===J&&p.$setValidity(a,c)}function h(a){l===J&&d(a)}J++;var l=J;(function(){var a=p.$$parserName||"parse";if(t===s)g(a,null);else return t||(q(p.$validators,function(a,c){g(c,null)}),q(p.$asyncValidators,function(a,c){g(c, -null)})),g(a,t),t;return!0})()?e()?f():h(!1):h(!1)};this.$commitViewValue=function(){var a=p.$viewValue;h.cancel(P);if(p.$$lastCommittedViewValue!==a||""===a&&p.$$hasNativeValidators)p.$$lastCommittedViewValue=a,p.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=p.$$lastCommittedViewValue;if(t=C(c)?s:!0)for(var d=0;dD;)d=t.pop(),m(S,d.label,!1),d.element.remove()}for(;T.length> -w;){l=T.pop();for(D=1;Da&&n.removeOption(c)})}var t;if(!(t=v.match(d)))throw kg("iexp",v,ta(f));var B=c(t[2]||t[1]),A=t[4]||t[6],E=/ as /.test(t[0])&&t[1],z=E?c(E):null,I=t[5],M=c(t[3]||""),D=c(t[2]?t[1]:A),O=c(t[7]),L=t[8]?c(t[8]):null,R={},T=[[{element:f,label:""}]],U={};x&&(a(x)(e),x.removeClass("ng-scope"),x.remove());f.empty();f.on("change",function(){e.$apply(function(){var a=O(e)||[],c;if(u)c=[],q(f.val(), -function(d){d=L?R[d]:d;c.push("?"===d?s:""===d?null:h(z?z:D,d,a[d]))});else{var d=L?R[f.val()]:f.val();c="?"===d?s:""===d?null:h(z?z:D,d,a[d])}g.$setViewValue(c);r()})});g.$render=r;e.$watchCollection(O,l);e.$watchCollection(function(){var a=O(e),c;if(a&&w(a)){c=Array(a.length);for(var d=0,f=a.length;df||e.$isEmpty(c)||c.length<=f}}}}},Fc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=0;d.$observe("minlength",function(a){f=aa(a)||0;e.$validate()});e.$validators.minlength=function(a,c){return e.$isEmpty(c)||c.length>=f}}}}};T.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(Sd(),Ud(ba),z(V).ready(function(){Od(V,xc)}))})(window,document);!window.angular.$$csp()&&window.angular.element(document).find("head").prepend(''); +(function(N,W,u){'use strict';function G(b){return function(){var a=arguments[0],c;c="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.4.5/"+(b?b+"/":"")+a;for(a=1;a").append(b).html();try{return b[0].nodeType===Pa?I(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+I(b)})}catch(d){return I(c)}}function wc(b){try{return decodeURIComponent(b)}catch(a){}}function xc(b){var a={};n((b||"").split("&"),function(b){var d,e,f;b&&(e= +b=b.replace(/\+/g,"%20"),d=b.indexOf("="),-1!==d&&(e=b.substring(0,d),f=b.substring(d+1)),e=wc(e),x(e)&&(f=x(f)?wc(f):!0,Na.call(a,e)?K(a[e])?a[e].push(f):a[e]=[a[e],f]:a[e]=f))});return a}function Pb(b){var a=[];n(b,function(b,d){K(b)?n(b,function(b){a.push(ma(d,!0)+(!0===b?"":"="+ma(b,!0)))}):a.push(ma(d,!0)+(!0===b?"":"="+ma(b,!0)))});return a.length?a.join("&"):""}function nb(b){return ma(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ma(b,a){return encodeURIComponent(b).replace(/%40/gi, +"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,a?"%20":"+")}function Yd(b,a){var c,d,e=Qa.length;for(d=0;d/,">"));}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);c.debugInfoEnabled&&a.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);a.unshift("ng");d=eb(a,c.strictDi);d.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector", +d);c(b)(a)})}]);return d},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;N&&e.test(N.name)&&(c.debugInfoEnabled=!0,N.name=N.name.replace(e,""));if(N&&!f.test(N.name))return d();N.name=N.name.replace(f,"");aa.resumeBootstrap=function(b){n(b,function(b){a.push(b)});return d()};B(aa.resumeDeferredBootstrap)&&aa.resumeDeferredBootstrap()}function $d(){N.name="NG_ENABLE_DEBUG_INFO!"+N.name;N.location.reload()}function ae(b){b=aa.element(b).injector();if(!b)throw Ea("test");return b.get("$$testability")} +function zc(b,a){a=a||"_";return b.replace(be,function(b,d){return(d?a:"")+b.toLowerCase()})}function ce(){var b;if(!Ac){var a=ob();la=N.jQuery;x(a)&&(la=null===a?u:N[a]);la&&la.fn.on?(z=la,Q(la.fn,{scope:Ra.scope,isolateScope:Ra.isolateScope,controller:Ra.controller,injector:Ra.injector,inheritedData:Ra.inheritedData}),b=la.cleanData,la.cleanData=function(a){var d;if(Qb)Qb=!1;else for(var e=0,f;null!=(f=a[e]);e++)(d=la._data(f,"events"))&&d.$destroy&&la(f).triggerHandler("$destroy");b(a)}):z=R;aa.element= +z;Ac=!0}}function pb(b,a,c){if(!b)throw Ea("areq",a||"?",c||"required");return b}function Sa(b,a,c){c&&K(b)&&(b=b[b.length-1]);pb(B(b),a,"not a function, got "+(b&&"object"===typeof b?b.constructor.name||"Object":typeof b));return b}function Ta(b,a){if("hasOwnProperty"===b)throw Ea("badname",a);}function Bc(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,g=0;g")+d[2];for(d=d[0];d--;)c=c.lastChild;f=cb(f,c.childNodes);c=e.firstChild;c.textContent=""}else f.push(a.createTextNode(b));e.textContent="";e.innerHTML="";n(f,function(a){e.appendChild(a)});return e}function R(b){if(b instanceof R)return b;var a;H(b)&&(b=T(b),a=!0);if(!(this instanceof R)){if(a&&"<"!=b.charAt(0))throw Tb("nosel");return new R(b)}if(a){a=W;var c;b=(c=Df.exec(b))?[a.createElement(c[1])]: +(c=Lc(b,a))?c.childNodes:[]}Mc(this,b)}function Ub(b){return b.cloneNode(!0)}function tb(b,a){a||ub(b);if(b.querySelectorAll)for(var c=b.querySelectorAll("*"),d=0,e=c.length;dk&&this.remove(s.key); +return b}},get:function(a){if(k").parent()[0])});var f=S(a,b,a,c,d,e);V.$$addScopeClass(a);var g=null;return function(b,c,d){pb(b,"scope");d=d||{}; +var e=d.parentBoundTranscludeFn,h=d.transcludeControllers;d=d.futureParentElement;e&&e.$$boundTransclude&&(e=e.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==ta(d)&&d.toString().match(/SVG/)?"svg":"html":"html");d="html"!==g?z(Xb(g,z("
").append(a).html())):c?Ra.clone.call(a):a;if(h)for(var k in h)d.data("$"+k+"Controller",h[k].instance);V.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,e);return d}}function S(a,b,c,d,e,f){function g(a,c,d,e){var f,k,l,m,s,t,O;if(p)for(O=Array(c.length),m=0;m< +h.length;m+=3)f=h[m],O[f]=c[f];else O=c;m=0;for(s=h.length;mC.priority)break;if(v=C.scope)C.templateUrl||(D(v)?(N("new/isolated scope",P||S,C,ba),P=C):N("new/isolated scope", +P,C,ba)),S=S||C;x=C.name;!C.templateUrl&&C.controller&&(v=C.controller,w=w||ga(),N("'"+x+"' controller",w[x],C,ba),w[x]=C);if(v=C.transclude)n=!0,C.$$tlb||(N("transclusion",A,C,ba),A=C),"element"==v?(r=!0,J=C.priority,v=ba,ba=d.$$element=z(W.createComment(" "+x+": "+d[x]+" ")),b=ba[0],U(f,xa.call(v,0),b),y=V(v,e,J,g&&g.name,{nonTlbTranscludeDirective:A})):(v=z(Ub(b)).contents(),ba.empty(),y=V(v,e));if(C.template)if(M=!0,N("template",F,C,ba),F=C,v=B(C.template)?C.template(ba,d):C.template,v=fa(v), +C.replace){g=C;v=Sb.test(v)?Yc(Xb(C.templateNamespace,T(v))):[];b=v[0];if(1!=v.length||b.nodeType!==pa)throw ea("tplrt",x,"");U(f,ba,b);G={$attr:{}};v=ha(b,[],G);var Q=a.splice(wa+1,a.length-(wa+1));P&&Zc(v);a=a.concat(v).concat(Q);$c(d,G);G=a.length}else ba.html(v);if(C.templateUrl)M=!0,N("template",F,C,ba),F=C,C.replace&&(g=C),L=Lf(a.splice(wa,a.length-wa),ba,d,f,n&&y,h,k,{controllerDirectives:w,newScopeDirective:S!==C&&S,newIsolateScopeDirective:P,templateDirective:F,nonTlbTranscludeDirective:A}), +G=a.length;else if(C.compile)try{za=C.compile(ba,d,y),B(za)?s(null,za,Bb,I):za&&s(za.pre,za.post,Bb,I)}catch(R){c(R,ua(ba))}C.terminal&&(L.terminal=!0,J=Math.max(J,C.priority))}L.scope=S&&!0===S.scope;L.transcludeOnThisElement=n;L.templateOnThisElement=M;L.transclude=y;m.hasElementTranscludeDirective=r;return L}function Zc(a){for(var b=0,c=a.length;bm.priority)&&-1!=m.restrict.indexOf(f)&&(k&&(m=Nb(m,{$$start:k,$$end:l})),b.push(m),h=m)}catch(J){c(J)}}return h}function G(b){if(e.hasOwnProperty(b))for(var c=a.get(b+"Directive"),d=0,f=c.length;d"+b+"";return c.childNodes[0].childNodes;default:return b}}function R(a,b){if("srcdoc"==b)return M.HTML;var c=ta(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b))return M.RESOURCE_URL}function X(a,c,d,e, +f){var g=R(a,e);f=h[e]||f;var l=b(d,!0,g,f);if(l){if("multiple"===e&&"select"===ta(a))throw ea("selmulti",ua(a));c.push({priority:100,compile:function(){return{pre:function(a,c,h){c=h.$$observers||(h.$$observers={});if(k.test(e))throw ea("nodomevents");var m=h[e];m!==d&&(l=m&&b(m,!0,g,f),d=m);l&&(h[e]=l(a),(c[e]||(c[e]=[])).$$inter=!0,(h.$$observers&&h.$$observers[e].$$scope||a).$watch(l,function(a,b){"class"===e&&a!=b?h.$updateClass(a,b):h.$set(e,a)}))}}}})}}function U(a,b,c){var d=b[0],e=b.length, +f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g=a)return b;for(;a--;)8===b[a].nodeType&&Mf.call(b,a,1);return b}function Xe(){var b={},a=!1;this.register=function(a,d){Ta(a,"controller");D(a)?Q(b,a):b[a]=d};this.allowGlobals=function(){a=!0};this.$get=["$injector","$window",function(c,d){function e(a,b,c,d){if(!a||!D(a.$scope))throw G("$controller")("noscp",d,b);a.$scope[b]=c}return function(f,g,h,l){var k,m,q;h=!0===h;l&&H(l)&&(q=l);if(H(f)){l=f.match(Vc);if(!l)throw Nf("ctrlfmt",f);m=l[1];q=q||l[3];f=b.hasOwnProperty(m)?b[m]:Bc(g.$scope, +m,!0)||(a?Bc(d,m,!0):u);Sa(f,m,!0)}if(h)return h=(K(f)?f[f.length-1]:f).prototype,k=Object.create(h||null),q&&e(g,q,k,m||f.name),Q(function(){var a=c.invoke(f,k,g,m);a!==k&&(D(a)||B(a))&&(k=a,q&&e(g,q,k,m||f.name));return k},{instance:k,identifier:q});k=c.instantiate(f,g,m);q&&e(g,q,k,m||f.name);return k}}]}function Ye(){this.$get=["$window",function(b){return z(b.document)}]}function Ze(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b,arguments)}}]}function Yb(b){return D(b)? +ca(b)?b.toISOString():db(b):b}function df(){this.$get=function(){return function(b){if(!b)return"";var a=[];mc(b,function(b,d){null===b||y(b)||(K(b)?n(b,function(b,c){a.push(ma(d)+"="+ma(Yb(b)))}):a.push(ma(d)+"="+ma(Yb(b))))});return a.join("&")}}}function ef(){this.$get=function(){return function(b){function a(b,e,f){null===b||y(b)||(K(b)?n(b,function(b,c){a(b,e+"["+(D(b)?c:"")+"]")}):D(b)&&!ca(b)?mc(b,function(b,c){a(b,e+(f?"":"[")+c+(f?"":"]"))}):c.push(ma(e)+"="+ma(Yb(b))))}if(!b)return"";var c= +[];a(b,"",!0);return c.join("&")}}}function Zb(b,a){if(H(b)){var c=b.replace(Of,"").trim();if(c){var d=a("Content-Type");(d=d&&0===d.indexOf(bd))||(d=(d=c.match(Pf))&&Qf[d[0]].test(c));d&&(b=uc(c))}}return b}function cd(b){var a=ga(),c;H(b)?n(b.split("\n"),function(b){c=b.indexOf(":");var e=I(T(b.substr(0,c)));b=T(b.substr(c+1));e&&(a[e]=a[e]?a[e]+", "+b:b)}):D(b)&&n(b,function(b,c){var f=I(c),g=T(b);f&&(a[f]=a[f]?a[f]+", "+g:g)});return a}function dd(b){var a;return function(c){a||(a=cd(b));return c? +(c=a[I(c)],void 0===c&&(c=null),c):a}}function ed(b,a,c,d){if(B(d))return d(b,a,c);n(d,function(d){b=d(b,a,c)});return b}function cf(){var b=this.defaults={transformResponse:[Zb],transformRequest:[function(a){return D(a)&&"[object File]"!==sa.call(a)&&"[object Blob]"!==sa.call(a)&&"[object FormData]"!==sa.call(a)?db(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ia($b),put:ia($b),patch:ia($b)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"}, +a=!1;this.useApplyAsync=function(b){return x(b)?(a=!!b,this):a};var c=!0;this.useLegacyPromiseExtensions=function(a){return x(a)?(c=!!a,this):c};var d=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(e,f,g,h,l,k){function m(a){function d(a){var b=Q({},a);b.data=a.data?ed(a.data,a.headers,a.status,f.transformResponse):a.data;a=a.status;return 200<=a&&300>a?b:l.reject(b)}function e(a,b){var c,d={};n(a,function(a,e){B(a)?(c=a(b),null!= +c&&(d[e]=c)):d[e]=a});return d}if(!aa.isObject(a))throw G("$http")("badreq",a);var f=Q({method:"get",transformRequest:b.transformRequest,transformResponse:b.transformResponse,paramSerializer:b.paramSerializer},a);f.headers=function(a){var c=b.headers,d=Q({},a.headers),f,g,h,c=Q({},c.common,c[I(a.method)]);a:for(f in c){g=I(f);for(h in d)if(I(h)===g)continue a;d[f]=c[f]}return e(d,ia(a))}(a);f.method=rb(f.method);f.paramSerializer=H(f.paramSerializer)?k.get(f.paramSerializer):f.paramSerializer;var g= +[function(a){var c=a.headers,e=ed(a.data,dd(c),u,a.transformRequest);y(e)&&n(c,function(a,b){"content-type"===I(b)&&delete c[b]});y(a.withCredentials)&&!y(b.withCredentials)&&(a.withCredentials=b.withCredentials);return q(a,e).then(d,d)},u],h=l.when(f);for(n(E,function(a){(a.request||a.requestError)&&g.unshift(a.request,a.requestError);(a.response||a.responseError)&&g.push(a.response,a.responseError)});g.length;){a=g.shift();var m=g.shift(),h=h.then(a,m)}c?(h.success=function(a){Sa(a,"fn");h.then(function(b){a(b.data, +b.status,b.headers,f)});return h},h.error=function(a){Sa(a,"fn");h.then(null,function(b){a(b.data,b.status,b.headers,f)});return h}):(h.success=fd("success"),h.error=fd("error"));return h}function q(c,d){function g(b,c,d,e){function f(){k(c,b,d,e)}F&&(200<=b&&300>b?F.put(P,[b,c,cd(d),e]):F.remove(P));a?h.$applyAsync(f):(f(),h.$$phase||h.$apply())}function k(a,b,d,e){b=Math.max(b,0);(200<=b&&300>b?O.resolve:O.reject)({data:a,status:b,headers:dd(d),config:c,statusText:e})}function q(a){k(a.data,a.status, +ia(a.headers()),a.statusText)}function E(){var a=m.pendingRequests.indexOf(c);-1!==a&&m.pendingRequests.splice(a,1)}var O=l.defer(),J=O.promise,F,n,S=c.headers,P=s(c.url,c.paramSerializer(c.params));m.pendingRequests.push(c);J.then(E,E);!c.cache&&!b.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(F=D(c.cache)?c.cache:D(b.cache)?b.cache:t);F&&(n=F.get(P),x(n)?n&&B(n.then)?n.then(q,q):K(n)?k(n[1],n[0],ia(n[2]),n[3]):k(n,200,{},"OK"):F.put(P,J));y(n)&&((n=gd(c.url)?f()[c.xsrfCookieName|| +b.xsrfCookieName]:u)&&(S[c.xsrfHeaderName||b.xsrfHeaderName]=n),e(c.method,P,d,g,S,c.timeout,c.withCredentials,c.responseType));return J}function s(a,b){0=l&&(w.resolve(E),t(p.$$intervalId),delete f[p.$$intervalId]);L||b.$apply()},h);f[p.$$intervalId]=w;return p}var f={};e.cancel=function(b){return b&& +b.$$intervalId in f?(f[b.$$intervalId].reject("canceled"),a.clearInterval(b.$$intervalId),delete f[b.$$intervalId],!0):!1};return e}]}function ac(b){b=b.split("/");for(var a=b.length;a--;)b[a]=nb(b[a]);return b.join("/")}function hd(b,a){var c=Aa(b);a.$$protocol=c.protocol;a.$$host=c.hostname;a.$$port=Y(c.port)||Tf[c.protocol]||null}function id(b,a){var c="/"!==b.charAt(0);c&&(b="/"+b);var d=Aa(b);a.$$path=decodeURIComponent(c&&"/"===d.pathname.charAt(0)?d.pathname.substring(1):d.pathname);a.$$search= +xc(d.search);a.$$hash=decodeURIComponent(d.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function ra(b,a){if(0===a.indexOf(b))return a.substr(b.length)}function Ja(b){var a=b.indexOf("#");return-1==a?b:b.substr(0,a)}function Cb(b){return b.replace(/(#.+)|#$/,"$1")}function bc(b,a,c){this.$$html5=!0;c=c||"";hd(b,this);this.$$parse=function(b){var c=ra(a,b);if(!H(c))throw Db("ipthprfx",b,a);id(c,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var b= +Pb(this.$$search),c=this.$$hash?"#"+nb(this.$$hash):"";this.$$url=ac(this.$$path)+(b?"?"+b:"")+c;this.$$absUrl=a+this.$$url.substr(1)};this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;(f=ra(b,d))!==u?(g=f,g=(f=ra(c,f))!==u?a+(ra("/",f)||f):b+g):(f=ra(a,d))!==u?g=a+f:a==d+"/"&&(g=a);g&&this.$$parse(g);return!!g}}function cc(b,a,c){hd(b,this);this.$$parse=function(d){var e=ra(b,d)||ra(a,d),f;y(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",y(e)&&(b=d,this.replace())): +(f=ra(c,e),y(f)&&(f=e));id(f,this);d=this.$$path;var e=b,g=/^\/[A-Z]:(\/.*)/;0===f.indexOf(e)&&(f=f.replace(e,""));g.exec(f)||(d=(f=g.exec(d))?f[1]:d);this.$$path=d;this.$$compose()};this.$$compose=function(){var a=Pb(this.$$search),e=this.$$hash?"#"+nb(this.$$hash):"";this.$$url=ac(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+(this.$$url?c+this.$$url:"")};this.$$parseLinkUrl=function(a,c){return Ja(b)==Ja(a)?(this.$$parse(a),!0):!1}}function jd(b,a,c){this.$$html5=!0;cc.apply(this,arguments);this.$$parseLinkUrl= +function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;b==Ja(d)?f=d:(g=ra(a,d))?f=b+c+g:a===d+"/"&&(f=a);f&&this.$$parse(f);return!!f};this.$$compose=function(){var a=Pb(this.$$search),e=this.$$hash?"#"+nb(this.$$hash):"";this.$$url=ac(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+c+this.$$url}}function Eb(b){return function(){return this[b]}}function kd(b,a){return function(c){if(y(c))return this[b];this[b]=a(c);this.$$compose();return this}}function gf(){var b="",a={enabled:!1,requireBase:!0, +rewriteLinks:!0};this.hashPrefix=function(a){return x(a)?(b=a,this):b};this.html5Mode=function(b){return ab(b)?(a.enabled=b,this):D(b)?(ab(b.enabled)&&(a.enabled=b.enabled),ab(b.requireBase)&&(a.requireBase=b.requireBase),ab(b.rewriteLinks)&&(a.rewriteLinks=b.rewriteLinks),this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(c,d,e,f,g){function h(a,b,c){var e=k.url(),f=k.$$state;try{d.url(a,b,c),k.$$state=d.state()}catch(g){throw k.url(e),k.$$state=f,g;}}function l(a, +b){c.$broadcast("$locationChangeSuccess",k.absUrl(),a,k.$$state,b)}var k,m;m=d.baseHref();var q=d.url(),s;if(a.enabled){if(!m&&a.requireBase)throw Db("nobase");s=q.substring(0,q.indexOf("/",q.indexOf("//")+2))+(m||"/");m=e.history?bc:jd}else s=Ja(q),m=cc;var t=s.substr(0,Ja(s).lastIndexOf("/")+1);k=new m(s,t,"#"+b);k.$$parseLinkUrl(q,q);k.$$state=d.state();var E=/^\s*(javascript|mailto):/i;f.on("click",function(b){if(a.rewriteLinks&&!b.ctrlKey&&!b.metaKey&&!b.shiftKey&&2!=b.which&&2!=b.button){for(var e= +z(b.target);"a"!==ta(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var h=e.prop("href"),l=e.attr("href")||e.attr("xlink:href");D(h)&&"[object SVGAnimatedString]"===h.toString()&&(h=Aa(h.animVal).href);E.test(h)||!h||e.attr("target")||b.isDefaultPrevented()||!k.$$parseLinkUrl(h,l)||(b.preventDefault(),k.absUrl()!=d.url()&&(c.$apply(),g.angular["ff-684208-preventDefault"]=!0))}});Cb(k.absUrl())!=Cb(q)&&d.url(k.absUrl(),!0);var L=!0;d.onUrlChange(function(a,b){y(ra(t,a))?g.location.href=a:(c.$evalAsync(function(){var d= +k.absUrl(),e=k.$$state,f;k.$$parse(a);k.$$state=b;f=c.$broadcast("$locationChangeStart",a,d,b,e).defaultPrevented;k.absUrl()===a&&(f?(k.$$parse(d),k.$$state=e,h(d,!1,e)):(L=!1,l(d,e)))}),c.$$phase||c.$digest())});c.$watch(function(){var a=Cb(d.url()),b=Cb(k.absUrl()),f=d.state(),g=k.$$replace,m=a!==b||k.$$html5&&e.history&&f!==k.$$state;if(L||m)L=!1,c.$evalAsync(function(){var b=k.absUrl(),d=c.$broadcast("$locationChangeStart",b,a,k.$$state,f).defaultPrevented;k.absUrl()===b&&(d?(k.$$parse(a),k.$$state= +f):(m&&h(b,g,f===k.$$state?null:k.$$state),l(a,f)))});k.$$replace=!1});return k}]}function hf(){var b=!0,a=this;this.debugEnabled=function(a){return x(a)?(b=a,this):b};this.$get=["$window",function(c){function d(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=c.console||{},e=b[a]||b.log||v;a=!1;try{a=!!e.apply}catch(l){}return a?function(){var a= +[];n(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function Wa(b,a){if("__defineGetter__"===b||"__defineSetter__"===b||"__lookupGetter__"===b||"__lookupSetter__"===b||"__proto__"===b)throw da("isecfld",a);return b}function Ba(b,a){if(b){if(b.constructor===b)throw da("isecfn",a);if(b.window===b)throw da("isecwindow", +a);if(b.children&&(b.nodeName||b.prop&&b.attr&&b.find))throw da("isecdom",a);if(b===Object)throw da("isecobj",a);}return b}function ld(b,a){if(b){if(b.constructor===b)throw da("isecfn",a);if(b===Uf||b===Vf||b===Wf)throw da("isecff",a);}}function Xf(b,a){return"undefined"!==typeof b?b:a}function md(b,a){return"undefined"===typeof b?a:"undefined"===typeof a?b:b+a}function U(b,a){var c,d;switch(b.type){case r.Program:c=!0;n(b.body,function(b){U(b.expression,a);c=c&&b.expression.constant});b.constant= +c;break;case r.Literal:b.constant=!0;b.toWatch=[];break;case r.UnaryExpression:U(b.argument,a);b.constant=b.argument.constant;b.toWatch=b.argument.toWatch;break;case r.BinaryExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant;b.toWatch=b.left.toWatch.concat(b.right.toWatch);break;case r.LogicalExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant;b.toWatch=b.constant?[]:[b];break;case r.ConditionalExpression:U(b.test,a);U(b.alternate,a);U(b.consequent, +a);b.constant=b.test.constant&&b.alternate.constant&&b.consequent.constant;b.toWatch=b.constant?[]:[b];break;case r.Identifier:b.constant=!1;b.toWatch=[b];break;case r.MemberExpression:U(b.object,a);b.computed&&U(b.property,a);b.constant=b.object.constant&&(!b.computed||b.property.constant);b.toWatch=[b];break;case r.CallExpression:c=b.filter?!a(b.callee.name).$stateful:!1;d=[];n(b.arguments,function(b){U(b,a);c=c&&b.constant;b.constant||d.push.apply(d,b.toWatch)});b.constant=c;b.toWatch=b.filter&& +!a(b.callee.name).$stateful?d:[b];break;case r.AssignmentExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant;b.toWatch=[b];break;case r.ArrayExpression:c=!0;d=[];n(b.elements,function(b){U(b,a);c=c&&b.constant;b.constant||d.push.apply(d,b.toWatch)});b.constant=c;b.toWatch=d;break;case r.ObjectExpression:c=!0;d=[];n(b.properties,function(b){U(b.value,a);c=c&&b.value.constant;b.value.constant||d.push.apply(d,b.value.toWatch)});b.constant=c;b.toWatch=d;break;case r.ThisExpression:b.constant= +!1,b.toWatch=[]}}function nd(b){if(1==b.length){b=b[0].expression;var a=b.toWatch;return 1!==a.length?a:a[0]!==b?a:u}}function od(b){return b.type===r.Identifier||b.type===r.MemberExpression}function pd(b){if(1===b.body.length&&od(b.body[0].expression))return{type:r.AssignmentExpression,left:b.body[0].expression,right:{type:r.NGValueParameter},operator:"="}}function qd(b){return 0===b.body.length||1===b.body.length&&(b.body[0].expression.type===r.Literal||b.body[0].expression.type===r.ArrayExpression|| +b.body[0].expression.type===r.ObjectExpression)}function rd(b,a){this.astBuilder=b;this.$filter=a}function sd(b,a){this.astBuilder=b;this.$filter=a}function Fb(b){return"constructor"==b}function dc(b){return B(b.valueOf)?b.valueOf():Yf.call(b)}function jf(){var b=ga(),a=ga();this.$get=["$filter",function(c){function d(a,b){return null==a||null==b?a===b:"object"===typeof a&&(a=dc(a),"object"===typeof a)?!1:a===b||a!==a&&b!==b}function e(a,b,c,e,f){var g=e.inputs,h;if(1===g.length){var k=d,g=g[0];return a.$watch(function(a){var b= +g(a);d(b,k)||(h=e(a,u,u,[b]),k=b&&dc(b));return h},b,c,f)}for(var l=[],m=[],q=0,n=g.length;q=this.promise.$$state.status&&d&&d.length&&b(function(){for(var b, +e,f=0,g=d.length;fa)for(b in l++,f)e.hasOwnProperty(b)||(t--,delete f[b])}else f!==e&&(f=e,l++);return l}}c.$stateful=!0;var d=this,e,f,g,k=1t&&(C=4-t,w[C]||(w[C]=[]),w[C].push({msg:B(b.exp)?"fn: "+(b.exp.name||b.exp.toString()):b.exp,newVal:f,oldVal:h}));else if(b===d){s=!1;break a}}catch(y){g(y)}if(!(k=n.$$watchersCount&&n.$$childHead||n!==this&&n.$$nextSibling))for(;n!==this&&!(k=n.$$nextSibling);)n=n.$parent}while(n=k);if((s||u.length)&&!t--)throw p.$$phase=null,c("infdig",a,w);}while(s||u.length);for(p.$$phase= +null;x.length;)try{x.shift()()}catch(z){g(z)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;this===p&&l.$$applicationDestroyed();s(this,-this.$$watchersCount);for(var b in this.$$listenerCount)t(this,this.$$listenerCount[b],b);a&&a.$$childHead==this&&(a.$$childHead=this.$$nextSibling);a&&a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&& +(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=v;this.$on=this.$watch=this.$watchGroup=function(){return v};this.$$listeners={};this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}},$eval:function(a,b){return h(a)(this,b)},$evalAsync:function(a,b){p.$$phase||u.length||l.defer(function(){u.length&&p.$digest()});u.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){x.push(a)}, +$apply:function(a){try{q("$apply");try{return this.$eval(a)}finally{p.$$phase=null}}catch(b){g(b)}finally{try{p.$digest()}catch(c){throw g(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&M.push(b);w()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,t(e,1,a))}},$emit:function(a, +b){var c=[],d,e=this,f=!1,h={name:a,targetScope:e,stopPropagation:function(){f=!0},preventDefault:function(){h.defaultPrevented=!0},defaultPrevented:!1},k=cb([h],arguments,1),l,m;do{d=e.$$listeners[a]||c;h.currentScope=e;l=0;for(m=d.length;lVa)throw Ca("iequirks");var d=ia(oa);d.isEnabled=function(){return b};d.trustAs=c.trustAs;d.getTrusted=c.getTrusted;d.valueOf=c.valueOf;b||(d.trustAs=d.getTrusted=function(a,b){return b},d.valueOf=Za);d.parseAs=function(b,c){var e=a(c);return e.literal&&e.constant?e:a(c,function(a){return d.getTrusted(b,a)})};var e=d.parseAs, +f=d.getTrusted,g=d.trustAs;n(oa,function(a,b){var c=I(b);d[fb("parse_as_"+c)]=function(b){return e(a,b)};d[fb("get_trusted_"+c)]=function(b){return f(a,b)};d[fb("trust_as_"+c)]=function(b){return g(a,b)}});return d}]}function pf(){this.$get=["$window","$document",function(b,a){var c={},d=Y((/android (\d+)/.exec(I((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||{}).userAgent),f=a[0]||{},g,h=/^(Moz|webkit|ms)(?=[A-Z])/,l=f.body&&f.body.style,k=!1,m=!1;if(l){for(var q in l)if(k= +h.exec(q)){g=k[0];g=g.substr(0,1).toUpperCase()+g.substr(1);break}g||(g="WebkitOpacity"in l&&"webkit");k=!!("transition"in l||g+"Transition"in l);m=!!("animation"in l||g+"Animation"in l);!d||k&&m||(k=H(l.webkitTransition),m=H(l.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hasEvent:function(a){if("input"===a&&11>=Va)return!1;if(y(c[a])){var b=f.createElement("div");c[a]="on"+a in b}return c[a]},csp:Fa(),vendorPrefix:g,transitions:k,animations:m,android:d}}]}function rf(){this.$get= +["$templateCache","$http","$q","$sce",function(b,a,c,d){function e(f,g){e.totalPendingRequests++;H(f)&&b.get(f)||(f=d.getTrustedResourceUrl(f));var h=a.defaults&&a.defaults.transformResponse;K(h)?h=h.filter(function(a){return a!==Zb}):h===Zb&&(h=null);return a.get(f,{cache:b,transformResponse:h})["finally"](function(){e.totalPendingRequests--}).then(function(a){b.put(f,a.data);return a.data},function(a){if(!g)throw ea("tpload",f,a.status,a.statusText);return c.reject(a)})}e.totalPendingRequests=0; +return e}]}function sf(){this.$get=["$rootScope","$browser","$location",function(b,a,c){return{findBindings:function(a,b,c){a=a.getElementsByClassName("ng-binding");var g=[];n(a,function(a){var d=aa.element(a).data("$binding");d&&n(d,function(d){c?(new RegExp("(^|\\s)"+ud(b)+"(\\s|\\||$)")).test(d)&&g.push(a):-1!=d.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,c){for(var g=["ng-","data-ng-","ng\\:"],h=0;hb;b=Math.abs(b);var g=Infinity===b;if(!g&&!isFinite(b))return"";var h=b+"",l="",k=!1,m=[];g&&(l="\u221e");if(!g&&-1!==h.indexOf("e")){var q=h.match(/([\d\.]+)e(-?)(\d+)/);q&&"-"==q[2]&&q[3]>e+1?b=0:(l=h,k=!0)}if(g||k)0b&&(l=b.toFixed(e),b=parseFloat(l));else{g=(h.split(Dd)[1]||"").length; +y(e)&&(e=Math.min(Math.max(a.minFrac,g),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);var g=(""+b).split(Dd),h=g[0],g=g[1]||"",q=0,s=a.lgSize,t=a.gSize;if(h.length>=s+t)for(q=h.length-s,k=0;kb&&(d="-",b=-b);for(b=""+b;b.length-c)e+=c;0===e&&-12==c&&(e=12);return Gb(e,a,d)}}function Hb(b,a){return function(c,d){var e=c["get"+b](),f=rb(a?"SHORT"+b:b);return d[f][e]}}function Ed(b){var a=(new Date(b,0,1)).getDay();return new Date(b,0,(4>=a?5:12)-a)}function Fd(b){return function(a){var c=Ed(a.getFullYear());a=+new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))- ++c;a=1+Math.round(a/6048E5);return Gb(a,b)}}function hc(b,a){return 0>=b.getFullYear()?a.ERAS[0]:a.ERAS[1]}function zd(b){function a(a){var b;if(b=a.match(c)){a=new Date(0);var f=0,g=0,h=b[8]?a.setUTCFullYear:a.setFullYear,l=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=Y(b[9]+b[10]),g=Y(b[9]+b[11]));h.call(a,Y(b[1]),Y(b[2])-1,Y(b[3]));f=Y(b[4]||0)-f;g=Y(b[5]||0)-g;h=Y(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));l.call(a,f,g,h,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/; +return function(c,e,f){var g="",h=[],l,k;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;H(c)&&(c=fg.test(c)?Y(c):a(c));X(c)&&(c=new Date(c));if(!ca(c)||!isFinite(c.getTime()))return c;for(;e;)(k=gg.exec(e))?(h=cb(h,k,1),e=h.pop()):(h.push(e),e=null);var m=c.getTimezoneOffset();f&&(m=vc(f,c.getTimezoneOffset()),c=Ob(c,f,!0));n(h,function(a){l=hg[a];g+=l?l(c,b.DATETIME_FORMATS,m):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function ag(){return function(b,a){y(a)&&(a=2);return db(b,a)}}function bg(){return function(b, +a,c){a=Infinity===Math.abs(Number(a))?Number(a):Y(a);if(isNaN(a))return b;X(b)&&(b=b.toString());if(!K(b)&&!H(b))return b;c=!c||isNaN(c)?0:Y(c);c=0>c&&c>=-b.length?b.length+c:c;return 0<=a?b.slice(c,c+a):0===c?b.slice(a,b.length):b.slice(Math.max(0,c+a),c)}}function Bd(b){function a(a,c){c=c?-1:1;return a.map(function(a){var d=1,h=Za;if(B(a))h=a;else if(H(a)){if("+"==a.charAt(0)||"-"==a.charAt(0))d="-"==a.charAt(0)?-1:1,a=a.substring(1);if(""!==a&&(h=b(a),h.constant))var l=h(),h=function(a){return a[l]}}return{get:h, +descending:d*c}})}function c(a){switch(typeof a){case "number":case "boolean":case "string":return!0;default:return!1}}return function(b,e,f){if(!Da(b))return b;K(e)||(e=[e]);0===e.length&&(e=["+"]);var g=a(e,f);g.push({get:function(){return{}},descending:f?-1:1});b=Array.prototype.map.call(b,function(a,b){return{value:a,predicateValues:g.map(function(d){var e=d.get(a);d=typeof e;if(null===e)d="string",e="null";else if("string"===d)e=e.toLowerCase();else if("object"===d)a:{if("function"===typeof e.valueOf&& +(e=e.valueOf(),c(e)))break a;if(pc(e)&&(e=e.toString(),c(e)))break a;e=b}return{value:e,type:d}})}});b.sort(function(a,b){for(var c=0,d=0,e=g.length;db||37<=b&&40>=b||m(a,this,this.value)});if(e.hasEvent("paste"))a.on("paste cut", +m)}a.on("change",l);d.$render=function(){var b=d.$isEmpty(d.$viewValue)?"":d.$viewValue;a.val()!==b&&a.val(b)}}function Kb(b,a){return function(c,d){var e,f;if(ca(c))return c;if(H(c)){'"'==c.charAt(0)&&'"'==c.charAt(c.length-1)&&(c=c.substring(1,c.length-1));if(ig.test(c))return new Date(c);b.lastIndex=0;if(e=b.exec(c))return e.shift(),f=d?{yyyy:d.getFullYear(),MM:d.getMonth()+1,dd:d.getDate(),HH:d.getHours(),mm:d.getMinutes(),ss:d.getSeconds(),sss:d.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0, +mm:0,ss:0,sss:0},n(e,function(b,c){c=r};g.$observe("min",function(a){r=s(a);h.$validate()})}if(x(g.max)||g.ngMax){var w;h.$validators.max=function(a){return!q(a)||y(w)||c(a)<=w};g.$observe("max",function(a){w=s(a);h.$validate()})}}}function Id(b,a,c,d){(d.$$hasNativeValidators=D(a[0].validity))&&d.$parsers.push(function(b){var c=a.prop("validity")||{}; +return c.badInput&&!c.typeMismatch?u:b})}function Jd(b,a,c,d,e){if(x(d)){b=b(d);if(!b.constant)throw kb("constexpr",c,d);return b(a)}return e}function jc(b,a){b="ngClass"+b;return["$animate",function(c){function d(a,b){var c=[],d=0;a:for(;d(?:<\/\1>|)$/,Sb=/<|&#?\w+;/, +Bf=/<([\w:]+)/,Cf=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,na={option:[1,'"],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};na.optgroup=na.option;na.tbody=na.tfoot=na.colgroup=na.caption=na.thead;na.th=na.td;var Ra=R.prototype={ready:function(b){function a(){c||(c=!0,b())}var c= +!1;"complete"===W.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),R(N).on("load",a))},toString:function(){var b=[];n(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?z(this[b]):z(this[this.length+b])},length:0,push:kg,sort:[].sort,splice:[].splice},Ab={};n("multiple selected checked disabled readOnly required open".split(" "),function(b){Ab[I(b)]=b});var Rc={};n("input select option textarea button form details".split(" "),function(b){Rc[b]=!0});var Sc= +{ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};n({data:Vb,removeData:ub,hasData:function(b){for(var a in gb[b.ng339])return!0;return!1}},function(b,a){R[a]=b});n({data:Vb,inheritedData:zb,scope:function(b){return z.data(b,"$scope")||zb(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return z.data(b,"$isolateScope")||z.data(b,"$isolateScopeNoTemplate")},controller:Oc,injector:function(b){return zb(b,"$injector")},removeAttr:function(b, +a){b.removeAttribute(a)},hasClass:wb,css:function(b,a,c){a=fb(a);if(x(c))b.style[a]=c;else return b.style[a]},attr:function(b,a,c){var d=b.nodeType;if(d!==Pa&&2!==d&&8!==d)if(d=I(a),Ab[d])if(x(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||v).specified?d:u;else if(x(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?u:b},prop:function(b,a,c){if(x(c))b[a]=c;else return b[a]},text:function(){function b(a, +b){if(y(b)){var d=a.nodeType;return d===pa||d===Pa?a.textContent:""}a.textContent=b}b.$dv="";return b}(),val:function(b,a){if(y(a)){if(b.multiple&&"select"===ta(b)){var c=[];n(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(y(a))return b.innerHTML;tb(b,!0);b.innerHTML=a},empty:Pc},function(b,a){R.prototype[a]=function(a,d){var e,f,g=this.length;if(b!==Pc&&(2==b.length&&b!==wb&&b!==Oc?a:d)===u){if(D(a)){for(e=0;e< +g;e++)if(b===Vb)b(this[e],a);else for(f in a)b(this[e],f,a[f]);return this}e=b.$dv;g=e===u?Math.min(g,1):g;for(f=0;f <= >= && || ! = |".split(" "),function(a){Lb[a]=!0});var rg={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v", +"'":"'",'"':'"'},ec=function(a){this.options=a};ec.prototype={constructor:ec,lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"=== +a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=x(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw da("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.index","<=",">=");)a={type:r.BinaryExpression,operator:c.text,left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a={type:r.BinaryExpression,operator:c.text,left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a={type:r.BinaryExpression,operator:c.text, +left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:r.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object():this.constants.hasOwnProperty(this.peek().text)?a=fa(this.constants[this.consume().text]):this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant(): +this.throwError("not a primary expression",this.peek());for(var c;c=this.expect("(","[",".");)"("===c.text?(a={type:r.CallExpression,callee:a,arguments:this.parseArguments()},this.consume(")")):"["===c.text?(a={type:r.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===c.text?a={type:r.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var c={type:r.CallExpression,callee:this.identifier(), +arguments:a,filter:!0};this.expect(":");)a.push(this.expression());return c},parseArguments:function(){var a=[];if(")"!==this.peekToken().text){do a.push(this.expression());while(this.expect(","))}return a},identifier:function(){var a=this.consume();a.identifier||this.throwError("is not a valid identifier",a);return{type:r.Identifier,name:a.text}},constant:function(){return{type:r.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break; +a.push(this.expression())}while(this.expect(","))}this.consume("]");return{type:r.ArrayExpression,elements:a}},object:function(){var a=[],c;if("}"!==this.peekToken().text){do{if(this.peek("}"))break;c={type:r.Property,kind:"init"};this.peek().constant?c.key=this.constant():this.peek().identifier?c.key=this.identifier():this.throwError("invalid key",this.peek());this.consume(":");c.value=this.expression();a.push(c)}while(this.expect(","))}this.consume("}");return{type:r.ObjectExpression,properties:a}}, +throwError:function(a,c){throw da("syntax",c.text,a,c.index+1,this.text,this.text.substring(c.index));},consume:function(a){if(0===this.tokens.length)throw da("ueoe",this.text);var c=this.expect(a);c||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return c},peekToken:function(){if(0===this.tokens.length)throw da("ueoe",this.text);return this.tokens[0]},peek:function(a,c,d,e){return this.peekAhead(0,a,c,d,e)},peekAhead:function(a,c,d,e,f){if(this.tokens.length>a){a=this.tokens[a]; +var g=a.text;if(g===c||g===d||g===e||g===f||!(c||d||e||f))return a}return!1},expect:function(a,c,d,e){return(a=this.peek(a,c,d,e))?(this.tokens.shift(),a):!1},constants:{"true":{type:r.Literal,value:!0},"false":{type:r.Literal,value:!1},"null":{type:r.Literal,value:null},undefined:{type:r.Literal,value:u},"this":{type:r.ThisExpression}}};rd.prototype={compile:function(a,c){var d=this,e=this.astBuilder.ast(a);this.state={nextId:0,filters:{},expensiveChecks:c,fn:{vars:[],body:[],own:{}},assign:{vars:[], +body:[],own:{}},inputs:[]};U(e,d.$filter);var f="",g;this.stage="assign";if(g=pd(e))this.state.computing="assign",f=this.nextId(),this.recurse(g,f),f="fn.assign="+this.generateFunction("assign","s,v,l");g=nd(e.body);d.stage="inputs";n(g,function(a,c){var e="fn"+c;d.state[e]={vars:[],body:[],own:{}};d.state.computing=e;var f=d.nextId();d.recurse(a,f);d.return_(f);d.state.inputs.push(e);a.watchId=c});this.state.computing="fn";this.stage="main";this.recurse(e);f='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+ +"var fn="+this.generateFunction("fn","s,l,a,i")+f+this.watchFns()+"return fn;";f=(new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","ifDefined","plus","text",f))(this.$filter,Wa,Ba,ld,Xf,md,a);this.state=this.stage=u;f.literal=qd(e);f.constant=e.constant;return f},USE:"use",STRICT:"strict",watchFns:function(){var a=[],c=this.state.inputs,d=this;n(c,function(c){a.push("var "+c+"="+d.generateFunction(c,"s"))});c.length&&a.push("fn.inputs=["+c.join(",")+"];");return a.join("")}, +generateFunction:function(a,c){return"function("+c+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a=[],c=this;n(this.state.filters,function(d,e){a.push(d+"=$filter("+c.escape(e)+")")});return a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")},recurse:function(a,c,d,e,f,g){var h,l,k=this,m,q;e=e||v;if(!g&&x(a.watchId))c=c||this.nextId(),this.if_("i", +this.lazyAssign(c,this.computedMember("i",a.watchId)),this.lazyRecurse(a,c,d,e,f,!0));else switch(a.type){case r.Program:n(a.body,function(c,d){k.recurse(c.expression,u,u,function(a){l=a});d!==a.body.length-1?k.current().body.push(l,";"):k.return_(l)});break;case r.Literal:q=this.escape(a.value);this.assign(c,q);e(q);break;case r.UnaryExpression:this.recurse(a.argument,u,u,function(a){l=a});q=a.operator+"("+this.ifDefined(l,0)+")";this.assign(c,q);e(q);break;case r.BinaryExpression:this.recurse(a.left, +u,u,function(a){h=a});this.recurse(a.right,u,u,function(a){l=a});q="+"===a.operator?this.plus(h,l):"-"===a.operator?this.ifDefined(h,0)+a.operator+this.ifDefined(l,0):"("+h+")"+a.operator+"("+l+")";this.assign(c,q);e(q);break;case r.LogicalExpression:c=c||this.nextId();k.recurse(a.left,c);k.if_("&&"===a.operator?c:k.not(c),k.lazyRecurse(a.right,c));e(c);break;case r.ConditionalExpression:c=c||this.nextId();k.recurse(a.test,c);k.if_(c,k.lazyRecurse(a.alternate,c),k.lazyRecurse(a.consequent,c));e(c); +break;case r.Identifier:c=c||this.nextId();d&&(d.context="inputs"===k.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",a.name)+"?l:s"),d.computed=!1,d.name=a.name);Wa(a.name);k.if_("inputs"===k.stage||k.not(k.getHasOwnProperty("l",a.name)),function(){k.if_("inputs"===k.stage||"s",function(){f&&1!==f&&k.if_(k.not(k.nonComputedMember("s",a.name)),k.lazyAssign(k.nonComputedMember("s",a.name),"{}"));k.assign(c,k.nonComputedMember("s",a.name))})},c&&k.lazyAssign(c,k.nonComputedMember("l", +a.name)));(k.state.expensiveChecks||Fb(a.name))&&k.addEnsureSafeObject(c);e(c);break;case r.MemberExpression:h=d&&(d.context=this.nextId())||this.nextId();c=c||this.nextId();k.recurse(a.object,h,u,function(){k.if_(k.notNull(h),function(){if(a.computed)l=k.nextId(),k.recurse(a.property,l),k.addEnsureSafeMemberName(l),f&&1!==f&&k.if_(k.not(k.computedMember(h,l)),k.lazyAssign(k.computedMember(h,l),"{}")),q=k.ensureSafeObject(k.computedMember(h,l)),k.assign(c,q),d&&(d.computed=!0,d.name=l);else{Wa(a.property.name); +f&&1!==f&&k.if_(k.not(k.nonComputedMember(h,a.property.name)),k.lazyAssign(k.nonComputedMember(h,a.property.name),"{}"));q=k.nonComputedMember(h,a.property.name);if(k.state.expensiveChecks||Fb(a.property.name))q=k.ensureSafeObject(q);k.assign(c,q);d&&(d.computed=!1,d.name=a.property.name)}},function(){k.assign(c,"undefined")});e(c)},!!f);break;case r.CallExpression:c=c||this.nextId();a.filter?(l=k.filter(a.callee.name),m=[],n(a.arguments,function(a){var c=k.nextId();k.recurse(a,c);m.push(c)}),q=l+ +"("+m.join(",")+")",k.assign(c,q),e(c)):(l=k.nextId(),h={},m=[],k.recurse(a.callee,l,h,function(){k.if_(k.notNull(l),function(){k.addEnsureSafeFunction(l);n(a.arguments,function(a){k.recurse(a,k.nextId(),u,function(a){m.push(k.ensureSafeObject(a))})});h.name?(k.state.expensiveChecks||k.addEnsureSafeObject(h.context),q=k.member(h.context,h.name,h.computed)+"("+m.join(",")+")"):q=l+"("+m.join(",")+")";q=k.ensureSafeObject(q);k.assign(c,q)},function(){k.assign(c,"undefined")});e(c)}));break;case r.AssignmentExpression:l= +this.nextId();h={};if(!od(a.left))throw da("lval");this.recurse(a.left,u,h,function(){k.if_(k.notNull(h.context),function(){k.recurse(a.right,l);k.addEnsureSafeObject(k.member(h.context,h.name,h.computed));q=k.member(h.context,h.name,h.computed)+a.operator+l;k.assign(c,q);e(c||q)})},1);break;case r.ArrayExpression:m=[];n(a.elements,function(a){k.recurse(a,k.nextId(),u,function(a){m.push(a)})});q="["+m.join(",")+"]";this.assign(c,q);e(q);break;case r.ObjectExpression:m=[];n(a.properties,function(a){k.recurse(a.value, +k.nextId(),u,function(c){m.push(k.escape(a.key.type===r.Identifier?a.key.name:""+a.key.value)+":"+c)})});q="{"+m.join(",")+"}";this.assign(c,q);e(q);break;case r.ThisExpression:this.assign(c,"s");e("s");break;case r.NGValueParameter:this.assign(c,"v"),e("v")}},getHasOwnProperty:function(a,c){var d=a+"."+c,e=this.current().own;e.hasOwnProperty(d)||(e[d]=this.nextId(!1,a+"&&("+this.escape(c)+" in "+a+")"));return e[d]},assign:function(a,c){if(a)return this.current().body.push(a,"=",c,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)|| +(this.state.filters[a]=this.nextId(!0));return this.state.filters[a]},ifDefined:function(a,c){return"ifDefined("+a+","+this.escape(c)+")"},plus:function(a,c){return"plus("+a+","+c+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a,c,d){if(!0===a)c();else{var e=this.current().body;e.push("if(",a,"){");c();e.push("}");d&&(e.push("else{"),d(),e.push("}"))}},not:function(a){return"!("+a+")"},notNull:function(a){return a+"!=null"},nonComputedMember:function(a,c){return a+ +"."+c},computedMember:function(a,c){return a+"["+c+"]"},member:function(a,c,d){return d?this.computedMember(a,c):this.nonComputedMember(a,c)},addEnsureSafeObject:function(a){this.current().body.push(this.ensureSafeObject(a),";")},addEnsureSafeMemberName:function(a){this.current().body.push(this.ensureSafeMemberName(a),";")},addEnsureSafeFunction:function(a){this.current().body.push(this.ensureSafeFunction(a),";")},ensureSafeObject:function(a){return"ensureSafeObject("+a+",text)"},ensureSafeMemberName:function(a){return"ensureSafeMemberName("+ +a+",text)"},ensureSafeFunction:function(a){return"ensureSafeFunction("+a+",text)"},lazyRecurse:function(a,c,d,e,f,g){var h=this;return function(){h.recurse(a,c,d,e,f,g)}},lazyAssign:function(a,c){var d=this;return function(){d.assign(a,c)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(H(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(X(a))return a.toString();if(!0===a)return"true"; +if(!1===a)return"false";if(null===a)return"null";if("undefined"===typeof a)return"undefined";throw da("esc");},nextId:function(a,c){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(c?"="+c:""));return d},current:function(){return this.state[this.state.computing]}};sd.prototype={compile:function(a,c){var d=this,e=this.astBuilder.ast(a);this.expression=a;this.expensiveChecks=c;U(e,d.$filter);var f,g;if(f=pd(e))g=this.recurse(f);f=nd(e.body);var h;f&&(h=[],n(f,function(a,c){var e=d.recurse(a); +a.input=e;h.push(e);a.watchId=c}));var l=[];n(e.body,function(a){l.push(d.recurse(a.expression))});f=0===e.body.length?function(){}:1===e.body.length?l[0]:function(a,c){var d;n(l,function(e){d=e(a,c)});return d};g&&(f.assign=function(a,c,d){return g(a,d,c)});h&&(f.inputs=h);f.literal=qd(e);f.constant=e.constant;return f},recurse:function(a,c,d){var e,f,g=this,h;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case r.Literal:return this.value(a.value,c);case r.UnaryExpression:return f= +this.recurse(a.argument),this["unary"+a.operator](f,c);case r.BinaryExpression:return e=this.recurse(a.left),f=this.recurse(a.right),this["binary"+a.operator](e,f,c);case r.LogicalExpression:return e=this.recurse(a.left),f=this.recurse(a.right),this["binary"+a.operator](e,f,c);case r.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),c);case r.Identifier:return Wa(a.name,g.expression),g.identifier(a.name,g.expensiveChecks||Fb(a.name), +c,d,g.expression);case r.MemberExpression:return e=this.recurse(a.object,!1,!!d),a.computed||(Wa(a.property.name,g.expression),f=a.property.name),a.computed&&(f=this.recurse(a.property)),a.computed?this.computedMember(e,f,c,d,g.expression):this.nonComputedMember(e,f,g.expensiveChecks,c,d,g.expression);case r.CallExpression:return h=[],n(a.arguments,function(a){h.push(g.recurse(a))}),a.filter&&(f=this.$filter(a.callee.name)),a.filter||(f=this.recurse(a.callee,!0)),a.filter?function(a,d,e,g){for(var n= +[],t=0;t":function(a,c,d){return function(e,f,g,h){e=a(e,f,g,h)>c(e,f,g,h);return d?{value:e}:e}},"binary<=":function(a,c,d){return function(e, +f,g,h){e=a(e,f,g,h)<=c(e,f,g,h);return d?{value:e}:e}},"binary>=":function(a,c,d){return function(e,f,g,h){e=a(e,f,g,h)>=c(e,f,g,h);return d?{value:e}:e}},"binary&&":function(a,c,d){return function(e,f,g,h){e=a(e,f,g,h)&&c(e,f,g,h);return d?{value:e}:e}},"binary||":function(a,c,d){return function(e,f,g,h){e=a(e,f,g,h)||c(e,f,g,h);return d?{value:e}:e}},"ternary?:":function(a,c,d,e){return function(f,g,h,l){f=a(f,g,h,l)?c(f,g,h,l):d(f,g,h,l);return e?{value:f}:f}},value:function(a,c){return function(){return c? +{context:u,name:u,value:a}:a}},identifier:function(a,c,d,e,f){return function(g,h,l,k){g=h&&a in h?h:g;e&&1!==e&&g&&!g[a]&&(g[a]={});h=g?g[a]:u;c&&Ba(h,f);return d?{context:g,name:a,value:h}:h}},computedMember:function(a,c,d,e,f){return function(g,h,l,k){var m=a(g,h,l,k),q,n;null!=m&&(q=c(g,h,l,k),Wa(q,f),e&&1!==e&&m&&!m[q]&&(m[q]={}),n=m[q],Ba(n,f));return d?{context:m,name:q,value:n}:n}},nonComputedMember:function(a,c,d,e,f,g){return function(h,l,k,m){h=a(h,l,k,m);f&&1!==f&&h&&!h[c]&&(h[c]={}); +l=null!=h?h[c]:u;(d||Fb(c))&&Ba(l,g);return e?{context:h,name:c,value:l}:l}},inputs:function(a,c){return function(d,e,f,g){return g?g[c]:a(d,e,f)}}};var fc=function(a,c,d){this.lexer=a;this.$filter=c;this.options=d;this.ast=new r(this.lexer);this.astCompiler=d.csp?new sd(this.ast,c):new rd(this.ast,c)};fc.prototype={constructor:fc,parse:function(a){return this.astCompiler.compile(a,this.options.expensiveChecks)}};ga();ga();var Yf=Object.prototype.valueOf,Ca=G("$sce"),oa={HTML:"html",CSS:"css",URL:"url", +RESOURCE_URL:"resourceUrl",JS:"js"},ea=G("$compile"),Z=W.createElement("a"),wd=Aa(N.location.href);xd.$inject=["$document"];Jc.$inject=["$provide"];yd.$inject=["$locale"];Ad.$inject=["$locale"];var Dd=".",hg={yyyy:$("FullYear",4),yy:$("FullYear",2,0,!0),y:$("FullYear",1),MMMM:Hb("Month"),MMM:Hb("Month",!0),MM:$("Month",2,1),M:$("Month",1,1),dd:$("Date",2),d:$("Date",1),HH:$("Hours",2),H:$("Hours",1),hh:$("Hours",2,-12),h:$("Hours",1,-12),mm:$("Minutes",2),m:$("Minutes",1),ss:$("Seconds",2),s:$("Seconds", +1),sss:$("Milliseconds",3),EEEE:Hb("Day"),EEE:Hb("Day",!0),a:function(a,c){return 12>a.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a,c,d){a=-1*d;return a=(0<=a?"+":"")+(Gb(Math[0=a.getFullYear()?c.ERANAMES[0]:c.ERANAMES[1]}},gg=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,fg=/^\-?\d+$/;zd.$inject=["$locale"];var cg=qa(I),dg=qa(rb);Bd.$inject= +["$parse"];var he=qa({restrict:"E",compile:function(a,c){if(!c.href&&!c.xlinkHref)return function(a,c){if("a"===c[0].nodeName.toLowerCase()){var f="[object SVGAnimatedString]"===sa.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}}),sb={};n(Ab,function(a,c){function d(a,d,f){a.$watch(f[e],function(a){f.$set(c,!!a)})}if("multiple"!=a){var e=va("ng-"+c),f=d;"checked"===a&&(f=function(a,c,f){f.ngModel!==f[e]&&d(a,c,f)});sb[e]=function(){return{restrict:"A", +priority:100,link:f}}}});n(Sc,function(a,c){sb[c]=function(){return{priority:100,link:function(a,e,f){if("ngPattern"===c&&"/"==f.ngPattern.charAt(0)&&(e=f.ngPattern.match(jg))){f.$set("ngPattern",new RegExp(e[1],e[2]));return}a.$watch(f[c],function(a){f.$set(c,a)})}}}});n(["src","srcset","href"],function(a){var c=va("ng-"+a);sb[c]=function(){return{priority:99,link:function(d,e,f){var g=a,h=a;"href"===a&&"[object SVGAnimatedString]"===sa.call(e.prop("href"))&&(h="xlinkHref",f.$attr[h]="xlink:href", +g=null);f.$observe(c,function(c){c?(f.$set(h,c),Va&&g&&e.prop(g,f[h])):"href"===a&&f.$set(h,null)})}}}});var Ib={$addControl:v,$$renameControl:function(a,c){a.$name=c},$removeControl:v,$setValidity:v,$setDirty:v,$setPristine:v,$setSubmitted:v};Gd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Od=function(a){return["$timeout","$parse",function(c,d){function e(a){return""===a?d('this[""]').assign:d(a).assign||v}return{name:"form",restrict:a?"EAC":"E",controller:Gd,compile:function(d, +g){d.addClass(Xa).addClass(lb);var h=g.name?"name":a&&g.ngForm?"ngForm":!1;return{pre:function(a,d,f,g){if(!("action"in f)){var n=function(c){a.$apply(function(){g.$commitViewValue();g.$setSubmitted()});c.preventDefault()};d[0].addEventListener("submit",n,!1);d.on("$destroy",function(){c(function(){d[0].removeEventListener("submit",n,!1)},0,!1)})}var t=g.$$parentForm,r=h?e(g.$name):v;h&&(r(a,g),f.$observe(h,function(c){g.$name!==c&&(r(a,u),t.$$renameControl(g,c),r=e(g.$name),r(a,g))}));d.on("$destroy", +function(){t.$removeControl(g);r(a,u);Q(g,Ib)})}}}}}]},ie=Od(),ve=Od(!0),ig=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,sg=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,tg=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,ug=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Pd=/^(\d{4})-(\d{2})-(\d{2})$/,Qd=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,kc=/^(\d{4})-W(\d\d)$/, +Rd=/^(\d{4})-(\d\d)$/,Sd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Td={text:function(a,c,d,e,f,g){ib(a,c,d,e,f,g);ic(e)},date:jb("date",Pd,Kb(Pd,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":jb("datetimelocal",Qd,Kb(Qd,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:jb("time",Sd,Kb(Sd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:jb("week",kc,function(a,c){if(ca(a))return a;if(H(a)){kc.lastIndex=0;var d=kc.exec(a);if(d){var e=+d[1],f=+d[2],g=d=0,h=0,l=0,k=Ed(e),f=7*(f-1); +c&&(d=c.getHours(),g=c.getMinutes(),h=c.getSeconds(),l=c.getMilliseconds());return new Date(e,0,k.getDate()+f,d,g,h,l)}}return NaN},"yyyy-Www"),month:jb("month",Rd,Kb(Rd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,g){Id(a,c,d,e);ib(a,c,d,e,f,g);e.$$parserName="number";e.$parsers.push(function(a){return e.$isEmpty(a)?null:ug.test(a)?parseFloat(a):u});e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!X(a))throw kb("numfmt",a);a=a.toString()}return a});if(x(d.min)||d.ngMin){var h;e.$validators.min= +function(a){return e.$isEmpty(a)||y(h)||a>=h};d.$observe("min",function(a){x(a)&&!X(a)&&(a=parseFloat(a,10));h=X(a)&&!isNaN(a)?a:u;e.$validate()})}if(x(d.max)||d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)||y(l)||a<=l};d.$observe("max",function(a){x(a)&&!X(a)&&(a=parseFloat(a,10));l=X(a)&&!isNaN(a)?a:u;e.$validate()})}},url:function(a,c,d,e,f,g){ib(a,c,d,e,f,g);ic(e);e.$$parserName="url";e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||sg.test(d)}},email:function(a, +c,d,e,f,g){ib(a,c,d,e,f,g);ic(e);e.$$parserName="email";e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||tg.test(d)}},radio:function(a,c,d,e){y(d.name)&&c.attr("name",++mb);c.on("click",function(a){c[0].checked&&e.$setViewValue(d.value,a&&a.type)});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,g,h,l){var k=Jd(l,a,"ngTrueValue",d.ngTrueValue,!0),m=Jd(l,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click",function(a){e.$setViewValue(c[0].checked, +a&&a.type)});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return!1===a};e.$formatters.push(function(a){return ka(a,k)});e.$parsers.push(function(a){return a?k:m})},hidden:v,button:v,submit:v,reset:v,file:v},Dc=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,g,h,l){l[0]&&(Td[I(h.type)]||Td.text)(f,g,h,l[0],c,a,d,e)}}}}],vg=/^(true|false|\d+)$/,Ne=function(){return{restrict:"A",priority:100,compile:function(a, +c){return vg.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value",a)})}}}},ne=["$compile",function(a){return{restrict:"AC",compile:function(c){a.$$addBindingClass(c);return function(c,e,f){a.$$addBindingInfo(e,f.ngBind);e=e[0];c.$watch(f.ngBind,function(a){e.textContent=a===u?"":a})}}}}],pe=["$interpolate","$compile",function(a,c){return{compile:function(d){c.$$addBindingClass(d);return function(d,f,g){d=a(f.attr(g.$attr.ngBindTemplate)); +c.$$addBindingInfo(f,d.expressions);f=f[0];g.$observe("ngBindTemplate",function(a){f.textContent=a===u?"":a})}}}}],oe=["$sce","$parse","$compile",function(a,c,d){return{restrict:"A",compile:function(e,f){var g=c(f.ngBindHtml),h=c(f.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(e);return function(c,e,f){d.$$addBindingInfo(e,f.ngBindHtml);c.$watch(h,function(){e.html(a.getTrustedHtml(g(c))||"")})}}}}],Me=qa({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}), +qe=jc("",!0),se=jc("Odd",0),re=jc("Even",1),te=Ma({compile:function(a,c){c.$set("ngCloak",u);a.removeClass("ng-cloak")}}),ue=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Ic={},wg={blur:!0,focus:!0};n("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=va("ng-"+a);Ic[c]=["$parse","$rootScope",function(d,e){return{restrict:"A",compile:function(f,g){var h= +d(g[c],null,!0);return function(c,d){d.on(a,function(d){var f=function(){h(c,{$event:d})};wg[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var xe=["$animate",function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var h,l,k;c.$watch(e.ngIf,function(c){c?l||g(function(c,f){l=f;c[c.length++]=W.createComment(" end ngIf: "+e.ngIf+" ");h={clone:c};a.enter(c,d.parent(),d)}):(k&&(k.remove(),k=null),l&&(l.$destroy(),l=null),h&&(k= +qb(h.clone),a.leave(k).then(function(){k=null}),h=null))})}}}],ye=["$templateRequest","$anchorScroll","$animate",function(a,c,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:aa.noop,compile:function(e,f){var g=f.ngInclude||f.src,h=f.onload||"",l=f.autoscroll;return function(e,f,n,s,r){var u=0,v,w,p,A=function(){w&&(w.remove(),w=null);v&&(v.$destroy(),v=null);p&&(d.leave(p).then(function(){w=null}),w=p,p=null)};e.$watch(g,function(g){var n=function(){!x(l)||l&&!e.$eval(l)|| +c()},q=++u;g?(a(g,!0).then(function(a){if(q===u){var c=e.$new();s.template=a;a=r(c,function(a){A();d.enter(a,null,f).then(n)});v=c;p=a;v.$emit("$includeContentLoaded",g);e.$eval(h)}},function(){q===u&&(A(),e.$emit("$includeContentError",g))}),e.$emit("$includeContentRequested",g)):(A(),s.template=null)})}}}}],Pe=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Lc(f.template,W).childNodes)(c,function(a){d.append(a)}, +{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}],ze=Ma({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),Le=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)||", ",g="false"!==d.ngTrim,h=g?T(f):f;e.$parsers.push(function(a){if(!y(a)){var c=[];a&&n(a.split(h),function(a){a&&c.push(g?T(a):a)});return c}});e.$formatters.push(function(a){return K(a)?a.join(f):u});e.$isEmpty=function(a){return!a|| +!a.length}}}},lb="ng-valid",Kd="ng-invalid",Xa="ng-pristine",Jb="ng-dirty",Md="ng-pending",kb=G("ngModel"),xg=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,g,h,l,k,m){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=u;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1; +this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=u;this.$name=m(d.name||"",!1)(a);var q=f(d.ngModel),s=q.assign,r=q,E=s,L=null,w,p=this;this.$$setOptions=function(a){if((p.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),g=f(d.ngModel+"($$$p)");r=function(a){var d=q(a);B(d)&&(d=c(a));return d};E=function(a,c){B(q(a))?g(a,{$$$p:p.$modelValue}):s(a,p.$modelValue)}}else if(!q.assign)throw kb("nonassign",d.ngModel,ua(e));};this.$render=v;this.$isEmpty=function(a){return y(a)|| +""===a||null===a||a!==a};var A=e.inheritedData("$formController")||Ib,z=0;Hd({ctrl:this,$element:e,set:function(a,c){a[c]=!0},unset:function(a,c){delete a[c]},parentForm:A,$animate:g});this.$setPristine=function(){p.$dirty=!1;p.$pristine=!0;g.removeClass(e,Jb);g.addClass(e,Xa)};this.$setDirty=function(){p.$dirty=!0;p.$pristine=!1;g.removeClass(e,Xa);g.addClass(e,Jb);A.$setDirty()};this.$setUntouched=function(){p.$touched=!1;p.$untouched=!0;g.setClass(e,"ng-untouched","ng-touched")};this.$setTouched= +function(){p.$touched=!0;p.$untouched=!1;g.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){h.cancel(L);p.$viewValue=p.$$lastCommittedViewValue;p.$render()};this.$validate=function(){if(!X(p.$modelValue)||!isNaN(p.$modelValue)){var a=p.$$rawModelValue,c=p.$valid,d=p.$modelValue,e=p.$options&&p.$options.allowInvalid;p.$$runValidators(a,p.$$lastCommittedViewValue,function(f){e||c===f||(p.$modelValue=f?a:u,p.$modelValue!==d&&p.$$writeModelToScope())})}};this.$$runValidators= +function(a,c,d){function e(){var d=!0;n(p.$validators,function(e,f){var h=e(a,c);d=d&&h;g(f,h)});return d?!0:(n(p.$asyncValidators,function(a,c){g(c,null)}),!1)}function f(){var d=[],e=!0;n(p.$asyncValidators,function(f,h){var k=f(a,c);if(!k||!B(k.then))throw kb("$asyncValidators",k);g(h,u);d.push(k.then(function(){g(h,!0)},function(a){e=!1;g(h,!1)}))});d.length?k.all(d).then(function(){h(e)},v):h(!0)}function g(a,c){l===z&&p.$setValidity(a,c)}function h(a){l===z&&d(a)}z++;var l=z;(function(){var a= +p.$$parserName||"parse";if(w===u)g(a,null);else return w||(n(p.$validators,function(a,c){g(c,null)}),n(p.$asyncValidators,function(a,c){g(c,null)})),g(a,w),w;return!0})()?e()?f():h(!1):h(!1)};this.$commitViewValue=function(){var a=p.$viewValue;h.cancel(L);if(p.$$lastCommittedViewValue!==a||""===a&&p.$$hasNativeValidators)p.$$lastCommittedViewValue=a,p.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=p.$$lastCommittedViewValue;if(w=y(c)?u:!0)for(var d= +0;df||e.$isEmpty(c)||c.length<=f}}}}},Gc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=0;d.$observe("minlength",function(a){f=Y(a)||0;e.$validate()});e.$validators.minlength=function(a,c){return e.$isEmpty(c)||c.length>=f}}}}};N.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(ce(),ee(aa),aa.module("ngLocale",[],["$provide",function(a){function c(a){a+="";var c=a.indexOf(".");return-1== +c?0:a.length-c-1}a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:"January February March April May June July August September October November December".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y", +medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-\u00a4",negSuf:"",posPre:"\u00a4",posSuf:""}]},id:"en-us",pluralCat:function(a,e){var f=a|0,g=e;u===g&&(g=Math.min(c(a),3));Math.pow(10,g);return 1== +f&&0==g?"one":"other"}})}]),z(W).ready(function(){Zd(W,yc)}))})(window,document);!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend(''); //# sourceMappingURL=angular.min.js.map diff --git a/dist/public/lib/js/angular.min.js.map b/dist/public/lib/js/angular.min.js.map index 3a34c29e..150f24df 100644 --- a/dist/public/lib/js/angular.min.js.map +++ b/dist/public/lib/js/angular.min.js.map @@ -1,8 +1,8 @@ { "version":3, "file":"angular.min.js", -"lineCount":251, -"mappings":"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", +"lineCount":292, +"mappings":"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", "sources":["angular.js"], -"names":["window","document","undefined","minErr","isArrayLike","obj","isWindow","length","Object","nodeType","NODE_TYPE_ELEMENT","isString","isArray","forEach","iterator","context","key","isFunction","hasOwnProperty","call","isPrimitive","forEachSorted","keys","sort","i","reverseParams","iteratorFn","value","nextUid","uid","setHashKey","h","$$hashKey","extend","dst","ii","arguments","j","jj","int","str","parseInt","inherit","parent","extra","create","noop","identity","$","valueFn","isUndefined","isDefined","isObject","isNumber","isDate","toString","isRegExp","isScope","$evalAsync","$watch","isBoolean","isElement","node","nodeName","prop","attr","find","makeMap","items","split","nodeName_","element","lowercase","arrayRemove","array","index","indexOf","splice","copy","source","destination","stackSource","stackDest","ngMinErr","push","result","Date","getTime","RegExp","match","lastIndex","emptyObject","getPrototypeOf","shallowCopy","src","charAt","equals","o1","o2","t1","t2","keySet","concat","array1","array2","slice","bind","self","fn","curryArgs","startIndex","apply","toJsonReplacer","val","toJson","pretty","JSON","stringify","fromJson","json","parse","startingTag","jqLite","clone","empty","e","elemHtml","append","html","NODE_TYPE_TEXT","replace","tryDecodeURIComponent","decodeURIComponent","parseKeyValue","keyValue","key_value","toKeyValue","parts","arrayValue","encodeUriQuery","join","encodeUriSegment","pctEncodeSpaces","encodeURIComponent","getNgAttribute","ngAttr","ngAttrPrefixes","angularInit","bootstrap","appElement","module","config","prefix","name","hasAttribute","getAttribute","candidate","querySelector","strictDi","modules","defaultConfig","doBootstrap","injector","tag","unshift","$provide","debugInfoEnabled","$compileProvider","createInjector","invoke","bootstrapApply","scope","compile","$apply","data","NG_ENABLE_DEBUG_INFO","NG_DEFER_BOOTSTRAP","test","angular","resumeBootstrap","angular.resumeBootstrap","extraModules","resumeDeferredBootstrap","reloadWithDebugInfo","location","reload","getTestability","rootElement","get","snake_case","separator","SNAKE_CASE_REGEXP","letter","pos","toLowerCase","bindJQuery","originalCleanData","bindJQueryFired","jQuery","on","JQLitePrototype","isolateScope","controller","inheritedData","cleanData","jQuery.cleanData","elems","events","skipDestroyOnNextJQueryCleanData","elem","_data","$destroy","triggerHandler","JQLite","assertArg","arg","reason","assertArgFn","acceptArrayAnnotation","constructor","assertNotHasOwnProperty","getter","path","bindFnToScope","lastInstance","len","getBlockNodes","nodes","endNode","blockNodes","nextSibling","createMap","setupModuleLoader","ensure","factory","$injectorMinErr","$$minErr","requires","configFn","invokeLater","provider","method","insertMethod","queue","invokeQueue","moduleInstance","configBlocks","runBlocks","_invokeQueue","_configBlocks","_runBlocks","service","constant","animation","filter","directive","run","block","publishExternalAPI","version","uppercase","counter","csp","angularModule","$LocaleProvider","ngModule","$$sanitizeUri","$$SanitizeUriProvider","$CompileProvider","a","htmlAnchorDirective","input","inputDirective","textarea","form","formDirective","script","scriptDirective","select","selectDirective","style","styleDirective","option","optionDirective","ngBind","ngBindDirective","ngBindHtml","ngBindHtmlDirective","ngBindTemplate","ngBindTemplateDirective","ngClass","ngClassDirective","ngClassEven","ngClassEvenDirective","ngClassOdd","ngClassOddDirective","ngCloak","ngCloakDirective","ngController","ngControllerDirective","ngForm","ngFormDirective","ngHide","ngHideDirective","ngIf","ngIfDirective","ngInclude","ngIncludeDirective","ngInit","ngInitDirective","ngNonBindable","ngNonBindableDirective","ngPluralize","ngPluralizeDirective","ngRepeat","ngRepeatDirective","ngShow","ngShowDirective","ngStyle","ngStyleDirective","ngSwitch","ngSwitchDirective","ngSwitchWhen","ngSwitchWhenDirective","ngSwitchDefault","ngSwitchDefaultDirective","ngOptions","ngOptionsDirective","ngTransclude","ngTranscludeDirective","ngModel","ngModelDirective","ngList","ngListDirective","ngChange","ngChangeDirective","pattern","patternDirective","ngPattern","required","requiredDirective","ngRequired","minlength","minlengthDirective","ngMinlength","maxlength","maxlengthDirective","ngMaxlength","ngValue","ngValueDirective","ngModelOptions","ngModelOptionsDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$anchorScroll","$AnchorScrollProvider","$animate","$AnimateProvider","$browser","$BrowserProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$document","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$httpBackend","$HttpBackendProvider","$location","$LocationProvider","$log","$LogProvider","$parse","$ParseProvider","$rootScope","$RootScopeProvider","$q","$QProvider","$$q","$$QProvider","$sce","$SceProvider","$sceDelegate","$SceDelegateProvider","$sniffer","$SnifferProvider","$templateCache","$TemplateCacheProvider","$templateRequest","$TemplateRequestProvider","$$testability","$$TestabilityProvider","$timeout","$TimeoutProvider","$window","$WindowProvider","$$rAF","$$RAFProvider","$$asyncCallback","$$AsyncCallbackProvider","$$jqLite","$$jqLiteProvider","camelCase","SPECIAL_CHARS_REGEXP","_","offset","toUpperCase","MOZ_HACK_REGEXP","jqLiteAcceptsData","NODE_TYPE_DOCUMENT","jqLiteBuildFragment","tmp","fragment","createDocumentFragment","HTML_REGEXP","appendChild","createElement","TAG_NAME_REGEXP","exec","wrap","wrapMap","_default","innerHTML","XHTML_TAG_REGEXP","lastChild","childNodes","firstChild","textContent","createTextNode","argIsString","trim","jqLiteMinErr","parsed","SINGLE_TAG_REGEXP","jqLiteAddNodes","jqLiteClone","cloneNode","jqLiteDealoc","onlyDescendants","jqLiteRemoveData","querySelectorAll","descendants","l","jqLiteOff","type","unsupported","expandoStore","jqLiteExpandoStore","handle","listenerFns","removeEventListener","expandoId","ng339","jqCache","createIfNecessary","jqId","jqLiteData","isSimpleSetter","isSimpleGetter","massGetter","jqLiteHasClass","selector","jqLiteRemoveClass","cssClasses","setAttribute","cssClass","jqLiteAddClass","existingClasses","root","elements","jqLiteController","jqLiteInheritedData","documentElement","names","parentNode","NODE_TYPE_DOCUMENT_FRAGMENT","host","jqLiteEmpty","removeChild","jqLiteRemove","keepData","jqLiteDocumentLoaded","action","win","readyState","setTimeout","getBooleanAttrName","booleanAttr","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","getAliasedAttrName","ALIASED_ATTR","createEventHandler","eventHandler","event","isDefaultPrevented","event.isDefaultPrevented","defaultPrevented","eventFns","eventFnsLength","immediatePropagationStopped","originalStopImmediatePropagation","stopImmediatePropagation","event.stopImmediatePropagation","stopPropagation","isImmediatePropagationStopped","event.isImmediatePropagationStopped","$get","this.$get","hasClass","classes","addClass","removeClass","hashKey","nextUidFn","objType","HashMap","isolatedUid","this.nextUid","put","anonFn","args","fnText","STRIP_COMMENTS","FN_ARGS","modulesToLoad","supportObject","delegate","provider_","providerInjector","instantiate","providerCache","providerSuffix","enforceReturnValue","enforcedReturnValue","instanceInjector","factoryFn","enforce","loadModules","moduleFn","runInvokeQueue","invokeArgs","loadedModules","message","stack","createInternalInjector","cache","getService","serviceName","caller","INSTANTIATING","err","shift","locals","$inject","$$annotate","Type","instance","prototype","returnedValue","annotate","has","$injector","instanceCache","decorator","decorFn","origProvider","orig$get","origProvider.$get","origInstance","$delegate","autoScrollingEnabled","disableAutoScrolling","this.disableAutoScrolling","getFirstAnchor","list","Array","some","scrollTo","scrollIntoView","scroll","yOffset","getComputedStyle","position","getBoundingClientRect","bottom","elemTop","top","scrollBy","hash","elm","getElementById","getElementsByName","autoScrollWatch","autoScrollWatchAction","newVal","oldVal","supported","Browser","completeOutstandingRequest","outstandingRequestCount","outstandingRequestCallbacks","pop","error","startPoller","interval","check","pollFns","pollFn","pollTimeout","cacheStateAndFireUrlChange","cacheState","fireUrlChange","history","state","cachedState","lastCachedState","lastBrowserUrl","url","lastHistoryState","urlChangeListeners","listener","safeDecodeURIComponent","rawDocument","clearTimeout","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","self.$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","self.notifyWhenNoOutstandingRequests","callback","addPollFn","self.addPollFn","href","baseElement","reloadLocation","self.url","sameState","sameBase","stripHash","substr","self.state","urlChangeInit","onUrlChange","self.onUrlChange","$$checkUrlChange","baseHref","self.baseHref","lastCookies","lastCookieString","cookiePath","cookies","self.cookies","cookieLength","cookie","warn","cookieArray","substring","defer","self.defer","delay","timeoutId","cancel","self.defer.cancel","deferId","cacheFactory","cacheId","options","refresh","entry","freshEnd","staleEnd","n","link","p","nextEntry","prevEntry","caches","size","stats","id","capacity","Number","MAX_VALUE","lruHash","lruEntry","remove","removeAll","destroy","info","cacheFactory.info","cacheFactory.get","$$sanitizeUriProvider","parseIsolateBindings","directiveName","LOCAL_REGEXP","bindings","definition","scopeName","$compileMinErr","mode","collection","optional","attrName","assertValidDirectiveName","hasDirectives","COMMENT_DIRECTIVE_REGEXP","CLASS_DIRECTIVE_REGEXP","ALL_OR_NOTHING_ATTRS","REQUIRE_PREFIX_REGEXP","EVENT_HANDLER_ATTR_REGEXP","this.directive","registerDirective","directiveFactory","Suffix","directives","priority","require","restrict","$$isolateBindings","aHrefSanitizationWhitelist","this.aHrefSanitizationWhitelist","regexp","imgSrcSanitizationWhitelist","this.imgSrcSanitizationWhitelist","this.debugInfoEnabled","enabled","safeAddClass","$element","className","$compileNodes","transcludeFn","maxPriority","ignoreDirective","previousCompileContext","nodeValue","compositeLinkFn","compileNodes","$$addScopeClass","namespace","publicLinkFn","cloneConnectFn","parentBoundTranscludeFn","transcludeControllers","futureParentElement","$$boundTransclude","$linkNode","wrapTemplate","controllerName","$$addScopeInfo","nodeList","$rootElement","childLinkFn","childScope","childBoundTranscludeFn","stableNodeList","nodeLinkFnFound","linkFns","idx","nodeLinkFn","$new","transcludeOnThisElement","createBoundTranscludeFn","transclude","elementTranscludeOnThisElement","templateOnThisElement","attrs","linkFnFound","Attributes","collectDirectives","applyDirectivesToNode","$$element","terminal","previousBoundTranscludeFn","elementTransclusion","boundTranscludeFn","transcludedScope","cloneFn","controllers","containingScope","$$transcluded","attrsMap","$attr","addDirective","directiveNormalize","isNgAttr","nAttrs","attributes","attrStartName","attrEndName","ngAttrName","NG_ATTR_BINDING","PREFIX_REGEXP","directiveNName","directiveIsMultiElement","nName","addAttrInterpolateDirective","animVal","addTextInterpolateDirective","NODE_TYPE_COMMENT","byPriority","groupScan","attrStart","attrEnd","depth","groupElementsLinkFnWrapper","linkFn","compileNode","templateAttrs","jqCollection","originalReplaceDirective","preLinkFns","postLinkFns","addLinkFns","pre","post","newIsolateScopeDirective","$$isolateScope","cloneAndAnnotateFn","getControllers","elementControllers","retrievalMethod","$searchElement","linkNode","controllersBoundTransclude","cloneAttachFn","hasElementTranscludeDirective","scopeToChild","controllerDirectives","$scope","$attrs","$transclude","controllerInstance","controllerAs","templateDirective","$$originalDirective","isolateScopeController","isolateBindingContext","identifier","bindToController","lastValue","parentGet","parentSet","compare","$observe","$$observers","$$scope","literal","b","assign","parentValueWatch","parentValue","$stateful","unwatch","$watchCollection","$on","invokeLinkFn","template","templateUrl","terminalPriority","newScopeDirective","nonTlbTranscludeDirective","hasTranscludeDirective","hasTemplate","$compileNode","$template","childTranscludeFn","$$start","$$end","directiveValue","assertNoDuplicate","$$tlb","createComment","replaceWith","replaceDirective","contents","denormalizeTemplate","removeComments","templateNamespace","newTemplateAttrs","templateDirectives","unprocessedDirectives","markDirectivesAsIsolate","mergeTemplateAttributes","compileTemplateUrl","Math","max","tDirectives","startAttrName","endAttrName","multiElement","srcAttr","dstAttr","$set","tAttrs","linkQueue","afterTemplateNodeLinkFn","afterTemplateChildLinkFn","beforeTemplateCompileNode","origAsyncDirective","derivedSyncDirective","getTrustedResourceUrl","then","content","tempTemplateAttrs","beforeTemplateLinkNode","linkRootElement","$$destroyed","oldClasses","delayedNodeLinkFn","ignoreChildLinkFn","diff","what","previousDirective","text","interpolateFn","textInterpolateCompileFn","templateNode","templateNodeParent","hasCompileParent","$$addBindingClass","textInterpolateLinkFn","$$addBindingInfo","expressions","interpolateFnWatchAction","wrapper","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","allOrNothing","trustedContext","attrInterpolatePreLinkFn","newValue","$$inter","oldValue","$updateClass","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","replaceChild","expando","k","kk","annotation","attributesToCopy","$normalize","$addClass","classVal","$removeClass","newClasses","toAdd","tokenDifference","toRemove","writeAttr","booleanKey","aliasedKey","observer","trimmedSrcset","srcPattern","rawUris","nbrUrisWith2parts","floor","innerIdx","lastTuple","removeAttr","listeners","startSymbol","endSymbol","binding","isolated","noTemplate","dataName","str1","str2","values","tokens1","tokens2","token","jqNodes","globals","CNTRL_REG","register","this.register","allowGlobals","this.allowGlobals","addIdentifier","expression","later","ident","$controllerMinErr","controllerPrototype","exception","cause","defaultHttpResponseTransform","headers","tempData","JSON_PROTECTION_PREFIX","contentType","jsonStart","JSON_START","JSON_ENDS","parseHeaders","line","headersGetter","headersObj","transformData","status","fns","defaults","transformResponse","transformRequest","d","common","CONTENT_TYPE_APPLICATION_JSON","patch","xsrfCookieName","xsrfHeaderName","useApplyAsync","this.useApplyAsync","interceptorFactories","interceptors","requestConfig","response","resp","reject","executeHeaderFns","headerContent","processedHeaders","headerFn","header","mergeHeaders","defHeaders","reqHeaders","defHeaderName","reqHeaderName","lowercaseDefHeaderName","chain","serverRequest","reqData","withCredentials","sendReq","promise","when","reversedInterceptors","interceptor","request","requestError","responseError","thenFn","rejectFn","success","promise.success","promise.error","done","headersString","statusText","resolveHttpPromise","resolvePromise","$applyAsync","$$phase","deferred","resolve","resolvePromiseWithResult","removePendingReq","pendingRequests","cachedResp","buildUrl","params","defaultCache","xsrfValue","urlIsSameOrigin","timeout","responseType","v","toISOString","interceptorFactory","createShortMethods","createShortMethodsWithData","createXhr","XMLHttpRequest","createHttpBackend","callbacks","$browserDefer","jsonpReq","callbackId","async","body","called","addEventListener","timeoutRequest","jsonpDone","xhr","abort","completeRequest","open","setRequestHeader","onload","xhr.onload","responseText","urlResolve","protocol","getAllResponseHeaders","onerror","onabort","send","this.startSymbol","this.endSymbol","escape","ch","mustHaveExpression","unescapeText","escapedStartRegexp","escapedEndRegexp","parseStringifyInterceptor","getTrusted","valueOf","newErr","$interpolateMinErr","endIndex","parseFns","textLength","expressionPositions","startSymbolLength","exp","endSymbolLength","compute","interpolationFn","$$watchDelegate","objectEquality","$watchGroup","interpolateFnWatcher","oldValues","currValue","$interpolate.startSymbol","$interpolate.endSymbol","count","invokeApply","setInterval","clearInterval","iteration","skipApply","$$intervalId","tick","notify","intervals","interval.cancel","NUMBER_FORMATS","DECIMAL_SEP","GROUP_SEP","PATTERNS","minInt","minFrac","maxFrac","posPre","posSuf","negPre","negSuf","gSize","lgSize","CURRENCY_SYM","DATETIME_FORMATS","MONTH","SHORTMONTH","DAY","SHORTDAY","AMPMS","medium","fullDate","longDate","mediumDate","shortDate","mediumTime","shortTime","ERANAMES","ERAS","pluralCat","num","encodePath","segments","parseAbsoluteUrl","absoluteUrl","locationObj","parsedUrl","$$protocol","$$host","hostname","$$port","port","DEFAULT_PORTS","parseAppUrl","relativeUrl","prefixed","$$path","pathname","$$search","search","$$hash","beginsWith","begin","whole","trimEmptyHash","stripFile","lastIndexOf","LocationHtml5Url","appBase","basePrefix","$$html5","appBaseNoFile","$$parse","this.$$parse","pathUrl","$locationMinErr","$$compose","this.$$compose","$$url","$$absUrl","$$parseLinkUrl","this.$$parseLinkUrl","relHref","appUrl","prevAppUrl","rewrittenUrl","LocationHashbangUrl","hashPrefix","withoutBaseUrl","withoutHashUrl","windowsFilePathExp","firstPathSegmentMatch","LocationHashbangInHtml5Url","locationGetter","property","locationGetterSetter","preprocess","html5Mode","requireBase","rewriteLinks","this.hashPrefix","this.html5Mode","setBrowserUrlWithFallback","oldUrl","oldState","$$state","afterLocationChange","$broadcast","absUrl","LocationMode","initialUrl","IGNORE_URI_REGEXP","ctrlKey","metaKey","shiftKey","which","button","target","absHref","preventDefault","initializing","newUrl","newState","$digest","$locationWatch","currentReplace","$$replace","urlOrStateChanged","debug","debugEnabled","this.debugEnabled","flag","formatError","Error","sourceURL","consoleLog","console","logFn","log","hasApply","arg1","arg2","ensureSafeMemberName","fullExpression","$parseMinErr","ensureSafeObject","children","isConstant","setter","setValue","fullExp","propertyObj","isPossiblyDangerousMemberName","cspSafeGetterFn","key0","key1","key2","key3","key4","expensiveChecks","eso","o","eso0","eso1","eso2","eso3","eso4","cspSafeGetter","pathVal","getterFnWithEnsureSafeObject","s","getterFn","getterFnCache","getterFnCacheExpensive","getterFnCacheDefault","pathKeys","pathKeysLength","code","needsEnsureSafeObject","lookupJs","evaledFnGetter","Function","sharedGetter","fn.assign","getValueOf","objectValueOf","cacheDefault","cacheExpensive","wrapSharedExpression","wrapped","collectExpressionInputs","inputs","expressionInputDirtyCheck","oldValueOfValue","inputsWatchDelegate","parsedExpression","inputExpressions","$$inputs","lastResult","oldInputValue","expressionInputWatch","newInputValue","oldInputValueOfValues","expressionInputsWatch","changed","oneTimeWatchDelegate","oneTimeWatch","oneTimeListener","old","$$postDigest","oneTimeLiteralWatchDelegate","isAllDefined","allDefined","constantWatchDelegate","constantWatch","constantListener","addInterceptor","interceptorFn","watchDelegate","regularInterceptedExpression","oneTimeInterceptedExpression","$parseOptions","$parseOptionsExpensive","oneTime","cacheKey","parseOptions","lexer","Lexer","parser","Parser","qFactory","nextTick","exceptionHandler","callOnce","resolveFn","Promise","simpleBind","scheduleProcessQueue","processScheduled","pending","Deferred","$qMinErr","TypeError","onFulfilled","onRejected","progressBack","catch","finally","handleCallback","$$reject","$$resolve","progress","makePromise","resolved","isResolved","callbackOutput","errback","$Q","Q","resolver","all","promises","results","flush","taskQueue","task","taskCount","queueFn","asyncFn","cancelLastRAF","rafFn","cancelQueueFn","requestAnimationFrame","webkitRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","timer","createChildScopeClass","ChildScope","$$watchers","$$nextSibling","$$childHead","$$childTail","$$listeners","$$listenerCount","$id","$$ChildScope","TTL","$rootScopeMinErr","lastDirtyWatch","applyAsyncId","digestTtl","this.digestTtl","destroyChildScope","$event","currentScope","Scope","$parent","$$prevSibling","$root","beginPhase","phase","decrementListenerCount","current","initWatchVal","flushApplyAsync","applyAsyncQueue","scheduleApplyAsync","isolate","child","watchExp","watcher","last","eq","deregisterWatch","watchExpressions","watchGroupAction","changeReactionScheduled","firstRun","newValues","deregisterFns","shouldCall","deregisterWatchGroup","expr","unwatchFn","watchGroupSubAction","$watchCollectionInterceptor","_value","bothNaN","newItem","oldItem","internalArray","oldLength","changeDetected","newLength","internalObject","veryOldValue","trackVeryOldValue","changeDetector","initRun","$watchCollectionAction","watch","watchers","dirty","ttl","watchLog","logIdx","asyncTask","asyncQueue","$eval","isNaN","msg","next","postDigestQueue","eventName","this.$watchGroup","$applyAsyncExpression","namedListeners","indexOfListener","$emit","targetScope","listenerArgs","$$asyncQueue","$$postDigestQueue","$$applyAsyncQueue","sanitizeUri","uri","isImage","regex","normalizedVal","adjustMatcher","matcher","$sceMinErr","escapeForRegexp","adjustMatchers","matchers","adjustedMatchers","SCE_CONTEXTS","resourceUrlWhitelist","resourceUrlBlacklist","this.resourceUrlWhitelist","this.resourceUrlBlacklist","matchUrl","generateHolderType","Base","holderType","trustedValue","$$unwrapTrustedValue","this.$$unwrapTrustedValue","holderType.prototype.valueOf","holderType.prototype.toString","htmlSanitizer","trustedValueHolderBase","byType","CSS","URL","JS","trustAs","Constructor","maybeTrusted","allowed","this.enabled","msie","sce","isEnabled","sce.isEnabled","sce.getTrusted","parseAs","sce.parseAs","enumValue","lName","eventSupport","android","userAgent","navigator","boxee","vendorPrefix","vendorRegex","bodyStyle","transitions","animations","webkitTransition","webkitAnimation","pushState","hasEvent","divElm","handleRequestFn","tpl","ignoreRequestError","totalPendingRequests","transformer","httpOptions","handleError","testability","testability.findBindings","opt_exactMatch","getElementsByClassName","matches","dataBinding","bindingName","testability.findModels","prefixes","attributeEquals","testability.getLocation","testability.setLocation","testability.whenStable","deferreds","$$timeoutId","timeout.cancel","urlParsingNode","requestUrl","originUrl","filters","suffix","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","matchAgainstAnyProp","expressionType","predicateFn","createPredicateFn","shouldMatchPrimitives","actual","expected","item","deepCompare","dontMatchWholeObject","actualType","expectedType","expectedVal","matchAnyProperty","actualVal","$locale","formats","amount","currencySymbol","fractionSize","formatNumber","number","groupSep","decimalSep","isFinite","isNegative","abs","numStr","formatedText","hasExponent","toFixed","parseFloat","fractionLen","min","round","fraction","lgroup","group","padNumber","digits","neg","dateGetter","date","dateStrGetter","shortForm","getFirstThursdayOfYear","year","dayOfWeekOnFirst","getDay","weekGetter","firstThurs","getFullYear","thisThurs","getMonth","getDate","eraGetter","jsonStringToDate","string","R_ISO8601_STR","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","m","ms","format","timezone","NUMBER_STRING","DATE_FORMATS_SPLIT","setMinutes","getMinutes","getTimezoneOffset","DATE_FORMATS","object","spacing","limit","Infinity","sortPredicate","reverseOrder","reverseComparator","comp","descending","objectToString","v1","v2","map","predicate","ngDirective","FormController","controls","parentForm","$$parentForm","nullFormCtrl","$error","$$success","$pending","$name","$dirty","$pristine","$valid","$invalid","$submitted","$addControl","$rollbackViewValue","form.$rollbackViewValue","control","$commitViewValue","form.$commitViewValue","form.$addControl","$$renameControl","form.$$renameControl","newName","oldName","$removeControl","form.$removeControl","$setValidity","addSetValidityMethod","ctrl","set","unset","$setDirty","form.$setDirty","PRISTINE_CLASS","DIRTY_CLASS","$setPristine","form.$setPristine","setClass","SUBMITTED_CLASS","$setUntouched","form.$setUntouched","$setSubmitted","form.$setSubmitted","stringBasedInputType","$formatters","$isEmpty","baseInputType","composing","ev","ngTrim","$viewValue","$$hasNativeValidators","$setViewValue","deferListener","origValue","keyCode","$render","ctrl.$render","createDateParser","mapping","iso","ISO_DATE_REGEXP","yyyy","MM","dd","HH","getHours","mm","ss","getSeconds","sss","getMilliseconds","part","NaN","createDateInputType","parseDate","dynamicDateInputType","isValidDate","parseObservedDateValue","badInputChecker","$options","previousDate","$$parserName","$parsers","parsedDate","$ngModelMinErr","timezoneOffset","ngMin","minVal","$validators","ctrl.$validators.min","$validate","ngMax","maxVal","ctrl.$validators.max","validity","VALIDITY_STATE_PROPERTY","badInput","typeMismatch","parseConstantExpr","fallback","parseFn","classDirective","arrayDifference","arrayClasses","digestClassCounts","classCounts","classesToUpdate","ngClassWatchAction","$index","old$index","mod","cachedToggleClass","switchValue","classCache","toggleValidationCss","validationErrorKey","isValid","VALID_CLASS","INVALID_CLASS","setValidity","isObjectEmpty","PENDING_CLASS","combinedState","REGEX_STRING_REGEXP","documentMode","isActive_","active","full","major","minor","dot","codeName","JQLite._data","MOUSE_EVENT_MAP","mouseleave","mouseenter","optgroup","tbody","tfoot","colgroup","caption","thead","th","td","ready","trigger","fired","removeData","removeAttribute","css","NODE_TYPE_ATTRIBUTE","lowercasedName","specified","getNamedItem","ret","getText","$dv","multiple","selected","nodeCount","jqLiteOn","types","related","relatedTarget","contains","off","one","onFn","replaceNode","insertBefore","contentDocument","prepend","wrapNode","detach","after","newElement","toggleClass","condition","classCondition","nextElementSibling","getElementsByTagName","extraParameters","dummyEvent","handlerArgs","eventFnsCopy","arg3","unbind","FN_ARG_SPLIT","FN_ARG","argDecl","underscore","$animateMinErr","$$selectors","classNameFilter","this.classNameFilter","$$classNameFilter","runAnimationPostDigest","cancelFn","$$cancelFn","defer.promise.$$cancelFn","ngAnimatePostDigest","ngAnimateNotifyComplete","resolveElementClasses","hasClasses","cachedClassManipulation","op","asyncPromise","currentDefer","applyStyles","styles","from","to","animate","enter","leave","move","$$addClassImmediately","$$removeClassImmediately","add","createdCache","STORAGE_KEY","$$setClassImmediately","APPLICATION_JSON","PATH_MATCH","locationPrototype","paramValue","Location","Location.prototype.state","CALL","APPLY","BIND","CONSTANTS","null","true","false","constantGetter","OPERATORS","+","-","*","/","%","===","!==","==","!=","<",">","<=",">=","&&","||","!","ESCAPE","lex","tokens","readString","peek","readNumber","isIdent","readIdent","is","isWhitespace","ch2","ch3","op2","op3","op1","operator","throwError","chars","isExpOperator","start","end","colStr","peekCh","quote","rawString","hex","String","fromCharCode","rep","ZERO","statements","primary","expect","filterChain","consume","arrayDeclaration","functionCall","objectIndex","fieldAccess","peekToken","e1","e2","e3","e4","peekAhead","t","unaryFn","right","$parseUnaryFn","binaryFn","left","isBranching","$parseBinaryFn","$parseConstant","$parseStatements","inputFn","argsFn","$parseFilter","every","assignment","ternary","$parseAssignment","logicalOR","middle","$parseTernary","logicalAND","equality","relational","additive","multiplicative","unary","$parseFieldAccess","indexFn","$parseObjectIndex","fnGetter","contextGetter","expressionText","$parseFunctionCall","elementFns","$parseArrayLiteral","valueFns","$parseObjectLiteral","yy","y","MMMM","MMM","M","H","hh","EEEE","EEE","ampmGetter","Z","timeZoneGetter","zone","paddedZone","ww","w","G","GG","GGG","GGGG","longEraGetter","xlinkHref","propName","normalized","ngBooleanAttrWatchAction","htmlAttr","ngAttrAliasWatchAction","nullFormRenameControl","formDirectiveFactory","isNgForm","ngFormCompile","formElement","nameAttr","ngFormPreLink","handleFormSubmission","parentFormCtrl","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","DATE_REGEXP","DATETIMELOCAL_REGEXP","WEEK_REGEXP","MONTH_REGEXP","TIME_REGEXP","inputType","textInputType","weekParser","isoWeek","existingDate","week","minutes","hours","seconds","milliseconds","addDays","numberInputType","urlInputType","ctrl.$validators.url","modelValue","viewValue","emailInputType","email","ctrl.$validators.email","radioInputType","checked","checkboxInputType","trueValue","ngTrueValue","falseValue","ngFalseValue","ctrl.$isEmpty","ctrls","CONSTANT_VALUE_REGEXP","tplAttr","ngValueConstantLink","ngValueLink","valueWatchAction","$compile","ngBindCompile","templateElement","ngBindLink","ngBindWatchAction","ngBindTemplateCompile","ngBindTemplateLink","ngBindHtmlCompile","tElement","ngBindHtmlGetter","ngBindHtmlWatch","getStringValue","ngBindHtmlLink","ngBindHtmlWatchAction","getTrustedHtml","$viewChangeListeners","forceAsyncEvents","ngEventHandler","previousElements","ngIfWatchAction","newScope","srcExp","onloadExp","autoScrollExp","autoscroll","changeCounter","previousElement","currentElement","cleanupLastIncludeContent","parseAsResourceUrl","ngIncludeWatchAction","afterAnimation","thisChangeId","namespaceAdaptedClone","trimValues","NgModelController","$modelValue","$$rawModelValue","$asyncValidators","$untouched","$touched","parsedNgModel","parsedNgModelAssign","ngModelGet","ngModelSet","pendingDebounce","parserValid","$$setOptions","this.$$setOptions","getterSetter","invokeModelGetter","invokeModelSetter","$$$p","this.$isEmpty","currentValidationRunId","this.$setPristine","this.$setDirty","this.$setUntouched","UNTOUCHED_CLASS","TOUCHED_CLASS","$setTouched","this.$setTouched","this.$rollbackViewValue","$$lastCommittedViewValue","this.$validate","prevValid","prevModelValue","allowInvalid","$$runValidators","allValid","$$writeModelToScope","this.$$runValidators","doneCallback","processSyncValidators","syncValidatorsValid","validator","processAsyncValidators","validatorPromises","validationDone","localValidationRunId","processParseErrors","errorKey","this.$commitViewValue","$$parseAndValidate","this.$$parseAndValidate","this.$$writeModelToScope","this.$setViewValue","updateOnDefault","$$debounceViewValueCommit","this.$$debounceViewValueCommit","debounceDelay","debounce","ngModelWatch","formatters","ngModelCompile","ngModelPreLink","modelCtrl","formCtrl","ngModelPostLink","updateOn","DEFAULT_REGEXP","that","BRACE","IS_WHEN","updateElementText","newText","numberExp","whenExp","whens","whensExpFns","braceReplacement","watchRemover","lastCount","attributeName","tmpMatch","whenKey","ngPluralizeWatchAction","countIsNaN","ngRepeatMinErr","updateScope","valueIdentifier","keyIdentifier","arrayLength","$first","$last","$middle","$odd","$even","ngRepeatCompile","ngRepeatEndComment","lhs","rhs","aliasAs","trackByExp","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","hashFnLocals","ngRepeatLink","lastBlockMap","ngRepeatAction","previousNode","nextNode","nextBlockMap","collectionLength","trackById","collectionKeys","nextBlockOrder","trackByIdFn","itemKey","blockKey","ngRepeatTransclude","ngShowWatchAction","NG_HIDE_CLASS","tempClasses","NG_HIDE_IN_PROGRESS_CLASS","ngHideWatchAction","ngStyleWatchAction","newStyles","oldStyles","ngSwitchController","cases","selectedTranscludes","selectedElements","previousLeaveAnimations","selectedScopes","spliceFactory","ngSwitchWatchAction","selectedTransclude","caseElement","selectedScope","anchor","ngOptionsMinErr","NG_OPTIONS_REGEXP","nullModelCtrl","optionsMap","ngModelCtrl","unknownOption","databound","init","self.init","ngModelCtrl_","nullOption_","unknownOption_","addOption","self.addOption","removeOption","self.removeOption","hasOption","renderUnknownOption","self.renderUnknownOption","unknownVal","self.hasOption","setupAsSingle","selectElement","selectCtrl","ngModelCtrl.$render","emptyOption","setupAsMultiple","lastView","selectMultipleWatch","setupAsOptions","callExpression","exprFn","valueName","keyName","createIsSelectedFn","selectedSet","trackFn","trackIndex","isSelected","compareValueFn","selectAsFn","scheduleRendering","renderScheduled","render","updateLabelMap","labelMap","label","added","optionGroups","optionGroupNames","optionGroupName","optionGroup","existingParent","existingOptions","existingOption","valuesFn","anySelected","optionId","trackKeysCache","groupByFn","displayFn","nullOption","groupIndex","groupLength","optionGroupsCache","optGroupTemplate","lastElement","optionTemplate","optionsExp","selectAs","track","selectionChanged","selectedKey","viewValueFn","getLabels","toDisplay","ngModelCtrl.$isEmpty","nullSelectCtrl","selectCtrlName","interpolateWatchAction","ctrl.$validators.required","patternExp","ctrl.$validators.pattern","intVal","ctrl.$validators.maxlength","ctrl.$validators.minlength","$$csp"] +"names":["window","document","undefined","minErr","isArrayLike","obj","isWindow","length","Object","nodeType","NODE_TYPE_ELEMENT","isString","isArray","forEach","iterator","context","key","isFunction","hasOwnProperty","call","isPrimitive","isBlankObject","forEachSorted","keys","sort","i","reverseParams","iteratorFn","value","nextUid","uid","setHashKey","h","$$hashKey","baseExtend","dst","objs","deep","ii","isObject","j","jj","src","isDate","Date","valueOf","isRegExp","RegExp","extend","slice","arguments","merge","toInt","str","parseInt","inherit","parent","extra","create","noop","identity","$","valueFn","hasCustomToString","toString","prototype","isUndefined","isDefined","getPrototypeOf","isNumber","isScope","$evalAsync","$watch","isBoolean","isElement","node","nodeName","prop","attr","find","makeMap","items","split","nodeName_","element","lowercase","arrayRemove","array","index","indexOf","splice","copy","source","destination","stackSource","stackDest","ngMinErr","TYPED_ARRAY_REGEXP","test","push","constructor","getTime","match","lastIndex","emptyObject","shallowCopy","charAt","equals","o1","o2","t1","t2","keySet","createMap","concat","array1","array2","bind","self","fn","curryArgs","startIndex","apply","toJsonReplacer","val","toJson","pretty","JSON","stringify","fromJson","json","parse","timezoneToOffset","timezone","fallback","requestedTimezoneOffset","isNaN","convertTimezoneToLocal","date","reverse","timezoneOffset","getTimezoneOffset","setMinutes","getMinutes","minutes","startingTag","jqLite","clone","empty","e","elemHtml","append","html","NODE_TYPE_TEXT","replace","tryDecodeURIComponent","decodeURIComponent","parseKeyValue","keyValue","splitPoint","substring","toKeyValue","parts","arrayValue","encodeUriQuery","join","encodeUriSegment","pctEncodeSpaces","encodeURIComponent","getNgAttribute","ngAttr","ngAttrPrefixes","getAttribute","angularInit","bootstrap","appElement","module","config","prefix","name","hasAttribute","candidate","querySelector","strictDi","modules","defaultConfig","doBootstrap","injector","tag","unshift","$provide","debugInfoEnabled","$compileProvider","createInjector","invoke","bootstrapApply","scope","compile","$apply","data","NG_ENABLE_DEBUG_INFO","NG_DEFER_BOOTSTRAP","angular","resumeBootstrap","angular.resumeBootstrap","extraModules","resumeDeferredBootstrap","reloadWithDebugInfo","location","reload","getTestability","rootElement","get","snake_case","separator","SNAKE_CASE_REGEXP","letter","pos","toLowerCase","bindJQuery","originalCleanData","bindJQueryFired","jqName","jq","jQuery","on","JQLitePrototype","isolateScope","controller","inheritedData","cleanData","jQuery.cleanData","elems","events","skipDestroyOnNextJQueryCleanData","elem","_data","$destroy","triggerHandler","JQLite","assertArg","arg","reason","assertArgFn","acceptArrayAnnotation","assertNotHasOwnProperty","getter","path","bindFnToScope","lastInstance","len","getBlockNodes","nodes","endNode","blockNodes","nextSibling","setupModuleLoader","ensure","factory","$injectorMinErr","$$minErr","requires","configFn","invokeLater","provider","method","insertMethod","queue","invokeQueue","moduleInstance","invokeLaterAndSetModuleName","recipeName","factoryFunction","$$moduleName","configBlocks","runBlocks","_invokeQueue","_configBlocks","_runBlocks","service","constant","decorator","animation","filter","directive","run","block","publishExternalAPI","version","uppercase","counter","csp","angularModule","ngModule","$$sanitizeUri","$$SanitizeUriProvider","$CompileProvider","a","htmlAnchorDirective","input","inputDirective","textarea","form","formDirective","script","scriptDirective","select","selectDirective","style","styleDirective","option","optionDirective","ngBind","ngBindDirective","ngBindHtml","ngBindHtmlDirective","ngBindTemplate","ngBindTemplateDirective","ngClass","ngClassDirective","ngClassEven","ngClassEvenDirective","ngClassOdd","ngClassOddDirective","ngCloak","ngCloakDirective","ngController","ngControllerDirective","ngForm","ngFormDirective","ngHide","ngHideDirective","ngIf","ngIfDirective","ngInclude","ngIncludeDirective","ngInit","ngInitDirective","ngNonBindable","ngNonBindableDirective","ngPluralize","ngPluralizeDirective","ngRepeat","ngRepeatDirective","ngShow","ngShowDirective","ngStyle","ngStyleDirective","ngSwitch","ngSwitchDirective","ngSwitchWhen","ngSwitchWhenDirective","ngSwitchDefault","ngSwitchDefaultDirective","ngOptions","ngOptionsDirective","ngTransclude","ngTranscludeDirective","ngModel","ngModelDirective","ngList","ngListDirective","ngChange","ngChangeDirective","pattern","patternDirective","ngPattern","required","requiredDirective","ngRequired","minlength","minlengthDirective","ngMinlength","maxlength","maxlengthDirective","ngMaxlength","ngValue","ngValueDirective","ngModelOptions","ngModelOptionsDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$anchorScroll","$AnchorScrollProvider","$animate","$AnimateProvider","$animateCss","$CoreAnimateCssProvider","$$animateQueue","$$CoreAnimateQueueProvider","$$AnimateRunner","$$CoreAnimateRunnerProvider","$browser","$BrowserProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$document","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$$forceReflow","$$ForceReflowProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$httpParamSerializer","$HttpParamSerializerProvider","$httpParamSerializerJQLike","$HttpParamSerializerJQLikeProvider","$httpBackend","$HttpBackendProvider","$location","$LocationProvider","$log","$LogProvider","$parse","$ParseProvider","$rootScope","$RootScopeProvider","$q","$QProvider","$$q","$$QProvider","$sce","$SceProvider","$sceDelegate","$SceDelegateProvider","$sniffer","$SnifferProvider","$templateCache","$TemplateCacheProvider","$templateRequest","$TemplateRequestProvider","$$testability","$$TestabilityProvider","$timeout","$TimeoutProvider","$window","$WindowProvider","$$rAF","$$RAFProvider","$$jqLite","$$jqLiteProvider","$$HashMap","$$HashMapProvider","$$cookieReader","$$CookieReaderProvider","camelCase","SPECIAL_CHARS_REGEXP","_","offset","toUpperCase","MOZ_HACK_REGEXP","jqLiteAcceptsData","NODE_TYPE_DOCUMENT","jqLiteBuildFragment","tmp","fragment","createDocumentFragment","HTML_REGEXP","appendChild","createElement","TAG_NAME_REGEXP","exec","wrap","wrapMap","_default","innerHTML","XHTML_TAG_REGEXP","lastChild","childNodes","firstChild","textContent","createTextNode","argIsString","trim","jqLiteMinErr","parsed","SINGLE_TAG_REGEXP","jqLiteAddNodes","jqLiteClone","cloneNode","jqLiteDealoc","onlyDescendants","jqLiteRemoveData","querySelectorAll","descendants","l","jqLiteOff","type","unsupported","expandoStore","jqLiteExpandoStore","handle","listenerFns","removeEventListener","expandoId","ng339","jqCache","createIfNecessary","jqId","jqLiteData","isSimpleSetter","isSimpleGetter","massGetter","jqLiteHasClass","selector","jqLiteRemoveClass","cssClasses","setAttribute","cssClass","jqLiteAddClass","existingClasses","root","elements","jqLiteController","jqLiteInheritedData","documentElement","names","parentNode","NODE_TYPE_DOCUMENT_FRAGMENT","host","jqLiteEmpty","removeChild","jqLiteRemove","keepData","jqLiteDocumentLoaded","action","win","readyState","setTimeout","getBooleanAttrName","booleanAttr","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","getAliasedAttrName","ALIASED_ATTR","createEventHandler","eventHandler","event","isDefaultPrevented","event.isDefaultPrevented","defaultPrevented","eventFns","eventFnsLength","immediatePropagationStopped","originalStopImmediatePropagation","stopImmediatePropagation","event.stopImmediatePropagation","stopPropagation","isImmediatePropagationStopped","event.isImmediatePropagationStopped","$get","this.$get","hasClass","classes","addClass","removeClass","hashKey","nextUidFn","objType","HashMap","isolatedUid","this.nextUid","put","anonFn","args","fnText","STRIP_COMMENTS","FN_ARGS","modulesToLoad","supportObject","delegate","provider_","providerInjector","instantiate","providerCache","providerSuffix","enforceReturnValue","enforcedReturnValue","result","instanceInjector","factoryFn","enforce","loadModules","moduleFn","runInvokeQueue","invokeArgs","loadedModules","message","stack","createInternalInjector","cache","getService","serviceName","caller","INSTANTIATING","err","shift","locals","$inject","$$annotate","Type","instance","returnedValue","annotate","has","$injector","instanceCache","decorFn","origProvider","orig$get","origProvider.$get","origInstance","$delegate","autoScrollingEnabled","disableAutoScrolling","this.disableAutoScrolling","getFirstAnchor","list","Array","some","scrollTo","scrollIntoView","scroll","yOffset","getComputedStyle","position","getBoundingClientRect","bottom","elemTop","top","scrollBy","hash","elm","getElementById","getElementsByName","autoScrollWatch","autoScrollWatchAction","newVal","oldVal","mergeClasses","b","splitClasses","klass","prepareAnimateOptions","options","Browser","completeOutstandingRequest","outstandingRequestCount","outstandingRequestCallbacks","pop","error","cacheStateAndFireUrlChange","cacheState","fireUrlChange","history","state","cachedState","lastCachedState","lastBrowserUrl","url","lastHistoryState","urlChangeListeners","listener","clearTimeout","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","self.$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","self.notifyWhenNoOutstandingRequests","callback","href","baseElement","reloadLocation","self.url","sameState","sameBase","stripHash","substr","self.state","urlChangeInit","onUrlChange","self.onUrlChange","$$applicationDestroyed","self.$$applicationDestroyed","off","$$checkUrlChange","baseHref","self.baseHref","defer","self.defer","delay","timeoutId","cancel","self.defer.cancel","deferId","cacheFactory","cacheId","refresh","entry","freshEnd","staleEnd","n","link","p","nextEntry","prevEntry","caches","size","stats","id","capacity","Number","MAX_VALUE","lruHash","lruEntry","remove","removeAll","destroy","info","cacheFactory.info","cacheFactory.get","$$sanitizeUriProvider","parseIsolateBindings","directiveName","isController","LOCAL_REGEXP","bindings","definition","scopeName","$compileMinErr","mode","collection","optional","attrName","assertValidDirectiveName","hasDirectives","COMMENT_DIRECTIVE_REGEXP","CLASS_DIRECTIVE_REGEXP","ALL_OR_NOTHING_ATTRS","REQUIRE_PREFIX_REGEXP","EVENT_HANDLER_ATTR_REGEXP","this.directive","registerDirective","directiveFactory","Suffix","directives","priority","require","restrict","bindToController","controllerAs","CNTRL_REG","$$bindings","$$isolateBindings","aHrefSanitizationWhitelist","this.aHrefSanitizationWhitelist","regexp","imgSrcSanitizationWhitelist","this.imgSrcSanitizationWhitelist","this.debugInfoEnabled","enabled","safeAddClass","$element","className","$compileNodes","transcludeFn","maxPriority","ignoreDirective","previousCompileContext","nodeValue","compositeLinkFn","compileNodes","$$addScopeClass","namespace","publicLinkFn","cloneConnectFn","parentBoundTranscludeFn","transcludeControllers","futureParentElement","$$boundTransclude","$linkNode","wrapTemplate","controllerName","$$addScopeInfo","nodeList","$rootElement","childLinkFn","childScope","childBoundTranscludeFn","stableNodeList","nodeLinkFnFound","linkFns","idx","nodeLinkFn","destroyBindings","$new","$$destroyBindings","$on","transcludeOnThisElement","createBoundTranscludeFn","transclude","templateOnThisElement","attrs","linkFnFound","Attributes","collectDirectives","applyDirectivesToNode","$$element","terminal","previousBoundTranscludeFn","boundTranscludeFn","transcludedScope","cloneFn","controllers","containingScope","$$transcluded","attrsMap","$attr","addDirective","directiveNormalize","isNgAttr","nAttrs","attributes","attrStartName","attrEndName","ngAttrName","NG_ATTR_BINDING","PREFIX_REGEXP","directiveNName","directiveIsMultiElement","nName","addAttrInterpolateDirective","animVal","msie","addTextInterpolateDirective","NODE_TYPE_COMMENT","byPriority","groupScan","attrStart","attrEnd","depth","groupElementsLinkFnWrapper","linkFn","compileNode","templateAttrs","jqCollection","originalReplaceDirective","preLinkFns","postLinkFns","addLinkFns","pre","post","newIsolateScopeDirective","$$isolateScope","cloneAndAnnotateFn","getControllers","elementControllers","inheritType","dataName","setupControllers","controllerDirectives","controllerKey","$scope","$attrs","$transclude","controllerInstance","hasElementTranscludeDirective","linkNode","thisLinkFn","controllersBoundTransclude","cloneAttachFn","scopeToChild","templateDirective","$$originalDirective","initializeDirectiveBindings","scopeDirective","newScopeDirective","controllerForBindings","identifier","controllerResult","invokeLinkFn","template","templateUrl","terminalPriority","nonTlbTranscludeDirective","hasTranscludeDirective","hasTemplate","$compileNode","$template","childTranscludeFn","$$start","$$end","directiveValue","assertNoDuplicate","$$tlb","createComment","replaceWith","replaceDirective","contents","denormalizeTemplate","removeComments","templateNamespace","newTemplateAttrs","templateDirectives","unprocessedDirectives","markDirectivesAsIsolate","mergeTemplateAttributes","compileTemplateUrl","Math","max","tDirectives","startAttrName","endAttrName","multiElement","srcAttr","dstAttr","$set","tAttrs","linkQueue","afterTemplateNodeLinkFn","afterTemplateChildLinkFn","beforeTemplateCompileNode","origAsyncDirective","derivedSyncDirective","then","content","tempTemplateAttrs","beforeTemplateLinkNode","linkRootElement","$$destroyed","oldClasses","delayedNodeLinkFn","ignoreChildLinkFn","diff","what","previousDirective","wrapModuleNameIfDefined","moduleName","text","interpolateFn","textInterpolateCompileFn","templateNode","templateNodeParent","hasCompileParent","$$addBindingClass","textInterpolateLinkFn","$$addBindingInfo","expressions","interpolateFnWatchAction","wrapper","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","allOrNothing","trustedContext","attrInterpolatePreLinkFn","$$observers","newValue","$$inter","$$scope","oldValue","$updateClass","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","replaceChild","hasData","expando","k","kk","annotation","newScope","onNewScopeDestroyed","lastValue","parentGet","parentSet","compare","$observe","literal","assign","parentValueWatch","parentValue","$stateful","unwatch","$watchCollection","attributesToCopy","$normalize","$addClass","classVal","$removeClass","newClasses","toAdd","tokenDifference","toRemove","writeAttr","booleanKey","aliasedKey","observer","trimmedSrcset","srcPattern","rawUris","nbrUrisWith2parts","floor","innerIdx","lastTuple","removeAttr","listeners","startSymbol","endSymbol","binding","isolated","noTemplate","str1","str2","values","tokens1","tokens2","token","jqNodes","globals","register","this.register","allowGlobals","this.allowGlobals","addIdentifier","expression","later","ident","$controllerMinErr","controllerPrototype","exception","cause","serializeValue","v","toISOString","ngParamSerializer","params","jQueryLikeParamSerializer","serialize","toSerialize","topLevel","defaultHttpResponseTransform","headers","tempData","JSON_PROTECTION_PREFIX","contentType","jsonStart","JSON_START","JSON_ENDS","parseHeaders","line","headerVal","headerKey","headersGetter","headersObj","transformData","status","fns","defaults","transformResponse","transformRequest","d","common","CONTENT_TYPE_APPLICATION_JSON","patch","xsrfCookieName","xsrfHeaderName","paramSerializer","useApplyAsync","this.useApplyAsync","useLegacyPromise","useLegacyPromiseExtensions","this.useLegacyPromiseExtensions","interceptorFactories","interceptors","requestConfig","response","resp","reject","executeHeaderFns","headerContent","processedHeaders","headerFn","header","mergeHeaders","defHeaders","reqHeaders","defHeaderName","lowercaseDefHeaderName","reqHeaderName","chain","serverRequest","reqData","withCredentials","sendReq","promise","when","reversedInterceptors","interceptor","request","requestError","responseError","thenFn","rejectFn","success","promise.success","promise.error","$httpMinErrLegacyFn","done","headersString","statusText","resolveHttpPromise","resolvePromise","$applyAsync","$$phase","deferred","resolve","resolvePromiseWithResult","removePendingReq","pendingRequests","cachedResp","buildUrl","defaultCache","xsrfValue","urlIsSameOrigin","timeout","responseType","serializedParams","interceptorFactory","createShortMethods","createShortMethodsWithData","createXhr","XMLHttpRequest","createHttpBackend","callbacks","$browserDefer","rawDocument","jsonpReq","callbackId","async","body","called","addEventListener","timeoutRequest","jsonpDone","xhr","abort","completeRequest","open","setRequestHeader","onload","xhr.onload","responseText","urlResolve","protocol","getAllResponseHeaders","onerror","onabort","send","this.startSymbol","this.endSymbol","escape","ch","unescapeText","escapedStartRegexp","escapedEndRegexp","mustHaveExpression","parseStringifyInterceptor","getTrusted","$interpolateMinErr","interr","endIndex","parseFns","textLength","expressionPositions","startSymbolLength","exp","endSymbolLength","throwNoconcat","compute","interpolationFn","$$watchDelegate","$watchGroup","interpolateFnWatcher","oldValues","currValue","$interpolate.startSymbol","$interpolate.endSymbol","interval","count","invokeApply","hasParams","setInterval","clearInterval","iteration","skipApply","$$intervalId","tick","notify","intervals","interval.cancel","encodePath","segments","parseAbsoluteUrl","absoluteUrl","locationObj","parsedUrl","$$protocol","$$host","hostname","$$port","port","DEFAULT_PORTS","parseAppUrl","relativeUrl","prefixed","$$path","pathname","$$search","search","$$hash","beginsWith","begin","whole","trimEmptyHash","LocationHtml5Url","appBase","appBaseNoFile","basePrefix","$$html5","$$parse","this.$$parse","pathUrl","$locationMinErr","$$compose","this.$$compose","$$url","$$absUrl","$$parseLinkUrl","this.$$parseLinkUrl","relHref","appUrl","prevAppUrl","rewrittenUrl","LocationHashbangUrl","hashPrefix","withoutBaseUrl","withoutHashUrl","windowsFilePathExp","base","firstPathSegmentMatch","LocationHashbangInHtml5Url","locationGetter","property","locationGetterSetter","preprocess","html5Mode","requireBase","rewriteLinks","this.hashPrefix","this.html5Mode","setBrowserUrlWithFallback","oldUrl","oldState","$$state","afterLocationChange","$broadcast","absUrl","LocationMode","initialUrl","lastIndexOf","IGNORE_URI_REGEXP","ctrlKey","metaKey","shiftKey","which","button","target","absHref","preventDefault","initializing","newUrl","newState","$digest","$locationWatch","currentReplace","$$replace","urlOrStateChanged","debug","debugEnabled","this.debugEnabled","flag","formatError","Error","sourceURL","consoleLog","console","logFn","log","hasApply","arg1","arg2","warn","ensureSafeMemberName","fullExpression","$parseMinErr","ensureSafeObject","children","ensureSafeFunction","CALL","APPLY","BIND","ifDefined","plusFn","r","findConstantAndWatchExpressions","ast","allConstants","argsToWatch","AST","Program","expr","Literal","toWatch","UnaryExpression","argument","BinaryExpression","left","right","LogicalExpression","ConditionalExpression","alternate","consequent","Identifier","MemberExpression","object","computed","CallExpression","callee","AssignmentExpression","ArrayExpression","ObjectExpression","properties","ThisExpression","getInputs","lastExpression","isAssignable","assignableAST","NGValueParameter","operator","isLiteral","ASTCompiler","astBuilder","ASTInterpreter","isPossiblyDangerousMemberName","getValueOf","objectValueOf","cacheDefault","cacheExpensive","expressionInputDirtyCheck","oldValueOfValue","inputsWatchDelegate","objectEquality","parsedExpression","prettyPrintExpression","inputExpressions","inputs","lastResult","oldInputValueOf","expressionInputWatch","newInputValue","oldInputValueOfValues","oldInputValues","expressionInputsWatch","changed","oneTimeWatchDelegate","oneTimeWatch","oneTimeListener","old","$$postDigest","oneTimeLiteralWatchDelegate","isAllDefined","allDefined","constantWatchDelegate","constantWatch","constantListener","addInterceptor","interceptorFn","watchDelegate","regularInterceptedExpression","oneTimeInterceptedExpression","noUnsafeEval","$parseOptions","expensiveChecks","$parseOptionsExpensive","oneTime","cacheKey","parseOptions","lexer","Lexer","parser","Parser","qFactory","nextTick","exceptionHandler","callOnce","resolveFn","Promise","simpleBind","scheduleProcessQueue","processScheduled","pending","Deferred","$qMinErr","TypeError","onFulfilled","onRejected","progressBack","catch","finally","handleCallback","$$reject","$$resolve","progress","makePromise","resolved","isResolved","callbackOutput","errback","$Q","Q","resolver","all","promises","results","requestAnimationFrame","webkitRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","raf","timer","supported","createChildScopeClass","ChildScope","$$watchers","$$nextSibling","$$childHead","$$childTail","$$listeners","$$listenerCount","$$watchersCount","$id","$$ChildScope","TTL","$rootScopeMinErr","lastDirtyWatch","applyAsyncId","digestTtl","this.digestTtl","destroyChildScope","$event","currentScope","Scope","$parent","$$prevSibling","$root","beginPhase","phase","incrementWatchersCount","current","decrementListenerCount","initWatchVal","flushApplyAsync","applyAsyncQueue","scheduleApplyAsync","isolate","child","watchExp","watcher","last","eq","deregisterWatch","watchExpressions","watchGroupAction","changeReactionScheduled","firstRun","newValues","deregisterFns","shouldCall","deregisterWatchGroup","unwatchFn","watchGroupSubAction","$watchCollectionInterceptor","_value","bothNaN","newItem","oldItem","internalArray","oldLength","changeDetected","newLength","internalObject","veryOldValue","trackVeryOldValue","changeDetector","initRun","$watchCollectionAction","watch","watchers","dirty","ttl","watchLog","logIdx","asyncTask","asyncQueue","$eval","msg","next","postDigestQueue","eventName","this.$watchGroup","$applyAsyncExpression","namedListeners","indexOfListener","$emit","targetScope","listenerArgs","$$asyncQueue","$$postDigestQueue","$$applyAsyncQueue","sanitizeUri","uri","isImage","regex","normalizedVal","adjustMatcher","matcher","$sceMinErr","escapeForRegexp","adjustMatchers","matchers","adjustedMatchers","SCE_CONTEXTS","resourceUrlWhitelist","resourceUrlBlacklist","this.resourceUrlWhitelist","this.resourceUrlBlacklist","matchUrl","generateHolderType","Base","holderType","trustedValue","$$unwrapTrustedValue","this.$$unwrapTrustedValue","holderType.prototype.valueOf","holderType.prototype.toString","htmlSanitizer","trustedValueHolderBase","byType","CSS","URL","JS","trustAs","Constructor","maybeTrusted","allowed","this.enabled","sce","isEnabled","sce.isEnabled","sce.getTrusted","parseAs","sce.parseAs","enumValue","lName","eventSupport","android","userAgent","navigator","boxee","vendorPrefix","vendorRegex","bodyStyle","transitions","animations","webkitTransition","webkitAnimation","pushState","hasEvent","divElm","handleRequestFn","tpl","ignoreRequestError","totalPendingRequests","getTrustedResourceUrl","transformer","httpOptions","handleError","testability","testability.findBindings","opt_exactMatch","getElementsByClassName","matches","dataBinding","bindingName","testability.findModels","prefixes","attributeEquals","testability.getLocation","testability.setLocation","testability.whenStable","deferreds","$$timeoutId","timeout.cancel","urlParsingNode","requestUrl","originUrl","$$CookieReader","safeDecodeURIComponent","lastCookies","lastCookieString","cookieArray","cookie","currentCookieString","filters","suffix","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","matchAgainstAnyProp","getTypeForFilter","expressionType","predicateFn","createPredicateFn","shouldMatchPrimitives","actual","expected","item","deepCompare","dontMatchWholeObject","actualType","expectedType","expectedVal","matchAnyProperty","actualVal","$locale","formats","NUMBER_FORMATS","amount","currencySymbol","fractionSize","CURRENCY_SYM","PATTERNS","maxFrac","formatNumber","GROUP_SEP","DECIMAL_SEP","number","groupSep","decimalSep","isNegative","abs","isInfinity","Infinity","isFinite","numStr","formatedText","hasExponent","toFixed","parseFloat","fractionLen","min","minFrac","round","fraction","lgroup","lgSize","group","gSize","negPre","posPre","negSuf","posSuf","padNumber","num","digits","neg","dateGetter","dateStrGetter","shortForm","getFirstThursdayOfYear","year","dayOfWeekOnFirst","getDay","weekGetter","firstThurs","getFullYear","thisThurs","getMonth","getDate","eraGetter","ERAS","jsonStringToDate","string","R_ISO8601_STR","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","m","s","ms","format","DATETIME_FORMATS","NUMBER_STRING","DATE_FORMATS_SPLIT","dateTimezoneOffset","DATE_FORMATS","spacing","limit","processPredicates","sortPredicate","reverseOrder","map","predicate","descending","predicates","compareValues","getComparisonObject","predicateValues","doComparison","v1","v2","ngDirective","FormController","controls","parentForm","$$parentForm","nullFormCtrl","$error","$$success","$pending","$name","$dirty","$pristine","$valid","$invalid","$submitted","$addControl","$rollbackViewValue","form.$rollbackViewValue","control","$commitViewValue","form.$commitViewValue","form.$addControl","$$renameControl","form.$$renameControl","newName","oldName","$removeControl","form.$removeControl","$setValidity","addSetValidityMethod","ctrl","set","unset","$setDirty","form.$setDirty","PRISTINE_CLASS","DIRTY_CLASS","$setPristine","form.$setPristine","setClass","SUBMITTED_CLASS","$setUntouched","form.$setUntouched","$setSubmitted","form.$setSubmitted","stringBasedInputType","$formatters","$isEmpty","baseInputType","composing","ev","ngTrim","$viewValue","$$hasNativeValidators","$setViewValue","deferListener","origValue","keyCode","$render","ctrl.$render","createDateParser","mapping","iso","ISO_DATE_REGEXP","yyyy","MM","dd","HH","getHours","mm","ss","getSeconds","sss","getMilliseconds","part","NaN","createDateInputType","parseDate","dynamicDateInputType","isValidDate","parseObservedDateValue","badInputChecker","$options","previousDate","$$parserName","$parsers","parsedDate","ngModelMinErr","ngMin","minVal","$validators","ctrl.$validators.min","$validate","ngMax","maxVal","ctrl.$validators.max","validity","VALIDITY_STATE_PROPERTY","badInput","typeMismatch","parseConstantExpr","parseFn","classDirective","arrayDifference","arrayClasses","digestClassCounts","classCounts","classesToUpdate","ngClassWatchAction","$index","old$index","mod","cachedToggleClass","switchValue","classCache","toggleValidationCss","validationErrorKey","isValid","VALID_CLASS","INVALID_CLASS","setValidity","isObjectEmpty","PENDING_CLASS","combinedState","REGEX_STRING_REGEXP","documentMode","rules","ngCspElement","ngCspAttribute","noInlineStyle","Function","name_","el","full","major","minor","dot","codeName","JQLite._data","MOUSE_EVENT_MAP","mouseleave","mouseenter","optgroup","tbody","tfoot","colgroup","caption","thead","th","td","ready","trigger","fired","removeData","jqLiteHasData","removeAttribute","css","NODE_TYPE_ATTRIBUTE","lowercasedName","specified","getNamedItem","ret","getText","$dv","multiple","selected","nodeCount","jqLiteOn","types","related","relatedTarget","contains","one","onFn","replaceNode","insertBefore","contentDocument","prepend","wrapNode","detach","after","newElement","toggleClass","condition","classCondition","nextElementSibling","getElementsByTagName","extraParameters","dummyEvent","handlerArgs","eventFnsCopy","arg3","unbind","FN_ARG_SPLIT","FN_ARG","argDecl","underscore","$animateMinErr","AnimateRunner","end","resume","pause","complete","pass","fail","postDigestElements","addRemoveClassesPostDigest","add","updateData","classesAdded","classesRemoved","existing","pin","domOperation","from","to","$$registeredAnimations","classNameFilter","this.classNameFilter","$$classNameFilter","reservedRegex","NG_ANIMATE_CLASSNAME","domInsert","parentElement","afterElement","afterNode","ELEMENT_NODE","previousElementSibling","runner","enter","move","leave","addclass","animate","tempClasses","RAFPromise","getPromise","f1","f2","closed","start","domNode","offsetWidth","APPLICATION_JSON","$httpMinErr","$interpolateMinErr.throwNoconcat","$interpolateMinErr.interr","PATH_MATCH","locationPrototype","paramValue","Location","Location.prototype.state","OPERATORS","ESCAPE","lex","tokens","readString","peek","readNumber","isIdent","readIdent","is","isWhitespace","ch2","ch3","op2","op3","op1","throwError","chars","isExpOperator","colStr","peekCh","quote","rawString","hex","String","fromCharCode","rep","ExpressionStatement","Property","program","expressionStatement","expect","filterChain","assignment","ternary","logicalOR","consume","logicalAND","equality","relational","additive","multiplicative","unary","primary","arrayDeclaration","constants","parseArguments","baseExpression","peekToken","kind","e1","e2","e3","e4","peekAhead","t","nextId","vars","own","assignable","stage","computing","recurse","generateFunction","fnKey","intoId","return_","watchId","fnString","USE","STRICT","filterPrefix","watchFns","varsPrefix","section","nameId","recursionFn","skipWatchIdCheck","if_","lazyAssign","computedMember","lazyRecurse","plus","not","getHasOwnProperty","nonComputedMember","addEnsureSafeObject","notNull","addEnsureSafeMemberName","addEnsureSafeFunction","member","filterName","defaultValue","stringEscapeRegex","stringEscapeFn","c","charCodeAt","skip","init","fn.assign","rhs","lhs","unary+","unary-","unary!","binary+","binary-","binary*","binary/","binary%","binary===","binary!==","binary==","binary!=","binary<","binary>","binary<=","binary>=","binary&&","binary||","ternary?:","astCompiler","yy","y","MMMM","MMM","M","H","hh","EEEE","EEE","ampmGetter","AMPMS","Z","timeZoneGetter","zone","paddedZone","ww","w","G","GG","GGG","GGGG","longEraGetter","ERANAMES","xlinkHref","propName","defaultLinkFn","normalized","ngBooleanAttrWatchAction","htmlAttr","ngAttrAliasWatchAction","nullFormRenameControl","formDirectiveFactory","isNgForm","getSetter","ngFormCompile","formElement","nameAttr","ngFormPreLink","handleFormSubmission","parentFormCtrl","setter","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","DATE_REGEXP","DATETIMELOCAL_REGEXP","WEEK_REGEXP","MONTH_REGEXP","TIME_REGEXP","inputType","textInputType","weekParser","isoWeek","existingDate","week","hours","seconds","milliseconds","addDays","numberInputType","urlInputType","ctrl.$validators.url","modelValue","viewValue","emailInputType","email","ctrl.$validators.email","radioInputType","checked","checkboxInputType","trueValue","ngTrueValue","falseValue","ngFalseValue","ctrl.$isEmpty","ctrls","CONSTANT_VALUE_REGEXP","tplAttr","ngValueConstantLink","ngValueLink","valueWatchAction","$compile","ngBindCompile","templateElement","ngBindLink","ngBindWatchAction","ngBindTemplateCompile","ngBindTemplateLink","ngBindHtmlCompile","tElement","ngBindHtmlGetter","ngBindHtmlWatch","getStringValue","ngBindHtmlLink","ngBindHtmlWatchAction","getTrustedHtml","$viewChangeListeners","forceAsyncEvents","ngEventHandler","previousElements","ngIfWatchAction","srcExp","onloadExp","autoScrollExp","autoscroll","changeCounter","previousElement","currentElement","cleanupLastIncludeContent","ngIncludeWatchAction","afterAnimation","thisChangeId","namespaceAdaptedClone","trimValues","NgModelController","$modelValue","$$rawModelValue","$asyncValidators","$untouched","$touched","parsedNgModel","parsedNgModelAssign","ngModelGet","ngModelSet","pendingDebounce","parserValid","$$setOptions","this.$$setOptions","getterSetter","invokeModelGetter","invokeModelSetter","$$$p","this.$isEmpty","currentValidationRunId","this.$setPristine","this.$setDirty","this.$setUntouched","UNTOUCHED_CLASS","TOUCHED_CLASS","$setTouched","this.$setTouched","this.$rollbackViewValue","$$lastCommittedViewValue","this.$validate","prevValid","prevModelValue","allowInvalid","$$runValidators","allValid","$$writeModelToScope","this.$$runValidators","doneCallback","processSyncValidators","syncValidatorsValid","validator","processAsyncValidators","validatorPromises","validationDone","localValidationRunId","processParseErrors","errorKey","this.$commitViewValue","$$parseAndValidate","this.$$parseAndValidate","this.$$writeModelToScope","this.$setViewValue","updateOnDefault","$$debounceViewValueCommit","this.$$debounceViewValueCommit","debounceDelay","debounce","ngModelWatch","formatters","ngModelCompile","ngModelPreLink","modelCtrl","formCtrl","ngModelPostLink","updateOn","DEFAULT_REGEXP","that","ngOptionsMinErr","NG_OPTIONS_REGEXP","parseOptionsExpression","optionsExp","selectElement","Option","selectValue","label","disabled","getOptionValuesKeys","optionValues","optionValuesKeys","keyName","itemKey","valueName","selectAs","trackBy","viewValueFn","trackByFn","getTrackByValueFn","getHashOfValue","getTrackByValue","getLocals","displayFn","groupByFn","disableWhenFn","valuesFn","getWatchables","watchedArray","optionValuesLength","disableWhen","getOptions","optionItems","selectValueMap","optionItem","getOptionFromViewValue","getViewValueFromOption","optionTemplate","optGroupTemplate","updateOptionElement","addOrReuseElement","removeExcessElements","skipEmptyAndUnknownOptions","emptyOption_","emptyOption","unknownOption_","unknownOption","updateOptions","previousValue","selectCtrl","readValue","groupMap","providedEmptyOption","updateOption","optionElement","groupElement","currentOptionElement","ngModelCtrl","nextValue","ngModelCtrl.$isEmpty","writeValue","selectCtrl.writeValue","selectCtrl.readValue","selectedValues","selections","selectedOption","BRACE","IS_WHEN","updateElementText","newText","numberExp","whenExp","whens","whensExpFns","braceReplacement","watchRemover","lastCount","attributeName","tmpMatch","whenKey","ngPluralizeWatchAction","countIsNaN","pluralCat","whenExpFn","ngRepeatMinErr","updateScope","valueIdentifier","keyIdentifier","arrayLength","$first","$last","$middle","$odd","$even","ngRepeatCompile","ngRepeatEndComment","aliasAs","trackByExp","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","hashFnLocals","ngRepeatLink","lastBlockMap","ngRepeatAction","previousNode","nextNode","nextBlockMap","collectionLength","trackById","collectionKeys","nextBlockOrder","trackByIdFn","blockKey","ngRepeatTransclude","ngShowWatchAction","NG_HIDE_CLASS","NG_HIDE_IN_PROGRESS_CLASS","ngHideWatchAction","ngStyleWatchAction","newStyles","oldStyles","ngSwitchController","cases","selectedTranscludes","selectedElements","previousLeaveAnimations","selectedScopes","spliceFactory","ngSwitchWatchAction","selectedTransclude","caseElement","selectedScope","anchor","noopNgModelController","SelectController","optionsMap","renderUnknownOption","self.renderUnknownOption","unknownVal","removeUnknownOption","self.removeUnknownOption","self.readValue","self.writeValue","hasOption","addOption","self.addOption","removeOption","self.removeOption","self.hasOption","ngModelCtrl.$render","lastView","lastViewRef","selectMultipleWatch","chromeHack","selectCtrlName","interpolateWatchAction","ctrl.$validators.required","patternExp","ctrl.$validators.pattern","intVal","ctrl.$validators.maxlength","ctrl.$validators.minlength","getDecimals","opt_precision","pow","ONE","OTHER","$$csp","head"] } diff --git a/easyFormGenConfig/app/appConfig.js b/easyFormGenConfig/app/appConfig.js index 825a44ed..3ed80a13 100644 --- a/easyFormGenConfig/app/appConfig.js +++ b/easyFormGenConfig/app/appConfig.js @@ -12,8 +12,8 @@ module.exports = { //easy form generator verioning version : { - stepWay : '1.0.15', - dragAndDropWay : '1.0.15' + stepWay : '1.0.16', + dragAndDropWay : '1.0.16' }, concatVendorFiles : false diff --git a/package.json b/package.json index a706cd9e..7295368a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "easy-form-generator", - "version": "1.0.15", + "version": "1.0.16", "description": "create amazing forms without coding : form editor based on angular formly", "scripts": { "test": "echo \"Error: no test specified right now\" && exit 1" diff --git a/public/css/eda.dragdropway.css b/public/css/eda.dragdropway.css index faed16f7..bcad8322 100644 --- a/public/css/eda.dragdropway.css +++ b/public/css/eda.dragdropway.css @@ -1,6 +1,6 @@ /*! * easyFormGenerator — drag and drop way — version - * Version 1.0.15 + * Version 1.0.16 * Author : Erwan Datin (MacKentoch) *Link: https://github.com/MacKentoch/easyFormGenerator * License : 2015 MIT diff --git a/public/css/eda.dragdropway.min.css b/public/css/eda.dragdropway.min.css index da6edfac..92027950 100644 --- a/public/css/eda.dragdropway.min.css +++ b/public/css/eda.dragdropway.min.css @@ -1,6 +1,6 @@ /*! * easyFormGenerator — drag and drop way — version - * Version 1.0.15 + * Version 1.0.16 * Author : Erwan Datin (MacKentoch) *Link: https://github.com/MacKentoch/easyFormGenerator * License : 2015 MIT diff --git a/public/css/eda.stepway.css b/public/css/eda.stepway.css index 666f3c0d..1e61bf65 100755 --- a/public/css/eda.stepway.css +++ b/public/css/eda.stepway.css @@ -1,6 +1,6 @@ /*! * easyFormGenerator — step way — version - * Version 1.0.15 + * Version 1.0.16 * Author : Erwan Datin (MacKentoch) *Link: https://github.com/MacKentoch/easyFormGenerator * License : 2015 MIT diff --git a/public/css/eda.stepway.min.css b/public/css/eda.stepway.min.css index 5aa60903..bcc8c252 100755 --- a/public/css/eda.stepway.min.css +++ b/public/css/eda.stepway.min.css @@ -1,6 +1,6 @@ /*! * easyFormGenerator — step way — version - * Version 1.0.15 + * Version 1.0.16 * Author : Erwan Datin (MacKentoch) *Link: https://github.com/MacKentoch/easyFormGenerator * License : 2015 MIT diff --git a/public/js/eda.dragdropway.js b/public/js/eda.dragdropway.js index 15382c70..5e7ea992 100644 --- a/public/js/eda.dragdropway.js +++ b/public/js/eda.dragdropway.js @@ -1,6 +1,6 @@ /** *easyFormGenerator — drag and drop way — version - *Version 1.0.15 + *Version 1.0.16 *Author : Erwan Datin (MacKentoch) *Link: https://github.com/MacKentoch/easyFormGenerator *License : MIT (2015) @@ -46,7 +46,7 @@ angular 'pageslide-directive' ]) - .value('easyFormGenVersion', 'v1.0.15') + .value('easyFormGenVersion', 'v1.0.16') .run(runfct); diff --git a/public/js/eda.dragdropway.min.js b/public/js/eda.dragdropway.min.js index d42652f1..af802c42 100644 --- a/public/js/eda.dragdropway.min.js +++ b/public/js/eda.dragdropway.min.js @@ -1,4 +1,4 @@ -!function(){"use strict";function e(e){function o(){return['"].join("")}function t(){return['
','
','
','
','
  Edit :
',"
","
",'
','
','
Column will be blank
',"
","
","
",f,"
"].join("")}function l(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function n(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function i(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function r(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function a(){return['
','
','
','
','
  Edit properties :
',"
","
",'
',' ','
','
    ','
  1. '," {{dateformat}}","
  2. ","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function s(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function d(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function c(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no radio : add new radio values -
',"
",' '," "," ",' ',' ',' '," "," ",' ',' ",' '," "," "," ",' ',' ',' ',' "," "," ","
orderoption
',' ',"
{{$index}}{{radioRow.option}}','
',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function p(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function u(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no option : add new options -
',"
",' '," "," ",' ',' ',' '," "," ",' ',' ",' '," "," "," ",' ',' ',' ',' "," "," ","
orderoption
',' ',"
{{$index}}{{basicSelectRow.option}}','
',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function m(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no option : add new options -
',"
",' '," "," ",' ',' ',' ',' '," "," ",' ',' ',' ",' '," "," "," ",' ',' ',' ",' ',' "," "," ","
ordergroupoption
',' ',"
{{$index}}','
','
','

- add new groups -

',"
",'
','
    ','
  1. '," {{GroupedSelectGroup}}","
  2. ","
","
","
",'
'," {{groupedSelectRow.group}}","
","
{{groupedSelectRow.option}}','
',' ',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}var f=o();e.put("editPanelBlankCtrl-tpls.html",t()),e.put("editPanelHeaderCtrl-tpls.html",l()),e.put("editPanelSubTitleCtrl-tpls.html",n()),e.put("editPanelTextInputCtrl-tpls.html",i()),e.put("editPanelPasswordCtrl-tpls.html",r()),e.put("editPanelDateCtrl-tpls.html",a()),e.put("editPanelTextareaCtrl-tpls.html",s()),e.put("editPanelRichTextEditorCtrl-tpls.html",d()),e.put("editPanelRadioCtrl-tpls.html",c()),e.put("editPanelCheckboxCtrl-tpls.html",p()),e.put("editPanelBasicSelectCtrl-tpls.html",u()),e.put("editPanelGroupedSelectCtrl-tpls.html",m())}angular.module("edaApp",["edaApp.providers","edaApp.controllers","edaApp.services","edaApp.filters","edaApp.directives","textAngular","textAngularSetup","ngAnimate","toaster","formly","formlyBootstrap","ui.bootstrap","nya.bootstrap.select","dndLists","mgcrea.ngStrap.affix","pageslide-directive"]).value("easyFormGenVersion","v1.0.15").run(e), +!function(){"use strict";function e(e){function o(){return['"].join("")}function t(){return['
','
','
','
','
  Edit :
',"
","
",'
','
','
Column will be blank
',"
","
","
",f,"
"].join("")}function l(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function n(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function i(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function r(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function a(){return['
','
','
','
','
  Edit properties :
',"
","
",'
',' ','
','
    ','
  1. '," {{dateformat}}","
  2. ","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function s(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function d(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function c(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no radio : add new radio values -
',"
",' '," "," ",' ',' ',' '," "," ",' ',' ",' '," "," "," ",' ',' ',' ',' "," "," ","
orderoption
',' ',"
{{$index}}{{radioRow.option}}','
',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function p(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
','
',' ','
',' ',"
","
","
","
",'
','
','
','
',' ','
','
 
',' ',"
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function u(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no option : add new options -
',"
",' '," "," ",' ',' ',' '," "," ",' ',' ",' '," "," "," ",' ',' ',' ',' "," "," ","
orderoption
',' ',"
{{$index}}{{basicSelectRow.option}}','
',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}function m(){return['
','
','
','
','
  Edit properties :
',"
","
",'
','
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
',"
",'
','
',' ',"
",'
',' ',"
","
","
","
",'
','
',' ',"
","
",'
','
','
','
','
','
- no option : add new options -
',"
",' '," "," ",' ',' ',' ',' '," "," ",' ',' ',' ",' '," "," "," ",' ',' ',' ",' ',' "," "," ","
ordergroupoption
',' ',"
{{$index}}','
','
','

- add new groups -

',"
",'
','
    ','
  1. '," {{GroupedSelectGroup}}","
  2. ","
","
","
",'
'," {{groupedSelectRow.group}}","
","
{{groupedSelectRow.option}}','
',' ',' ',' ',' ',"
","
","
","
","
","
",'
','
','
','
',' ','
',' ',"
","
","
","
","
",f,"
"].join("")}var f=o();e.put("editPanelBlankCtrl-tpls.html",t()),e.put("editPanelHeaderCtrl-tpls.html",l()),e.put("editPanelSubTitleCtrl-tpls.html",n()),e.put("editPanelTextInputCtrl-tpls.html",i()),e.put("editPanelPasswordCtrl-tpls.html",r()),e.put("editPanelDateCtrl-tpls.html",a()),e.put("editPanelTextareaCtrl-tpls.html",s()),e.put("editPanelRichTextEditorCtrl-tpls.html",d()),e.put("editPanelRadioCtrl-tpls.html",c()),e.put("editPanelCheckboxCtrl-tpls.html",p()),e.put("editPanelBasicSelectCtrl-tpls.html",u()),e.put("editPanelGroupedSelectCtrl-tpls.html",m())}angular.module("edaApp",["edaApp.providers","edaApp.controllers","edaApp.services","edaApp.filters","edaApp.directives","textAngular","textAngularSetup","ngAnimate","toaster","formly","formlyBootstrap","ui.bootstrap","nya.bootstrap.select","dndLists","mgcrea.ngStrap.affix","pageslide-directive"]).value("easyFormGenVersion","v1.0.16").run(e), e.$inject=["$templateCache"],angular.module("edaApp").config(["dragDropConfigProvider",function(e){e.setItemsNotTocount({itemBeingDragged:"dndDraggingSource"})}]),angular.module("edaApp").config(["formlyConfigProvider","EasyFormGenFormlyBindingModelsProvider","dragDropConfigProvider",function(e,o,t){function l(e){return e=e.replace(/[\-_\s]+(.)?/g,function(e,o){return o?o.toUpperCase():""}),e.replace(/^([A-Z])/,function(e,o){return o?o.toLowerCase():""})}e.setType({name:"blank",template:"
"}),o.addEasyFormControlToList({id:"empty",name:"no control",subtitle:"no control",group:"Blank",formlyType:"blank",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
',"
","
","
"].join(""),control:"empty",cssClass:"col-xs-12"},{addToGroupCtrl:"blank"}),o.addEasyFormControlToList({id:"Header",name:"Header",subtitle:"no control",group:"Decoration",formlyType:"header",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','

Header

',"
","
","
","
"].join(""),control:"Header",cssClass:"col-xs-12"},{addToGroupCtrl:"headers"});var n=['
','
','

{{options.templateOptions.placeholder}}

',"
","

","
"].join(" ");e.setType({name:"subTitle",template:n}),o.addEasyFormControlToList({id:"Subtitle",name:"Subtitle",subtitle:"no control",group:"Decoration",formlyType:"subTitle",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','

SubTitle

',"
","
","
","
"].join(""),control:"Subtitle",cssClass:"col-xs-12"},{addToGroupCtrl:"headers"}),o.addEasyFormControlToList({id:"TextInput",name:"Text input",subtitle:"Text input",group:"input",formlyType:"input",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ",'
',' ','

Description

',"
","
","
"].join(""),control:"TextInput",cssClass:"col-xs-12"},{addToGroupCtrl:"inputs"}),o.addEasyFormControlToList({id:"Password",name:"Password",subtitle:"Password",group:"input",formlyType:"input",formlySubtype:"password",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ",'
',' ','

Description

',"
","
","
"].join(""),control:"Password",cssClass:"col-xs-12"},{addToGroupCtrl:"inputs"});var i=["date-disabled","custom-class","show-weeks","starting-day","init-date","min-mode","max-mode","format-day","format-month","format-year","format-day-header","format-day-title","format-month-title","year-range","shortcut-propagation","datepicker-popup","show-button-bar","current-text","clear-text","close-text","close-on-date-selection","datepicker-append-to-body"],r=["datepicker-mode","min-date","max-date"],a={};angular.forEach(i,function(e){a[l(e)]={attribute:e}}),angular.forEach(r,function(e){a[l(e)]={bound:e}});var s=[""].join(" ");e.setType({name:"datepicker",template:s,wrapper:["bootstrapLabel","bootstrapHasError"],controller:["$scope",function(e){e.open=function(o){o.preventDefault(),o.stopPropagation(),e.opened=!0}}],defaultOptions:{ngModelAttrs:a,templateOptions:{addonLeft:{"class":"glyphicon glyphicon-calendar",onClick:function(e){e.templateOptions.isOpen=!e.templateOptions.isOpen}},onFocus:function(e,o,t){t.to.isOpen=!t.to.isOpen},datepickerOptions:{}}}}),o.addEasyFormControlToList({id:"Date",name:"Date",subtitle:"Date",group:"input",formlyType:"datepicker",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],datepickerPopup:"dd-MMMM-yyyy"}),t.addControlToDragDropPresentationModel({label:['
','
',' ",'
','
',' ',' ',"
","
",'

description

',"
","
"].join(""),control:"Date",cssClass:"col-xs-12"},{addToGroupCtrl:"inputs"}),o.addEasyFormControlToList({id:"Texarea",name:"Textarea",subtitle:"Textarea",group:"Textarea",formlyType:"textarea",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
',' ','

description

',"
","
","
"].join(""),control:"Texarea",cssClass:"col-xs-12"},{addToGroupCtrl:"textareas"});var d=['',""].join(" ");e.setType({name:"richEditor",template:d}),o.addEasyFormControlToList({id:"RichTextEditor",name:"RichTextEditor",subtitle:"RichTextEditor",group:"Textarea",formlyType:"richEditor",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
',' ','

description

',"
","
","
"].join(""),control:"RichTextEditor",cssClass:"col-xs-12"},{addToGroupCtrl:"textareas"}),o.addEasyFormControlToList({id:"Radio",name:"Radio",subtitle:"Radio",options:[],group:"Radio",formlyType:"radio",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
','
','
',' ",'
',' ","
",'

description

',"
","
","
"].join(""),control:"Radio",cssClass:"col-xs-12"},{addToGroupCtrl:"radios"}),o.addEasyFormControlToList({id:"Checkbox",name:"Checkbox",subtitle:"Checkbox",group:"Checkbox",formlyType:"checkbox",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ","
",'

description

',"
"].join(""),control:"Checkbox",cssClass:"col-xs-12"},{addToGroupCtrl:"checkboxes"});var c=['
    ','
  1. '," {{option.name}} ","
  2. ","
"].join("");e.setType({name:"basicSelect",template:c}),o.addEasyFormControlToList({id:"BasicSelect",name:"Basic select",subtitle:"Basic select",options:[],group:"Select",formlyType:"basicSelect",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','
    ',' ","
","
"].join(""),control:"BasicSelect",cssClass:"col-xs-12"},{addToGroupCtrl:"selects"});var p=['
    ','
  1. ',' {{$group}}'," "," {{option.name}}",' '," ","
  2. ","
"].join(" ");e.setType({name:"groupedSelect",template:p}),o.addEasyFormControlToList({id:"GroupedSelect",name:"Grouped Select",subtitle:"Grouped Select",options:[],group:"Select",formlyType:"groupedSelect",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','
    ',' ","
","
"].join(""),control:"GroupedSelect",cssClass:"col-xs-12"},{addToGroupCtrl:"selects"})}]),angular.module("edaApp").run(["$templateCache",function(e){e.put("editModalTemplate.html","

no use right now

")}]),angular.module("edaApp.providers.dragDropConfigProvider",[]).provider("dragDropConfig",[function(){function e(e,o){if(l[0].length>0){if(l[0].lengthi;i++)l[0].push([]);t.containerConfig.decoration.forEach(function(t){o.addToGroupCtrl===t.groupId&&l[0][t.WhenIndex].push(e)})}else t.containerConfig.decoration.forEach(function(){l[0].push([])}),t.containerConfig.decoration.forEach(function(t){o.addToGroupCtrl===t.groupId&&l[0][t.WhenIndex].push(e)})}var o=[{cssClass:"col-md-12",numberItemPerRow:0},{cssClass:"col-md-12",numberItemPerRow:1},{cssClass:"col-md-6",numberItemPerRow:2},{cssClass:"col-md-4",numberItemPerRow:3}],t={dropZoneConfig:{decoration:[{WhenIndex:0,ApplycssClass:"col-md-4",fontAwesomeIcon:"fa fa-level-up",title:"Drag control from here : "},{WhenIndex:1,ApplycssClass:"col-md-8",fontAwesomeIcon:"fa fa-level-down",title:"Drop control into here : "}],verboseMode:!1},containerConfig:{decoration:[{WhenIndex:0,ApplycssClass:"col-md-12",title:"Blank : ",groupId:"blank",isCollapsed:!0},{WhenIndex:1,ApplycssClass:"col-md-12",title:"Headers : ",groupId:"headers",isCollapsed:!0},{WhenIndex:2,ApplycssClass:"col-md-12",title:"Text inputs : ",groupId:"inputs",isCollapsed:!0},{WhenIndex:3,ApplycssClass:"col-md-12",title:"Textareas : ",groupId:"textareas",isCollapsed:!0},{WhenIndex:4,ApplycssClass:"col-md-12",title:"Radios : ",groupId:"radios",isCollapsed:!0},{WhenIndex:5,ApplycssClass:"col-md-12",title:"Checkboxes : ",groupId:"checkboxes",isCollapsed:!0},{WhenIndex:6,ApplycssClass:"col-md-12",title:"Selects : ",groupId:"selects",isCollapsed:!0}],verboseMode:!1,collapseEnabled:!0,collapseCtrl:[{atIndex:0,collapse:!0},{atIndex:1,collapse:!0}]},itemConfig:{verboseMode:!1}},l=[[],[[]]],n={itemBeingDragged:""};this.setListItemCssClass=function(e){o=[].concat(e)},this.getItemsNotTocount=function(){return n},this.setItemsNotTocount=function(e){n=angular.copy(e)},this.addControlToDragDropPresentationModel=function(o,t){"undefined"!=typeof o&&"undefined"!=typeof t&&e(o,t)},this.getDragDropPresentationModel=function(){return l},this.$get=[function(){var e={};return e.getListItemCssClass=function(){return o},e.getItemsNotToCount=function(){return n},e.getItemCssDependingNumberItemsInRow=function(e){if("undefined"!=typeof e){for(var t="",l=o.length-1;l>=0;l--)o[l].numberItemPerRow===e&&(t=o[l].cssClass);return t}return""},e.getDistinctItemCssClass=function(){var e=[];return angular.forEach(o,function(o){var t=o.cssClass;if(0===e.length)e.push(t);else{var l=!0;angular.forEach(e,function(e){var o=e;t===o&&(l=!1)}),l&&e.push(t)}}),e},e.getDragDropConfigModel=function(){return t},e.setDragDropConfigContainerDecorationCollapse=function(e,o,t){return"undefined"!=typeof o&&"undefined"!=typeof t&&o===parseInt(o,10)&&(e.containerConfig.decoration[o].isCollapsed=t),!0},e.getDragDropPresentationModel=function(){return l},e}]}]),angular.module("edaApp.providers.EasyFormGenFormlyBindingModels",[]).provider("EasyFormGenFormlyBindingModels",[function(){var e={controls:[],selectedControl:"none",temporyConfig:{selectedControl:"none",formlyLabel:"label",formlyRequired:!1,formlyDesciption:"",formlyPlaceholder:"",formlyOptions:[]}},o={line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]},t={control:{type:"none",key:"none"}},l={submitButtonText:"submit",cancelButtonText:"cancel",lines:[].concat(o)},n={activeLine:1,listConfigStep:["init","first","second","third"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0},i={submitButtonText:"submit",cancelButtonText:"cancel",lines:[]},r={cssClass:["col-xs-12","col-xs-6","col-xs-4"],textContent:"",html_part1:['
','

'].join(""),html_part3:this.textContent,html_part4:["

","
","

"].join(""),simpleHtml1:['

'].join(""),simpleHtml2:["

","
"].join("")},a={className:["col-xs-12","col-xs-6","col-xs-4"],type:"",key:"",templateOptions:{type:"",label:"",required:"",placeholder:"",description:"",options:""}},s=[{controlType:"datepicker",properties:[{isRoot:!1,isTemplateOptions:!0,value:"datepickerPopup"}]}];this.getAllParticularControlProperties=function(){return s},this.addParticularControlProperties=function(e){if("controlType"in e&&"properties"in e){var o=!1;s.length>0&&s.forEach(function(t){t.controlType===e.controlType&&(t.properties=[].concat(e.properties),o=!0)}),o||s.push(e)}return s},this.getEasyFormListControls=function(){return e},this.addEasyFormControlToList=function(o){"undefined"!=typeof o&&e.controls.push(o)},this.getHeaderTemplates=function(){return r},this.addHeaderTemplateCssClass=function(e){"undefined"!=typeof e&&r.cssClass.push(e)},this.getFormlyControlTemplate=function(){return a},this.addformlyControlTemplatesCssClass=function(e){"undefined"!=typeof e&&a.className.push(e)},this.setFormlyControlTemplate=function(e){return"className"in e&&"type"in e&&"key"in e&&"templateOptions"in e&&(a=angular.copy(e)),!0},this.$get=[function(){var d={};return d.getEasyFormListControls=function(){return e},d.getEasyFormInitialStateConfigurationModel=function(e){var o=angular.copy(l);return"undefined"!=typeof e&&e&&angular.extend(o,n),o},d.getEasyFormReloadConfigurationModel=function(e){var o=angular.copy(i);return"undefined"!=typeof e&&e&&angular.extend(o,n),o},d.getEasyFormEmptyConfigurationLineModel=function(){return o},d.getEasyFormConfigurationEmptyControlModel=function(){return t},d.getRawHeaderTemplates=function(){return r},d.getHeaderTemplateForNcolumnLine=function(e,o){if("undefined"!=typeof e&&"undefined"!=typeof o&&e===parseInt(e,10)&&e<=r.cssClass.length){var t={};return t.className=r.cssClass[e-1],r.textContent=o,r.selectedClass=t.className,t.template=[r.simpleHtml1,o,r.simpleHtml2].join(""),t}},d.getRawFormlyControlTemplates=function(){return a},d.getFormlyControlTemplateForNcolumnLine=function(e,o){if("undefined"!=typeof e&&e===parseInt(e,10)&&e<=a.className.length){var t=angular.copy(a);return t.className=a.className[e-1],"undefined"!=typeof o&&s.forEach(function(e){e.controlType===o&&e.properties.forEach(function(e){e.isRoot&&(t[e.value]=""),e.isTemplateOptions&&(t.templateOptions[e.value]="")})}),t}},d}]}]),angular.module("edaApp.providers",["edaApp.providers.dragDropConfigProvider","edaApp.providers.EasyFormGenFormlyBindingModels",function(){}]),angular.module("edaApp.controllers",["edaApp.controllers.edaMainController","edaApp.controllers.edaEditController","edaApp.controllers.edaEditMODALController","edaApp.controllers.edaEditPanelController"]),angular.module("edaApp.controllers.edaEditController",[]).controller("edaEditController",["$scope","easyFormGenVersion","$filter","$anchorScroll","toaster","$timeout","$modal","$log","formFieldManage","formsByIdService","controllerModalProxy","dragDropItemDecorationService","dragDropConfig","ddModelConfModelProxyService","ddItemRightClickedManager",function(e,o,t,l,n,i,r,a,s,d,c,p,u,m,f){function g(){n.pop({type:"info",timeout:2e3,title:"should save data model if it were not a static example",body:"data :"+t("json")(e.vm.model,4),showCloseButton:!0})}function y(){s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}e.easyFormGeneratorVERSION=o,e.tab={editTab:{active:!0},previewTab:{active:!1}},e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.ihm={preview:{formlyModelViewExpanded:!0,formlyFieldsViewExpanded:!0,customizeFormButtonsExpanded:!0,saveThisFormExpanded:!0}},e.easyFormDragDropProperties=u.getDragDropConfigModel(),e.dragDropModel=[].concat(u.getDragDropPresentationModel()),e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.configuration={},s.initConfigurationEditFromScratch(e.configuration,!1),c.initProxyModel(),e.collapseAllGroupControl=function(o){angular.forEach(e.easyFormDragDropProperties.containerConfig.decoration,function(t){t.WhenIndex!==o&&u.setDragDropConfigContainerDecorationCollapse(e.easyFormDragDropProperties,t.WhenIndex,!0)})},e.vm.onSubmit=g,e.resetToZeroModel=function(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()},e.countConfigurationModelLines=function(){return e.configuration.lines.length},e.setActiveLineNumber=function(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)},e.upThisLine=function(o){if(o>-1&&e.configuration.lines[o-1]){var t=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,t),e.configuration.activeLine=1}s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.downThisLine=function(o){if(o>-1&&e.configuration.lines[o+1]){var t=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,t),e.configuration.activeLine=1}s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.removeThisLine=function(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):i(function(){n.pop({type:"warning",title:"Last line",body:"Can't delete the last line",showCloseButton:!0})},100),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))},e.increaseNumberOfColumns=function(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.saveThisForm=function(){if("undefined"==typeof e.configuration.formName)return n.pop({type:"warning",timeout:2e3,title:"Form name is undefined",body:"Form has not been saved.",showCloseButton:!0}),!1;if(""===e.configuration.formName)return n.pop({type:"warning",timeout:2e3,title:"Form name is required",body:"Form has not been saved.",showCloseButton:!0}),!1;n.pop({type:"wait",timeout:1e4,title:"Form is being saved",body:"Wait.",showCloseButton:!0});var o=new d;return o.formName=e.configuration.formName,o.submitButtonText=e.configuration.submitButtonText,o.cancelButtonText=e.configuration.cancelButtonText,o.formlyField=JSON.stringify(e.configuration.lines),n.clear(),n.pop({type:"info",timeout:2e3,title:"Form would be saved if it were not a static example",body:"",showCloseButton:!0}),!0},e.nyaSelect={},c.initNyaSelect(e.nyaSelect),e.animationsEnabled=!0,e.showModalAddCtrlToColumn=function(o,t,l){var n=r.open({animation:e.animationsEnabled,templateUrl:"editModalTemplate.html",controller:"edaEditMODALController",size:"lg",resolve:{nyaSelect:function(){return c.getNyASelectFromSelectedLineColumn(e.nyaSelect,e.configuration,t,l)}}});n.result.then(function(o){c.bindConfigurationModelFromModalReturn(t,l,o,e.configuration),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},function(){a.info("Modal dismissed at: "+new Date)})},e.dragoverCallbackContainer=function(e,o,t){return 0===t?!1:!0},e.dropCallback=function(o,t,l,n,r,a){if(n){if("itemType"===a&&!l.label)return!1;if("containerType"===a&&!angular.isArray(l))return!1}var d=i(function(){e.configuration=angular.copy(m.refreshAllConfigurationFromDragAndDropModel(e.configuration,e.dragDropModel)),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel)},200);return e.$on("$destroy",function(){i.cancel(d)}),l},e.dndItemMoved=function(o,t,l){o>0&&e.dragDropModel[o][t].splice(l,1)},e.dragoverCallbackItems=function(e,o,t,l){return 0===o?!1:!0},e.disableItemDropIf=function(){},e.dropCallbackItems=function(o,t,l,n,r,a,d,c,p,u){if(c){if("itemType"===u&&!d.label)return!1;if("containerType"===u&&!angular.isArray(d))return!1}var g=i(function(){e.configuration=angular.copy(m.refreshAllConfigurationFromDragAndDropModel(e.configuration,e.dragDropModel)),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel)},200);return f.setUnRightClicked(d),e.$on("$destroy",function(){i.cancel(g)}),d},e.editPanelModel={toggle:!1},e.saveFromEditPanel=function(){c.bindSpecialCtrlTemporyModelsToProxyModel(),c.bindConfigurationModelFromProxyModel(c.getEditPanelModelLineIndex(),c.getEditPanelModelColumnIndex(),e.configuration),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel),c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle(),f.resetAllDragDropItemSelectedState(e.dragDropModel)},e.closeEditPanel=function(){f.resetAllDragDropItemSelectedState(e.dragDropModel),c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle()},e.debugProxyModel=c.ProxyModel,e.setRightClicked=function(e,o){o.rightCliked=!0},e.toggleEditPanel=function(o,t,l,n){if(f.resetAllDragDropItemSelectedState(e.dragDropModel),c.getEditPanelModelToggle()){if(c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle(),"undefined"!=typeof c.getEditPanelModelLineIndex()&&"undefined"!=typeof c.getEditPanelModelColumnIndex()&&"undefined"!=typeof c.getEditPanelModelControl())if(c.getEditPanelModelLineIndex()===t&&c.getEditPanelModelColumnIndex()===l&&angular.equals(c.getEditPanelModelControl(),n));else{n.rightCliked=!0;var r=i(function(){c.setEditPanelModelLineIndex(t),c.setEditPanelModelColumnIndex(l),c.setEditPanelModelControl(n),c.setProxyModelFromConfigurationSelection(e.configuration,t,l),c.setEditPanelModelToggle(!0),e.editPanelModel.toggle=c.getEditPanelModelToggle()},200);e.$on("$destroy",function(){i.cancel(r)})}}else n.rightCliked=!0,c.setEditPanelModelLineIndex(t),c.setEditPanelModelColumnIndex(l),c.setEditPanelModelControl(n),c.setProxyModelFromConfigurationSelection(e.configuration,t,l),c.setEditPanelModelToggle(!0),e.editPanelModel.toggle=c.getEditPanelModelToggle()},e.removeThisLine=function(o){e.dragDropModel[1].splice(o,1)},e.model=[],e.insertNewLine=function(){y(),e.dragDropModel[1].push([])}}]),angular.module("edaApp.controllers.edaEditMODALController",[]).controller("edaEditMODALController",["$scope","$modalInstance","nyaSelect","toaster","$timeout","selectOptionManage","controllerModalProxy",function(e,o,t,l,n,i,r){function a(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:""};e.radioRowCollection.rows.push(t)}}function s(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.radioRowCollection.rows.length>0)for(var t=0;t<=e.radioRowCollection.rows.length-1;t++){var l={name:e.radioRowCollection.rows[t].option,value:t,group:""};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function d(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:""};e.basicSelectRowCollection.rows.push(t)}}function c(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.basicSelectRowCollection.rows.length>0)for(var t=0;t<=e.basicSelectRowCollection.rows.length-1;t++){var l={name:e.basicSelectRowCollection.rows[t].option,value:t,group:""};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function p(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0){for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:e.nyaSelect.temporyConfig.formlyOptions[o].group};e.groupedSelectRowCollection.rows.push(t)}var l=_.uniq(_.pluck(e.groupedSelectRowCollection.rows,"group"));angular.copy(l,e.GroupedSelectGroups.list)}}function u(){e.nyaSelect.temporyConfig.formlyOptions=[];for(var o=0;o<=e.groupedSelectRowCollection.rows.length-1;o++){var t={name:e.groupedSelectRowCollection.rows[o].option,value:o,group:e.groupedSelectRowCollection.rows[o].group};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function m(){e.nyaSelect.temporyConfig.datepickerPopup=e.demodt.formats[0]}function f(){e.nyaSelect.temporyConfig={formlyLabel:"",formlyRequired:!1,formlyPlaceholder:"",formlyDesciption:"",formlyOptions:[]}}var g={rows:[]};if(e.radioRowCollection=g,e.newOptionRadio={saisie:""},e.addNewOptionRadio=function(){var o=i.addNewOptionRadio(e.radioRowCollection,e.newOptionRadio.saisie);o.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionRadio.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionRadio={saisie:""}},e.removeRadioRow=function(o){var t=i.removeOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},e.upThisRadioRow=function(o){var t=i.upthisOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.downThisRadioRow=function(o){var t=i.downthisOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.basicSelectRowCollection=g,e.newOptionBasicSelect={saisie:""},e.addNewOptionBasicSelect=function(){var o=i.addNewOptionBasicSelect(e.basicSelectRowCollection,e.newOptionBasicSelect.saisie);o.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionBasicSelect.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionBasicSelect={saisie:""}},e.removeRow=function(o){var t=i.removeOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},e.upThisRow=function(o){var t=i.upthisOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.downThisRow=function(o){var t=i.downthisOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({ type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.groupedSelectRowCollection=g,e.newOptionGroupedSelect={saisie:""},e.GroupedSelectGroups={list:[]},e.newGroupGroupedSelect={saisie:""},e.groupSelectGroupClick={showList:!1},e.showGroupListToChoose=function(){e.groupSelectGroupClick.showList=!e.groupSelectGroupClick.showList},e.addNewGroupToGroupedSelect=function(){if(""!==e.newGroupGroupedSelect.saisie){for(var o=e.GroupedSelectGroups.list.length-1;o>=0;o--)e.GroupedSelectGroups.list[o]===e.newGroupGroupedSelect.saisie&&l.pop({type:"warning",timeout:2e3,title:"Group already exists",body:"No group added.",showCloseButton:!0});e.GroupedSelectGroups.list.push(e.newGroupGroupedSelect.saisie)}else l.pop({type:"warning",timeout:2e3,title:"Not a valid group to add",body:"No group added.",showCloseButton:!0});e.newGroupGroupedSelect.saisie=""},e.addNewOptionGroupedSelect=function(){var o=i.addNewOptionGroupedSelect(e.groupedSelectRowCollection,e.newOptionGroupedSelect.saisie,"");o.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionGroupedSelect.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionGroupedSelect={saisie:""}},e.removeGroupedSelectRow=function(o){var t=i.removeOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},e.upThisGroupedSelectRow=function(o){var t=i.upthisOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.downThisGroupedSelectRow=function(o){var t=i.downthisOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},e.demodt={},e.today=function(){e.demodt.dt=new Date},e.today(),e.clear=function(){e.demodt.dt=null},e.open=function(o){o.preventDefault(),o.stopPropagation(),e.demodt.opened=!0},e.dateOptions={formatYear:"yy",startingDay:1,showWeeks:!0,initDate:null},e.demodt.formats=["dd-MMMM-yyyy","yyyy/MM/dd","dd.MM.yyyy","shortDate"],e.nyaSelect=t,e.nyaSelect.selectedControl=e.nyaSelect.temporyConfig.selectedControl,"none"!==t.selectedControl){for(var y=e.nyaSelect.controls.length-1;y>=0;y--)e.nyaSelect.controls[y].id===t.selectedControl&&(e.modelNyaSelect=t.controls[y]);"BasicSelect"===e.nyaSelect.selectedControl&&d(),"GroupedSelect"===e.nyaSelect.selectedControl&&p(),"Radio"===e.nyaSelect.selectedControl&&a()}e.selectThisControl=function(o){e.nyaSelect.selectedControl="none",f();for(var t=e.nyaSelect.controls.length-1;t>=0;t--)e.nyaSelect.controls[t].id===o&&(e.nyaSelect.selectedControl=e.nyaSelect.controls[t].id);"Date"===e.nyaSelect.selectedControl&&m()},e.ok=function(){"BasicSelect"===e.nyaSelect.selectedControl&&c(),"GroupedSelect"===e.nyaSelect.selectedControl&&u(),"Radio"===e.nyaSelect.selectedControl&&s(),r.applyConfigToSelectedControl(e.nyaSelect),o.close(e.nyaSelect)},e.cancel=function(){o.dismiss("cancel")}}]),angular.module("edaApp.controllers.edaEditPanelController",[]).controller("edaEditPanelController",["$scope","toaster","$timeout","selectOptionManage","controllerModalProxy",function(e,o,t,l,n){function i(){a.proxyModel.temporyConfig={formlyLabel:"",formlyRequired:!1,formlyPlaceholder:"",formlyDesciption:"",formlyOptions:[]}}function r(){a.proxyModel.temporyConfig.datepickerPopup=a.demodt.formats[0]}var a=this;if(a.proxyModel=n.proxyModel,a.proxyModel.selectedControl=a.proxyModel.temporyConfig.selectedControl,a.basicSelectRowCollection=n.basicSelectRowCollection,a.newOptionBasicSelect=n.newOptionBasicSelect,a.groupedSelectRowCollection=n.groupedSelectRowCollection,a.newOptionGroupedSelect=n.newOptionGroupedSelect,a.GroupedSelectGroups=n.GroupedSelectGroups,a.newGroupGroupedSelect=n.newGroupGroupedSelect,a.groupSelectGroupClick=n.groupSelectGroupClick,a.radioRowCollection=n.radioRowCollection,a.newOptionRadio=n.newOptionRadio,n.resetAllTemporyModels(),"none"!==a.proxyModel.temporyConfig.selectedControl){for(var s=a.proxyModel.controls.length-1;s>=0;s--)a.proxyModel.controls[s].id===a.proxyModel.temporyConfig.selectedControl&&(a.modelproxyModel=a.proxyModel.controls[s]);"BasicSelect"===a.proxyModel.temporyConfig.selectedControl&&n.bindBasicSelectFromProxyModel(a.basicSelectRowCollection),"GroupedSelect"===a.proxyModel.temporyConfig.selectedControl&&n.bindGroupedSelectFromProxyModel(a.groupedSelectRowCollection,a.GroupedSelectGroups),"Radio"===a.proxyModel.temporyConfig.selectedControl&&n.bindRadioFromProxyModel(a.radioRowCollection)}a.updateSpecialControl=function(){return n.basicSelectRowCollection=a.basicSelectRowCollection,n.newOptionBasicSelect=a.newOptionBasicSelect,n.groupedSelectRowCollection=a.groupedSelectRowCollection,n.newOptionGroupedSelect=a.newOptionGroupedSelect,n.GroupedSelectGroups=a.GroupedSelectGroups,n.newGroupGroupedSelect=a.newGroupGroupedSelect,n.groupSelectGroupClick=a.groupSelectGroupClick,n.radioRowCollection=a.radioRowCollection,n.newOptionRadio=a.newOptionRadio,n.bindSpecialCtrlTemporyModelsToProxyModel(),!0},a.resetControl=function(){a.proxyModel.temporyConfig.formlyLabel="",a.proxyModel.temporyConfig.formlyRequired=!1,a.proxyModel.temporyConfig.formlyPlaceholder="",a.proxyModel.temporyConfig.formlyDesciption="",a.proxyModel.temporyConfig.formlyOptions=[],a.proxyModel.temporyConfig.datepickerPopup=r()},a.selectThisControl=function(e){a.proxyModel.selectedControl="none",i();for(var o=a.proxyModel.controls.length-1;o>=0;o--)a.proxyModel.controls[o].id===e&&(a.proxyModel.selectedControl=a.proxyModel.controls[o].id);"Date"===a.proxyModel.selectedControl&&r()},a.addNewOptionRadio=function(){var e=l.addNewOptionRadio(a.radioRowCollection,a.newOptionRadio.saisie);e.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:e.details,body:"'"+a.newOptionRadio.saisie+"' cannot be added.",showCloseButton:!0}),a.newOptionRadio={saisie:""}},a.removeRadioRow=function(e){var t=l.removeOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},a.upThisRadioRow=function(e){var t=l.upthisOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.downThisRadioRow=function(e){var t=l.downthisOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.addNewOptionBasicSelect=function(){var e=l.addNewOptionBasicSelect(a.basicSelectRowCollection,a.newOptionBasicSelect.saisie);e.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:e.details,body:"'"+a.newOptionBasicSelect.saisie+"' cannot be added.",showCloseButton:!0}),a.newOptionBasicSelect={saisie:""}},a.removeRow=function(e){var t=l.removeOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},a.upThisRow=function(e){var t=l.upthisOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.downThisRow=function(e){var t=l.downthisOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.showGroupListToChoose=function(){a.groupSelectGroupClick.showList=!a.groupSelectGroupClick.showList},a.addNewGroupToGroupedSelect=function(){if(""!==a.newGroupGroupedSelect.saisie){for(var e=a.GroupedSelectGroups.list.length-1;e>=0;e--)a.GroupedSelectGroups.list[e]===a.newGroupGroupedSelect.saisie&&o.pop({type:"warning",timeout:2e3,title:"Group already exists",body:"No group added.",showCloseButton:!0});a.GroupedSelectGroups.list.push(a.newGroupGroupedSelect.saisie)}else o.pop({type:"warning",timeout:2e3,title:"Not a valid group to add",body:"No group added.",showCloseButton:!0});a.newGroupGroupedSelect.saisie=""},a.addNewOptionGroupedSelect=function(){var e=l.addNewOptionGroupedSelect(a.groupedSelectRowCollection,a.newOptionGroupedSelect.saisie,"");e.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:e.details,body:"'"+a.newOptionGroupedSelect.saisie+"' cannot be added.",showCloseButton:!0}),a.newOptionGroupedSelect={saisie:""}},a.removeGroupedSelectRow=function(e){var t=l.removeOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Delete was cancelled.",showCloseButton:!0})},a.upThisGroupedSelectRow=function(e){var t=l.upthisOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.downThisGroupedSelectRow=function(e){var t=l.downthisOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:"warning",timeout:2e3,title:t.details,body:"Operation cancelled.",showCloseButton:!0})},a.demodt={},a.today=function(){a.demodt.dt=new Date},a.today(),a.clear=function(){a.demodt.dt=null},a.open=function(e){e.preventDefault(),e.stopPropagation(),a.demodt.opened=!0},a.dateOptions={formatYear:"yy",startingDay:1,showWeeks:!0,initDate:null},a.demodt.formats=["dd-MMMM-yyyy","yyyy/MM/dd","dd.MM.yyyy","shortDate"]}]),angular.module("edaApp.controllers.edaMainController",[]).controller("edaMainController",[function(){}]),angular.module("edaApp.directives.edaDdContentCounterDirective",[]).directive("ddContentCounter",["dragDropItemCounterService","$timeout",function(e,o){return{scope:{valueWhenPlaceholder:"@ddValueWhenPlaceholder",valueWhendragging:"@ddValueWhenDragging",fullModel:"=ddFullModel",currentIndex:"@ddContentCounterCurrentIndex",parentIndex:"@ddContentCounterParentIndex",forceRefresh:"=ddContentCounterForceCssRefresh"},restrict:"A",link:function(t,l){var n;t.$watch(function(){return l[0].children.length},function(i,r){if(i!==r){for(var a=0,s=[],d=l[0].children.length-1;d>=0;d--)e.isHtmlElementToCount(l[0].children[d].classList)?(a++,s.push({item:d,isReal:!0})):s.push({item:d,isReal:!1});t.contentRealCount=a,n=o(function(){e.updateLineItemCss(t.fullModel,s,t.parentIndex,t.currentIndex,a)},20)}}),t.$on("$destroy",function(){console.warn("ddContentCounter timer destruction!"),o.cancel(n)})}}}]),angular.module("edaApp.directives.edaDdDecorContainerDirective",[]).directive("ddDecorContainer",[function(){var e=['
','
 {{currentTitle}}
',"
",'
','
',"
"].join(" ");return{scope:{styleParam:"=ddContainerProperties",isStillCollapsed:"=ddContainerIsCollpased",verboseMode:"@ddContainerVerboseMode",currentIndex:"@ddContainerCurrentIndex",collpaseAll:"&ddCollapseAll"},restrict:"A",template:e,transclude:!0,controller:function(e){e.config={isEnabled:!1},e.collapseFct=function(){e.collpaseAll({exceptThisOne:e.styleParam.WhenIndex}),e.isCollapsed=!e.isCollapsed,e.isStillCollapsed=e.isCollapsed},e.icons={closedClass:"glyphicon glyphicon-eye-open",opened:"glyphicon glyphicon-eye-close"},e.currentIconClass=function(){return e.isCollapsed?e.icons.closedClass:e.icons.opened}},link:function(e,o,t,l,n){var i=e.verboseMode,r=e.currentIndex;if(e.isCollapsed=!1,""!==i){var a=angular.lowercase(i);("true"===a||"1"===a)&&console.dir({whoAmI:"I am verbose from ddDecorContainer link",verbodeMode:a,ParentParentIndex:e.$parent.$parent.$index,ParentIndex:e.$parent.$index,currentIndex:r,styleParam:e.styleParam,columnindex:e.$parent.$parent.$parent.$parent.$index})}e.$watch(function(){return e.isStillCollapsed},function(o,t){o!==t&&0===e.$parent.$parent.$index&&(e.isCollapsed=o)}),e.config.isEnabled=!1,"undefined"!=typeof r&&""!==r&&"0"===r&&"undefined"!=typeof e.styleParam.title&&(e.currentTitle=e.styleParam.title,e.config.isEnabled=!0,e.isCollapsed=!0),n(e.$parent,function(e){var t=angular.element(o.children()[1]);t.append(e)})}}}]),angular.module("edaApp.directives.edaDdDecorDropZoneDirective",[]).directive("ddDecorDropZone",[function(){var e=['
','
','
','
','

','  '," {{currentTitle}}",'
',' ","
","

","
",'
','
','
',"
","
","
","
","
","
"].join(" ");return{scope:{styleParam:"=ddDropZoneProperties",verboseMode:"@ddDropZoneVerboseMode",currentIndex:"@ddDropZoneCurrentIndex",addNewLineFct:"&ddDropZoneAddNewLine"},restrict:"A",template:e,transclude:!0,link:function(e){var o=e.verboseMode,t=e.currentIndex;if(e.headerConfig={HeaderButtonVisible:!1,affixAttr:"bs-affix",affixEnabled:!1},""!==o){var l=angular.lowercase(o);("true"===l||"1"===l)&&console.dir({whoAmI:"I am verbose from ddDecorDropZone link",verbodeMode:l,ParentParentIndex:e.$parent.$parent.$index,ParentIndex:e.$parent.$index,currentIndex:t,styleParam:e.styleParam})}"undefined"!=typeof t&&""!==t&&("undefined"!=typeof e.styleParam.title&&(e.currentTitle=e.styleParam.title),"undefined"!=typeof e.styleParam.fontAwesomeIcon&&(e.currentFontAwesome=e.styleParam.fontAwesomeIcon),"1"===t&&(e.headerConfig.HeaderButtonVisible=!0))}}}]),angular.module("edaApp.directives.edaDdDecorItemDirective",[]).directive("ddDecorItem",["dragDropConfig",function(e){var o=["
",'
',"
"].join(" ");return{scope:{verboseMode:"@ddItemVerboseMode",currentIndex:"@ddItemCurrentIndex",parentIndex:"@ddItemParentIndex",parentParentIndex:"@ddItemParentParentIndex",lineItemsCount:"@ddItemsCount",cssClass:"@ddItemCssClass"},restrict:"A",template:o,transclude:!0,link:function(o,t,l,n,i){var r=o.verboseMode,a=o.currentIndex,s=o.parentIndex,d=e.getDistinctItemCssClass();if(angular.forEach(d,function(e){t.removeClass(e)}),t.addClass(o.cssClass),o.$watch("cssClass",function(e,o){e!==o&&(angular.forEach(d,function(e){t.removeClass(e)}),t.addClass(e))}),""!==r){var c=angular.lowercase(r);("true"===c||"1"===c)&&console.dir({whoAmI:"I am verbose from ddDecorItem directive link",verbodeMode:c,ParentParentIndex:o.$parent.$parent.$index,ParentIndex:s,parentParentIndex:o.parentParentIndex,currentIndex:a,lineItemsCount:o.lineItemsCount})}"0"===o.parentParentIndex&&t.addClass(d[0]),i(o.$parent,function(e){var o=angular.element(t.children()[0]);o.append(e)})}}}]),angular.module("edaApp.directives.edaDdDecorLineDirective",[]).directive("ddDecorLine",["$timeout",function(e){var o=['
',' ',"
",'
'].join(" ");return{scope:{verboseMode:"@ddLineVerboseMode",currentIndex:"@ddLineCurrentIndex",parentIndex:"@ddLineParentIndex",removeLine:"&ddRemoveLine"},restrict:"A",template:o,transclude:!0,link:function(o,t,l,n,i){var r=o.verboseMode,a=o.currentIndex,s=o.parentIndex;if(o.deleteLine={},o.deleteLine.readyToDelete=!1,o.deleteLine.dblClickCount=0,o.isCollapsed=!1,""!==r){var d=angular.lowercase(r);("true"===d||"1"===d)&&console.dir({whoAmI:"I am verbose from ddDecorLine directive link",verbodeMode:d,ParentParentIndex:o.$parent.$parent.$index,ParentIndex:s,currentIndex:a})}o.removeMe=function(t){t.preventDefault(),t.stopPropagation(),"1"===o.parentIndex&&(1===o.deleteLine.dblClickCount&&(o.deleteLine.dblClickCount=0,o.deleteLine.readyToDelete=!1,o.removeLine(),e.cancel(c)),0===o.deleteLine.dblClickCount&&(o.deleteLine.dblClickCount=o.deleteLine.dblClickCount+1,o.deleteLine.readyToDelete=!0))};var c;o.cancelDelete=function(t){c=e(function(){o.deleteLine.dblClickCount=0,o.deleteLine.readyToDelete=!1},500)},o.$on("$destroy",function(){e.cancel(c)}),i(o.$parent,function(e){var o=angular.element(t.children()[0]);o.append(e)})}}}]),angular.module("edaApp.directives.edaDdNoEditableControlDirective",[]).directive("ddNoEditableControl",[function(){return{restrict:"A",link:function(e,o){o.on("click",function(e){e.preventDefault()})}}}]),angular.module("edaApp.directives",["edaApp.directives.edaStRationDirective","edaApp.directives.edaDdDecorDropZoneDirective","edaApp.directives.edaDdDecorContainerDirective","edaApp.directives.edaDdDecorLineDirective","edaApp.directives.edaDdDecorItemDirective","edaApp.directives.edaDdNoEditableControlDirective","edaApp.directives.edaDdContentCounterDirective","edaApp.directives.edaRightClickDirective"]),angular.module("edaApp.directives.edaRightClickDirective",[]).directive("edaRightClick",["$parse",function(e){return{restrict:"A",link:function(o,t,l){var n=e(l.edaRightClick),i=e(l.edaRightClickColIndex),r=e(l.edaSetRightClicked);t.on("contextmenu",function(e){o.$apply(function(){e.preventDefault(),1===i(o)&&r(o,{}),1===i(o)&&n(o,{$event:e})})})}}}]),angular.module("edaApp.directives.edaStRationDirective",[]).directive("stRatio",[function(){return{restrict:"A",link:function(e,o,t){var l=+t.stRatio;o.css("width",l+"%")}}}]),angular.module("edaApp.services.dragDropItemCountersService",[]).factory("dragDropItemCounterService",["dragDropConfig",function(e){var o=[],t=angular.copy(e.getItemsNotToCount()),l={};return l.getItemsNotToCount=function(){return t},l.getModelItemsRealCounter=function(){return o},l.isHtmlElementToCount=function(e){var o=!0;return e.length>0&&angular.forEach(t,function(t){for(var l=e.length-1;l>=0;l--)e[l]===t&&(o&=!1)}),o},l.updateLineItemCss=function(o,t,l,n,i){if("undefined"!=typeof o&&"undefined"!=typeof t&&"undefined"!=typeof l&&"undefined"!=typeof n&&"undefined"!=typeof i){for(var r=o[l][n].length-1;r>=0;r--)for(var a=0;a=0;r--)o[t][l][r].cssClass=e.getItemCssDependingNumberItemsInRow(n);return!0}return!1},t.updateCssClassWholeColumn=function(o,t){if("undefined"!=typeof t&&"undefined"!=typeof o){for(var l=o[t].length-1;l>=0;l--)for(var n=o[t][l].length-1;n>=0;n--)o[t][l][n].cssClass=e.getItemCssDependingNumberItemsInRow(o[t][l].length);return!0}return!1},t}]),angular.module("edaApp.services.dragDropModelConfigModelProxyService",[]).factory("ddModelConfModelProxyService",["EasyFormGenFormlyBindingModels","controllerModalProxy","$parse",function(e,o,t){function l(o){var l={},n=e.getEasyFormListControls(),i=t("controls");return angular.forEach(i(n),function(e){e.id===o.control&&(l=e)}),l}function n(e,o){for(var t=!0,l=o.lines.length-1;l>=0;l--)for(var n=o.lines[l].columns.length-1;n>=0;n--)"undefined"!=typeof o.lines[l].columns[n].control&&o.lines[l].columns[n].control.key===e&&(t=!1);return t}function i(e,o){var t=e+"-"+Date.now();return n(t,o)===!0?t:(t=e+"-"+Date.now(),n(t,o)===!0?t:t=e+"-"+Date.now())}function r(e,o,t){angular.forEach(t.lines,function(t,l){l===o&&(t.line=e)})}function a(e,o,l){t("control.selectedControl").assign(o,t("selectedControl")(e)),t("control.type").assign(o,t("formlyType")(e)),t("control.key").assign(o,i(t("control.type")(o),l)),t("control.subtype").assign(o,t("formlySubtype")(e)),t("control.templateOptions.label").assign(o,t("formlyLabel")(e)),t("control.templateOptions.required").assign(o,t("formlyRequired")(e)),t("control.templateOptions.description").assign(o,t("formlyDesciption")(e)),t("control.templateOptions.placeholder").assign(o,t("formlyPlaceholder")(e)),t("control.templateOptions.options").assign(o,t("formlyOptions")(e)),"datepicker"===t("control.type")(o)&&t("control.templateOptions.datepickerPopup").assign(o,t("datepickerPopup")(e))}var s={};return s.refreshAllConfigurationFromDragAndDropModel=function(o,t){angular.copy(o);return o.lines=[],angular.forEach(t[1],function(t,n){o.lines.push(angular.copy(e.getEasyFormEmptyConfigurationLineModel())),r(n+1,n,o),angular.forEach(t,function(i,r){var s={control:angular.copy(e.getFormlyControlTemplateForNcolumnLine(t.length,l(t[r]).formlyType))},d=l(t[r]);if("undefined"!=typeof i.key){console.warn("debug dragdropModel show this control key : "+i.key),s.control=angular.copy(i.configModelControl);var c=e.getFormlyControlTemplateForNcolumnLine(t.length,l(t[r]).formlyType);s.control.className=c.className,s.control.cssClass=c.className}else a(d,s,o);"undefined"==typeof o.lines[n].columns[r]&&o.lines[n].columns.push(angular.copy(e.getEasyFormConfigurationEmptyControlModel())),o.lines[n].columns[r].control=angular.copy(s.control),o.lines[n].columns[r].numColumn=r+1,o.lines[n].columns[r].exist=!0})}),o},s.refreshControlsKeys=function(e,o){angular.forEach(e.lines,function(e,t){angular.forEach(e.columns,function(e,l){"undefined"!=typeof o[1][t]&&o[1][t].length>0&&(o[1][t][l].key=e.control.key,o[1][t][l].configModelControl=angular.copy(e.control))})}),console.info("refreshControlsKeys"),console.dir({when:"starting","configModel is ":angular.copy(e),"dragDropModel is ":angular.copy(o)})},s}]),angular.module("edaApp.services.edaEditCtrlControllerModalProxy",[]).factory("controllerModalProxy",["EasyFormGenFormlyBindingModels",function(e){function o(o){var t=e.getEasyFormListControls();return angular.copy(t,o),!0}function t(){var o=e.getEasyFormListControls();return r.proxyModel=angular.copy(o),!0}function l(e){for(var o={selectedControl:"none",formlyType:"none",formlySubtype:"none",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyPlaceholder:"",formlyOptions:[]},t=e.controls.length-1;t>=0;t--)e.selectedControl===e.controls[t].id&&(o.selectedControl=e.selectedControl,o.formlyType=e.controls[t].formlyType,o.formlySubtype=e.controls[t].formlySubtype,o.formlyLabel=e.controls[t].formlyLabel,o.formlyRequired=e.controls[t].formlyRequired,o.formlyDesciption=e.controls[t].formlyDesciption,o.formlyPlaceholder=e.controls[t].formlyPlaceholder,o.formlyOptions=e.controls[t].formlyOptions,"datepicker"===e.controls[t].formlyType&&(o.datepickerPopup=e.controls[t].datepickerPopup));return o}function n(e,o){for(var t=!0,l=o.lines.length-1;l>=0;l--)for(var n=o.lines[l].columns.length-1;n>=0;n--)o.lines[l].columns[n].control.key===e&&(t=!1);return t}function i(o){var t="none",l=angular.copy(e.getEasyFormListControls().controls);return l.forEach(function(e){return e.formlyType===o.type&&e.formlySubtype===o.subtype?t=e.id:void 0}),t}var r={};r.ProxyModel={},t(),r.initNyaSelect=function(e){return o(e)},r.getNyASelectFromSelectedLineColumn=function(e,t,l,n){return o(e),"undefined"!=typeof t.lines[l].columns[n].control.templateOptions&&(e.temporyConfig.selectedControl="undefined"!=typeof t.lines[l].columns[n].control.selectedControl?t.lines[l].columns[n].control.selectedControl:"none",e.temporyConfig.formlyLabel="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.label?t.lines[l].columns[n].control.templateOptions.label:"",e.temporyConfig.formlyRequired="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.required?t.lines[l].columns[n].control.templateOptions.required:"",e.temporyConfig.formlyDesciption="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.description?t.lines[l].columns[n].control.templateOptions.description:"",e.temporyConfig.formlyPlaceholder="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.placeholder?t.lines[l].columns[n].control.templateOptions.placeholder:"",e.temporyConfig.formlyOptions="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.options?t.lines[l].columns[n].control.templateOptions.options:"","Date"===e.temporyConfig.selectedControl&&(e.temporyConfig.datepickerPopup="undefined"!=typeof t.lines[l].columns[n].control.templateOptions.datepickerPopup?t.lines[l].columns[n].control.templateOptions.datepickerPopup:"")),e},r.bindConfigurationModelFromModalReturn=function(e,o,t,i){var r=l(t);i.lines[e].columns[o].control.selectedControl=r.selectedControl,i.lines[e].columns[o].control.type=r.formlyType,i.lines[e].columns[o].control.subtype=r.formlySubtype,i.lines[e].columns[o].control.templateOptions={label:"",required:!1,description:"",placeholder:"",options:[]},i.lines[e].columns[o].control.templateOptions.label=r.formlyLabel,i.lines[e].columns[o].control.templateOptions.required=r.formlyRequired,i.lines[e].columns[o].control.templateOptions.description=r.formlyDesciption,i.lines[e].columns[o].control.templateOptions.placeholder=r.formlyPlaceholder,i.lines[e].columns[o].control.templateOptions.options=r.formlyOptions,"datepicker"===i.lines[e].columns[o].control.type&&(i.lines[e].columns[o].control.templateOptions.datepickerPopup=r.datepickerPopup);var a=i.lines[e].columns[o].control.type+"-"+Date.now();n(a,i)===!0?i.lines[e].columns[o].control.key=a:(a=i.lines[e].columns[o].control.type+"-"+Date.now(),n(a,i)===!0?i.lines[e].columns[o].control.key=a:a=i.lines[e].columns[o].control.type+"-"+Date.now()),i.lines[e].columns[o].control.edited=!0},r.applyConfigToSelectedControl=function(e){for(var o=e.controls.length-1;o>=0;o--)e.controls[o].id===e.selectedControl&&(e.controls[o].formlyLabel=e.temporyConfig.formlyLabel,e.controls[o].formlyRequired=e.temporyConfig.formlyRequired,e.controls[o].formlyDesciption=e.temporyConfig.formlyDesciption,e.controls[o].formlyPlaceholder=e.temporyConfig.formlyPlaceholder,e.controls[o].formlyOptions=e.temporyConfig.formlyOptions,"Date"===e.controls[o].id&&(e.controls[o].datepickerPopup=e.temporyConfig.datepickerPopup))},r.initProxyModel=function(e){return t(e)},r.bindConfigurationModelFromProxyModel=function(e,o,t){var l=angular.copy(r.proxyModel.temporyConfig);console.warn("debug edaEditCtrlControllerModalProxy"),console.dir(l),t.lines[e].columns[o].control.selectedControl=l.selectedControl,t.lines[e].columns[o].control.type=l.formlyType,t.lines[e].columns[o].control.subtype=l.formlySubtype,t.lines[e].columns[o].control.templateOptions={label:"",required:!1,description:"",placeholder:"",options:[]},t.lines[e].columns[o].control.templateOptions.label=l.formlyLabel,t.lines[e].columns[o].control.templateOptions.required=l.formlyRequired,t.lines[e].columns[o].control.templateOptions.description=l.formlyDesciption,t.lines[e].columns[o].control.templateOptions.placeholder=l.formlyPlaceholder,t.lines[e].columns[o].control.templateOptions.options=l.formlyOptions,"datepicker"===t.lines[e].columns[o].control.type&&(t.lines[e].columns[o].control.templateOptions.datepickerPopup=l.datepickerPopup);var i=t.lines[e].columns[o].control.type+"-"+Date.now();n(i,t)===!0?t.lines[e].columns[o].control.key=i:(i=t.lines[e].columns[o].control.type+"-"+Date.now(),n(i,t)===!0?t.lines[e].columns[o].control.key=i:i=t.lines[e].columns[o].control.type+"-"+Date.now()),t.lines[e].columns[o].control.edited=!0},r.setProxyModelFromConfigurationSelection=function(e,o,t){return"undefined"!=typeof e.lines[o].columns[t].control&&(r.proxyModel.selectedControl="undefined"!=typeof e.lines[o].columns[t].control.type?i(e.lines[o].columns[t].control):"none",r.proxyModel.temporyConfig.selectedControl="undefined"!=typeof e.lines[o].columns[t].control.type?i(e.lines[o].columns[t].control):"none",r.proxyModel.temporyConfig.formlyType="undefined"!=typeof e.lines[o].columns[t].control.type?e.lines[o].columns[t].control.type:"none",r.proxyModel.temporyConfig.formlySubtype="undefined"!=typeof e.lines[o].columns[t].control.subtype?e.lines[o].columns[t].control.subtype:"none",r.proxyModel.temporyConfig.formlyLabel="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.label?e.lines[o].columns[t].control.templateOptions.label:"",r.proxyModel.temporyConfig.formlyRequired="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.required?e.lines[o].columns[t].control.templateOptions.required:"",r.proxyModel.temporyConfig.formlyDesciption="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.description?e.lines[o].columns[t].control.templateOptions.description:"",r.proxyModel.temporyConfig.formlyPlaceholder="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.placeholder?e.lines[o].columns[t].control.templateOptions.placeholder:"",r.proxyModel.temporyConfig.formlyOptions="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.options?e.lines[o].columns[t].control.templateOptions.options:"","Date"===r.proxyModel.temporyConfig.selectedControl&&(r.proxyModel.temporyConfig.datepickerPopup="undefined"!=typeof e.lines[o].columns[t].control.templateOptions.datepickerPopup?e.lines[o].columns[t].control.templateOptions.datepickerPopup:"")),r.proxyModel},r.getProxyModel=function(){return r.proxyModel};var a={toggle:!1,lineIndex:-1,columnIndex:-1,control:{}};r.getEditPanelModelAllModel=function(){return a},r.setEditPanelModelControl=function(e){var o=!1;return"undefined"!=typeof e&&(a=angular.copy(e),o=!0),o},r.getEditPanelModelColumnIndex=function(){return a.columnIndex},r.setEditPanelModelColumnIndex=function(e){var o=!1;return"undefined"!=typeof e&&(a.columnIndex=e,o=!0),o},r.getEditPanelModelLineIndex=function(){return a.lineIndex},r.setEditPanelModelLineIndex=function(e){var o=!1;return"undefined"!=typeof e&&(a.lineIndex=e,o=!0),o},r.getEditPanelModelControl=function(){return a.control},r.setEditPanelModelControl=function(e){var o=!1;return"undefined"!=typeof e&&(a.control=angular.copy(e),o=!0),o},r.getEditPanelModelToggle=function(){return a.toggle},r.setEditPanelModelToggle=function(e){var o=!1;return"undefined"!=typeof e&&(a.toggle=e,o=!0),o};var s={rows:[]};return r.basicSelectRowCollection=angular.copy(s),r.newOptionBasicSelect=angular.copy({saisie:""}),r.groupedSelectRowCollection=angular.copy(s),r.newOptionGroupedSelect=angular.copy({saisie:""}),r.GroupedSelectGroups=angular.copy({list:[]}),r.newGroupGroupedSelect=angular.copy({saisie:""}),r.groupSelectGroupClick=angular.copy({showList:!1}),r.radioRowCollection=angular.copy(s),r.newOptionRadio=angular.copy({saisie:""}),r.resetAllTemporyModels=function(){return r.basicSelectRowCollection=angular.copy(s),r.newOptionBasicSelect=angular.copy({saisie:""}),r.groupedSelectRowCollection=angular.copy(s),r.newOptionGroupedSelect=angular.copy({saisie:""}),r.GroupedSelectGroups=angular.copy({list:[]}),r.newGroupGroupedSelect=angular.copy({saisie:""}),r.groupSelectGroupClick=angular.copy({showList:!1}),r.radioRowCollection=angular.copy(s),r.newOptionRadio=angular.copy({saisie:""}),!0},r.bindSpecialCtrlTemporyModelsToProxyModel=function(){ "BasicSelect"===r.proxyModel.selectedControl&&r.bindBasicSelectToProxyModel(r.basicSelectRowCollection),"GroupedSelect"===r.proxyModel.selectedControl&&r.bindGroupedSelectToProxyModel(r.groupedSelectRowCollection),"Radio"===r.proxyModel.selectedControl&&r.bindRadioToProxyModel(r.radioRowCollection)},r.bindBasicSelectFromProxyModel=function(e){if(r.proxyModel.temporyConfig.formlyOptions.length>0)for(var o=0;o<=r.proxyModel.temporyConfig.formlyOptions.length-1;o++){var t={option:r.proxyModel.temporyConfig.formlyOptions[o].name,order:o,group:""};e.rows.push(t)}},r.bindBasicSelectToProxyModel=function(e){var o=[];if(r.proxyModel.temporyConfig.formlyOptions=o,e.rows.length>0)for(var t=0;t<=e.rows.length-1;t++){var l={name:e.rows[t].option,value:t,group:""};r.proxyModel.temporyConfig.formlyOptions.push(l)}},r.bindGroupedSelectFromProxyModel=function(e,o){if(r.proxyModel.temporyConfig.formlyOptions.length>0){for(var t=0;t<=r.proxyModel.temporyConfig.formlyOptions.length-1;t++){var l={option:r.proxyModel.temporyConfig.formlyOptions[t].name,order:t,group:r.proxyModel.temporyConfig.formlyOptions[t].group};e.rows.push(l)}var n=_.uniq(_.pluck(e.rows,"group"));angular.copy(n,o.list)}},r.bindGroupedSelectToProxyModel=function(e){r.proxyModel.temporyConfig.formlyOptions=[];for(var o=0;o<=e.rows.length-1;o++){var t={name:e.rows[o].option,value:o,group:e.rows[o].group};r.proxyModel.temporyConfig.formlyOptions.push(t)}},r.bindRadioFromProxyModel=function(e){if(r.proxyModel.temporyConfig.formlyOptions.length>0)for(var o=0;o<=r.proxyModel.temporyConfig.formlyOptions.length-1;o++){var t={option:r.proxyModel.temporyConfig.formlyOptions[o].name,order:o,group:""};e.rows.push(t)}},r.bindRadioToProxyModel=function(e){var o=[];if(r.proxyModel.temporyConfig.formlyOptions=o,e.rows.length>0)for(var t=0;t<=e.rows.length-1;t++){var l={name:e.rows[t].option,value:t,group:""};r.proxyModel.temporyConfig.formlyOptions.push(l)}},r}]),angular.module("edaApp.services.formFieldManage",[]).factory("formFieldManage",["EasyFormGenFormlyBindingModels",function(e){function o(e){var o=[];angular.copy(o,e)}function t(o,t,l){var n=t.lines[l].columns.length,i=o.push({className:"row",fieldGroup:[]})-1;t.lines[l].columns.forEach(function(t,l){var r={};if("undefined"!=typeof r&&"none"!==t.control.type){if("header"===t.control.type||"subTitle"===t.control.type){var a=t.control.templateOptions.description;r.template=e.getHeaderTemplateForNcolumnLine(n,a).template,r.className=e.getRawHeaderTemplates().selectedClass}else r=e.getFormlyControlTemplateForNcolumnLine(n,t.control.type),r.className=t.control.className,r.type=t.control.type,r.key=t.control.key,r.templateOptions.type=t.control.templateOptions.type,r.templateOptions.label=t.control.templateOptions.label,r.templateOptions.required=t.control.templateOptions.required,r.templateOptions.placeholder=t.control.templateOptions.placeholder,r.templateOptions.description=t.control.templateOptions.description,r.templateOptions.options=[].concat(t.control.templateOptions.options),"undefined"!=typeof r.templateOptions.datepickerPopup&&(t.control.templateOptions.datepickerPopup=r.templateOptions.datepickerPopup);o[i].fieldGroup.push(r)}})}function l(e){var o={};return angular.copy(o,e),!0}function n(e,o){var t={noError:!1,title:"",Message:""};return t.noError=!1,t.title=e,t.Message=o,t}function i(e,o){var t={noError:!1,title:"",Message:""};return t.noError=!0,t.title=e,t.Message=o,t}var r={};return r.initConfigurationEditFromScratch=function(o,t){var l=e.getEasyFormInitialStateConfigurationModel(t);angular.copy(l,o)},r.bindConfigurationLines=function(o,t,l){if("[object Array]"===Object.prototype.toString.call(t)){var r=e.getEasyFormReloadConfigurationModel(l);return r.lines=[].concat(t),angular.copy(r,o),i("configuration model is bound","lines are bound to configuration model.")}return n("lines is not an array","Checks lines type, it is not an array.")},r.applyConfigurationToformlyModel=function(e,n,i){o(n),l(i);for(var r=e.lines.length,a=0;r>a;a++)t(n,e,a)},r}]),angular.module("edaApp.services.formsByIdService",["ngResource"]).factory("formsByIdService",["$resource",function(e){return e("/api/formGen/:id",{id:"@id"},{})}]),angular.module("edaApp.services.selectOptionManage",[]).factory("selectOptionManage",[function(){function e(e,o){var t={resultFlag:!1,details:""};if("undefined"==typeof o)return t.resultFlag=!1,t.details="Entered option is empty",t;if(""!==o){for(var l=e.rows.length-1;l>=0;l--)if(e.rows[l].option===o)return t.resultFlag=!1,t.details="Entered option is not unique",t;return t.resultFlag=!0,t.details="",t}return t.resultFlag=!1,t.details="Entered option is empty",t}function o(e){var o={rows:[]};angular.copy(o,e)}return{testMe:function(){return"selectOptionManage is here."},initModel:function(e){o(e)},isOptionUnique:function(e,o){for(var t=e.rows.length-1;t>=0;t--)if(e.rows[t].option===o)return!1;return!0},isOptionValidFormat:function(e){return""!==e?!0:!1},addNewOptionRadio:function(o,t){var l={resultFlag:!1,details:""},n=e(o,t);if(n.resultFlag===!0){var i={option:t,order:o.rows.length};return o.rows.push(i),l.resultFlag=!0,l.details="",l}return angular.copy(n,l),l},addNewOptionBasicSelect:function(o,t){var l={resultFlag:!1,details:""},n=e(o,t);if(n.resultFlag===!0){var i={option:t,order:o.rows.length};return o.rows.push(i),l.resultFlag=!0,l.details="",l}return angular.copy(n,l),l},addNewOptionGroupedSelect:function(o,t,l){var n={resultFlag:!1,details:""},i=e(o,t);if(i.resultFlag===!0){var r={option:t,group:l,order:o.rows.length};return o.rows.push(r),n.resultFlag=!0,n.details="",n}return angular.copy(i,n),n},removeOption:function(e,o){var t={resultFlag:!1,details:""};return-1!==o?(e.rows.splice(o,1),t.resultFlag=!0,t.details="",t):(t.resultFlag=!1,t.details="Option index not valid",t)},upthisOption:function(e,o){var t={resultFlag:!1,details:""};if(o>-1){if(o>0){if(e.rows[o-1]){var l=e.rows[o];return e.rows.splice(o,1),e.rows.splice(o-1,0,l),t.resultFlag=!0,t.details="",t}return t.resultFlag=!1,t.details="Can't retreive option from option index",t}return t.resultFlag=!0,t.details="",t}return t.resultFlag=!1,t.details="Option index not valid",t},downthisOption:function(e,o){var t={resultFlag:!1,details:""};if(o>-1){if(o','\t\",'\t\",\"
\"].join(\"\")}function t(){return['
','
','\t
','\t
','\t
  Edit :
',\"\t
\",\"\t
\",'\t
','\t
','\t
Column will be blank
',\"\t
\",\"\t
\",\"
\",f,\"
\"].join(\"\")}function l(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function n(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function i(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function r(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function a(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
',' ','
','
    ','
  1. ',\" {{dateformat}}\",\"
  2. \",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function s(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function d(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function c(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
',' ',\"
\",\"
\",'
',\"
\",'
','
',' ',\"
\",'
',' ',\"
\",\"
\",\"
\",\"
\",'
','
',' ',\"
\",\"
\",'
','
','
','
','
','
- no radio : add new radio values -
',\"
\",' 0\" class=\"table table-striped\">',\" \",\" \",' ',' ',' ',\" \",\" \",' ',' \",' ',\" \",\" \",\" \",' ',' ',' ',' \",\" \",\" \",\"
orderoption
',' ',\"
{{$index}}{{radioRow.option}}','
',' ',' ',' ',\"
\",\"
\",\"
\",\"
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function p(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function u(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
',' ',\"
\",\"
\",'
',\"
\",'
','
',' ',\"
\",'
',' ',\"
\",\"
\",\"
\",\"
\",'
','
',' ',\"
\",\"
\",'
','
','
','
','
','
- no option : add new options -
',\"
\",' 0\" class=\"table table-striped\">',\" \",\" \",' ',' ',' ',\" \",\" \",' ',' \",' ',\" \",\" \",\" \",' ',' ',' ',' \",\" \",\" \",\"
orderoption
',' ',\"
{{$index}}{{basicSelectRow.option}}','
',' ',' ',' \t',\"
\",\"
\",\"
\",\"
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function m(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
',' ',\"
\",\"
\",'
',\"
\",'
','
',' ',\"
\",'
',' ',\"
\",\"
\",\"
\",\"
\",'
','
',' ',\"
\",\"
\",'
',\"
\",'
','
',' ',\"
\",'
',' ',\"
\",\"
\",\"
\",\"
\",'
','
',' ',\"
\",\"
\",'
','
','
','
','
','
- no option : add new options -
',\"
\",' 0\" class=\"table table-striped\">',\" \",\" \",' ',' ',' ',' ',\" \",\" \",' ',' ',' \",' ',\" \",\" \",\" \",' ',' ',' \",' ',' \",\" \",\" \",\"
ordergroupoption
',' ',\"
{{$index}}','
','
','

- add new groups -

',\"
\",'
0\">','
    ','
  1. ',\" {{GroupedSelectGroup}}\",\"
  2. \",\"
\",\"
\",\"
\",'
',\" {{groupedSelectRow.group}}\",\"
\",\"
{{groupedSelectRow.option}}','
',' ',' ',' ',' ',\"
\",\"
\",\"
\",\"
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}var f=o();e.put(\"editPanelBlankCtrl-tpls.html\",t()),e.put(\"editPanelHeaderCtrl-tpls.html\",l()),e.put(\"editPanelSubTitleCtrl-tpls.html\",n()),e.put(\"editPanelTextInputCtrl-tpls.html\",i()),e.put(\"editPanelPasswordCtrl-tpls.html\",r()),e.put(\"editPanelDateCtrl-tpls.html\",a()),e.put(\"editPanelTextareaCtrl-tpls.html\",s()),e.put(\"editPanelRichTextEditorCtrl-tpls.html\",d()),e.put(\"editPanelRadioCtrl-tpls.html\",c()),e.put(\"editPanelCheckboxCtrl-tpls.html\",p()),e.put(\"editPanelBasicSelectCtrl-tpls.html\",u()),e.put(\"editPanelGroupedSelectCtrl-tpls.html\",m())}angular.module(\"edaApp\",[\"edaApp.providers\",\"edaApp.controllers\",\"edaApp.services\",\"edaApp.filters\",\"edaApp.directives\",\"textAngular\",\"textAngularSetup\",\"ngAnimate\",\"toaster\",\"formly\",\"formlyBootstrap\",\"ui.bootstrap\",\"nya.bootstrap.select\",\"dndLists\",\"mgcrea.ngStrap.affix\",\"pageslide-directive\"]).value(\"easyFormGenVersion\",\"v1.0.14\").run(e),\ne.$inject=[\"$templateCache\"],angular.module(\"edaApp\").config([\"dragDropConfigProvider\",function(e){e.setItemsNotTocount({itemBeingDragged:\"dndDraggingSource\"})}]),angular.module(\"edaApp\").config([\"formlyConfigProvider\",\"EasyFormGenFormlyBindingModelsProvider\",\"dragDropConfigProvider\",function(e,o,t){function l(e){return e=e.replace(/[\\-_\\s]+(.)?/g,function(e,o){return o?o.toUpperCase():\"\"}),e.replace(/^([A-Z])/,function(e,o){return o?o.toLowerCase():\"\"})}e.setType({name:\"blank\",template:\"
\"}),o.addEasyFormControlToList({id:\"empty\",name:\"no control\",subtitle:\"no control\",group:\"Blank\",formlyType:\"blank\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
',\"
\",\"
\",\"
\"].join(\"\"),control:\"empty\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"blank\"}),o.addEasyFormControlToList({id:\"Header\",name:\"Header\",subtitle:\"no control\",group:\"Decoration\",formlyType:\"header\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','

Header

',\"
\",\"
\",\"
\",\"
\"].join(\"\"),control:\"Header\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"headers\"});var n=['
','
','

{{options.templateOptions.placeholder}}

',\"
\",\"

\",\"
\"].join(\" \");e.setType({name:\"subTitle\",template:n}),o.addEasyFormControlToList({id:\"Subtitle\",name:\"Subtitle\",subtitle:\"no control\",group:\"Decoration\",formlyType:\"subTitle\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','

SubTitle

',\"
\",\"
\",\"
\",\"
\"].join(\"\"),control:\"Subtitle\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"headers\"}),o.addEasyFormControlToList({id:\"TextInput\",name:\"Text input\",subtitle:\"Text input\",group:\"input\",formlyType:\"input\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' \",'
',' ','

Description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"TextInput\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"inputs\"}),o.addEasyFormControlToList({id:\"Password\",name:\"Password\",subtitle:\"Password\",group:\"input\",formlyType:\"input\",formlySubtype:\"password\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' \",'
',' ','

Description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"Password\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"inputs\"});var i=[\"date-disabled\",\"custom-class\",\"show-weeks\",\"starting-day\",\"init-date\",\"min-mode\",\"max-mode\",\"format-day\",\"format-month\",\"format-year\",\"format-day-header\",\"format-day-title\",\"format-month-title\",\"year-range\",\"shortcut-propagation\",\"datepicker-popup\",\"show-button-bar\",\"current-text\",\"clear-text\",\"close-text\",\"close-on-date-selection\",\"datepicker-append-to-body\"],r=[\"datepicker-mode\",\"min-date\",\"max-date\"],a={};angular.forEach(i,function(e){a[l(e)]={attribute:e}}),angular.forEach(r,function(e){a[l(e)]={bound:e}});var s=[\"\"].join(\" \");e.setType({name:\"datepicker\",template:s,wrapper:[\"bootstrapLabel\",\"bootstrapHasError\"],controller:[\"$scope\",function(e){e.open=function(o){o.preventDefault(),o.stopPropagation(),e.opened=!0}}],defaultOptions:{ngModelAttrs:a,templateOptions:{addonLeft:{\"class\":\"glyphicon glyphicon-calendar\",onClick:function(e){e.templateOptions.isOpen=!e.templateOptions.isOpen}},onFocus:function(e,o,t){t.to.isOpen=!t.to.isOpen},datepickerOptions:{}}}}),o.addEasyFormControlToList({id:\"Date\",name:\"Date\",subtitle:\"Date\",group:\"input\",formlyType:\"datepicker\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],datepickerPopup:\"dd-MMMM-yyyy\"}),t.addControlToDragDropPresentationModel({label:['
','
',' \",'
',' \t\t\t\t\t
',' \t\t\t\t\t',' \t\t\t\t\t',\" \t\t\t\t\t
\",\"\t\t\t\t\t
\",'

description

',\"
\",\"
\"].join(\"\"),control:\"Date\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"inputs\"}),o.addEasyFormControlToList({id:\"Texarea\",name:\"Textarea\",subtitle:\"Textarea\",group:\"Textarea\",formlyType:\"textarea\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
',' ','

description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"Texarea\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"textareas\"});var d=['',\"\"].join(\" \");e.setType({name:\"richEditor\",template:d}),o.addEasyFormControlToList({id:\"RichTextEditor\",name:\"RichTextEditor\",subtitle:\"RichTextEditor\",group:\"Textarea\",formlyType:\"richEditor\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
',' ','

description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"RichTextEditor\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"textareas\"}),o.addEasyFormControlToList({id:\"Radio\",name:\"Radio\",subtitle:\"Radio\",options:[],group:\"Radio\",formlyType:\"radio\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
','
','
',' \",'
',' \",\"
\",'

description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"Radio\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"radios\"}),o.addEasyFormControlToList({id:\"Checkbox\",name:\"Checkbox\",subtitle:\"Checkbox\",group:\"Checkbox\",formlyType:\"checkbox\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' \",\"
\",'

description

',\"
\"].join(\"\"),control:\"Checkbox\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"checkboxes\"});var c=['
    ','
  1. ',\" {{option.name}} \",\"
  2. \",\"
\"].join(\"\");e.setType({name:\"basicSelect\",template:c}),o.addEasyFormControlToList({id:\"BasicSelect\",name:\"Basic select\",subtitle:\"Basic select\",options:[],group:\"Select\",formlyType:\"basicSelect\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','
    ',' \",\"
\",\"
\"].join(\"\"),control:\"BasicSelect\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"selects\"});var p=['
    ','
  1. ',' {{$group}}',\" \",\" {{option.name}}\",' ',\" \",\"
  2. \",\"
\"].join(\" \");e.setType({name:\"groupedSelect\",template:p}),o.addEasyFormControlToList({id:\"GroupedSelect\",name:\"Grouped Select\",subtitle:\"Grouped Select\",options:[],group:\"Select\",formlyType:\"groupedSelect\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','
    ',' \",\"
\",\"
\"].join(\"\"),control:\"GroupedSelect\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"selects\"})}]),angular.module(\"edaApp\").run([\"$templateCache\",function(e){e.put(\"editModalTemplate.html\",\"

no use right now

\")}]),angular.module(\"edaApp.providers.dragDropConfigProvider\",[]).provider(\"dragDropConfig\",[function(){function e(e,o){if(l[0].length>0){if(l[0].lengthi;i++)l[0].push([]);t.containerConfig.decoration.forEach(function(t){o.addToGroupCtrl===t.groupId&&l[0][t.WhenIndex].push(e)})}else t.containerConfig.decoration.forEach(function(){l[0].push([])}),t.containerConfig.decoration.forEach(function(t){o.addToGroupCtrl===t.groupId&&l[0][t.WhenIndex].push(e)})}var o=[{cssClass:\"col-md-12\",numberItemPerRow:0},{cssClass:\"col-md-12\",numberItemPerRow:1},{cssClass:\"col-md-6\",numberItemPerRow:2},{cssClass:\"col-md-4\",numberItemPerRow:3}],t={dropZoneConfig:{decoration:[{WhenIndex:0,ApplycssClass:\"col-md-4\",fontAwesomeIcon:\"fa fa-level-up\",title:\"Drag control from here : \"},{WhenIndex:1,ApplycssClass:\"col-md-8\",fontAwesomeIcon:\"fa fa-level-down\",title:\"Drop control into here : \"}],verboseMode:!1},containerConfig:{decoration:[{WhenIndex:0,ApplycssClass:\"col-md-12\",title:\"Blank : \",groupId:\"blank\",isCollapsed:!0},{WhenIndex:1,ApplycssClass:\"col-md-12\",title:\"Headers : \",groupId:\"headers\",isCollapsed:!0},{WhenIndex:2,ApplycssClass:\"col-md-12\",title:\"Text inputs : \",groupId:\"inputs\",isCollapsed:!0},{WhenIndex:3,ApplycssClass:\"col-md-12\",title:\"Textareas : \",groupId:\"textareas\",isCollapsed:!0},{WhenIndex:4,ApplycssClass:\"col-md-12\",title:\"Radios : \",groupId:\"radios\",isCollapsed:!0},{WhenIndex:5,ApplycssClass:\"col-md-12\",title:\"Checkboxes : \",groupId:\"checkboxes\",isCollapsed:!0},{WhenIndex:6,ApplycssClass:\"col-md-12\",title:\"Selects : \",groupId:\"selects\",isCollapsed:!0}],verboseMode:!1,collapseEnabled:!0,collapseCtrl:[{atIndex:0,collapse:!0},{atIndex:1,collapse:!0}]},itemConfig:{verboseMode:!1}},l=[[],[[]]],n={itemBeingDragged:\"\"};this.setListItemCssClass=function(e){o=[].concat(e)},this.getItemsNotTocount=function(){return n},this.setItemsNotTocount=function(e){n=angular.copy(e)},this.addControlToDragDropPresentationModel=function(o,t){\"undefined\"!=typeof o&&\"undefined\"!=typeof t&&e(o,t)},this.getDragDropPresentationModel=function(){return l},this.$get=[function(){var e={};return e.getListItemCssClass=function(){return o},e.getItemsNotToCount=function(){return n},e.getItemCssDependingNumberItemsInRow=function(e){if(\"undefined\"!=typeof e){for(var t=\"\",l=o.length-1;l>=0;l--)o[l].numberItemPerRow===e&&(t=o[l].cssClass);return t}return\"\"},e.getDistinctItemCssClass=function(){var e=[];return angular.forEach(o,function(o){var t=o.cssClass;if(0===e.length)e.push(t);else{var l=!0;angular.forEach(e,function(e){var o=e;t===o&&(l=!1)}),l&&e.push(t)}}),e},e.getDragDropConfigModel=function(){return t},e.setDragDropConfigContainerDecorationCollapse=function(e,o,t){return\"undefined\"!=typeof o&&\"undefined\"!=typeof t&&o===parseInt(o,10)&&(e.containerConfig.decoration[o].isCollapsed=t),!0},e.getDragDropPresentationModel=function(){return l},e}]}]),angular.module(\"edaApp.providers.EasyFormGenFormlyBindingModels\",[]).provider(\"EasyFormGenFormlyBindingModels\",[function(){var e={controls:[],selectedControl:\"none\",temporyConfig:{selectedControl:\"none\",formlyLabel:\"label\",formlyRequired:!1,formlyDesciption:\"\",formlyPlaceholder:\"\",formlyOptions:[]}},o={line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]},t={control:{type:\"none\",key:\"none\"}},l={submitButtonText:\"submit\",cancelButtonText:\"cancel\",lines:[].concat(o)},n={activeLine:1,listConfigStep:[\"init\",\"first\",\"second\",\"third\"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0},i={submitButtonText:\"submit\",cancelButtonText:\"cancel\",lines:[]},r={cssClass:[\"col-xs-12\",\"col-xs-6\",\"col-xs-4\"],textContent:\"\",html_part1:['
','

'].join(\"\"),html_part3:this.textContent,html_part4:[\"

\",\"
\",\"

\"].join(\"\"),simpleHtml1:['

'].join(\"\"),simpleHtml2:[\"

\",\"
\"].join(\"\")},a={className:[\"col-xs-12\",\"col-xs-6\",\"col-xs-4\"],type:\"\",key:\"\",templateOptions:{type:\"\",label:\"\",required:\"\",placeholder:\"\",description:\"\",options:\"\"}},s=[{controlType:\"datepicker\",properties:[{isRoot:!1,isTemplateOptions:!0,value:\"datepickerPopup\"}]}];this.getAllParticularControlProperties=function(){return s},this.addParticularControlProperties=function(e){if(\"controlType\"in e&&\"properties\"in e){var o=!1;s.length>0&&s.forEach(function(t){t.controlType===e.controlType&&(t.properties=[].concat(e.properties),o=!0)}),o||s.push(e)}return s},this.getEasyFormListControls=function(){return e},this.addEasyFormControlToList=function(o){\"undefined\"!=typeof o&&e.controls.push(o)},this.getHeaderTemplates=function(){return r},this.addHeaderTemplateCssClass=function(e){\"undefined\"!=typeof e&&r.cssClass.push(e)},this.getFormlyControlTemplate=function(){return a},this.addformlyControlTemplatesCssClass=function(e){\"undefined\"!=typeof e&&a.className.push(e)},this.setFormlyControlTemplate=function(e){return\"className\"in e&&\"type\"in e&&\"key\"in e&&\"templateOptions\"in e&&(a=angular.copy(e)),!0},this.$get=[function(){var d={};return d.getEasyFormListControls=function(){return e},d.getEasyFormInitialStateConfigurationModel=function(e){var o=angular.copy(l);return\"undefined\"!=typeof e&&e&&angular.extend(o,n),o},d.getEasyFormReloadConfigurationModel=function(e){var o=angular.copy(i);return\"undefined\"!=typeof e&&e&&angular.extend(o,n),o},d.getEasyFormEmptyConfigurationLineModel=function(){return o},d.getEasyFormConfigurationEmptyControlModel=function(){return t},d.getRawHeaderTemplates=function(){return r},d.getHeaderTemplateForNcolumnLine=function(e,o){if(\"undefined\"!=typeof e&&\"undefined\"!=typeof o&&e===parseInt(e,10)&&e<=r.cssClass.length){var t={};return t.className=r.cssClass[e-1],r.textContent=o,r.selectedClass=t.className,t.template=[r.simpleHtml1,o,r.simpleHtml2].join(\"\"),t}},d.getRawFormlyControlTemplates=function(){return a},d.getFormlyControlTemplateForNcolumnLine=function(e,o){if(\"undefined\"!=typeof e&&e===parseInt(e,10)&&e<=a.className.length){var t=angular.copy(a);return t.className=a.className[e-1],\"undefined\"!=typeof o&&s.forEach(function(e){e.controlType===o&&e.properties.forEach(function(e){e.isRoot&&(t[e.value]=\"\"),e.isTemplateOptions&&(t.templateOptions[e.value]=\"\")})}),t}},d}]}]),angular.module(\"edaApp.providers\",[\"edaApp.providers.dragDropConfigProvider\",\"edaApp.providers.EasyFormGenFormlyBindingModels\",function(){}]),angular.module(\"edaApp.controllers\",[\"edaApp.controllers.edaMainController\",\"edaApp.controllers.edaEditController\",\"edaApp.controllers.edaEditMODALController\",\"edaApp.controllers.edaEditPanelController\"]),angular.module(\"edaApp.controllers.edaEditController\",[]).controller(\"edaEditController\",[\"$scope\",\"easyFormGenVersion\",\"$filter\",\"$anchorScroll\",\"toaster\",\"$timeout\",\"$modal\",\"$log\",\"formFieldManage\",\"formsByIdService\",\"controllerModalProxy\",\"dragDropItemDecorationService\",\"dragDropConfig\",\"ddModelConfModelProxyService\",\"ddItemRightClickedManager\",function(e,o,t,l,n,i,r,a,s,d,c,p,u,m,f){function g(){n.pop({type:\"info\",timeout:2e3,title:\"should save data model if it were not a static example\",body:\"data :\"+t(\"json\")(e.vm.model,4),showCloseButton:!0})}function y(){s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}e.easyFormGeneratorVERSION=o,e.tab={editTab:{active:!0},previewTab:{active:!1}},e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.ihm={preview:{formlyModelViewExpanded:!0,formlyFieldsViewExpanded:!0,customizeFormButtonsExpanded:!0,saveThisFormExpanded:!0}},e.easyFormDragDropProperties=u.getDragDropConfigModel(),e.dragDropModel=[].concat(u.getDragDropPresentationModel()),e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.configuration={},s.initConfigurationEditFromScratch(e.configuration,!1),c.initProxyModel(),e.collapseAllGroupControl=function(o){angular.forEach(e.easyFormDragDropProperties.containerConfig.decoration,function(t){t.WhenIndex!==o&&u.setDragDropConfigContainerDecorationCollapse(e.easyFormDragDropProperties,t.WhenIndex,!0)})},e.vm.onSubmit=g,e.resetToZeroModel=function(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()},e.countConfigurationModelLines=function(){return e.configuration.lines.length},e.setActiveLineNumber=function(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)},e.upThisLine=function(o){if(o>-1&&e.configuration.lines[o-1]){var t=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,t),e.configuration.activeLine=1}s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.downThisLine=function(o){if(o>-1&&e.configuration.lines[o+1]){var t=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,t),e.configuration.activeLine=1}s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.removeThisLine=function(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):i(function(){n.pop({type:\"warning\",title:\"Last line\",body:\"Can't delete the last line\",showCloseButton:!0})},100),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))},e.increaseNumberOfColumns=function(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.saveThisForm=function(){if(\"undefined\"==typeof e.configuration.formName)return n.pop({type:\"warning\",timeout:2e3,title:\"Form name is undefined\",body:\"Form has not been saved.\",showCloseButton:!0}),!1;if(\"\"===e.configuration.formName)return n.pop({type:\"warning\",timeout:2e3,title:\"Form name is required\",body:\"Form has not been saved.\",showCloseButton:!0}),!1;n.pop({type:\"wait\",timeout:1e4,title:\"Form is being saved\",body:\"Wait.\",showCloseButton:!0});var o=new d;return o.formName=e.configuration.formName,o.submitButtonText=e.configuration.submitButtonText,o.cancelButtonText=e.configuration.cancelButtonText,o.formlyField=JSON.stringify(e.configuration.lines),n.clear(),n.pop({type:\"info\",timeout:2e3,title:\"Form would be saved if it were not a static example\",body:\"\",showCloseButton:!0}),!0},e.nyaSelect={},c.initNyaSelect(e.nyaSelect),e.animationsEnabled=!0,e.showModalAddCtrlToColumn=function(o,t,l){var n=r.open({animation:e.animationsEnabled,templateUrl:\"editModalTemplate.html\",controller:\"edaEditMODALController\",size:\"lg\",resolve:{nyaSelect:function(){return c.getNyASelectFromSelectedLineColumn(e.nyaSelect,e.configuration,t,l)}}});n.result.then(function(o){c.bindConfigurationModelFromModalReturn(t,l,o,e.configuration),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},function(){a.info(\"Modal dismissed at: \"+new Date)})},e.dragoverCallbackContainer=function(e,o,t){return 0===t?!1:!0},e.dropCallback=function(o,t,l,n,r,a){if(n){if(\"itemType\"===a&&!l.label)return!1;if(\"containerType\"===a&&!angular.isArray(l))return!1}var d=i(function(){e.configuration=angular.copy(m.refreshAllConfigurationFromDragAndDropModel(e.configuration,e.dragDropModel)),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel)},200);return e.$on(\"$destroy\",function(){i.cancel(d)}),l},e.dndItemMoved=function(o,t,l){o>0&&e.dragDropModel[o][t].splice(l,1)},e.dragoverCallbackItems=function(e,o,t,l){return 0===o?!1:!0},e.disableItemDropIf=function(){},e.dropCallbackItems=function(o,t,l,n,r,a,d,c,p,u){if(c){if(\"itemType\"===u&&!d.label)return!1;if(\"containerType\"===u&&!angular.isArray(d))return!1}var g=i(function(){e.configuration=angular.copy(m.refreshAllConfigurationFromDragAndDropModel(e.configuration,e.dragDropModel)),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel)},200);return f.setUnRightClicked(d),e.$on(\"$destroy\",function(){i.cancel(g)}),d},e.editPanelModel={toggle:!1},e.saveFromEditPanel=function(){c.bindSpecialCtrlTemporyModelsToProxyModel(),c.bindConfigurationModelFromProxyModel(c.getEditPanelModelLineIndex(),c.getEditPanelModelColumnIndex(),e.configuration),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel),c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle(),f.resetAllDragDropItemSelectedState(e.dragDropModel)},e.closeEditPanel=function(){f.resetAllDragDropItemSelectedState(e.dragDropModel),c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle()},e.debugProxyModel=c.ProxyModel,e.setRightClicked=function(e,o){o.rightCliked=!0},e.toggleEditPanel=function(o,t,l,n){if(f.resetAllDragDropItemSelectedState(e.dragDropModel),c.getEditPanelModelToggle()){if(c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle(),\"undefined\"!=typeof c.getEditPanelModelLineIndex()&&\"undefined\"!=typeof c.getEditPanelModelColumnIndex()&&\"undefined\"!=typeof c.getEditPanelModelControl())if(c.getEditPanelModelLineIndex()===t&&c.getEditPanelModelColumnIndex()===l&&angular.equals(c.getEditPanelModelControl(),n));else{n.rightCliked=!0;var r=i(function(){c.setEditPanelModelLineIndex(t),c.setEditPanelModelColumnIndex(l),c.setEditPanelModelControl(n),c.setProxyModelFromConfigurationSelection(e.configuration,t,l),c.setEditPanelModelToggle(!0),e.editPanelModel.toggle=c.getEditPanelModelToggle()},200);e.$on(\"$destroy\",function(){i.cancel(r)})}}else n.rightCliked=!0,c.setEditPanelModelLineIndex(t),c.setEditPanelModelColumnIndex(l),c.setEditPanelModelControl(n),c.setProxyModelFromConfigurationSelection(e.configuration,t,l),c.setEditPanelModelToggle(!0),e.editPanelModel.toggle=c.getEditPanelModelToggle()},e.removeThisLine=function(o){e.dragDropModel[1].splice(o,1)},e.model=[],e.insertNewLine=function(){y(),e.dragDropModel[1].push([])}}]),angular.module(\"edaApp.controllers.edaEditMODALController\",[]).controller(\"edaEditMODALController\",[\"$scope\",\"$modalInstance\",\"nyaSelect\",\"toaster\",\"$timeout\",\"selectOptionManage\",\"controllerModalProxy\",function(e,o,t,l,n,i,r){function a(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.radioRowCollection.rows.push(t)}}function s(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.radioRowCollection.rows.length>0)for(var t=0;t<=e.radioRowCollection.rows.length-1;t++){var l={name:e.radioRowCollection.rows[t].option,value:t,group:\"\"};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function d(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.basicSelectRowCollection.rows.push(t)}}function c(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.basicSelectRowCollection.rows.length>0)for(var t=0;t<=e.basicSelectRowCollection.rows.length-1;t++){var l={name:e.basicSelectRowCollection.rows[t].option,value:t,group:\"\"};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function p(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0){for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:e.nyaSelect.temporyConfig.formlyOptions[o].group};e.groupedSelectRowCollection.rows.push(t)}var l=_.uniq(_.pluck(e.groupedSelectRowCollection.rows,\"group\"));angular.copy(l,e.GroupedSelectGroups.list)}}function u(){e.nyaSelect.temporyConfig.formlyOptions=[];for(var o=0;o<=e.groupedSelectRowCollection.rows.length-1;o++){var t={name:e.groupedSelectRowCollection.rows[o].option,value:o,group:e.groupedSelectRowCollection.rows[o].group};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function m(){e.nyaSelect.temporyConfig.datepickerPopup=e.demodt.formats[0]}function f(){e.nyaSelect.temporyConfig={formlyLabel:\"\",formlyRequired:!1,formlyPlaceholder:\"\",formlyDesciption:\"\",formlyOptions:[]}}var g={rows:[]};if(e.radioRowCollection=g,e.newOptionRadio={saisie:\"\"},e.addNewOptionRadio=function(){var o=i.addNewOptionRadio(e.radioRowCollection,e.newOptionRadio.saisie);o.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionRadio.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionRadio={saisie:\"\"}},e.removeRadioRow=function(o){var t=i.removeOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},e.upThisRadioRow=function(o){var t=i.upthisOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.downThisRadioRow=function(o){var t=i.downthisOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.basicSelectRowCollection=g,e.newOptionBasicSelect={saisie:\"\"},e.addNewOptionBasicSelect=function(){var o=i.addNewOptionBasicSelect(e.basicSelectRowCollection,e.newOptionBasicSelect.saisie);o.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionBasicSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionBasicSelect={saisie:\"\"}},e.removeRow=function(o){var t=i.removeOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},e.upThisRow=function(o){var t=i.upthisOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.downThisRow=function(o){var t=i.downthisOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({\ntype:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.groupedSelectRowCollection=g,e.newOptionGroupedSelect={saisie:\"\"},e.GroupedSelectGroups={list:[]},e.newGroupGroupedSelect={saisie:\"\"},e.groupSelectGroupClick={showList:!1},e.showGroupListToChoose=function(){e.groupSelectGroupClick.showList=!e.groupSelectGroupClick.showList},e.addNewGroupToGroupedSelect=function(){if(\"\"!==e.newGroupGroupedSelect.saisie){for(var o=e.GroupedSelectGroups.list.length-1;o>=0;o--)e.GroupedSelectGroups.list[o]===e.newGroupGroupedSelect.saisie&&l.pop({type:\"warning\",timeout:2e3,title:\"Group already exists\",body:\"No group added.\",showCloseButton:!0});e.GroupedSelectGroups.list.push(e.newGroupGroupedSelect.saisie)}else l.pop({type:\"warning\",timeout:2e3,title:\"Not a valid group to add\",body:\"No group added.\",showCloseButton:!0});e.newGroupGroupedSelect.saisie=\"\"},e.addNewOptionGroupedSelect=function(){var o=i.addNewOptionGroupedSelect(e.groupedSelectRowCollection,e.newOptionGroupedSelect.saisie,\"\");o.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionGroupedSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionGroupedSelect={saisie:\"\"}},e.removeGroupedSelectRow=function(o){var t=i.removeOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},e.upThisGroupedSelectRow=function(o){var t=i.upthisOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.downThisGroupedSelectRow=function(o){var t=i.downthisOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.demodt={},e.today=function(){e.demodt.dt=new Date},e.today(),e.clear=function(){e.demodt.dt=null},e.open=function(o){o.preventDefault(),o.stopPropagation(),e.demodt.opened=!0},e.dateOptions={formatYear:\"yy\",startingDay:1,showWeeks:!0,initDate:null},e.demodt.formats=[\"dd-MMMM-yyyy\",\"yyyy/MM/dd\",\"dd.MM.yyyy\",\"shortDate\"],e.nyaSelect=t,e.nyaSelect.selectedControl=e.nyaSelect.temporyConfig.selectedControl,\"none\"!==t.selectedControl){for(var y=e.nyaSelect.controls.length-1;y>=0;y--)e.nyaSelect.controls[y].id===t.selectedControl&&(e.modelNyaSelect=t.controls[y]);\"BasicSelect\"===e.nyaSelect.selectedControl&&d(),\"GroupedSelect\"===e.nyaSelect.selectedControl&&p(),\"Radio\"===e.nyaSelect.selectedControl&&a()}e.selectThisControl=function(o){e.nyaSelect.selectedControl=\"none\",f();for(var t=e.nyaSelect.controls.length-1;t>=0;t--)e.nyaSelect.controls[t].id===o&&(e.nyaSelect.selectedControl=e.nyaSelect.controls[t].id);\"Date\"===e.nyaSelect.selectedControl&&m()},e.ok=function(){\"BasicSelect\"===e.nyaSelect.selectedControl&&c(),\"GroupedSelect\"===e.nyaSelect.selectedControl&&u(),\"Radio\"===e.nyaSelect.selectedControl&&s(),r.applyConfigToSelectedControl(e.nyaSelect),o.close(e.nyaSelect)},e.cancel=function(){o.dismiss(\"cancel\")}}]),angular.module(\"edaApp.controllers.edaEditPanelController\",[]).controller(\"edaEditPanelController\",[\"$scope\",\"toaster\",\"$timeout\",\"selectOptionManage\",\"controllerModalProxy\",function(e,o,t,l,n){function i(){a.proxyModel.temporyConfig={formlyLabel:\"\",formlyRequired:!1,formlyPlaceholder:\"\",formlyDesciption:\"\",formlyOptions:[]}}function r(){a.proxyModel.temporyConfig.datepickerPopup=a.demodt.formats[0]}var a=this;if(a.proxyModel=n.proxyModel,a.proxyModel.selectedControl=a.proxyModel.temporyConfig.selectedControl,a.basicSelectRowCollection=n.basicSelectRowCollection,a.newOptionBasicSelect=n.newOptionBasicSelect,a.groupedSelectRowCollection=n.groupedSelectRowCollection,a.newOptionGroupedSelect=n.newOptionGroupedSelect,a.GroupedSelectGroups=n.GroupedSelectGroups,a.newGroupGroupedSelect=n.newGroupGroupedSelect,a.groupSelectGroupClick=n.groupSelectGroupClick,a.radioRowCollection=n.radioRowCollection,a.newOptionRadio=n.newOptionRadio,n.resetAllTemporyModels(),\"none\"!==a.proxyModel.temporyConfig.selectedControl){for(var s=a.proxyModel.controls.length-1;s>=0;s--)a.proxyModel.controls[s].id===a.proxyModel.temporyConfig.selectedControl&&(a.modelproxyModel=a.proxyModel.controls[s]);\"BasicSelect\"===a.proxyModel.temporyConfig.selectedControl&&n.bindBasicSelectFromProxyModel(a.basicSelectRowCollection),\"GroupedSelect\"===a.proxyModel.temporyConfig.selectedControl&&n.bindGroupedSelectFromProxyModel(a.groupedSelectRowCollection,a.GroupedSelectGroups),\"Radio\"===a.proxyModel.temporyConfig.selectedControl&&n.bindRadioFromProxyModel(a.radioRowCollection)}a.updateSpecialControl=function(){return n.basicSelectRowCollection=a.basicSelectRowCollection,n.newOptionBasicSelect=a.newOptionBasicSelect,n.groupedSelectRowCollection=a.groupedSelectRowCollection,n.newOptionGroupedSelect=a.newOptionGroupedSelect,n.GroupedSelectGroups=a.GroupedSelectGroups,n.newGroupGroupedSelect=a.newGroupGroupedSelect,n.groupSelectGroupClick=a.groupSelectGroupClick,n.radioRowCollection=a.radioRowCollection,n.newOptionRadio=a.newOptionRadio,n.bindSpecialCtrlTemporyModelsToProxyModel(),!0},a.resetControl=function(){a.proxyModel.temporyConfig.formlyLabel=\"\",a.proxyModel.temporyConfig.formlyRequired=!1,a.proxyModel.temporyConfig.formlyPlaceholder=\"\",a.proxyModel.temporyConfig.formlyDesciption=\"\",a.proxyModel.temporyConfig.formlyOptions=[],a.proxyModel.temporyConfig.datepickerPopup=r()},a.selectThisControl=function(e){a.proxyModel.selectedControl=\"none\",i();for(var o=a.proxyModel.controls.length-1;o>=0;o--)a.proxyModel.controls[o].id===e&&(a.proxyModel.selectedControl=a.proxyModel.controls[o].id);\"Date\"===a.proxyModel.selectedControl&&r()},a.addNewOptionRadio=function(){var e=l.addNewOptionRadio(a.radioRowCollection,a.newOptionRadio.saisie);e.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:e.details,body:\"'\"+a.newOptionRadio.saisie+\"' cannot be added.\",showCloseButton:!0}),a.newOptionRadio={saisie:\"\"}},a.removeRadioRow=function(e){var t=l.removeOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},a.upThisRadioRow=function(e){var t=l.upthisOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.downThisRadioRow=function(e){var t=l.downthisOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.addNewOptionBasicSelect=function(){var e=l.addNewOptionBasicSelect(a.basicSelectRowCollection,a.newOptionBasicSelect.saisie);e.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:e.details,body:\"'\"+a.newOptionBasicSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),a.newOptionBasicSelect={saisie:\"\"}},a.removeRow=function(e){var t=l.removeOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},a.upThisRow=function(e){var t=l.upthisOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.downThisRow=function(e){var t=l.downthisOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.showGroupListToChoose=function(){a.groupSelectGroupClick.showList=!a.groupSelectGroupClick.showList},a.addNewGroupToGroupedSelect=function(){if(\"\"!==a.newGroupGroupedSelect.saisie){for(var e=a.GroupedSelectGroups.list.length-1;e>=0;e--)a.GroupedSelectGroups.list[e]===a.newGroupGroupedSelect.saisie&&o.pop({type:\"warning\",timeout:2e3,title:\"Group already exists\",body:\"No group added.\",showCloseButton:!0});a.GroupedSelectGroups.list.push(a.newGroupGroupedSelect.saisie)}else o.pop({type:\"warning\",timeout:2e3,title:\"Not a valid group to add\",body:\"No group added.\",showCloseButton:!0});a.newGroupGroupedSelect.saisie=\"\"},a.addNewOptionGroupedSelect=function(){var e=l.addNewOptionGroupedSelect(a.groupedSelectRowCollection,a.newOptionGroupedSelect.saisie,\"\");e.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:e.details,body:\"'\"+a.newOptionGroupedSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),a.newOptionGroupedSelect={saisie:\"\"}},a.removeGroupedSelectRow=function(e){var t=l.removeOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},a.upThisGroupedSelectRow=function(e){var t=l.upthisOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.downThisGroupedSelectRow=function(e){var t=l.downthisOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.demodt={},a.today=function(){a.demodt.dt=new Date},a.today(),a.clear=function(){a.demodt.dt=null},a.open=function(e){e.preventDefault(),e.stopPropagation(),a.demodt.opened=!0},a.dateOptions={formatYear:\"yy\",startingDay:1,showWeeks:!0,initDate:null},a.demodt.formats=[\"dd-MMMM-yyyy\",\"yyyy/MM/dd\",\"dd.MM.yyyy\",\"shortDate\"]}]),angular.module(\"edaApp.controllers.edaMainController\",[]).controller(\"edaMainController\",[function(){}]),angular.module(\"edaApp.directives.edaDdContentCounterDirective\",[]).directive(\"ddContentCounter\",[\"dragDropItemCounterService\",\"$timeout\",function(e,o){return{scope:{valueWhenPlaceholder:\"@ddValueWhenPlaceholder\",valueWhendragging:\"@ddValueWhenDragging\",fullModel:\"=ddFullModel\",currentIndex:\"@ddContentCounterCurrentIndex\",parentIndex:\"@ddContentCounterParentIndex\",forceRefresh:\"=ddContentCounterForceCssRefresh\"},restrict:\"A\",link:function(t,l){var n;t.$watch(function(){return l[0].children.length},function(i,r){if(i!==r){for(var a=0,s=[],d=l[0].children.length-1;d>=0;d--)e.isHtmlElementToCount(l[0].children[d].classList)?(a++,s.push({item:d,isReal:!0})):s.push({item:d,isReal:!1});t.contentRealCount=a,n=o(function(){e.updateLineItemCss(t.fullModel,s,t.parentIndex,t.currentIndex,a)},20)}}),t.$on(\"$destroy\",function(){console.warn(\"ddContentCounter timer destruction!\"),o.cancel(n)})}}}]),angular.module(\"edaApp.directives.edaDdDecorContainerDirective\",[]).directive(\"ddDecorContainer\",[function(){var e=['
','
 {{currentTitle}}
',\"
\",'
','
',\"
\"].join(\" \");return{scope:{styleParam:\"=ddContainerProperties\",isStillCollapsed:\"=ddContainerIsCollpased\",verboseMode:\"@ddContainerVerboseMode\",currentIndex:\"@ddContainerCurrentIndex\",collpaseAll:\"&ddCollapseAll\"},restrict:\"A\",template:e,transclude:!0,controller:function(e){e.config={isEnabled:!1},e.collapseFct=function(){e.collpaseAll({exceptThisOne:e.styleParam.WhenIndex}),e.isCollapsed=!e.isCollapsed,e.isStillCollapsed=e.isCollapsed},e.icons={closedClass:\"glyphicon glyphicon-eye-open\",opened:\"glyphicon glyphicon-eye-close\"},e.currentIconClass=function(){return e.isCollapsed?e.icons.closedClass:e.icons.opened}},link:function(e,o,t,l,n){var i=e.verboseMode,r=e.currentIndex;if(e.isCollapsed=!1,\"\"!==i){var a=angular.lowercase(i);(\"true\"===a||\"1\"===a)&&console.dir({whoAmI:\"I am verbose from ddDecorContainer link\",verbodeMode:a,ParentParentIndex:e.$parent.$parent.$index,ParentIndex:e.$parent.$index,currentIndex:r,styleParam:e.styleParam,columnindex:e.$parent.$parent.$parent.$parent.$index})}e.$watch(function(){return e.isStillCollapsed},function(o,t){o!==t&&0===e.$parent.$parent.$index&&(e.isCollapsed=o)}),e.config.isEnabled=!1,\"undefined\"!=typeof r&&\"\"!==r&&\"0\"===r&&\"undefined\"!=typeof e.styleParam.title&&(e.currentTitle=e.styleParam.title,e.config.isEnabled=!0,e.isCollapsed=!0),n(e.$parent,function(e){var t=angular.element(o.children()[1]);t.append(e)})}}}]),angular.module(\"edaApp.directives.edaDdDecorDropZoneDirective\",[]).directive(\"ddDecorDropZone\",[function(){var e=['
','
','
','
','

','  ',\" {{currentTitle}}\",'
',' \",\"
\",\"

\",\"
\",'
','
','
',\"
\",\"
\",\"
\",\"
\",\"
\",\"
\"].join(\" \");return{scope:{styleParam:\"=ddDropZoneProperties\",verboseMode:\"@ddDropZoneVerboseMode\",currentIndex:\"@ddDropZoneCurrentIndex\",addNewLineFct:\"&ddDropZoneAddNewLine\"},restrict:\"A\",template:e,transclude:!0,link:function(e){var o=e.verboseMode,t=e.currentIndex;if(e.headerConfig={HeaderButtonVisible:!1,affixAttr:\"bs-affix\",affixEnabled:!1},\"\"!==o){var l=angular.lowercase(o);(\"true\"===l||\"1\"===l)&&console.dir({whoAmI:\"I am verbose from ddDecorDropZone link\",verbodeMode:l,ParentParentIndex:e.$parent.$parent.$index,ParentIndex:e.$parent.$index,currentIndex:t,styleParam:e.styleParam})}\"undefined\"!=typeof t&&\"\"!==t&&(\"undefined\"!=typeof e.styleParam.title&&(e.currentTitle=e.styleParam.title),\"undefined\"!=typeof e.styleParam.fontAwesomeIcon&&(e.currentFontAwesome=e.styleParam.fontAwesomeIcon),\"1\"===t&&(e.headerConfig.HeaderButtonVisible=!0))}}}]),angular.module(\"edaApp.directives.edaDdDecorItemDirective\",[]).directive(\"ddDecorItem\",[\"dragDropConfig\",function(e){var o=[\"
\",'
',\"
\"].join(\" \");return{scope:{verboseMode:\"@ddItemVerboseMode\",currentIndex:\"@ddItemCurrentIndex\",parentIndex:\"@ddItemParentIndex\",parentParentIndex:\"@ddItemParentParentIndex\",lineItemsCount:\"@ddItemsCount\",cssClass:\"@ddItemCssClass\"},restrict:\"A\",template:o,transclude:!0,link:function(o,t,l,n,i){var r=o.verboseMode,a=o.currentIndex,s=o.parentIndex,d=e.getDistinctItemCssClass();if(angular.forEach(d,function(e){t.removeClass(e)}),t.addClass(o.cssClass),o.$watch(\"cssClass\",function(e,o){e!==o&&(angular.forEach(d,function(e){t.removeClass(e)}),t.addClass(e))}),\"\"!==r){var c=angular.lowercase(r);(\"true\"===c||\"1\"===c)&&console.dir({whoAmI:\"I am verbose from ddDecorItem directive link\",verbodeMode:c,ParentParentIndex:o.$parent.$parent.$index,ParentIndex:s,parentParentIndex:o.parentParentIndex,currentIndex:a,lineItemsCount:o.lineItemsCount})}\"0\"===o.parentParentIndex&&t.addClass(d[0]),i(o.$parent,function(e){var o=angular.element(t.children()[0]);o.append(e)})}}}]),angular.module(\"edaApp.directives.edaDdDecorLineDirective\",[]).directive(\"ddDecorLine\",[\"$timeout\",function(e){var o=['
',' ',\"
\",'
'].join(\" \");return{scope:{verboseMode:\"@ddLineVerboseMode\",currentIndex:\"@ddLineCurrentIndex\",parentIndex:\"@ddLineParentIndex\",removeLine:\"&ddRemoveLine\"},restrict:\"A\",template:o,transclude:!0,link:function(o,t,l,n,i){var r=o.verboseMode,a=o.currentIndex,s=o.parentIndex;if(o.deleteLine={},o.deleteLine.readyToDelete=!1,o.deleteLine.dblClickCount=0,o.isCollapsed=!1,\"\"!==r){var d=angular.lowercase(r);(\"true\"===d||\"1\"===d)&&console.dir({whoAmI:\"I am verbose from ddDecorLine directive link\",verbodeMode:d,ParentParentIndex:o.$parent.$parent.$index,ParentIndex:s,currentIndex:a})}o.removeMe=function(t){t.preventDefault(),t.stopPropagation(),\"1\"===o.parentIndex&&(1===o.deleteLine.dblClickCount&&(o.deleteLine.dblClickCount=0,o.deleteLine.readyToDelete=!1,o.removeLine(),e.cancel(c)),0===o.deleteLine.dblClickCount&&(o.deleteLine.dblClickCount=o.deleteLine.dblClickCount+1,o.deleteLine.readyToDelete=!0))};var c;o.cancelDelete=function(t){c=e(function(){o.deleteLine.dblClickCount=0,o.deleteLine.readyToDelete=!1},500)},o.$on(\"$destroy\",function(){e.cancel(c)}),i(o.$parent,function(e){var o=angular.element(t.children()[0]);o.append(e)})}}}]),angular.module(\"edaApp.directives.edaDdNoEditableControlDirective\",[]).directive(\"ddNoEditableControl\",[function(){return{restrict:\"A\",link:function(e,o){o.on(\"click\",function(e){e.preventDefault()})}}}]),angular.module(\"edaApp.directives\",[\"edaApp.directives.edaStRationDirective\",\"edaApp.directives.edaDdDecorDropZoneDirective\",\"edaApp.directives.edaDdDecorContainerDirective\",\"edaApp.directives.edaDdDecorLineDirective\",\"edaApp.directives.edaDdDecorItemDirective\",\"edaApp.directives.edaDdNoEditableControlDirective\",\"edaApp.directives.edaDdContentCounterDirective\",\"edaApp.directives.edaRightClickDirective\"]),angular.module(\"edaApp.directives.edaRightClickDirective\",[]).directive(\"edaRightClick\",[\"$parse\",function(e){return{restrict:\"A\",link:function(o,t,l){var n=e(l.edaRightClick),i=e(l.edaRightClickColIndex),r=e(l.edaSetRightClicked);t.on(\"contextmenu\",function(e){o.$apply(function(){e.preventDefault(),1===i(o)&&r(o,{}),1===i(o)&&n(o,{$event:e})})})}}}]),angular.module(\"edaApp.directives.edaStRationDirective\",[]).directive(\"stRatio\",[function(){return{restrict:\"A\",link:function(e,o,t){var l=+t.stRatio;o.css(\"width\",l+\"%\")}}}]),angular.module(\"edaApp.services.dragDropItemCountersService\",[]).factory(\"dragDropItemCounterService\",[\"dragDropConfig\",function(e){var o=[],t=angular.copy(e.getItemsNotToCount()),l={};return l.getItemsNotToCount=function(){return t},l.getModelItemsRealCounter=function(){return o},l.isHtmlElementToCount=function(e){var o=!0;return e.length>0&&angular.forEach(t,function(t){for(var l=e.length-1;l>=0;l--)e[l]===t&&(o&=!1)}),o},l.updateLineItemCss=function(o,t,l,n,i){if(\"undefined\"!=typeof o&&\"undefined\"!=typeof t&&\"undefined\"!=typeof l&&\"undefined\"!=typeof n&&\"undefined\"!=typeof i){for(var r=o[l][n].length-1;r>=0;r--)for(var a=0;a=0;r--)o[t][l][r].cssClass=e.getItemCssDependingNumberItemsInRow(n);return!0}return!1},t.updateCssClassWholeColumn=function(o,t){if(\"undefined\"!=typeof t&&\"undefined\"!=typeof o){for(var l=o[t].length-1;l>=0;l--)for(var n=o[t][l].length-1;n>=0;n--)o[t][l][n].cssClass=e.getItemCssDependingNumberItemsInRow(o[t][l].length);return!0}return!1},t}]),angular.module(\"edaApp.services.dragDropModelConfigModelProxyService\",[]).factory(\"ddModelConfModelProxyService\",[\"EasyFormGenFormlyBindingModels\",\"controllerModalProxy\",\"$parse\",function(e,o,t){function l(o){var l={},n=e.getEasyFormListControls(),i=t(\"controls\");return angular.forEach(i(n),function(e){e.id===o.control&&(l=e)}),l}function n(e,o){for(var t=!0,l=o.lines.length-1;l>=0;l--)for(var n=o.lines[l].columns.length-1;n>=0;n--)\"undefined\"!=typeof o.lines[l].columns[n].control&&o.lines[l].columns[n].control.key===e&&(t=!1);return t}function i(e,o){var t=e+\"-\"+Date.now();return n(t,o)===!0?t:(t=e+\"-\"+Date.now(),n(t,o)===!0?t:t=e+\"-\"+Date.now())}function r(e,o,t){angular.forEach(t.lines,function(t,l){l===o&&(t.line=e)})}function a(e,o,l){t(\"control.selectedControl\").assign(o,t(\"selectedControl\")(e)),t(\"control.type\").assign(o,t(\"formlyType\")(e)),t(\"control.key\").assign(o,i(t(\"control.type\")(o),l)),t(\"control.subtype\").assign(o,t(\"formlySubtype\")(e)),t(\"control.templateOptions.label\").assign(o,t(\"formlyLabel\")(e)),t(\"control.templateOptions.required\").assign(o,t(\"formlyRequired\")(e)),t(\"control.templateOptions.description\").assign(o,t(\"formlyDesciption\")(e)),t(\"control.templateOptions.placeholder\").assign(o,t(\"formlyPlaceholder\")(e)),t(\"control.templateOptions.options\").assign(o,t(\"formlyOptions\")(e)),\"datepicker\"===t(\"control.type\")(o)&&t(\"control.templateOptions.datepickerPopup\").assign(o,t(\"datepickerPopup\")(e))}var s={};return s.refreshAllConfigurationFromDragAndDropModel=function(o,t){angular.copy(o);return o.lines=[],angular.forEach(t[1],function(t,n){o.lines.push(angular.copy(e.getEasyFormEmptyConfigurationLineModel())),r(n+1,n,o),angular.forEach(t,function(i,r){var s={control:angular.copy(e.getFormlyControlTemplateForNcolumnLine(t.length,l(t[r]).formlyType))},d=l(t[r]);if(\"undefined\"!=typeof i.key){console.warn(\"debug dragdropModel show this control key : \"+i.key),s.control=angular.copy(i.configModelControl);var c=e.getFormlyControlTemplateForNcolumnLine(t.length,l(t[r]).formlyType);s.control.className=c.className,s.control.cssClass=c.className}else a(d,s,o);\"undefined\"==typeof o.lines[n].columns[r]&&o.lines[n].columns.push(angular.copy(e.getEasyFormConfigurationEmptyControlModel())),o.lines[n].columns[r].control=angular.copy(s.control),o.lines[n].columns[r].numColumn=r+1,o.lines[n].columns[r].exist=!0})}),o},s.refreshControlsKeys=function(e,o){angular.forEach(e.lines,function(e,t){angular.forEach(e.columns,function(e,l){\"undefined\"!=typeof o[1][t]&&o[1][t].length>0&&(o[1][t][l].key=e.control.key,o[1][t][l].configModelControl=angular.copy(e.control))})}),console.info(\"refreshControlsKeys\"),console.dir({when:\"starting\",\"configModel is \":angular.copy(e),\"dragDropModel is \":angular.copy(o)})},s}]),angular.module(\"edaApp.services.edaEditCtrlControllerModalProxy\",[]).factory(\"controllerModalProxy\",[\"EasyFormGenFormlyBindingModels\",function(e){function o(o){var t=e.getEasyFormListControls();return angular.copy(t,o),!0}function t(){var o=e.getEasyFormListControls();return r.proxyModel=angular.copy(o),!0}function l(e){for(var o={selectedControl:\"none\",formlyType:\"none\",formlySubtype:\"none\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyPlaceholder:\"\",formlyOptions:[]},t=e.controls.length-1;t>=0;t--)e.selectedControl===e.controls[t].id&&(o.selectedControl=e.selectedControl,o.formlyType=e.controls[t].formlyType,o.formlySubtype=e.controls[t].formlySubtype,o.formlyLabel=e.controls[t].formlyLabel,o.formlyRequired=e.controls[t].formlyRequired,o.formlyDesciption=e.controls[t].formlyDesciption,o.formlyPlaceholder=e.controls[t].formlyPlaceholder,o.formlyOptions=e.controls[t].formlyOptions,\"datepicker\"===e.controls[t].formlyType&&(o.datepickerPopup=e.controls[t].datepickerPopup));return o}function n(e,o){for(var t=!0,l=o.lines.length-1;l>=0;l--)for(var n=o.lines[l].columns.length-1;n>=0;n--)o.lines[l].columns[n].control.key===e&&(t=!1);return t}function i(o){var t=\"none\",l=angular.copy(e.getEasyFormListControls().controls);return l.forEach(function(e){return e.formlyType===o.type&&e.formlySubtype===o.subtype?t=e.id:void 0}),t}var r={};r.ProxyModel={},t(),r.initNyaSelect=function(e){return o(e)},r.getNyASelectFromSelectedLineColumn=function(e,t,l,n){return o(e),\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions&&(e.temporyConfig.selectedControl=\"undefined\"!=typeof t.lines[l].columns[n].control.selectedControl?t.lines[l].columns[n].control.selectedControl:\"none\",e.temporyConfig.formlyLabel=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.label?t.lines[l].columns[n].control.templateOptions.label:\"\",e.temporyConfig.formlyRequired=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.required?t.lines[l].columns[n].control.templateOptions.required:\"\",e.temporyConfig.formlyDesciption=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.description?t.lines[l].columns[n].control.templateOptions.description:\"\",e.temporyConfig.formlyPlaceholder=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.placeholder?t.lines[l].columns[n].control.templateOptions.placeholder:\"\",e.temporyConfig.formlyOptions=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.options?t.lines[l].columns[n].control.templateOptions.options:\"\",\"Date\"===e.temporyConfig.selectedControl&&(e.temporyConfig.datepickerPopup=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.datepickerPopup?t.lines[l].columns[n].control.templateOptions.datepickerPopup:\"\")),e},r.bindConfigurationModelFromModalReturn=function(e,o,t,i){var r=l(t);i.lines[e].columns[o].control.selectedControl=r.selectedControl,i.lines[e].columns[o].control.type=r.formlyType,i.lines[e].columns[o].control.subtype=r.formlySubtype,i.lines[e].columns[o].control.templateOptions={label:\"\",required:!1,description:\"\",placeholder:\"\",options:[]},i.lines[e].columns[o].control.templateOptions.label=r.formlyLabel,i.lines[e].columns[o].control.templateOptions.required=r.formlyRequired,i.lines[e].columns[o].control.templateOptions.description=r.formlyDesciption,i.lines[e].columns[o].control.templateOptions.placeholder=r.formlyPlaceholder,i.lines[e].columns[o].control.templateOptions.options=r.formlyOptions,\"datepicker\"===i.lines[e].columns[o].control.type&&(i.lines[e].columns[o].control.templateOptions.datepickerPopup=r.datepickerPopup);var a=i.lines[e].columns[o].control.type+\"-\"+Date.now();n(a,i)===!0?i.lines[e].columns[o].control.key=a:(a=i.lines[e].columns[o].control.type+\"-\"+Date.now(),n(a,i)===!0?i.lines[e].columns[o].control.key=a:a=i.lines[e].columns[o].control.type+\"-\"+Date.now()),i.lines[e].columns[o].control.edited=!0},r.applyConfigToSelectedControl=function(e){for(var o=e.controls.length-1;o>=0;o--)e.controls[o].id===e.selectedControl&&(e.controls[o].formlyLabel=e.temporyConfig.formlyLabel,e.controls[o].formlyRequired=e.temporyConfig.formlyRequired,e.controls[o].formlyDesciption=e.temporyConfig.formlyDesciption,e.controls[o].formlyPlaceholder=e.temporyConfig.formlyPlaceholder,e.controls[o].formlyOptions=e.temporyConfig.formlyOptions,\"Date\"===e.controls[o].id&&(e.controls[o].datepickerPopup=e.temporyConfig.datepickerPopup))},r.initProxyModel=function(e){return t(e)},r.bindConfigurationModelFromProxyModel=function(e,o,t){var l=angular.copy(r.proxyModel.temporyConfig);console.warn(\"debug edaEditCtrlControllerModalProxy\"),console.dir(l),t.lines[e].columns[o].control.selectedControl=l.selectedControl,t.lines[e].columns[o].control.type=l.formlyType,t.lines[e].columns[o].control.subtype=l.formlySubtype,t.lines[e].columns[o].control.templateOptions={label:\"\",required:!1,description:\"\",placeholder:\"\",options:[]},t.lines[e].columns[o].control.templateOptions.label=l.formlyLabel,t.lines[e].columns[o].control.templateOptions.required=l.formlyRequired,t.lines[e].columns[o].control.templateOptions.description=l.formlyDesciption,t.lines[e].columns[o].control.templateOptions.placeholder=l.formlyPlaceholder,t.lines[e].columns[o].control.templateOptions.options=l.formlyOptions,\"datepicker\"===t.lines[e].columns[o].control.type&&(t.lines[e].columns[o].control.templateOptions.datepickerPopup=l.datepickerPopup);var i=t.lines[e].columns[o].control.type+\"-\"+Date.now();n(i,t)===!0?t.lines[e].columns[o].control.key=i:(i=t.lines[e].columns[o].control.type+\"-\"+Date.now(),n(i,t)===!0?t.lines[e].columns[o].control.key=i:i=t.lines[e].columns[o].control.type+\"-\"+Date.now()),t.lines[e].columns[o].control.edited=!0},r.setProxyModelFromConfigurationSelection=function(e,o,t){return\"undefined\"!=typeof e.lines[o].columns[t].control&&(r.proxyModel.selectedControl=\"undefined\"!=typeof e.lines[o].columns[t].control.type?i(e.lines[o].columns[t].control):\"none\",r.proxyModel.temporyConfig.selectedControl=\"undefined\"!=typeof e.lines[o].columns[t].control.type?i(e.lines[o].columns[t].control):\"none\",r.proxyModel.temporyConfig.formlyType=\"undefined\"!=typeof e.lines[o].columns[t].control.type?e.lines[o].columns[t].control.type:\"none\",r.proxyModel.temporyConfig.formlySubtype=\"undefined\"!=typeof e.lines[o].columns[t].control.subtype?e.lines[o].columns[t].control.subtype:\"none\",r.proxyModel.temporyConfig.formlyLabel=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.label?e.lines[o].columns[t].control.templateOptions.label:\"\",r.proxyModel.temporyConfig.formlyRequired=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.required?e.lines[o].columns[t].control.templateOptions.required:\"\",r.proxyModel.temporyConfig.formlyDesciption=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.description?e.lines[o].columns[t].control.templateOptions.description:\"\",r.proxyModel.temporyConfig.formlyPlaceholder=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.placeholder?e.lines[o].columns[t].control.templateOptions.placeholder:\"\",r.proxyModel.temporyConfig.formlyOptions=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.options?e.lines[o].columns[t].control.templateOptions.options:\"\",\"Date\"===r.proxyModel.temporyConfig.selectedControl&&(r.proxyModel.temporyConfig.datepickerPopup=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.datepickerPopup?e.lines[o].columns[t].control.templateOptions.datepickerPopup:\"\")),r.proxyModel},r.getProxyModel=function(){return r.proxyModel};var a={toggle:!1,lineIndex:-1,columnIndex:-1,control:{}};r.getEditPanelModelAllModel=function(){return a},r.setEditPanelModelControl=function(e){var o=!1;return\"undefined\"!=typeof e&&(a=angular.copy(e),o=!0),o},r.getEditPanelModelColumnIndex=function(){return a.columnIndex},r.setEditPanelModelColumnIndex=function(e){var o=!1;return\"undefined\"!=typeof e&&(a.columnIndex=e,o=!0),o},r.getEditPanelModelLineIndex=function(){return a.lineIndex},r.setEditPanelModelLineIndex=function(e){var o=!1;return\"undefined\"!=typeof e&&(a.lineIndex=e,o=!0),o},r.getEditPanelModelControl=function(){return a.control},r.setEditPanelModelControl=function(e){var o=!1;return\"undefined\"!=typeof e&&(a.control=angular.copy(e),o=!0),o},r.getEditPanelModelToggle=function(){return a.toggle},r.setEditPanelModelToggle=function(e){var o=!1;return\"undefined\"!=typeof e&&(a.toggle=e,o=!0),o};var s={rows:[]};return r.basicSelectRowCollection=angular.copy(s),r.newOptionBasicSelect=angular.copy({saisie:\"\"}),r.groupedSelectRowCollection=angular.copy(s),r.newOptionGroupedSelect=angular.copy({saisie:\"\"}),r.GroupedSelectGroups=angular.copy({list:[]}),r.newGroupGroupedSelect=angular.copy({saisie:\"\"}),r.groupSelectGroupClick=angular.copy({showList:!1}),r.radioRowCollection=angular.copy(s),r.newOptionRadio=angular.copy({saisie:\"\"}),r.resetAllTemporyModels=function(){return r.basicSelectRowCollection=angular.copy(s),r.newOptionBasicSelect=angular.copy({saisie:\"\"}),r.groupedSelectRowCollection=angular.copy(s),r.newOptionGroupedSelect=angular.copy({saisie:\"\"}),r.GroupedSelectGroups=angular.copy({list:[]}),r.newGroupGroupedSelect=angular.copy({saisie:\"\"}),r.groupSelectGroupClick=angular.copy({showList:!1}),r.radioRowCollection=angular.copy(s),r.newOptionRadio=angular.copy({saisie:\"\"}),!0},r.bindSpecialCtrlTemporyModelsToProxyModel=function(){\n\"BasicSelect\"===r.proxyModel.selectedControl&&r.bindBasicSelectToProxyModel(r.basicSelectRowCollection),\"GroupedSelect\"===r.proxyModel.selectedControl&&r.bindGroupedSelectToProxyModel(r.groupedSelectRowCollection),\"Radio\"===r.proxyModel.selectedControl&&r.bindRadioToProxyModel(r.radioRowCollection)},r.bindBasicSelectFromProxyModel=function(e){if(r.proxyModel.temporyConfig.formlyOptions.length>0)for(var o=0;o<=r.proxyModel.temporyConfig.formlyOptions.length-1;o++){var t={option:r.proxyModel.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.rows.push(t)}},r.bindBasicSelectToProxyModel=function(e){var o=[];if(r.proxyModel.temporyConfig.formlyOptions=o,e.rows.length>0)for(var t=0;t<=e.rows.length-1;t++){var l={name:e.rows[t].option,value:t,group:\"\"};r.proxyModel.temporyConfig.formlyOptions.push(l)}},r.bindGroupedSelectFromProxyModel=function(e,o){if(r.proxyModel.temporyConfig.formlyOptions.length>0){for(var t=0;t<=r.proxyModel.temporyConfig.formlyOptions.length-1;t++){var l={option:r.proxyModel.temporyConfig.formlyOptions[t].name,order:t,group:r.proxyModel.temporyConfig.formlyOptions[t].group};e.rows.push(l)}var n=_.uniq(_.pluck(e.rows,\"group\"));angular.copy(n,o.list)}},r.bindGroupedSelectToProxyModel=function(e){r.proxyModel.temporyConfig.formlyOptions=[];for(var o=0;o<=e.rows.length-1;o++){var t={name:e.rows[o].option,value:o,group:e.rows[o].group};r.proxyModel.temporyConfig.formlyOptions.push(t)}},r.bindRadioFromProxyModel=function(e){if(r.proxyModel.temporyConfig.formlyOptions.length>0)for(var o=0;o<=r.proxyModel.temporyConfig.formlyOptions.length-1;o++){var t={option:r.proxyModel.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.rows.push(t)}},r.bindRadioToProxyModel=function(e){var o=[];if(r.proxyModel.temporyConfig.formlyOptions=o,e.rows.length>0)for(var t=0;t<=e.rows.length-1;t++){var l={name:e.rows[t].option,value:t,group:\"\"};r.proxyModel.temporyConfig.formlyOptions.push(l)}},r}]),angular.module(\"edaApp.services.formFieldManage\",[]).factory(\"formFieldManage\",[\"EasyFormGenFormlyBindingModels\",function(e){function o(e){var o=[];angular.copy(o,e)}function t(o,t,l){var n=t.lines[l].columns.length,i=o.push({className:\"row\",fieldGroup:[]})-1;t.lines[l].columns.forEach(function(t,l){var r={};if(\"undefined\"!=typeof r&&\"none\"!==t.control.type){if(\"header\"===t.control.type||\"subTitle\"===t.control.type){var a=t.control.templateOptions.description;r.template=e.getHeaderTemplateForNcolumnLine(n,a).template,r.className=e.getRawHeaderTemplates().selectedClass}else r=e.getFormlyControlTemplateForNcolumnLine(n,t.control.type),r.className=t.control.className,r.type=t.control.type,r.key=t.control.key,r.templateOptions.type=t.control.templateOptions.type,r.templateOptions.label=t.control.templateOptions.label,r.templateOptions.required=t.control.templateOptions.required,r.templateOptions.placeholder=t.control.templateOptions.placeholder,r.templateOptions.description=t.control.templateOptions.description,r.templateOptions.options=[].concat(t.control.templateOptions.options),\"undefined\"!=typeof r.templateOptions.datepickerPopup&&(t.control.templateOptions.datepickerPopup=r.templateOptions.datepickerPopup);o[i].fieldGroup.push(r)}})}function l(e){var o={};return angular.copy(o,e),!0}function n(e,o){var t={noError:!1,title:\"\",Message:\"\"};return t.noError=!1,t.title=e,t.Message=o,t}function i(e,o){var t={noError:!1,title:\"\",Message:\"\"};return t.noError=!0,t.title=e,t.Message=o,t}var r={};return r.initConfigurationEditFromScratch=function(o,t){var l=e.getEasyFormInitialStateConfigurationModel(t);angular.copy(l,o)},r.bindConfigurationLines=function(o,t,l){if(\"[object Array]\"===Object.prototype.toString.call(t)){var r=e.getEasyFormReloadConfigurationModel(l);return r.lines=[].concat(t),angular.copy(r,o),i(\"configuration model is bound\",\"lines are bound to configuration model.\")}return n(\"lines is not an array\",\"Checks lines type, it is not an array.\")},r.applyConfigurationToformlyModel=function(e,n,i){o(n),l(i);for(var r=e.lines.length,a=0;r>a;a++)t(n,e,a)},r}]),angular.module(\"edaApp.services.formsByIdService\",[\"ngResource\"]).factory(\"formsByIdService\",[\"$resource\",function(e){return e(\"/api/formGen/:id\",{id:\"@id\"},{})}]),angular.module(\"edaApp.services.selectOptionManage\",[]).factory(\"selectOptionManage\",[function(){function e(e,o){var t={resultFlag:!1,details:\"\"};if(\"undefined\"==typeof o)return t.resultFlag=!1,t.details=\"Entered option is empty\",t;if(\"\"!==o){for(var l=e.rows.length-1;l>=0;l--)if(e.rows[l].option===o)return t.resultFlag=!1,t.details=\"Entered option is not unique\",t;return t.resultFlag=!0,t.details=\"\",t}return t.resultFlag=!1,t.details=\"Entered option is empty\",t}function o(e){var o={rows:[]};angular.copy(o,e)}return{testMe:function(){return\"selectOptionManage is here.\"},initModel:function(e){o(e)},isOptionUnique:function(e,o){for(var t=e.rows.length-1;t>=0;t--)if(e.rows[t].option===o)return!1;return!0},isOptionValidFormat:function(e){return\"\"!==e?!0:!1},addNewOptionRadio:function(o,t){var l={resultFlag:!1,details:\"\"},n=e(o,t);if(n.resultFlag===!0){var i={option:t,order:o.rows.length};return o.rows.push(i),l.resultFlag=!0,l.details=\"\",l}return angular.copy(n,l),l},addNewOptionBasicSelect:function(o,t){var l={resultFlag:!1,details:\"\"},n=e(o,t);if(n.resultFlag===!0){var i={option:t,order:o.rows.length};return o.rows.push(i),l.resultFlag=!0,l.details=\"\",l}return angular.copy(n,l),l},addNewOptionGroupedSelect:function(o,t,l){var n={resultFlag:!1,details:\"\"},i=e(o,t);if(i.resultFlag===!0){var r={option:t,group:l,order:o.rows.length};return o.rows.push(r),n.resultFlag=!0,n.details=\"\",n}return angular.copy(i,n),n},removeOption:function(e,o){var t={resultFlag:!1,details:\"\"};return-1!==o?(e.rows.splice(o,1),t.resultFlag=!0,t.details=\"\",t):(t.resultFlag=!1,t.details=\"Option index not valid\",t)},upthisOption:function(e,o){var t={resultFlag:!1,details:\"\"};if(o>-1){if(o>0){if(e.rows[o-1]){var l=e.rows[o];return e.rows.splice(o,1),e.rows.splice(o-1,0,l),t.resultFlag=!0,t.details=\"\",t}return t.resultFlag=!1,t.details=\"Can't retreive option from option index\",t}return t.resultFlag=!0,t.details=\"\",t}return t.resultFlag=!1,t.details=\"Option index not valid\",t},downthisOption:function(e,o){var t={resultFlag:!1,details:\"\"};if(o>-1){if(o','\t\",'\t\",\"
\"].join(\"\")}function t(){return['
','
','\t
','\t
','\t
  Edit :
',\"\t
\",\"\t
\",'\t
','\t
','\t
Column will be blank
',\"\t
\",\"\t
\",\"
\",f,\"
\"].join(\"\")}function l(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function n(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function i(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function r(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function a(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
',' ','
','
    ','
  1. ',\" {{dateformat}}\",\"
  2. \",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function s(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function d(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function c(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
',' ',\"
\",\"
\",'
',\"
\",'
','
',' ',\"
\",'
',' ',\"
\",\"
\",\"
\",\"
\",'
','
',' ',\"
\",\"
\",'
','
','
','
','
','
- no radio : add new radio values -
',\"
\",' 0\" class=\"table table-striped\">',\" \",\" \",' ',' ',' ',\" \",\" \",' ',' \",' ',\" \",\" \",\" \",' ',' ',' ',' \",\" \",\" \",\"
orderoption
',' ',\"
{{$index}}{{radioRow.option}}','
',' ',' ',' ',\"
\",\"
\",\"
\",\"
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function p(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
','
 
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function u(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
',' ',\"
\",\"
\",'
',\"
\",'
','
',' ',\"
\",'
',' ',\"
\",\"
\",\"
\",\"
\",'
','
',' ',\"
\",\"
\",'
','
','
','
','
','
- no option : add new options -
',\"
\",' 0\" class=\"table table-striped\">',\" \",\" \",' ',' ',' ',\" \",\" \",' ',' \",' ',\" \",\" \",\" \",' ',' ',' ',' \",\" \",\" \",\"
orderoption
',' ',\"
{{$index}}{{basicSelectRow.option}}','
',' ',' ',' \t',\"
\",\"
\",\"
\",\"
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}function m(){return['
','
','
','
','
  Edit properties :
',\"
\",\"
\",'
','
','
',' ',\"
\",\"
\",'
',\"
\",'
','
',' ',\"
\",'
',' ',\"
\",\"
\",\"
\",\"
\",'
','
',' ',\"
\",\"
\",'
',\"
\",'
','
',' ',\"
\",'
',' ',\"
\",\"
\",\"
\",\"
\",'
','
',' ',\"
\",\"
\",'
','
','
','
','
','
- no option : add new options -
',\"
\",' 0\" class=\"table table-striped\">',\" \",\" \",' ',' ',' ',' ',\" \",\" \",' ',' ',' \",' ',\" \",\" \",\" \",' ',' ',' \",' ',' \",\" \",\" \",\"
ordergroupoption
',' ',\"
{{$index}}','
','
','

- add new groups -

',\"
\",'
0\">','
    ','
  1. ',\" {{GroupedSelectGroup}}\",\"
  2. \",\"
\",\"
\",\"
\",'
',\" {{groupedSelectRow.group}}\",\"
\",\"
{{groupedSelectRow.option}}','
',' ',' ',' ',' ',\"
\",\"
\",\"
\",\"
\",\"
\",\"
\",'
','
','
','\t\t\t\t\t\t\t
',' ','
',' ',\"
\",\"\t\t\t\t\t\t\t
\",\"
\",\"
\",\"
\",f,\"
\"].join(\"\")}var f=o();e.put(\"editPanelBlankCtrl-tpls.html\",t()),e.put(\"editPanelHeaderCtrl-tpls.html\",l()),e.put(\"editPanelSubTitleCtrl-tpls.html\",n()),e.put(\"editPanelTextInputCtrl-tpls.html\",i()),e.put(\"editPanelPasswordCtrl-tpls.html\",r()),e.put(\"editPanelDateCtrl-tpls.html\",a()),e.put(\"editPanelTextareaCtrl-tpls.html\",s()),e.put(\"editPanelRichTextEditorCtrl-tpls.html\",d()),e.put(\"editPanelRadioCtrl-tpls.html\",c()),e.put(\"editPanelCheckboxCtrl-tpls.html\",p()),e.put(\"editPanelBasicSelectCtrl-tpls.html\",u()),e.put(\"editPanelGroupedSelectCtrl-tpls.html\",m())}angular.module(\"edaApp\",[\"edaApp.providers\",\"edaApp.controllers\",\"edaApp.services\",\"edaApp.filters\",\"edaApp.directives\",\"textAngular\",\"textAngularSetup\",\"ngAnimate\",\"toaster\",\"formly\",\"formlyBootstrap\",\"ui.bootstrap\",\"nya.bootstrap.select\",\"dndLists\",\"mgcrea.ngStrap.affix\",\"pageslide-directive\"]).value(\"easyFormGenVersion\",\"v1.0.15\").run(e),\ne.$inject=[\"$templateCache\"],angular.module(\"edaApp\").config([\"dragDropConfigProvider\",function(e){e.setItemsNotTocount({itemBeingDragged:\"dndDraggingSource\"})}]),angular.module(\"edaApp\").config([\"formlyConfigProvider\",\"EasyFormGenFormlyBindingModelsProvider\",\"dragDropConfigProvider\",function(e,o,t){function l(e){return e=e.replace(/[\\-_\\s]+(.)?/g,function(e,o){return o?o.toUpperCase():\"\"}),e.replace(/^([A-Z])/,function(e,o){return o?o.toLowerCase():\"\"})}e.setType({name:\"blank\",template:\"
\"}),o.addEasyFormControlToList({id:\"empty\",name:\"no control\",subtitle:\"no control\",group:\"Blank\",formlyType:\"blank\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
',\"
\",\"
\",\"
\"].join(\"\"),control:\"empty\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"blank\"}),o.addEasyFormControlToList({id:\"Header\",name:\"Header\",subtitle:\"no control\",group:\"Decoration\",formlyType:\"header\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','

Header

',\"
\",\"
\",\"
\",\"
\"].join(\"\"),control:\"Header\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"headers\"});var n=['
','
','

{{options.templateOptions.placeholder}}

',\"
\",\"

\",\"
\"].join(\" \");e.setType({name:\"subTitle\",template:n}),o.addEasyFormControlToList({id:\"Subtitle\",name:\"Subtitle\",subtitle:\"no control\",group:\"Decoration\",formlyType:\"subTitle\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','

SubTitle

',\"
\",\"
\",\"
\",\"
\"].join(\"\"),control:\"Subtitle\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"headers\"}),o.addEasyFormControlToList({id:\"TextInput\",name:\"Text input\",subtitle:\"Text input\",group:\"input\",formlyType:\"input\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' \",'
',' ','

Description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"TextInput\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"inputs\"}),o.addEasyFormControlToList({id:\"Password\",name:\"Password\",subtitle:\"Password\",group:\"input\",formlyType:\"input\",formlySubtype:\"password\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' \",'
',' ','

Description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"Password\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"inputs\"});var i=[\"date-disabled\",\"custom-class\",\"show-weeks\",\"starting-day\",\"init-date\",\"min-mode\",\"max-mode\",\"format-day\",\"format-month\",\"format-year\",\"format-day-header\",\"format-day-title\",\"format-month-title\",\"year-range\",\"shortcut-propagation\",\"datepicker-popup\",\"show-button-bar\",\"current-text\",\"clear-text\",\"close-text\",\"close-on-date-selection\",\"datepicker-append-to-body\"],r=[\"datepicker-mode\",\"min-date\",\"max-date\"],a={};angular.forEach(i,function(e){a[l(e)]={attribute:e}}),angular.forEach(r,function(e){a[l(e)]={bound:e}});var s=[\"\"].join(\" \");e.setType({name:\"datepicker\",template:s,wrapper:[\"bootstrapLabel\",\"bootstrapHasError\"],controller:[\"$scope\",function(e){e.open=function(o){o.preventDefault(),o.stopPropagation(),e.opened=!0}}],defaultOptions:{ngModelAttrs:a,templateOptions:{addonLeft:{\"class\":\"glyphicon glyphicon-calendar\",onClick:function(e){e.templateOptions.isOpen=!e.templateOptions.isOpen}},onFocus:function(e,o,t){t.to.isOpen=!t.to.isOpen},datepickerOptions:{}}}}),o.addEasyFormControlToList({id:\"Date\",name:\"Date\",subtitle:\"Date\",group:\"input\",formlyType:\"datepicker\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],datepickerPopup:\"dd-MMMM-yyyy\"}),t.addControlToDragDropPresentationModel({label:['
','
',' \",'
',' \t\t\t\t\t
',' \t\t\t\t\t',' \t\t\t\t\t',\" \t\t\t\t\t
\",\"\t\t\t\t\t
\",'

description

',\"
\",\"
\"].join(\"\"),control:\"Date\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"inputs\"}),o.addEasyFormControlToList({id:\"Texarea\",name:\"Textarea\",subtitle:\"Textarea\",group:\"Textarea\",formlyType:\"textarea\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
',' ','

description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"Texarea\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"textareas\"});var d=['',\"\"].join(\" \");e.setType({name:\"richEditor\",template:d}),o.addEasyFormControlToList({id:\"RichTextEditor\",name:\"RichTextEditor\",subtitle:\"RichTextEditor\",group:\"Textarea\",formlyType:\"richEditor\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
',' ','

description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"RichTextEditor\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"textareas\"}),o.addEasyFormControlToList({id:\"Radio\",name:\"Radio\",subtitle:\"Radio\",options:[],group:\"Radio\",formlyType:\"radio\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' ','
','
','
',' \",'
',' \",\"
\",'

description

',\"
\",\"
\",\"
\"].join(\"\"),control:\"Radio\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"radios\"}),o.addEasyFormControlToList({id:\"Checkbox\",name:\"Checkbox\",subtitle:\"Checkbox\",group:\"Checkbox\",formlyType:\"checkbox\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
',' \",\"
\",'

description

',\"
\"].join(\"\"),control:\"Checkbox\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"checkboxes\"});var c=['
    ','
  1. ',\" {{option.name}} \",\"
  2. \",\"
\"].join(\"\");e.setType({name:\"basicSelect\",template:c}),o.addEasyFormControlToList({id:\"BasicSelect\",name:\"Basic select\",subtitle:\"Basic select\",options:[],group:\"Select\",formlyType:\"basicSelect\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','
    ',' \",\"
\",\"
\"].join(\"\"),control:\"BasicSelect\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"selects\"});var p=['
    ','
  1. ',' {{$group}}',\" \",\" {{option.name}}\",' ',\" \",\"
  2. \",\"
\"].join(\" \");e.setType({name:\"groupedSelect\",template:p}),o.addEasyFormControlToList({id:\"GroupedSelect\",name:\"Grouped Select\",subtitle:\"Grouped Select\",options:[],group:\"Select\",formlyType:\"groupedSelect\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[]}),t.addControlToDragDropPresentationModel({label:['
','
','
','
    ',' \",\"
\",\"
\"].join(\"\"),control:\"GroupedSelect\",cssClass:\"col-xs-12\"},{addToGroupCtrl:\"selects\"})}]),angular.module(\"edaApp\").run([\"$templateCache\",function(e){e.put(\"editModalTemplate.html\",\"

no use right now

\")}]),angular.module(\"edaApp.providers.dragDropConfigProvider\",[]).provider(\"dragDropConfig\",[function(){function e(e,o){if(l[0].length>0){if(l[0].lengthi;i++)l[0].push([]);t.containerConfig.decoration.forEach(function(t){o.addToGroupCtrl===t.groupId&&l[0][t.WhenIndex].push(e)})}else t.containerConfig.decoration.forEach(function(){l[0].push([])}),t.containerConfig.decoration.forEach(function(t){o.addToGroupCtrl===t.groupId&&l[0][t.WhenIndex].push(e)})}var o=[{cssClass:\"col-md-12\",numberItemPerRow:0},{cssClass:\"col-md-12\",numberItemPerRow:1},{cssClass:\"col-md-6\",numberItemPerRow:2},{cssClass:\"col-md-4\",numberItemPerRow:3}],t={dropZoneConfig:{decoration:[{WhenIndex:0,ApplycssClass:\"col-md-4\",fontAwesomeIcon:\"fa fa-level-up\",title:\"Drag control from here : \"},{WhenIndex:1,ApplycssClass:\"col-md-8\",fontAwesomeIcon:\"fa fa-level-down\",title:\"Drop control into here : \"}],verboseMode:!1},containerConfig:{decoration:[{WhenIndex:0,ApplycssClass:\"col-md-12\",title:\"Blank : \",groupId:\"blank\",isCollapsed:!0},{WhenIndex:1,ApplycssClass:\"col-md-12\",title:\"Headers : \",groupId:\"headers\",isCollapsed:!0},{WhenIndex:2,ApplycssClass:\"col-md-12\",title:\"Text inputs : \",groupId:\"inputs\",isCollapsed:!0},{WhenIndex:3,ApplycssClass:\"col-md-12\",title:\"Textareas : \",groupId:\"textareas\",isCollapsed:!0},{WhenIndex:4,ApplycssClass:\"col-md-12\",title:\"Radios : \",groupId:\"radios\",isCollapsed:!0},{WhenIndex:5,ApplycssClass:\"col-md-12\",title:\"Checkboxes : \",groupId:\"checkboxes\",isCollapsed:!0},{WhenIndex:6,ApplycssClass:\"col-md-12\",title:\"Selects : \",groupId:\"selects\",isCollapsed:!0}],verboseMode:!1,collapseEnabled:!0,collapseCtrl:[{atIndex:0,collapse:!0},{atIndex:1,collapse:!0}]},itemConfig:{verboseMode:!1}},l=[[],[[]]],n={itemBeingDragged:\"\"};this.setListItemCssClass=function(e){o=[].concat(e)},this.getItemsNotTocount=function(){return n},this.setItemsNotTocount=function(e){n=angular.copy(e)},this.addControlToDragDropPresentationModel=function(o,t){\"undefined\"!=typeof o&&\"undefined\"!=typeof t&&e(o,t)},this.getDragDropPresentationModel=function(){return l},this.$get=[function(){var e={};return e.getListItemCssClass=function(){return o},e.getItemsNotToCount=function(){return n},e.getItemCssDependingNumberItemsInRow=function(e){if(\"undefined\"!=typeof e){for(var t=\"\",l=o.length-1;l>=0;l--)o[l].numberItemPerRow===e&&(t=o[l].cssClass);return t}return\"\"},e.getDistinctItemCssClass=function(){var e=[];return angular.forEach(o,function(o){var t=o.cssClass;if(0===e.length)e.push(t);else{var l=!0;angular.forEach(e,function(e){var o=e;t===o&&(l=!1)}),l&&e.push(t)}}),e},e.getDragDropConfigModel=function(){return t},e.setDragDropConfigContainerDecorationCollapse=function(e,o,t){return\"undefined\"!=typeof o&&\"undefined\"!=typeof t&&o===parseInt(o,10)&&(e.containerConfig.decoration[o].isCollapsed=t),!0},e.getDragDropPresentationModel=function(){return l},e}]}]),angular.module(\"edaApp.providers.EasyFormGenFormlyBindingModels\",[]).provider(\"EasyFormGenFormlyBindingModels\",[function(){var e={controls:[],selectedControl:\"none\",temporyConfig:{selectedControl:\"none\",formlyLabel:\"label\",formlyRequired:!1,formlyDesciption:\"\",formlyPlaceholder:\"\",formlyOptions:[]}},o={line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]},t={control:{type:\"none\",key:\"none\"}},l={submitButtonText:\"submit\",cancelButtonText:\"cancel\",lines:[].concat(o)},n={activeLine:1,listConfigStep:[\"init\",\"first\",\"second\",\"third\"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0},i={submitButtonText:\"submit\",cancelButtonText:\"cancel\",lines:[]},r={cssClass:[\"col-xs-12\",\"col-xs-6\",\"col-xs-4\"],textContent:\"\",html_part1:['
','

'].join(\"\"),html_part3:this.textContent,html_part4:[\"

\",\"
\",\"

\"].join(\"\"),simpleHtml1:['

'].join(\"\"),simpleHtml2:[\"

\",\"
\"].join(\"\")},a={className:[\"col-xs-12\",\"col-xs-6\",\"col-xs-4\"],type:\"\",key:\"\",templateOptions:{type:\"\",label:\"\",required:\"\",placeholder:\"\",description:\"\",options:\"\"}},s=[{controlType:\"datepicker\",properties:[{isRoot:!1,isTemplateOptions:!0,value:\"datepickerPopup\"}]}];this.getAllParticularControlProperties=function(){return s},this.addParticularControlProperties=function(e){if(\"controlType\"in e&&\"properties\"in e){var o=!1;s.length>0&&s.forEach(function(t){t.controlType===e.controlType&&(t.properties=[].concat(e.properties),o=!0)}),o||s.push(e)}return s},this.getEasyFormListControls=function(){return e},this.addEasyFormControlToList=function(o){\"undefined\"!=typeof o&&e.controls.push(o)},this.getHeaderTemplates=function(){return r},this.addHeaderTemplateCssClass=function(e){\"undefined\"!=typeof e&&r.cssClass.push(e)},this.getFormlyControlTemplate=function(){return a},this.addformlyControlTemplatesCssClass=function(e){\"undefined\"!=typeof e&&a.className.push(e)},this.setFormlyControlTemplate=function(e){return\"className\"in e&&\"type\"in e&&\"key\"in e&&\"templateOptions\"in e&&(a=angular.copy(e)),!0},this.$get=[function(){var d={};return d.getEasyFormListControls=function(){return e},d.getEasyFormInitialStateConfigurationModel=function(e){var o=angular.copy(l);return\"undefined\"!=typeof e&&e&&angular.extend(o,n),o},d.getEasyFormReloadConfigurationModel=function(e){var o=angular.copy(i);return\"undefined\"!=typeof e&&e&&angular.extend(o,n),o},d.getEasyFormEmptyConfigurationLineModel=function(){return o},d.getEasyFormConfigurationEmptyControlModel=function(){return t},d.getRawHeaderTemplates=function(){return r},d.getHeaderTemplateForNcolumnLine=function(e,o){if(\"undefined\"!=typeof e&&\"undefined\"!=typeof o&&e===parseInt(e,10)&&e<=r.cssClass.length){var t={};return t.className=r.cssClass[e-1],r.textContent=o,r.selectedClass=t.className,t.template=[r.simpleHtml1,o,r.simpleHtml2].join(\"\"),t}},d.getRawFormlyControlTemplates=function(){return a},d.getFormlyControlTemplateForNcolumnLine=function(e,o){if(\"undefined\"!=typeof e&&e===parseInt(e,10)&&e<=a.className.length){var t=angular.copy(a);return t.className=a.className[e-1],\"undefined\"!=typeof o&&s.forEach(function(e){e.controlType===o&&e.properties.forEach(function(e){e.isRoot&&(t[e.value]=\"\"),e.isTemplateOptions&&(t.templateOptions[e.value]=\"\")})}),t}},d}]}]),angular.module(\"edaApp.providers\",[\"edaApp.providers.dragDropConfigProvider\",\"edaApp.providers.EasyFormGenFormlyBindingModels\",function(){}]),angular.module(\"edaApp.controllers\",[\"edaApp.controllers.edaMainController\",\"edaApp.controllers.edaEditController\",\"edaApp.controllers.edaEditMODALController\",\"edaApp.controllers.edaEditPanelController\"]),angular.module(\"edaApp.controllers.edaEditController\",[]).controller(\"edaEditController\",[\"$scope\",\"easyFormGenVersion\",\"$filter\",\"$anchorScroll\",\"toaster\",\"$timeout\",\"$modal\",\"$log\",\"formFieldManage\",\"formsByIdService\",\"controllerModalProxy\",\"dragDropItemDecorationService\",\"dragDropConfig\",\"ddModelConfModelProxyService\",\"ddItemRightClickedManager\",function(e,o,t,l,n,i,r,a,s,d,c,p,u,m,f){function g(){n.pop({type:\"info\",timeout:2e3,title:\"should save data model if it were not a static example\",body:\"data :\"+t(\"json\")(e.vm.model,4),showCloseButton:!0})}function y(){s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}e.easyFormGeneratorVERSION=o,e.tab={editTab:{active:!0},previewTab:{active:!1}},e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.ihm={preview:{formlyModelViewExpanded:!0,formlyFieldsViewExpanded:!0,customizeFormButtonsExpanded:!0,saveThisFormExpanded:!0}},e.easyFormDragDropProperties=u.getDragDropConfigModel(),e.dragDropModel=[].concat(u.getDragDropPresentationModel()),e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.configuration={},s.initConfigurationEditFromScratch(e.configuration,!1),c.initProxyModel(),e.collapseAllGroupControl=function(o){angular.forEach(e.easyFormDragDropProperties.containerConfig.decoration,function(t){t.WhenIndex!==o&&u.setDragDropConfigContainerDecorationCollapse(e.easyFormDragDropProperties,t.WhenIndex,!0)})},e.vm.onSubmit=g,e.resetToZeroModel=function(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()},e.countConfigurationModelLines=function(){return e.configuration.lines.length},e.setActiveLineNumber=function(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)},e.upThisLine=function(o){if(o>-1&&e.configuration.lines[o-1]){var t=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,t),e.configuration.activeLine=1}s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.downThisLine=function(o){if(o>-1&&e.configuration.lines[o+1]){var t=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,t),e.configuration.activeLine=1}s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.removeThisLine=function(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):i(function(){n.pop({type:\"warning\",title:\"Last line\",body:\"Can't delete the last line\",showCloseButton:!0})},100),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))},e.increaseNumberOfColumns=function(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},e.saveThisForm=function(){if(\"undefined\"==typeof e.configuration.formName)return n.pop({type:\"warning\",timeout:2e3,title:\"Form name is undefined\",body:\"Form has not been saved.\",showCloseButton:!0}),!1;if(\"\"===e.configuration.formName)return n.pop({type:\"warning\",timeout:2e3,title:\"Form name is required\",body:\"Form has not been saved.\",showCloseButton:!0}),!1;n.pop({type:\"wait\",timeout:1e4,title:\"Form is being saved\",body:\"Wait.\",showCloseButton:!0});var o=new d;return o.formName=e.configuration.formName,o.submitButtonText=e.configuration.submitButtonText,o.cancelButtonText=e.configuration.cancelButtonText,o.formlyField=JSON.stringify(e.configuration.lines),n.clear(),n.pop({type:\"info\",timeout:2e3,title:\"Form would be saved if it were not a static example\",body:\"\",showCloseButton:!0}),!0},e.nyaSelect={},c.initNyaSelect(e.nyaSelect),e.animationsEnabled=!0,e.showModalAddCtrlToColumn=function(o,t,l){var n=r.open({animation:e.animationsEnabled,templateUrl:\"editModalTemplate.html\",controller:\"edaEditMODALController\",size:\"lg\",resolve:{nyaSelect:function(){return c.getNyASelectFromSelectedLineColumn(e.nyaSelect,e.configuration,t,l)}}});n.result.then(function(o){c.bindConfigurationModelFromModalReturn(t,l,o,e.configuration),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)},function(){a.info(\"Modal dismissed at: \"+new Date)})},e.dragoverCallbackContainer=function(e,o,t){return 0===t?!1:!0},e.dropCallback=function(o,t,l,n,r,a){if(n){if(\"itemType\"===a&&!l.label)return!1;if(\"containerType\"===a&&!angular.isArray(l))return!1}var d=i(function(){e.configuration=angular.copy(m.refreshAllConfigurationFromDragAndDropModel(e.configuration,e.dragDropModel)),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel)},200);return e.$on(\"$destroy\",function(){i.cancel(d)}),l},e.dndItemMoved=function(o,t,l){o>0&&e.dragDropModel[o][t].splice(l,1)},e.dragoverCallbackItems=function(e,o,t,l){return 0===o?!1:!0},e.disableItemDropIf=function(){},e.dropCallbackItems=function(o,t,l,n,r,a,d,c,p,u){if(c){if(\"itemType\"===u&&!d.label)return!1;if(\"containerType\"===u&&!angular.isArray(d))return!1}var g=i(function(){e.configuration=angular.copy(m.refreshAllConfigurationFromDragAndDropModel(e.configuration,e.dragDropModel)),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel)},200);return f.setUnRightClicked(d),e.$on(\"$destroy\",function(){i.cancel(g)}),d},e.editPanelModel={toggle:!1},e.saveFromEditPanel=function(){c.bindSpecialCtrlTemporyModelsToProxyModel(),c.bindConfigurationModelFromProxyModel(c.getEditPanelModelLineIndex(),c.getEditPanelModelColumnIndex(),e.configuration),s.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),m.refreshControlsKeys(e.configuration,e.dragDropModel),c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle(),f.resetAllDragDropItemSelectedState(e.dragDropModel)},e.closeEditPanel=function(){f.resetAllDragDropItemSelectedState(e.dragDropModel),c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle()},e.debugProxyModel=c.ProxyModel,e.setRightClicked=function(e,o){o.rightCliked=!0},e.toggleEditPanel=function(o,t,l,n){if(f.resetAllDragDropItemSelectedState(e.dragDropModel),c.getEditPanelModelToggle()){if(c.setEditPanelModelToggle(!1),e.editPanelModel.toggle=c.getEditPanelModelToggle(),\"undefined\"!=typeof c.getEditPanelModelLineIndex()&&\"undefined\"!=typeof c.getEditPanelModelColumnIndex()&&\"undefined\"!=typeof c.getEditPanelModelControl())if(c.getEditPanelModelLineIndex()===t&&c.getEditPanelModelColumnIndex()===l&&angular.equals(c.getEditPanelModelControl(),n));else{n.rightCliked=!0;var r=i(function(){c.setEditPanelModelLineIndex(t),c.setEditPanelModelColumnIndex(l),c.setEditPanelModelControl(n),c.setProxyModelFromConfigurationSelection(e.configuration,t,l),c.setEditPanelModelToggle(!0),e.editPanelModel.toggle=c.getEditPanelModelToggle()},200);e.$on(\"$destroy\",function(){i.cancel(r)})}}else n.rightCliked=!0,c.setEditPanelModelLineIndex(t),c.setEditPanelModelColumnIndex(l),c.setEditPanelModelControl(n),c.setProxyModelFromConfigurationSelection(e.configuration,t,l),c.setEditPanelModelToggle(!0),e.editPanelModel.toggle=c.getEditPanelModelToggle()},e.removeThisLine=function(o){e.dragDropModel[1].splice(o,1)},e.model=[],e.insertNewLine=function(){y(),e.dragDropModel[1].push([])}}]),angular.module(\"edaApp.controllers.edaEditMODALController\",[]).controller(\"edaEditMODALController\",[\"$scope\",\"$modalInstance\",\"nyaSelect\",\"toaster\",\"$timeout\",\"selectOptionManage\",\"controllerModalProxy\",function(e,o,t,l,n,i,r){function a(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.radioRowCollection.rows.push(t)}}function s(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.radioRowCollection.rows.length>0)for(var t=0;t<=e.radioRowCollection.rows.length-1;t++){var l={name:e.radioRowCollection.rows[t].option,value:t,group:\"\"};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function d(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.basicSelectRowCollection.rows.push(t)}}function c(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.basicSelectRowCollection.rows.length>0)for(var t=0;t<=e.basicSelectRowCollection.rows.length-1;t++){var l={name:e.basicSelectRowCollection.rows[t].option,value:t,group:\"\"};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function p(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0){for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var t={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:e.nyaSelect.temporyConfig.formlyOptions[o].group};e.groupedSelectRowCollection.rows.push(t)}var l=_.uniq(_.pluck(e.groupedSelectRowCollection.rows,\"group\"));angular.copy(l,e.GroupedSelectGroups.list)}}function u(){e.nyaSelect.temporyConfig.formlyOptions=[];for(var o=0;o<=e.groupedSelectRowCollection.rows.length-1;o++){var t={name:e.groupedSelectRowCollection.rows[o].option,value:o,group:e.groupedSelectRowCollection.rows[o].group};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function m(){e.nyaSelect.temporyConfig.datepickerPopup=e.demodt.formats[0]}function f(){e.nyaSelect.temporyConfig={formlyLabel:\"\",formlyRequired:!1,formlyPlaceholder:\"\",formlyDesciption:\"\",formlyOptions:[]}}var g={rows:[]};if(e.radioRowCollection=g,e.newOptionRadio={saisie:\"\"},e.addNewOptionRadio=function(){var o=i.addNewOptionRadio(e.radioRowCollection,e.newOptionRadio.saisie);o.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionRadio.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionRadio={saisie:\"\"}},e.removeRadioRow=function(o){var t=i.removeOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},e.upThisRadioRow=function(o){var t=i.upthisOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.downThisRadioRow=function(o){var t=i.downthisOption(e.radioRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.basicSelectRowCollection=g,e.newOptionBasicSelect={saisie:\"\"},e.addNewOptionBasicSelect=function(){var o=i.addNewOptionBasicSelect(e.basicSelectRowCollection,e.newOptionBasicSelect.saisie);o.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionBasicSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionBasicSelect={saisie:\"\"}},e.removeRow=function(o){var t=i.removeOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},e.upThisRow=function(o){var t=i.upthisOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.downThisRow=function(o){var t=i.downthisOption(e.basicSelectRowCollection,o);t.resultFlag===!1&&l.pop({\ntype:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.groupedSelectRowCollection=g,e.newOptionGroupedSelect={saisie:\"\"},e.GroupedSelectGroups={list:[]},e.newGroupGroupedSelect={saisie:\"\"},e.groupSelectGroupClick={showList:!1},e.showGroupListToChoose=function(){e.groupSelectGroupClick.showList=!e.groupSelectGroupClick.showList},e.addNewGroupToGroupedSelect=function(){if(\"\"!==e.newGroupGroupedSelect.saisie){for(var o=e.GroupedSelectGroups.list.length-1;o>=0;o--)e.GroupedSelectGroups.list[o]===e.newGroupGroupedSelect.saisie&&l.pop({type:\"warning\",timeout:2e3,title:\"Group already exists\",body:\"No group added.\",showCloseButton:!0});e.GroupedSelectGroups.list.push(e.newGroupGroupedSelect.saisie)}else l.pop({type:\"warning\",timeout:2e3,title:\"Not a valid group to add\",body:\"No group added.\",showCloseButton:!0});e.newGroupGroupedSelect.saisie=\"\"},e.addNewOptionGroupedSelect=function(){var o=i.addNewOptionGroupedSelect(e.groupedSelectRowCollection,e.newOptionGroupedSelect.saisie,\"\");o.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionGroupedSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionGroupedSelect={saisie:\"\"}},e.removeGroupedSelectRow=function(o){var t=i.removeOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},e.upThisGroupedSelectRow=function(o){var t=i.upthisOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.downThisGroupedSelectRow=function(o){var t=i.downthisOption(e.groupedSelectRowCollection,o);t.resultFlag===!1&&l.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},e.demodt={},e.today=function(){e.demodt.dt=new Date},e.today(),e.clear=function(){e.demodt.dt=null},e.open=function(o){o.preventDefault(),o.stopPropagation(),e.demodt.opened=!0},e.dateOptions={formatYear:\"yy\",startingDay:1,showWeeks:!0,initDate:null},e.demodt.formats=[\"dd-MMMM-yyyy\",\"yyyy/MM/dd\",\"dd.MM.yyyy\",\"shortDate\"],e.nyaSelect=t,e.nyaSelect.selectedControl=e.nyaSelect.temporyConfig.selectedControl,\"none\"!==t.selectedControl){for(var y=e.nyaSelect.controls.length-1;y>=0;y--)e.nyaSelect.controls[y].id===t.selectedControl&&(e.modelNyaSelect=t.controls[y]);\"BasicSelect\"===e.nyaSelect.selectedControl&&d(),\"GroupedSelect\"===e.nyaSelect.selectedControl&&p(),\"Radio\"===e.nyaSelect.selectedControl&&a()}e.selectThisControl=function(o){e.nyaSelect.selectedControl=\"none\",f();for(var t=e.nyaSelect.controls.length-1;t>=0;t--)e.nyaSelect.controls[t].id===o&&(e.nyaSelect.selectedControl=e.nyaSelect.controls[t].id);\"Date\"===e.nyaSelect.selectedControl&&m()},e.ok=function(){\"BasicSelect\"===e.nyaSelect.selectedControl&&c(),\"GroupedSelect\"===e.nyaSelect.selectedControl&&u(),\"Radio\"===e.nyaSelect.selectedControl&&s(),r.applyConfigToSelectedControl(e.nyaSelect),o.close(e.nyaSelect)},e.cancel=function(){o.dismiss(\"cancel\")}}]),angular.module(\"edaApp.controllers.edaEditPanelController\",[]).controller(\"edaEditPanelController\",[\"$scope\",\"toaster\",\"$timeout\",\"selectOptionManage\",\"controllerModalProxy\",function(e,o,t,l,n){function i(){a.proxyModel.temporyConfig={formlyLabel:\"\",formlyRequired:!1,formlyPlaceholder:\"\",formlyDesciption:\"\",formlyOptions:[]}}function r(){a.proxyModel.temporyConfig.datepickerPopup=a.demodt.formats[0]}var a=this;if(a.proxyModel=n.proxyModel,a.proxyModel.selectedControl=a.proxyModel.temporyConfig.selectedControl,a.basicSelectRowCollection=n.basicSelectRowCollection,a.newOptionBasicSelect=n.newOptionBasicSelect,a.groupedSelectRowCollection=n.groupedSelectRowCollection,a.newOptionGroupedSelect=n.newOptionGroupedSelect,a.GroupedSelectGroups=n.GroupedSelectGroups,a.newGroupGroupedSelect=n.newGroupGroupedSelect,a.groupSelectGroupClick=n.groupSelectGroupClick,a.radioRowCollection=n.radioRowCollection,a.newOptionRadio=n.newOptionRadio,n.resetAllTemporyModels(),\"none\"!==a.proxyModel.temporyConfig.selectedControl){for(var s=a.proxyModel.controls.length-1;s>=0;s--)a.proxyModel.controls[s].id===a.proxyModel.temporyConfig.selectedControl&&(a.modelproxyModel=a.proxyModel.controls[s]);\"BasicSelect\"===a.proxyModel.temporyConfig.selectedControl&&n.bindBasicSelectFromProxyModel(a.basicSelectRowCollection),\"GroupedSelect\"===a.proxyModel.temporyConfig.selectedControl&&n.bindGroupedSelectFromProxyModel(a.groupedSelectRowCollection,a.GroupedSelectGroups),\"Radio\"===a.proxyModel.temporyConfig.selectedControl&&n.bindRadioFromProxyModel(a.radioRowCollection)}a.updateSpecialControl=function(){return n.basicSelectRowCollection=a.basicSelectRowCollection,n.newOptionBasicSelect=a.newOptionBasicSelect,n.groupedSelectRowCollection=a.groupedSelectRowCollection,n.newOptionGroupedSelect=a.newOptionGroupedSelect,n.GroupedSelectGroups=a.GroupedSelectGroups,n.newGroupGroupedSelect=a.newGroupGroupedSelect,n.groupSelectGroupClick=a.groupSelectGroupClick,n.radioRowCollection=a.radioRowCollection,n.newOptionRadio=a.newOptionRadio,n.bindSpecialCtrlTemporyModelsToProxyModel(),!0},a.resetControl=function(){a.proxyModel.temporyConfig.formlyLabel=\"\",a.proxyModel.temporyConfig.formlyRequired=!1,a.proxyModel.temporyConfig.formlyPlaceholder=\"\",a.proxyModel.temporyConfig.formlyDesciption=\"\",a.proxyModel.temporyConfig.formlyOptions=[],a.proxyModel.temporyConfig.datepickerPopup=r()},a.selectThisControl=function(e){a.proxyModel.selectedControl=\"none\",i();for(var o=a.proxyModel.controls.length-1;o>=0;o--)a.proxyModel.controls[o].id===e&&(a.proxyModel.selectedControl=a.proxyModel.controls[o].id);\"Date\"===a.proxyModel.selectedControl&&r()},a.addNewOptionRadio=function(){var e=l.addNewOptionRadio(a.radioRowCollection,a.newOptionRadio.saisie);e.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:e.details,body:\"'\"+a.newOptionRadio.saisie+\"' cannot be added.\",showCloseButton:!0}),a.newOptionRadio={saisie:\"\"}},a.removeRadioRow=function(e){var t=l.removeOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},a.upThisRadioRow=function(e){var t=l.upthisOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.downThisRadioRow=function(e){var t=l.downthisOption(a.radioRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.addNewOptionBasicSelect=function(){var e=l.addNewOptionBasicSelect(a.basicSelectRowCollection,a.newOptionBasicSelect.saisie);e.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:e.details,body:\"'\"+a.newOptionBasicSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),a.newOptionBasicSelect={saisie:\"\"}},a.removeRow=function(e){var t=l.removeOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},a.upThisRow=function(e){var t=l.upthisOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.downThisRow=function(e){var t=l.downthisOption(a.basicSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.showGroupListToChoose=function(){a.groupSelectGroupClick.showList=!a.groupSelectGroupClick.showList},a.addNewGroupToGroupedSelect=function(){if(\"\"!==a.newGroupGroupedSelect.saisie){for(var e=a.GroupedSelectGroups.list.length-1;e>=0;e--)a.GroupedSelectGroups.list[e]===a.newGroupGroupedSelect.saisie&&o.pop({type:\"warning\",timeout:2e3,title:\"Group already exists\",body:\"No group added.\",showCloseButton:!0});a.GroupedSelectGroups.list.push(a.newGroupGroupedSelect.saisie)}else o.pop({type:\"warning\",timeout:2e3,title:\"Not a valid group to add\",body:\"No group added.\",showCloseButton:!0});a.newGroupGroupedSelect.saisie=\"\"},a.addNewOptionGroupedSelect=function(){var e=l.addNewOptionGroupedSelect(a.groupedSelectRowCollection,a.newOptionGroupedSelect.saisie,\"\");e.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:e.details,body:\"'\"+a.newOptionGroupedSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),a.newOptionGroupedSelect={saisie:\"\"}},a.removeGroupedSelectRow=function(e){var t=l.removeOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Delete was cancelled.\",showCloseButton:!0})},a.upThisGroupedSelectRow=function(e){var t=l.upthisOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.downThisGroupedSelectRow=function(e){var t=l.downthisOption(a.groupedSelectRowCollection,e);t.resultFlag===!1&&o.pop({type:\"warning\",timeout:2e3,title:t.details,body:\"Operation cancelled.\",showCloseButton:!0})},a.demodt={},a.today=function(){a.demodt.dt=new Date},a.today(),a.clear=function(){a.demodt.dt=null},a.open=function(e){e.preventDefault(),e.stopPropagation(),a.demodt.opened=!0},a.dateOptions={formatYear:\"yy\",startingDay:1,showWeeks:!0,initDate:null},a.demodt.formats=[\"dd-MMMM-yyyy\",\"yyyy/MM/dd\",\"dd.MM.yyyy\",\"shortDate\"]}]),angular.module(\"edaApp.controllers.edaMainController\",[]).controller(\"edaMainController\",[function(){}]),angular.module(\"edaApp.directives.edaDdContentCounterDirective\",[]).directive(\"ddContentCounter\",[\"dragDropItemCounterService\",\"$timeout\",function(e,o){return{scope:{valueWhenPlaceholder:\"@ddValueWhenPlaceholder\",valueWhendragging:\"@ddValueWhenDragging\",fullModel:\"=ddFullModel\",currentIndex:\"@ddContentCounterCurrentIndex\",parentIndex:\"@ddContentCounterParentIndex\",forceRefresh:\"=ddContentCounterForceCssRefresh\"},restrict:\"A\",link:function(t,l){var n;t.$watch(function(){return l[0].children.length},function(i,r){if(i!==r){for(var a=0,s=[],d=l[0].children.length-1;d>=0;d--)e.isHtmlElementToCount(l[0].children[d].classList)?(a++,s.push({item:d,isReal:!0})):s.push({item:d,isReal:!1});t.contentRealCount=a,n=o(function(){e.updateLineItemCss(t.fullModel,s,t.parentIndex,t.currentIndex,a)},20)}}),t.$on(\"$destroy\",function(){console.warn(\"ddContentCounter timer destruction!\"),o.cancel(n)})}}}]),angular.module(\"edaApp.directives.edaDdDecorContainerDirective\",[]).directive(\"ddDecorContainer\",[function(){var e=['
','
 {{currentTitle}}
',\"
\",'
','
',\"
\"].join(\" \");return{scope:{styleParam:\"=ddContainerProperties\",isStillCollapsed:\"=ddContainerIsCollpased\",verboseMode:\"@ddContainerVerboseMode\",currentIndex:\"@ddContainerCurrentIndex\",collpaseAll:\"&ddCollapseAll\"},restrict:\"A\",template:e,transclude:!0,controller:function(e){e.config={isEnabled:!1},e.collapseFct=function(){e.collpaseAll({exceptThisOne:e.styleParam.WhenIndex}),e.isCollapsed=!e.isCollapsed,e.isStillCollapsed=e.isCollapsed},e.icons={closedClass:\"glyphicon glyphicon-eye-open\",opened:\"glyphicon glyphicon-eye-close\"},e.currentIconClass=function(){return e.isCollapsed?e.icons.closedClass:e.icons.opened}},link:function(e,o,t,l,n){var i=e.verboseMode,r=e.currentIndex;if(e.isCollapsed=!1,\"\"!==i){var a=angular.lowercase(i);(\"true\"===a||\"1\"===a)&&console.dir({whoAmI:\"I am verbose from ddDecorContainer link\",verbodeMode:a,ParentParentIndex:e.$parent.$parent.$index,ParentIndex:e.$parent.$index,currentIndex:r,styleParam:e.styleParam,columnindex:e.$parent.$parent.$parent.$parent.$index})}e.$watch(function(){return e.isStillCollapsed},function(o,t){o!==t&&0===e.$parent.$parent.$index&&(e.isCollapsed=o)}),e.config.isEnabled=!1,\"undefined\"!=typeof r&&\"\"!==r&&\"0\"===r&&\"undefined\"!=typeof e.styleParam.title&&(e.currentTitle=e.styleParam.title,e.config.isEnabled=!0,e.isCollapsed=!0),n(e.$parent,function(e){var t=angular.element(o.children()[1]);t.append(e)})}}}]),angular.module(\"edaApp.directives.edaDdDecorDropZoneDirective\",[]).directive(\"ddDecorDropZone\",[function(){var e=['
','
','
','
','

','  ',\" {{currentTitle}}\",'
',' \",\"
\",\"

\",\"
\",'
','
','
',\"
\",\"
\",\"
\",\"
\",\"
\",\"
\"].join(\" \");return{scope:{styleParam:\"=ddDropZoneProperties\",verboseMode:\"@ddDropZoneVerboseMode\",currentIndex:\"@ddDropZoneCurrentIndex\",addNewLineFct:\"&ddDropZoneAddNewLine\"},restrict:\"A\",template:e,transclude:!0,link:function(e){var o=e.verboseMode,t=e.currentIndex;if(e.headerConfig={HeaderButtonVisible:!1,affixAttr:\"bs-affix\",affixEnabled:!1},\"\"!==o){var l=angular.lowercase(o);(\"true\"===l||\"1\"===l)&&console.dir({whoAmI:\"I am verbose from ddDecorDropZone link\",verbodeMode:l,ParentParentIndex:e.$parent.$parent.$index,ParentIndex:e.$parent.$index,currentIndex:t,styleParam:e.styleParam})}\"undefined\"!=typeof t&&\"\"!==t&&(\"undefined\"!=typeof e.styleParam.title&&(e.currentTitle=e.styleParam.title),\"undefined\"!=typeof e.styleParam.fontAwesomeIcon&&(e.currentFontAwesome=e.styleParam.fontAwesomeIcon),\"1\"===t&&(e.headerConfig.HeaderButtonVisible=!0))}}}]),angular.module(\"edaApp.directives.edaDdDecorItemDirective\",[]).directive(\"ddDecorItem\",[\"dragDropConfig\",function(e){var o=[\"
\",'
',\"
\"].join(\" \");return{scope:{verboseMode:\"@ddItemVerboseMode\",currentIndex:\"@ddItemCurrentIndex\",parentIndex:\"@ddItemParentIndex\",parentParentIndex:\"@ddItemParentParentIndex\",lineItemsCount:\"@ddItemsCount\",cssClass:\"@ddItemCssClass\"},restrict:\"A\",template:o,transclude:!0,link:function(o,t,l,n,i){var r=o.verboseMode,a=o.currentIndex,s=o.parentIndex,d=e.getDistinctItemCssClass();if(angular.forEach(d,function(e){t.removeClass(e)}),t.addClass(o.cssClass),o.$watch(\"cssClass\",function(e,o){e!==o&&(angular.forEach(d,function(e){t.removeClass(e)}),t.addClass(e))}),\"\"!==r){var c=angular.lowercase(r);(\"true\"===c||\"1\"===c)&&console.dir({whoAmI:\"I am verbose from ddDecorItem directive link\",verbodeMode:c,ParentParentIndex:o.$parent.$parent.$index,ParentIndex:s,parentParentIndex:o.parentParentIndex,currentIndex:a,lineItemsCount:o.lineItemsCount})}\"0\"===o.parentParentIndex&&t.addClass(d[0]),i(o.$parent,function(e){var o=angular.element(t.children()[0]);o.append(e)})}}}]),angular.module(\"edaApp.directives.edaDdDecorLineDirective\",[]).directive(\"ddDecorLine\",[\"$timeout\",function(e){var o=['
',' ',\"
\",'
'].join(\" \");return{scope:{verboseMode:\"@ddLineVerboseMode\",currentIndex:\"@ddLineCurrentIndex\",parentIndex:\"@ddLineParentIndex\",removeLine:\"&ddRemoveLine\"},restrict:\"A\",template:o,transclude:!0,link:function(o,t,l,n,i){var r=o.verboseMode,a=o.currentIndex,s=o.parentIndex;if(o.deleteLine={},o.deleteLine.readyToDelete=!1,o.deleteLine.dblClickCount=0,o.isCollapsed=!1,\"\"!==r){var d=angular.lowercase(r);(\"true\"===d||\"1\"===d)&&console.dir({whoAmI:\"I am verbose from ddDecorLine directive link\",verbodeMode:d,ParentParentIndex:o.$parent.$parent.$index,ParentIndex:s,currentIndex:a})}o.removeMe=function(t){t.preventDefault(),t.stopPropagation(),\"1\"===o.parentIndex&&(1===o.deleteLine.dblClickCount&&(o.deleteLine.dblClickCount=0,o.deleteLine.readyToDelete=!1,o.removeLine(),e.cancel(c)),0===o.deleteLine.dblClickCount&&(o.deleteLine.dblClickCount=o.deleteLine.dblClickCount+1,o.deleteLine.readyToDelete=!0))};var c;o.cancelDelete=function(t){c=e(function(){o.deleteLine.dblClickCount=0,o.deleteLine.readyToDelete=!1},500)},o.$on(\"$destroy\",function(){e.cancel(c)}),i(o.$parent,function(e){var o=angular.element(t.children()[0]);o.append(e)})}}}]),angular.module(\"edaApp.directives.edaDdNoEditableControlDirective\",[]).directive(\"ddNoEditableControl\",[function(){return{restrict:\"A\",link:function(e,o){o.on(\"click\",function(e){e.preventDefault()})}}}]),angular.module(\"edaApp.directives\",[\"edaApp.directives.edaStRationDirective\",\"edaApp.directives.edaDdDecorDropZoneDirective\",\"edaApp.directives.edaDdDecorContainerDirective\",\"edaApp.directives.edaDdDecorLineDirective\",\"edaApp.directives.edaDdDecorItemDirective\",\"edaApp.directives.edaDdNoEditableControlDirective\",\"edaApp.directives.edaDdContentCounterDirective\",\"edaApp.directives.edaRightClickDirective\"]),angular.module(\"edaApp.directives.edaRightClickDirective\",[]).directive(\"edaRightClick\",[\"$parse\",function(e){return{restrict:\"A\",link:function(o,t,l){var n=e(l.edaRightClick),i=e(l.edaRightClickColIndex),r=e(l.edaSetRightClicked);t.on(\"contextmenu\",function(e){o.$apply(function(){e.preventDefault(),1===i(o)&&r(o,{}),1===i(o)&&n(o,{$event:e})})})}}}]),angular.module(\"edaApp.directives.edaStRationDirective\",[]).directive(\"stRatio\",[function(){return{restrict:\"A\",link:function(e,o,t){var l=+t.stRatio;o.css(\"width\",l+\"%\")}}}]),angular.module(\"edaApp.services.dragDropItemCountersService\",[]).factory(\"dragDropItemCounterService\",[\"dragDropConfig\",function(e){var o=[],t=angular.copy(e.getItemsNotToCount()),l={};return l.getItemsNotToCount=function(){return t},l.getModelItemsRealCounter=function(){return o},l.isHtmlElementToCount=function(e){var o=!0;return e.length>0&&angular.forEach(t,function(t){for(var l=e.length-1;l>=0;l--)e[l]===t&&(o&=!1)}),o},l.updateLineItemCss=function(o,t,l,n,i){if(\"undefined\"!=typeof o&&\"undefined\"!=typeof t&&\"undefined\"!=typeof l&&\"undefined\"!=typeof n&&\"undefined\"!=typeof i){for(var r=o[l][n].length-1;r>=0;r--)for(var a=0;a=0;r--)o[t][l][r].cssClass=e.getItemCssDependingNumberItemsInRow(n);return!0}return!1},t.updateCssClassWholeColumn=function(o,t){if(\"undefined\"!=typeof t&&\"undefined\"!=typeof o){for(var l=o[t].length-1;l>=0;l--)for(var n=o[t][l].length-1;n>=0;n--)o[t][l][n].cssClass=e.getItemCssDependingNumberItemsInRow(o[t][l].length);return!0}return!1},t}]),angular.module(\"edaApp.services.dragDropModelConfigModelProxyService\",[]).factory(\"ddModelConfModelProxyService\",[\"EasyFormGenFormlyBindingModels\",\"controllerModalProxy\",\"$parse\",function(e,o,t){function l(o){var l={},n=e.getEasyFormListControls(),i=t(\"controls\");return angular.forEach(i(n),function(e){e.id===o.control&&(l=e)}),l}function n(e,o){for(var t=!0,l=o.lines.length-1;l>=0;l--)for(var n=o.lines[l].columns.length-1;n>=0;n--)\"undefined\"!=typeof o.lines[l].columns[n].control&&o.lines[l].columns[n].control.key===e&&(t=!1);return t}function i(e,o){var t=e+\"-\"+Date.now();return n(t,o)===!0?t:(t=e+\"-\"+Date.now(),n(t,o)===!0?t:t=e+\"-\"+Date.now())}function r(e,o,t){angular.forEach(t.lines,function(t,l){l===o&&(t.line=e)})}function a(e,o,l){t(\"control.selectedControl\").assign(o,t(\"selectedControl\")(e)),t(\"control.type\").assign(o,t(\"formlyType\")(e)),t(\"control.key\").assign(o,i(t(\"control.type\")(o),l)),t(\"control.subtype\").assign(o,t(\"formlySubtype\")(e)),t(\"control.templateOptions.label\").assign(o,t(\"formlyLabel\")(e)),t(\"control.templateOptions.required\").assign(o,t(\"formlyRequired\")(e)),t(\"control.templateOptions.description\").assign(o,t(\"formlyDesciption\")(e)),t(\"control.templateOptions.placeholder\").assign(o,t(\"formlyPlaceholder\")(e)),t(\"control.templateOptions.options\").assign(o,t(\"formlyOptions\")(e)),\"datepicker\"===t(\"control.type\")(o)&&t(\"control.templateOptions.datepickerPopup\").assign(o,t(\"datepickerPopup\")(e))}var s={};return s.refreshAllConfigurationFromDragAndDropModel=function(o,t){angular.copy(o);return o.lines=[],angular.forEach(t[1],function(t,n){o.lines.push(angular.copy(e.getEasyFormEmptyConfigurationLineModel())),r(n+1,n,o),angular.forEach(t,function(i,r){var s={control:angular.copy(e.getFormlyControlTemplateForNcolumnLine(t.length,l(t[r]).formlyType))},d=l(t[r]);if(\"undefined\"!=typeof i.key){console.warn(\"debug dragdropModel show this control key : \"+i.key),s.control=angular.copy(i.configModelControl);var c=e.getFormlyControlTemplateForNcolumnLine(t.length,l(t[r]).formlyType);s.control.className=c.className,s.control.cssClass=c.className}else a(d,s,o);\"undefined\"==typeof o.lines[n].columns[r]&&o.lines[n].columns.push(angular.copy(e.getEasyFormConfigurationEmptyControlModel())),o.lines[n].columns[r].control=angular.copy(s.control),o.lines[n].columns[r].numColumn=r+1,o.lines[n].columns[r].exist=!0})}),o},s.refreshControlsKeys=function(e,o){angular.forEach(e.lines,function(e,t){angular.forEach(e.columns,function(e,l){\"undefined\"!=typeof o[1][t]&&o[1][t].length>0&&(o[1][t][l].key=e.control.key,o[1][t][l].configModelControl=angular.copy(e.control))})}),console.info(\"refreshControlsKeys\"),console.dir({when:\"starting\",\"configModel is \":angular.copy(e),\"dragDropModel is \":angular.copy(o)})},s}]),angular.module(\"edaApp.services.edaEditCtrlControllerModalProxy\",[]).factory(\"controllerModalProxy\",[\"EasyFormGenFormlyBindingModels\",function(e){function o(o){var t=e.getEasyFormListControls();return angular.copy(t,o),!0}function t(){var o=e.getEasyFormListControls();return r.proxyModel=angular.copy(o),!0}function l(e){for(var o={selectedControl:\"none\",formlyType:\"none\",formlySubtype:\"none\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyPlaceholder:\"\",formlyOptions:[]},t=e.controls.length-1;t>=0;t--)e.selectedControl===e.controls[t].id&&(o.selectedControl=e.selectedControl,o.formlyType=e.controls[t].formlyType,o.formlySubtype=e.controls[t].formlySubtype,o.formlyLabel=e.controls[t].formlyLabel,o.formlyRequired=e.controls[t].formlyRequired,o.formlyDesciption=e.controls[t].formlyDesciption,o.formlyPlaceholder=e.controls[t].formlyPlaceholder,o.formlyOptions=e.controls[t].formlyOptions,\"datepicker\"===e.controls[t].formlyType&&(o.datepickerPopup=e.controls[t].datepickerPopup));return o}function n(e,o){for(var t=!0,l=o.lines.length-1;l>=0;l--)for(var n=o.lines[l].columns.length-1;n>=0;n--)o.lines[l].columns[n].control.key===e&&(t=!1);return t}function i(o){var t=\"none\",l=angular.copy(e.getEasyFormListControls().controls);return l.forEach(function(e){return e.formlyType===o.type&&e.formlySubtype===o.subtype?t=e.id:void 0}),t}var r={};r.ProxyModel={},t(),r.initNyaSelect=function(e){return o(e)},r.getNyASelectFromSelectedLineColumn=function(e,t,l,n){return o(e),\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions&&(e.temporyConfig.selectedControl=\"undefined\"!=typeof t.lines[l].columns[n].control.selectedControl?t.lines[l].columns[n].control.selectedControl:\"none\",e.temporyConfig.formlyLabel=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.label?t.lines[l].columns[n].control.templateOptions.label:\"\",e.temporyConfig.formlyRequired=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.required?t.lines[l].columns[n].control.templateOptions.required:\"\",e.temporyConfig.formlyDesciption=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.description?t.lines[l].columns[n].control.templateOptions.description:\"\",e.temporyConfig.formlyPlaceholder=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.placeholder?t.lines[l].columns[n].control.templateOptions.placeholder:\"\",e.temporyConfig.formlyOptions=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.options?t.lines[l].columns[n].control.templateOptions.options:\"\",\"Date\"===e.temporyConfig.selectedControl&&(e.temporyConfig.datepickerPopup=\"undefined\"!=typeof t.lines[l].columns[n].control.templateOptions.datepickerPopup?t.lines[l].columns[n].control.templateOptions.datepickerPopup:\"\")),e},r.bindConfigurationModelFromModalReturn=function(e,o,t,i){var r=l(t);i.lines[e].columns[o].control.selectedControl=r.selectedControl,i.lines[e].columns[o].control.type=r.formlyType,i.lines[e].columns[o].control.subtype=r.formlySubtype,i.lines[e].columns[o].control.templateOptions={label:\"\",required:!1,description:\"\",placeholder:\"\",options:[]},i.lines[e].columns[o].control.templateOptions.label=r.formlyLabel,i.lines[e].columns[o].control.templateOptions.required=r.formlyRequired,i.lines[e].columns[o].control.templateOptions.description=r.formlyDesciption,i.lines[e].columns[o].control.templateOptions.placeholder=r.formlyPlaceholder,i.lines[e].columns[o].control.templateOptions.options=r.formlyOptions,\"datepicker\"===i.lines[e].columns[o].control.type&&(i.lines[e].columns[o].control.templateOptions.datepickerPopup=r.datepickerPopup);var a=i.lines[e].columns[o].control.type+\"-\"+Date.now();n(a,i)===!0?i.lines[e].columns[o].control.key=a:(a=i.lines[e].columns[o].control.type+\"-\"+Date.now(),n(a,i)===!0?i.lines[e].columns[o].control.key=a:a=i.lines[e].columns[o].control.type+\"-\"+Date.now()),i.lines[e].columns[o].control.edited=!0},r.applyConfigToSelectedControl=function(e){for(var o=e.controls.length-1;o>=0;o--)e.controls[o].id===e.selectedControl&&(e.controls[o].formlyLabel=e.temporyConfig.formlyLabel,e.controls[o].formlyRequired=e.temporyConfig.formlyRequired,e.controls[o].formlyDesciption=e.temporyConfig.formlyDesciption,e.controls[o].formlyPlaceholder=e.temporyConfig.formlyPlaceholder,e.controls[o].formlyOptions=e.temporyConfig.formlyOptions,\"Date\"===e.controls[o].id&&(e.controls[o].datepickerPopup=e.temporyConfig.datepickerPopup))},r.initProxyModel=function(e){return t(e)},r.bindConfigurationModelFromProxyModel=function(e,o,t){var l=angular.copy(r.proxyModel.temporyConfig);console.warn(\"debug edaEditCtrlControllerModalProxy\"),console.dir(l),t.lines[e].columns[o].control.selectedControl=l.selectedControl,t.lines[e].columns[o].control.type=l.formlyType,t.lines[e].columns[o].control.subtype=l.formlySubtype,t.lines[e].columns[o].control.templateOptions={label:\"\",required:!1,description:\"\",placeholder:\"\",options:[]},t.lines[e].columns[o].control.templateOptions.label=l.formlyLabel,t.lines[e].columns[o].control.templateOptions.required=l.formlyRequired,t.lines[e].columns[o].control.templateOptions.description=l.formlyDesciption,t.lines[e].columns[o].control.templateOptions.placeholder=l.formlyPlaceholder,t.lines[e].columns[o].control.templateOptions.options=l.formlyOptions,\"datepicker\"===t.lines[e].columns[o].control.type&&(t.lines[e].columns[o].control.templateOptions.datepickerPopup=l.datepickerPopup);var i=t.lines[e].columns[o].control.type+\"-\"+Date.now();n(i,t)===!0?t.lines[e].columns[o].control.key=i:(i=t.lines[e].columns[o].control.type+\"-\"+Date.now(),n(i,t)===!0?t.lines[e].columns[o].control.key=i:i=t.lines[e].columns[o].control.type+\"-\"+Date.now()),t.lines[e].columns[o].control.edited=!0},r.setProxyModelFromConfigurationSelection=function(e,o,t){return\"undefined\"!=typeof e.lines[o].columns[t].control&&(r.proxyModel.selectedControl=\"undefined\"!=typeof e.lines[o].columns[t].control.type?i(e.lines[o].columns[t].control):\"none\",r.proxyModel.temporyConfig.selectedControl=\"undefined\"!=typeof e.lines[o].columns[t].control.type?i(e.lines[o].columns[t].control):\"none\",r.proxyModel.temporyConfig.formlyType=\"undefined\"!=typeof e.lines[o].columns[t].control.type?e.lines[o].columns[t].control.type:\"none\",r.proxyModel.temporyConfig.formlySubtype=\"undefined\"!=typeof e.lines[o].columns[t].control.subtype?e.lines[o].columns[t].control.subtype:\"none\",r.proxyModel.temporyConfig.formlyLabel=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.label?e.lines[o].columns[t].control.templateOptions.label:\"\",r.proxyModel.temporyConfig.formlyRequired=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.required?e.lines[o].columns[t].control.templateOptions.required:\"\",r.proxyModel.temporyConfig.formlyDesciption=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.description?e.lines[o].columns[t].control.templateOptions.description:\"\",r.proxyModel.temporyConfig.formlyPlaceholder=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.placeholder?e.lines[o].columns[t].control.templateOptions.placeholder:\"\",r.proxyModel.temporyConfig.formlyOptions=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.options?e.lines[o].columns[t].control.templateOptions.options:\"\",\"Date\"===r.proxyModel.temporyConfig.selectedControl&&(r.proxyModel.temporyConfig.datepickerPopup=\"undefined\"!=typeof e.lines[o].columns[t].control.templateOptions.datepickerPopup?e.lines[o].columns[t].control.templateOptions.datepickerPopup:\"\")),r.proxyModel},r.getProxyModel=function(){return r.proxyModel};var a={toggle:!1,lineIndex:-1,columnIndex:-1,control:{}};r.getEditPanelModelAllModel=function(){return a},r.setEditPanelModelControl=function(e){var o=!1;return\"undefined\"!=typeof e&&(a=angular.copy(e),o=!0),o},r.getEditPanelModelColumnIndex=function(){return a.columnIndex},r.setEditPanelModelColumnIndex=function(e){var o=!1;return\"undefined\"!=typeof e&&(a.columnIndex=e,o=!0),o},r.getEditPanelModelLineIndex=function(){return a.lineIndex},r.setEditPanelModelLineIndex=function(e){var o=!1;return\"undefined\"!=typeof e&&(a.lineIndex=e,o=!0),o},r.getEditPanelModelControl=function(){return a.control},r.setEditPanelModelControl=function(e){var o=!1;return\"undefined\"!=typeof e&&(a.control=angular.copy(e),o=!0),o},r.getEditPanelModelToggle=function(){return a.toggle},r.setEditPanelModelToggle=function(e){var o=!1;return\"undefined\"!=typeof e&&(a.toggle=e,o=!0),o};var s={rows:[]};return r.basicSelectRowCollection=angular.copy(s),r.newOptionBasicSelect=angular.copy({saisie:\"\"}),r.groupedSelectRowCollection=angular.copy(s),r.newOptionGroupedSelect=angular.copy({saisie:\"\"}),r.GroupedSelectGroups=angular.copy({list:[]}),r.newGroupGroupedSelect=angular.copy({saisie:\"\"}),r.groupSelectGroupClick=angular.copy({showList:!1}),r.radioRowCollection=angular.copy(s),r.newOptionRadio=angular.copy({saisie:\"\"}),r.resetAllTemporyModels=function(){return r.basicSelectRowCollection=angular.copy(s),r.newOptionBasicSelect=angular.copy({saisie:\"\"}),r.groupedSelectRowCollection=angular.copy(s),r.newOptionGroupedSelect=angular.copy({saisie:\"\"}),r.GroupedSelectGroups=angular.copy({list:[]}),r.newGroupGroupedSelect=angular.copy({saisie:\"\"}),r.groupSelectGroupClick=angular.copy({showList:!1}),r.radioRowCollection=angular.copy(s),r.newOptionRadio=angular.copy({saisie:\"\"}),!0},r.bindSpecialCtrlTemporyModelsToProxyModel=function(){\n\"BasicSelect\"===r.proxyModel.selectedControl&&r.bindBasicSelectToProxyModel(r.basicSelectRowCollection),\"GroupedSelect\"===r.proxyModel.selectedControl&&r.bindGroupedSelectToProxyModel(r.groupedSelectRowCollection),\"Radio\"===r.proxyModel.selectedControl&&r.bindRadioToProxyModel(r.radioRowCollection)},r.bindBasicSelectFromProxyModel=function(e){if(r.proxyModel.temporyConfig.formlyOptions.length>0)for(var o=0;o<=r.proxyModel.temporyConfig.formlyOptions.length-1;o++){var t={option:r.proxyModel.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.rows.push(t)}},r.bindBasicSelectToProxyModel=function(e){var o=[];if(r.proxyModel.temporyConfig.formlyOptions=o,e.rows.length>0)for(var t=0;t<=e.rows.length-1;t++){var l={name:e.rows[t].option,value:t,group:\"\"};r.proxyModel.temporyConfig.formlyOptions.push(l)}},r.bindGroupedSelectFromProxyModel=function(e,o){if(r.proxyModel.temporyConfig.formlyOptions.length>0){for(var t=0;t<=r.proxyModel.temporyConfig.formlyOptions.length-1;t++){var l={option:r.proxyModel.temporyConfig.formlyOptions[t].name,order:t,group:r.proxyModel.temporyConfig.formlyOptions[t].group};e.rows.push(l)}var n=_.uniq(_.pluck(e.rows,\"group\"));angular.copy(n,o.list)}},r.bindGroupedSelectToProxyModel=function(e){r.proxyModel.temporyConfig.formlyOptions=[];for(var o=0;o<=e.rows.length-1;o++){var t={name:e.rows[o].option,value:o,group:e.rows[o].group};r.proxyModel.temporyConfig.formlyOptions.push(t)}},r.bindRadioFromProxyModel=function(e){if(r.proxyModel.temporyConfig.formlyOptions.length>0)for(var o=0;o<=r.proxyModel.temporyConfig.formlyOptions.length-1;o++){var t={option:r.proxyModel.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.rows.push(t)}},r.bindRadioToProxyModel=function(e){var o=[];if(r.proxyModel.temporyConfig.formlyOptions=o,e.rows.length>0)for(var t=0;t<=e.rows.length-1;t++){var l={name:e.rows[t].option,value:t,group:\"\"};r.proxyModel.temporyConfig.formlyOptions.push(l)}},r}]),angular.module(\"edaApp.services.formFieldManage\",[]).factory(\"formFieldManage\",[\"EasyFormGenFormlyBindingModels\",function(e){function o(e){var o=[];angular.copy(o,e)}function t(o,t,l){var n=t.lines[l].columns.length,i=o.push({className:\"row\",fieldGroup:[]})-1;t.lines[l].columns.forEach(function(t,l){var r={};if(\"undefined\"!=typeof r&&\"none\"!==t.control.type){if(\"header\"===t.control.type||\"subTitle\"===t.control.type){var a=t.control.templateOptions.description;r.template=e.getHeaderTemplateForNcolumnLine(n,a).template,r.className=e.getRawHeaderTemplates().selectedClass}else r=e.getFormlyControlTemplateForNcolumnLine(n,t.control.type),r.className=t.control.className,r.type=t.control.type,r.key=t.control.key,r.templateOptions.type=t.control.templateOptions.type,r.templateOptions.label=t.control.templateOptions.label,r.templateOptions.required=t.control.templateOptions.required,r.templateOptions.placeholder=t.control.templateOptions.placeholder,r.templateOptions.description=t.control.templateOptions.description,r.templateOptions.options=[].concat(t.control.templateOptions.options),\"undefined\"!=typeof r.templateOptions.datepickerPopup&&(t.control.templateOptions.datepickerPopup=r.templateOptions.datepickerPopup);o[i].fieldGroup.push(r)}})}function l(e){var o={};return angular.copy(o,e),!0}function n(e,o){var t={noError:!1,title:\"\",Message:\"\"};return t.noError=!1,t.title=e,t.Message=o,t}function i(e,o){var t={noError:!1,title:\"\",Message:\"\"};return t.noError=!0,t.title=e,t.Message=o,t}var r={};return r.initConfigurationEditFromScratch=function(o,t){var l=e.getEasyFormInitialStateConfigurationModel(t);angular.copy(l,o)},r.bindConfigurationLines=function(o,t,l){if(\"[object Array]\"===Object.prototype.toString.call(t)){var r=e.getEasyFormReloadConfigurationModel(l);return r.lines=[].concat(t),angular.copy(r,o),i(\"configuration model is bound\",\"lines are bound to configuration model.\")}return n(\"lines is not an array\",\"Checks lines type, it is not an array.\")},r.applyConfigurationToformlyModel=function(e,n,i){o(n),l(i);for(var r=e.lines.length,a=0;r>a;a++)t(n,e,a)},r}]),angular.module(\"edaApp.services.formsByIdService\",[\"ngResource\"]).factory(\"formsByIdService\",[\"$resource\",function(e){return e(\"/api/formGen/:id\",{id:\"@id\"},{})}]),angular.module(\"edaApp.services.selectOptionManage\",[]).factory(\"selectOptionManage\",[function(){function e(e,o){var t={resultFlag:!1,details:\"\"};if(\"undefined\"==typeof o)return t.resultFlag=!1,t.details=\"Entered option is empty\",t;if(\"\"!==o){for(var l=e.rows.length-1;l>=0;l--)if(e.rows[l].option===o)return t.resultFlag=!1,t.details=\"Entered option is not unique\",t;return t.resultFlag=!0,t.details=\"\",t}return t.resultFlag=!1,t.details=\"Entered option is empty\",t}function o(e){var o={rows:[]};angular.copy(o,e)}return{testMe:function(){return\"selectOptionManage is here.\"},initModel:function(e){o(e)},isOptionUnique:function(e,o){for(var t=e.rows.length-1;t>=0;t--)if(e.rows[t].option===o)return!1;return!0},isOptionValidFormat:function(e){return\"\"!==e?!0:!1},addNewOptionRadio:function(o,t){var l={resultFlag:!1,details:\"\"},n=e(o,t);if(n.resultFlag===!0){var i={option:t,order:o.rows.length};return o.rows.push(i),l.resultFlag=!0,l.details=\"\",l}return angular.copy(n,l),l},addNewOptionBasicSelect:function(o,t){var l={resultFlag:!1,details:\"\"},n=e(o,t);if(n.resultFlag===!0){var i={option:t,order:o.rows.length};return o.rows.push(i),l.resultFlag=!0,l.details=\"\",l}return angular.copy(n,l),l},addNewOptionGroupedSelect:function(o,t,l){var n={resultFlag:!1,details:\"\"},i=e(o,t);if(i.resultFlag===!0){var r={option:t,group:l,order:o.rows.length};return o.rows.push(r),n.resultFlag=!0,n.details=\"\",n}return angular.copy(i,n),n},removeOption:function(e,o){var t={resultFlag:!1,details:\"\"};return-1!==o?(e.rows.splice(o,1),t.resultFlag=!0,t.details=\"\",t):(t.resultFlag=!1,t.details=\"Option index not valid\",t)},upthisOption:function(e,o){var t={resultFlag:!1,details:\"\"};if(o>-1){if(o>0){if(e.rows[o-1]){var l=e.rows[o];return e.rows.splice(o,1),e.rows.splice(o-1,0,l),t.resultFlag=!0,t.details=\"\",t}return t.resultFlag=!1,t.details=\"Can't retreive option from option index\",t}return t.resultFlag=!0,t.details=\"\",t}return t.resultFlag=!1,t.details=\"Option index not valid\",t},downthisOption:function(e,o){var t={resultFlag:!1,details:\"\"};if(o>-1){if(o'}),e.setType({name:"blank",template:"
"});var l='

{{options.templateOptions.placeholder}}


';e.setType({name:"subTitle",template:l});var t='
  1. {{option.name}}
';e.setType({name:"basicSelect",template:t});var n='
  1. {{$group}} {{option.name}}
';e.setType({name:"groupedSelect",template:n});var i=["date-disabled","custom-class","show-weeks","starting-day","init-date","min-mode","max-mode","format-day","format-month","format-year","format-day-header","format-day-title","format-month-title","year-range","shortcut-propagation","datepicker-popup","show-button-bar","current-text","clear-text","close-text","close-on-date-selection","datepicker-append-to-body"],s=["datepicker-mode","min-date","max-date"],a={};angular.forEach(i,function(e){a[o(e)]={attribute:e}}),angular.forEach(s,function(e){a[o(e)]={bound:e}}),e.setType({name:"datepicker",template:'',wrapper:["bootstrapLabel","bootstrapHasError"],controller:["$scope",function(e){e.open=function(o){o.preventDefault(),o.stopPropagation(),e.opened=!0}}],defaultOptions:{ngModelAttrs:a,templateOptions:{addonLeft:{"class":"glyphicon glyphicon-calendar",onClick:function(e,o){e.templateOptions.isOpen=!e.templateOptions.isOpen}},onFocus:function(e,o,l){l.to.isOpen=!l.to.isOpen},datepickerOptions:{}}}}),e.setWrapper([{template:['
"," ",'
','
','
'," {{message(options.formControl.$viewValue, options.formControl.$modelValue, this)}}","
","
","
"].join(" ")}])}angular.module("eda.easyformGen.stepway",["ngwfApp"]),angular.module("ngwfApp",["ngwfApp.core","ngwfApp.controllers","ngwfApp.services","ngwfApp.filters","ngwfApp.directives"]).value("easyFormGenVersion","v1.0.15").config(e),e.$inject=["formlyConfigProvider"]}(),angular.module("ngwfApp").run(["$templateCache",function(e){e.put("edaStepWayEasyFormGeneratorTemplate.html",'

lines

layout

controls

save

Command

Add a new line : 

Visual

Command

– Selected line –

number of columns :

{{configuration.lines[configuration.activeLine -1].columns.length}}

Visual

Command

– Apply controls to columns –


  Click / Tap on column to open control selection.

  Select desired control and valid to apply it to column.

Visual

 Command



 Final Step : form preview

DATA MODEL

\n										{{vm.model | json}}\n									

FIELDS MODEL (ready to save to database one)

\n										{{vm.wfFormFieldsOnlyNeededProperties | json}}\n									

Easy form generator : {{easyFormGeneratorVERSION}} — Erwan DATIN (MacKentoch)
'),e.put("editModalTemplate.html",''); +!function(){"use strict";!function(){function e(e){function o(e){return e=e.replace(/[\-_\s]+(.)?/g,function(e,o){return o?o.toUpperCase():""}),e.replace(/^([A-Z])/,function(e,o){return o?o.toLowerCase():""})}e.setType({name:"richEditor",template:''}),e.setType({name:"blank",template:"
"});var l='

{{options.templateOptions.placeholder}}


';e.setType({name:"subTitle",template:l});var t='
  1. {{option.name}}
';e.setType({name:"basicSelect",template:t});var n='
  1. {{$group}} {{option.name}}
';e.setType({name:"groupedSelect",template:n});var i=["date-disabled","custom-class","show-weeks","starting-day","init-date","min-mode","max-mode","format-day","format-month","format-year","format-day-header","format-day-title","format-month-title","year-range","shortcut-propagation","datepicker-popup","show-button-bar","current-text","clear-text","close-text","close-on-date-selection","datepicker-append-to-body"],s=["datepicker-mode","min-date","max-date"],a={};angular.forEach(i,function(e){a[o(e)]={attribute:e}}),angular.forEach(s,function(e){a[o(e)]={bound:e}}),e.setType({name:"datepicker",template:'',wrapper:["bootstrapLabel","bootstrapHasError"],controller:["$scope",function(e){e.open=function(o){o.preventDefault(),o.stopPropagation(),e.opened=!0}}],defaultOptions:{ngModelAttrs:a,templateOptions:{addonLeft:{"class":"glyphicon glyphicon-calendar",onClick:function(e,o){e.templateOptions.isOpen=!e.templateOptions.isOpen}},onFocus:function(e,o,l){l.to.isOpen=!l.to.isOpen},datepickerOptions:{}}}}),e.setWrapper([{template:['
"," ",'
','
','
'," {{message(options.formControl.$viewValue, options.formControl.$modelValue, this)}}","
","
","
"].join(" ")}])}angular.module("eda.easyformGen.stepway",["ngwfApp"]),angular.module("ngwfApp",["ngwfApp.core","ngwfApp.controllers","ngwfApp.services","ngwfApp.filters","ngwfApp.directives"]).value("easyFormGenVersion","v1.0.16").config(e),e.$inject=["formlyConfigProvider"]}(),angular.module("ngwfApp").run(["$templateCache",function(e){e.put("edaStepWayEasyFormGeneratorTemplate.html",'

lines

layout

controls

save

Command

Add a new line : 

Visual

Command

– Selected line –

number of columns :

{{configuration.lines[configuration.activeLine -1].columns.length}}

Visual

Command

– Apply controls to columns –


  Click / Tap on column to open control selection.

  Select desired control and valid to apply it to column.

Visual

 Command



 Final Step : form preview

DATA MODEL

\n										{{vm.model | json}}\n									

FIELDS MODEL (ready to save to database one)

\n										{{vm.wfFormFieldsOnlyNeededProperties | json}}\n									

Easy form generator : {{easyFormGeneratorVERSION}} — Erwan DATIN (MacKentoch)
'),e.put("editModalTemplate.html",''); }]),function(){angular.module("ngwfApp.core",["textAngular","textAngularSetup","ngAnimate","toaster","formly","formlyBootstrap","ui.bootstrap","nya.bootstrap.select"])}(),function(){angular.module("ngwfApp.controllers",["ngwfApp.controllers.ngwfMainController","ngwfApp.controllers.ngwfWfEditController","ngwfApp.controllers.ngwfWfEditMODALController"])}(),function(){function e(e,o){e.FormNameAsTest="initial_name",o(function(){e.FormNameAsTest="name changed after 3s"},3e3)}angular.module("ngwfApp.controllers.ngwfMainController",[]).controller("ngwfMainController",e),e.$inject=["$scope","$timeout"]}(),function(){function e(e,o,l,t,n,i,s,a,r,c,d){function p(){return{showDebug:!1,configurationModelNumberofLines:1}}function u(){return{editTab:{active:!0},previewTab:{active:!1}}}function m(o){var l=JSON.parse(o.formlyField);e.configurationLoaded={},c.bindConfigurationLines(e.configurationLoaded,l),c.applyConfigurationToformlyModel(e.configurationLoaded,e.previewLoadedForm.fieldsModel,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.previewLoadedForm.cancelButtonText=o.cancelButtonText,e.previewLoadedForm.submitButtonText=o.submitButtonText}function f(){i.pop({type:"info",timeout:2e3,title:"should save data model if it were not a static example",body:"data :"+t("json")(e.vm.model,4),showCloseButton:!0})}function v(){return{numColumn:-1,exist:!0,control:{type:"none",key:"none",subtype:"none"}}}function g(){return{line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}}function y(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()}function b(){return e.debug.configurationModelNumberofLines=e.configuration.lines.length,e.configuration.lines.length}function h(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)}function w(o){if(o>-1&&e.configuration.lines[o-1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function x(o){if(o>-1&&e.configuration.lines[o+1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function C(){e.configuration.lines.push({line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function S(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):s(function(){i.pop({type:"warning",title:"Last line",body:"Can't delete the last line",showCloseButton:!0})},100),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))}function T(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function L(){e.configuration.configStepCounter=0}function k(){var o=e.configuration.listConfigStep.length-1;e.configuration.configStepCounter!==o&&e.configuration.configStepCounter++,N(e.configuration.configStepCounter)}function O(){0!==e.configuration.configStepCounter&&e.configuration.configStepCounter--,N(e.configuration.configStepCounter)}function R(o){return o=0;o--)e.configuration.stepIndicators[o]=!1}function N(o){D(),e.configuration.stepIndicators[o]=!0}e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.vm.onSubmit=f,e.easyFormGeneratorVERSION=l,e.debug=p(),e.tab=u(),e.configuration={},e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.columnTemplate=v(),e.lineTemplate=g(),e.resetToZeroModel=y,e.countConfigurationModelLines=b,e.setActiveLineNumber=h,e.upThisLine=w,e.downThisLine=x,e.addNewline=C,e.removeThisLine=S,e.increaseNumberOfColumns=T,e.decreaseNumberOfColumns=F,e.resetStepCounter=L,e.nextConfigStep=k,e.previousConfigStep=O,e.stepReachable=R,e.toggleAnimation=E,e.nyaSelect={},e.animationsEnabled=!0,e.showModalAddCtrlToColumn=P,e.loadExistingFormsList=q(),e.formlyList={},e.previewLoadedForm={fieldsModel:[]},e.configurationLoaded={},e.previewExistingform=m,e.saveThisForm=M,q(),c.initConfigurationEditFromScratch(e.configuration),d.initNyaSelect(e.nyaSelect)}angular.module("ngwfApp.controllers.ngwfWfEditController",[]).controller("ngwfWfEditController",e),e.$inject=["$scope","$templateCache","easyFormGenVersion","$filter","$anchorScroll","toaster","$timeout","$modal","$log","formFieldManage","controllerModalProxy"]}(),function(){function e(e,o,l,t,n,i,s){function a(){var o=i.addNewOptionRadio(e.radioRowCollection,e.newOptionRadio.saisie);o.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionRadio.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionRadio={saisie:""}}function r(o){var l=i.removeOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Delete was cancelled.",showCloseButton:!0})}function c(o){var l=i.upthisOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function d(o){var l=i.downthisOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function p(){var o=i.addNewOptionBasicSelect(e.basicSelectRowCollection,e.newOptionBasicSelect.saisie);o.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionBasicSelect.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionBasicSelect={saisie:""}}function u(o){var l=i.removeOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Delete was cancelled.",showCloseButton:!0})}function m(o){var l=i.upthisOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function f(o){var l=i.downthisOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function v(){e.groupSelectGroupClick.showList=!e.groupSelectGroupClick.showList}function g(){if(""!==e.newGroupGroupedSelect.saisie){for(var o=e.GroupedSelectGroups.list.length-1;o>=0;o--)e.GroupedSelectGroups.list[o]===e.newGroupGroupedSelect.saisie&&t.pop({type:"warning",timeout:2e3,title:"Group already exists",body:"No group added.",showCloseButton:!0});e.GroupedSelectGroups.list.push(e.newGroupGroupedSelect.saisie)}else t.pop({type:"warning",timeout:2e3,title:"Not a valid group to add",body:"No group added.",showCloseButton:!0});e.newGroupGroupedSelect.saisie=""}function y(){var o=i.addNewOptionGroupedSelect(e.groupedSelectRowCollection,e.newOptionGroupedSelect.saisie,"");o.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:o.details,body:"'"+e.newOptionGroupedSelect.saisie+"' cannot be added.",showCloseButton:!0}),e.newOptionGroupedSelect={saisie:""}}function b(o){var l=i.removeOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Delete was cancelled.",showCloseButton:!0})}function h(o){var l=i.upthisOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function w(o){var l=i.downthisOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:"warning",timeout:2e3,title:l.details,body:"Operation cancelled.",showCloseButton:!0})}function x(){e.demodt.dt=new Date}function C(){e.demodt.dt=null}function S(o){o.preventDefault(),o.stopPropagation(),e.demodt.opened=!0}function T(){return{formatYear:"yy",startingDay:1,showWeeks:!0,initDate:null}}function F(o){e.nyaSelect.selectedControl="none",$();for(var l=e.nyaSelect.controls.length-1;l>=0;l--)e.nyaSelect.controls[l].id===o&&(e.nyaSelect.selectedControl=e.nyaSelect.controls[l].id);"Date"===e.nyaSelect.selectedControl&&D()}function L(){"BasicSelect"===e.nyaSelect.selectedControl&&E(),"GroupedSelect"===e.nyaSelect.selectedControl&&M(),"Radio"===e.nyaSelect.selectedControl&&R(),s.applyConfigToSelectedControl(e.nyaSelect),o.close(e.nyaSelect)}function k(){o.dismiss("cancel")}function O(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:""};e.radioRowCollection.rows.push(l)}}function R(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.radioRowCollection.rows.length>0)for(var l=0;l<=e.radioRowCollection.rows.length-1;l++){var t={name:e.radioRowCollection.rows[l].option,value:l,group:""};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function P(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:""};e.basicSelectRowCollection.rows.push(l)}}function E(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.basicSelectRowCollection.rows.length>0)for(var l=0;l<=e.basicSelectRowCollection.rows.length-1;l++){var t={name:e.basicSelectRowCollection.rows[l].option,value:l,group:""};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function q(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0){for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:e.nyaSelect.temporyConfig.formlyOptions[o].group};e.groupedSelectRowCollection.rows.push(l)}var t=_.uniq(_.pluck(e.groupedSelectRowCollection.rows,"group"));angular.copy(t,e.GroupedSelectGroups.list)}}function M(){e.nyaSelect.temporyConfig.formlyOptions=[];for(var o=0;o<=e.groupedSelectRowCollection.rows.length-1;o++){var l={name:e.groupedSelectRowCollection.rows[o].option,value:o,group:e.groupedSelectRowCollection.rows[o].group};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function D(){e.nyaSelect.temporyConfig.datepickerPopup=e.demodt.formats[0]}function N(){if("none"!==l.selectedControl){for(var o=e.nyaSelect.controls.length-1;o>=0;o--)e.nyaSelect.controls[o].id===l.selectedControl&&(e.modelNyaSelect=l.controls[o]);"BasicSelect"===e.nyaSelect.selectedControl&&P(),"GroupedSelect"===e.nyaSelect.selectedControl&&q(),"Radio"===e.nyaSelect.selectedControl&&O()}}function $(){e.nyaSelect.temporyConfig={formlyLabel:"",formlyRequired:!1,formlyPlaceholder:"",formlyDesciption:"",formlyOptions:[]}}var A={rows:[]};e.radioRowCollection=A,e.newOptionRadio={saisie:""},e.addNewOptionRadio=a,e.removeRadioRow=r,e.upThisRadioRow=c,e.downThisRadioRow=d,e.basicSelectRowCollection=A,e.newOptionBasicSelect={saisie:""},e.addNewOptionBasicSelect=p,e.removeRow=u,e.upThisRow=m,e.downThisRow=f,e.groupedSelectRowCollection=A,e.newOptionGroupedSelect={saisie:""},e.GroupedSelectGroups={list:[]},e.newGroupGroupedSelect={saisie:""},e.groupSelectGroupClick={showList:!1},e.showGroupListToChoose=v,e.addNewGroupToGroupedSelect=g,e.addNewOptionGroupedSelect=y,e.removeGroupedSelectRow=b,e.upThisGroupedSelectRow=h,e.downThisGroupedSelectRow=w,e.demodt={},e.today=x,e.clear=C,e.open=S,e.dateOptions=T(),e.demodt.formats=["dd-MMMM-yyyy","yyyy/MM/dd","dd.MM.yyyy","shortDate"],e.nyaSelect=l,e.nyaSelect.selectedControl=e.nyaSelect.temporyConfig.selectedControl,e.selectThisControl=F,e.ok=L,e.cancel=k,x(),N()}angular.module("ngwfApp.controllers.ngwfWfEditMODALController",[]).controller("ngwfWfEditMODALController",e),e.$inject=["$scope","$modalInstance","nyaSelect","toaster","$timeout","selectOptionManage","controllerModalProxy"]}(),function(){function e(e,o,l,t){function n(e,o,n){function i(){var o=angular.isArray(e.edaEasyFormGeneratorModel.edaFieldsModel)&&e.edaEasyFormGeneratorModel.edaFieldsModel.length>0?e.edaEasyFormGeneratorModel.edaFieldsModel:s();return o}function s(){var e=[{line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}];return e}function a(){var o=angular.isArray(e.edaEasyFormGeneratorModel.dataModel)&&e.edaEasyFormGeneratorModel.dataModel.length>0?e.edaEasyFormGeneratorModel.dataModel:[];return o}function r(){return e.edaEasyFormGeneratorModel}function c(e,o){u()}function d(){return e.returnSaveEvent}function p(o,l){if(o===!0){var t={formName:e.configuration.formName,btnSubmitText:e.configuration.submitButtonText,btnCancelText:e.configuration.cancelButtonText,edaFieldsModel:e.configuration.lines,edaFieldsModelStringified:angular.toJson(e.configuration.lines),formlyFieldsModel:e.vm.wfFormFieldsOnlyNeededProperties,dataModel:e.vm.model};e.edaSaveFormEvent({edaEasyFormGeneratorModel:t}),e.returnSaveEvent=!1}}function u(){if(angular.isDefined(e.edaEasyFormGeneratorModel)){var o=i();e.configurationLoaded={},l.bindConfigurationLines(e.configurationLoaded,o),t.refreshControlFormlyExpressionProperties(e.configurationLoaded),t.refreshControlFormlyValidators(e.configurationLoaded),t.refreshControlFormlyValidation(e.configurationLoaded),e.configuration=angular.copy(e.configurationLoaded),l.applyConfigurationToformlyModel(e.configurationLoaded,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.vm.model=a,e.configuration.formName=angular.isString(e.edaEasyFormGeneratorModel.formName)?e.edaEasyFormGeneratorModel.formName:"",e.configuration.submitButtonText=angular.isString(e.edaEasyFormGeneratorModel.btnSubmitText)?e.edaEasyFormGeneratorModel.btnSubmitText:"Submit",e.configuration.cancelButtonText=angular.isString(e.edaEasyFormGeneratorModel.btnCancelText)?e.edaEasyFormGeneratorModel.btnCancelText:"Cancel"}}e.$watch(r,c,!0),e.$watch(d,p)}function i(e,o,l,t,n,i,s,a,r,c,d){function p(){return{showDebug:!1,configurationModelNumberofLines:1}}function u(){return{editTab:{active:!0},previewTab:{active:!1}}}function m(o){var l=JSON.parse(o.formlyField);e.configurationLoaded={},c.bindConfigurationLines(e.configurationLoaded,l),c.applyConfigurationToformlyModel(e.configurationLoaded,e.previewLoadedForm.fieldsModel,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.previewLoadedForm.cancelButtonText=o.cancelButtonText,e.previewLoadedForm.submitButtonText=o.submitButtonText}function f(){i.pop({type:"info",timeout:2e3,title:"should save data model if it were not a static example",body:"data :"+t("json")(e.vm.model,4),showCloseButton:!0})}function v(){return{numColumn:-1,exist:!0,control:{type:"none",key:"none",subtype:"none"}}}function g(){return{line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}}function y(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()}function b(){return e.debug.configurationModelNumberofLines=e.configuration.lines.length,e.configuration.lines.length}function h(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)}function w(o){if(o>-1&&e.configuration.lines[o-1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function x(o){if(o>-1&&e.configuration.lines[o+1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function C(){e.configuration.lines.push({line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function S(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):s(function(){i.pop({type:"warning",title:"Last line",body:"Can't delete the last line",showCloseButton:!0})},100),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))}function T(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function L(){e.configuration.configStepCounter=0}function k(){var o=e.configuration.listConfigStep.length-1;e.configuration.configStepCounter!==o&&e.configuration.configStepCounter++,D(e.configuration.configStepCounter)}function O(){0!==e.configuration.configStepCounter&&e.configuration.configStepCounter--,D(e.configuration.configStepCounter)}function R(o){return o=0;o--)e.configuration.stepIndicators[o]=!1}function D(o){M(),e.configuration.stepIndicators[o]=!0}e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.vm.onSubmit=f,e.easyFormGeneratorVERSION=l,e.debug=p(),e.tab=u(),e.configuration={},e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.columnTemplate=v(),e.lineTemplate=g(),e.resetToZeroModel=y,e.countConfigurationModelLines=b,e.setActiveLineNumber=h,e.upThisLine=w,e.downThisLine=x,e.addNewline=C,e.removeThisLine=S,e.increaseNumberOfColumns=T,e.decreaseNumberOfColumns=F,e.resetStepCounter=L,e.nextConfigStep=k,e.previousConfigStep=O,e.stepReachable=R,e.toggleAnimation=E,e.nyaSelect={},e.animationsEnabled=!0,e.showModalAddCtrlToColumn=P,e.formlyList={},e.previewLoadedForm={fieldsModel:[]},e.configurationLoaded={},e.previewExistingform=m,e.saveThisForm=q,e.returnSaveEvent=!1,c.initConfigurationEditFromScratch(e.configuration),d.initNyaSelect(e.nyaSelect)}i.$inject=["$scope","$templateCache","easyFormGenVersion","$filter","$anchorScroll","toaster","$timeout","$modal","$log","formFieldManage","controllerModalProxy"];var s={restrict:"E",scope:{edaEasyFormGeneratorModel:"=",edaSaveFormEvent:"&edaSaveFormEvent"},controller:i,controllerAs:"vm",replace:!1,templateUrl:"edaStepWayEasyFormGeneratorTemplate.html",link:n};return s}angular.module("ngwfApp.directives.edaStepWayEasyFormGenDirective",[]).directive("edaStepWayEasyFormGen",e),e.$inject=["$templateCache","$timeout","formFieldManage","controllerModalProxy"]}(),function(){angular.module("ngwfApp.directives",["ngwfApp.directives.ngwfStRatioDirective","ngwfApp.directives.edaStepWayEasyFormGenDirective"])}(),function(){function e(){function e(e,o,l){var t=+l.stRatio;o.css("width",t+"%")}var o={link:e};return o}angular.module("ngwfApp.directives.ngwfStRatioDirective",[]).directive("stRatio",e),e.$inject=[]}(),function(){function e(){function e(e){return c(e)}function o(){var e={};return c(e),e}function l(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyExpressionProperties=o.formlyExpressionProperties)})})})}function t(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyValidators=o.formlyValidators)})})})}function n(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyValidation=o.formlyValidation)})})})}function i(e,o,l,t){return c(e),"undefined"!=typeof o.lines[l].columns[t].control.templateOptions&&(e.temporyConfig.selectedControl="undefined"!=typeof o.lines[l].columns[t].control.selectedControl?o.lines[l].columns[t].control.selectedControl:"none",e.temporyConfig.formlyLabel="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.label?o.lines[l].columns[t].control.templateOptions.label:"",e.temporyConfig.formlyRequired="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.required?o.lines[l].columns[t].control.templateOptions.required:"",e.temporyConfig.formlyDesciption="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.description?o.lines[l].columns[t].control.templateOptions.description:"",e.temporyConfig.formlyPlaceholder="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.placeholder?o.lines[l].columns[t].control.templateOptions.placeholder:"",e.temporyConfig.formlyOptions="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.options?o.lines[l].columns[t].control.templateOptions.options:"",e.temporyConfig.formlyExpressionProperties="undefined"!=typeof o.lines[l].columns[t].control.formlyExpressionProperties?angular.copy(o.lines[l].columns[t].control.formlyExpressionProperties):{},e.temporyConfig.formlyValidators="undefined"!=typeof o.lines[l].columns[t].control.formlyValidators?angular.copy(o.lines[l].columns[t].control.formlyValidators):{},e.temporyConfig.formlyValidation="undefined"!=typeof o.lines[l].columns[t].control.formlyValidation?angular.copy(o.lines[l].columns[t].control.formlyValidation):{},"Date"===e.temporyConfig.selectedControl&&(e.temporyConfig.datepickerPopup="undefined"!=typeof o.lines[l].columns[t].control.templateOptions.datepickerPopup?o.lines[l].columns[t].control.templateOptions.datepickerPopup:"")),e}function s(e,o,l,t){var n=d(l);t.lines[e].columns[o].control.selectedControl=n.selectedControl,t.lines[e].columns[o].control.type=n.formlyType,t.lines[e].columns[o].control.subtype=n.formlySubtype,t.lines[e].columns[o].control.templateOptions={label:"",required:!1,description:"",placeholder:"",options:[]},t.lines[e].columns[o].control.templateOptions.label=n.formlyLabel,t.lines[e].columns[o].control.templateOptions.required=n.formlyRequired,t.lines[e].columns[o].control.templateOptions.description=n.formlyDesciption,t.lines[e].columns[o].control.templateOptions.placeholder=n.formlyPlaceholder,t.lines[e].columns[o].control.templateOptions.options=n.formlyOptions,t.lines[e].columns[o].control.formlyExpressionProperties=angular.copy(n.formlyExpressionProperties),t.lines[e].columns[o].control.formlyValidators=angular.copy(n.formlyValidators),t.lines[e].columns[o].control.formlyValidation=angular.copy(n.formlyValidation),"datepicker"===t.lines[e].columns[o].control.type&&(t.lines[e].columns[o].control.templateOptions.datepickerPopup=n.datepickerPopup);var i=t.lines[e].columns[o].control.type+"-"+Date.now();p(i,t)===!0?t.lines[e].columns[o].control.key=i:(i=t.lines[e].columns[o].control.type+"-"+Date.now(),p(i,t)===!0?t.lines[e].columns[o].control.key=i:i=t.lines[e].columns[o].control.type+"-"+Date.now()),t.lines[e].columns[o].control.edited=!0}function a(e){for(var o=e.controls.length-1;o>=0;o--)e.controls[o].id===e.selectedControl&&(e.controls[o].formlyLabel=e.temporyConfig.formlyLabel,e.controls[o].formlyRequired=e.temporyConfig.formlyRequired,e.controls[o].formlyDesciption=e.temporyConfig.formlyDesciption,e.controls[o].formlyPlaceholder=e.temporyConfig.formlyPlaceholder,e.controls[o].formlyOptions=e.temporyConfig.formlyOptions,"Date"===e.controls[o].id&&(e.controls[o].datepickerPopup=e.temporyConfig.datepickerPopup))}function r(){return{formlyLabel:"",formlyRequired:!1,formlyPlaceholder:"",formlyDesciption:"",formlyOptions:[]}}function c(e){var o={controls:[{id:"empty",name:"no control",subtitle:"no control",group:"Blank",formlyType:"blank",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:"Header",name:"Header",subtitle:"no control",group:"Decoration",formlyType:"header",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:"Subtitle",name:"Subtitle",subtitle:"no control",group:"Decoration",formlyType:"subTitle",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:"TextInput",name:"Text input",subtitle:"Text input",group:"input",formlyType:"input",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Text input field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"Password",name:"Password",subtitle:"Password",group:"input",formlyType:"input",formlySubtype:"password",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Password field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"Email",name:"Email",subtitle:"Email",group:"input",formlyType:"input",formlySubtype:"email",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{emailShape:{expression:function(e,o){var l=o||e;return/^[a-z]+[a-z0-9._]+@[a-z]+\.[a-z.]{2,5}$/.test(l)},message:"$viewValue + ' is not a valid email'"}},formlyValidation:{messages:{required:function(e,o,l){var t="this Email field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return l.to.required?n:void 0}}}},{id:"Date",name:"Date",subtitle:"Date",group:"input",formlyType:"datepicker",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],datepickerPopup:"dd-MMMM-yyyy",formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Date field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"Texarea",name:"Textarea",subtitle:"Textarea",group:"Textarea",formlyType:"textarea",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Textarea field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"RichTextEditor",name:"RichTextEditor",subtitle:"RichTextEditor",group:"Textarea",formlyType:"richEditor",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this RichTextEditor field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"Radio",name:"Radio",subtitle:"Radio",options:[],group:"Radio",formlyType:"radio",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Password field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"Checkbox",name:"Checkbox",subtitle:"Checkbox",group:"Checkbox",formlyType:"checkbox",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{ messages:{required:function(e,o,l){var t="this Checkbox field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"BasicSelect",name:"Basic select",subtitle:"Basic select",options:[],group:"Select",formlyType:"basicSelect",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Basic select field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}},{id:"GroupedSelect",name:"Grouped Select",subtitle:"Grouped Select",options:[],group:"Select",formlyType:"groupedSelect",formlySubtype:"",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t="this Grouped Select field is required",n="undefined"!=typeof l.to.label&&""!==l.to.label?l.to.label+" is required":t;return n}}}}],selectedControl:"none",temporyConfig:{selectedControl:"none",formlyLabel:"label",formlyRequired:!1,formlyDesciption:"",formlyPlaceholder:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}}};return angular.copy(o,e),!0}function d(e){for(var o={selectedControl:"none",formlyType:"none",formlySubtype:"none",formlyLabel:"",formlyRequired:!1,formlyDesciption:"",formlyPlaceholder:"",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},l=e.controls.length-1;l>=0;l--)e.selectedControl===e.controls[l].id&&(o.selectedControl=e.selectedControl,o.formlyType=e.controls[l].formlyType,o.formlySubtype=e.controls[l].formlySubtype,o.formlyLabel=e.controls[l].formlyLabel,o.formlyRequired=e.controls[l].formlyRequired,o.formlyDesciption=e.controls[l].formlyDesciption,o.formlyPlaceholder=e.controls[l].formlyPlaceholder,o.formlyOptions=e.controls[l].formlyOptions,o.formlyExpressionProperties=angular.copy(e.controls[l].formlyExpressionProperties),o.formlyValidators=angular.copy(e.controls[l].formlyValidators),o.formlyValidation=angular.copy(e.controls[l].formlyValidation),"datepicker"===e.controls[l].formlyType&&(o.datepickerPopup=e.controls[l].datepickerPopup));return o}function p(e,o){for(var l=!0,t=o.lines.length-1;t>=0;t--)for(var n=o.lines[t].columns.length-1;n>=0;n--)o.lines[t].columns[n].control.key===e&&(l=!1);return l}var u={initNyaSelect:e,getNyASelectFromSelectedLineColumn:i,bindConfigurationModelFromModalReturn:s,applyConfigToSelectedControl:a,resetTemporyConfig:r,getControlsDefinition:o,refreshControlFormlyExpressionProperties:l,refreshControlFormlyValidators:t,refreshControlFormlyValidation:n};return u}angular.module("ngwfApp.services.ngwfEditCtrlControllerModalProxy",[]).factory("controllerModalProxy",e),e.$inject=[]}(),function(){function e(){function e(e){var o={activeLine:1,listConfigStep:["init","first","second","third"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0,submitButtonText:"submit",cancelButtonText:"cancel",lines:[{line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:"none",key:"none"}}]}]};angular.copy(o,e)}function o(e,o){if("[object Array]"===Object.prototype.toString.call(o)){var l={activeLine:1,listConfigStep:["init","first","second","third"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0,submitButtonText:"submit",cancelButtonText:"cancel",lines:[]};return l.lines=[].concat(o),angular.copy(l,e),x("configuration model is bound","lines are bound to configuration model.")}return w("lines is not an array","Checks lines type, it is not an array.")}function l(e,o,l){t(o),h(l);for(var i=e.lines.length,c=0;i>c;c++)1===e.lines[c].columns.length&&("header"===e.lines[c].columns[0].control.type?n(o,e,c):s(o,e,c)),2===e.lines[c].columns.length&&a(o,e,c),3===e.lines[c].columns.length&&r(o,e,c)}function t(e){var o=[];angular.copy(o,e)}function n(e,o,l){var t='

'+b(o.lines[l].columns[0].control)+"


";e.push({template:"undefined"!=typeof o.lines[l].columns[0].control.type&&"header"===o.lines[l].columns[0].control.type?t:"
"})}function i(e,o,l){e.templateOptions.datepickerPopup=d(o.lines[l].columns[0].control)}function s(e,o,l){var t={className:"col-xs-12",type:"undefined"!=typeof o.lines[l].columns[0].control.type?"none"===o.lines[l].columns[0].control.type?"blank":o.lines[l].columns[0].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};"datepicker"===o.lines[l].columns[0].control.type&&i(t,o,l),e.push(t)}function a(e,o,l){var t={className:"col-xs-6",template:'

'+b(o.lines[l].columns[0].control)+"


"},n={className:"col-xs-6",template:'

'+b(o.lines[l].columns[1].control)+"


"},s={className:"col-xs-6",type:"undefined"!=typeof o.lines[l].columns[0].control.type?"none"===o.lines[l].columns[0].control.type?"blank":o.lines[l].columns[0].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};"datepicker"===o.lines[l].columns[0].control.type&&i(s,o,l);var a={className:"col-xs-6",type:"undefined"!=typeof o.lines[l].columns[1].control.type?"none"===o.lines[l].columns[1].control.type?"blank":o.lines[l].columns[1].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[1].control.key?o.lines[l].columns[1].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[1].control),label:c(o.lines[l].columns[1].control),required:f(o.lines[l].columns[1].control),placeholder:y(o.lines[l].columns[1].control),description:b(o.lines[l].columns[1].control),options:v(o.lines[l].columns[1].control)},expressionProperties:p(o.lines[l].columns[1].control),validators:u(o.lines[l].columns[1].control),validation:m(o.lines[l].columns[1].control)};"datepicker"===o.lines[l].columns[1].control.type&&i(a,o,l);var r=[];r.push("header"===o.lines[l].columns[0].control.type?t:s),r.push("header"===o.lines[l].columns[1].control.type?n:a),e.push({className:"row",fieldGroup:r})}function r(e,o,l){var t={className:"col-xs-4",template:'

'+b(o.lines[l].columns[0].control)+"


"},n={className:"col-xs-4",template:'

'+b(o.lines[l].columns[1].control)+"


"},s={className:"col-xs-4",template:'

'+b(o.lines[l].columns[2].control)+"


"},a={className:"col-xs-4",type:"undefined"!=typeof o.lines[l].columns[0].control.type?"none"===o.lines[l].columns[0].control.type?"blank":o.lines[l].columns[0].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};"datepicker"===o.lines[l].columns[0].control.type&&i(a,o,l);var r={className:"col-xs-4",type:"undefined"!=typeof o.lines[l].columns[1].control.type?"none"===o.lines[l].columns[1].control.type?"blank":o.lines[l].columns[1].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[1].control.key?o.lines[l].columns[1].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[1].control),label:c(o.lines[l].columns[1].control),required:f(o.lines[l].columns[1].control),placeholder:y(o.lines[l].columns[1].control),description:b(o.lines[l].columns[1].control),options:v(o.lines[l].columns[1].control)},expressionProperties:p(o.lines[l].columns[1].control),validators:u(o.lines[l].columns[1].control),validation:m(o.lines[l].columns[1].control)};"datepicker"===o.lines[l].columns[1].control.type&&i(r,o,l);var d={className:"col-xs-4",type:"undefined"!=typeof o.lines[l].columns[2].control.type?"none"===o.lines[l].columns[2].control.type?"blank":o.lines[l].columns[2].control.type:"blank",key:"undefined"!=typeof o.lines[l].columns[2].control.key?o.lines[l].columns[2].control.key:"blank"+Date.now(),templateOptions:{type:g(o.lines[l].columns[2].control),label:c(o.lines[l].columns[2].control),required:f(o.lines[l].columns[2].control),placeholder:y(o.lines[l].columns[2].control),description:b(o.lines[l].columns[2].control),options:v(o.lines[l].columns[2].control)},expressionProperties:p(o.lines[l].columns[2].control),validators:u(o.lines[l].columns[2].control),validation:m(o.lines[l].columns[2].control)};"datepicker"===o.lines[l].columns[2].control.type&&i(d,o,l);var h=[];h.push("header"===o.lines[l].columns[0].control.type?t:a),h.push("header"===o.lines[l].columns[1].control.type?n:r),h.push("header"===o.lines[l].columns[2].control.type?s:d),e.push({className:"row",fieldGroup:h})}function c(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.label?e.templateOptions.label:""}function d(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.datepickerPopup?e.templateOptions.datepickerPopup:""}function p(e){return"undefined"!=typeof e.formlyExpressionProperties?angular.copy(e.formlyExpressionProperties):{}}function u(e){return"undefined"!=typeof e.formlyValidators?angular.copy(e.formlyValidators):{}}function m(e){return"undefined"!=typeof e.formlyValidation?angular.copy(e.formlyValidation):{}}function f(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.required?e.templateOptions.required:""}function v(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.options?e.templateOptions.options:""}function g(e){return"undefined"!=typeof e.subtype?e.subtype:""}function y(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.placeholder?e.templateOptions.placeholder:""}function b(e){return"undefined"!=typeof e.templateOptions&&"undefined"!=typeof e.templateOptions.description?e.templateOptions.description:""}function h(e){var o={};return angular.copy(o,e),!0}function w(e,o){var l={noError:!1,title:"",Message:""};return l.noError=!1,l.title=e,l.Message=o,l}function x(e,o){var l={noError:!1,title:"",Message:""};return l.noError=!0,l.title=e,l.Message=o,l}var C={initConfigurationEditFromScratch:e,bindConfigurationLines:o,applyConfigurationToformlyModel:l};return C}angular.module("ngwfApp.services.formFieldManage",[]).factory("formFieldManage",e),e.$inject=[]}(),function(){function e(){function e(){return"selectOptionManage is here."}function o(e){p(e)}function l(e,o){for(var l=e.rows.length-1;l>=0;l--)if(e.rows[l].option===o)return!1;return!0}function t(e){return""!==e?!0:!1}function n(e,o){var l={resultFlag:!1,details:""},t=d(e,o);if(t.resultFlag===!0){var n={option:o,order:e.rows.length};return e.rows.push(n),l.resultFlag=!0,l.details="",l}return angular.copy(t,l),l}function i(e,o){var l={resultFlag:!1,details:""},t=d(e,o);if(t.resultFlag===!0){var n={option:o,order:e.rows.length};return e.rows.push(n),l.resultFlag=!0,l.details="",l}return angular.copy(t,l),l}function s(e,o,l){var t={resultFlag:!1,details:""},n=d(e,o);if(n.resultFlag===!0){var i={option:o,group:l,order:e.rows.length};return e.rows.push(i),t.resultFlag=!0,t.details="",t}return angular.copy(n,t),t}function a(e,o){var l={resultFlag:!1,details:""};return-1!==o?(e.rows.splice(o,1),l.resultFlag=!0,l.details="",l):(l.resultFlag=!1,l.details="Option index not valid",l)}function r(e,o){var l={resultFlag:!1,details:""};if(o>-1){if(o>0){if(e.rows[o-1]){var t=e.rows[o];return e.rows.splice(o,1),e.rows.splice(o-1,0,t),l.resultFlag=!0,l.details="",l}return l.resultFlag=!1,l.details="Can't retreive option from option index",l}return l.resultFlag=!0,l.details="",l}return l.resultFlag=!1,l.details="Option index not valid",l}function c(e,o){var l={resultFlag:!1,details:""};if(o>-1){if(o=0;t--)if(e.rows[t].option===o)return l.resultFlag=!1,l.details="Entered option is not unique",l;return l.resultFlag=!0,l.details="",l}return l.resultFlag=!1,l.details="Entered option is empty",l}function p(e){var o={rows:[]};angular.copy(o,e)}var u={testMe:e,initModel:o,isOptionUnique:l,isOptionValidFormat:t,addNewOptionRadio:n,addNewOptionBasicSelect:i,addNewOptionGroupedSelect:s,removeOption:a,upthisOption:r,downthisOption:c};return u}angular.module("ngwfApp.services.selectOptionManage",[]).factory("selectOptionManage",e),e.$inject=[]}(),function(){angular.module("ngwfApp.services",["ngwfApp.services.formFieldManage","ngwfApp.services.selectOptionManage","ngwfApp.services.ngwfEditCtrlControllerModalProxy"])}(),function(){angular.module("ngwfApp.filters",[])}()}(this); diff --git a/public/js/eda.stepway.min.js.map b/public/js/eda.stepway.min.js.map index adc45d59..d9bee44e 100644 --- a/public/js/eda.stepway.min.js.map +++ b/public/js/eda.stepway.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["eda.stepway.min.js"],"names":["configfct","formlyConfigProvider","camelize","string","replace","match","chr","toUpperCase","toLowerCase","setType","name","template","subTitleTemplate","basicSelectTemplate","groupedSelectTemplate","attributes","bindings","ngModelAttrs","angular","forEach","attr","attribute","binding","bound","wrapper","controller","$scope","open","$event","preventDefault","stopPropagation","opened","defaultOptions","templateOptions","addonLeft","class","onClick","options","scope","isOpen","onFocus","$viewValue","$modelValue","to","datepickerOptions","setWrapper","join","module","value","config","$inject","run","$templateCache","put","ngwfMainController","$timeout","FormNameAsTest","ngwfWfEditController","easyFormGenVersion","$filter","$anchorScroll","toaster","$modal","$log","formFieldManage","controllerModalProxy","initDebugModel","showDebug","configurationModelNumberofLines","initTabModel","editTab","active","previewTab","previewExistingform","formlyform","configlines","JSON","parse","formlyField","configurationLoaded","bindConfigurationLines","applyConfigurationToformlyModel","previewLoadedForm","fieldsModel","vm","model","wfFormFieldsOnlyNeededProperties","copy","wfFormFields","cancelButtonText","submitButtonText","onSubmit","pop","type","timeout","title","body","showCloseButton","initColumnTemplate","numColumn","exist","control","key","subtype","initLineTemplate","line","activeColumn","columns","resetToZeroModel","configuration","activeLine","lines","length","splice","countConfigurationModelLines","debug","setActiveLineNumber","lineNumber","upThisLine","indexLine","currentLineObj","downThisLine","addNewline","push","removeThisLine","index","increaseNumberOfColumns","MaxNumberOfColumns","newNumberOfColumns","decreaseNumberOfColumns","resetStepCounter","configStepCounter","nextConfigStep","configStepCounterMAX","listConfigStep","setTrueThisStepIndicator","previousConfigStep","stepReachable","indexStep","showModalAddCtrlToColumn","size","numcolumn","modalInstance","animation","animationsEnabled","templateUrl","resolve","nyaSelect","getNyASelectFromSelectedLineColumn","result","then","modalAddCtrlModel","bindConfigurationModelFromModalReturn","toggleAnimation","loadExistingFormsAsList","saveThisForm","formName","clear","resetAllIndicators","i","stepIndicators","indexIndicator","this","easyFormGeneratorVERSION","tab","numberOfColumns","MinNumberOfColumns","columnTemplate","lineTemplate","loadExistingFormsList","formlyList","initConfigurationEditFromScratch","initNyaSelect","ngwfWfEditMODALController","$modalInstance","selectOptionManage","addNewOptionRadio","radioRowCollection","newOptionRadio","saisie","resultFlag","details","removeRadioRow","removeOption","upThisRadioRow","upthisOption","downThisRadioRow","downthisOption","addNewOptionBasicSelect","basicSelectRowCollection","newOptionBasicSelect","removeRow","upThisRow","downThisRow","showGroupListToChoose","groupSelectGroupClick","showList","addNewGroupToGroupedSelect","newGroupGroupedSelect","GroupedSelectGroups","list","addNewOptionGroupedSelect","groupedSelectRowCollection","newOptionGroupedSelect","removeGroupedSelectRow","upThisGroupedSelectRow","downThisGroupedSelectRow","today","demodt","dt","Date","openfct","dateOptionsInit","formatYear","startingDay","showWeeks","initDate","selectThisControl","controlName","selectedControl","resetTemporyConfig","controls","id","initDatePicker","okfct","bindBasicSelectToNya","bindGroupedSelectToNya","bindRadioToNya","applyConfigToSelectedControl","close","cancelfct","dismiss","bindRadioFromNYA","temporyConfig","formlyOptions","newOption","option","order","group","rows","resetNyASelectOptions","bindBasicSelectFromNYA","bindGroupedSelectFromNYA","filteredgroup","_","uniq","pluck","datepickerPopup","formats","initNyaSelectConformingSelectedControl","modelNyaSelect","formlyLabel","formlyRequired","formlyPlaceholder","formlyDesciption","initOptionModel","dateOptions","ok","cancel","edaStepWayEasyFormGen","linkFct","element","attrs","returnAttributeConfigurationLinesIfNotEmpty","edaEasyFormGeneratorModelToReturn","isArray","edaEasyFormGeneratorModel","edaFieldsModel","emptyEdaFieldsModel","emptyModel","returnAttributeDataModelIfNotEmpty","dataModelToReturn","dataModel","watchEdaEasyFormModelExpression","watchEdaEasyFormModelHasChanged","newValue","oldValue","loadExistingConfigurationModel","watchReturnSaveEventExpression","returnSaveEvent","watchReturnSaveEventhasChanged","_easyFormGeneratorModel","btnSubmitText","btnCancelText","edaFieldsModelStringified","toJson","formlyFieldsModel","edaSaveFormEvent","isDefined","refreshControlFormlyExpressionProperties","refreshControlFormlyValidators","refreshControlFormlyValidation","isString","$watch","edaStepWayEasyFormGenCtrl","directive","restrict","controllerAs","link","stRatio","linkfct","ratio","css","nyaSelectObj","resetNyaSelect","getControlsDefinition","configurationModel","isObject","column","controlIndex","_controlsDefinition","aControl","aControlIndex","formlyType","formlySubtype","formlyExpressionProperties","formlyValidators","formlyValidation","configurationObj","label","required","description","placeholder","extractedProps","returnControlFromAddCtrlModalModel","newKey","now","validKeyUniqueness","edited","newNyaSelectObj","subtitle","messages","viewValue","modelValue","defaultReturnMsg","returnMsg","emailShape","expression","test","message","CtrlModalModel","modelToReturn","thisKey","isUnique","j","service","factory","configurationModelInit","Object","prototype","toString","call","configurationModelResult","concat","getMessageObject","getErrorObject","formlyModel","formlyDataModel","resetFormlyModel","resetDataModel","addOneColumnHeader","addOneColumnControl","addTwoColumnControl","addThreeColumnControl","resetformly","lineIndex","headerTemplateCol0","extractTemplateOptionDescription","addDatepickerPopupProperty","fieldToPush","extractTemplateOptionDatepickerPopup","className","extractTemplateOptionType","extractTemplateOptionLabel","extractTemplateOptionRequired","extractTemplateOptionPlaceholder","extractTemplateOptionOptions","expressionProperties","extractFormlyExpressionProperties","validators","extractFormlyValidators","validation","extractFormlyValidation","headerTemplateCol1","controlCol0","controlCol1","FieldGroup","fieldGroup","headerTemplateCol2","controlCol2","obj","emptyDataModel","errorTitle","errorMessage","messageObj","noError","Message","messageTitle","messageBody","testMe","initModel","selectObj","resetModel","isOptionUnique","textValue","isOptionValidFormat","newOptionText","fullResponse","checkResult","validOption","newOptionGroup","AtIndex","indexOption","currentOption","zeroModel"],"mappings":"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","file":"eda.stepway.min.js","sourcesContent":["!function(){\"use strict\";!function(){function e(e){function o(e){return e=e.replace(/[\\-_\\s]+(.)?/g,function(e,o){return o?o.toUpperCase():\"\"}),e.replace(/^([A-Z])/,function(e,o){return o?o.toLowerCase():\"\"})}e.setType({name:\"richEditor\",template:''}),e.setType({name:\"blank\",template:\"
\"});var l='

{{options.templateOptions.placeholder}}


';e.setType({name:\"subTitle\",template:l});var t='
  1. {{option.name}}
';e.setType({name:\"basicSelect\",template:t});var n='
  1. {{$group}} {{option.name}}
';e.setType({name:\"groupedSelect\",template:n});var i=[\"date-disabled\",\"custom-class\",\"show-weeks\",\"starting-day\",\"init-date\",\"min-mode\",\"max-mode\",\"format-day\",\"format-month\",\"format-year\",\"format-day-header\",\"format-day-title\",\"format-month-title\",\"year-range\",\"shortcut-propagation\",\"datepicker-popup\",\"show-button-bar\",\"current-text\",\"clear-text\",\"close-text\",\"close-on-date-selection\",\"datepicker-append-to-body\"],s=[\"datepicker-mode\",\"min-date\",\"max-date\"],a={};angular.forEach(i,function(e){a[o(e)]={attribute:e}}),angular.forEach(s,function(e){a[o(e)]={bound:e}}),e.setType({name:\"datepicker\",template:'',wrapper:[\"bootstrapLabel\",\"bootstrapHasError\"],controller:[\"$scope\",function(e){e.open=function(o){o.preventDefault(),o.stopPropagation(),e.opened=!0}}],defaultOptions:{ngModelAttrs:a,templateOptions:{addonLeft:{\"class\":\"glyphicon glyphicon-calendar\",onClick:function(e,o){e.templateOptions.isOpen=!e.templateOptions.isOpen}},onFocus:function(e,o,l){l.to.isOpen=!l.to.isOpen},datepickerOptions:{}}}}),e.setWrapper([{template:['
\",\" \",'
','
','
',\" {{message(options.formControl.$viewValue, options.formControl.$modelValue, this)}}\",\"
\",\"
\",\"
\"].join(\" \")}])}angular.module(\"eda.easyformGen.stepway\",[\"ngwfApp\"]),angular.module(\"ngwfApp\",[\"ngwfApp.core\",\"ngwfApp.controllers\",\"ngwfApp.services\",\"ngwfApp.filters\",\"ngwfApp.directives\"]).value(\"easyFormGenVersion\",\"v1.0.14\").config(e),e.$inject=[\"formlyConfigProvider\"]}(),angular.module(\"ngwfApp\").run([\"$templateCache\",function(e){e.put(\"edaStepWayEasyFormGeneratorTemplate.html\",'

lines

layout

controls

save

Command

Add a new line : 

Visual

  • 1\">
    1\">
    1\">

Command

– Selected line –

number of columns :

{{configuration.lines[configuration.activeLine -1].columns.length}}

Visual

  • 1\">
    1\">
    1\">

Command

– Apply controls to columns –


  Click / Tap on column to open control selection.

  Select desired control and valid to apply it to column.

Visual

  • 1\">
    1\">
    1\">

 Command



 Final Step : form preview

DATA MODEL

\\n\t\t\t\t\t\t\t\t\t\t{{vm.model | json}}\\n\t\t\t\t\t\t\t\t\t

FIELDS MODEL (ready to save to database one)

\\n\t\t\t\t\t\t\t\t\t\t{{vm.wfFormFieldsOnlyNeededProperties | json}}\\n\t\t\t\t\t\t\t\t\t

Easy form generator : {{easyFormGeneratorVERSION}} — Erwan DATIN (MacKentoch)
'),e.put(\"editModalTemplate.html\",'');\n\n}]),function(){angular.module(\"ngwfApp.core\",[\"textAngular\",\"textAngularSetup\",\"ngAnimate\",\"toaster\",\"formly\",\"formlyBootstrap\",\"ui.bootstrap\",\"nya.bootstrap.select\"])}(),function(){angular.module(\"ngwfApp.controllers\",[\"ngwfApp.controllers.ngwfMainController\",\"ngwfApp.controllers.ngwfWfEditController\",\"ngwfApp.controllers.ngwfWfEditMODALController\"])}(),function(){function e(e,o){e.FormNameAsTest=\"initial_name\",o(function(){e.FormNameAsTest=\"name changed after 3s\"},3e3)}angular.module(\"ngwfApp.controllers.ngwfMainController\",[]).controller(\"ngwfMainController\",e),e.$inject=[\"$scope\",\"$timeout\"]}(),function(){function e(e,o,l,t,n,i,s,a,r,c,d){function p(){return{showDebug:!1,configurationModelNumberofLines:1}}function u(){return{editTab:{active:!0},previewTab:{active:!1}}}function m(o){var l=JSON.parse(o.formlyField);e.configurationLoaded={},c.bindConfigurationLines(e.configurationLoaded,l),c.applyConfigurationToformlyModel(e.configurationLoaded,e.previewLoadedForm.fieldsModel,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.previewLoadedForm.cancelButtonText=o.cancelButtonText,e.previewLoadedForm.submitButtonText=o.submitButtonText}function f(){i.pop({type:\"info\",timeout:2e3,title:\"should save data model if it were not a static example\",body:\"data :\"+t(\"json\")(e.vm.model,4),showCloseButton:!0})}function v(){return{numColumn:-1,exist:!0,control:{type:\"none\",key:\"none\",subtype:\"none\"}}}function g(){return{line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}}function y(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()}function b(){return e.debug.configurationModelNumberofLines=e.configuration.lines.length,e.configuration.lines.length}function h(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)}function w(o){if(o>-1&&e.configuration.lines[o-1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function x(o){if(o>-1&&e.configuration.lines[o+1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function C(){e.configuration.lines.push({line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function S(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):s(function(){i.pop({type:\"warning\",title:\"Last line\",body:\"Can't delete the last line\",showCloseButton:!0})},100),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))}function T(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function L(){e.configuration.configStepCounter=0}function k(){var o=e.configuration.listConfigStep.length-1;e.configuration.configStepCounter!==o&&e.configuration.configStepCounter++,N(e.configuration.configStepCounter)}function O(){0!==e.configuration.configStepCounter&&e.configuration.configStepCounter--,N(e.configuration.configStepCounter)}function R(o){return o=0;o--)e.configuration.stepIndicators[o]=!1}function N(o){D(),e.configuration.stepIndicators[o]=!0}e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.vm.onSubmit=f,e.easyFormGeneratorVERSION=l,e.debug=p(),e.tab=u(),e.configuration={},e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.columnTemplate=v(),e.lineTemplate=g(),e.resetToZeroModel=y,e.countConfigurationModelLines=b,e.setActiveLineNumber=h,e.upThisLine=w,e.downThisLine=x,e.addNewline=C,e.removeThisLine=S,e.increaseNumberOfColumns=T,e.decreaseNumberOfColumns=F,e.resetStepCounter=L,e.nextConfigStep=k,e.previousConfigStep=O,e.stepReachable=R,e.toggleAnimation=E,e.nyaSelect={},e.animationsEnabled=!0,e.showModalAddCtrlToColumn=P,e.loadExistingFormsList=q(),e.formlyList={},e.previewLoadedForm={fieldsModel:[]},e.configurationLoaded={},e.previewExistingform=m,e.saveThisForm=M,q(),c.initConfigurationEditFromScratch(e.configuration),d.initNyaSelect(e.nyaSelect)}angular.module(\"ngwfApp.controllers.ngwfWfEditController\",[]).controller(\"ngwfWfEditController\",e),e.$inject=[\"$scope\",\"$templateCache\",\"easyFormGenVersion\",\"$filter\",\"$anchorScroll\",\"toaster\",\"$timeout\",\"$modal\",\"$log\",\"formFieldManage\",\"controllerModalProxy\"]}(),function(){function e(e,o,l,t,n,i,s){function a(){var o=i.addNewOptionRadio(e.radioRowCollection,e.newOptionRadio.saisie);o.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionRadio.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionRadio={saisie:\"\"}}function r(o){var l=i.removeOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Delete was cancelled.\",showCloseButton:!0})}function c(o){var l=i.upthisOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function d(o){var l=i.downthisOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function p(){var o=i.addNewOptionBasicSelect(e.basicSelectRowCollection,e.newOptionBasicSelect.saisie);o.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionBasicSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionBasicSelect={saisie:\"\"}}function u(o){var l=i.removeOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Delete was cancelled.\",showCloseButton:!0})}function m(o){var l=i.upthisOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function f(o){var l=i.downthisOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function v(){e.groupSelectGroupClick.showList=!e.groupSelectGroupClick.showList}function g(){if(\"\"!==e.newGroupGroupedSelect.saisie){for(var o=e.GroupedSelectGroups.list.length-1;o>=0;o--)e.GroupedSelectGroups.list[o]===e.newGroupGroupedSelect.saisie&&t.pop({type:\"warning\",timeout:2e3,title:\"Group already exists\",body:\"No group added.\",showCloseButton:!0});e.GroupedSelectGroups.list.push(e.newGroupGroupedSelect.saisie)}else t.pop({type:\"warning\",timeout:2e3,title:\"Not a valid group to add\",body:\"No group added.\",showCloseButton:!0});e.newGroupGroupedSelect.saisie=\"\"}function y(){var o=i.addNewOptionGroupedSelect(e.groupedSelectRowCollection,e.newOptionGroupedSelect.saisie,\"\");o.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionGroupedSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionGroupedSelect={saisie:\"\"}}function b(o){var l=i.removeOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Delete was cancelled.\",showCloseButton:!0})}function h(o){var l=i.upthisOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function w(o){var l=i.downthisOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function x(){e.demodt.dt=new Date}function C(){e.demodt.dt=null}function S(o){o.preventDefault(),o.stopPropagation(),e.demodt.opened=!0}function T(){return{formatYear:\"yy\",startingDay:1,showWeeks:!0,initDate:null}}function F(o){e.nyaSelect.selectedControl=\"none\",$();for(var l=e.nyaSelect.controls.length-1;l>=0;l--)e.nyaSelect.controls[l].id===o&&(e.nyaSelect.selectedControl=e.nyaSelect.controls[l].id);\"Date\"===e.nyaSelect.selectedControl&&D()}function L(){\"BasicSelect\"===e.nyaSelect.selectedControl&&E(),\"GroupedSelect\"===e.nyaSelect.selectedControl&&M(),\"Radio\"===e.nyaSelect.selectedControl&&R(),s.applyConfigToSelectedControl(e.nyaSelect),o.close(e.nyaSelect)}function k(){o.dismiss(\"cancel\")}function O(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.radioRowCollection.rows.push(l)}}function R(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.radioRowCollection.rows.length>0)for(var l=0;l<=e.radioRowCollection.rows.length-1;l++){var t={name:e.radioRowCollection.rows[l].option,value:l,group:\"\"};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function P(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.basicSelectRowCollection.rows.push(l)}}function E(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.basicSelectRowCollection.rows.length>0)for(var l=0;l<=e.basicSelectRowCollection.rows.length-1;l++){var t={name:e.basicSelectRowCollection.rows[l].option,value:l,group:\"\"};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function q(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0){for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:e.nyaSelect.temporyConfig.formlyOptions[o].group};e.groupedSelectRowCollection.rows.push(l)}var t=_.uniq(_.pluck(e.groupedSelectRowCollection.rows,\"group\"));angular.copy(t,e.GroupedSelectGroups.list)}}function M(){e.nyaSelect.temporyConfig.formlyOptions=[];for(var o=0;o<=e.groupedSelectRowCollection.rows.length-1;o++){var l={name:e.groupedSelectRowCollection.rows[o].option,value:o,group:e.groupedSelectRowCollection.rows[o].group};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function D(){e.nyaSelect.temporyConfig.datepickerPopup=e.demodt.formats[0]}function N(){if(\"none\"!==l.selectedControl){for(var o=e.nyaSelect.controls.length-1;o>=0;o--)e.nyaSelect.controls[o].id===l.selectedControl&&(e.modelNyaSelect=l.controls[o]);\"BasicSelect\"===e.nyaSelect.selectedControl&&P(),\"GroupedSelect\"===e.nyaSelect.selectedControl&&q(),\"Radio\"===e.nyaSelect.selectedControl&&O()}}function $(){e.nyaSelect.temporyConfig={formlyLabel:\"\",formlyRequired:!1,formlyPlaceholder:\"\",formlyDesciption:\"\",formlyOptions:[]}}var A={rows:[]};e.radioRowCollection=A,e.newOptionRadio={saisie:\"\"},e.addNewOptionRadio=a,e.removeRadioRow=r,e.upThisRadioRow=c,e.downThisRadioRow=d,e.basicSelectRowCollection=A,e.newOptionBasicSelect={saisie:\"\"},e.addNewOptionBasicSelect=p,e.removeRow=u,e.upThisRow=m,e.downThisRow=f,e.groupedSelectRowCollection=A,e.newOptionGroupedSelect={saisie:\"\"},e.GroupedSelectGroups={list:[]},e.newGroupGroupedSelect={saisie:\"\"},e.groupSelectGroupClick={showList:!1},e.showGroupListToChoose=v,e.addNewGroupToGroupedSelect=g,e.addNewOptionGroupedSelect=y,e.removeGroupedSelectRow=b,e.upThisGroupedSelectRow=h,e.downThisGroupedSelectRow=w,e.demodt={},e.today=x,e.clear=C,e.open=S,e.dateOptions=T(),e.demodt.formats=[\"dd-MMMM-yyyy\",\"yyyy/MM/dd\",\"dd.MM.yyyy\",\"shortDate\"],e.nyaSelect=l,e.nyaSelect.selectedControl=e.nyaSelect.temporyConfig.selectedControl,e.selectThisControl=F,e.ok=L,e.cancel=k,x(),N()}angular.module(\"ngwfApp.controllers.ngwfWfEditMODALController\",[]).controller(\"ngwfWfEditMODALController\",e),e.$inject=[\"$scope\",\"$modalInstance\",\"nyaSelect\",\"toaster\",\"$timeout\",\"selectOptionManage\",\"controllerModalProxy\"]}(),function(){function e(e,o,l,t){function n(e,o,n){function i(){var o=angular.isArray(e.edaEasyFormGeneratorModel.edaFieldsModel)&&e.edaEasyFormGeneratorModel.edaFieldsModel.length>0?e.edaEasyFormGeneratorModel.edaFieldsModel:s();return o}function s(){var e=[{line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}];return e}function a(){var o=angular.isArray(e.edaEasyFormGeneratorModel.dataModel)&&e.edaEasyFormGeneratorModel.dataModel.length>0?e.edaEasyFormGeneratorModel.dataModel:[];return o}function r(){return e.edaEasyFormGeneratorModel}function c(e,o){u()}function d(){return e.returnSaveEvent}function p(o,l){if(o===!0){var t={formName:e.configuration.formName,btnSubmitText:e.configuration.submitButtonText,btnCancelText:e.configuration.cancelButtonText,edaFieldsModel:e.configuration.lines,edaFieldsModelStringified:angular.toJson(e.configuration.lines),formlyFieldsModel:e.vm.wfFormFieldsOnlyNeededProperties,dataModel:e.vm.model};e.edaSaveFormEvent({edaEasyFormGeneratorModel:t}),e.returnSaveEvent=!1}}function u(){if(angular.isDefined(e.edaEasyFormGeneratorModel)){var o=i();e.configurationLoaded={},l.bindConfigurationLines(e.configurationLoaded,o),t.refreshControlFormlyExpressionProperties(e.configurationLoaded),t.refreshControlFormlyValidators(e.configurationLoaded),t.refreshControlFormlyValidation(e.configurationLoaded),e.configuration=angular.copy(e.configurationLoaded),l.applyConfigurationToformlyModel(e.configurationLoaded,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.vm.model=a,e.configuration.formName=angular.isString(e.edaEasyFormGeneratorModel.formName)?e.edaEasyFormGeneratorModel.formName:\"\",e.configuration.submitButtonText=angular.isString(e.edaEasyFormGeneratorModel.btnSubmitText)?e.edaEasyFormGeneratorModel.btnSubmitText:\"Submit\",e.configuration.cancelButtonText=angular.isString(e.edaEasyFormGeneratorModel.btnCancelText)?e.edaEasyFormGeneratorModel.btnCancelText:\"Cancel\"}}e.$watch(r,c,!0),e.$watch(d,p)}function i(e,o,l,t,n,i,s,a,r,c,d){function p(){return{showDebug:!1,configurationModelNumberofLines:1}}function u(){return{editTab:{active:!0},previewTab:{active:!1}}}function m(o){var l=JSON.parse(o.formlyField);e.configurationLoaded={},c.bindConfigurationLines(e.configurationLoaded,l),c.applyConfigurationToformlyModel(e.configurationLoaded,e.previewLoadedForm.fieldsModel,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.previewLoadedForm.cancelButtonText=o.cancelButtonText,e.previewLoadedForm.submitButtonText=o.submitButtonText}function f(){i.pop({type:\"info\",timeout:2e3,title:\"should save data model if it were not a static example\",body:\"data :\"+t(\"json\")(e.vm.model,4),showCloseButton:!0})}function v(){return{numColumn:-1,exist:!0,control:{type:\"none\",key:\"none\",subtype:\"none\"}}}function g(){return{line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}}function y(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()}function b(){return e.debug.configurationModelNumberofLines=e.configuration.lines.length,e.configuration.lines.length}function h(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)}function w(o){if(o>-1&&e.configuration.lines[o-1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function x(o){if(o>-1&&e.configuration.lines[o+1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function C(){e.configuration.lines.push({line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function S(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):s(function(){i.pop({type:\"warning\",title:\"Last line\",body:\"Can't delete the last line\",showCloseButton:!0})},100),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))}function T(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function L(){e.configuration.configStepCounter=0}function k(){var o=e.configuration.listConfigStep.length-1;e.configuration.configStepCounter!==o&&e.configuration.configStepCounter++,D(e.configuration.configStepCounter)}function O(){0!==e.configuration.configStepCounter&&e.configuration.configStepCounter--,D(e.configuration.configStepCounter)}function R(o){return o=0;o--)e.configuration.stepIndicators[o]=!1}function D(o){M(),e.configuration.stepIndicators[o]=!0}e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.vm.onSubmit=f,e.easyFormGeneratorVERSION=l,e.debug=p(),e.tab=u(),e.configuration={},e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.columnTemplate=v(),e.lineTemplate=g(),e.resetToZeroModel=y,e.countConfigurationModelLines=b,e.setActiveLineNumber=h,e.upThisLine=w,e.downThisLine=x,e.addNewline=C,e.removeThisLine=S,e.increaseNumberOfColumns=T,e.decreaseNumberOfColumns=F,e.resetStepCounter=L,e.nextConfigStep=k,e.previousConfigStep=O,e.stepReachable=R,e.toggleAnimation=E,e.nyaSelect={},e.animationsEnabled=!0,e.showModalAddCtrlToColumn=P,e.formlyList={},e.previewLoadedForm={fieldsModel:[]},e.configurationLoaded={},e.previewExistingform=m,e.saveThisForm=q,e.returnSaveEvent=!1,c.initConfigurationEditFromScratch(e.configuration),d.initNyaSelect(e.nyaSelect)}i.$inject=[\"$scope\",\"$templateCache\",\"easyFormGenVersion\",\"$filter\",\"$anchorScroll\",\"toaster\",\"$timeout\",\"$modal\",\"$log\",\"formFieldManage\",\"controllerModalProxy\"];var s={restrict:\"E\",scope:{edaEasyFormGeneratorModel:\"=\",edaSaveFormEvent:\"&edaSaveFormEvent\"},controller:i,controllerAs:\"vm\",replace:!1,templateUrl:\"edaStepWayEasyFormGeneratorTemplate.html\",link:n};return s}angular.module(\"ngwfApp.directives.edaStepWayEasyFormGenDirective\",[]).directive(\"edaStepWayEasyFormGen\",e),e.$inject=[\"$templateCache\",\"$timeout\",\"formFieldManage\",\"controllerModalProxy\"]}(),function(){angular.module(\"ngwfApp.directives\",[\"ngwfApp.directives.ngwfStRatioDirective\",\"ngwfApp.directives.edaStepWayEasyFormGenDirective\"])}(),function(){function e(){function e(e,o,l){var t=+l.stRatio;o.css(\"width\",t+\"%\")}var o={link:e};return o}angular.module(\"ngwfApp.directives.ngwfStRatioDirective\",[]).directive(\"stRatio\",e),e.$inject=[]}(),function(){function e(){function e(e){return c(e)}function o(){var e={};return c(e),e}function l(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyExpressionProperties=o.formlyExpressionProperties)})})})}function t(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyValidators=o.formlyValidators)})})})}function n(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyValidation=o.formlyValidation)})})})}function i(e,o,l,t){return c(e),\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions&&(e.temporyConfig.selectedControl=\"undefined\"!=typeof o.lines[l].columns[t].control.selectedControl?o.lines[l].columns[t].control.selectedControl:\"none\",e.temporyConfig.formlyLabel=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.label?o.lines[l].columns[t].control.templateOptions.label:\"\",e.temporyConfig.formlyRequired=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.required?o.lines[l].columns[t].control.templateOptions.required:\"\",e.temporyConfig.formlyDesciption=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.description?o.lines[l].columns[t].control.templateOptions.description:\"\",e.temporyConfig.formlyPlaceholder=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.placeholder?o.lines[l].columns[t].control.templateOptions.placeholder:\"\",e.temporyConfig.formlyOptions=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.options?o.lines[l].columns[t].control.templateOptions.options:\"\",e.temporyConfig.formlyExpressionProperties=\"undefined\"!=typeof o.lines[l].columns[t].control.formlyExpressionProperties?angular.copy(o.lines[l].columns[t].control.formlyExpressionProperties):{},e.temporyConfig.formlyValidators=\"undefined\"!=typeof o.lines[l].columns[t].control.formlyValidators?angular.copy(o.lines[l].columns[t].control.formlyValidators):{},e.temporyConfig.formlyValidation=\"undefined\"!=typeof o.lines[l].columns[t].control.formlyValidation?angular.copy(o.lines[l].columns[t].control.formlyValidation):{},\"Date\"===e.temporyConfig.selectedControl&&(e.temporyConfig.datepickerPopup=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.datepickerPopup?o.lines[l].columns[t].control.templateOptions.datepickerPopup:\"\")),e}function s(e,o,l,t){var n=d(l);t.lines[e].columns[o].control.selectedControl=n.selectedControl,t.lines[e].columns[o].control.type=n.formlyType,t.lines[e].columns[o].control.subtype=n.formlySubtype,t.lines[e].columns[o].control.templateOptions={label:\"\",required:!1,description:\"\",placeholder:\"\",options:[]},t.lines[e].columns[o].control.templateOptions.label=n.formlyLabel,t.lines[e].columns[o].control.templateOptions.required=n.formlyRequired,t.lines[e].columns[o].control.templateOptions.description=n.formlyDesciption,t.lines[e].columns[o].control.templateOptions.placeholder=n.formlyPlaceholder,t.lines[e].columns[o].control.templateOptions.options=n.formlyOptions,t.lines[e].columns[o].control.formlyExpressionProperties=angular.copy(n.formlyExpressionProperties),t.lines[e].columns[o].control.formlyValidators=angular.copy(n.formlyValidators),t.lines[e].columns[o].control.formlyValidation=angular.copy(n.formlyValidation),\"datepicker\"===t.lines[e].columns[o].control.type&&(t.lines[e].columns[o].control.templateOptions.datepickerPopup=n.datepickerPopup);var i=t.lines[e].columns[o].control.type+\"-\"+Date.now();p(i,t)===!0?t.lines[e].columns[o].control.key=i:(i=t.lines[e].columns[o].control.type+\"-\"+Date.now(),p(i,t)===!0?t.lines[e].columns[o].control.key=i:i=t.lines[e].columns[o].control.type+\"-\"+Date.now()),t.lines[e].columns[o].control.edited=!0}function a(e){for(var o=e.controls.length-1;o>=0;o--)e.controls[o].id===e.selectedControl&&(e.controls[o].formlyLabel=e.temporyConfig.formlyLabel,e.controls[o].formlyRequired=e.temporyConfig.formlyRequired,e.controls[o].formlyDesciption=e.temporyConfig.formlyDesciption,e.controls[o].formlyPlaceholder=e.temporyConfig.formlyPlaceholder,e.controls[o].formlyOptions=e.temporyConfig.formlyOptions,\"Date\"===e.controls[o].id&&(e.controls[o].datepickerPopup=e.temporyConfig.datepickerPopup))}function r(){return{formlyLabel:\"\",formlyRequired:!1,formlyPlaceholder:\"\",formlyDesciption:\"\",formlyOptions:[]}}function c(e){var o={controls:[{id:\"empty\",name:\"no control\",subtitle:\"no control\",group:\"Blank\",formlyType:\"blank\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:\"Header\",name:\"Header\",subtitle:\"no control\",group:\"Decoration\",formlyType:\"header\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:\"Subtitle\",name:\"Subtitle\",subtitle:\"no control\",group:\"Decoration\",formlyType:\"subTitle\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:\"TextInput\",name:\"Text input\",subtitle:\"Text input\",group:\"input\",formlyType:\"input\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Text input field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Password\",name:\"Password\",subtitle:\"Password\",group:\"input\",formlyType:\"input\",formlySubtype:\"password\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Password field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Email\",name:\"Email\",subtitle:\"Email\",group:\"input\",formlyType:\"input\",formlySubtype:\"email\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{emailShape:{expression:function(e,o){var l=o||e;return/^[a-z]+[a-z0-9._]+@[a-z]+\\.[a-z.]{2,5}$/.test(l)},message:\"$viewValue + ' is not a valid email'\"}},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Email field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return l.to.required?n:void 0}}}},{id:\"Date\",name:\"Date\",subtitle:\"Date\",group:\"input\",formlyType:\"datepicker\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],datepickerPopup:\"dd-MMMM-yyyy\",formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Date field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Texarea\",name:\"Textarea\",subtitle:\"Textarea\",group:\"Textarea\",formlyType:\"textarea\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Textarea field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"RichTextEditor\",name:\"RichTextEditor\",subtitle:\"RichTextEditor\",group:\"Textarea\",formlyType:\"richEditor\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this RichTextEditor field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Radio\",name:\"Radio\",subtitle:\"Radio\",options:[],group:\"Radio\",formlyType:\"radio\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Password field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Checkbox\",name:\"Checkbox\",subtitle:\"Checkbox\",group:\"Checkbox\",formlyType:\"checkbox\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{\nmessages:{required:function(e,o,l){var t=\"this Checkbox field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"BasicSelect\",name:\"Basic select\",subtitle:\"Basic select\",options:[],group:\"Select\",formlyType:\"basicSelect\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Basic select field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"GroupedSelect\",name:\"Grouped Select\",subtitle:\"Grouped Select\",options:[],group:\"Select\",formlyType:\"groupedSelect\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Grouped Select field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}}],selectedControl:\"none\",temporyConfig:{selectedControl:\"none\",formlyLabel:\"label\",formlyRequired:!1,formlyDesciption:\"\",formlyPlaceholder:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}}};return angular.copy(o,e),!0}function d(e){for(var o={selectedControl:\"none\",formlyType:\"none\",formlySubtype:\"none\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyPlaceholder:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},l=e.controls.length-1;l>=0;l--)e.selectedControl===e.controls[l].id&&(o.selectedControl=e.selectedControl,o.formlyType=e.controls[l].formlyType,o.formlySubtype=e.controls[l].formlySubtype,o.formlyLabel=e.controls[l].formlyLabel,o.formlyRequired=e.controls[l].formlyRequired,o.formlyDesciption=e.controls[l].formlyDesciption,o.formlyPlaceholder=e.controls[l].formlyPlaceholder,o.formlyOptions=e.controls[l].formlyOptions,o.formlyExpressionProperties=angular.copy(e.controls[l].formlyExpressionProperties),o.formlyValidators=angular.copy(e.controls[l].formlyValidators),o.formlyValidation=angular.copy(e.controls[l].formlyValidation),\"datepicker\"===e.controls[l].formlyType&&(o.datepickerPopup=e.controls[l].datepickerPopup));return o}function p(e,o){for(var l=!0,t=o.lines.length-1;t>=0;t--)for(var n=o.lines[t].columns.length-1;n>=0;n--)o.lines[t].columns[n].control.key===e&&(l=!1);return l}var u={initNyaSelect:e,getNyASelectFromSelectedLineColumn:i,bindConfigurationModelFromModalReturn:s,applyConfigToSelectedControl:a,resetTemporyConfig:r,getControlsDefinition:o,refreshControlFormlyExpressionProperties:l,refreshControlFormlyValidators:t,refreshControlFormlyValidation:n};return u}angular.module(\"ngwfApp.services.ngwfEditCtrlControllerModalProxy\",[]).factory(\"controllerModalProxy\",e),e.$inject=[]}(),function(){function e(){function e(e){var o={activeLine:1,listConfigStep:[\"init\",\"first\",\"second\",\"third\"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0,submitButtonText:\"submit\",cancelButtonText:\"cancel\",lines:[{line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}]};angular.copy(o,e)}function o(e,o){if(\"[object Array]\"===Object.prototype.toString.call(o)){var l={activeLine:1,listConfigStep:[\"init\",\"first\",\"second\",\"third\"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0,submitButtonText:\"submit\",cancelButtonText:\"cancel\",lines:[]};return l.lines=[].concat(o),angular.copy(l,e),x(\"configuration model is bound\",\"lines are bound to configuration model.\")}return w(\"lines is not an array\",\"Checks lines type, it is not an array.\")}function l(e,o,l){t(o),h(l);for(var i=e.lines.length,c=0;i>c;c++)1===e.lines[c].columns.length&&(\"header\"===e.lines[c].columns[0].control.type?n(o,e,c):s(o,e,c)),2===e.lines[c].columns.length&&a(o,e,c),3===e.lines[c].columns.length&&r(o,e,c)}function t(e){var o=[];angular.copy(o,e)}function n(e,o,l){var t='

'+b(o.lines[l].columns[0].control)+\"


\";e.push({template:\"undefined\"!=typeof o.lines[l].columns[0].control.type&&\"header\"===o.lines[l].columns[0].control.type?t:\"
\"})}function i(e,o,l){e.templateOptions.datepickerPopup=d(o.lines[l].columns[0].control)}function s(e,o,l){var t={className:\"col-xs-12\",type:\"undefined\"!=typeof o.lines[l].columns[0].control.type?\"none\"===o.lines[l].columns[0].control.type?\"blank\":o.lines[l].columns[0].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};\"datepicker\"===o.lines[l].columns[0].control.type&&i(t,o,l),e.push(t)}function a(e,o,l){var t={className:\"col-xs-6\",template:'

'+b(o.lines[l].columns[0].control)+\"


\"},n={className:\"col-xs-6\",template:'

'+b(o.lines[l].columns[1].control)+\"


\"},s={className:\"col-xs-6\",type:\"undefined\"!=typeof o.lines[l].columns[0].control.type?\"none\"===o.lines[l].columns[0].control.type?\"blank\":o.lines[l].columns[0].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};\"datepicker\"===o.lines[l].columns[0].control.type&&i(s,o,l);var a={className:\"col-xs-6\",type:\"undefined\"!=typeof o.lines[l].columns[1].control.type?\"none\"===o.lines[l].columns[1].control.type?\"blank\":o.lines[l].columns[1].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[1].control.key?o.lines[l].columns[1].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[1].control),label:c(o.lines[l].columns[1].control),required:f(o.lines[l].columns[1].control),placeholder:y(o.lines[l].columns[1].control),description:b(o.lines[l].columns[1].control),options:v(o.lines[l].columns[1].control)},expressionProperties:p(o.lines[l].columns[1].control),validators:u(o.lines[l].columns[1].control),validation:m(o.lines[l].columns[1].control)};\"datepicker\"===o.lines[l].columns[1].control.type&&i(a,o,l);var r=[];r.push(\"header\"===o.lines[l].columns[0].control.type?t:s),r.push(\"header\"===o.lines[l].columns[1].control.type?n:a),e.push({className:\"row\",fieldGroup:r})}function r(e,o,l){var t={className:\"col-xs-4\",template:'

'+b(o.lines[l].columns[0].control)+\"


\"},n={className:\"col-xs-4\",template:'

'+b(o.lines[l].columns[1].control)+\"


\"},s={className:\"col-xs-4\",template:'

'+b(o.lines[l].columns[2].control)+\"


\"},a={className:\"col-xs-4\",type:\"undefined\"!=typeof o.lines[l].columns[0].control.type?\"none\"===o.lines[l].columns[0].control.type?\"blank\":o.lines[l].columns[0].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};\"datepicker\"===o.lines[l].columns[0].control.type&&i(a,o,l);var r={className:\"col-xs-4\",type:\"undefined\"!=typeof o.lines[l].columns[1].control.type?\"none\"===o.lines[l].columns[1].control.type?\"blank\":o.lines[l].columns[1].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[1].control.key?o.lines[l].columns[1].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[1].control),label:c(o.lines[l].columns[1].control),required:f(o.lines[l].columns[1].control),placeholder:y(o.lines[l].columns[1].control),description:b(o.lines[l].columns[1].control),options:v(o.lines[l].columns[1].control)},expressionProperties:p(o.lines[l].columns[1].control),validators:u(o.lines[l].columns[1].control),validation:m(o.lines[l].columns[1].control)};\"datepicker\"===o.lines[l].columns[1].control.type&&i(r,o,l);var d={className:\"col-xs-4\",type:\"undefined\"!=typeof o.lines[l].columns[2].control.type?\"none\"===o.lines[l].columns[2].control.type?\"blank\":o.lines[l].columns[2].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[2].control.key?o.lines[l].columns[2].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[2].control),label:c(o.lines[l].columns[2].control),required:f(o.lines[l].columns[2].control),placeholder:y(o.lines[l].columns[2].control),description:b(o.lines[l].columns[2].control),options:v(o.lines[l].columns[2].control)},expressionProperties:p(o.lines[l].columns[2].control),validators:u(o.lines[l].columns[2].control),validation:m(o.lines[l].columns[2].control)};\"datepicker\"===o.lines[l].columns[2].control.type&&i(d,o,l);var h=[];h.push(\"header\"===o.lines[l].columns[0].control.type?t:a),h.push(\"header\"===o.lines[l].columns[1].control.type?n:r),h.push(\"header\"===o.lines[l].columns[2].control.type?s:d),e.push({className:\"row\",fieldGroup:h})}function c(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.label?e.templateOptions.label:\"\"}function d(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.datepickerPopup?e.templateOptions.datepickerPopup:\"\"}function p(e){return\"undefined\"!=typeof e.formlyExpressionProperties?angular.copy(e.formlyExpressionProperties):{}}function u(e){return\"undefined\"!=typeof e.formlyValidators?angular.copy(e.formlyValidators):{}}function m(e){return\"undefined\"!=typeof e.formlyValidation?angular.copy(e.formlyValidation):{}}function f(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.required?e.templateOptions.required:\"\"}function v(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.options?e.templateOptions.options:\"\"}function g(e){return\"undefined\"!=typeof e.subtype?e.subtype:\"\"}function y(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.placeholder?e.templateOptions.placeholder:\"\"}function b(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.description?e.templateOptions.description:\"\"}function h(e){var o={};return angular.copy(o,e),!0}function w(e,o){var l={noError:!1,title:\"\",Message:\"\"};return l.noError=!1,l.title=e,l.Message=o,l}function x(e,o){var l={noError:!1,title:\"\",Message:\"\"};return l.noError=!0,l.title=e,l.Message=o,l}var C={initConfigurationEditFromScratch:e,bindConfigurationLines:o,applyConfigurationToformlyModel:l};return C}angular.module(\"ngwfApp.services.formFieldManage\",[]).factory(\"formFieldManage\",e),e.$inject=[]}(),function(){function e(){function e(){return\"selectOptionManage is here.\"}function o(e){p(e)}function l(e,o){for(var l=e.rows.length-1;l>=0;l--)if(e.rows[l].option===o)return!1;return!0}function t(e){return\"\"!==e?!0:!1}function n(e,o){var l={resultFlag:!1,details:\"\"},t=d(e,o);if(t.resultFlag===!0){var n={option:o,order:e.rows.length};return e.rows.push(n),l.resultFlag=!0,l.details=\"\",l}return angular.copy(t,l),l}function i(e,o){var l={resultFlag:!1,details:\"\"},t=d(e,o);if(t.resultFlag===!0){var n={option:o,order:e.rows.length};return e.rows.push(n),l.resultFlag=!0,l.details=\"\",l}return angular.copy(t,l),l}function s(e,o,l){var t={resultFlag:!1,details:\"\"},n=d(e,o);if(n.resultFlag===!0){var i={option:o,group:l,order:e.rows.length};return e.rows.push(i),t.resultFlag=!0,t.details=\"\",t}return angular.copy(n,t),t}function a(e,o){var l={resultFlag:!1,details:\"\"};return-1!==o?(e.rows.splice(o,1),l.resultFlag=!0,l.details=\"\",l):(l.resultFlag=!1,l.details=\"Option index not valid\",l)}function r(e,o){var l={resultFlag:!1,details:\"\"};if(o>-1){if(o>0){if(e.rows[o-1]){var t=e.rows[o];return e.rows.splice(o,1),e.rows.splice(o-1,0,t),l.resultFlag=!0,l.details=\"\",l}return l.resultFlag=!1,l.details=\"Can't retreive option from option index\",l}return l.resultFlag=!0,l.details=\"\",l}return l.resultFlag=!1,l.details=\"Option index not valid\",l}function c(e,o){var l={resultFlag:!1,details:\"\"};if(o>-1){if(o=0;t--)if(e.rows[t].option===o)return l.resultFlag=!1,l.details=\"Entered option is not unique\",l;return l.resultFlag=!0,l.details=\"\",l}return l.resultFlag=!1,l.details=\"Entered option is empty\",l}function p(e){var o={rows:[]};angular.copy(o,e)}var u={testMe:e,initModel:o,isOptionUnique:l,isOptionValidFormat:t,addNewOptionRadio:n,addNewOptionBasicSelect:i,addNewOptionGroupedSelect:s,removeOption:a,upthisOption:r,downthisOption:c};return u}angular.module(\"ngwfApp.services.selectOptionManage\",[]).factory(\"selectOptionManage\",e),e.$inject=[]}(),function(){angular.module(\"ngwfApp.services\",[\"ngwfApp.services.formFieldManage\",\"ngwfApp.services.selectOptionManage\",\"ngwfApp.services.ngwfEditCtrlControllerModalProxy\"])}(),function(){angular.module(\"ngwfApp.filters\",[])}()}(this);\n//# sourceMappingURL=eda.stepway.min.js.map"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["eda.stepway.min.js"],"names":["configfct","formlyConfigProvider","camelize","string","replace","match","chr","toUpperCase","toLowerCase","setType","name","template","subTitleTemplate","basicSelectTemplate","groupedSelectTemplate","attributes","bindings","ngModelAttrs","angular","forEach","attr","attribute","binding","bound","wrapper","controller","$scope","open","$event","preventDefault","stopPropagation","opened","defaultOptions","templateOptions","addonLeft","class","onClick","options","scope","isOpen","onFocus","$viewValue","$modelValue","to","datepickerOptions","setWrapper","join","module","value","config","$inject","run","$templateCache","put","ngwfMainController","$timeout","FormNameAsTest","ngwfWfEditController","easyFormGenVersion","$filter","$anchorScroll","toaster","$modal","$log","formFieldManage","controllerModalProxy","initDebugModel","showDebug","configurationModelNumberofLines","initTabModel","editTab","active","previewTab","previewExistingform","formlyform","configlines","JSON","parse","formlyField","configurationLoaded","bindConfigurationLines","applyConfigurationToformlyModel","previewLoadedForm","fieldsModel","vm","model","wfFormFieldsOnlyNeededProperties","copy","wfFormFields","cancelButtonText","submitButtonText","onSubmit","pop","type","timeout","title","body","showCloseButton","initColumnTemplate","numColumn","exist","control","key","subtype","initLineTemplate","line","activeColumn","columns","resetToZeroModel","configuration","activeLine","lines","length","splice","countConfigurationModelLines","debug","setActiveLineNumber","lineNumber","upThisLine","indexLine","currentLineObj","downThisLine","addNewline","push","removeThisLine","index","increaseNumberOfColumns","MaxNumberOfColumns","newNumberOfColumns","decreaseNumberOfColumns","resetStepCounter","configStepCounter","nextConfigStep","configStepCounterMAX","listConfigStep","setTrueThisStepIndicator","previousConfigStep","stepReachable","indexStep","showModalAddCtrlToColumn","size","numcolumn","modalInstance","animation","animationsEnabled","templateUrl","resolve","nyaSelect","getNyASelectFromSelectedLineColumn","result","then","modalAddCtrlModel","bindConfigurationModelFromModalReturn","toggleAnimation","loadExistingFormsAsList","saveThisForm","formName","clear","resetAllIndicators","i","stepIndicators","indexIndicator","this","easyFormGeneratorVERSION","tab","numberOfColumns","MinNumberOfColumns","columnTemplate","lineTemplate","loadExistingFormsList","formlyList","initConfigurationEditFromScratch","initNyaSelect","ngwfWfEditMODALController","$modalInstance","selectOptionManage","addNewOptionRadio","radioRowCollection","newOptionRadio","saisie","resultFlag","details","removeRadioRow","removeOption","upThisRadioRow","upthisOption","downThisRadioRow","downthisOption","addNewOptionBasicSelect","basicSelectRowCollection","newOptionBasicSelect","removeRow","upThisRow","downThisRow","showGroupListToChoose","groupSelectGroupClick","showList","addNewGroupToGroupedSelect","newGroupGroupedSelect","GroupedSelectGroups","list","addNewOptionGroupedSelect","groupedSelectRowCollection","newOptionGroupedSelect","removeGroupedSelectRow","upThisGroupedSelectRow","downThisGroupedSelectRow","today","demodt","dt","Date","openfct","dateOptionsInit","formatYear","startingDay","showWeeks","initDate","selectThisControl","controlName","selectedControl","resetTemporyConfig","controls","id","initDatePicker","okfct","bindBasicSelectToNya","bindGroupedSelectToNya","bindRadioToNya","applyConfigToSelectedControl","close","cancelfct","dismiss","bindRadioFromNYA","temporyConfig","formlyOptions","newOption","option","order","group","rows","resetNyASelectOptions","bindBasicSelectFromNYA","bindGroupedSelectFromNYA","filteredgroup","_","uniq","pluck","datepickerPopup","formats","initNyaSelectConformingSelectedControl","modelNyaSelect","formlyLabel","formlyRequired","formlyPlaceholder","formlyDesciption","initOptionModel","dateOptions","ok","cancel","edaStepWayEasyFormGen","linkFct","element","attrs","returnAttributeConfigurationLinesIfNotEmpty","edaEasyFormGeneratorModelToReturn","isArray","edaEasyFormGeneratorModel","edaFieldsModel","emptyEdaFieldsModel","emptyModel","returnAttributeDataModelIfNotEmpty","dataModelToReturn","dataModel","watchEdaEasyFormModelExpression","watchEdaEasyFormModelHasChanged","newValue","oldValue","loadExistingConfigurationModel","watchReturnSaveEventExpression","returnSaveEvent","watchReturnSaveEventhasChanged","_easyFormGeneratorModel","btnSubmitText","btnCancelText","edaFieldsModelStringified","toJson","formlyFieldsModel","edaSaveFormEvent","isDefined","refreshControlFormlyExpressionProperties","refreshControlFormlyValidators","refreshControlFormlyValidation","isString","$watch","edaStepWayEasyFormGenCtrl","directive","restrict","controllerAs","link","stRatio","linkfct","ratio","css","nyaSelectObj","resetNyaSelect","getControlsDefinition","configurationModel","isObject","column","controlIndex","_controlsDefinition","aControl","aControlIndex","formlyType","formlySubtype","formlyExpressionProperties","formlyValidators","formlyValidation","configurationObj","label","required","description","placeholder","extractedProps","returnControlFromAddCtrlModalModel","newKey","now","validKeyUniqueness","edited","newNyaSelectObj","subtitle","messages","viewValue","modelValue","defaultReturnMsg","returnMsg","emailShape","expression","test","message","CtrlModalModel","modelToReturn","thisKey","isUnique","j","service","factory","configurationModelInit","Object","prototype","toString","call","configurationModelResult","concat","getMessageObject","getErrorObject","formlyModel","formlyDataModel","resetFormlyModel","resetDataModel","addOneColumnHeader","addOneColumnControl","addTwoColumnControl","addThreeColumnControl","resetformly","lineIndex","headerTemplateCol0","extractTemplateOptionDescription","addDatepickerPopupProperty","fieldToPush","extractTemplateOptionDatepickerPopup","className","extractTemplateOptionType","extractTemplateOptionLabel","extractTemplateOptionRequired","extractTemplateOptionPlaceholder","extractTemplateOptionOptions","expressionProperties","extractFormlyExpressionProperties","validators","extractFormlyValidators","validation","extractFormlyValidation","headerTemplateCol1","controlCol0","controlCol1","FieldGroup","fieldGroup","headerTemplateCol2","controlCol2","obj","emptyDataModel","errorTitle","errorMessage","messageObj","noError","Message","messageTitle","messageBody","testMe","initModel","selectObj","resetModel","isOptionUnique","textValue","isOptionValidFormat","newOptionText","fullResponse","checkResult","validOption","newOptionGroup","AtIndex","indexOption","currentOption","zeroModel"],"mappings":"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","file":"eda.stepway.min.js","sourcesContent":["!function(){\"use strict\";!function(){function e(e){function o(e){return e=e.replace(/[\\-_\\s]+(.)?/g,function(e,o){return o?o.toUpperCase():\"\"}),e.replace(/^([A-Z])/,function(e,o){return o?o.toLowerCase():\"\"})}e.setType({name:\"richEditor\",template:''}),e.setType({name:\"blank\",template:\"
\"});var l='

{{options.templateOptions.placeholder}}


';e.setType({name:\"subTitle\",template:l});var t='
  1. {{option.name}}
';e.setType({name:\"basicSelect\",template:t});var n='
  1. {{$group}} {{option.name}}
';e.setType({name:\"groupedSelect\",template:n});var i=[\"date-disabled\",\"custom-class\",\"show-weeks\",\"starting-day\",\"init-date\",\"min-mode\",\"max-mode\",\"format-day\",\"format-month\",\"format-year\",\"format-day-header\",\"format-day-title\",\"format-month-title\",\"year-range\",\"shortcut-propagation\",\"datepicker-popup\",\"show-button-bar\",\"current-text\",\"clear-text\",\"close-text\",\"close-on-date-selection\",\"datepicker-append-to-body\"],s=[\"datepicker-mode\",\"min-date\",\"max-date\"],a={};angular.forEach(i,function(e){a[o(e)]={attribute:e}}),angular.forEach(s,function(e){a[o(e)]={bound:e}}),e.setType({name:\"datepicker\",template:'',wrapper:[\"bootstrapLabel\",\"bootstrapHasError\"],controller:[\"$scope\",function(e){e.open=function(o){o.preventDefault(),o.stopPropagation(),e.opened=!0}}],defaultOptions:{ngModelAttrs:a,templateOptions:{addonLeft:{\"class\":\"glyphicon glyphicon-calendar\",onClick:function(e,o){e.templateOptions.isOpen=!e.templateOptions.isOpen}},onFocus:function(e,o,l){l.to.isOpen=!l.to.isOpen},datepickerOptions:{}}}}),e.setWrapper([{template:['
\",\" \",'
','
','
',\" {{message(options.formControl.$viewValue, options.formControl.$modelValue, this)}}\",\"
\",\"
\",\"
\"].join(\" \")}])}angular.module(\"eda.easyformGen.stepway\",[\"ngwfApp\"]),angular.module(\"ngwfApp\",[\"ngwfApp.core\",\"ngwfApp.controllers\",\"ngwfApp.services\",\"ngwfApp.filters\",\"ngwfApp.directives\"]).value(\"easyFormGenVersion\",\"v1.0.15\").config(e),e.$inject=[\"formlyConfigProvider\"]}(),angular.module(\"ngwfApp\").run([\"$templateCache\",function(e){e.put(\"edaStepWayEasyFormGeneratorTemplate.html\",'

lines

layout

controls

save

Command

Add a new line : 

Visual

  • 1\">
    1\">
    1\">

Command

– Selected line –

number of columns :

{{configuration.lines[configuration.activeLine -1].columns.length}}

Visual

  • 1\">
    1\">
    1\">

Command

– Apply controls to columns –


  Click / Tap on column to open control selection.

  Select desired control and valid to apply it to column.

Visual

  • 1\">
    1\">
    1\">

 Command



 Final Step : form preview

DATA MODEL

\\n\t\t\t\t\t\t\t\t\t\t{{vm.model | json}}\\n\t\t\t\t\t\t\t\t\t

FIELDS MODEL (ready to save to database one)

\\n\t\t\t\t\t\t\t\t\t\t{{vm.wfFormFieldsOnlyNeededProperties | json}}\\n\t\t\t\t\t\t\t\t\t

Easy form generator : {{easyFormGeneratorVERSION}} — Erwan DATIN (MacKentoch)
'),e.put(\"editModalTemplate.html\",'');\n\n}]),function(){angular.module(\"ngwfApp.core\",[\"textAngular\",\"textAngularSetup\",\"ngAnimate\",\"toaster\",\"formly\",\"formlyBootstrap\",\"ui.bootstrap\",\"nya.bootstrap.select\"])}(),function(){angular.module(\"ngwfApp.controllers\",[\"ngwfApp.controllers.ngwfMainController\",\"ngwfApp.controllers.ngwfWfEditController\",\"ngwfApp.controllers.ngwfWfEditMODALController\"])}(),function(){function e(e,o){e.FormNameAsTest=\"initial_name\",o(function(){e.FormNameAsTest=\"name changed after 3s\"},3e3)}angular.module(\"ngwfApp.controllers.ngwfMainController\",[]).controller(\"ngwfMainController\",e),e.$inject=[\"$scope\",\"$timeout\"]}(),function(){function e(e,o,l,t,n,i,s,a,r,c,d){function p(){return{showDebug:!1,configurationModelNumberofLines:1}}function u(){return{editTab:{active:!0},previewTab:{active:!1}}}function m(o){var l=JSON.parse(o.formlyField);e.configurationLoaded={},c.bindConfigurationLines(e.configurationLoaded,l),c.applyConfigurationToformlyModel(e.configurationLoaded,e.previewLoadedForm.fieldsModel,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.previewLoadedForm.cancelButtonText=o.cancelButtonText,e.previewLoadedForm.submitButtonText=o.submitButtonText}function f(){i.pop({type:\"info\",timeout:2e3,title:\"should save data model if it were not a static example\",body:\"data :\"+t(\"json\")(e.vm.model,4),showCloseButton:!0})}function v(){return{numColumn:-1,exist:!0,control:{type:\"none\",key:\"none\",subtype:\"none\"}}}function g(){return{line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}}function y(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()}function b(){return e.debug.configurationModelNumberofLines=e.configuration.lines.length,e.configuration.lines.length}function h(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)}function w(o){if(o>-1&&e.configuration.lines[o-1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function x(o){if(o>-1&&e.configuration.lines[o+1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function C(){e.configuration.lines.push({line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function S(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):s(function(){i.pop({type:\"warning\",title:\"Last line\",body:\"Can't delete the last line\",showCloseButton:!0})},100),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))}function T(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function L(){e.configuration.configStepCounter=0}function k(){var o=e.configuration.listConfigStep.length-1;e.configuration.configStepCounter!==o&&e.configuration.configStepCounter++,N(e.configuration.configStepCounter)}function O(){0!==e.configuration.configStepCounter&&e.configuration.configStepCounter--,N(e.configuration.configStepCounter)}function R(o){return o=0;o--)e.configuration.stepIndicators[o]=!1}function N(o){D(),e.configuration.stepIndicators[o]=!0}e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.vm.onSubmit=f,e.easyFormGeneratorVERSION=l,e.debug=p(),e.tab=u(),e.configuration={},e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.columnTemplate=v(),e.lineTemplate=g(),e.resetToZeroModel=y,e.countConfigurationModelLines=b,e.setActiveLineNumber=h,e.upThisLine=w,e.downThisLine=x,e.addNewline=C,e.removeThisLine=S,e.increaseNumberOfColumns=T,e.decreaseNumberOfColumns=F,e.resetStepCounter=L,e.nextConfigStep=k,e.previousConfigStep=O,e.stepReachable=R,e.toggleAnimation=E,e.nyaSelect={},e.animationsEnabled=!0,e.showModalAddCtrlToColumn=P,e.loadExistingFormsList=q(),e.formlyList={},e.previewLoadedForm={fieldsModel:[]},e.configurationLoaded={},e.previewExistingform=m,e.saveThisForm=M,q(),c.initConfigurationEditFromScratch(e.configuration),d.initNyaSelect(e.nyaSelect)}angular.module(\"ngwfApp.controllers.ngwfWfEditController\",[]).controller(\"ngwfWfEditController\",e),e.$inject=[\"$scope\",\"$templateCache\",\"easyFormGenVersion\",\"$filter\",\"$anchorScroll\",\"toaster\",\"$timeout\",\"$modal\",\"$log\",\"formFieldManage\",\"controllerModalProxy\"]}(),function(){function e(e,o,l,t,n,i,s){function a(){var o=i.addNewOptionRadio(e.radioRowCollection,e.newOptionRadio.saisie);o.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionRadio.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionRadio={saisie:\"\"}}function r(o){var l=i.removeOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Delete was cancelled.\",showCloseButton:!0})}function c(o){var l=i.upthisOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function d(o){var l=i.downthisOption(e.radioRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function p(){var o=i.addNewOptionBasicSelect(e.basicSelectRowCollection,e.newOptionBasicSelect.saisie);o.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionBasicSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionBasicSelect={saisie:\"\"}}function u(o){var l=i.removeOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Delete was cancelled.\",showCloseButton:!0})}function m(o){var l=i.upthisOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function f(o){var l=i.downthisOption(e.basicSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function v(){e.groupSelectGroupClick.showList=!e.groupSelectGroupClick.showList}function g(){if(\"\"!==e.newGroupGroupedSelect.saisie){for(var o=e.GroupedSelectGroups.list.length-1;o>=0;o--)e.GroupedSelectGroups.list[o]===e.newGroupGroupedSelect.saisie&&t.pop({type:\"warning\",timeout:2e3,title:\"Group already exists\",body:\"No group added.\",showCloseButton:!0});e.GroupedSelectGroups.list.push(e.newGroupGroupedSelect.saisie)}else t.pop({type:\"warning\",timeout:2e3,title:\"Not a valid group to add\",body:\"No group added.\",showCloseButton:!0});e.newGroupGroupedSelect.saisie=\"\"}function y(){var o=i.addNewOptionGroupedSelect(e.groupedSelectRowCollection,e.newOptionGroupedSelect.saisie,\"\");o.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:o.details,body:\"'\"+e.newOptionGroupedSelect.saisie+\"' cannot be added.\",showCloseButton:!0}),e.newOptionGroupedSelect={saisie:\"\"}}function b(o){var l=i.removeOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Delete was cancelled.\",showCloseButton:!0})}function h(o){var l=i.upthisOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function w(o){var l=i.downthisOption(e.groupedSelectRowCollection,o);l.resultFlag===!1&&t.pop({type:\"warning\",timeout:2e3,title:l.details,body:\"Operation cancelled.\",showCloseButton:!0})}function x(){e.demodt.dt=new Date}function C(){e.demodt.dt=null}function S(o){o.preventDefault(),o.stopPropagation(),e.demodt.opened=!0}function T(){return{formatYear:\"yy\",startingDay:1,showWeeks:!0,initDate:null}}function F(o){e.nyaSelect.selectedControl=\"none\",$();for(var l=e.nyaSelect.controls.length-1;l>=0;l--)e.nyaSelect.controls[l].id===o&&(e.nyaSelect.selectedControl=e.nyaSelect.controls[l].id);\"Date\"===e.nyaSelect.selectedControl&&D()}function L(){\"BasicSelect\"===e.nyaSelect.selectedControl&&E(),\"GroupedSelect\"===e.nyaSelect.selectedControl&&M(),\"Radio\"===e.nyaSelect.selectedControl&&R(),s.applyConfigToSelectedControl(e.nyaSelect),o.close(e.nyaSelect)}function k(){o.dismiss(\"cancel\")}function O(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.radioRowCollection.rows.push(l)}}function R(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.radioRowCollection.rows.length>0)for(var l=0;l<=e.radioRowCollection.rows.length-1;l++){var t={name:e.radioRowCollection.rows[l].option,value:l,group:\"\"};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function P(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0)for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:\"\"};e.basicSelectRowCollection.rows.push(l)}}function E(){var o=[];if(e.nyaSelect.temporyConfig.formlyOptions=o,e.basicSelectRowCollection.rows.length>0)for(var l=0;l<=e.basicSelectRowCollection.rows.length-1;l++){var t={name:e.basicSelectRowCollection.rows[l].option,value:l,group:\"\"};e.nyaSelect.temporyConfig.formlyOptions.push(t)}}function q(){if(e.nyaSelect.temporyConfig.formlyOptions.length>0){for(var o=0;o<=e.nyaSelect.temporyConfig.formlyOptions.length-1;o++){var l={option:e.nyaSelect.temporyConfig.formlyOptions[o].name,order:o,group:e.nyaSelect.temporyConfig.formlyOptions[o].group};e.groupedSelectRowCollection.rows.push(l)}var t=_.uniq(_.pluck(e.groupedSelectRowCollection.rows,\"group\"));angular.copy(t,e.GroupedSelectGroups.list)}}function M(){e.nyaSelect.temporyConfig.formlyOptions=[];for(var o=0;o<=e.groupedSelectRowCollection.rows.length-1;o++){var l={name:e.groupedSelectRowCollection.rows[o].option,value:o,group:e.groupedSelectRowCollection.rows[o].group};e.nyaSelect.temporyConfig.formlyOptions.push(l)}}function D(){e.nyaSelect.temporyConfig.datepickerPopup=e.demodt.formats[0]}function N(){if(\"none\"!==l.selectedControl){for(var o=e.nyaSelect.controls.length-1;o>=0;o--)e.nyaSelect.controls[o].id===l.selectedControl&&(e.modelNyaSelect=l.controls[o]);\"BasicSelect\"===e.nyaSelect.selectedControl&&P(),\"GroupedSelect\"===e.nyaSelect.selectedControl&&q(),\"Radio\"===e.nyaSelect.selectedControl&&O()}}function $(){e.nyaSelect.temporyConfig={formlyLabel:\"\",formlyRequired:!1,formlyPlaceholder:\"\",formlyDesciption:\"\",formlyOptions:[]}}var A={rows:[]};e.radioRowCollection=A,e.newOptionRadio={saisie:\"\"},e.addNewOptionRadio=a,e.removeRadioRow=r,e.upThisRadioRow=c,e.downThisRadioRow=d,e.basicSelectRowCollection=A,e.newOptionBasicSelect={saisie:\"\"},e.addNewOptionBasicSelect=p,e.removeRow=u,e.upThisRow=m,e.downThisRow=f,e.groupedSelectRowCollection=A,e.newOptionGroupedSelect={saisie:\"\"},e.GroupedSelectGroups={list:[]},e.newGroupGroupedSelect={saisie:\"\"},e.groupSelectGroupClick={showList:!1},e.showGroupListToChoose=v,e.addNewGroupToGroupedSelect=g,e.addNewOptionGroupedSelect=y,e.removeGroupedSelectRow=b,e.upThisGroupedSelectRow=h,e.downThisGroupedSelectRow=w,e.demodt={},e.today=x,e.clear=C,e.open=S,e.dateOptions=T(),e.demodt.formats=[\"dd-MMMM-yyyy\",\"yyyy/MM/dd\",\"dd.MM.yyyy\",\"shortDate\"],e.nyaSelect=l,e.nyaSelect.selectedControl=e.nyaSelect.temporyConfig.selectedControl,e.selectThisControl=F,e.ok=L,e.cancel=k,x(),N()}angular.module(\"ngwfApp.controllers.ngwfWfEditMODALController\",[]).controller(\"ngwfWfEditMODALController\",e),e.$inject=[\"$scope\",\"$modalInstance\",\"nyaSelect\",\"toaster\",\"$timeout\",\"selectOptionManage\",\"controllerModalProxy\"]}(),function(){function e(e,o,l,t){function n(e,o,n){function i(){var o=angular.isArray(e.edaEasyFormGeneratorModel.edaFieldsModel)&&e.edaEasyFormGeneratorModel.edaFieldsModel.length>0?e.edaEasyFormGeneratorModel.edaFieldsModel:s();return o}function s(){var e=[{line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}];return e}function a(){var o=angular.isArray(e.edaEasyFormGeneratorModel.dataModel)&&e.edaEasyFormGeneratorModel.dataModel.length>0?e.edaEasyFormGeneratorModel.dataModel:[];return o}function r(){return e.edaEasyFormGeneratorModel}function c(e,o){u()}function d(){return e.returnSaveEvent}function p(o,l){if(o===!0){var t={formName:e.configuration.formName,btnSubmitText:e.configuration.submitButtonText,btnCancelText:e.configuration.cancelButtonText,edaFieldsModel:e.configuration.lines,edaFieldsModelStringified:angular.toJson(e.configuration.lines),formlyFieldsModel:e.vm.wfFormFieldsOnlyNeededProperties,dataModel:e.vm.model};e.edaSaveFormEvent({edaEasyFormGeneratorModel:t}),e.returnSaveEvent=!1}}function u(){if(angular.isDefined(e.edaEasyFormGeneratorModel)){var o=i();e.configurationLoaded={},l.bindConfigurationLines(e.configurationLoaded,o),t.refreshControlFormlyExpressionProperties(e.configurationLoaded),t.refreshControlFormlyValidators(e.configurationLoaded),t.refreshControlFormlyValidation(e.configurationLoaded),e.configuration=angular.copy(e.configurationLoaded),l.applyConfigurationToformlyModel(e.configurationLoaded,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.vm.model=a,e.configuration.formName=angular.isString(e.edaEasyFormGeneratorModel.formName)?e.edaEasyFormGeneratorModel.formName:\"\",e.configuration.submitButtonText=angular.isString(e.edaEasyFormGeneratorModel.btnSubmitText)?e.edaEasyFormGeneratorModel.btnSubmitText:\"Submit\",e.configuration.cancelButtonText=angular.isString(e.edaEasyFormGeneratorModel.btnCancelText)?e.edaEasyFormGeneratorModel.btnCancelText:\"Cancel\"}}e.$watch(r,c,!0),e.$watch(d,p)}function i(e,o,l,t,n,i,s,a,r,c,d){function p(){return{showDebug:!1,configurationModelNumberofLines:1}}function u(){return{editTab:{active:!0},previewTab:{active:!1}}}function m(o){var l=JSON.parse(o.formlyField);e.configurationLoaded={},c.bindConfigurationLines(e.configurationLoaded,l),c.applyConfigurationToformlyModel(e.configurationLoaded,e.previewLoadedForm.fieldsModel,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields),e.previewLoadedForm.cancelButtonText=o.cancelButtonText,e.previewLoadedForm.submitButtonText=o.submitButtonText}function f(){i.pop({type:\"info\",timeout:2e3,title:\"should save data model if it were not a static example\",body:\"data :\"+t(\"json\")(e.vm.model,4),showCloseButton:!0})}function v(){return{numColumn:-1,exist:!0,control:{type:\"none\",key:\"none\",subtype:\"none\"}}}function g(){return{line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}}function y(){return e.configuration.activeLine=1,e.configuration.lines.length>1&&e.configuration.lines.splice(1,e.configuration.lines.length-2),e.countConfigurationModelLines()}function b(){return e.debug.configurationModelNumberofLines=e.configuration.lines.length,e.configuration.lines.length}function h(o){o<=e.countConfigurationModelLines()&&(e.configuration.activeLine=o)}function w(o){if(o>-1&&e.configuration.lines[o-1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o-1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function x(o){if(o>-1&&e.configuration.lines[o+1]){var l=e.configuration.lines[o];e.configuration.lines.splice(o,1),e.configuration.lines.splice(o+1,0,l),e.configuration.activeLine=1}c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function C(){e.configuration.lines.push({line:-1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function S(o){o>-1&&(e.configuration.lines.length>1?(e.configuration.activeLine===o+1&&(e.configuration.activeLine=1),e.configuration.lines.splice(o,1)):s(function(){i.pop({type:\"warning\",title:\"Last line\",body:\"Can't delete the last line\",showCloseButton:!0})},100),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields))}function T(){if(e.configuration.lines[e.configuration.activeLine-1].columns.length1&&e.configuration.lines[e.configuration.activeLine-1].columns.splice(e.configuration.lines[e.configuration.activeLine-1].columns.length-1,1),c.applyConfigurationToformlyModel(e.configuration,e.vm.wfFormFields,e.vm.model),e.vm.wfFormFieldsOnlyNeededProperties=angular.copy(e.vm.wfFormFields)}function L(){e.configuration.configStepCounter=0}function k(){var o=e.configuration.listConfigStep.length-1;e.configuration.configStepCounter!==o&&e.configuration.configStepCounter++,D(e.configuration.configStepCounter)}function O(){0!==e.configuration.configStepCounter&&e.configuration.configStepCounter--,D(e.configuration.configStepCounter)}function R(o){return o=0;o--)e.configuration.stepIndicators[o]=!1}function D(o){M(),e.configuration.stepIndicators[o]=!0}e.vm=this,e.vm.model={},e.vm.wfFormFields=[],e.vm.wfFormFieldsOnlyNeededProperties=[],e.vm.onSubmit=f,e.easyFormGeneratorVERSION=l,e.debug=p(),e.tab=u(),e.configuration={},e.numberOfColumns=1,e.MaxNumberOfColumns=3,e.MinNumberOfColumns=1,e.columnTemplate=v(),e.lineTemplate=g(),e.resetToZeroModel=y,e.countConfigurationModelLines=b,e.setActiveLineNumber=h,e.upThisLine=w,e.downThisLine=x,e.addNewline=C,e.removeThisLine=S,e.increaseNumberOfColumns=T,e.decreaseNumberOfColumns=F,e.resetStepCounter=L,e.nextConfigStep=k,e.previousConfigStep=O,e.stepReachable=R,e.toggleAnimation=E,e.nyaSelect={},e.animationsEnabled=!0,e.showModalAddCtrlToColumn=P,e.formlyList={},e.previewLoadedForm={fieldsModel:[]},e.configurationLoaded={},e.previewExistingform=m,e.saveThisForm=q,e.returnSaveEvent=!1,c.initConfigurationEditFromScratch(e.configuration),d.initNyaSelect(e.nyaSelect)}i.$inject=[\"$scope\",\"$templateCache\",\"easyFormGenVersion\",\"$filter\",\"$anchorScroll\",\"toaster\",\"$timeout\",\"$modal\",\"$log\",\"formFieldManage\",\"controllerModalProxy\"];var s={restrict:\"E\",scope:{edaEasyFormGeneratorModel:\"=\",edaSaveFormEvent:\"&edaSaveFormEvent\"},controller:i,controllerAs:\"vm\",replace:!1,templateUrl:\"edaStepWayEasyFormGeneratorTemplate.html\",link:n};return s}angular.module(\"ngwfApp.directives.edaStepWayEasyFormGenDirective\",[]).directive(\"edaStepWayEasyFormGen\",e),e.$inject=[\"$templateCache\",\"$timeout\",\"formFieldManage\",\"controllerModalProxy\"]}(),function(){angular.module(\"ngwfApp.directives\",[\"ngwfApp.directives.ngwfStRatioDirective\",\"ngwfApp.directives.edaStepWayEasyFormGenDirective\"])}(),function(){function e(){function e(e,o,l){var t=+l.stRatio;o.css(\"width\",t+\"%\")}var o={link:e};return o}angular.module(\"ngwfApp.directives.ngwfStRatioDirective\",[]).directive(\"stRatio\",e),e.$inject=[]}(),function(){function e(){function e(e){return c(e)}function o(){var e={};return c(e),e}function l(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyExpressionProperties=o.formlyExpressionProperties)})})})}function t(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyValidators=o.formlyValidators)})})})}function n(e){angular.isObject(e)&&angular.forEach(e.lines,function(e,l){angular.forEach(e.columns,function(e,l){var t=o();angular.forEach(t.controls,function(o,l){e.control.type===o.formlyType&&e.control.subtype===o.formlySubtype&&(e.control.formlyValidation=o.formlyValidation)})})})}function i(e,o,l,t){return c(e),\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions&&(e.temporyConfig.selectedControl=\"undefined\"!=typeof o.lines[l].columns[t].control.selectedControl?o.lines[l].columns[t].control.selectedControl:\"none\",e.temporyConfig.formlyLabel=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.label?o.lines[l].columns[t].control.templateOptions.label:\"\",e.temporyConfig.formlyRequired=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.required?o.lines[l].columns[t].control.templateOptions.required:\"\",e.temporyConfig.formlyDesciption=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.description?o.lines[l].columns[t].control.templateOptions.description:\"\",e.temporyConfig.formlyPlaceholder=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.placeholder?o.lines[l].columns[t].control.templateOptions.placeholder:\"\",e.temporyConfig.formlyOptions=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.options?o.lines[l].columns[t].control.templateOptions.options:\"\",e.temporyConfig.formlyExpressionProperties=\"undefined\"!=typeof o.lines[l].columns[t].control.formlyExpressionProperties?angular.copy(o.lines[l].columns[t].control.formlyExpressionProperties):{},e.temporyConfig.formlyValidators=\"undefined\"!=typeof o.lines[l].columns[t].control.formlyValidators?angular.copy(o.lines[l].columns[t].control.formlyValidators):{},e.temporyConfig.formlyValidation=\"undefined\"!=typeof o.lines[l].columns[t].control.formlyValidation?angular.copy(o.lines[l].columns[t].control.formlyValidation):{},\"Date\"===e.temporyConfig.selectedControl&&(e.temporyConfig.datepickerPopup=\"undefined\"!=typeof o.lines[l].columns[t].control.templateOptions.datepickerPopup?o.lines[l].columns[t].control.templateOptions.datepickerPopup:\"\")),e}function s(e,o,l,t){var n=d(l);t.lines[e].columns[o].control.selectedControl=n.selectedControl,t.lines[e].columns[o].control.type=n.formlyType,t.lines[e].columns[o].control.subtype=n.formlySubtype,t.lines[e].columns[o].control.templateOptions={label:\"\",required:!1,description:\"\",placeholder:\"\",options:[]},t.lines[e].columns[o].control.templateOptions.label=n.formlyLabel,t.lines[e].columns[o].control.templateOptions.required=n.formlyRequired,t.lines[e].columns[o].control.templateOptions.description=n.formlyDesciption,t.lines[e].columns[o].control.templateOptions.placeholder=n.formlyPlaceholder,t.lines[e].columns[o].control.templateOptions.options=n.formlyOptions,t.lines[e].columns[o].control.formlyExpressionProperties=angular.copy(n.formlyExpressionProperties),t.lines[e].columns[o].control.formlyValidators=angular.copy(n.formlyValidators),t.lines[e].columns[o].control.formlyValidation=angular.copy(n.formlyValidation),\"datepicker\"===t.lines[e].columns[o].control.type&&(t.lines[e].columns[o].control.templateOptions.datepickerPopup=n.datepickerPopup);var i=t.lines[e].columns[o].control.type+\"-\"+Date.now();p(i,t)===!0?t.lines[e].columns[o].control.key=i:(i=t.lines[e].columns[o].control.type+\"-\"+Date.now(),p(i,t)===!0?t.lines[e].columns[o].control.key=i:i=t.lines[e].columns[o].control.type+\"-\"+Date.now()),t.lines[e].columns[o].control.edited=!0}function a(e){for(var o=e.controls.length-1;o>=0;o--)e.controls[o].id===e.selectedControl&&(e.controls[o].formlyLabel=e.temporyConfig.formlyLabel,e.controls[o].formlyRequired=e.temporyConfig.formlyRequired,e.controls[o].formlyDesciption=e.temporyConfig.formlyDesciption,e.controls[o].formlyPlaceholder=e.temporyConfig.formlyPlaceholder,e.controls[o].formlyOptions=e.temporyConfig.formlyOptions,\"Date\"===e.controls[o].id&&(e.controls[o].datepickerPopup=e.temporyConfig.datepickerPopup))}function r(){return{formlyLabel:\"\",formlyRequired:!1,formlyPlaceholder:\"\",formlyDesciption:\"\",formlyOptions:[]}}function c(e){var o={controls:[{id:\"empty\",name:\"no control\",subtitle:\"no control\",group:\"Blank\",formlyType:\"blank\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:\"Header\",name:\"Header\",subtitle:\"no control\",group:\"Decoration\",formlyType:\"header\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:\"Subtitle\",name:\"Subtitle\",subtitle:\"no control\",group:\"Decoration\",formlyType:\"subTitle\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},{id:\"TextInput\",name:\"Text input\",subtitle:\"Text input\",group:\"input\",formlyType:\"input\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Text input field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Password\",name:\"Password\",subtitle:\"Password\",group:\"input\",formlyType:\"input\",formlySubtype:\"password\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Password field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Email\",name:\"Email\",subtitle:\"Email\",group:\"input\",formlyType:\"input\",formlySubtype:\"email\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{emailShape:{expression:function(e,o){var l=o||e;return/^[a-z]+[a-z0-9._]+@[a-z]+\\.[a-z.]{2,5}$/.test(l)},message:\"$viewValue + ' is not a valid email'\"}},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Email field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return l.to.required?n:void 0}}}},{id:\"Date\",name:\"Date\",subtitle:\"Date\",group:\"input\",formlyType:\"datepicker\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],datepickerPopup:\"dd-MMMM-yyyy\",formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Date field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Texarea\",name:\"Textarea\",subtitle:\"Textarea\",group:\"Textarea\",formlyType:\"textarea\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Textarea field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"RichTextEditor\",name:\"RichTextEditor\",subtitle:\"RichTextEditor\",group:\"Textarea\",formlyType:\"richEditor\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this RichTextEditor field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Radio\",name:\"Radio\",subtitle:\"Radio\",options:[],group:\"Radio\",formlyType:\"radio\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Password field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"Checkbox\",name:\"Checkbox\",subtitle:\"Checkbox\",group:\"Checkbox\",formlyType:\"checkbox\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{\nmessages:{required:function(e,o,l){var t=\"this Checkbox field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"BasicSelect\",name:\"Basic select\",subtitle:\"Basic select\",options:[],group:\"Select\",formlyType:\"basicSelect\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Basic select field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}},{id:\"GroupedSelect\",name:\"Grouped Select\",subtitle:\"Grouped Select\",options:[],group:\"Select\",formlyType:\"groupedSelect\",formlySubtype:\"\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{messages:{required:function(e,o,l){var t=\"this Grouped Select field is required\",n=\"undefined\"!=typeof l.to.label&&\"\"!==l.to.label?l.to.label+\" is required\":t;return n}}}}],selectedControl:\"none\",temporyConfig:{selectedControl:\"none\",formlyLabel:\"label\",formlyRequired:!1,formlyDesciption:\"\",formlyPlaceholder:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}}};return angular.copy(o,e),!0}function d(e){for(var o={selectedControl:\"none\",formlyType:\"none\",formlySubtype:\"none\",formlyLabel:\"\",formlyRequired:!1,formlyDesciption:\"\",formlyPlaceholder:\"\",formlyOptions:[],formlyExpressionProperties:{},formlyValidators:{},formlyValidation:{}},l=e.controls.length-1;l>=0;l--)e.selectedControl===e.controls[l].id&&(o.selectedControl=e.selectedControl,o.formlyType=e.controls[l].formlyType,o.formlySubtype=e.controls[l].formlySubtype,o.formlyLabel=e.controls[l].formlyLabel,o.formlyRequired=e.controls[l].formlyRequired,o.formlyDesciption=e.controls[l].formlyDesciption,o.formlyPlaceholder=e.controls[l].formlyPlaceholder,o.formlyOptions=e.controls[l].formlyOptions,o.formlyExpressionProperties=angular.copy(e.controls[l].formlyExpressionProperties),o.formlyValidators=angular.copy(e.controls[l].formlyValidators),o.formlyValidation=angular.copy(e.controls[l].formlyValidation),\"datepicker\"===e.controls[l].formlyType&&(o.datepickerPopup=e.controls[l].datepickerPopup));return o}function p(e,o){for(var l=!0,t=o.lines.length-1;t>=0;t--)for(var n=o.lines[t].columns.length-1;n>=0;n--)o.lines[t].columns[n].control.key===e&&(l=!1);return l}var u={initNyaSelect:e,getNyASelectFromSelectedLineColumn:i,bindConfigurationModelFromModalReturn:s,applyConfigToSelectedControl:a,resetTemporyConfig:r,getControlsDefinition:o,refreshControlFormlyExpressionProperties:l,refreshControlFormlyValidators:t,refreshControlFormlyValidation:n};return u}angular.module(\"ngwfApp.services.ngwfEditCtrlControllerModalProxy\",[]).factory(\"controllerModalProxy\",e),e.$inject=[]}(),function(){function e(){function e(e){var o={activeLine:1,listConfigStep:[\"init\",\"first\",\"second\",\"third\"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0,submitButtonText:\"submit\",cancelButtonText:\"cancel\",lines:[{line:1,activeColumn:1,columns:[{numColumn:1,exist:!0,control:{type:\"none\",key:\"none\"}}]}]};angular.copy(o,e)}function o(e,o){if(\"[object Array]\"===Object.prototype.toString.call(o)){var l={activeLine:1,listConfigStep:[\"init\",\"first\",\"second\",\"third\"],stepIndicators:[!0,!1,!1,!1],configStepCounter:0,submitButtonText:\"submit\",cancelButtonText:\"cancel\",lines:[]};return l.lines=[].concat(o),angular.copy(l,e),x(\"configuration model is bound\",\"lines are bound to configuration model.\")}return w(\"lines is not an array\",\"Checks lines type, it is not an array.\")}function l(e,o,l){t(o),h(l);for(var i=e.lines.length,c=0;i>c;c++)1===e.lines[c].columns.length&&(\"header\"===e.lines[c].columns[0].control.type?n(o,e,c):s(o,e,c)),2===e.lines[c].columns.length&&a(o,e,c),3===e.lines[c].columns.length&&r(o,e,c)}function t(e){var o=[];angular.copy(o,e)}function n(e,o,l){var t='

'+b(o.lines[l].columns[0].control)+\"


\";e.push({template:\"undefined\"!=typeof o.lines[l].columns[0].control.type&&\"header\"===o.lines[l].columns[0].control.type?t:\"
\"})}function i(e,o,l){e.templateOptions.datepickerPopup=d(o.lines[l].columns[0].control)}function s(e,o,l){var t={className:\"col-xs-12\",type:\"undefined\"!=typeof o.lines[l].columns[0].control.type?\"none\"===o.lines[l].columns[0].control.type?\"blank\":o.lines[l].columns[0].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};\"datepicker\"===o.lines[l].columns[0].control.type&&i(t,o,l),e.push(t)}function a(e,o,l){var t={className:\"col-xs-6\",template:'

'+b(o.lines[l].columns[0].control)+\"


\"},n={className:\"col-xs-6\",template:'

'+b(o.lines[l].columns[1].control)+\"


\"},s={className:\"col-xs-6\",type:\"undefined\"!=typeof o.lines[l].columns[0].control.type?\"none\"===o.lines[l].columns[0].control.type?\"blank\":o.lines[l].columns[0].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};\"datepicker\"===o.lines[l].columns[0].control.type&&i(s,o,l);var a={className:\"col-xs-6\",type:\"undefined\"!=typeof o.lines[l].columns[1].control.type?\"none\"===o.lines[l].columns[1].control.type?\"blank\":o.lines[l].columns[1].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[1].control.key?o.lines[l].columns[1].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[1].control),label:c(o.lines[l].columns[1].control),required:f(o.lines[l].columns[1].control),placeholder:y(o.lines[l].columns[1].control),description:b(o.lines[l].columns[1].control),options:v(o.lines[l].columns[1].control)},expressionProperties:p(o.lines[l].columns[1].control),validators:u(o.lines[l].columns[1].control),validation:m(o.lines[l].columns[1].control)};\"datepicker\"===o.lines[l].columns[1].control.type&&i(a,o,l);var r=[];r.push(\"header\"===o.lines[l].columns[0].control.type?t:s),r.push(\"header\"===o.lines[l].columns[1].control.type?n:a),e.push({className:\"row\",fieldGroup:r})}function r(e,o,l){var t={className:\"col-xs-4\",template:'

'+b(o.lines[l].columns[0].control)+\"


\"},n={className:\"col-xs-4\",template:'

'+b(o.lines[l].columns[1].control)+\"


\"},s={className:\"col-xs-4\",template:'

'+b(o.lines[l].columns[2].control)+\"


\"},a={className:\"col-xs-4\",type:\"undefined\"!=typeof o.lines[l].columns[0].control.type?\"none\"===o.lines[l].columns[0].control.type?\"blank\":o.lines[l].columns[0].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[0].control.key?o.lines[l].columns[0].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[0].control),label:c(o.lines[l].columns[0].control),required:f(o.lines[l].columns[0].control),placeholder:y(o.lines[l].columns[0].control),description:b(o.lines[l].columns[0].control),options:v(o.lines[l].columns[0].control)},expressionProperties:p(o.lines[l].columns[0].control),validators:u(o.lines[l].columns[0].control),validation:m(o.lines[l].columns[0].control)};\"datepicker\"===o.lines[l].columns[0].control.type&&i(a,o,l);var r={className:\"col-xs-4\",type:\"undefined\"!=typeof o.lines[l].columns[1].control.type?\"none\"===o.lines[l].columns[1].control.type?\"blank\":o.lines[l].columns[1].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[1].control.key?o.lines[l].columns[1].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[1].control),label:c(o.lines[l].columns[1].control),required:f(o.lines[l].columns[1].control),placeholder:y(o.lines[l].columns[1].control),description:b(o.lines[l].columns[1].control),options:v(o.lines[l].columns[1].control)},expressionProperties:p(o.lines[l].columns[1].control),validators:u(o.lines[l].columns[1].control),validation:m(o.lines[l].columns[1].control)};\"datepicker\"===o.lines[l].columns[1].control.type&&i(r,o,l);var d={className:\"col-xs-4\",type:\"undefined\"!=typeof o.lines[l].columns[2].control.type?\"none\"===o.lines[l].columns[2].control.type?\"blank\":o.lines[l].columns[2].control.type:\"blank\",key:\"undefined\"!=typeof o.lines[l].columns[2].control.key?o.lines[l].columns[2].control.key:\"blank\"+Date.now(),templateOptions:{type:g(o.lines[l].columns[2].control),label:c(o.lines[l].columns[2].control),required:f(o.lines[l].columns[2].control),placeholder:y(o.lines[l].columns[2].control),description:b(o.lines[l].columns[2].control),options:v(o.lines[l].columns[2].control)},expressionProperties:p(o.lines[l].columns[2].control),validators:u(o.lines[l].columns[2].control),validation:m(o.lines[l].columns[2].control)};\"datepicker\"===o.lines[l].columns[2].control.type&&i(d,o,l);var h=[];h.push(\"header\"===o.lines[l].columns[0].control.type?t:a),h.push(\"header\"===o.lines[l].columns[1].control.type?n:r),h.push(\"header\"===o.lines[l].columns[2].control.type?s:d),e.push({className:\"row\",fieldGroup:h})}function c(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.label?e.templateOptions.label:\"\"}function d(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.datepickerPopup?e.templateOptions.datepickerPopup:\"\"}function p(e){return\"undefined\"!=typeof e.formlyExpressionProperties?angular.copy(e.formlyExpressionProperties):{}}function u(e){return\"undefined\"!=typeof e.formlyValidators?angular.copy(e.formlyValidators):{}}function m(e){return\"undefined\"!=typeof e.formlyValidation?angular.copy(e.formlyValidation):{}}function f(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.required?e.templateOptions.required:\"\"}function v(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.options?e.templateOptions.options:\"\"}function g(e){return\"undefined\"!=typeof e.subtype?e.subtype:\"\"}function y(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.placeholder?e.templateOptions.placeholder:\"\"}function b(e){return\"undefined\"!=typeof e.templateOptions&&\"undefined\"!=typeof e.templateOptions.description?e.templateOptions.description:\"\"}function h(e){var o={};return angular.copy(o,e),!0}function w(e,o){var l={noError:!1,title:\"\",Message:\"\"};return l.noError=!1,l.title=e,l.Message=o,l}function x(e,o){var l={noError:!1,title:\"\",Message:\"\"};return l.noError=!0,l.title=e,l.Message=o,l}var C={initConfigurationEditFromScratch:e,bindConfigurationLines:o,applyConfigurationToformlyModel:l};return C}angular.module(\"ngwfApp.services.formFieldManage\",[]).factory(\"formFieldManage\",e),e.$inject=[]}(),function(){function e(){function e(){return\"selectOptionManage is here.\"}function o(e){p(e)}function l(e,o){for(var l=e.rows.length-1;l>=0;l--)if(e.rows[l].option===o)return!1;return!0}function t(e){return\"\"!==e?!0:!1}function n(e,o){var l={resultFlag:!1,details:\"\"},t=d(e,o);if(t.resultFlag===!0){var n={option:o,order:e.rows.length};return e.rows.push(n),l.resultFlag=!0,l.details=\"\",l}return angular.copy(t,l),l}function i(e,o){var l={resultFlag:!1,details:\"\"},t=d(e,o);if(t.resultFlag===!0){var n={option:o,order:e.rows.length};return e.rows.push(n),l.resultFlag=!0,l.details=\"\",l}return angular.copy(t,l),l}function s(e,o,l){var t={resultFlag:!1,details:\"\"},n=d(e,o);if(n.resultFlag===!0){var i={option:o,group:l,order:e.rows.length};return e.rows.push(i),t.resultFlag=!0,t.details=\"\",t}return angular.copy(n,t),t}function a(e,o){var l={resultFlag:!1,details:\"\"};return-1!==o?(e.rows.splice(o,1),l.resultFlag=!0,l.details=\"\",l):(l.resultFlag=!1,l.details=\"Option index not valid\",l)}function r(e,o){var l={resultFlag:!1,details:\"\"};if(o>-1){if(o>0){if(e.rows[o-1]){var t=e.rows[o];return e.rows.splice(o,1),e.rows.splice(o-1,0,t),l.resultFlag=!0,l.details=\"\",l}return l.resultFlag=!1,l.details=\"Can't retreive option from option index\",l}return l.resultFlag=!0,l.details=\"\",l}return l.resultFlag=!1,l.details=\"Option index not valid\",l}function c(e,o){var l={resultFlag:!1,details:\"\"};if(o>-1){if(o=0;t--)if(e.rows[t].option===o)return l.resultFlag=!1,l.details=\"Entered option is not unique\",l;return l.resultFlag=!0,l.details=\"\",l}return l.resultFlag=!1,l.details=\"Entered option is empty\",l}function p(e){var o={rows:[]};angular.copy(o,e)}var u={testMe:e,initModel:o,isOptionUnique:l,isOptionValidFormat:t,addNewOptionRadio:n,addNewOptionBasicSelect:i,addNewOptionGroupedSelect:s,removeOption:a,upthisOption:r,downthisOption:c};return u}angular.module(\"ngwfApp.services.selectOptionManage\",[]).factory(\"selectOptionManage\",e),e.$inject=[]}(),function(){angular.module(\"ngwfApp.services\",[\"ngwfApp.services.formFieldManage\",\"ngwfApp.services.selectOptionManage\",\"ngwfApp.services.ngwfEditCtrlControllerModalProxy\"])}(),function(){angular.module(\"ngwfApp.filters\",[])}()}(this);\n//# sourceMappingURL=eda.stepway.min.js.map"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/public/lib/js/angular-animate.min.js b/public/lib/js/angular-animate.min.js index 34e732d4..71ae4d93 100644 --- a/public/lib/js/angular-animate.min.js +++ b/public/lib/js/angular-animate.min.js @@ -1,33 +1,56 @@ /* - AngularJS v1.3.16 - (c) 2010-2014 Google, Inc. http://angularjs.org + AngularJS v1.4.5 + (c) 2010-2015 Google, Inc. http://angularjs.org License: MIT */ -(function(N,f,W){'use strict';f.module("ngAnimate",["ng"]).directive("ngAnimateChildren",function(){return function(X,r,g){g=g.ngAnimateChildren;f.isString(g)&&0===g.length?r.data("$$ngAnimateChildren",!0):X.$watch(g,function(f){r.data("$$ngAnimateChildren",!!f)})}}).factory("$$animateReflow",["$$rAF","$document",function(f,r){var g=r[0].body;return function(r){return f(function(){r(g.offsetWidth)})}}]).config(["$provide","$animateProvider",function(X,r){function g(f){for(var n=0;n=B&&b>=y&&c()}var m=g(e);a=e.data("$$ngAnimateCSS3Data");if(-1!=m.getAttribute("class").indexOf(b)&&a){var k= -"",t="";n(b.split(" "),function(a,b){var e=(0=a&&(a=h,h=0,b.push(e),e=[]);e.push(l.fn); +l.children.forEach(function(a){h++;c.push(a)});a--}e.length&&b.push(e);return b}(c)}var O=[],x=Q(a);return function(t,z,E){function h(a){a=a.hasAttribute("ng-animate-ref")?[a]:a.querySelectorAll("[ng-animate-ref]");var b=[];q(a,function(a){var c=a.getAttribute("ng-animate-ref");c&&c.length&&b.push(a)});return b}function S(a){var b=[],c={};q(a,function(a,g){var d=G(a.element),f=0<=["enter","move"].indexOf(a.event),d=a.structural?h(d):[];if(d.length){var e=f?"to":"from";q(d,function(a){var b=a.getAttribute("ng-animate-ref"); +c[b]=c[b]||{};c[b][e]={animationID:g,element:I(a)}})}else b.push(a)});var d={},f={};q(c,function(c,e){var h=c.from,r=c.to;if(h&&r){var J=a[h.animationID],k=a[r.animationID],B=h.animationID.toString();if(!f[B]){var l=f[B]={structural:!0,beforeStart:function(){J.beforeStart();k.beforeStart()},close:function(){J.close();k.close()},classes:u(J.classes,k.classes),from:J,to:k,anchors:[]};l.classes.length?b.push(l):(b.push(J),b.push(k))}f[B].anchors.push({out:h.element,"in":r.element})}else h=h?h.animationID: +r.animationID,r=h.toString(),d[r]||(d[r]=!0,b.push(a[h]))});return b}function u(a,b){a=a.split(" ");b=b.split(" ");for(var c=[],d=0;dC.expectedEndTime)?v.cancel(C.timer):p.push(r)}z&&(u=v(d,u,!1),p[0]={timer:u,expectedEndTime:k},p.push(r),a.data("$$animateCss",p));a.on(m.join(" "),l);xa(a,c)}} +function d(){var b=a.data("$$animateCss");if(b){for(var c=1;c=M&&b>=K&&(S=!0,r())}if(!s)if(g.parentNode){var H,m=[],k=function(a){if(S)z&&a&&(z=!1,r());else if(z=!a,D.animationDuration)if(a=na(g,z),z)w.push(a);else{var b=w,c=b.indexOf(a);0<=a&&b.splice(c,1)}},p=0").html(a);f.forEach(a.children(), -function(a){a=f.element(a);h?h.after(a):d.prepend(a);h=a;q(a)(b)});c.renderMessages(e,g)})}}}]).directive("ngMessage",["$animate",function(f){return{require:"^ngMessages",transclude:"element",terminal:!0,restrict:"AE",link:function(k,l,b,d,a){for(var c,g,e=l[0],n=e.parentNode,h=0,p=0;h (https://github.com/mgcrea) * @license MIT License, http://www.opensource.org/licenses/MIT */ -!function(e,t,n){'use strict';function a(e,n,a,o,i,r){function s(e,n){return angular.element((n||t).querySelectorAll(e))}function l(e){return u[e]?u[e]:u[e]=n.get(e,{cache:r}).then(function(e){return e.data})}this.compile=function(t){t.template&&/\.html$/.test(t.template)&&(console.warn('Deprecated use of `template` option to pass a file. Please use the `templateUrl` option instead.'),t.templateUrl=t.template,t.template='');var n=t.templateUrl,r=t.template||'',u=t.controller,c=t.controllerAs,d=angular.copy(t.resolve||{}),f=angular.copy(t.locals||{}),p=t.transformTemplate||angular.identity,g=t.bindToController;return angular.forEach(d,function(e,t){d[t]=angular.isString(e)?a.get(e):a.invoke(e)}),angular.extend(d,f),d.$template=n?l(n):e.when(r),t.contentTemplate&&(d.$template=e.all([d.$template,l(t.contentTemplate)]).then(function(e){var n=angular.element(e[0]),a=s('[ng-bind="content"]',n[0]).removeAttr('ng-bind').html(e[1]);return t.templateUrl||a.next().remove(),n[0].outerHTML})),e.all(d).then(function(e){var n=p(e.$template);t.html&&(n=n.replace(/ng-bind="/gi,'ng-bind-html="'));var a=angular.element('
').html(n.trim()).contents(),r=o(a);return{locals:e,element:a,link:function(t){if(e.$scope=t,u){var n=i(u,e,!0);g&&angular.extend(n.instance,e);var o=angular.isObject(n)?n:n();a.data('$ngControllerController',o),a.children().data('$ngControllerController',o),c&&(t[c]=o)}return r.apply(null,arguments)}}})};var u={}}angular.module('mgcrea.ngStrap',['mgcrea.ngStrap.modal','mgcrea.ngStrap.aside','mgcrea.ngStrap.alert','mgcrea.ngStrap.button','mgcrea.ngStrap.select','mgcrea.ngStrap.datepicker','mgcrea.ngStrap.timepicker','mgcrea.ngStrap.navbar','mgcrea.ngStrap.tooltip','mgcrea.ngStrap.popover','mgcrea.ngStrap.dropdown','mgcrea.ngStrap.typeahead','mgcrea.ngStrap.scrollspy','mgcrea.ngStrap.affix','mgcrea.ngStrap.tab','mgcrea.ngStrap.collapse']),angular.module('mgcrea.ngStrap.affix',['mgcrea.ngStrap.helpers.dimensions','mgcrea.ngStrap.helpers.debounce']).provider('$affix',function(){var e=this.defaults={offsetTop:'auto',inlineStyles:!0};this.$get=['$window','debounce','dimensions',function(t,n,a){function o(o,s){function l(e,t,n){var a=u(),o=c();return v>=a?'top':null!==e&&a+e<=t.top?'middle':null!==w&&t.top+n+$>=o-w?'bottom':'middle'}function u(){return p[0]===t?t.pageYOffset:p[0].scrollTop}function c(){return p[0]===t?t.document.body.scrollHeight:p[0].scrollHeight}var d={},f=angular.extend({},e,s),p=f.target,g='affix affix-top affix-bottom',m=!1,$=0,h=0,v=0,w=0,y=null,b=null,D=o.parent();if(f.offsetParent)if(f.offsetParent.match(/^\d+$/))for(var k=0;k<1*f.offsetParent-1;k++)D=D.parent();else D=angular.element(f.offsetParent);return d.init=function(){this.$parseOffsets(),h=a.offset(o[0]).top+$,m=!o[0].style.width,p.on('scroll',this.checkPosition),p.on('click',this.checkPositionWithEventLoop),r.on('resize',this.$debouncedOnResize),this.checkPosition(),this.checkPositionWithEventLoop()},d.destroy=function(){p.off('scroll',this.checkPosition),p.off('click',this.checkPositionWithEventLoop),r.off('resize',this.$debouncedOnResize)},d.checkPositionWithEventLoop=function(){setTimeout(d.checkPosition,1)},d.checkPosition=function(){var e=u(),t=a.offset(o[0]),n=a.height(o[0]),r=l(b,t,n);y!==r&&(y=r,o.removeClass(g).addClass('affix'+('middle'!==r?'-'+r:'')),'top'===r?(b=null,m&&o.css('width',''),f.inlineStyles&&(o.css('position',f.offsetParent?'':'relative'),o.css('top',''))):'bottom'===r?(b=f.offsetUnpin?-(1*f.offsetUnpin):t.top-e,m&&o.css('width',''),f.inlineStyles&&(o.css('position',f.offsetParent?'':'relative'),o.css('top',f.offsetParent?'':i[0].offsetHeight-w-n-h+'px'))):(b=null,m&&o.css('width',o[0].offsetWidth+'px'),f.inlineStyles&&(o.css('position','fixed'),o.css('top',$+'px'))))},d.$onResize=function(){d.$parseOffsets(),d.checkPosition()},d.$debouncedOnResize=n(d.$onResize,50),d.$parseOffsets=function(){var e=o.css('position');f.inlineStyles&&o.css('position',f.offsetParent?'':'relative'),f.offsetTop&&('auto'===f.offsetTop&&(f.offsetTop='+0'),f.offsetTop.match(/^[-+]\d+$/)?($=1*-f.offsetTop,v=f.offsetParent?a.offset(D[0]).top+1*f.offsetTop:a.offset(o[0]).top-a.css(o[0],'marginTop',!0)+1*f.offsetTop):v=1*f.offsetTop),f.offsetBottom&&(w=f.offsetParent&&f.offsetBottom.match(/^[-+]\d+$/)?c()-(a.offset(D[0]).top+a.height(D[0]))+1*f.offsetBottom+1:1*f.offsetBottom),f.inlineStyles&&o.css('position',e)},d.init(),d}var i=angular.element(t.document.body),r=angular.element(t);return o}]}).directive('bsAffix',['$affix','$window',function(e,t){return{restrict:'EAC',require:'^?bsAffixTarget',link:function(n,a,o,i){var r={scope:n,target:i?i.$element:angular.element(t)};angular.forEach(['offsetTop','offsetBottom','offsetParent','offsetUnpin','inlineStyles'],function(e){if(angular.isDefined(o[e])){var t=o[e];/true/i.test(t)&&(t=!0),/false/i.test(t)&&(t=!1),r[e]=t}});var s=e(a,r);n.$on('$destroy',function(){s&&s.destroy(),r=null,s=null})}}}]).directive('bsAffixTarget',function(){return{controller:['$element',function(e){this.$element=e}]}}),angular.module('mgcrea.ngStrap.alert',['mgcrea.ngStrap.modal']).provider('$alert',function(){var e=this.defaults={animation:'am-fade',prefixClass:'alert',prefixEvent:'alert',placement:null,templateUrl:'alert/alert.tpl.html',container:!1,element:null,backdrop:!1,keyboard:!0,show:!0,duration:!1,type:!1,dismissable:!0};this.$get=['$modal','$timeout',function(t,n){function a(a){var o={},i=angular.extend({},e,a);o=t(i),o.$scope.dismissable=!!i.dismissable,i.type&&(o.$scope.type=i.type);var r=o.show;return i.duration&&(o.show=function(){r(),n(function(){o.hide()},1e3*i.duration)}),o}return a}]}).directive('bsAlert',['$window','$sce','$alert',function(e,t,n){e.requestAnimationFrame||e.setTimeout;return{restrict:'EAC',scope:!0,link:function(e,a,o,i){var r={scope:e,element:a,show:!1};angular.forEach(['template','templateUrl','controller','controllerAs','placement','keyboard','html','container','animation','duration','dismissable'],function(e){angular.isDefined(o[e])&&(r[e]=o[e])});var s=/^(false|0|)$/i;angular.forEach(['keyboard','html','container','dismissable'],function(e){angular.isDefined(o[e])&&s.test(o[e])&&(r[e]=!1)}),e.hasOwnProperty('title')||(e.title=''),angular.forEach(['title','content','type'],function(n){o[n]&&o.$observe(n,function(a,o){e[n]=t.trustAsHtml(a)})}),o.bsAlert&&e.$watch(o.bsAlert,function(t,n){angular.isObject(t)?angular.extend(e,t):e.content=t},!0);var l=n(r);a.on(o.trigger||'click',l.toggle),e.$on('$destroy',function(){l&&l.destroy(),r=null,l=null})}}}]),angular.module('mgcrea.ngStrap.aside',['mgcrea.ngStrap.modal']).provider('$aside',function(){var e=this.defaults={animation:'am-fade-and-slide-right',prefixClass:'aside',prefixEvent:'aside',placement:'right',templateUrl:'aside/aside.tpl.html',contentTemplate:!1,container:!1,element:null,backdrop:!0,keyboard:!0,html:!1,show:!0};this.$get=['$modal',function(t){function n(n){var a={},o=angular.extend({},e,n);return a=t(o)}return n}]}).directive('bsAside',['$window','$sce','$aside',function(e,t,n){e.requestAnimationFrame||e.setTimeout;return{restrict:'EAC',scope:!0,link:function(e,a,o,i){var r={scope:e,element:a,show:!1};angular.forEach(['template','templateUrl','controller','controllerAs','contentTemplate','placement','backdrop','keyboard','html','container','animation'],function(e){angular.isDefined(o[e])&&(r[e]=o[e])});var s=/^(false|0|)$/i;angular.forEach(['backdrop','keyboard','html','container'],function(e){angular.isDefined(o[e])&&s.test(o[e])&&(r[e]=!1)}),angular.forEach(['title','content'],function(n){o[n]&&o.$observe(n,function(a,o){e[n]=t.trustAsHtml(a)})}),o.bsAside&&e.$watch(o.bsAside,function(t,n){angular.isObject(t)?angular.extend(e,t):e.content=t},!0);var l=n(r);a.on(o.trigger||'click',l.toggle),e.$on('$destroy',function(){l&&l.destroy(),r=null,l=null})}}}]),angular.module('mgcrea.ngStrap.button',[]).provider('$button',function(){var e=this.defaults={activeClass:'active',toggleEvent:'click'};this.$get=function(){return{defaults:e}}}).directive('bsCheckboxGroup',function(){return{restrict:'A',require:'ngModel',compile:function(e,t){e.attr('data-toggle','buttons'),e.removeAttr('ng-model');var n=e[0].querySelectorAll('input[type="checkbox"]');angular.forEach(n,function(e){var n=angular.element(e);n.attr('bs-checkbox',''),n.attr('ng-model',t.ngModel+'.'+n.attr('value'))})}}}).directive('bsCheckbox',['$button','$$rAF',function(e,t){var n=e.defaults,a=/^(true|false|\d+)$/;return{restrict:'A',require:'ngModel',link:function(e,o,i,r){var s=n,l='INPUT'===o[0].nodeName,u=l?o.parent():o,c=angular.isDefined(i.trueValue)?i.trueValue:!0;a.test(i.trueValue)&&(c=e.$eval(i.trueValue));var d=angular.isDefined(i.falseValue)?i.falseValue:!1;a.test(i.falseValue)&&(d=e.$eval(i.falseValue));var f='boolean'!=typeof c||'boolean'!=typeof d;f&&(r.$parsers.push(function(e){return e?c:d}),r.$formatters.push(function(e){return angular.equals(e,c)}),e.$watch(i.ngModel,function(e,t){r.$render()})),r.$render=function(){var e=angular.equals(r.$modelValue,c);t(function(){l&&(o[0].checked=e),u.toggleClass(s.activeClass,e)})},o.bind(s.toggleEvent,function(){e.$apply(function(){l||r.$setViewValue(!u.hasClass('active')),f||r.$render()})})}}}]).directive('bsRadioGroup',function(){return{restrict:'A',require:'ngModel',compile:function(e,t){e.attr('data-toggle','buttons'),e.removeAttr('ng-model');var n=e[0].querySelectorAll('input[type="radio"]');angular.forEach(n,function(e){angular.element(e).attr('bs-radio',''),angular.element(e).attr('ng-model',t.ngModel)})}}}).directive('bsRadio',['$button','$$rAF',function(e,t){var n=e.defaults,a=/^(true|false|\d+)$/;return{restrict:'A',require:'ngModel',link:function(e,o,i,r){var s,l=n,u='INPUT'===o[0].nodeName,c=u?o.parent():o;i.$observe('value',function(t){s=a.test(t)?e.$eval(t):t,r.$render()}),r.$render=function(){var e=angular.equals(r.$modelValue,s);t(function(){u&&(o[0].checked=e),c.toggleClass(l.activeClass,e)})},o.bind(l.toggleEvent,function(){e.$apply(function(){r.$setViewValue(s),r.$render()})})}}}]),angular.module('mgcrea.ngStrap.collapse',[]).provider('$collapse',function(){var e=this.defaults={animation:'am-collapse',disallowToggle:!1,activeClass:'in',startCollapsed:!1,allowMultiple:!1},t=this.controller=function(t,n,a){function o(e){for(var t=l.$targets.$active,n=0;nt;t++)angular.forEach(g.rows[t],u.$setDisabledEl)},u.select=function(e,t){angular.isDate(n.$dateValue)||(n.$dateValue=new Date(e)),!g.$mode||t?(n.$setViewValue(angular.copy(e)),n.$render(),p.autoclose&&!t&&l(function(){u.hide(!0)})):(angular.extend($,{year:e.getFullYear(),month:e.getMonth(),date:e.getDate()}),u.setMode(g.$mode-1),u.$build())},u.setMode=function(e){g.$mode=e,h=u.$views[g.$mode],u.$build()},u.$build=function(e){e===!0&&h.built||(e!==!1||h.built)&&h.build.call(h)},u.$updateSelected=function(){for(var e=0,t=g.rows.length;t>e;e++)angular.forEach(g.rows[e],o)},u.$isSelected=function(e){return h.isSelected(e)},u.$setDisabledEl=function(e){e.disabled=h.isDisabled(e.date)},u.$selectPane=function(e){var t=h.steps,n=new Date(Date.UTC($.year+(t.year||0)*e,$.month+(t.month||0)*e,1));angular.extend($,{year:n.getUTCFullYear(),month:n.getUTCMonth(),date:n.getUTCDate()}),u.$build()},u.$onMouseDown=function(e){if(e.preventDefault(),e.stopPropagation(),d){var t=angular.element(e.target);'button'!==t[0].nodeName.toLowerCase()&&(t=t.parent()),t.triggerHandler('click')}},u.$onKeyDown=function(e){if(/(38|37|39|40|13)/.test(e.keyCode)&&!e.shiftKey&&!e.altKey){if(e.preventDefault(),e.stopPropagation(),13===e.keyCode)return g.$mode?g.$apply(function(){u.setMode(g.$mode-1)}):u.hide(!0);h.onKeyDown(e),f.$digest()}};var v=u.init;u.init=function(){return c&&p.useNative?(t.prop('type','date'),void t.css('-webkit-appearance','textfield')):(d&&(t.prop('type','text'),t.attr('readonly','true'),t.on('click',i)),void v())};var w=u.destroy;u.destroy=function(){c&&p.useNative&&t.off('click',i),w()};var y=u.show;u.show=function(){y(),l(function(){u.$isShown&&(u.$element.on(d?'touchstart':'mousedown',u.$onMouseDown),p.keyboard&&t.on('keydown',u.$onKeyDown))},0,!1)};var b=u.hide;return u.hide=function(e){u.$isShown&&(u.$element.off(d?'touchstart':'mousedown',u.$onMouseDown),p.keyboard&&t.off('keydown',u.$onKeyDown),b(e))},u}var c=(angular.element(t.document.body),/(ip(a|o)d|iphone|android)/gi.test(t.navigator.userAgent)),d='createTouch'in t.document&&c;return e.lang||(e.lang=i.getDefaultLocale()),u.defaults=e,u}]}).directive('bsDatepicker',['$window','$parse','$q','$dateFormatter','$dateParser','$datepicker',function(e,t,n,a,o,i){var r=(i.defaults,/(ip(a|o)d|iphone|android)/gi.test(e.navigator.userAgent));return{restrict:'EAC',require:'ngModel',link:function(e,t,n,s){function l(e){return e&&e.length?e:null}function u(e){if(angular.isDate(e)){var t=isNaN(p.$options.minDate)||e.getTime()>=p.$options.minDate,n=isNaN(p.$options.maxDate)||e.getTime()<=p.$options.maxDate,a=t&&n;s.$setValidity('date',a),s.$setValidity('min',t),s.$setValidity('max',n),a&&(s.$dateValue=e)}}function c(){return!s.$dateValue||isNaN(s.$dateValue.getTime())?'':m(s.$dateValue,d.dateFormat)}var d={scope:e};angular.forEach(['template','templateUrl','controller','controllerAs','placement','container','delay','trigger','html','animation','autoclose','dateType','dateFormat','timezone','modelDateFormat','dayFormat','strictFormat','startWeek','startDate','useNative','lang','startView','minView','iconLeft','iconRight','daysOfWeekDisabled','id','prefixClass','prefixEvent'],function(e){angular.isDefined(n[e])&&(d[e]=n[e])});var f=/^(false|0|)$/i;angular.forEach(['html','container','autoclose','useNative'],function(e){angular.isDefined(n[e])&&f.test(n[e])&&(d[e]=!1)}),n.bsShow&&e.$watch(n.bsShow,function(e,t){p&&angular.isDefined(e)&&(angular.isString(e)&&(e=!!e.match(/true|,?(datepicker),?/i)),e===!0?p.show():p.hide())});var p=i(t,s,d);d=p.$options,r&&d.useNative&&(d.dateFormat='yyyy-MM-dd');var g=d.lang,m=function(e,t){return a.formatDate(e,t,g)},$=o({format:d.dateFormat,lang:g,strict:d.strictFormat});angular.forEach(['minDate','maxDate'],function(e){angular.isDefined(n[e])&&n.$observe(e,function(t){p.$options[e]=$.getDateForAttribute(e,t),!isNaN(p.$options[e])&&p.$build(!1),u(s.$dateValue)})}),e.$watch(n.ngModel,function(e,t){p.update(s.$dateValue)},!0),angular.isDefined(n.disabledDates)&&e.$watch(n.disabledDates,function(e,t){e=l(e),t=l(t),e&&p.updateDisabledDates(e)}),s.$parsers.unshift(function(e){var t;if(!e)return s.$setValidity('date',!0),null;var n=$.parse(e,s.$dateValue);return!n||isNaN(n.getTime())?void s.$setValidity('date',!1):(u(n),'string'===d.dateType?(t=$.timezoneOffsetAdjust(n,d.timezone,!0),m(t,d.modelDateFormat||d.dateFormat)):(t=$.timezoneOffsetAdjust(s.$dateValue,d.timezone,!0),'number'===d.dateType?t.getTime():'unix'===d.dateType?t.getTime()/1e3:'iso'===d.dateType?t.toISOString():new Date(t)))}),s.$formatters.push(function(e){var t;return t=angular.isUndefined(e)||null===e?0/0:angular.isDate(e)?e:'string'===d.dateType?$.parse(e,null,d.modelDateFormat):new Date('unix'===d.dateType?1e3*e:e),s.$dateValue=$.timezoneOffsetAdjust(t,d.timezone),c()}),s.$render=function(){t.val(c())},e.$on('$destroy',function(){p&&p.destroy(),d=null,p=null})}}}]).provider('datepickerViews',function(){function e(e,t){for(var n=[];e.length>0;)n.push(e.splice(0,t));return n}function t(e,t){return(e%t+t)%t}this.defaults={dayFormat:'dd',daySplit:7};this.$get=['$dateFormatter','$dateParser','$sce',function(n,a,o){return function(i){var r=i.$scope,s=i.$options,l=s.lang,u=function(e,t){return n.formatDate(e,t,l)},c=a({format:s.dateFormat,lang:l,strict:s.strictFormat}),d=n.weekdaysShort(l),f=d.slice(s.startWeek).concat(d.slice(0,s.startWeek)),p=o.trustAsHtml(''+f.join('')+''),g=i.$date||(s.startDate?c.getDateForAttribute('startDate',s.startDate):new Date),m={year:g.getFullYear(),month:g.getMonth(),date:g.getDate()},$=[{format:s.dayFormat,split:7,steps:{month:1},update:function(e,t){!this.built||t||e.getFullYear()!==m.year||e.getMonth()!==m.month?(angular.extend(m,{year:i.$date.getFullYear(),month:i.$date.getMonth(),date:i.$date.getDate()}),i.$build()):(e.getDate()!==m.date||1===e.getDate())&&(m.date=i.$date.getDate(),i.$updateSelected())},build:function(){var n=new Date(m.year,m.month,1),a=n.getTimezoneOffset(),o=new Date(+n-864e5*t(n.getDay()-s.startWeek,7)),l=o.getTimezoneOffset(),d=c.timezoneOffsetAdjust(new Date,s.timezone).toDateString();l!==a&&(o=new Date(+o+6e4*(l-a)));for(var f,g=[],$=0;42>$;$++)f=c.daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth(),o.getDate()+$)),g.push({date:f,isToday:f.toDateString()===d,label:u(f,this.format),selected:i.$date&&this.isSelected(f),muted:f.getMonth()!==m.month,disabled:this.isDisabled(f)});r.title=u(n,s.monthTitleFormat),r.showLabels=!0,r.labels=p,r.rows=e(g,this.split),this.built=!0},isSelected:function(e){return i.$date&&e.getFullYear()===i.$date.getFullYear()&&e.getMonth()===i.$date.getMonth()&&e.getDate()===i.$date.getDate()},isDisabled:function(e){var t=e.getTime();if(ts.maxDate)return!0;if(-1!==s.daysOfWeekDisabled.indexOf(e.getDay()))return!0;if(s.disabledDateRanges)for(var n=0;n=s.disabledDateRanges[n].start&&t<=s.disabledDateRanges[n].end)return!0;return!1},onKeyDown:function(e){if(i.$date){var t,n=i.$date.getTime();37===e.keyCode?t=new Date(n-864e5):38===e.keyCode?t=new Date(n-6048e5):39===e.keyCode?t=new Date(n+864e5):40===e.keyCode&&(t=new Date(n+6048e5)),this.isDisabled(t)||i.select(t,!0)}}},{name:'month',format:s.monthFormat,split:4,steps:{year:1},update:function(e,t){this.built&&e.getFullYear()===m.year?e.getMonth()!==m.month&&(angular.extend(m,{month:i.$date.getMonth(),date:i.$date.getDate()}),i.$updateSelected()):(angular.extend(m,{year:i.$date.getFullYear(),month:i.$date.getMonth(),date:i.$date.getDate()}),i.$build())},build:function(){for(var t,n=(new Date(m.year,0,1),[]),a=0;12>a;a++)t=new Date(m.year,a,1),n.push({date:t,label:u(t,this.format),selected:i.$isSelected(t),disabled:this.isDisabled(t)});r.title=u(t,s.yearTitleFormat),r.showLabels=!1,r.rows=e(n,this.split),this.built=!0},isSelected:function(e){return i.$date&&e.getFullYear()===i.$date.getFullYear()&&e.getMonth()===i.$date.getMonth()},isDisabled:function(e){var t=+new Date(e.getFullYear(),e.getMonth()+1,0);return ts.maxDate},onKeyDown:function(e){if(i.$date){var t=i.$date.getMonth(),n=new Date(i.$date);37===e.keyCode?n.setMonth(t-1):38===e.keyCode?n.setMonth(t-4):39===e.keyCode?n.setMonth(t+1):40===e.keyCode&&n.setMonth(t+4),this.isDisabled(n)||i.select(n,!0)}}},{name:'year',format:s.yearFormat,split:4,steps:{year:12},update:function(e,t){!this.built||t||parseInt(e.getFullYear()/20,10)!==parseInt(m.year/20,10)?(angular.extend(m,{year:i.$date.getFullYear(),month:i.$date.getMonth(),date:i.$date.getDate()}),i.$build()):e.getFullYear()!==m.year&&(angular.extend(m,{year:i.$date.getFullYear(),month:i.$date.getMonth(),date:i.$date.getDate()}),i.$updateSelected())},build:function(){for(var t,n=m.year-m.year%(3*this.split),a=[],o=0;12>o;o++)t=new Date(n+o,0,1),a.push({date:t,label:u(t,this.format),selected:i.$isSelected(t),disabled:this.isDisabled(t)});r.title=a[0].label+'-'+a[a.length-1].label,r.showLabels=!1,r.rows=e(a,this.split),this.built=!0},isSelected:function(e){return i.$date&&e.getFullYear()===i.$date.getFullYear()},isDisabled:function(e){var t=+new Date(e.getFullYear()+1,0,0);return ts.maxDate},onKeyDown:function(e){if(i.$date){var t=i.$date.getFullYear(),n=new Date(i.$date);37===e.keyCode?n.setYear(t-1):38===e.keyCode?n.setYear(t-4):39===e.keyCode?n.setYear(t+1):40===e.keyCode&&n.setYear(t+4),this.isDisabled(n)||i.select(n,!0)}}}];return{views:s.minView?Array.prototype.slice.call($,s.minView):$,viewDate:m}}}]}),angular.module('mgcrea.ngStrap.dropdown',['mgcrea.ngStrap.tooltip']).provider('$dropdown',function(){var e=this.defaults={animation:'am-fade',prefixClass:'dropdown',prefixEvent:'dropdown',placement:'bottom-left',templateUrl:'dropdown/dropdown.tpl.html',trigger:'click',container:!1,keyboard:!0,html:!1,delay:0};this.$get=['$window','$rootScope','$tooltip','$timeout',function(t,n,a,o){function i(t,i){function l(e){return e.target!==t[0]?e.target!==t[0]&&u.hide():void 0}{var u={},c=angular.extend({},e,i);u.$scope=c.scope&&c.scope.$new()||n.$new()}u=a(t,c);var d=t.parent();u.$onKeyDown=function(e){if(/(38|40)/.test(e.keyCode)){e.preventDefault(),e.stopPropagation();var t=angular.element(u.$element[0].querySelectorAll('li:not(.divider) a'));if(t.length){var n;angular.forEach(t,function(e,t){s&&s.call(e,':focus')&&(n=t)}),38===e.keyCode&&n>0?n--:40===e.keyCode&&no;o++)if(e[o].toLowerCase()===a)return o;return-1}t.prototype.setMilliseconds=function(e){this.milliseconds=e},t.prototype.setSeconds=function(e){this.seconds=e},t.prototype.setMinutes=function(e){this.minutes=e},t.prototype.setHours=function(e){this.hours=e},t.prototype.getHours=function(){return this.hours},t.prototype.setDate=function(e){this.day=e},t.prototype.setMonth=function(e){this.month=e},t.prototype.setFullYear=function(e){this.year=e},t.prototype.fromDate=function(e){return this.year=e.getFullYear(),this.month=e.getMonth(),this.day=e.getDate(),this.hours=e.getHours(),this.minutes=e.getMinutes(),this.seconds=e.getSeconds(),this.milliseconds=e.getMilliseconds(),this},t.prototype.toDate=function(){return new Date(this.year,this.month,this.day,this.hours,this.minutes,this.seconds,this.milliseconds)};var i=t.prototype,r=this.defaults={format:'shortDate',strict:!1};this.$get=['$locale','dateFilter',function(e,s){var l=function(l){function u(e){var t,n=Object.keys(h),a=[],o=[],i=e;for(t=0;t1){var r=i.search(n[t]);e=e.split(n[t]).join(''),h[n[t]]&&(a[r]=h[n[t]])}return angular.forEach(a,function(e){e&&o.push(e)}),o}function c(e){return e.replace(/\//g,'[\\/]').replace('/-/g','[-]').replace(/\./g,'[.]').replace(/\\s/g,'[\\s]')}function d(e){var t,n=Object.keys($),a=e;for(t=0;t=1*e&&2===e.length?2e3+1*e:1*e)}};return m.init=function(){m.$format=e.DATETIME_FORMATS[g.format]||g.format,f=d(m.$format),p=u(m.$format)},m.isValid=function(e){return angular.isDate(e)?!isNaN(e.getTime()):f.test(e)},m.parse=function(n,a,o,i){o&&(o=e.DATETIME_FORMATS[o]||o),angular.isDate(n)&&(n=s(n,o||m.$format,i));var r=o?d(o):f,l=o?u(o):p,c=r.exec(n);if(!c)return!1;for(var g=(new t).fromDate(a&&!isNaN(a.getTime())?a:new Date(1970,0,1,0)),$=0;$').html(n.trim()).contents(),r=o(a);return{locals:e,element:a,link:function(t){if(e.$scope=t,u){var n=i(u,e,!0);g&&angular.extend(n.instance,e);var o=angular.isObject(n)?n:n();a.data('$ngControllerController',o),a.children().data('$ngControllerController',o),c&&(t[c]=o)}return r.apply(null,arguments)}}})};var u={}}angular.module('mgcrea.ngStrap',['mgcrea.ngStrap.modal','mgcrea.ngStrap.aside','mgcrea.ngStrap.alert','mgcrea.ngStrap.button','mgcrea.ngStrap.select','mgcrea.ngStrap.datepicker','mgcrea.ngStrap.timepicker','mgcrea.ngStrap.navbar','mgcrea.ngStrap.tooltip','mgcrea.ngStrap.popover','mgcrea.ngStrap.dropdown','mgcrea.ngStrap.typeahead','mgcrea.ngStrap.scrollspy','mgcrea.ngStrap.affix','mgcrea.ngStrap.tab','mgcrea.ngStrap.collapse']),angular.module('mgcrea.ngStrap.affix',['mgcrea.ngStrap.helpers.dimensions','mgcrea.ngStrap.helpers.debounce']).provider('$affix',function(){var e=this.defaults={offsetTop:'auto',inlineStyles:!0};this.$get=['$window','debounce','dimensions',function(t,n,a){function o(o,s){function l(e,t,n){var a=u(),o=c();return v>=a?'top':null!==e&&a+e<=t.top?'middle':null!==w&&t.top+n+$>=o-w?'bottom':'middle'}function u(){return p[0]===t?t.pageYOffset:p[0].scrollTop}function c(){return p[0]===t?t.document.body.scrollHeight:p[0].scrollHeight}var d={},f=angular.extend({},e,s),p=f.target,g='affix affix-top affix-bottom',m=!1,$=0,h=0,v=0,w=0,y=null,b=null,D=o.parent();if(f.offsetParent)if(f.offsetParent.match(/^\d+$/))for(var k=0;k<1*f.offsetParent-1;k++)D=D.parent();else D=angular.element(f.offsetParent);return d.init=function(){this.$parseOffsets(),h=a.offset(o[0]).top+$,m=!o[0].style.width,p.on('scroll',this.checkPosition),p.on('click',this.checkPositionWithEventLoop),r.on('resize',this.$debouncedOnResize),this.checkPosition(),this.checkPositionWithEventLoop()},d.destroy=function(){p.off('scroll',this.checkPosition),p.off('click',this.checkPositionWithEventLoop),r.off('resize',this.$debouncedOnResize)},d.checkPositionWithEventLoop=function(){setTimeout(d.checkPosition,1)},d.checkPosition=function(){var e=u(),t=a.offset(o[0]),n=a.height(o[0]),r=l(b,t,n);y!==r&&(y=r,o.removeClass(g).addClass('affix'+('middle'!==r?'-'+r:'')),'top'===r?(b=null,m&&o.css('width',''),f.inlineStyles&&(o.css('position',f.offsetParent?'':'relative'),o.css('top',''))):'bottom'===r?(b=f.offsetUnpin?-(1*f.offsetUnpin):t.top-e,m&&o.css('width',''),f.inlineStyles&&(o.css('position',f.offsetParent?'':'relative'),o.css('top',f.offsetParent?'':i[0].offsetHeight-w-n-h+'px'))):(b=null,m&&o.css('width',o[0].offsetWidth+'px'),f.inlineStyles&&(o.css('position','fixed'),o.css('top',$+'px'))))},d.$onResize=function(){d.$parseOffsets(),d.checkPosition()},d.$debouncedOnResize=n(d.$onResize,50),d.$parseOffsets=function(){var e=o.css('position');f.inlineStyles&&o.css('position',f.offsetParent?'':'relative'),f.offsetTop&&('auto'===f.offsetTop&&(f.offsetTop='+0'),f.offsetTop.match(/^[-+]\d+$/)?($=1*-f.offsetTop,v=f.offsetParent?a.offset(D[0]).top+1*f.offsetTop:a.offset(o[0]).top-a.css(o[0],'marginTop',!0)+1*f.offsetTop):v=1*f.offsetTop),f.offsetBottom&&(w=f.offsetParent&&f.offsetBottom.match(/^[-+]\d+$/)?c()-(a.offset(D[0]).top+a.height(D[0]))+1*f.offsetBottom+1:1*f.offsetBottom),f.inlineStyles&&o.css('position',e)},d.init(),d}var i=angular.element(t.document.body),r=angular.element(t);return o}]}).directive('bsAffix',['$affix','$window',function(e,t){return{restrict:'EAC',require:'^?bsAffixTarget',link:function(n,a,o,i){var r={scope:n,target:i?i.$element:angular.element(t)};angular.forEach(['offsetTop','offsetBottom','offsetParent','offsetUnpin','inlineStyles'],function(e){if(angular.isDefined(o[e])){var t=o[e];/true/i.test(t)&&(t=!0),/false/i.test(t)&&(t=!1),r[e]=t}});var s=e(a,r);n.$on('$destroy',function(){s&&s.destroy(),r=null,s=null})}}}]).directive('bsAffixTarget',function(){return{controller:['$element',function(e){this.$element=e}]}}),angular.module('mgcrea.ngStrap.alert',['mgcrea.ngStrap.modal']).provider('$alert',function(){var e=this.defaults={animation:'am-fade',prefixClass:'alert',prefixEvent:'alert',placement:null,templateUrl:'alert/alert.tpl.html',container:!1,element:null,backdrop:!1,keyboard:!0,show:!0,duration:!1,type:!1,dismissable:!0};this.$get=['$modal','$timeout',function(t,n){function a(a){var o={},i=angular.extend({},e,a);o=t(i),o.$scope.dismissable=!!i.dismissable,i.type&&(o.$scope.type=i.type);var r=o.show;return i.duration&&(o.show=function(){r(),n(function(){o.hide()},1e3*i.duration)}),o}return a}]}).directive('bsAlert',['$window','$sce','$alert',function(e,t,n){e.requestAnimationFrame||e.setTimeout;return{restrict:'EAC',scope:!0,link:function(e,a,o,i){var r={scope:e,element:a,show:!1};angular.forEach(['template','templateUrl','controller','controllerAs','placement','keyboard','html','container','animation','duration','dismissable'],function(e){angular.isDefined(o[e])&&(r[e]=o[e])});var s=/^(false|0|)$/i;angular.forEach(['keyboard','html','container','dismissable'],function(e){angular.isDefined(o[e])&&s.test(o[e])&&(r[e]=!1)}),e.hasOwnProperty('title')||(e.title=''),angular.forEach(['title','content','type'],function(n){o[n]&&o.$observe(n,function(a,o){e[n]=t.trustAsHtml(a)})}),o.bsAlert&&e.$watch(o.bsAlert,function(t,n){angular.isObject(t)?angular.extend(e,t):e.content=t},!0);var l=n(r);a.on(o.trigger||'click',l.toggle),e.$on('$destroy',function(){l&&l.destroy(),r=null,l=null})}}}]),angular.module('mgcrea.ngStrap.aside',['mgcrea.ngStrap.modal']).provider('$aside',function(){var e=this.defaults={animation:'am-fade-and-slide-right',prefixClass:'aside',prefixEvent:'aside',placement:'right',templateUrl:'aside/aside.tpl.html',contentTemplate:!1,container:!1,element:null,backdrop:!0,keyboard:!0,html:!1,show:!0};this.$get=['$modal',function(t){function n(n){var a={},o=angular.extend({},e,n);return a=t(o)}return n}]}).directive('bsAside',['$window','$sce','$aside',function(e,t,n){e.requestAnimationFrame||e.setTimeout;return{restrict:'EAC',scope:!0,link:function(e,a,o,i){var r={scope:e,element:a,show:!1};angular.forEach(['template','templateUrl','controller','controllerAs','contentTemplate','placement','backdrop','keyboard','html','container','animation'],function(e){angular.isDefined(o[e])&&(r[e]=o[e])});var s=/^(false|0|)$/i;angular.forEach(['backdrop','keyboard','html','container'],function(e){angular.isDefined(o[e])&&s.test(o[e])&&(r[e]=!1)}),angular.forEach(['title','content'],function(n){o[n]&&o.$observe(n,function(a,o){e[n]=t.trustAsHtml(a)})}),o.bsAside&&e.$watch(o.bsAside,function(t,n){angular.isObject(t)?angular.extend(e,t):e.content=t},!0);var l=n(r);a.on(o.trigger||'click',l.toggle),e.$on('$destroy',function(){l&&l.destroy(),r=null,l=null})}}}]),angular.module('mgcrea.ngStrap.button',[]).provider('$button',function(){var e=this.defaults={activeClass:'active',toggleEvent:'click'};this.$get=function(){return{defaults:e}}}).directive('bsCheckboxGroup',function(){return{restrict:'A',require:'ngModel',compile:function(e,t){e.attr('data-toggle','buttons'),e.removeAttr('ng-model');var n=e[0].querySelectorAll('input[type="checkbox"]');angular.forEach(n,function(e){var n=angular.element(e);n.attr('bs-checkbox',''),n.attr('ng-model',t.ngModel+'.'+n.attr('value'))})}}}).directive('bsCheckbox',['$button','$$rAF',function(e,t){var n=e.defaults,a=/^(true|false|\d+)$/;return{restrict:'A',require:'ngModel',link:function(e,o,i,r){var s=n,l='INPUT'===o[0].nodeName,u=l?o.parent():o,c=angular.isDefined(i.trueValue)?i.trueValue:!0;a.test(i.trueValue)&&(c=e.$eval(i.trueValue));var d=angular.isDefined(i.falseValue)?i.falseValue:!1;a.test(i.falseValue)&&(d=e.$eval(i.falseValue));var f='boolean'!=typeof c||'boolean'!=typeof d;f&&(r.$parsers.push(function(e){return e?c:d}),r.$formatters.push(function(e){return angular.equals(e,c)}),e.$watch(i.ngModel,function(e,t){r.$render()})),r.$render=function(){var e=angular.equals(r.$modelValue,c);t(function(){l&&(o[0].checked=e),u.toggleClass(s.activeClass,e)})},o.bind(s.toggleEvent,function(){e.$apply(function(){l||r.$setViewValue(!u.hasClass('active')),f||r.$render()})})}}}]).directive('bsRadioGroup',function(){return{restrict:'A',require:'ngModel',compile:function(e,t){e.attr('data-toggle','buttons'),e.removeAttr('ng-model');var n=e[0].querySelectorAll('input[type="radio"]');angular.forEach(n,function(e){angular.element(e).attr('bs-radio',''),angular.element(e).attr('ng-model',t.ngModel)})}}}).directive('bsRadio',['$button','$$rAF',function(e,t){var n=e.defaults,a=/^(true|false|\d+)$/;return{restrict:'A',require:'ngModel',link:function(e,o,i,r){var s,l=n,u='INPUT'===o[0].nodeName,c=u?o.parent():o;i.$observe('value',function(t){s=a.test(t)?e.$eval(t):t,r.$render()}),r.$render=function(){var e=angular.equals(r.$modelValue,s);t(function(){u&&(o[0].checked=e),c.toggleClass(l.activeClass,e)})},o.bind(l.toggleEvent,function(){e.$apply(function(){r.$setViewValue(s),r.$render()})})}}}]),angular.module('mgcrea.ngStrap.collapse',[]).provider('$collapse',function(){var e=this.defaults={animation:'am-collapse',disallowToggle:!1,activeClass:'in',startCollapsed:!1,allowMultiple:!1},t=this.controller=function(t,n,a){function o(e){for(var t=l.$targets.$active,n=0;nt;t++)angular.forEach(g.rows[t],u.$setDisabledEl)},u.select=function(e,t){angular.isDate(n.$dateValue)||(n.$dateValue=new Date(e)),!g.$mode||t?(n.$setViewValue(angular.copy(e)),n.$render(),p.autoclose&&!t&&l(function(){u.hide(!0)})):(angular.extend($,{year:e.getFullYear(),month:e.getMonth(),date:e.getDate()}),u.setMode(g.$mode-1),u.$build())},u.setMode=function(e){g.$mode=e,h=u.$views[g.$mode],u.$build()},u.$build=function(e){e===!0&&h.built||(e!==!1||h.built)&&h.build.call(h)},u.$updateSelected=function(){for(var e=0,t=g.rows.length;t>e;e++)angular.forEach(g.rows[e],o)},u.$isSelected=function(e){return h.isSelected(e)},u.$setDisabledEl=function(e){e.disabled=h.isDisabled(e.date)},u.$selectPane=function(e){var t=h.steps,n=new Date(Date.UTC($.year+(t.year||0)*e,$.month+(t.month||0)*e,1));angular.extend($,{year:n.getUTCFullYear(),month:n.getUTCMonth(),date:n.getUTCDate()}),u.$build()},u.$onMouseDown=function(e){if(e.preventDefault(),e.stopPropagation(),d){var t=angular.element(e.target);'button'!==t[0].nodeName.toLowerCase()&&(t=t.parent()),t.triggerHandler('click')}},u.$onKeyDown=function(e){if(/(38|37|39|40|13)/.test(e.keyCode)&&!e.shiftKey&&!e.altKey){if(e.preventDefault(),e.stopPropagation(),13===e.keyCode)return g.$mode?g.$apply(function(){u.setMode(g.$mode-1)}):u.hide(!0);h.onKeyDown(e),f.$digest()}};var v=u.init;u.init=function(){return c&&p.useNative?(t.prop('type','date'),void t.css('-webkit-appearance','textfield')):(d&&(t.prop('type','text'),t.attr('readonly','true'),t.on('click',i)),void v())};var w=u.destroy;u.destroy=function(){c&&p.useNative&&t.off('click',i),w()};var y=u.show;u.show=function(){!d&&t.attr('readonly')||t.attr('disabled')||(y(),l(function(){u.$isShown&&(u.$element.on(d?'touchstart':'mousedown',u.$onMouseDown),p.keyboard&&t.on('keydown',u.$onKeyDown))},0,!1))};var b=u.hide;return u.hide=function(e){u.$isShown&&(u.$element.off(d?'touchstart':'mousedown',u.$onMouseDown),p.keyboard&&t.off('keydown',u.$onKeyDown),b(e))},u}var c=(angular.element(t.document.body),/(ip(a|o)d|iphone|android)/gi.test(t.navigator.userAgent)),d='createTouch'in t.document&&c;return e.lang||(e.lang=i.getDefaultLocale()),u.defaults=e,u}]}).directive('bsDatepicker',['$window','$parse','$q','$dateFormatter','$dateParser','$datepicker',function(e,t,n,a,o,i){var r=(i.defaults,/(ip(a|o)d|iphone|android)/gi.test(e.navigator.userAgent));return{restrict:'EAC',require:'ngModel',link:function(e,t,n,s){function l(e){return e&&e.length?e:null}function u(e){if(angular.isDate(e)){var t=isNaN(p.$options.minDate)||e.getTime()>=p.$options.minDate,n=isNaN(p.$options.maxDate)||e.getTime()<=p.$options.maxDate,a=t&&n;s.$setValidity('date',a),s.$setValidity('min',t),s.$setValidity('max',n),a&&(s.$dateValue=e)}}function c(){return!s.$dateValue||isNaN(s.$dateValue.getTime())?'':m(s.$dateValue,d.dateFormat)}var d={scope:e};angular.forEach(['template','templateUrl','controller','controllerAs','placement','container','delay','trigger','html','animation','autoclose','dateType','dateFormat','timezone','modelDateFormat','dayFormat','strictFormat','startWeek','startDate','useNative','lang','startView','minView','iconLeft','iconRight','daysOfWeekDisabled','id','prefixClass','prefixEvent'],function(e){angular.isDefined(n[e])&&(d[e]=n[e])});var f=/^(false|0|)$/i;angular.forEach(['html','container','autoclose','useNative'],function(e){angular.isDefined(n[e])&&f.test(n[e])&&(d[e]=!1)}),n.bsShow&&e.$watch(n.bsShow,function(e,t){p&&angular.isDefined(e)&&(angular.isString(e)&&(e=!!e.match(/true|,?(datepicker),?/i)),e===!0?p.show():p.hide())});var p=i(t,s,d);d=p.$options,r&&d.useNative&&(d.dateFormat='yyyy-MM-dd');var g=d.lang,m=function(e,t){return a.formatDate(e,t,g)},$=o({format:d.dateFormat,lang:g,strict:d.strictFormat});angular.forEach(['minDate','maxDate'],function(e){angular.isDefined(n[e])&&n.$observe(e,function(t){p.$options[e]=$.getDateForAttribute(e,t),!isNaN(p.$options[e])&&p.$build(!1),u(s.$dateValue)})}),e.$watch(n.ngModel,function(e,t){p.update(s.$dateValue)},!0),angular.isDefined(n.disabledDates)&&e.$watch(n.disabledDates,function(e,t){e=l(e),t=l(t),e&&p.updateDisabledDates(e)}),s.$parsers.unshift(function(e){var t;if(!e)return s.$setValidity('date',!0),null;var n=$.parse(e,s.$dateValue);return!n||isNaN(n.getTime())?void s.$setValidity('date',!1):(u(n),'string'===d.dateType?(t=$.timezoneOffsetAdjust(n,d.timezone,!0),m(t,d.modelDateFormat||d.dateFormat)):(t=$.timezoneOffsetAdjust(s.$dateValue,d.timezone,!0),'number'===d.dateType?t.getTime():'unix'===d.dateType?t.getTime()/1e3:'iso'===d.dateType?t.toISOString():new Date(t)))}),s.$formatters.push(function(e){var t;return t=angular.isUndefined(e)||null===e?0/0:angular.isDate(e)?e:'string'===d.dateType?$.parse(e,null,d.modelDateFormat):new Date('unix'===d.dateType?1e3*e:e),s.$dateValue=$.timezoneOffsetAdjust(t,d.timezone),c()}),s.$render=function(){t.val(c())},e.$on('$destroy',function(){p&&p.destroy(),d=null,p=null})}}}]).provider('datepickerViews',function(){function e(e,t){for(var n=[];e.length>0;)n.push(e.splice(0,t));return n}function t(e,t){return(e%t+t)%t}this.defaults={dayFormat:'dd',daySplit:7};this.$get=['$dateFormatter','$dateParser','$sce',function(n,a,o){return function(i){var r=i.$scope,s=i.$options,l=s.lang,u=function(e,t){return n.formatDate(e,t,l)},c=a({format:s.dateFormat,lang:l,strict:s.strictFormat}),d=n.weekdaysShort(l),f=d.slice(s.startWeek).concat(d.slice(0,s.startWeek)),p=o.trustAsHtml(''+f.join('')+''),g=i.$date||(s.startDate?c.getDateForAttribute('startDate',s.startDate):new Date),m={year:g.getFullYear(),month:g.getMonth(),date:g.getDate()},$=[{format:s.dayFormat,split:7,steps:{month:1},update:function(e,t){!this.built||t||e.getFullYear()!==m.year||e.getMonth()!==m.month?(angular.extend(m,{year:i.$date.getFullYear(),month:i.$date.getMonth(),date:i.$date.getDate()}),i.$build()):(e.getDate()!==m.date||1===e.getDate())&&(m.date=i.$date.getDate(),i.$updateSelected())},build:function(){var n=new Date(m.year,m.month,1),a=n.getTimezoneOffset(),o=new Date(+n-864e5*t(n.getDay()-s.startWeek,7)),l=o.getTimezoneOffset(),d=c.timezoneOffsetAdjust(new Date,s.timezone).toDateString();l!==a&&(o=new Date(+o+6e4*(l-a)));for(var f,g=[],$=0;42>$;$++)f=c.daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth(),o.getDate()+$)),g.push({date:f,isToday:f.toDateString()===d,label:u(f,this.format),selected:i.$date&&this.isSelected(f),muted:f.getMonth()!==m.month,disabled:this.isDisabled(f)});r.title=u(n,s.monthTitleFormat),r.showLabels=!0,r.labels=p,r.rows=e(g,this.split),this.built=!0},isSelected:function(e){return i.$date&&e.getFullYear()===i.$date.getFullYear()&&e.getMonth()===i.$date.getMonth()&&e.getDate()===i.$date.getDate()},isDisabled:function(e){var t=e.getTime();if(ts.maxDate)return!0;if(-1!==s.daysOfWeekDisabled.indexOf(e.getDay()))return!0;if(s.disabledDateRanges)for(var n=0;n=s.disabledDateRanges[n].start&&t<=s.disabledDateRanges[n].end)return!0;return!1},onKeyDown:function(e){if(i.$date){var t,n=i.$date.getTime();37===e.keyCode?t=new Date(n-864e5):38===e.keyCode?t=new Date(n-6048e5):39===e.keyCode?t=new Date(n+864e5):40===e.keyCode&&(t=new Date(n+6048e5)),this.isDisabled(t)||i.select(t,!0)}}},{name:'month',format:s.monthFormat,split:4,steps:{year:1},update:function(e,t){this.built&&e.getFullYear()===m.year?e.getMonth()!==m.month&&(angular.extend(m,{month:i.$date.getMonth(),date:i.$date.getDate()}),i.$updateSelected()):(angular.extend(m,{year:i.$date.getFullYear(),month:i.$date.getMonth(),date:i.$date.getDate()}),i.$build())},build:function(){for(var t,n=(new Date(m.year,0,1),[]),a=0;12>a;a++)t=new Date(m.year,a,1),n.push({date:t,label:u(t,this.format),selected:i.$isSelected(t),disabled:this.isDisabled(t)});r.title=u(t,s.yearTitleFormat),r.showLabels=!1,r.rows=e(n,this.split),this.built=!0},isSelected:function(e){return i.$date&&e.getFullYear()===i.$date.getFullYear()&&e.getMonth()===i.$date.getMonth()},isDisabled:function(e){var t=+new Date(e.getFullYear(),e.getMonth()+1,0);return ts.maxDate},onKeyDown:function(e){if(i.$date){var t=i.$date.getMonth(),n=new Date(i.$date);37===e.keyCode?n.setMonth(t-1):38===e.keyCode?n.setMonth(t-4):39===e.keyCode?n.setMonth(t+1):40===e.keyCode&&n.setMonth(t+4),this.isDisabled(n)||i.select(n,!0)}}},{name:'year',format:s.yearFormat,split:4,steps:{year:12},update:function(e,t){!this.built||t||parseInt(e.getFullYear()/20,10)!==parseInt(m.year/20,10)?(angular.extend(m,{year:i.$date.getFullYear(),month:i.$date.getMonth(),date:i.$date.getDate()}),i.$build()):e.getFullYear()!==m.year&&(angular.extend(m,{year:i.$date.getFullYear(),month:i.$date.getMonth(),date:i.$date.getDate()}),i.$updateSelected())},build:function(){for(var t,n=m.year-m.year%(3*this.split),a=[],o=0;12>o;o++)t=new Date(n+o,0,1),a.push({date:t,label:u(t,this.format),selected:i.$isSelected(t),disabled:this.isDisabled(t)});r.title=a[0].label+'-'+a[a.length-1].label,r.showLabels=!1,r.rows=e(a,this.split),this.built=!0},isSelected:function(e){return i.$date&&e.getFullYear()===i.$date.getFullYear()},isDisabled:function(e){var t=+new Date(e.getFullYear()+1,0,0);return ts.maxDate},onKeyDown:function(e){if(i.$date){var t=i.$date.getFullYear(),n=new Date(i.$date);37===e.keyCode?n.setYear(t-1):38===e.keyCode?n.setYear(t-4):39===e.keyCode?n.setYear(t+1):40===e.keyCode&&n.setYear(t+4),this.isDisabled(n)||i.select(n,!0)}}}];return{views:s.minView?Array.prototype.slice.call($,s.minView):$,viewDate:m}}}]}),angular.module('mgcrea.ngStrap.dropdown',['mgcrea.ngStrap.tooltip']).provider('$dropdown',function(){var e=this.defaults={animation:'am-fade',prefixClass:'dropdown',prefixEvent:'dropdown',placement:'bottom-left',templateUrl:'dropdown/dropdown.tpl.html',trigger:'click',container:!1,keyboard:!0,html:!1,delay:0};this.$get=['$window','$rootScope','$tooltip','$timeout',function(t,n,a,o){function i(t,i){function l(e){return e.target!==t[0]?e.target!==t[0]&&u.hide():void 0}{var u={},c=angular.extend({},e,i);u.$scope=c.scope&&c.scope.$new()||n.$new()}u=a(t,c);var d=t.parent();u.$onKeyDown=function(e){if(/(38|40)/.test(e.keyCode)){e.preventDefault(),e.stopPropagation();var t=angular.element(u.$element[0].querySelectorAll('li:not(.divider) a'));if(t.length){var n;angular.forEach(t,function(e,t){s&&s.call(e,':focus')&&(n=t)}),38===e.keyCode&&n>0?n--:40===e.keyCode&&no;o++)if(e[o].toLowerCase()===a)return o;return-1}t.prototype.setMilliseconds=function(e){this.milliseconds=e},t.prototype.setSeconds=function(e){this.seconds=e},t.prototype.setMinutes=function(e){this.minutes=e},t.prototype.setHours=function(e){this.hours=e},t.prototype.getHours=function(){return this.hours},t.prototype.setDate=function(e){this.day=e},t.prototype.setMonth=function(e){this.month=e},t.prototype.setFullYear=function(e){this.year=e},t.prototype.fromDate=function(e){return this.year=e.getFullYear(),this.month=e.getMonth(),this.day=e.getDate(),this.hours=e.getHours(),this.minutes=e.getMinutes(),this.seconds=e.getSeconds(),this.milliseconds=e.getMilliseconds(),this},t.prototype.toDate=function(){return new Date(this.year,this.month,this.day,this.hours,this.minutes,this.seconds,this.milliseconds)};var i=t.prototype,r=this.defaults={format:'shortDate',strict:!1};this.$get=['$locale','dateFilter',function(e,s){var l=function(l){function u(e){var t,n=Object.keys(h),a=[],o=[],i=e;for(t=0;t1){var r=i.search(n[t]);e=e.split(n[t]).join(''),h[n[t]]&&(a[r]=h[n[t]])}return angular.forEach(a,function(e){e&&o.push(e)}),o}function c(e){return e.replace(/\//g,'[\\/]').replace('/-/g','[-]').replace(/\./g,'[.]').replace(/\\s/g,'[\\s]')}function d(e){var t,n=Object.keys($),a=e;for(t=0;t=1*e&&2===e.length?2e3+1*e:1*e)}};return m.init=function(){m.$format=e.DATETIME_FORMATS[g.format]||g.format,f=d(m.$format),p=u(m.$format)},m.isValid=function(e){return angular.isDate(e)?!isNaN(e.getTime()):f.test(e)},m.parse=function(n,a,o,i){o&&(o=e.DATETIME_FORMATS[o]||o),angular.isDate(n)&&(n=s(n,o||m.$format,i));var r=o?d(o):f,l=o?u(o):p,c=r.exec(n);if(!c)return!1;for(var g=(new t).fromDate(a&&!isNaN(a.getTime())?a:new Date(1970,0,1,0)),$=0;$12?e.getHours()+2:0),e):null},m.timezoneOffsetAdjust=function(e,t,n){return e?(t&&'UTC'===t&&(e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+(n?-1:1)*e.getTimezoneOffset())),e):null},m.init(),m};return l}]}]),angular.module('mgcrea.ngStrap.helpers.debounce',[]).factory('debounce',['$timeout',function(e){return function(t,n,a){var o=null;return function(){var i=this,r=arguments,s=a&&!o;return o&&e.cancel(o),o=e(function(){o=null,a||t.apply(i,r)},n,!1),s&&t.apply(i,r),o}}}]).factory('throttle',['$timeout',function(e){return function(t,n,a){var o=null;return a||(a={}),function(){var i=this,r=arguments;o||(a.leading!==!1&&t.apply(i,r),o=e(function(){o=null,a.trailing!==!1&&t.apply(i,r)},n,!1))}}}]),angular.module('mgcrea.ngStrap.helpers.dimensions',[]).factory('dimensions',['$document','$window',function(t,n){var a=(angular.element,{}),o=a.nodeName=function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()};a.css=function(t,n,a){var o;return o=t.currentStyle?t.currentStyle[n]:e.getComputedStyle?e.getComputedStyle(t)[n]:t.style[n],a===!0?parseFloat(o)||0:o},a.offset=function(t){var n=t.getBoundingClientRect(),a=t.ownerDocument;return{width:n.width||t.offsetWidth,height:n.height||t.offsetHeight,top:n.top+(e.pageYOffset||a.documentElement.scrollTop)-(a.documentElement.clientTop||0),left:n.left+(e.pageXOffset||a.documentElement.scrollLeft)-(a.documentElement.clientLeft||0)}},a.setOffset=function(e,t,n){var o,i,r,s,l,u,c,d=a.css(e,'position'),f=angular.element(e),p={};'static'===d&&(e.style.position='relative'),l=a.offset(e),r=a.css(e,'top'),u=a.css(e,'left'),c=('absolute'===d||'fixed'===d)&&(r+u).indexOf('auto')>-1,c?(o=a.position(e),s=o.top,i=o.left):(s=parseFloat(r)||0,i=parseFloat(u)||0),angular.isFunction(t)&&(t=t.call(e,n,l)),null!==t.top&&(p.top=t.top-l.top+s),null!==t.left&&(p.left=t.left-l.left+i),'using'in t?t.using.call(f,p):f.css({top:p.top+'px',left:p.left+'px'})},a.position=function(e){var t,n,r={top:0,left:0};return'fixed'===a.css(e,'position')?n=e.getBoundingClientRect():(t=i(e),n=a.offset(e),o(t,'html')||(r=a.offset(t)),r.top+=a.css(t,'borderTopWidth',!0),r.left+=a.css(t,'borderLeftWidth',!0)),{width:e.offsetWidth,height:e.offsetHeight,top:n.top-r.top-a.css(e,'marginTop',!0),left:n.left-r.left-a.css(e,'marginLeft',!0)}};var i=function(e){var t=e.ownerDocument,n=e.offsetParent||t;if(o(n,'#document'))return t.documentElement;for(;n&&!o(n,'html')&&'static'===a.css(n,'position');)n=n.offsetParent;return n||t.documentElement};return a.height=function(e,t){var n=e.offsetHeight;return t?n+=a.css(e,'marginTop',!0)+a.css(e,'marginBottom',!0):n-=a.css(e,'paddingTop',!0)+a.css(e,'paddingBottom',!0)+a.css(e,'borderTopWidth',!0)+a.css(e,'borderBottomWidth',!0),n},a.width=function(e,t){var n=e.offsetWidth;return t?n+=a.css(e,'marginLeft',!0)+a.css(e,'marginRight',!0):n-=a.css(e,'paddingLeft',!0)+a.css(e,'paddingRight',!0)+a.css(e,'borderLeftWidth',!0)+a.css(e,'borderRightWidth',!0),n},a}]),angular.module('mgcrea.ngStrap.helpers.parseOptions',[]).provider('$parseOptions',function(){var e=this.defaults={regexp:/^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+(.*?)(?:\s+track\s+by\s+(.*?))?$/};this.$get=['$parse','$q',function(t,n){function a(a,o){function i(e,t){return e.map(function(e,n){var a,o,i={};return i[c]=e,a=u(t,i),o=p(t,i),{label:a,value:o,index:n}})}var r={},s=angular.extend({},e,o);r.$values=[];var l,u,c,d,f,p,g;return r.init=function(){r.$match=l=a.match(s.regexp),u=t(l[2]||l[1]),c=l[4]||l[6],d=l[5],f=t(l[3]||''),p=t(l[2]?l[1]:c),g=t(l[7])},r.valuesFn=function(e,t){var a;try{a=g(e,t)}catch(o){a=[]}return n.when(a).then(function(t){return angular.isArray(t)||(t=[]),r.$values=t.length?i(t,e):[],r.$values})},r.displayValue=function(e){var t={};return t[c]=e,u(t)},r.init(),r}return a}]}),angular.version.minor<3&&angular.version.dot<14&&angular.module('ng').factory('$$rAF',['$window','$timeout',function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame,a=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.mozCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,o=!!n,i=o?function(e){var t=n(e);return function(){a(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return i.supported=o,i}]),angular.module('mgcrea.ngStrap.modal',['mgcrea.ngStrap.core','mgcrea.ngStrap.helpers.dimensions']).provider('$modal',function(){var e=this.defaults={animation:'am-fade',backdropAnimation:'am-fade',prefixClass:'modal',prefixEvent:'modal',placement:'top',templateUrl:'modal/modal.tpl.html',template:'',contentTemplate:!1,container:!1,element:null,backdrop:!0,keyboard:!0,html:!1,show:!0};this.$get=['$window','$rootScope','$bsCompiler','$q','$templateCache','$http','$animate','$timeout','$sce','dimensions',function(n,a,o,i,r,s,l,u,c,d){function f(t){function n(){k.$emit(b.prefixEvent+'.show',y)}function i(){k.$emit(b.prefixEvent+'.hide',y),h.removeClass(b.prefixClass+'-open'),b.animation&&h.removeClass(b.prefixClass+'-with-'+b.animation)}function r(){b.backdrop&&(x.on('click',f),C.on('click',f),C.on('wheel',v))}function s(){b.backdrop&&(x.off('click',f),C.off('click',f),C.off('wheel',v))}function u(){b.keyboard&&x.on('keyup',y.$onKeyUp)}function d(){b.keyboard&&x.off('keyup',y.$onKeyUp)}function f(e){e.target===e.currentTarget&&('static'===b.backdrop?y.focus():y.hide())}function v(e){e.preventDefault()}function w(){y.$isShown&&null!==x&&(s(),d()),T&&(T.$destroy(),T=null),x&&(x.remove(),x=y.$element=null)}var y={},b=y.$options=angular.extend({},e,t),D=y.$promise=o.compile(b),k=y.$scope=b.scope&&b.scope.$new()||a.$new();b.element||b.container||(b.container='body'),y.$id=b.id||b.element&&b.element.attr('id')||'',m(['title','content'],function(e){b[e]&&(k[e]=c.trustAsHtml(b[e]))}),k.$hide=function(){k.$$postDigest(function(){y.hide()})},k.$show=function(){k.$$postDigest(function(){y.show()})},k.$toggle=function(){k.$$postDigest(function(){y.toggle()})},y.$isShown=k.$isShown=!1;var S,x,T,C=angular.element('
');return C.css({position:'fixed',top:'0px',left:'0px',bottom:'0px',right:'0px','z-index':1038}),D.then(function(e){S=e,y.init()}),y.init=function(){b.show&&k.$$postDigest(function(){y.show()})},y.destroy=function(){w(),C&&(C.remove(),C=null),k.$destroy()},y.show=function(){if(!y.$isShown){var e,t;if(angular.isElement(b.container)?(e=b.container,t=b.container[0].lastChild?angular.element(b.container[0].lastChild):null):b.container?(e=g(b.container),t=e[0]&&e[0].lastChild?angular.element(e[0].lastChild):null):(e=null,t=b.element),x&&w(),T=y.$scope.$new(),x=y.$element=S.link(T,function(e,t){}),!k.$emit(b.prefixEvent+'.show.before',y).defaultPrevented){x.css({display:'block'}).addClass(b.placement),b.animation&&(b.backdrop&&C.addClass(b.backdropAnimation),x.addClass(b.animation)),b.backdrop&&l.enter(C,h,null),angular.version.minor<=2?l.enter(x,e,t,n):l.enter(x,e,t).then(n),y.$isShown=k.$isShown=!0,p(k);var a=x[0];$(function(){a.focus()}),h.addClass(b.prefixClass+'-open'),b.animation&&h.addClass(b.prefixClass+'-with-'+b.animation),r(),u()}}},y.hide=function(){y.$isShown&&(k.$emit(b.prefixEvent+'.hide.before',y).defaultPrevented||(angular.version.minor<=2?l.leave(x,i):l.leave(x).then(i),b.backdrop&&l.leave(C),y.$isShown=k.$isShown=!1,p(k),s(),d()))},y.toggle=function(){y.$isShown?y.hide():y.show()},y.focus=function(){x[0].focus()},y.$onKeyUp=function(e){27===e.which&&y.$isShown&&(y.hide(),e.stopPropagation())},y}function p(e){e.$$phase||e.$root&&e.$root.$$phase||e.$digest()}function g(e,n){return angular.element((n||t).querySelectorAll(e))}var m=angular.forEach,$=(String.prototype.trim,n.requestAnimationFrame||n.setTimeout),h=angular.element(n.document.body);return f}]}).directive('bsModal',['$window','$sce','$modal',function(e,t,n){return{restrict:'EAC',scope:!0,link:function(e,a,o,i){var r={scope:e,element:a,show:!1};angular.forEach(['template','templateUrl','controller','controllerAs','contentTemplate','controller','placement','backdrop','keyboard','html','container','animation','id','prefixEvent','prefixClass'],function(e){angular.isDefined(o[e])&&(r[e]=o[e])});var s=/^(false|0|)$/i;angular.forEach(['backdrop','keyboard','html','container'],function(e){angular.isDefined(o[e])&&s.test(o[e])&&(r[e]=!1)}),angular.forEach(['title','content'],function(n){o[n]&&o.$observe(n,function(a,o){e[n]=t.trustAsHtml(a)})}),o.bsModal&&e.$watch(o.bsModal,function(t,n){angular.isObject(t)?angular.extend(e,t):e.content=t},!0);var l=n(r);a.on(o.trigger||'click',l.toggle),e.$on('$destroy',function(){l&&l.destroy(),r=null,l=null})}}}]),angular.module('mgcrea.ngStrap.navbar',[]).provider('$navbar',function(){var e=this.defaults={activeClass:'active',routeAttr:'data-match-route',strict:!1};this.$get=function(){return{defaults:e}}}).directive('bsNavbar',['$window','$location','$navbar',function(e,t,n){var a=n.defaults;return{restrict:'A',link:function(e,n,o,i){var r=angular.copy(a);angular.forEach(Object.keys(a),function(e){angular.isDefined(o[e])&&(r[e]=o[e])}),e.$watch(function(){return t.path()},function(e,t){var a=n[0].querySelectorAll('li['+r.routeAttr+']');angular.forEach(a,function(t){var n=angular.element(t),a=n.attr(r.routeAttr).replace('/','\\/');r.strict&&(a='^'+a+'$');var o=new RegExp(a,'i');o.test(e)?n.addClass(r.activeClass):n.removeClass(r.activeClass)})})}}}]),angular.module('mgcrea.ngStrap.scrollspy',['mgcrea.ngStrap.helpers.debounce','mgcrea.ngStrap.helpers.dimensions']).provider('$scrollspy',function(){var e=this.$$spies={},n=this.defaults={debounce:150,throttle:100,offset:100};this.$get=['$window','$document','$rootScope','dimensions','debounce','throttle',function(a,o,i,r,s,l){function u(e,t){return e[0].nodeName&&e[0].nodeName.toLowerCase()===t.toLowerCase()}function c(o){var c=angular.extend({},n,o);c.element||(c.element=p);var g=u(c.element,'body'),m=g?d:c.element,$=g?'window':c.id;if(e[$])return e[$].$$count++,e[$];var h,v,w,y,b,D,k,S,x={},T=x.$trackedElements=[],C=[];return x.init=function(){this.$$count=1,y=s(this.checkPosition,c.debounce),b=l(this.checkPosition,c.throttle),m.on('click',this.checkPositionWithEventLoop),d.on('resize',y),m.on('scroll',b),D=s(this.checkOffsets,c.debounce),h=i.$on('$viewContentLoaded',D),v=i.$on('$includeContentLoaded',D),D(),$&&(e[$]=x)},x.destroy=function(){this.$$count--,this.$$count>0||(m.off('click',this.checkPositionWithEventLoop),d.off('resize',y),m.off('scroll',b),h(),v(),$&&delete e[$])},x.checkPosition=function(){if(C.length){if(S=(g?a.pageYOffset:m.prop('scrollTop'))||0,k=Math.max(a.innerHeight,f.prop('clientHeight')),SC[e+1].offsetTop))return x.$activateElement(C[e])}},x.checkPositionWithEventLoop=function(){setTimeout(x.checkPosition,1)},x.$activateElement=function(e){if(w){var t=x.$getTrackedElement(w);t&&(t.source.removeClass('active'),u(t.source,'li')&&u(t.source.parent().parent(),'li')&&t.source.parent().parent().removeClass('active'))}w=e.target,e.source.addClass('active'),u(e.source,'li')&&u(e.source.parent().parent(),'li')&&e.source.parent().parent().addClass('active')},x.$getTrackedElement=function(e){return T.filter(function(t){return t.target===e})[0]},x.checkOffsets=function(){angular.forEach(T,function(e){var n=t.querySelector(e.target);e.offsetTop=n?r.offset(n).top:null,c.offset&&null!==e.offsetTop&&(e.offsetTop-=1*c.offset)}),C=T.filter(function(e){return null!==e.offsetTop}).sort(function(e,t){return e.offsetTop-t.offsetTop}),y()},x.trackElement=function(e,t){T.push({target:e,source:t})},x.untrackElement=function(e,t){for(var n,a=T.length;a--;)if(T[a].target===e&&T[a].source===t){n=a;break}T=T.splice(n,1)},x.activate=function(e){T[e].addClass('active')},x.init(),x}var d=angular.element(a),f=angular.element(o.prop('documentElement')),p=angular.element(a.document.body);return c}]}).directive('bsScrollspy',['$rootScope','debounce','dimensions','$scrollspy',function(e,t,n,a){return{restrict:'EAC',link:function(e,t,n){var o={scope:e};angular.forEach(['offset','target'],function(e){angular.isDefined(n[e])&&(o[e]=n[e])});var i=a(o);i.trackElement(o.target,t),e.$on('$destroy',function(){i&&(i.untrackElement(o.target,t),i.destroy()),o=null,i=null})}}}]).directive('bsScrollspyList',['$rootScope','debounce','dimensions','$scrollspy',function(e,t,n,a){return{restrict:'A',compile:function(e,t){var n=e[0].querySelectorAll('li > a[href]');angular.forEach(n,function(e){var t=angular.element(e);t.parent().attr('bs-scrollspy','').attr('data-target',t.attr('href'))})}}}]),angular.module('mgcrea.ngStrap.select',['mgcrea.ngStrap.tooltip','mgcrea.ngStrap.helpers.parseOptions']).provider('$select',function(){var e=this.defaults={animation:'am-fade',prefixClass:'select',prefixEvent:'$select',placement:'bottom-left',templateUrl:'select/select.tpl.html',trigger:'focus',container:!1,keyboard:!0,html:!1,delay:0,multiple:!1,allNoneButtons:!1,sort:!0,caretHtml:' ',placeholder:'Choose among the following...',allText:'All',noneText:'None',maxLength:3,maxLengthHtml:'selected',iconCheckmark:'glyphicon glyphicon-ok'};this.$get=['$window','$document','$rootScope','$tooltip','$timeout',function(t,n,a,o,i){function r(t,n,a){var r={},s=angular.extend({},e,a);r=o(t,s);var u=r.$scope;u.$matches=[],u.$activeIndex=s.multiple?[]:-1,u.$isMultiple=s.multiple,u.$showAllNoneButtons=s.allNoneButtons&&s.multiple,u.$iconCheckmark=s.iconCheckmark,u.$allText=s.allText,u.$noneText=s.noneText,u.$activate=function(e){u.$$postDigest(function(){r.activate(e)})},u.$select=function(e,t){u.$$postDigest(function(){r.select(e)})},u.$isVisible=function(){return r.$isVisible()},u.$isActive=function(e){return r.$isActive(e)},u.$selectAll=function(){for(var e=0;e=u.$matches.length&&(u.$activeIndex=s.multiple?[]:0)},r.$isVisible=function(){return s.minLength&&n?u.$matches.length&&n.$viewValue.length>=s.minLength:u.$matches.length},r.$isActive=function(e){return s.multiple?-1!==u.$activeIndex.indexOf(e):u.$activeIndex===e},r.$getIndex=function(e){var t=u.$matches.length,n=t;if(t){for(n=t;n--&&u.$matches[n].value!==e;);if(!(0>n))return n}},r.$onMouseDown=function(e){if(e.preventDefault(),e.stopPropagation(),l){var t=angular.element(e.target);t.triggerHandler('click')}},r.$onKeyDown=function(e){return/(9|13|38|40)/.test(e.keyCode)?(e.preventDefault(),e.stopPropagation(),s.multiple&&9===e.keyCode?r.hide():s.multiple||13!==e.keyCode&&9!==e.keyCode?void(s.multiple||(38===e.keyCode&&u.$activeIndex>0?u.$activeIndex--:38===e.keyCode&&u.$activeIndex<0?u.$activeIndex=u.$matches.length-1:40===e.keyCode&&u.$activeIndex'),c.after(t)}var d=o(n.bsOptions),f=a(t,r,s),p=d.$match[7].replace(/\|.+/,'').trim();e.$watchCollection(p,function(t,n){d.valuesFn(e,r).then(function(e){f.update(e),r.$render()})}),e.$watch(n.ngModel,function(e,t){f.$updateActiveIndex(),r.$render()},!0),r.$render=function(){var e,n;s.multiple&&angular.isArray(r.$modelValue)?(e=r.$modelValue.map(function(e){return n=f.$getIndex(e),angular.isDefined(n)?f.$scope.$matches[n].label:!1}).filter(angular.isDefined),e=e.length>(s.maxLength||i.maxLength)?e.length+' '+(s.maxLengthHtml||i.maxLengthHtml):e.join(', ')):(n=f.$getIndex(r.$modelValue),e=angular.isDefined(n)?f.$scope.$matches[n].label:!1),t.html((e?e:s.placeholder)+(s.caretHtml?s.caretHtml:i.caretHtml))},s.multiple&&(r.$isEmpty=function(e){return!e||0===e.length}),e.$on('$destroy',function(){f&&f.destroy(),s=null,f=null})}}}]),angular.module('mgcrea.ngStrap.popover',['mgcrea.ngStrap.tooltip']).provider('$popover',function(){var e=this.defaults={animation:'am-fade',customClass:'',container:!1,target:!1,placement:'right',templateUrl:'popover/popover.tpl.html',contentTemplate:!1,trigger:'click',keyboard:!0,html:!1,title:'',content:'',delay:0,autoClose:!1};this.$get=['$tooltip',function(t){function n(n,a){var o=angular.extend({},e,a),i=t(n,o);return o.content&&(i.$scope.content=o.content),i}return n}]}).directive('bsPopover',['$window','$sce','$popover',function(e,t,n){var a=e.requestAnimationFrame||e.setTimeout;return{restrict:'EAC',scope:!0,link:function(e,o,i){var r={scope:e};angular.forEach(['template','templateUrl','controller','controllerAs','contentTemplate','placement','container','delay','trigger','html','animation','customClass','autoClose','id','prefixClass','prefixEvent'],function(e){angular.isDefined(i[e])&&(r[e]=i[e])});var s=/^(false|0|)$/i;angular.forEach(['html','container','autoClose'],function(e){angular.isDefined(i[e])&&s.test(i[e])&&(r[e]=!1)});var l=o.attr('data-target');angular.isDefined(l)&&(r.target=s.test(l)?!1:l),angular.forEach(['title','content'],function(n){i[n]&&i.$observe(n,function(o,i){e[n]=t.trustAsHtml(o),angular.isDefined(i)&&a(function(){u&&u.$applyPlacement()})})}),i.bsPopover&&e.$watch(i.bsPopover,function(t,n){angular.isObject(t)?angular.extend(e,t):e.content=t,angular.isDefined(n)&&a(function(){u&&u.$applyPlacement()})},!0),i.bsShow&&e.$watch(i.bsShow,function(e,t){u&&angular.isDefined(e)&&(angular.isString(e)&&(e=!!e.match(/true|,?(popover),?/i)),e===!0?u.show():u.hide())}),i.viewport&&e.$watch(i.viewport,function(e){u&&angular.isDefined(e)&&u.setViewport(e)});var u=n(o,r);e.$on('$destroy',function(){u&&u.destroy(),r=null,u=null})}}}]),angular.module('mgcrea.ngStrap.tab',[]).provider('$tab',function(){var e=this.defaults={animation:'am-fade',template:'tab/tab.tpl.html',navClass:'nav-tabs',activeClass:'active'},t=this.controller=function(t,n,a){var o=this;o.$options=angular.copy(e),angular.forEach(['animation','navClass','activeClass'],function(e){angular.isDefined(a[e])&&(o.$options[e]=a[e])}),t.$navClass=o.$options.navClass,t.$activeClass=o.$options.activeClass,o.$panes=t.$panes=[],o.$activePaneChangeListeners=o.$viewChangeListeners=[],o.$push=function(e){angular.isUndefined(o.$panes.$active)&&t.$setActive(e.name||0),o.$panes.push(e)},o.$remove=function(e){var t,n=o.$panes.indexOf(e),a=o.$panes.$active;t=angular.isString(a)?o.$panes.map(function(e){return e.name}).indexOf(a):o.$panes.$active,o.$panes.splice(n,1),t>n?t--:n===t&&t===o.$panes.length&&t--,t>=0&&ts.top+s.height&&(o.top=s.top+s.height-u)}else{var c=t.left-r,d=t.left+r+n;cs.width&&(o.left=s.left+s.width-d)}return o}function E(e,t,n){var a=m('.tooltip-arrow, .arrow',R[0]);a.css(n?'left':'top',50*(1-e/t)+'%').css(n?'top':'left','')}function A(){clearTimeout(H),F.$isShown&&null!==R&&(V.autoClose&&k(),V.keyboard&&b()),Y&&(Y.$destroy(),Y=null),R&&(R.remove(),R=F.$element=null)}var F={},V=F.$options=angular.extend({},e,r),O=F.$promise=o.compile(V),P=F.$scope=V.scope&&V.scope.$new()||a.$new(),I=i[0].nodeName.toLowerCase();if(V.delay&&angular.isString(V.delay)){var N=V.delay.split(',').map(parseFloat);V.delay=N.length>1?{show:N[0],hide:N[1]}:N[0]}F.$id=V.id||i.attr('id')||'',V.title&&(P.title=u.trustAsHtml(V.title)),P.$setEnabled=function(e){P.$$postDigest(function(){F.setEnabled(e)})},P.$hide=function(){P.$$postDigest(function(){F.hide()})},P.$show=function(){P.$$postDigest(function(){F.show()})},P.$toggle=function(){P.$$postDigest(function(){F.toggle()})},F.$isShown=P.$isShown=!1;var H,L,U,R,q,Y;O.then(function(e){U=e,F.init()}),F.init=function(){V.delay&&angular.isNumber(V.delay)&&(V.delay={show:V.delay,hide:V.delay}),'self'===V.container?q=i:angular.isElement(V.container)?q=V.container:V.container&&(q=m(V.container)),v(),V.target&&(V.target=angular.isElement(V.target)?V.target:m(V.target)),V.show&&P.$$postDigest(function(){'focus'===V.trigger?i[0].focus():F.show()})},F.destroy=function(){w(),A(),P.$destroy()},F.enter=function(){return clearTimeout(H),L='in',V.delay&&V.delay.show?void(H=setTimeout(function(){'in'===L&&F.show()},V.delay.show)):F.show()},F.show=function(){if(V.bsEnabled&&!F.$isShown){P.$emit(V.prefixEvent+'.show.before',F);var e,t;V.container?(e=q,t=q[0].lastChild?angular.element(q[0].lastChild):null):(e=null,t=i),R&&A(),Y=F.$scope.$new(),R=F.$element=U.link(Y,function(e,t){}),R.css({top:'-9999px',left:'-9999px',right:'auto',display:'block',visibility:'hidden'}),V.animation&&R.addClass(V.animation),V.type&&R.addClass(V.prefixClass+'-'+V.type),V.customClass&&R.addClass(V.customClass),t?t.after(R):e.prepend(R),F.$isShown=P.$isShown=!0,g(P),F.$applyPlacement(),angular.version.minor<=2?l.enter(R,e,t,s):l.enter(R,e,t).then(s),g(P),d(function(){R&&R.css({visibility:'visible'})}),V.keyboard&&('focus'!==V.trigger&&F.focus(),y()),V.autoClose&&D()}},F.leave=function(){return clearTimeout(H),L='out',V.delay&&V.delay.hide?void(H=setTimeout(function(){'out'===L&&F.hide()},V.delay.hide)):F.hide()};var z,j;F.hide=function(e){F.$isShown&&(P.$emit(V.prefixEvent+'.hide.before',F),z=e,j=R,angular.version.minor<=2?l.leave(R,p):l.leave(R).then(p),F.$isShown=P.$isShown=!1,g(P),V.keyboard&&null!==R&&b(),V.autoClose&&null!==R&&k())},F.toggle=function(){F.$isShown?F.leave():F.enter()},F.focus=function(){R[0].focus()},F.setEnabled=function(e){V.bsEnabled=e},F.setViewport=function(e){V.viewport=e},F.$applyPlacement=function(){if(R){var t=V.placement,n=/\s?auto?\s?/i,a=n.test(t);a&&(t=t.replace(n,'')||e.placement),R.addClass(V.placement);var o=x(),r=R.prop('offsetWidth'),s=R.prop('offsetHeight');if(a){var l=t,u=V.container?m(V.container):i.parent(),c=x(u);l.indexOf('bottom')>=0&&o.bottom+s>c.bottom?t=l.replace('bottom','top'):l.indexOf('top')>=0&&o.top-sc.width?t='right'===l?'left':t.replace('left','right'):('left'===l||'bottom-right'===l||'top-right'===l)&&o.left-rt?t+12:t-12),n.$setViewValue(angular.copy(n.$dateValue)),n.$render()}},f.$build=function(){var e,t,n=m.midIndex=parseInt(g.length/2,10),a=[];for(e=0;e1*g.maxTime},m.$arrowAction=function(e,t){'picker'===g.arrowBehavior?f.$setTimeByStep(e,t):f.$moveIndex(e,t)},f.$setTimeByStep=function(e,t){{var n=new Date(f.$date),a=n.getHours(),o=(h(n,k).length,n.getMinutes()),i=(h(n,x).length,n.getSeconds());h(n,T).length}0===t?n.setHours(a-parseInt(g.hourStep,10)*e):1===t?n.setMinutes(o-parseInt(g.minuteStep,10)*e):2===t&&n.setSeconds(i-parseInt(g.secondStep,10)*e),f.select(n,t,!0)},f.$moveIndex=function(e,t){var n;0===t?(n=new Date(1970,0,1,b.hour+e*g.length,b.minute,b.second),angular.extend(b,{hour:n.getHours()})):1===t?(n=new Date(1970,0,1,b.hour,b.minute+e*g.length*g.minuteStep,b.second),angular.extend(b,{minute:n.getMinutes()})):2===t&&(n=new Date(1970,0,1,b.hour,b.minute,b.second+e*g.length*g.secondStep),angular.extend(b,{second:n.getSeconds()})),f.$build()},f.$onMouseDown=function(e){if('input'!==e.target.nodeName.toLowerCase()&&e.preventDefault(),e.stopPropagation(),c){var t=angular.element(e.target);'button'!==t[0].nodeName.toLowerCase()&&(t=t.parent()),t.triggerHandler('click')}},f.$onKeyDown=function(e){if(/(38|37|39|40|13)/.test(e.keyCode)&&!e.shiftKey&&!e.altKey){if(e.preventDefault(),e.stopPropagation(),13===e.keyCode)return f.hide(!0);var t=new Date(f.$date),n=t.getHours(),a=h(t,k).length,o=t.getMinutes(),i=h(t,x).length,r=t.getSeconds(),s=h(t,T).length,u=1,c=/(37|39)/.test(e.keyCode),d=2+1*C+1*M;c&&(37===e.keyCode?v=1>v?d-1:v-1:39===e.keyCode&&(v=d-1>v?v+1:0));var m=[0,a],$=0;38===e.keyCode&&($=-1),40===e.keyCode&&($=1);var w=2===v&&C,y=2===v&&!C||3===v&&C;0===v?(t.setHours(n+$*parseInt(g.hourStep,10)),a=h(t,k).length,m=[0,a]):1===v?(t.setMinutes(o+$*parseInt(g.minuteStep,10)),i=h(t,x).length,m=[a+u,i]):w?(t.setSeconds(r+$*parseInt(g.secondStep,10)),s=h(t,T).length,m=[a+u+i+u,s]):y&&(c||f.switchMeridian(),m=[a+u+i+u+(s+u)*C,2]),f.select(t,v,!0),l(m[0],m[1]),p.$digest()}};var E=f.init;f.init=function(){return u&&g.useNative?(t.prop('type','time'),void t.css('-webkit-appearance','textfield')):(c&&(t.prop('type','text'),t.attr('readonly','true'),t.on('click',d)),void E())};var A=f.destroy;f.destroy=function(){u&&g.useNative&&t.off('click',d),A()};var F=f.show;f.show=function(){F(),s(function(){f.$element&&f.$element.on(c?'touchstart':'mousedown',f.$onMouseDown),g.keyboard&&t&&t.on('keydown',f.$onKeyDown)},0,!1)};var V=f.hide;return f.hide=function(e){f.$isShown&&(f.$element&&f.$element.off(c?'touchstart':'mousedown',f.$onMouseDown),g.keyboard&&t&&t.off('keydown',f.$onKeyDown),V(e))},f}var u=(angular.element(t.document.body),/(ip(a|o)d|iphone|android)/gi.test(t.navigator.userAgent)),c='createTouch'in t.document&&u;return e.lang||(e.lang=i.getDefaultLocale()),l.defaults=e,l}]}).directive('bsTimepicker',['$window','$parse','$q','$dateFormatter','$dateParser','$timepicker',function(e,t,n,a,o,i){{var r=i.defaults,s=/(ip(a|o)d|iphone|android)/gi.test(e.navigator.userAgent);e.requestAnimationFrame||e.setTimeout}return{restrict:'EAC',require:'ngModel',link:function(e,t,n,l){function u(e){if(angular.isDate(e)){var t=isNaN(d.minTime)||new Date(e.getTime()).setFullYear(1970,0,1)>=d.minTime,n=isNaN(d.maxTime)||new Date(e.getTime()).setFullYear(1970,0,1)<=d.maxTime,a=t&&n;l.$setValidity('date',a),l.$setValidity('min',t),l.$setValidity('max',n),a&&(l.$dateValue=e)}}function c(){return!l.$dateValue||isNaN(l.$dateValue.getTime())?'':m(l.$dateValue,d.timeFormat)}var d={scope:e};angular.forEach(['template','templateUrl','controller','controllerAs','placement','container','delay','trigger','keyboard','html','animation','autoclose','timeType','timeFormat','timezone','modelTimeFormat','useNative','hourStep','minuteStep','secondStep','length','arrowBehavior','iconUp','iconDown','roundDisplay','id','prefixClass','prefixEvent'],function(e){angular.isDefined(n[e])&&(d[e]=n[e])});var f=/^(false|0|)$/i;angular.forEach(['html','container','autoclose','useNative','roundDisplay'],function(e){angular.isDefined(n[e])&&f.test(n[e])&&(d[e]=!1)}),n.bsShow&&e.$watch(n.bsShow,function(e,t){p&&angular.isDefined(e)&&(angular.isString(e)&&(e=!!e.match(/true|,?(timepicker),?/i)),e===!0?p.show():p.hide())}),s&&(d.useNative||r.useNative)&&(d.timeFormat='HH:mm');var p=i(t,l,d);d=p.$options;var g=d.lang,m=function(e,t,n){return a.formatDate(e,t,g,n)},$=o({format:d.timeFormat,lang:g});angular.forEach(['minTime','maxTime'],function(e){angular.isDefined(n[e])&&n.$observe(e,function(t){p.$options[e]=$.getTimeForAttribute(e,t),!isNaN(p.$options[e])&&p.$build(),u(l.$dateValue)})}),e.$watch(n.ngModel,function(e,t){p.update(l.$dateValue)},!0),l.$parsers.unshift(function(e){var t;if(!e)return l.$setValidity('date',!0),null;var n=angular.isDate(e)?e:$.parse(e,l.$dateValue);return!n||isNaN(n.getTime())?void l.$setValidity('date',!1):(u(n),'string'===d.timeType?(t=$.timezoneOffsetAdjust(n,d.timezone,!0),m(t,d.modelTimeFormat||d.timeFormat)):(t=$.timezoneOffsetAdjust(l.$dateValue,d.timezone,!0),'number'===d.timeType?t.getTime():'unix'===d.timeType?t.getTime()/1e3:'iso'===d.timeType?t.toISOString():new Date(t)))}),l.$formatters.push(function(e){var t;return t=angular.isUndefined(e)||null===e?0/0:angular.isDate(e)?e:'string'===d.timeType?$.parse(e,null,d.modelTimeFormat):new Date('unix'===d.timeType?1e3*e:e),l.$dateValue=$.timezoneOffsetAdjust(t,d.timezone),c()}),l.$render=function(){t.val(c())},e.$on('$destroy',function(){p&&p.destroy(),d=null,p=null})}}}]),angular.module('mgcrea.ngStrap.typeahead',['mgcrea.ngStrap.tooltip','mgcrea.ngStrap.helpers.parseOptions']).provider('$typeahead',function(){var e=this.defaults={animation:'am-fade',prefixClass:'typeahead',prefixEvent:'$typeahead',placement:'bottom-left',templateUrl:'typeahead/typeahead.tpl.html',trigger:'focus',container:!1,keyboard:!0,html:!1,delay:0,minLength:1,filter:'filter',limit:6,autoSelect:!1,comparator:'',trimValue:!0};this.$get=['$window','$rootScope','$tooltip','$$rAF','$timeout',function(t,n,a,o,i){function r(t,n,r){var l={},u=angular.extend({},e,r);l=a(t,u);var c=r.scope,d=l.$scope;d.$resetMatches=function(){d.$matches=[],d.$activeIndex=u.autoSelect?0:-1},d.$resetMatches(),d.$activate=function(e){d.$$postDigest(function(){l.activate(e)})},d.$select=function(e,t){d.$$postDigest(function(){l.select(e)})},d.$isVisible=function(){return l.$isVisible()},l.update=function(e){d.$matches=e,d.$activeIndex>=e.length&&(d.$activeIndex=u.autoSelect?0:-1),s(d),o(l.$applyPlacement)},l.activate=function(e){d.$activeIndex=e},l.select=function(e){if(-1!==e){var t=d.$matches[e].value;n.$setViewValue(t),n.$render(),d.$resetMatches(),c&&c.$digest(),d.$emit(u.prefixEvent+'.select',t,e,l)}},l.$isVisible=function(){return u.minLength&&n?d.$matches.length&&angular.isString(n.$viewValue)&&n.$viewValue.length>=u.minLength:!!d.$matches.length},l.$getIndex=function(e){var t=d.$matches.length,n=t;if(t){for(n=t;n--&&d.$matches[n].value!==e;);if(!(0>n))return n}},l.$onMouseDown=function(e){e.preventDefault(),e.stopPropagation()},l.$onKeyDown=function(e){/(38|40|13)/.test(e.keyCode)&&(!l.$isVisible()||13===e.keyCode&&-1===d.$activeIndex||(e.preventDefault(),e.stopPropagation()),13===e.keyCode&&d.$matches.length?l.select(d.$activeIndex):38===e.keyCode&&d.$activeIndex>0?d.$activeIndex--:40===e.keyCode&&d.$activeIndex0)return void r.$setViewValue(r.$viewValue.substring(0,r.$viewValue.length-1));e.length>c&&(e=e.slice(0,c));var n=g.$isVisible();n&&g.update(e),(1!==e.length||e[0].value!==t)&&(!n&&g.update(e),r.$render())})}),r.$formatters.push(function(e){var t=p.displayValue(e);return t?t:e&&'object'!=typeof e?e:''}),r.$render=function(){if(r.$isEmpty(r.$viewValue))return t.val('');var e=g.$getIndex(r.$modelValue),n=angular.isDefined(e)?g.$scope.$matches[e].label:r.$viewValue;n=angular.isObject(n)?p.displayValue(n):n;var a=n?n.toString().replace(/<(?:.|\n)*?>/gm,''):'';t.val(s.trimValue===!1?a:a.trim())},e.$on('$destroy',function(){g&&g.destroy(),s=null,g=null})}}}])}(window,document); +},m.daylightSavingAdjust=function(e){return e?(e.setHours(e.getHours()>12?e.getHours()+2:0),e):null},m.timezoneOffsetAdjust=function(e,t,n){return e?(t&&'UTC'===t&&(e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+(n?-1:1)*e.getTimezoneOffset())),e):null},m.init(),m};return l}]}]),angular.module('mgcrea.ngStrap.helpers.debounce',[]).factory('debounce',['$timeout',function(e){return function(t,n,a){var o=null;return function(){var i=this,r=arguments,s=a&&!o;return o&&e.cancel(o),o=e(function(){o=null,a||t.apply(i,r)},n,!1),s&&t.apply(i,r),o}}}]).factory('throttle',['$timeout',function(e){return function(t,n,a){var o=null;return a||(a={}),function(){var i=this,r=arguments;o||(a.leading!==!1&&t.apply(i,r),o=e(function(){o=null,a.trailing!==!1&&t.apply(i,r)},n,!1))}}}]),angular.module('mgcrea.ngStrap.helpers.dimensions',[]).factory('dimensions',['$document','$window',function(t,n){var a=(angular.element,{}),o=a.nodeName=function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()};a.css=function(t,n,a){var o;return o=t.currentStyle?t.currentStyle[n]:e.getComputedStyle?e.getComputedStyle(t)[n]:t.style[n],a===!0?parseFloat(o)||0:o},a.offset=function(t){var n=t.getBoundingClientRect(),a=t.ownerDocument;return{width:n.width||t.offsetWidth,height:n.height||t.offsetHeight,top:n.top+(e.pageYOffset||a.documentElement.scrollTop)-(a.documentElement.clientTop||0),left:n.left+(e.pageXOffset||a.documentElement.scrollLeft)-(a.documentElement.clientLeft||0)}},a.setOffset=function(e,t,n){var o,i,r,s,l,u,c,d=a.css(e,'position'),f=angular.element(e),p={};'static'===d&&(e.style.position='relative'),l=a.offset(e),r=a.css(e,'top'),u=a.css(e,'left'),c=('absolute'===d||'fixed'===d)&&(r+u).indexOf('auto')>-1,c?(o=a.position(e),s=o.top,i=o.left):(s=parseFloat(r)||0,i=parseFloat(u)||0),angular.isFunction(t)&&(t=t.call(e,n,l)),null!==t.top&&(p.top=t.top-l.top+s),null!==t.left&&(p.left=t.left-l.left+i),'using'in t?t.using.call(f,p):f.css({top:p.top+'px',left:p.left+'px'})},a.position=function(e){var t,n,r={top:0,left:0};return'fixed'===a.css(e,'position')?n=e.getBoundingClientRect():(t=i(e),n=a.offset(e),o(t,'html')||(r=a.offset(t)),r.top+=a.css(t,'borderTopWidth',!0),r.left+=a.css(t,'borderLeftWidth',!0)),{width:e.offsetWidth,height:e.offsetHeight,top:n.top-r.top-a.css(e,'marginTop',!0),left:n.left-r.left-a.css(e,'marginLeft',!0)}};var i=function(e){var t=e.ownerDocument,n=e.offsetParent||t;if(o(n,'#document'))return t.documentElement;for(;n&&!o(n,'html')&&'static'===a.css(n,'position');)n=n.offsetParent;return n||t.documentElement};return a.height=function(e,t){var n=e.offsetHeight;return t?n+=a.css(e,'marginTop',!0)+a.css(e,'marginBottom',!0):n-=a.css(e,'paddingTop',!0)+a.css(e,'paddingBottom',!0)+a.css(e,'borderTopWidth',!0)+a.css(e,'borderBottomWidth',!0),n},a.width=function(e,t){var n=e.offsetWidth;return t?n+=a.css(e,'marginLeft',!0)+a.css(e,'marginRight',!0):n-=a.css(e,'paddingLeft',!0)+a.css(e,'paddingRight',!0)+a.css(e,'borderLeftWidth',!0)+a.css(e,'borderRightWidth',!0),n},a}]),angular.module('mgcrea.ngStrap.helpers.parseOptions',[]).provider('$parseOptions',function(){var e=this.defaults={regexp:/^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+(.*?)(?:\s+track\s+by\s+(.*?))?$/};this.$get=['$parse','$q',function(t,n){function a(a,o){function i(e,t){return e.map(function(e,n){var a,o,i={};return i[c]=e,a=u(t,i),o=p(t,i),{label:a,value:o,index:n}})}var r={},s=angular.extend({},e,o);r.$values=[];var l,u,c,d,f,p,g;return r.init=function(){r.$match=l=a.match(s.regexp),u=t(l[2]||l[1]),c=l[4]||l[6],d=l[5],f=t(l[3]||''),p=t(l[2]?l[1]:c),g=t(l[7])},r.valuesFn=function(e,t){return n.when(g(e,t)).then(function(t){return angular.isArray(t)||(t=[]),r.$values=t.length?i(t,e):[],r.$values})},r.displayValue=function(e){var t={};return t[c]=e,u(t)},r.init(),r}return a}]}),angular.version.minor<3&&angular.version.dot<14&&angular.module('ng').factory('$$rAF',['$window','$timeout',function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame,a=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.mozCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,o=!!n,i=o?function(e){var t=n(e);return function(){a(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return i.supported=o,i}]),angular.module('mgcrea.ngStrap.modal',['mgcrea.ngStrap.core','mgcrea.ngStrap.helpers.dimensions']).provider('$modal',function(){var e=this.defaults={animation:'am-fade',backdropAnimation:'am-fade',prefixClass:'modal',prefixEvent:'modal',placement:'top',templateUrl:'modal/modal.tpl.html',template:'',contentTemplate:!1,container:!1,element:null,backdrop:!0,keyboard:!0,html:!1,show:!0};this.$get=['$window','$rootScope','$bsCompiler','$q','$templateCache','$http','$animate','$timeout','$sce','dimensions',function(n,a,o,i,r,s,l,u,c,d){function f(t){function n(){k.$emit(b.prefixEvent+'.show',y)}function i(){k.$emit(b.prefixEvent+'.hide',y),h.removeClass(b.prefixClass+'-open'),b.animation&&h.removeClass(b.prefixClass+'-with-'+b.animation)}function r(){b.backdrop&&(x.on('click',f),C.on('click',f),C.on('wheel',v))}function s(){b.backdrop&&(x.off('click',f),C.off('click',f),C.off('wheel',v))}function u(){b.keyboard&&x.on('keyup',y.$onKeyUp)}function d(){b.keyboard&&x.off('keyup',y.$onKeyUp)}function f(e){e.target===e.currentTarget&&('static'===b.backdrop?y.focus():y.hide())}function v(e){e.preventDefault()}function w(){y.$isShown&&null!==x&&(s(),d()),T&&(T.$destroy(),T=null),x&&(x.remove(),x=y.$element=null)}var y={},b=y.$options=angular.extend({},e,t),D=y.$promise=o.compile(b),k=y.$scope=b.scope&&b.scope.$new()||a.$new();b.element||b.container||(b.container='body'),y.$id=b.id||b.element&&b.element.attr('id')||'',m(['title','content'],function(e){b[e]&&(k[e]=c.trustAsHtml(b[e]))}),k.$hide=function(){k.$$postDigest(function(){y.hide()})},k.$show=function(){k.$$postDigest(function(){y.show()})},k.$toggle=function(){k.$$postDigest(function(){y.toggle()})},y.$isShown=k.$isShown=!1;var S,x,T,C=angular.element('
');return C.css({position:'fixed',top:'0px',left:'0px',bottom:'0px',right:'0px','z-index':1038}),D.then(function(e){S=e,y.init()}),y.init=function(){b.show&&k.$$postDigest(function(){y.show()})},y.destroy=function(){w(),C&&(C.remove(),C=null),k.$destroy()},y.show=function(){if(!y.$isShown){var e,t;if(angular.isElement(b.container)?(e=b.container,t=b.container[0].lastChild?angular.element(b.container[0].lastChild):null):b.container?(e=g(b.container),t=e[0]&&e[0].lastChild?angular.element(e[0].lastChild):null):(e=null,t=b.element),x&&w(),T=y.$scope.$new(),x=y.$element=S.link(T,function(e,t){}),!k.$emit(b.prefixEvent+'.show.before',y).defaultPrevented){x.css({display:'block'}).addClass(b.placement),b.animation&&(b.backdrop&&C.addClass(b.backdropAnimation),x.addClass(b.animation)),b.backdrop&&l.enter(C,h,null),angular.version.minor<=2?l.enter(x,e,t,n):l.enter(x,e,t).then(n),y.$isShown=k.$isShown=!0,p(k);var a=x[0];$(function(){a.focus()}),h.addClass(b.prefixClass+'-open'),b.animation&&h.addClass(b.prefixClass+'-with-'+b.animation),r(),u()}}},y.hide=function(){y.$isShown&&(k.$emit(b.prefixEvent+'.hide.before',y).defaultPrevented||(angular.version.minor<=2?l.leave(x,i):l.leave(x).then(i),b.backdrop&&l.leave(C),y.$isShown=k.$isShown=!1,p(k),s(),d()))},y.toggle=function(){y.$isShown?y.hide():y.show()},y.focus=function(){x[0].focus()},y.$onKeyUp=function(e){27===e.which&&y.$isShown&&(y.hide(),e.stopPropagation())},y}function p(e){e.$$phase||e.$root&&e.$root.$$phase||e.$digest()}function g(e,n){return angular.element((n||t).querySelectorAll(e))}var m=angular.forEach,$=(String.prototype.trim,n.requestAnimationFrame||n.setTimeout),h=angular.element(n.document.body);return f}]}).directive('bsModal',['$window','$sce','$modal',function(e,t,n){return{restrict:'EAC',scope:!0,link:function(e,a,o,i){var r={scope:e,element:a,show:!1};angular.forEach(['template','templateUrl','controller','controllerAs','contentTemplate','controller','placement','backdrop','keyboard','html','container','animation','id','prefixEvent','prefixClass'],function(e){angular.isDefined(o[e])&&(r[e]=o[e])});var s=/^(false|0|)$/i;angular.forEach(['backdrop','keyboard','html','container'],function(e){angular.isDefined(o[e])&&s.test(o[e])&&(r[e]=!1)}),angular.forEach(['title','content'],function(n){o[n]&&o.$observe(n,function(a,o){e[n]=t.trustAsHtml(a)})}),o.bsModal&&e.$watch(o.bsModal,function(t,n){angular.isObject(t)?angular.extend(e,t):e.content=t},!0);var l=n(r);a.on(o.trigger||'click',l.toggle),e.$on('$destroy',function(){l&&l.destroy(),r=null,l=null})}}}]),angular.module('mgcrea.ngStrap.navbar',[]).provider('$navbar',function(){var e=this.defaults={activeClass:'active',routeAttr:'data-match-route',strict:!1};this.$get=function(){return{defaults:e}}}).directive('bsNavbar',['$window','$location','$navbar',function(e,t,n){var a=n.defaults;return{restrict:'A',link:function(e,n,o,i){var r=angular.copy(a);angular.forEach(Object.keys(a),function(e){angular.isDefined(o[e])&&(r[e]=o[e])}),e.$watch(function(){return t.path()},function(e,t){var a=n[0].querySelectorAll('li['+r.routeAttr+']');angular.forEach(a,function(t){var n=angular.element(t),a=n.attr(r.routeAttr).replace('/','\\/');r.strict&&(a='^'+a+'$');var o=new RegExp(a,'i');o.test(e)?n.addClass(r.activeClass):n.removeClass(r.activeClass)})})}}}]),angular.module('mgcrea.ngStrap.popover',['mgcrea.ngStrap.tooltip']).provider('$popover',function(){var e=this.defaults={animation:'am-fade',customClass:'',container:!1,target:!1,placement:'right',templateUrl:'popover/popover.tpl.html',contentTemplate:!1,trigger:'click',keyboard:!0,html:!1,title:'',content:'',delay:0,autoClose:!1};this.$get=['$tooltip',function(t){function n(n,a){var o=angular.extend({},e,a),i=t(n,o);return o.content&&(i.$scope.content=o.content),i}return n}]}).directive('bsPopover',['$window','$sce','$popover',function(e,t,n){var a=e.requestAnimationFrame||e.setTimeout;return{restrict:'EAC',scope:!0,link:function(e,o,i){var r={scope:e};angular.forEach(['template','templateUrl','controller','controllerAs','contentTemplate','placement','container','delay','trigger','html','animation','customClass','autoClose','id','prefixClass','prefixEvent'],function(e){angular.isDefined(i[e])&&(r[e]=i[e])});var s=/^(false|0|)$/i;angular.forEach(['html','container','autoClose'],function(e){angular.isDefined(i[e])&&s.test(i[e])&&(r[e]=!1)});var l=o.attr('data-target');angular.isDefined(l)&&(r.target=s.test(l)?!1:l),angular.forEach(['title','content'],function(n){i[n]&&i.$observe(n,function(o,i){e[n]=t.trustAsHtml(o),angular.isDefined(i)&&a(function(){u&&u.$applyPlacement()})})}),i.bsPopover&&e.$watch(i.bsPopover,function(t,n){angular.isObject(t)?angular.extend(e,t):e.content=t,angular.isDefined(n)&&a(function(){u&&u.$applyPlacement()})},!0),i.bsShow&&e.$watch(i.bsShow,function(e,t){u&&angular.isDefined(e)&&(angular.isString(e)&&(e=!!e.match(/true|,?(popover),?/i)),e===!0?u.show():u.hide())}),i.viewport&&e.$watch(i.viewport,function(e){u&&angular.isDefined(e)&&u.setViewport(e)});var u=n(o,r);e.$on('$destroy',function(){u&&u.destroy(),r=null,u=null})}}}]),angular.module('mgcrea.ngStrap.scrollspy',['mgcrea.ngStrap.helpers.debounce','mgcrea.ngStrap.helpers.dimensions']).provider('$scrollspy',function(){var e=this.$$spies={},n=this.defaults={debounce:150,throttle:100,offset:100};this.$get=['$window','$document','$rootScope','dimensions','debounce','throttle',function(a,o,i,r,s,l){function u(e,t){return e[0].nodeName&&e[0].nodeName.toLowerCase()===t.toLowerCase()}function c(o){var c=angular.extend({},n,o);c.element||(c.element=p);var g=u(c.element,'body'),m=g?d:c.element,$=g?'window':c.id;if(e[$])return e[$].$$count++,e[$];var h,v,w,y,b,D,k,S,x={},T=x.$trackedElements=[],C=[];return x.init=function(){this.$$count=1,y=s(this.checkPosition,c.debounce),b=l(this.checkPosition,c.throttle),m.on('click',this.checkPositionWithEventLoop),d.on('resize',y),m.on('scroll',b),D=s(this.checkOffsets,c.debounce),h=i.$on('$viewContentLoaded',D),v=i.$on('$includeContentLoaded',D),D(),$&&(e[$]=x)},x.destroy=function(){this.$$count--,this.$$count>0||(m.off('click',this.checkPositionWithEventLoop),d.off('resize',y),m.off('scroll',b),h(),v(),$&&delete e[$])},x.checkPosition=function(){if(C.length){if(S=(g?a.pageYOffset:m.prop('scrollTop'))||0,k=Math.max(a.innerHeight,f.prop('clientHeight')),SC[e+1].offsetTop))return x.$activateElement(C[e])}},x.checkPositionWithEventLoop=function(){setTimeout(x.checkPosition,1)},x.$activateElement=function(e){if(w){var t=x.$getTrackedElement(w);t&&(t.source.removeClass('active'),u(t.source,'li')&&u(t.source.parent().parent(),'li')&&t.source.parent().parent().removeClass('active'))}w=e.target,e.source.addClass('active'),u(e.source,'li')&&u(e.source.parent().parent(),'li')&&e.source.parent().parent().addClass('active')},x.$getTrackedElement=function(e){return T.filter(function(t){return t.target===e})[0]},x.checkOffsets=function(){angular.forEach(T,function(e){var n=t.querySelector(e.target);e.offsetTop=n?r.offset(n).top:null,c.offset&&null!==e.offsetTop&&(e.offsetTop-=1*c.offset)}),C=T.filter(function(e){return null!==e.offsetTop}).sort(function(e,t){return e.offsetTop-t.offsetTop}),y()},x.trackElement=function(e,t){T.push({target:e,source:t})},x.untrackElement=function(e,t){for(var n,a=T.length;a--;)if(T[a].target===e&&T[a].source===t){n=a;break}T=T.splice(n,1)},x.activate=function(e){T[e].addClass('active')},x.init(),x}var d=angular.element(a),f=angular.element(o.prop('documentElement')),p=angular.element(a.document.body);return c}]}).directive('bsScrollspy',['$rootScope','debounce','dimensions','$scrollspy',function(e,t,n,a){return{restrict:'EAC',link:function(e,t,n){var o={scope:e};angular.forEach(['offset','target'],function(e){angular.isDefined(n[e])&&(o[e]=n[e])});var i=a(o);i.trackElement(o.target,t),e.$on('$destroy',function(){i&&(i.untrackElement(o.target,t),i.destroy()),o=null,i=null})}}}]).directive('bsScrollspyList',['$rootScope','debounce','dimensions','$scrollspy',function(e,t,n,a){return{restrict:'A',compile:function(e,t){var n=e[0].querySelectorAll('li > a[href]');angular.forEach(n,function(e){var t=angular.element(e);t.parent().attr('bs-scrollspy','').attr('data-target',t.attr('href'))})}}}]),angular.module('mgcrea.ngStrap.select',['mgcrea.ngStrap.tooltip','mgcrea.ngStrap.helpers.parseOptions']).provider('$select',function(){var e=this.defaults={animation:'am-fade',prefixClass:'select',prefixEvent:'$select',placement:'bottom-left',templateUrl:'select/select.tpl.html',trigger:'focus',container:!1,keyboard:!0,html:!1,delay:0,multiple:!1,allNoneButtons:!1,sort:!0,caretHtml:' ',placeholder:'Choose among the following...',allText:'All',noneText:'None',maxLength:3,maxLengthHtml:'selected',iconCheckmark:'glyphicon glyphicon-ok'};this.$get=['$window','$document','$rootScope','$tooltip','$timeout',function(t,n,a,o,i){function r(t,n,a){var r={},s=angular.extend({},e,a);r=o(t,s);var u=r.$scope;u.$matches=[],u.$activeIndex=s.multiple?[]:-1,u.$isMultiple=s.multiple,u.$showAllNoneButtons=s.allNoneButtons&&s.multiple,u.$iconCheckmark=s.iconCheckmark,u.$allText=s.allText,u.$noneText=s.noneText,u.$activate=function(e){u.$$postDigest(function(){r.activate(e)})},u.$select=function(e,t){u.$$postDigest(function(){r.select(e)})},u.$isVisible=function(){return r.$isVisible()},u.$isActive=function(e){return r.$isActive(e)},u.$selectAll=function(){for(var e=0;e=u.$matches.length&&(u.$activeIndex=s.multiple?[]:0)},r.$isVisible=function(){return s.minLength&&n?u.$matches.length&&n.$viewValue.length>=s.minLength:u.$matches.length},r.$isActive=function(e){return s.multiple?-1!==u.$activeIndex.indexOf(e):u.$activeIndex===e},r.$getIndex=function(e){var t=u.$matches.length,n=t;if(t){for(n=t;n--&&u.$matches[n].value!==e;);if(!(0>n))return n}},r.$onMouseDown=function(e){if(e.preventDefault(),e.stopPropagation(),l){var t=angular.element(e.target);t.triggerHandler('click')}},r.$onKeyDown=function(e){return/(9|13|38|40)/.test(e.keyCode)?(e.preventDefault(),e.stopPropagation(),s.multiple&&9===e.keyCode?r.hide():s.multiple||13!==e.keyCode&&9!==e.keyCode?void(s.multiple||(38===e.keyCode&&u.$activeIndex>0?u.$activeIndex--:38===e.keyCode&&u.$activeIndex<0?u.$activeIndex=u.$matches.length-1:40===e.keyCode&&u.$activeIndex'),c.after(t)}var d=o(n.bsOptions),f=a(t,r,s),p=d.$match[7].replace(/\|.+/,'').trim();e.$watchCollection(p,function(t,n){d.valuesFn(e,r).then(function(e){f.update(e),r.$render()})}),e.$watch(n.ngModel,function(e,t){f.$updateActiveIndex(),r.$render()},!0),r.$render=function(){var e,n;s.multiple&&angular.isArray(r.$modelValue)?(e=r.$modelValue.map(function(e){return n=f.$getIndex(e),angular.isDefined(n)?f.$scope.$matches[n].label:!1}).filter(angular.isDefined),e=e.length>(s.maxLength||i.maxLength)?e.length+' '+(s.maxLengthHtml||i.maxLengthHtml):e.join(', ')):(n=f.$getIndex(r.$modelValue),e=angular.isDefined(n)?f.$scope.$matches[n].label:!1),t.html((e?e:s.placeholder)+(s.caretHtml?s.caretHtml:i.caretHtml))},s.multiple&&(r.$isEmpty=function(e){return!e||0===e.length}),e.$on('$destroy',function(){f&&f.destroy(),s=null,f=null})}}}]),angular.module('mgcrea.ngStrap.timepicker',['mgcrea.ngStrap.helpers.dateParser','mgcrea.ngStrap.helpers.dateFormatter','mgcrea.ngStrap.tooltip']).provider('$timepicker',function(){var e=this.defaults={animation:'am-fade',prefixClass:'timepicker',placement:'bottom-left',templateUrl:'timepicker/timepicker.tpl.html',trigger:'focus',container:!1,keyboard:!0,html:!1,delay:0,useNative:!0,timeType:'date',timeFormat:'shortTime',timezone:null,modelTimeFormat:null,autoclose:!1,minTime:-(1/0),maxTime:+(1/0),length:5,hourStep:1,minuteStep:5,secondStep:5,roundDisplay:!1,iconUp:'glyphicon glyphicon-chevron-up',iconDown:'glyphicon glyphicon-chevron-down',arrowBehavior:'pager'};this.$get=['$window','$document','$rootScope','$sce','$dateFormatter','$tooltip','$timeout',function(t,n,a,o,i,r,s){function l(t,n,a){function o(e){var t=6e4*g.minuteStep;return new Date(Math.floor(e.getTime()/t)*t)}function l(e,n){var a=e+n;if(t[0].createTextRange){var o=t[0].createTextRange();o.collapse(!0),o.moveStart('character',e),o.moveEnd('character',a),o.select()}else t[0].setSelectionRange?t[0].setSelectionRange(e,a):angular.isUndefined(t[0].selectionStart)&&(t[0].selectionStart=e,t[0].selectionEnd=a)}function d(){t[0].focus()}var f=r(t,angular.extend({},e,a)),p=a.scope,g=f.$options,m=f.$scope,$=g.lang,h=function(e,t,n){return i.formatDate(e,t,$,n)},v=0,w=g.roundDisplay?o(new Date):new Date,y=n.$dateValue||w,b={hour:y.getHours(),meridian:y.getHours()<12,minute:y.getMinutes(),second:y.getSeconds(),millisecond:y.getMilliseconds()},D=i.getDatetimeFormat(g.timeFormat,$),k=i.hoursFormat(D),S=i.timeSeparator(D),x=i.minutesFormat(D),T=i.secondsFormat(D),C=i.showSeconds(D),M=i.showAM(D);m.$iconUp=g.iconUp,m.$iconDown=g.iconDown,m.$select=function(e,t){f.select(e,t)},m.$moveIndex=function(e,t){f.$moveIndex(e,t)},m.$switchMeridian=function(e){f.switchMeridian(e)},f.update=function(e){angular.isDate(e)&&!isNaN(e.getTime())?(f.$date=e,angular.extend(b,{hour:e.getHours(),minute:e.getMinutes(),second:e.getSeconds(),millisecond:e.getMilliseconds()}),f.$build()):f.$isBuilt||f.$build()},f.select=function(e,t,a){(!n.$dateValue||isNaN(n.$dateValue.getTime()))&&(n.$dateValue=new Date(1970,0,1)),angular.isDate(e)||(e=new Date(e)),0===t?n.$dateValue.setHours(e.getHours()):1===t?n.$dateValue.setMinutes(e.getMinutes()):2===t&&n.$dateValue.setSeconds(e.getSeconds()),n.$setViewValue(angular.copy(n.$dateValue)),n.$render(),g.autoclose&&!a&&s(function(){f.hide(!0)})},f.switchMeridian=function(e){if(n.$dateValue&&!isNaN(n.$dateValue.getTime())){var t=(e||n.$dateValue).getHours();n.$dateValue.setHours(12>t?t+12:t-12),n.$setViewValue(angular.copy(n.$dateValue)),n.$render()}},f.$build=function(){var e,t,n=m.midIndex=parseInt(g.length/2,10),a=[];for(e=0;e1*g.maxTime},m.$arrowAction=function(e,t){'picker'===g.arrowBehavior?f.$setTimeByStep(e,t):f.$moveIndex(e,t)},f.$setTimeByStep=function(e,t){var n=new Date(f.$date||y),a=n.getHours(),o=n.getMinutes(),i=n.getSeconds();0===t?n.setHours(a-parseInt(g.hourStep,10)*e):1===t?n.setMinutes(o-parseInt(g.minuteStep,10)*e):2===t&&n.setSeconds(i-parseInt(g.secondStep,10)*e),f.select(n,t,!0)},f.$moveIndex=function(e,t){var n;0===t?(n=new Date(1970,0,1,b.hour+e*g.length,b.minute,b.second),angular.extend(b,{hour:n.getHours()})):1===t?(n=new Date(1970,0,1,b.hour,b.minute+e*g.length*g.minuteStep,b.second),angular.extend(b,{minute:n.getMinutes()})):2===t&&(n=new Date(1970,0,1,b.hour,b.minute,b.second+e*g.length*g.secondStep),angular.extend(b,{second:n.getSeconds()})),f.$build()},f.$onMouseDown=function(e){if('input'!==e.target.nodeName.toLowerCase()&&e.preventDefault(),e.stopPropagation(),c){var t=angular.element(e.target);'button'!==t[0].nodeName.toLowerCase()&&(t=t.parent()),t.triggerHandler('click')}},f.$onKeyDown=function(e){if(/(38|37|39|40|13)/.test(e.keyCode)&&!e.shiftKey&&!e.altKey){if(e.preventDefault(),e.stopPropagation(),13===e.keyCode)return void f.hide(!0);var t=new Date(f.$date),n=t.getHours(),a=h(t,k).length,o=t.getMinutes(),i=h(t,x).length,r=t.getSeconds(),s=h(t,T).length,u=1,c=/(37|39)/.test(e.keyCode),d=2+1*C+1*M;c&&(37===e.keyCode?v=1>v?d-1:v-1:39===e.keyCode&&(v=d-1>v?v+1:0));var m=[0,a],$=0;38===e.keyCode&&($=-1),40===e.keyCode&&($=1);var w=2===v&&C,y=2===v&&!C||3===v&&C;0===v?(t.setHours(n+$*parseInt(g.hourStep,10)),a=h(t,k).length,m=[0,a]):1===v?(t.setMinutes(o+$*parseInt(g.minuteStep,10)),i=h(t,x).length,m=[a+u,i]):w?(t.setSeconds(r+$*parseInt(g.secondStep,10)),s=h(t,T).length,m=[a+u+i+u,s]):y&&(c||f.switchMeridian(),m=[a+u+i+u+(s+u)*C,2]),f.select(t,v,!0),l(m[0],m[1]),p.$digest()}};var E=f.init;f.init=function(){return u&&g.useNative?(t.prop('type','time'),void t.css('-webkit-appearance','textfield')):(c&&(t.prop('type','text'),t.attr('readonly','true'),t.on('click',d)),void E())};var A=f.destroy;f.destroy=function(){u&&g.useNative&&t.off('click',d),A()};var F=f.show;f.show=function(){!c&&t.attr('readonly')||t.attr('disabled')||(F(),s(function(){f.$element&&f.$element.on(c?'touchstart':'mousedown',f.$onMouseDown),g.keyboard&&t&&t.on('keydown',f.$onKeyDown)},0,!1))};var V=f.hide;return f.hide=function(e){f.$isShown&&(f.$element&&f.$element.off(c?'touchstart':'mousedown',f.$onMouseDown),g.keyboard&&t&&t.off('keydown',f.$onKeyDown),V(e))},f}var u=/(ip(a|o)d|iphone|android)/gi.test(t.navigator.userAgent),c='createTouch'in t.document&&u;return e.lang||(e.lang=i.getDefaultLocale()),l.defaults=e,l}]}).directive('bsTimepicker',['$window','$parse','$q','$dateFormatter','$dateParser','$timepicker',function(e,t,a,o,i,r){var s=r.defaults,l=/(ip(a|o)d|iphone|android)/gi.test(e.navigator.userAgent);return{restrict:'EAC',require:'ngModel',link:function(e,t,a,u){function c(e){if(angular.isDate(e)){var t=isNaN(f.minTime)||new Date(e.getTime()).setFullYear(1970,0,1)>=f.minTime,n=isNaN(f.maxTime)||new Date(e.getTime()).setFullYear(1970,0,1)<=f.maxTime,a=t&&n;u.$setValidity('date',a),u.$setValidity('min',t),u.$setValidity('max',n),a&&(u.$dateValue=e)}}function d(){return!u.$dateValue||isNaN(u.$dateValue.getTime())?'':$(u.$dateValue,f.timeFormat)}var f={scope:e};angular.forEach(['template','templateUrl','controller','controllerAs','placement','container','delay','trigger','keyboard','html','animation','autoclose','timeType','timeFormat','timezone','modelTimeFormat','useNative','hourStep','minuteStep','secondStep','length','arrowBehavior','iconUp','iconDown','roundDisplay','id','prefixClass','prefixEvent'],function(e){angular.isDefined(a[e])&&(f[e]=a[e])});var p=/^(false|0|)$/i;angular.forEach(['html','container','autoclose','useNative','roundDisplay'],function(e){angular.isDefined(a[e])&&p.test(a[e])&&(f[e]=!1)}),a.bsShow&&e.$watch(a.bsShow,function(e,t){g&&angular.isDefined(e)&&(angular.isString(e)&&(e=!!e.match(/true|,?(timepicker),?/i)),e===!0?g.show():g.hide())}),l&&(f.useNative||s.useNative)&&(f.timeFormat='HH:mm');var g=r(t,u,f);f=g.$options;var m=f.lang,$=function(e,t,n){return o.formatDate(e,t,m,n)},h=i({format:f.timeFormat,lang:m});angular.forEach(['minTime','maxTime'],function(e){angular.isDefined(a[e])&&a.$observe(e,function(t){g.$options[e]=h.getTimeForAttribute(e,t),!isNaN(g.$options[e])&&g.$build(),c(u.$dateValue)})}),e.$watch(a.ngModel,function(e,t){g.update(u.$dateValue)},!0),u.$parsers.unshift(function(e){var t;if(!e)return u.$setValidity('date',!0),null;var a=angular.isDate(e)?e:h.parse(e,u.$dateValue);return!a||isNaN(a.getTime())?(u.$setValidity('date',!1),n):(c(a),'string'===f.timeType?(t=h.timezoneOffsetAdjust(a,f.timezone,!0),$(t,f.modelTimeFormat||f.timeFormat)):(t=h.timezoneOffsetAdjust(u.$dateValue,f.timezone,!0),'number'===f.timeType?t.getTime():'unix'===f.timeType?t.getTime()/1e3:'iso'===f.timeType?t.toISOString():new Date(t)))}),u.$formatters.push(function(e){var t;return t=angular.isUndefined(e)||null===e?0/0:angular.isDate(e)?e:'string'===f.timeType?h.parse(e,null,f.modelTimeFormat):new Date('unix'===f.timeType?1e3*e:e),u.$dateValue=h.timezoneOffsetAdjust(t,f.timezone),d()}),u.$render=function(){t.val(d())},e.$on('$destroy',function(){g&&g.destroy(),f=null,g=null})}}}]),angular.module('mgcrea.ngStrap.tab',[]).provider('$tab',function(){var e=this.defaults={animation:'am-fade',template:'tab/tab.tpl.html',navClass:'nav-tabs',activeClass:'active'},t=this.controller=function(t,n,a){var o=this;o.$options=angular.copy(e),angular.forEach(['animation','navClass','activeClass'],function(e){angular.isDefined(a[e])&&(o.$options[e]=a[e])}),t.$navClass=o.$options.navClass,t.$activeClass=o.$options.activeClass,o.$panes=t.$panes=[],o.$activePaneChangeListeners=o.$viewChangeListeners=[],o.$push=function(e){angular.isUndefined(o.$panes.$active)&&t.$setActive(e.name||0),o.$panes.push(e)},o.$remove=function(e){var t,n=o.$panes.indexOf(e),a=o.$panes.$active;t=angular.isString(a)?o.$panes.map(function(e){return e.name}).indexOf(a):o.$panes.$active,o.$panes.splice(n,1),t>n?t--:n===t&&t===o.$panes.length&&t--,t>=0&&t=e.length&&(d.$activeIndex=u.autoSelect?0:-1),s(d),o(l.$applyPlacement)},l.activate=function(e){d.$activeIndex=e},l.select=function(e){if(-1!==e){var t=d.$matches[e].value;n.$setViewValue(t),n.$render(),d.$resetMatches(),c&&c.$digest(),d.$emit(u.prefixEvent+'.select',t,e,l)}},l.$isVisible=function(){return u.minLength&&n?d.$matches.length&&angular.isString(n.$viewValue)&&n.$viewValue.length>=u.minLength:!!d.$matches.length},l.$getIndex=function(e){var t=d.$matches.length,n=t;if(t){for(n=t;n--&&d.$matches[n].value!==e;);if(!(0>n))return n}},l.$onMouseDown=function(e){e.preventDefault(),e.stopPropagation()},l.$onKeyDown=function(e){/(38|40|13)/.test(e.keyCode)&&(!l.$isVisible()||13===e.keyCode&&-1===d.$activeIndex||(e.preventDefault(),e.stopPropagation()),13===e.keyCode&&d.$matches.length?l.select(d.$activeIndex):38===e.keyCode&&d.$activeIndex>0?d.$activeIndex--:40===e.keyCode&&d.$activeIndex0)return void r.$setViewValue(r.$viewValue.substring(0,r.$viewValue.length-1));e.length>c&&(e=e.slice(0,c));var n=g.$isVisible();n&&g.update(e),(1!==e.length||e[0].value!==t)&&(!n&&g.update(e),r.$render())})}),r.$formatters.push(function(e){var t=p.displayValue(e);return t?t:e&&'object'!=typeof e?e:''}),r.$render=function(){if(r.$isEmpty(r.$viewValue))return t.val('');var e=g.$getIndex(r.$modelValue),n=angular.isDefined(e)?g.$scope.$matches[e].label:r.$viewValue;n=angular.isObject(n)?p.displayValue(n):n;var a=n?n.toString().replace(/<(?:.|\n)*?>/gm,''):'';t.val(s.trimValue===!1?a:a.trim())},e.$on('$destroy',function(){g&&g.destroy(),s=null,g=null})}}}]),angular.module('mgcrea.ngStrap.tooltip',['mgcrea.ngStrap.core','mgcrea.ngStrap.helpers.dimensions']).provider('$tooltip',function(){var e=this.defaults={animation:'am-fade',customClass:'',prefixClass:'tooltip',prefixEvent:'tooltip',container:!1,target:!1,placement:'top',templateUrl:'tooltip/tooltip.tpl.html',template:'',contentTemplate:!1,trigger:'hover focus',keyboard:!1,html:!1,show:!1,title:'',type:'',delay:0,autoClose:!1,bsEnabled:!0,viewport:{selector:'body',padding:0}};this.$get=['$window','$rootScope','$bsCompiler','$q','$templateCache','$http','$animate','$sce','dimensions','$$rAF','$timeout',function(n,a,o,i,r,s,l,u,c,d,f){function p(i,r){function s(){P.$emit(V.prefixEvent+'.show',F)}function p(){if(P.$emit(V.prefixEvent+'.hide',F),R===j){if(z&&'focus'===V.trigger)return i[0].blur();A()}}function v(){var e=V.trigger.split(' ');angular.forEach(e,function(e){'click'===e?i.on('click',F.toggle):'manual'!==e&&(i.on('hover'===e?'mouseenter':'focus',F.enter),i.on('hover'===e?'mouseleave':'blur',F.leave),'button'===I&&'hover'!==e&&i.on($?'touchstart':'mousedown',F.$onFocusElementMouseDown))})}function w(){for(var e=V.trigger.split(' '),t=e.length;t--;){var n=e[t];'click'===n?i.off('click',F.toggle):'manual'!==n&&(i.off('hover'===n?'mouseenter':'focus',F.enter),i.off('hover'===n?'mouseleave':'blur',F.leave),'button'===I&&'hover'!==n&&i.off($?'touchstart':'mousedown',F.$onFocusElementMouseDown))}}function y(){'focus'!==V.trigger?R.on('keyup',F.$onKeyUp):i.on('keyup',F.$onFocusKeyUp)}function b(){'focus'!==V.trigger?R.off('keyup',F.$onKeyUp):i.off('keyup',F.$onFocusKeyUp)}function D(){f(function(){R.on('click',S),h.on('click',F.hide),K=!0},0,!1)}function k(){K&&(R.off('click',S),h.off('click',F.hide),K=!1)}function S(e){e.stopPropagation()}function x(e){e=e||V.target||i;var a=e[0],o='BODY'===a.tagName,r=a.getBoundingClientRect(),s={};for(var l in r)s[l]=r[l];null===s.width&&(s=angular.extend({},s,{width:r.right-r.left,height:r.bottom-r.top}));var u=o?{top:0,left:0}:c.offset(a),d={scroll:o?t.documentElement.scrollTop||t.body.scrollTop:e.prop('scrollTop')||0},f=o?{width:t.documentElement.clientWidth,height:n.innerHeight}:null;return angular.extend({},s,d,f,u)}function T(e,t,n,a){var o,i=e.split('-');switch(i[0]){case'right':o={top:t.top+t.height/2-a/2,left:t.left+t.width};break;case'bottom':o={top:t.top+t.height,left:t.left+t.width/2-n/2};break;case'left':o={top:t.top+t.height/2-a/2,left:t.left-n};break;default:o={top:t.top-a,left:t.left+t.width/2-n/2}}if(!i[1])return o;if('top'===i[0]||'bottom'===i[0])switch(i[1]){case'left':o.left=t.left;break;case'right':o.left=t.left+t.width-n}else if('left'===i[0]||'right'===i[0])switch(i[1]){case'top':o.top=t.top-a;break;case'bottom':o.top=t.top+t.height}return o}function C(e,t){var n=R[0],a=n.offsetWidth,o=n.offsetHeight,i=parseInt(c.css(n,'margin-top'),10),r=parseInt(c.css(n,'margin-left'),10);isNaN(i)&&(i=0),isNaN(r)&&(r=0),e.top=e.top+i,e.left=e.left+r,c.setOffset(n,angular.extend({using:function(e){R.css({top:Math.round(e.top)+'px',left:Math.round(e.left)+'px',right:''})}},e),0);var s=n.offsetWidth,l=n.offsetHeight;if('top'===t&&l!==o&&(e.top=e.top+o-l),!/top-left|top-right|bottom-left|bottom-right/.test(t)){var u=M(t,e,s,l);if(u.left?e.left+=u.left:e.top+=u.top,c.setOffset(n,e),/top|right|bottom|left/.test(t)){var d=/top|bottom/.test(t),f=d?2*u.left-a+s:2*u.top-o+l,p=d?'offsetWidth':'offsetHeight';E(f,n[p],d)}}}function M(e,t,n,a){var o={top:0,left:0};if(!F.$viewport)return o;var i=V.viewport&&V.viewport.padding||0,r=x(F.$viewport);if(/right|left/.test(e)){var s=t.top-i-r.scroll,l=t.top+i-r.scroll+a;sr.top+r.height&&(o.top=r.top+r.height-l)}else{var u=t.left-i,c=t.left+i+n;ur.right&&(o.left=r.left+r.width-c)}return o}function E(e,t,n){var a=m('.tooltip-arrow, .arrow',R[0]);a.css(n?'left':'top',50*(1-e/t)+'%').css(n?'top':'left','')}function A(){clearTimeout(H),F.$isShown&&null!==R&&(V.autoClose&&k(),V.keyboard&&b()),Y&&(Y.$destroy(),Y=null),R&&(R.remove(),R=F.$element=null)}var F={},V=F.$options=angular.extend({},e,r),O=F.$promise=o.compile(V),P=F.$scope=V.scope&&V.scope.$new()||a.$new(),I=i[0].nodeName.toLowerCase();if(V.delay&&angular.isString(V.delay)){var N=V.delay.split(',').map(parseFloat);V.delay=N.length>1?{show:N[0],hide:N[1]}:N[0]}F.$id=V.id||i.attr('id')||'',V.title&&(P.title=u.trustAsHtml(V.title)),P.$setEnabled=function(e){P.$$postDigest(function(){F.setEnabled(e)})},P.$hide=function(){P.$$postDigest(function(){F.hide()})},P.$show=function(){P.$$postDigest(function(){F.show()})},P.$toggle=function(){P.$$postDigest(function(){F.toggle()})},F.$isShown=P.$isShown=!1;var H,L,U,R,q,Y;O.then(function(e){U=e,F.init()}),F.init=function(){V.delay&&angular.isNumber(V.delay)&&(V.delay={show:V.delay,hide:V.delay}),'self'===V.container?q=i:angular.isElement(V.container)?q=V.container:V.container&&(q=m(V.container)),v(),V.target&&(V.target=angular.isElement(V.target)?V.target:m(V.target)),V.show&&P.$$postDigest(function(){'focus'===V.trigger?i[0].focus():F.show()})},F.destroy=function(){w(),A(),P.$destroy()},F.enter=function(){return clearTimeout(H),L='in',V.delay&&V.delay.show?void(H=setTimeout(function(){'in'===L&&F.show()},V.delay.show)):F.show()},F.show=function(){if(V.bsEnabled&&!F.$isShown){P.$emit(V.prefixEvent+'.show.before',F);var e,t;V.container?(e=q,t=q[0].lastChild?angular.element(q[0].lastChild):null):(e=null,t=i),R&&A(),Y=F.$scope.$new(),R=F.$element=U.link(Y,function(e,t){}),R.css({top:'-9999px',left:'-9999px',right:'auto',display:'block',visibility:'hidden'}),V.animation&&R.addClass(V.animation),V.type&&R.addClass(V.prefixClass+'-'+V.type),V.customClass&&R.addClass(V.customClass),t?t.after(R):e.prepend(R),F.$isShown=P.$isShown=!0,g(P),F.$applyPlacement(),angular.version.minor<=2?l.enter(R,e,t,s):l.enter(R,e,t).then(s),g(P),d(function(){R&&R.css({visibility:'visible'})}),V.keyboard&&('focus'!==V.trigger&&F.focus(),y()),V.autoClose&&D()}},F.leave=function(){return clearTimeout(H),L='out',V.delay&&V.delay.hide?void(H=setTimeout(function(){'out'===L&&F.hide()},V.delay.hide)):F.hide()};var z,j;F.hide=function(e){F.$isShown&&(P.$emit(V.prefixEvent+'.hide.before',F),z=e,j=R,angular.version.minor<=2?l.leave(R,p):l.leave(R).then(p),F.$isShown=P.$isShown=!1,g(P),V.keyboard&&null!==R&&b(),V.autoClose&&null!==R&&k())},F.toggle=function(){F.$isShown?F.leave():F.enter()},F.focus=function(){R[0].focus()},F.setEnabled=function(e){V.bsEnabled=e},F.setViewport=function(e){V.viewport=e},F.$applyPlacement=function(){if(R){var t=V.placement,n=/\s?auto?\s?/i,a=n.test(t);a&&(t=t.replace(n,'')||e.placement),R.addClass(V.placement);var o=x(),i=R.prop('offsetWidth'),r=R.prop('offsetHeight');if(F.$viewport=V.viewport&&m(V.viewport.selector||V.viewport),a){var s=t,l=x(F.$viewport);s.indexOf('bottom')>=0&&o.bottom+r>l.bottom?t=s.replace('bottom','top'):s.indexOf('top')>=0&&o.top-rl.width?t='right'===s?'left':t.replace('left','right'):('left'===s||'bottom-right'===s||'top-right'===s)&&o.left-i= scrollHeight - offsetBottom)) {\n return 'bottom';\n } else {\n return 'middle';\n }\n\n }\n\n function getScrollTop() {\n return targetEl[0] === $window ? $window.pageYOffset : targetEl[0].scrollTop;\n }\n\n function getScrollHeight() {\n return targetEl[0] === $window ? $window.document.body.scrollHeight : targetEl[0].scrollHeight;\n }\n\n $affix.init();\n return $affix;\n\n }\n\n return AffixFactory;\n\n };\n\n })\n\n .directive('bsAffix', function($affix, $window) {\n\n return {\n restrict: 'EAC',\n require: '^?bsAffixTarget',\n link: function postLink(scope, element, attr, affixTarget) {\n\n var options = {scope: scope, target: affixTarget ? affixTarget.$element : angular.element($window)};\n angular.forEach(['offsetTop', 'offsetBottom', 'offsetParent', 'offsetUnpin', 'inlineStyles'], function(key) {\n if(angular.isDefined(attr[key])) {\n var option = attr[key];\n if (/true/i.test(option)) option = true;\n if (/false/i.test(option)) option = false;\n options[key] = option;\n }\n });\n\n var affix = $affix(element, options);\n scope.$on('$destroy', function() {\n affix && affix.destroy();\n options = null;\n affix = null;\n });\n\n }\n };\n\n })\n\n .directive('bsAffixTarget', function() {\n return {\n controller: function($element) {\n this.$element = $element;\n }\n };\n });\n\n// Source: alert/alert.js\n// @BUG: following snippet won't compile correctly\n// @TODO: submit issue to core\n// ' ' +\n\nangular.module('mgcrea.ngStrap.alert', ['mgcrea.ngStrap.modal'])\n\n .provider('$alert', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'alert',\n prefixEvent: 'alert',\n placement: null,\n templateUrl: 'alert/alert.tpl.html',\n container: false,\n element: null,\n backdrop: false,\n keyboard: true,\n show: true,\n // Specific options\n duration: false,\n type: false,\n dismissable: true\n };\n\n this.$get = function($modal, $timeout) {\n\n function AlertFactory(config) {\n\n var $alert = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $alert = $modal(options);\n\n // Support scope as string options [/*title, content, */ type, dismissable]\n $alert.$scope.dismissable = !!options.dismissable;\n if(options.type) {\n $alert.$scope.type = options.type;\n }\n\n // Support auto-close duration\n var show = $alert.show;\n if(options.duration) {\n $alert.show = function() {\n show();\n $timeout(function() {\n $alert.hide();\n }, options.duration * 1000);\n };\n }\n\n return $alert;\n\n }\n\n return AlertFactory;\n\n };\n\n })\n\n .directive('bsAlert', function($window, $sce, $alert) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'keyboard', 'html', 'container', 'animation', 'duration', 'dismissable'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['keyboard', 'html', 'container', 'dismissable'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // overwrite inherited title value when no value specified\n // fix for angular 1.3.1 531a8de72c439d8ddd064874bf364c00cedabb11\n if (!scope.hasOwnProperty('title')){\n scope.title = '';\n }\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content', 'type'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsAlert && scope.$watch(attr.bsAlert, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize alert\n var alert = $alert(options);\n\n // Trigger\n element.on(attr.trigger || 'click', alert.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (alert) alert.destroy();\n options = null;\n alert = null;\n });\n\n }\n };\n\n });\n\n// Source: aside/aside.js\nangular.module('mgcrea.ngStrap.aside', ['mgcrea.ngStrap.modal'])\n\n .provider('$aside', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade-and-slide-right',\n prefixClass: 'aside',\n prefixEvent: 'aside',\n placement: 'right',\n templateUrl: 'aside/aside.tpl.html',\n contentTemplate: false,\n container: false,\n element: null,\n backdrop: true,\n keyboard: true,\n html: false,\n show: true\n };\n\n this.$get = function($modal) {\n\n function AsideFactory(config) {\n\n var $aside = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $aside = $modal(options);\n\n return $aside;\n\n }\n\n return AsideFactory;\n\n };\n\n })\n\n .directive('bsAside', function($window, $sce, $aside) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'backdrop', 'keyboard', 'html', 'container', 'animation'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['backdrop', 'keyboard', 'html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsAside && scope.$watch(attr.bsAside, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize aside\n var aside = $aside(options);\n\n // Trigger\n element.on(attr.trigger || 'click', aside.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (aside) aside.destroy();\n options = null;\n aside = null;\n });\n\n }\n };\n\n });\n\n// Source: button/button.js\nangular.module('mgcrea.ngStrap.button', [])\n\n .provider('$button', function() {\n\n var defaults = this.defaults = {\n activeClass:'active',\n toggleEvent:'click'\n };\n\n this.$get = function() {\n return {defaults: defaults};\n };\n\n })\n\n .directive('bsCheckboxGroup', function() {\n\n return {\n restrict: 'A',\n require: 'ngModel',\n compile: function postLink(element, attr) {\n element.attr('data-toggle', 'buttons');\n element.removeAttr('ng-model');\n var children = element[0].querySelectorAll('input[type=\"checkbox\"]');\n angular.forEach(children, function(child) {\n var childEl = angular.element(child);\n childEl.attr('bs-checkbox', '');\n childEl.attr('ng-model', attr.ngModel + '.' + childEl.attr('value'));\n });\n }\n\n };\n\n })\n\n .directive('bsCheckbox', function($button, $$rAF) {\n\n var defaults = $button.defaults;\n var constantValueRegExp = /^(true|false|\\d+)$/;\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n var options = defaults;\n\n // Support label > input[type=\"checkbox\"]\n var isInput = element[0].nodeName === 'INPUT';\n var activeElement = isInput ? element.parent() : element;\n\n var trueValue = angular.isDefined(attr.trueValue) ? attr.trueValue : true;\n if(constantValueRegExp.test(attr.trueValue)) {\n trueValue = scope.$eval(attr.trueValue);\n }\n var falseValue = angular.isDefined(attr.falseValue) ? attr.falseValue : false;\n if(constantValueRegExp.test(attr.falseValue)) {\n falseValue = scope.$eval(attr.falseValue);\n }\n\n // Parse exotic values\n var hasExoticValues = typeof trueValue !== 'boolean' || typeof falseValue !== 'boolean';\n if(hasExoticValues) {\n controller.$parsers.push(function(viewValue) {\n // console.warn('$parser', element.attr('ng-model'), 'viewValue', viewValue);\n return viewValue ? trueValue : falseValue;\n });\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n return angular.equals(modelValue, trueValue);\n });\n // Fix rendering for exotic values\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n controller.$render();\n });\n }\n\n // model -> view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var isActive = angular.equals(controller.$modelValue, trueValue);\n $$rAF(function() {\n if(isInput) element[0].checked = isActive;\n activeElement.toggleClass(options.activeClass, isActive);\n });\n };\n\n // view -> model\n element.bind(options.toggleEvent, function() {\n scope.$apply(function () {\n // console.warn('!click', element.attr('ng-model'), 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue, 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue);\n if(!isInput) {\n controller.$setViewValue(!activeElement.hasClass('active'));\n }\n if(!hasExoticValues) {\n controller.$render();\n }\n });\n });\n\n }\n\n };\n\n })\n\n .directive('bsRadioGroup', function() {\n\n return {\n restrict: 'A',\n require: 'ngModel',\n compile: function postLink(element, attr) {\n element.attr('data-toggle', 'buttons');\n element.removeAttr('ng-model');\n var children = element[0].querySelectorAll('input[type=\"radio\"]');\n angular.forEach(children, function(child) {\n angular.element(child).attr('bs-radio', '');\n angular.element(child).attr('ng-model', attr.ngModel);\n });\n }\n\n };\n\n })\n\n .directive('bsRadio', function($button, $$rAF) {\n\n var defaults = $button.defaults;\n var constantValueRegExp = /^(true|false|\\d+)$/;\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n var options = defaults;\n\n // Support `label > input[type=\"radio\"]` markup\n var isInput = element[0].nodeName === 'INPUT';\n var activeElement = isInput ? element.parent() : element;\n\n var value;\n attr.$observe('value', function(v) {\n value = constantValueRegExp.test(v) ? scope.$eval(v) : v;\n controller.$render();\n });\n\n // model -> view\n controller.$render = function () {\n // console.warn('$render', element.attr('value'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var isActive = angular.equals(controller.$modelValue, value);\n $$rAF(function() {\n if(isInput) element[0].checked = isActive;\n activeElement.toggleClass(options.activeClass, isActive);\n });\n };\n\n // view -> model\n element.bind(options.toggleEvent, function() {\n scope.$apply(function () {\n // console.warn('!click', element.attr('value'), 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue, 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue);\n controller.$setViewValue(value);\n controller.$render();\n });\n });\n\n }\n\n };\n\n });\n\n// Source: collapse/collapse.js\nangular.module('mgcrea.ngStrap.collapse', [])\n\n .provider('$collapse', function() {\n\n var defaults = this.defaults = {\n animation: 'am-collapse',\n disallowToggle: false,\n activeClass: 'in',\n startCollapsed: false,\n allowMultiple: false\n };\n\n var controller = this.controller = function($scope, $element, $attrs) {\n var self = this;\n\n // Attributes options\n self.$options = angular.copy(defaults);\n angular.forEach(['animation', 'disallowToggle', 'activeClass', 'startCollapsed', 'allowMultiple'], function (key) {\n if(angular.isDefined($attrs[key])) self.$options[key] = $attrs[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['disallowToggle', 'startCollapsed', 'allowMultiple'], function(key) {\n if(angular.isDefined($attrs[key]) && falseValueRegExp.test($attrs[key])) {\n self.$options[key] = false;\n }\n });\n\n self.$toggles = [];\n self.$targets = [];\n\n self.$viewChangeListeners = [];\n\n self.$registerToggle = function(element) {\n self.$toggles.push(element);\n };\n self.$registerTarget = function(element) {\n self.$targets.push(element);\n };\n\n self.$unregisterToggle = function(element) {\n var index = self.$toggles.indexOf(element);\n // remove toggle from $toggles array\n self.$toggles.splice(index, 1);\n };\n self.$unregisterTarget = function(element) {\n var index = self.$targets.indexOf(element);\n\n // remove element from $targets array\n self.$targets.splice(index, 1);\n\n if (self.$options.allowMultiple) {\n // remove target index from $active array values\n deactivateItem(element);\n }\n\n // fix active item indexes\n fixActiveItemIndexes(index);\n\n self.$viewChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n // use array to store all the currently open panels\n self.$targets.$active = !self.$options.startCollapsed ? [0] : [];\n self.$setActive = $scope.$setActive = function(value) {\n if(angular.isArray(value)) {\n self.$targets.$active = value;\n }\n else if(!self.$options.disallowToggle) {\n // toogle element active status\n isActive(value) ? deactivateItem(value) : activateItem(value);\n } else {\n activateItem(value);\n }\n\n self.$viewChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n self.$activeIndexes = function() {\n return self.$options.allowMultiple ? self.$targets.$active :\n self.$targets.$active.length === 1 ? self.$targets.$active[0] : -1;\n };\n\n function fixActiveItemIndexes(index) {\n // item with index was removed, so we\n // need to adjust other items index values\n var activeIndexes = self.$targets.$active;\n for(var i = 0; i < activeIndexes.length; i++) {\n if (index < activeIndexes[i]) {\n activeIndexes[i] = activeIndexes[i] - 1;\n }\n\n // the last item is active, so we need to\n // adjust its index\n if (activeIndexes[i] === self.$targets.length) {\n activeIndexes[i] = self.$targets.length - 1;\n }\n }\n }\n\n function isActive(value) {\n var activeItems = self.$targets.$active;\n return activeItems.indexOf(value) === -1 ? false : true;\n }\n\n function deactivateItem(value) {\n var index = self.$targets.$active.indexOf(value);\n if (index !== -1) {\n self.$targets.$active.splice(index, 1);\n }\n }\n\n function activateItem(value) {\n if (!self.$options.allowMultiple) {\n // remove current selected item\n self.$targets.$active.splice(0, 1);\n }\n\n if (self.$targets.$active.indexOf(value) === -1) {\n self.$targets.$active.push(value);\n }\n }\n\n };\n\n this.$get = function() {\n var $collapse = {};\n $collapse.defaults = defaults;\n $collapse.controller = controller;\n return $collapse;\n };\n\n })\n\n .directive('bsCollapse', function($window, $animate, $collapse) {\n\n var defaults = $collapse.defaults;\n\n return {\n require: ['?ngModel', 'bsCollapse'],\n controller: ['$scope', '$element', '$attrs', $collapse.controller],\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n if(ngModelCtrl) {\n\n // Update the modelValue following\n bsCollapseCtrl.$viewChangeListeners.push(function() {\n ngModelCtrl.$setViewValue(bsCollapseCtrl.$activeIndexes());\n });\n\n // modelValue -> $formatters -> viewValue\n ngModelCtrl.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n if (angular.isArray(modelValue)) {\n // model value is an array, so just replace\n // the active items directly\n bsCollapseCtrl.$setActive(modelValue);\n }\n else {\n var activeIndexes = bsCollapseCtrl.$activeIndexes();\n\n if (angular.isArray(activeIndexes)) {\n // we have an array of selected indexes\n if (activeIndexes.indexOf(modelValue * 1) === -1) {\n // item with modelValue index is not active\n bsCollapseCtrl.$setActive(modelValue * 1);\n }\n }\n else if (activeIndexes !== modelValue * 1) {\n bsCollapseCtrl.$setActive(modelValue * 1);\n }\n }\n return modelValue;\n });\n\n }\n\n }\n };\n\n })\n\n .directive('bsCollapseToggle', function() {\n\n return {\n require: ['^?ngModel', '^bsCollapse'],\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n // Add base attr\n element.attr('data-toggle', 'collapse');\n\n // Push pane to parent bsCollapse controller\n bsCollapseCtrl.$registerToggle(element);\n\n // remove toggle from collapse controller when toggle is destroyed\n scope.$on('$destroy', function() {\n bsCollapseCtrl.$unregisterToggle(element);\n });\n\n element.on('click', function() {\n var index = attrs.bsCollapseToggle && attrs.bsCollapseToggle !== 'bs-collapse-toggle' ? attrs.bsCollapseToggle : bsCollapseCtrl.$toggles.indexOf(element);\n bsCollapseCtrl.$setActive(index * 1);\n scope.$apply();\n });\n\n }\n };\n\n })\n\n .directive('bsCollapseTarget', function($animate) {\n\n return {\n require: ['^?ngModel', '^bsCollapse'],\n // scope: true,\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n // Add base class\n element.addClass('collapse');\n\n // Add animation class\n if(bsCollapseCtrl.$options.animation) {\n element.addClass(bsCollapseCtrl.$options.animation);\n }\n\n // Push pane to parent bsCollapse controller\n bsCollapseCtrl.$registerTarget(element);\n\n // remove pane target from collapse controller when target is destroyed\n scope.$on('$destroy', function() {\n bsCollapseCtrl.$unregisterTarget(element);\n });\n\n function render() {\n var index = bsCollapseCtrl.$targets.indexOf(element);\n var active = bsCollapseCtrl.$activeIndexes();\n var action = 'removeClass';\n if (angular.isArray(active)) {\n if (active.indexOf(index) !== -1) {\n action = 'addClass';\n }\n }\n else if (index === active) {\n action = 'addClass';\n }\n\n $animate[action](element, bsCollapseCtrl.$options.activeClass);\n }\n\n bsCollapseCtrl.$viewChangeListeners.push(function() {\n render();\n });\n render();\n\n }\n };\n\n });\n\n// Source: datepicker/datepicker.js\nangular.module('mgcrea.ngStrap.datepicker', [\n 'mgcrea.ngStrap.helpers.dateParser',\n 'mgcrea.ngStrap.helpers.dateFormatter',\n 'mgcrea.ngStrap.tooltip'])\n\n .provider('$datepicker', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n //uncommenting the following line will break backwards compatability\n // prefixEvent: 'datepicker',\n prefixClass: 'datepicker',\n placement: 'bottom-left',\n templateUrl: 'datepicker/datepicker.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n // lang: $locale.id,\n useNative: false,\n dateType: 'date',\n dateFormat: 'shortDate',\n timezone: null,\n modelDateFormat: null,\n dayFormat: 'dd',\n monthFormat: 'MMM',\n yearFormat: 'yyyy',\n monthTitleFormat: 'MMMM yyyy',\n yearTitleFormat: 'yyyy',\n strictFormat: false,\n autoclose: false,\n minDate: -Infinity,\n maxDate: +Infinity,\n startView: 0,\n minView: 0,\n startWeek: 0,\n daysOfWeekDisabled: '',\n iconLeft: 'glyphicon glyphicon-chevron-left',\n iconRight: 'glyphicon glyphicon-chevron-right'\n };\n\n this.$get = function($window, $document, $rootScope, $sce, $dateFormatter, datepickerViews, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n if(!defaults.lang) defaults.lang = $dateFormatter.getDefaultLocale();\n\n function DatepickerFactory(element, controller, config) {\n\n var $datepicker = $tooltip(element, angular.extend({}, defaults, config));\n var parentScope = config.scope;\n var options = $datepicker.$options;\n var scope = $datepicker.$scope;\n if(options.startView) options.startView -= options.minView;\n\n // View vars\n\n var pickerViews = datepickerViews($datepicker);\n $datepicker.$views = pickerViews.views;\n var viewDate = pickerViews.viewDate;\n scope.$mode = options.startView;\n scope.$iconLeft = options.iconLeft;\n scope.$iconRight = options.iconRight;\n var $picker = $datepicker.$views[scope.$mode];\n\n // Scope methods\n\n scope.$select = function(date) {\n $datepicker.select(date);\n };\n scope.$selectPane = function(value) {\n $datepicker.$selectPane(value);\n };\n scope.$toggleMode = function() {\n $datepicker.setMode((scope.$mode + 1) % $datepicker.$views.length);\n };\n\n // Public methods\n\n $datepicker.update = function(date) {\n // console.warn('$datepicker.update() newValue=%o', date);\n if(angular.isDate(date) && !isNaN(date.getTime())) {\n $datepicker.$date = date;\n $picker.update.call($picker, date);\n }\n // Build only if pristine\n $datepicker.$build(true);\n };\n\n $datepicker.updateDisabledDates = function(dateRanges) {\n options.disabledDateRanges = dateRanges;\n for(var i = 0, l = scope.rows.length; i < l; i++) {\n angular.forEach(scope.rows[i], $datepicker.$setDisabledEl);\n }\n };\n\n $datepicker.select = function(date, keep) {\n // console.warn('$datepicker.select', date, scope.$mode);\n if(!angular.isDate(controller.$dateValue)) controller.$dateValue = new Date(date);\n if(!scope.$mode || keep) {\n controller.$setViewValue(angular.copy(date));\n controller.$render();\n if(options.autoclose && !keep) {\n $timeout(function() { $datepicker.hide(true); });\n }\n } else {\n angular.extend(viewDate, {year: date.getFullYear(), month: date.getMonth(), date: date.getDate()});\n $datepicker.setMode(scope.$mode - 1);\n $datepicker.$build();\n }\n };\n\n $datepicker.setMode = function(mode) {\n // console.warn('$datepicker.setMode', mode);\n scope.$mode = mode;\n $picker = $datepicker.$views[scope.$mode];\n $datepicker.$build();\n };\n\n // Protected methods\n\n $datepicker.$build = function(pristine) {\n // console.warn('$datepicker.$build() viewDate=%o', viewDate);\n if(pristine === true && $picker.built) return;\n if(pristine === false && !$picker.built) return;\n $picker.build.call($picker);\n };\n\n $datepicker.$updateSelected = function() {\n for(var i = 0, l = scope.rows.length; i < l; i++) {\n angular.forEach(scope.rows[i], updateSelected);\n }\n };\n\n $datepicker.$isSelected = function(date) {\n return $picker.isSelected(date);\n };\n\n $datepicker.$setDisabledEl = function(el) {\n el.disabled = $picker.isDisabled(el.date);\n };\n\n $datepicker.$selectPane = function(value) {\n var steps = $picker.steps;\n // set targetDate to first day of month to avoid problems with\n // date values rollover. This assumes the viewDate does not\n // depend on the day of the month\n var targetDate = new Date(Date.UTC(viewDate.year + ((steps.year || 0) * value), viewDate.month + ((steps.month || 0) * value), 1));\n angular.extend(viewDate, {year: targetDate.getUTCFullYear(), month: targetDate.getUTCMonth(), date: targetDate.getUTCDate()});\n $datepicker.$build();\n };\n\n $datepicker.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n if(targetEl[0].nodeName.toLowerCase() !== 'button') {\n targetEl = targetEl.parent();\n }\n targetEl.triggerHandler('click');\n }\n };\n\n $datepicker.$onKeyDown = function(evt) {\n if (!/(38|37|39|40|13)/.test(evt.keyCode) || evt.shiftKey || evt.altKey) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n if(evt.keyCode === 13) {\n if(!scope.$mode) {\n return $datepicker.hide(true);\n } else {\n return scope.$apply(function() { $datepicker.setMode(scope.$mode - 1); });\n }\n }\n\n // Navigate with keyboard\n $picker.onKeyDown(evt);\n parentScope.$digest();\n };\n\n // Private\n\n function updateSelected(el) {\n el.selected = $datepicker.$isSelected(el.date);\n }\n\n function focusElement() {\n element[0].focus();\n }\n\n // Overrides\n\n var _init = $datepicker.init;\n $datepicker.init = function() {\n if(isNative && options.useNative) {\n element.prop('type', 'date');\n element.css('-webkit-appearance', 'textfield');\n return;\n } else if(isTouch) {\n element.prop('type', 'text');\n element.attr('readonly', 'true');\n element.on('click', focusElement);\n }\n _init();\n };\n\n var _destroy = $datepicker.destroy;\n $datepicker.destroy = function() {\n if(isNative && options.useNative) {\n element.off('click', focusElement);\n }\n _destroy();\n };\n\n var _show = $datepicker.show;\n $datepicker.show = function() {\n _show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n // if $datepicker is no longer showing, don't setup events\n if(!$datepicker.$isShown) return;\n $datepicker.$element.on(isTouch ? 'touchstart' : 'mousedown', $datepicker.$onMouseDown);\n if(options.keyboard) {\n element.on('keydown', $datepicker.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $datepicker.hide;\n $datepicker.hide = function(blur) {\n if(!$datepicker.$isShown) return;\n $datepicker.$element.off(isTouch ? 'touchstart' : 'mousedown', $datepicker.$onMouseDown);\n if(options.keyboard) {\n element.off('keydown', $datepicker.$onKeyDown);\n }\n _hide(blur);\n };\n\n return $datepicker;\n\n }\n\n DatepickerFactory.defaults = defaults;\n return DatepickerFactory;\n\n };\n\n })\n\n .directive('bsDatepicker', function($window, $parse, $q, $dateFormatter, $dateParser, $datepicker) {\n\n var defaults = $datepicker.defaults;\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'autoclose', 'dateType', 'dateFormat', 'timezone', 'modelDateFormat', 'dayFormat', 'strictFormat', 'startWeek', 'startDate', 'useNative', 'lang', 'startView', 'minView', 'iconLeft', 'iconRight', 'daysOfWeekDisabled', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoclose', 'useNative'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!datepicker || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(datepicker),?/i);\n newValue === true ? datepicker.show() : datepicker.hide();\n });\n\n // Initialize datepicker\n var datepicker = $datepicker(element, controller, options);\n options = datepicker.$options;\n // Set expected iOS format\n if(isNative && options.useNative) options.dateFormat = 'yyyy-MM-dd';\n\n var lang = options.lang;\n\n var formatDate = function(date, format) {\n return $dateFormatter.formatDate(date, format, lang);\n };\n\n var dateParser = $dateParser({format: options.dateFormat, lang: lang, strict: options.strictFormat});\n\n // Observe attributes for changes\n angular.forEach(['minDate', 'maxDate'], function(key) {\n // console.warn('attr.$observe(%s)', key, attr[key]);\n angular.isDefined(attr[key]) && attr.$observe(key, function(newValue) {\n // console.warn('attr.$observe(%s)=%o', key, newValue);\n datepicker.$options[key] = dateParser.getDateForAttribute(key, newValue);\n // Build only if dirty\n !isNaN(datepicker.$options[key]) && datepicker.$build(false);\n validateAgainstMinMaxDate(controller.$dateValue);\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n datepicker.update(controller.$dateValue);\n }, true);\n\n // Normalize undefined/null/empty array,\n // so that we don't treat changing from undefined->null as a change.\n function normalizeDateRanges(ranges) {\n if (!ranges || !ranges.length) return null;\n return ranges;\n }\n\n if (angular.isDefined(attr.disabledDates)) {\n scope.$watch(attr.disabledDates, function(disabledRanges, previousValue) {\n disabledRanges = normalizeDateRanges(disabledRanges);\n previousValue = normalizeDateRanges(previousValue);\n\n if (disabledRanges) {\n datepicker.updateDisabledDates(disabledRanges);\n }\n });\n }\n\n function validateAgainstMinMaxDate(parsedDate) {\n if (!angular.isDate(parsedDate)) return;\n var isMinValid = isNaN(datepicker.$options.minDate) || parsedDate.getTime() >= datepicker.$options.minDate;\n var isMaxValid = isNaN(datepicker.$options.maxDate) || parsedDate.getTime() <= datepicker.$options.maxDate;\n var isValid = isMinValid && isMaxValid;\n controller.$setValidity('date', isValid);\n controller.$setValidity('min', isMinValid);\n controller.$setValidity('max', isMaxValid);\n // Only update the model when we have a valid date\n if(isValid) controller.$dateValue = parsedDate;\n }\n\n // viewValue -> $parsers -> modelValue\n controller.$parsers.unshift(function(viewValue) {\n // console.warn('$parser(\"%s\"): viewValue=%o', element.attr('ng-model'), viewValue);\n var date;\n // Null values should correctly reset the model value & validity\n if(!viewValue) {\n controller.$setValidity('date', true);\n // BREAKING CHANGE:\n // return null (not undefined) when input value is empty, so angularjs 1.3\n // ngModelController can go ahead and run validators, like ngRequired\n return null;\n }\n var parsedDate = dateParser.parse(viewValue, controller.$dateValue);\n if(!parsedDate || isNaN(parsedDate.getTime())) {\n controller.$setValidity('date', false);\n // return undefined, causes ngModelController to\n // invalidate model value\n return;\n } else {\n validateAgainstMinMaxDate(parsedDate);\n }\n\n if(options.dateType === 'string') {\n date = dateParser.timezoneOffsetAdjust(parsedDate, options.timezone, true);\n return formatDate(date, options.modelDateFormat || options.dateFormat);\n }\n date = dateParser.timezoneOffsetAdjust(controller.$dateValue, options.timezone, true);\n if(options.dateType === 'number') {\n return date.getTime();\n } else if(options.dateType === 'unix') {\n return date.getTime() / 1000;\n } else if(options.dateType === 'iso') {\n return date.toISOString();\n } else {\n return new Date(date);\n }\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var date;\n if(angular.isUndefined(modelValue) || modelValue === null) {\n date = NaN;\n } else if(angular.isDate(modelValue)) {\n date = modelValue;\n } else if(options.dateType === 'string') {\n date = dateParser.parse(modelValue, null, options.modelDateFormat);\n } else if(options.dateType === 'unix') {\n date = new Date(modelValue * 1000);\n } else {\n date = new Date(modelValue);\n }\n // Setup default value?\n // if(isNaN(date.getTime())) {\n // var today = new Date();\n // date = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0, 0);\n // }\n controller.$dateValue = dateParser.timezoneOffsetAdjust(date, options.timezone);\n return getDateFormattedString();\n });\n\n // viewValue -> element\n controller.$render = function() {\n // console.warn('$render(\"%s\"): viewValue=%o', element.attr('ng-model'), controller.$viewValue);\n element.val(getDateFormattedString());\n };\n\n function getDateFormattedString() {\n return !controller.$dateValue || isNaN(controller.$dateValue.getTime()) ? '' : formatDate(controller.$dateValue, options.dateFormat);\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if(datepicker) datepicker.destroy();\n options = null;\n datepicker = null;\n });\n\n }\n };\n\n })\n\n .provider('datepickerViews', function() {\n\n var defaults = this.defaults = {\n dayFormat: 'dd',\n daySplit: 7\n };\n\n // Split array into smaller arrays\n function split(arr, size) {\n var arrays = [];\n while(arr.length > 0) {\n arrays.push(arr.splice(0, size));\n }\n return arrays;\n }\n\n // Modulus operator\n function mod(n, m) {\n return ((n % m) + m) % m;\n }\n\n this.$get = function($dateFormatter, $dateParser, $sce) {\n\n return function(picker) {\n\n var scope = picker.$scope;\n var options = picker.$options;\n\n var lang = options.lang;\n var formatDate = function(date, format) {\n return $dateFormatter.formatDate(date, format, lang);\n };\n var dateParser = $dateParser({format: options.dateFormat, lang: lang, strict: options.strictFormat});\n\n var weekDaysMin = $dateFormatter.weekdaysShort(lang);\n var weekDaysLabels = weekDaysMin.slice(options.startWeek).concat(weekDaysMin.slice(0, options.startWeek));\n var weekDaysLabelsHtml = $sce.trustAsHtml('' + weekDaysLabels.join('') + '');\n\n var startDate = picker.$date || (options.startDate ? dateParser.getDateForAttribute('startDate', options.startDate) : new Date());\n var viewDate = {year: startDate.getFullYear(), month: startDate.getMonth(), date: startDate.getDate()};\n\n var views = [{\n format: options.dayFormat,\n split: 7,\n steps: { month: 1 },\n update: function(date, force) {\n if(!this.built || force || date.getFullYear() !== viewDate.year || date.getMonth() !== viewDate.month) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getDate() !== viewDate.date || date.getDate() === 1) {\n // chaging picker current month will cause viewDate.date to be set to first day of the month,\n // in $datepicker.$selectPane, so picker would not update selected day display if\n // user picks first day of the new month.\n // As a workaround, we are always forcing update when picked date is first day of month.\n viewDate.date = picker.$date.getDate();\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstDayOfMonth = new Date(viewDate.year, viewDate.month, 1), firstDayOfMonthOffset = firstDayOfMonth.getTimezoneOffset();\n var firstDate = new Date(+firstDayOfMonth - mod(firstDayOfMonth.getDay() - options.startWeek, 7) * 864e5), firstDateOffset = firstDate.getTimezoneOffset();\n var today = dateParser.timezoneOffsetAdjust(new Date(), options.timezone).toDateString();\n // Handle daylight time switch\n if(firstDateOffset !== firstDayOfMonthOffset) firstDate = new Date(+firstDate + (firstDateOffset - firstDayOfMonthOffset) * 60e3);\n var days = [], day;\n for(var i = 0; i < 42; i++) { // < 7 * 6\n day = dateParser.daylightSavingAdjust(new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + i));\n days.push({date: day, isToday: day.toDateString() === today, label: formatDate(day, this.format), selected: picker.$date && this.isSelected(day), muted: day.getMonth() !== viewDate.month, disabled: this.isDisabled(day)});\n }\n scope.title = formatDate(firstDayOfMonth, options.monthTitleFormat);\n scope.showLabels = true;\n scope.labels = weekDaysLabelsHtml;\n scope.rows = split(days, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear() && date.getMonth() === picker.$date.getMonth() && date.getDate() === picker.$date.getDate();\n },\n isDisabled: function(date) {\n var time = date.getTime();\n\n // Disabled because of min/max date.\n if (time < options.minDate || time > options.maxDate) return true;\n\n // Disabled due to being a disabled day of the week\n if (options.daysOfWeekDisabled.indexOf(date.getDay()) !== -1) return true;\n\n // Disabled because of disabled date range.\n if (options.disabledDateRanges) {\n for (var i = 0; i < options.disabledDateRanges.length; i++) {\n if (time >= options.disabledDateRanges[i].start && time <= options.disabledDateRanges[i].end) {\n return true;\n }\n }\n }\n\n return false;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualTime = picker.$date.getTime();\n var newDate;\n\n if(evt.keyCode === 37) newDate = new Date(actualTime - 1 * 864e5);\n else if(evt.keyCode === 38) newDate = new Date(actualTime - 7 * 864e5);\n else if(evt.keyCode === 39) newDate = new Date(actualTime + 1 * 864e5);\n else if(evt.keyCode === 40) newDate = new Date(actualTime + 7 * 864e5);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }, {\n name: 'month',\n format: options.monthFormat,\n split: 4,\n steps: { year: 1 },\n update: function(date, force) {\n if(!this.built || date.getFullYear() !== viewDate.year) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getMonth() !== viewDate.month) {\n angular.extend(viewDate, {month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstMonth = new Date(viewDate.year, 0, 1);\n var months = [], month;\n for (var i = 0; i < 12; i++) {\n month = new Date(viewDate.year, i, 1);\n months.push({date: month, label: formatDate(month, this.format), selected: picker.$isSelected(month), disabled: this.isDisabled(month)});\n }\n scope.title = formatDate(month, options.yearTitleFormat);\n scope.showLabels = false;\n scope.rows = split(months, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear() && date.getMonth() === picker.$date.getMonth();\n },\n isDisabled: function(date) {\n var lastDate = +new Date(date.getFullYear(), date.getMonth() + 1, 0);\n return lastDate < options.minDate || date.getTime() > options.maxDate;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualMonth = picker.$date.getMonth();\n var newDate = new Date(picker.$date);\n\n if(evt.keyCode === 37) newDate.setMonth(actualMonth - 1);\n else if(evt.keyCode === 38) newDate.setMonth(actualMonth - 4);\n else if(evt.keyCode === 39) newDate.setMonth(actualMonth + 1);\n else if(evt.keyCode === 40) newDate.setMonth(actualMonth + 4);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }, {\n name: 'year',\n format: options.yearFormat,\n split: 4,\n steps: { year: 12 },\n update: function(date, force) {\n if(!this.built || force || parseInt(date.getFullYear()/20, 10) !== parseInt(viewDate.year/20, 10)) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getFullYear() !== viewDate.year) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstYear = viewDate.year - viewDate.year % (this.split * 3);\n var years = [], year;\n for (var i = 0; i < 12; i++) {\n year = new Date(firstYear + i, 0, 1);\n years.push({date: year, label: formatDate(year, this.format), selected: picker.$isSelected(year), disabled: this.isDisabled(year)});\n }\n scope.title = years[0].label + '-' + years[years.length - 1].label;\n scope.showLabels = false;\n scope.rows = split(years, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear();\n },\n isDisabled: function(date) {\n var lastDate = +new Date(date.getFullYear() + 1, 0, 0);\n return lastDate < options.minDate || date.getTime() > options.maxDate;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualYear = picker.$date.getFullYear(),\n newDate = new Date(picker.$date);\n\n if(evt.keyCode === 37) newDate.setYear(actualYear - 1);\n else if(evt.keyCode === 38) newDate.setYear(actualYear - 4);\n else if(evt.keyCode === 39) newDate.setYear(actualYear + 1);\n else if(evt.keyCode === 40) newDate.setYear(actualYear + 4);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }];\n\n return {\n views: options.minView ? Array.prototype.slice.call(views, options.minView) : views,\n viewDate: viewDate\n };\n\n };\n\n };\n\n });\n\n// Source: dropdown/dropdown.js\nangular.module('mgcrea.ngStrap.dropdown', ['mgcrea.ngStrap.tooltip'])\n\n .provider('$dropdown', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'dropdown',\n prefixEvent: 'dropdown',\n placement: 'bottom-left',\n templateUrl: 'dropdown/dropdown.tpl.html',\n trigger: 'click',\n container: false,\n keyboard: true,\n html: false,\n delay: 0\n };\n\n this.$get = function($window, $rootScope, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var matchesSelector = Element.prototype.matchesSelector || Element.prototype.webkitMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector;\n\n function DropdownFactory(element, config) {\n\n var $dropdown = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n var scope = $dropdown.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n $dropdown = $tooltip(element, options);\n var parentEl = element.parent();\n\n // Protected methods\n\n $dropdown.$onKeyDown = function(evt) {\n if (!/(38|40)/.test(evt.keyCode)) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // Retrieve focused index\n var items = angular.element($dropdown.$element[0].querySelectorAll('li:not(.divider) a'));\n if(!items.length) return;\n var index;\n angular.forEach(items, function(el, i) {\n if(matchesSelector && matchesSelector.call(el, ':focus')) index = i;\n });\n\n // Navigate with keyboard\n if(evt.keyCode === 38 && index > 0) index--;\n else if(evt.keyCode === 40 && index < items.length - 1) index++;\n else if(angular.isUndefined(index)) index = 0;\n items.eq(index)[0].focus();\n\n };\n\n // Overrides\n\n var show = $dropdown.show;\n $dropdown.show = function() {\n show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n options.keyboard && $dropdown.$element && $dropdown.$element.on('keydown', $dropdown.$onKeyDown);\n bodyEl.on('click', onBodyClick);\n }, 0, false);\n parentEl.hasClass('dropdown') && parentEl.addClass('open');\n };\n\n var hide = $dropdown.hide;\n $dropdown.hide = function() {\n if(!$dropdown.$isShown) return;\n options.keyboard && $dropdown.$element && $dropdown.$element.off('keydown', $dropdown.$onKeyDown);\n bodyEl.off('click', onBodyClick);\n parentEl.hasClass('dropdown') && parentEl.removeClass('open');\n hide();\n };\n\n var destroy = $dropdown.destroy;\n $dropdown.destroy = function() {\n bodyEl.off('click', onBodyClick);\n destroy();\n };\n\n // Private functions\n\n function onBodyClick(evt) {\n if(evt.target === element[0]) return;\n return evt.target !== element[0] && $dropdown.hide();\n }\n\n return $dropdown;\n\n }\n\n return DropdownFactory;\n\n };\n\n })\n\n .directive('bsDropdown', function($window, $sce, $dropdown) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'id'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as an object\n attr.bsDropdown && scope.$watch(attr.bsDropdown, function(newValue, oldValue) {\n scope.content = newValue;\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!dropdown || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(dropdown),?/i);\n newValue === true ? dropdown.show() : dropdown.hide();\n });\n\n // Initialize dropdown\n var dropdown = $dropdown(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (dropdown) dropdown.destroy();\n options = null;\n dropdown = null;\n });\n\n }\n };\n\n });\n\n// Source: helpers/compiler.js\n// NOTICE: This file was forked from the angular-material project (github.com/angular/material)\n// MIT Licensed - Copyright (c) 2014-2015 Google, Inc. http://angularjs.org\n\nangular.module('mgcrea.ngStrap.core', [])\n .service('$bsCompiler', bsCompilerService);\n\nfunction bsCompilerService($q, $http, $injector, $compile, $controller, $templateCache) {\n /* jshint validthis: true */\n\n /*\n * @ngdoc service\n * @name $bsCompiler\n * @module material.core\n * @description\n * The $bsCompiler service is an abstraction of angular's compiler, that allows the developer\n * to easily compile an element with a templateUrl, controller, and locals.\n *\n * @usage\n * \n * $bsCompiler.compile({\n * templateUrl: 'modal.html',\n * controller: 'ModalCtrl',\n * locals: {\n * modal: myModalInstance;\n * }\n * }).then(function(compileData) {\n * compileData.element; // modal.html's template in an element\n * compileData.link(myScope); //attach controller & scope to element\n * });\n * \n */\n\n /*\n * @ngdoc method\n * @name $bsCompiler#compile\n * @description A helper to compile an HTML template/templateUrl with a given controller,\n * locals, and scope.\n * @param {object} options An options object, with the following properties:\n *\n * - `controller` - `{(string=|function()=}` Controller fn that should be associated with\n * newly created scope or the name of a registered controller if passed as a string.\n * - `controllerAs` - `{string=}` A controller alias name. If present the controller will be\n * published to scope under the `controllerAs` name.\n * - `template` - `{string=}` An html template as a string.\n * - `templateUrl` - `{string=}` A path to an html template.\n * - `transformTemplate` - `{function(template)=}` A function which transforms the template after\n * it is loaded. It will be given the template string as a parameter, and should\n * return a a new string representing the transformed template.\n * - `resolve` - `{Object.=}` - An optional map of dependencies which should\n * be injected into the controller. If any of these dependencies are promises, the compiler\n * will wait for them all to be resolved, or if one is rejected before the controller is\n * instantiated `compile()` will fail..\n * * `key` - `{string}`: a name of a dependency to be injected into the controller.\n * * `factory` - `{string|function}`: If `string` then it is an alias for a service.\n * Otherwise if function, then it is injected and the return value is treated as the\n * dependency. If the result is a promise, it is resolved before its value is\n * injected into the controller.\n *\n * @returns {object=} promise A promise, which will be resolved with a `compileData` object.\n * `compileData` has the following properties:\n *\n * - `element` - `{element}`: an uncompiled element matching the provided template.\n * - `link` - `{function(scope)}`: A link function, which, when called, will compile\n * the element and instantiate the provided controller (if given).\n * - `locals` - `{object}`: The locals which will be passed into the controller once `link` is\n * called. If `bindToController` is true, they will be coppied to the ctrl instead\n * - `bindToController` - `bool`: bind the locals to the controller, instead of passing them in.\n */\n this.compile = function(options) {\n\n if(options.template && /\\.html$/.test(options.template)) {\n console.warn('Deprecated use of `template` option to pass a file. Please use the `templateUrl` option instead.');\n options.templateUrl = options.template;\n options.template = '';\n }\n\n var templateUrl = options.templateUrl;\n var template = options.template || '';\n var controller = options.controller;\n var controllerAs = options.controllerAs;\n var resolve = angular.copy(options.resolve || {});\n var locals = angular.copy(options.locals || {});\n var transformTemplate = options.transformTemplate || angular.identity;\n var bindToController = options.bindToController;\n\n // Take resolve values and invoke them.\n // Resolves can either be a string (value: 'MyRegisteredAngularConst'),\n // or an invokable 'factory' of sorts: (value: function ValueGetter($dependency) {})\n angular.forEach(resolve, function(value, key) {\n if (angular.isString(value)) {\n resolve[key] = $injector.get(value);\n } else {\n resolve[key] = $injector.invoke(value);\n }\n });\n // Add the locals, which are just straight values to inject\n // eg locals: { three: 3 }, will inject three into the controller\n angular.extend(resolve, locals);\n\n if (templateUrl) {\n resolve.$template = fetchTemplate(templateUrl);\n } else {\n resolve.$template = $q.when(template);\n }\n\n if (options.contentTemplate) {\n // TODO(mgcrea): deprecate?\n resolve.$template = $q.all([resolve.$template, fetchTemplate(options.contentTemplate)])\n .then(function(templates) {\n var templateEl = angular.element(templates[0]);\n var contentEl = findElement('[ng-bind=\"content\"]', templateEl[0]).removeAttr('ng-bind').html(templates[1]);\n // Drop the default footer as you probably don't want it if you use a custom contentTemplate\n if(!options.templateUrl) contentEl.next().remove();\n return templateEl[0].outerHTML;\n });\n }\n\n // Wait for all the resolves to finish if they are promises\n return $q.all(resolve).then(function(locals) {\n\n var template = transformTemplate(locals.$template);\n if (options.html) {\n template = template.replace(/ng-bind=\"/ig, 'ng-bind-html=\"');\n }\n // var element = options.element || angular.element('
').html(template.trim()).contents();\n var element = angular.element('
').html(template.trim()).contents();\n var linkFn = $compile(element);\n\n // Return a linking function that can be used later when the element is ready\n return {\n locals: locals,\n element: element,\n link: function link(scope) {\n locals.$scope = scope;\n\n // Instantiate controller if it exists, because we have scope\n if (controller) {\n var invokeCtrl = $controller(controller, locals, true);\n if (bindToController) {\n angular.extend(invokeCtrl.instance, locals);\n }\n // Support angular@~1.2 invokeCtrl\n var ctrl = angular.isObject(invokeCtrl) ? invokeCtrl : invokeCtrl();\n // See angular-route source for this logic\n element.data('$ngControllerController', ctrl);\n element.children().data('$ngControllerController', ctrl);\n\n if (controllerAs) {\n scope[controllerAs] = ctrl;\n }\n }\n\n return linkFn.apply(null, arguments);\n }\n };\n });\n\n };\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n var fetchPromises = {};\n function fetchTemplate(template) {\n if(fetchPromises[template]) return fetchPromises[template];\n return (fetchPromises[template] = $http.get(template, {cache: $templateCache})\n .then(function(res) {\n return res.data;\n }));\n }\n\n}\n\n// Source: helpers/date-formatter.js\nangular.module('mgcrea.ngStrap.helpers.dateFormatter', [])\n\n .service('$dateFormatter', function($locale, dateFilter) {\n\n // The unused `lang` arguments are on purpose. The default implementation does not\n // use them and it always uses the locale loaded into the `$locale` service.\n // Custom implementations might use it, thus allowing different directives to\n // have different languages.\n\n this.getDefaultLocale = function() {\n return $locale.id;\n };\n\n // Format is either a data format name, e.g. \"shortTime\" or \"fullDate\", or a date format\n // Return either the corresponding date format or the given date format.\n this.getDatetimeFormat = function(format, lang) {\n return $locale.DATETIME_FORMATS[format] || format;\n };\n\n this.weekdaysShort = function(lang) {\n return $locale.DATETIME_FORMATS.SHORTDAY;\n };\n\n function splitTimeFormat(format) {\n return /(h+)([:\\.])?(m+)([:\\.])?(s*)[ ]?(a?)/i.exec(format).slice(1);\n }\n\n // h:mm a => h\n this.hoursFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[0];\n };\n\n // h:mm a => mm\n this.minutesFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[2];\n };\n\n // h:mm:ss a => ss\n this.secondsFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[4];\n };\n\n // h:mm a => :\n this.timeSeparator = function(timeFormat) {\n return splitTimeFormat(timeFormat)[1];\n };\n\n // h:mm:ss a => true, h:mm a => false\n this.showSeconds = function(timeFormat) {\n return !!splitTimeFormat(timeFormat)[4];\n };\n\n // h:mm a => true, H.mm => false\n this.showAM = function(timeFormat) {\n return !!splitTimeFormat(timeFormat)[5];\n };\n\n this.formatDate = function(date, format, lang, timezone){\n return dateFilter(date, format, timezone);\n };\n\n });\n\n// Source: helpers/date-parser.js\nangular.module('mgcrea.ngStrap.helpers.dateParser', [])\n\n.provider('$dateParser', function($localeProvider) {\n\n // define a custom ParseDate object to use instead of native Date\n // to avoid date values wrapping when setting date component values\n function ParseDate() {\n this.year = 1970;\n this.month = 0;\n this.day = 1;\n this.hours = 0;\n this.minutes = 0;\n this.seconds = 0;\n this.milliseconds = 0;\n }\n\n ParseDate.prototype.setMilliseconds = function(value) { this.milliseconds = value; };\n ParseDate.prototype.setSeconds = function(value) { this.seconds = value; };\n ParseDate.prototype.setMinutes = function(value) { this.minutes = value; };\n ParseDate.prototype.setHours = function(value) { this.hours = value; };\n ParseDate.prototype.getHours = function() { return this.hours; };\n ParseDate.prototype.setDate = function(value) { this.day = value; };\n ParseDate.prototype.setMonth = function(value) { this.month = value; };\n ParseDate.prototype.setFullYear = function(value) { this.year = value; };\n ParseDate.prototype.fromDate = function(value) {\n this.year = value.getFullYear();\n this.month = value.getMonth();\n this.day = value.getDate();\n this.hours = value.getHours();\n this.minutes = value.getMinutes();\n this.seconds = value.getSeconds();\n this.milliseconds = value.getMilliseconds();\n return this;\n };\n\n ParseDate.prototype.toDate = function() {\n return new Date(this.year, this.month, this.day, this.hours, this.minutes, this.seconds, this.milliseconds);\n };\n\n var proto = ParseDate.prototype;\n\n function noop() {\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function indexOfCaseInsensitive(array, value) {\n var len = array.length, str=value.toString().toLowerCase();\n for (var i=0; i 12 when midnight changeover, but then cannot generate\n * midnight datetime, so jump to 1AM, otherwise reset.\n * @param date (Date) the date to check\n * @return (Date) the corrected date\n *\n * __ copied from jquery ui datepicker __\n */\n $dateParser.daylightSavingAdjust = function(date) {\n if (!date) {\n return null;\n }\n date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);\n return date;\n };\n\n /* Correct the date for timezone offset.\n * @param date (Date) the date to adjust\n * @param timezone (string) the timezone to adjust for\n * @param undo (boolean) to add or subtract timezone offset\n * @return (Date) the corrected date\n */\n $dateParser.timezoneOffsetAdjust = function(date, timezone, undo) {\n if (!date) {\n return null;\n }\n // Right now, only 'UTC' is supported.\n if (timezone && timezone === 'UTC') {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + (undo?-1:1)*date.getTimezoneOffset());\n }\n return date;\n };\n\n // Private functions\n\n function setMapForFormat(format) {\n var keys = Object.keys(setFnMap), i;\n var map = [], sortedMap = [];\n // Map to setFn\n var clonedFormat = format;\n for(i = 0; i < keys.length; i++) {\n if(format.split(keys[i]).length > 1) {\n var index = clonedFormat.search(keys[i]);\n format = format.split(keys[i]).join('');\n if(setFnMap[keys[i]]) {\n map[index] = setFnMap[keys[i]];\n }\n }\n }\n // Sort result map\n angular.forEach(map, function(v) {\n // conditional required since angular.forEach broke around v1.2.21\n // related pr: https://github.com/angular/angular.js/pull/8525\n if(v) sortedMap.push(v);\n });\n return sortedMap;\n }\n\n function escapeReservedSymbols(text) {\n return text.replace(/\\//g, '[\\\\/]').replace('/-/g', '[-]').replace(/\\./g, '[.]').replace(/\\\\s/g, '[\\\\s]');\n }\n\n function regExpForFormat(format) {\n var keys = Object.keys(regExpMap), i;\n\n var re = format;\n // Abstract replaces to avoid collisions\n for(i = 0; i < keys.length; i++) {\n re = re.split(keys[i]).join('${' + i + '}');\n }\n // Replace abstracted values\n for(i = 0; i < keys.length; i++) {\n re = re.split('${' + i + '}').join('(' + regExpMap[keys[i]] + ')');\n }\n format = escapeReservedSymbols(format);\n\n return new RegExp('^' + re + '$', ['i']);\n }\n\n $dateParser.init();\n return $dateParser;\n\n };\n\n return DateParserFactory;\n\n };\n\n});\n\n// Source: helpers/debounce.js\nangular.module('mgcrea.ngStrap.helpers.debounce', [])\n\n// @source jashkenas/underscore\n// @url https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L693\n.factory('debounce', function($timeout) {\n return function(func, wait, immediate) {\n var timeout = null;\n return function() {\n var context = this,\n args = arguments,\n callNow = immediate && !timeout;\n if(timeout) {\n $timeout.cancel(timeout);\n }\n timeout = $timeout(function later() {\n timeout = null;\n if(!immediate) {\n func.apply(context, args);\n }\n }, wait, false);\n if(callNow) {\n func.apply(context, args);\n }\n return timeout;\n };\n };\n})\n\n\n// @source jashkenas/underscore\n// @url https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L661\n.factory('throttle', function($timeout) {\n return function(func, wait, options) {\n var timeout = null;\n options || (options = {});\n return function() {\n var context = this,\n args = arguments;\n if(!timeout) {\n if(options.leading !== false) {\n func.apply(context, args);\n }\n timeout = $timeout(function later() {\n timeout = null;\n if(options.trailing !== false) {\n func.apply(context, args);\n }\n }, wait, false);\n }\n };\n };\n});\n\n// Source: helpers/dimensions.js\nangular.module('mgcrea.ngStrap.helpers.dimensions', [])\n\n .factory('dimensions', function($document, $window) {\n\n var jqLite = angular.element;\n var fn = {};\n\n /**\n * Test the element nodeName\n * @param element\n * @param name\n */\n var nodeName = fn.nodeName = function(element, name) {\n return element.nodeName && element.nodeName.toLowerCase() === name.toLowerCase();\n };\n\n /**\n * Returns the element computed style\n * @param element\n * @param prop\n * @param extra\n */\n fn.css = function(element, prop, extra) {\n var value;\n if (element.currentStyle) { //IE\n value = element.currentStyle[prop];\n } else if (window.getComputedStyle) {\n value = window.getComputedStyle(element)[prop];\n } else {\n value = element.style[prop];\n }\n return extra === true ? parseFloat(value) || 0 : value;\n };\n\n /**\n * Provides read-only equivalent of jQuery's offset function:\n * @required-by bootstrap-tooltip, bootstrap-affix\n * @url http://api.jquery.com/offset/\n * @param element\n */\n fn.offset = function(element) {\n var boxRect = element.getBoundingClientRect();\n var docElement = element.ownerDocument;\n return {\n width: boxRect.width || element.offsetWidth,\n height: boxRect.height || element.offsetHeight,\n top: boxRect.top + (window.pageYOffset || docElement.documentElement.scrollTop) - (docElement.documentElement.clientTop || 0),\n left: boxRect.left + (window.pageXOffset || docElement.documentElement.scrollLeft) - (docElement.documentElement.clientLeft || 0)\n };\n };\n \n /**\n * Provides set equivalent of jQuery's offset function:\n * @required-by bootstrap-tooltip\n * @url http://api.jquery.com/offset/\n * @param element\n * @param options\n * @param i\n */\n fn.setOffset = function (element, options, i) {\n var curPosition,\n curLeft,\n curCSSTop,\n curTop,\n curOffset,\n curCSSLeft,\n calculatePosition,\n position = fn.css(element, 'position'),\n curElem = angular.element(element),\n props = {};\n \n // Set position first, in-case top/left are set even on static elem\n if (position === 'static') {\n element.style.position = 'relative';\n }\n \n curOffset = fn.offset(element);\n curCSSTop = fn.css(element, 'top');\n curCSSLeft = fn.css(element, 'left');\n calculatePosition = (position === 'absolute' || position === 'fixed') && \n (curCSSTop + curCSSLeft).indexOf('auto') > -1;\n \n // Need to be able to calculate position if either\n // top or left is auto and position is either absolute or fixed\n if (calculatePosition) {\n curPosition = fn.position(element);\n curTop = curPosition.top;\n curLeft = curPosition.left;\n } else {\n curTop = parseFloat(curCSSTop) || 0;\n curLeft = parseFloat(curCSSLeft) || 0;\n }\n \n if (angular.isFunction(options)) {\n options = options.call(element, i, curOffset);\n }\n \n if (options.top !== null ) {\n props.top = (options.top - curOffset.top) + curTop;\n }\n if ( options.left !== null ) {\n props.left = (options.left - curOffset.left) + curLeft;\n }\n\n if ('using' in options) {\n options.using.call(curElem, props);\n } else {\n curElem.css({\n top: props.top + 'px',\n left: props.left + 'px'\n });\n }\n };\n\n /**\n * Provides read-only equivalent of jQuery's position function\n * @required-by bootstrap-tooltip, bootstrap-affix\n * @url http://api.jquery.com/offset/\n * @param element\n */\n fn.position = function(element) {\n\n var offsetParentRect = {top: 0, left: 0},\n offsetParentElement,\n offset;\n\n // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent\n if (fn.css(element, 'position') === 'fixed') {\n\n // We assume that getBoundingClientRect is available when computed position is fixed\n offset = element.getBoundingClientRect();\n\n } else {\n\n // Get *real* offsetParentElement\n offsetParentElement = offsetParent(element);\n\n // Get correct offsets\n offset = fn.offset(element);\n if (!nodeName(offsetParentElement, 'html')) {\n offsetParentRect = fn.offset(offsetParentElement);\n }\n\n // Add offsetParent borders\n offsetParentRect.top += fn.css(offsetParentElement, 'borderTopWidth', true);\n offsetParentRect.left += fn.css(offsetParentElement, 'borderLeftWidth', true);\n }\n\n // Subtract parent offsets and element margins\n return {\n width: element.offsetWidth,\n height: element.offsetHeight,\n top: offset.top - offsetParentRect.top - fn.css(element, 'marginTop', true),\n left: offset.left - offsetParentRect.left - fn.css(element, 'marginLeft', true)\n };\n\n };\n\n /**\n * Returns the closest, non-statically positioned offsetParent of a given element\n * @required-by fn.position\n * @param element\n */\n var offsetParent = function offsetParentElement(element) {\n var docElement = element.ownerDocument;\n var offsetParent = element.offsetParent || docElement;\n if(nodeName(offsetParent, '#document')) return docElement.documentElement;\n while(offsetParent && !nodeName(offsetParent, 'html') && fn.css(offsetParent, 'position') === 'static') {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || docElement.documentElement;\n };\n\n /**\n * Provides equivalent of jQuery's height function\n * @required-by bootstrap-affix\n * @url http://api.jquery.com/height/\n * @param element\n * @param outer\n */\n fn.height = function(element, outer) {\n var value = element.offsetHeight;\n if(outer) {\n value += fn.css(element, 'marginTop', true) + fn.css(element, 'marginBottom', true);\n } else {\n value -= fn.css(element, 'paddingTop', true) + fn.css(element, 'paddingBottom', true) + fn.css(element, 'borderTopWidth', true) + fn.css(element, 'borderBottomWidth', true);\n }\n return value;\n };\n\n /**\n * Provides equivalent of jQuery's width function\n * @required-by bootstrap-affix\n * @url http://api.jquery.com/width/\n * @param element\n * @param outer\n */\n fn.width = function(element, outer) {\n var value = element.offsetWidth;\n if(outer) {\n value += fn.css(element, 'marginLeft', true) + fn.css(element, 'marginRight', true);\n } else {\n value -= fn.css(element, 'paddingLeft', true) + fn.css(element, 'paddingRight', true) + fn.css(element, 'borderLeftWidth', true) + fn.css(element, 'borderRightWidth', true);\n }\n return value;\n };\n\n return fn;\n\n });\n\n// Source: helpers/parse-options.js\nangular.module('mgcrea.ngStrap.helpers.parseOptions', [])\n\n .provider('$parseOptions', function() {\n\n var defaults = this.defaults = {\n regexp: /^\\s*(.*?)(?:\\s+as\\s+(.*?))?(?:\\s+group\\s+by\\s+(.*))?\\s+for\\s+(?:([\\$\\w][\\$\\w]*)|(?:\\(\\s*([\\$\\w][\\$\\w]*)\\s*,\\s*([\\$\\w][\\$\\w]*)\\s*\\)))\\s+in\\s+(.*?)(?:\\s+track\\s+by\\s+(.*?))?$/\n };\n\n this.$get = function($parse, $q) {\n\n function ParseOptionsFactory(attr, config) {\n\n var $parseOptions = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n $parseOptions.$values = [];\n\n // Private vars\n var match, displayFn, valueName, keyName, groupByFn, valueFn, valuesFn;\n\n $parseOptions.init = function() {\n $parseOptions.$match = match = attr.match(options.regexp);\n displayFn = $parse(match[2] || match[1]),\n valueName = match[4] || match[6],\n keyName = match[5],\n groupByFn = $parse(match[3] || ''),\n valueFn = $parse(match[2] ? match[1] : valueName),\n valuesFn = $parse(match[7]);\n };\n\n $parseOptions.valuesFn = function(scope, controller) {\n var valuesPromise;\n try {\n // Might throw 'notarray' error since cea8e75\n valuesPromise = valuesFn(scope, controller);\n } catch(err) {\n valuesPromise = [];\n }\n return $q.when(valuesPromise)\n .then(function(values) {\n if(!angular.isArray(values)) {\n values = [];\n }\n $parseOptions.$values = values.length ? parseValues(values, scope) : [];\n return $parseOptions.$values;\n });\n };\n\n $parseOptions.displayValue = function(modelValue) {\n var scope = {};\n scope[valueName] = modelValue;\n return displayFn(scope);\n };\n\n // Private functions\n\n function parseValues(values, scope) {\n return values.map(function(match, index) {\n var locals = {}, label, value;\n locals[valueName] = match;\n label = displayFn(scope, locals);\n value = valueFn(scope, locals);\n return {label: label, value: value, index: index};\n });\n }\n\n $parseOptions.init();\n return $parseOptions;\n\n }\n\n return ParseOptionsFactory;\n\n };\n\n });\n\n// Source: helpers/raf.js\n(angular.version.minor < 3 && angular.version.dot < 14) && angular.module('ng')\n\n.factory('$$rAF', function($window, $timeout) {\n\n var requestAnimationFrame = $window.requestAnimationFrame ||\n $window.webkitRequestAnimationFrame ||\n $window.mozRequestAnimationFrame;\n\n var cancelAnimationFrame = $window.cancelAnimationFrame ||\n $window.webkitCancelAnimationFrame ||\n $window.mozCancelAnimationFrame ||\n $window.webkitCancelRequestAnimationFrame;\n\n var rafSupported = !!requestAnimationFrame;\n var raf = rafSupported ?\n function(fn) {\n var id = requestAnimationFrame(fn);\n return function() {\n cancelAnimationFrame(id);\n };\n } :\n function(fn) {\n var timer = $timeout(fn, 16.66, false); // 1000 / 60 = 16.666\n return function() {\n $timeout.cancel(timer);\n };\n };\n\n raf.supported = rafSupported;\n\n return raf;\n\n});\n\n// .factory('$$animateReflow', function($$rAF, $document) {\n\n// var bodyEl = $document[0].body;\n\n// return function(fn) {\n// //the returned function acts as the cancellation function\n// return $$rAF(function() {\n// //the line below will force the browser to perform a repaint\n// //so that all the animated elements within the animation frame\n// //will be properly updated and drawn on screen. This is\n// //required to perform multi-class CSS based animations with\n// //Firefox. DO NOT REMOVE THIS LINE.\n// var a = bodyEl.offsetWidth + 1;\n// fn();\n// });\n// };\n\n// });\n\n// Source: modal/modal.js\nangular.module('mgcrea.ngStrap.modal', ['mgcrea.ngStrap.core', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$modal', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n backdropAnimation: 'am-fade',\n prefixClass: 'modal',\n prefixEvent: 'modal',\n placement: 'top',\n templateUrl: 'modal/modal.tpl.html',\n template: '',\n contentTemplate: false,\n container: false,\n element: null,\n backdrop: true,\n keyboard: true,\n html: false,\n show: true\n };\n\n this.$get = function($window, $rootScope, $bsCompiler, $q, $templateCache, $http, $animate, $timeout, $sce, dimensions) {\n\n var forEach = angular.forEach;\n var trim = String.prototype.trim;\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n var bodyElement = angular.element($window.document.body);\n\n function ModalFactory(config) {\n\n var $modal = {};\n\n // Common vars\n var options = $modal.$options = angular.extend({}, defaults, config);\n var promise = $modal.$promise = $bsCompiler.compile(options);\n var scope = $modal.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n if(!options.element && !options.container) {\n options.container = 'body';\n }\n\n // Store $id to identify the triggering element in events\n // give priority to options.id, otherwise, try to use\n // element id if defined\n $modal.$id = options.id || options.element && options.element.attr('id') || '';\n\n // Support scope as string options\n forEach(['title', 'content'], function(key) {\n if(options[key]) scope[key] = $sce.trustAsHtml(options[key]);\n });\n\n // Provide scope helpers\n scope.$hide = function() {\n scope.$$postDigest(function() {\n $modal.hide();\n });\n };\n scope.$show = function() {\n scope.$$postDigest(function() {\n $modal.show();\n });\n };\n scope.$toggle = function() {\n scope.$$postDigest(function() {\n $modal.toggle();\n });\n };\n // Publish isShown as a protected var on scope\n $modal.$isShown = scope.$isShown = false;\n\n // Fetch, compile then initialize modal\n var compileData, modalElement, modalScope;\n var backdropElement = angular.element('
');\n backdropElement.css({position:'fixed', top:'0px', left:'0px', bottom:'0px', right:'0px', 'z-index': 1038});\n promise.then(function(data) {\n compileData = data;\n $modal.init();\n });\n\n $modal.init = function() {\n\n // Options: show\n if(options.show) {\n scope.$$postDigest(function() {\n $modal.show();\n });\n }\n\n };\n\n $modal.destroy = function() {\n\n // Remove element\n destroyModalElement();\n\n // remove backdrop element\n if(backdropElement) {\n backdropElement.remove();\n backdropElement = null;\n }\n\n // Destroy scope\n scope.$destroy();\n };\n\n $modal.show = function() {\n if($modal.$isShown) return;\n\n var parent, after;\n if(angular.isElement(options.container)) {\n parent = options.container;\n after = options.container[0].lastChild ? angular.element(options.container[0].lastChild) : null;\n } else {\n if (options.container) {\n parent = findElement(options.container);\n after = parent[0] && parent[0].lastChild ? angular.element(parent[0].lastChild) : null;\n } else {\n parent = null;\n after = options.element;\n }\n }\n\n // destroy any existing modal elements\n if(modalElement) destroyModalElement();\n\n // create a new scope, so we can destroy it and all child scopes\n // when destroying the modal element\n modalScope = $modal.$scope.$new();\n // Fetch a cloned element linked from template (noop callback is required)\n modalElement = $modal.$element = compileData.link(modalScope, function(clonedElement, scope) {});\n\n if(scope.$emit(options.prefixEvent + '.show.before', $modal).defaultPrevented) {\n return;\n }\n\n // Set the initial positioning.\n modalElement.css({display: 'block'}).addClass(options.placement);\n\n // Options: animation\n if(options.animation) {\n if(options.backdrop) {\n backdropElement.addClass(options.backdropAnimation);\n }\n modalElement.addClass(options.animation);\n }\n\n if(options.backdrop) {\n $animate.enter(backdropElement, bodyElement, null);\n }\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.enter(modalElement, parent, after, enterAnimateCallback);\n } else {\n $animate.enter(modalElement, parent, after).then(enterAnimateCallback);\n }\n\n $modal.$isShown = scope.$isShown = true;\n safeDigest(scope);\n // Focus once the enter-animation has started\n // Weird PhantomJS bug hack\n var el = modalElement[0];\n requestAnimationFrame(function() {\n el.focus();\n });\n\n bodyElement.addClass(options.prefixClass + '-open');\n if(options.animation) {\n bodyElement.addClass(options.prefixClass + '-with-' + options.animation);\n }\n\n // Bind events\n bindBackdropEvents();\n bindKeyboardEvents();\n };\n\n function enterAnimateCallback() {\n scope.$emit(options.prefixEvent + '.show', $modal);\n }\n\n $modal.hide = function() {\n if(!$modal.$isShown) return;\n\n if(scope.$emit(options.prefixEvent + '.hide.before', $modal).defaultPrevented) {\n return;\n }\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.leave(modalElement, leaveAnimateCallback);\n } else {\n $animate.leave(modalElement).then(leaveAnimateCallback);\n }\n\n if(options.backdrop) {\n $animate.leave(backdropElement);\n }\n $modal.$isShown = scope.$isShown = false;\n safeDigest(scope);\n\n // Unbind events\n unbindBackdropEvents();\n unbindKeyboardEvents();\n };\n\n function leaveAnimateCallback() {\n scope.$emit(options.prefixEvent + '.hide', $modal);\n bodyElement.removeClass(options.prefixClass + '-open');\n if(options.animation) {\n bodyElement.removeClass(options.prefixClass + '-with-' + options.animation);\n }\n }\n\n $modal.toggle = function() {\n\n $modal.$isShown ? $modal.hide() : $modal.show();\n\n };\n\n $modal.focus = function() {\n modalElement[0].focus();\n };\n\n // Protected methods\n\n $modal.$onKeyUp = function(evt) {\n\n if (evt.which === 27 && $modal.$isShown) {\n $modal.hide();\n evt.stopPropagation();\n }\n\n };\n\n function bindBackdropEvents() {\n if(options.backdrop) {\n modalElement.on('click', hideOnBackdropClick);\n backdropElement.on('click', hideOnBackdropClick);\n backdropElement.on('wheel', preventEventDefault);\n }\n }\n\n function unbindBackdropEvents() {\n if(options.backdrop) {\n modalElement.off('click', hideOnBackdropClick);\n backdropElement.off('click', hideOnBackdropClick);\n backdropElement.off('wheel', preventEventDefault);\n }\n }\n\n function bindKeyboardEvents() {\n if(options.keyboard) {\n modalElement.on('keyup', $modal.$onKeyUp);\n }\n }\n\n function unbindKeyboardEvents() {\n if(options.keyboard) {\n modalElement.off('keyup', $modal.$onKeyUp);\n }\n }\n\n // Private methods\n\n function hideOnBackdropClick(evt) {\n if(evt.target !== evt.currentTarget) return;\n options.backdrop === 'static' ? $modal.focus() : $modal.hide();\n }\n\n function preventEventDefault(evt) {\n evt.preventDefault();\n }\n\n function destroyModalElement() {\n if($modal.$isShown && modalElement !== null) {\n // un-bind events\n unbindBackdropEvents();\n unbindKeyboardEvents();\n }\n\n if(modalScope) {\n modalScope.$destroy();\n modalScope = null;\n }\n\n if(modalElement) {\n modalElement.remove();\n modalElement = $modal.$element = null;\n }\n }\n\n return $modal;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n return ModalFactory;\n\n };\n\n })\n\n .directive('bsModal', function($window, $sce, $modal) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'controller', 'placement', 'backdrop', 'keyboard', 'html', 'container', 'animation', 'id', 'prefixEvent', 'prefixClass'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['backdrop', 'keyboard', 'html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsModal && scope.$watch(attr.bsModal, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize modal\n var modal = $modal(options);\n\n // Trigger\n element.on(attr.trigger || 'click', modal.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (modal) modal.destroy();\n options = null;\n modal = null;\n });\n\n }\n };\n\n });\n\n// Source: navbar/navbar.js\nangular.module('mgcrea.ngStrap.navbar', [])\n\n .provider('$navbar', function() {\n\n var defaults = this.defaults = {\n activeClass: 'active',\n routeAttr: 'data-match-route',\n strict: false\n };\n\n this.$get = function() {\n return {defaults: defaults};\n };\n\n })\n\n .directive('bsNavbar', function($window, $location, $navbar) {\n\n var defaults = $navbar.defaults;\n\n return {\n restrict: 'A',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = angular.copy(defaults);\n angular.forEach(Object.keys(defaults), function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // Watch for the $location\n scope.$watch(function() {\n\n return $location.path();\n\n }, function(newValue, oldValue) {\n\n var liElements = element[0].querySelectorAll('li[' + options.routeAttr + ']');\n\n angular.forEach(liElements, function(li) {\n\n var liElement = angular.element(li);\n var pattern = liElement.attr(options.routeAttr).replace('/', '\\\\/');\n if(options.strict) {\n pattern = '^' + pattern + '$';\n }\n var regexp = new RegExp(pattern, 'i');\n\n if(regexp.test(newValue)) {\n liElement.addClass(options.activeClass);\n } else {\n liElement.removeClass(options.activeClass);\n }\n\n });\n\n });\n\n }\n\n };\n\n });\n\n// Source: scrollspy/scrollspy.js\nangular.module('mgcrea.ngStrap.scrollspy', ['mgcrea.ngStrap.helpers.debounce', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$scrollspy', function() {\n\n // Pool of registered spies\n var spies = this.$$spies = {};\n\n var defaults = this.defaults = {\n debounce: 150,\n throttle: 100,\n offset: 100\n };\n\n this.$get = function($window, $document, $rootScope, dimensions, debounce, throttle) {\n\n var windowEl = angular.element($window);\n var docEl = angular.element($document.prop('documentElement'));\n var bodyEl = angular.element($window.document.body);\n\n // Helper functions\n\n function nodeName(element, name) {\n return element[0].nodeName && element[0].nodeName.toLowerCase() === name.toLowerCase();\n }\n\n function ScrollSpyFactory(config) {\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n if(!options.element) options.element = bodyEl;\n var isWindowSpy = nodeName(options.element, 'body');\n var scrollEl = isWindowSpy ? windowEl : options.element;\n var scrollId = isWindowSpy ? 'window' : options.id;\n\n // Use existing spy\n if(spies[scrollId]) {\n spies[scrollId].$$count++;\n return spies[scrollId];\n }\n\n var $scrollspy = {};\n\n // Private vars\n var unbindViewContentLoaded, unbindIncludeContentLoaded;\n var trackedElements = $scrollspy.$trackedElements = [];\n var sortedElements = [];\n var activeTarget;\n var debouncedCheckPosition;\n var throttledCheckPosition;\n var debouncedCheckOffsets;\n var viewportHeight;\n var scrollTop;\n\n $scrollspy.init = function() {\n\n // Setup internal ref counter\n this.$$count = 1;\n\n // Bind events\n debouncedCheckPosition = debounce(this.checkPosition, options.debounce);\n throttledCheckPosition = throttle(this.checkPosition, options.throttle);\n scrollEl.on('click', this.checkPositionWithEventLoop);\n windowEl.on('resize', debouncedCheckPosition);\n scrollEl.on('scroll', throttledCheckPosition);\n\n debouncedCheckOffsets = debounce(this.checkOffsets, options.debounce);\n unbindViewContentLoaded = $rootScope.$on('$viewContentLoaded', debouncedCheckOffsets);\n unbindIncludeContentLoaded = $rootScope.$on('$includeContentLoaded', debouncedCheckOffsets);\n debouncedCheckOffsets();\n\n // Register spy for reuse\n if(scrollId) {\n spies[scrollId] = $scrollspy;\n }\n\n };\n\n $scrollspy.destroy = function() {\n\n // Check internal ref counter\n this.$$count--;\n if(this.$$count > 0) {\n return;\n }\n\n // Unbind events\n scrollEl.off('click', this.checkPositionWithEventLoop);\n windowEl.off('resize', debouncedCheckPosition);\n scrollEl.off('scroll', throttledCheckPosition);\n unbindViewContentLoaded();\n unbindIncludeContentLoaded();\n if (scrollId) {\n delete spies[scrollId];\n }\n };\n\n $scrollspy.checkPosition = function() {\n\n // Not ready yet\n if(!sortedElements.length) return;\n\n // Calculate the scroll position\n scrollTop = (isWindowSpy ? $window.pageYOffset : scrollEl.prop('scrollTop')) || 0;\n\n // Calculate the viewport height for use by the components\n viewportHeight = Math.max($window.innerHeight, docEl.prop('clientHeight'));\n\n // Activate first element if scroll is smaller\n if(scrollTop < sortedElements[0].offsetTop && activeTarget !== sortedElements[0].target) {\n return $scrollspy.$activateElement(sortedElements[0]);\n }\n\n // Activate proper element\n for (var i = sortedElements.length; i--;) {\n if(angular.isUndefined(sortedElements[i].offsetTop) || sortedElements[i].offsetTop === null) continue;\n if(activeTarget === sortedElements[i].target) continue;\n if(scrollTop < sortedElements[i].offsetTop) continue;\n if(sortedElements[i + 1] && scrollTop > sortedElements[i + 1].offsetTop) continue;\n return $scrollspy.$activateElement(sortedElements[i]);\n }\n\n };\n\n $scrollspy.checkPositionWithEventLoop = function() {\n // IE 9 throws an error if we use 'this' instead of '$scrollspy'\n // in this setTimeout call\n setTimeout($scrollspy.checkPosition, 1);\n };\n\n // Protected methods\n\n $scrollspy.$activateElement = function(element) {\n if(activeTarget) {\n var activeElement = $scrollspy.$getTrackedElement(activeTarget);\n if(activeElement) {\n activeElement.source.removeClass('active');\n if(nodeName(activeElement.source, 'li') && nodeName(activeElement.source.parent().parent(), 'li')) {\n activeElement.source.parent().parent().removeClass('active');\n }\n }\n }\n activeTarget = element.target;\n element.source.addClass('active');\n if(nodeName(element.source, 'li') && nodeName(element.source.parent().parent(), 'li')) {\n element.source.parent().parent().addClass('active');\n }\n };\n\n $scrollspy.$getTrackedElement = function(target) {\n return trackedElements.filter(function(obj) {\n return obj.target === target;\n })[0];\n };\n\n // Track offsets behavior\n\n $scrollspy.checkOffsets = function() {\n\n angular.forEach(trackedElements, function(trackedElement) {\n var targetElement = document.querySelector(trackedElement.target);\n trackedElement.offsetTop = targetElement ? dimensions.offset(targetElement).top : null;\n if(options.offset && trackedElement.offsetTop !== null) trackedElement.offsetTop -= options.offset * 1;\n });\n\n sortedElements = trackedElements\n .filter(function(el) {\n return el.offsetTop !== null;\n })\n .sort(function(a, b) {\n return a.offsetTop - b.offsetTop;\n });\n\n debouncedCheckPosition();\n\n };\n\n $scrollspy.trackElement = function(target, source) {\n trackedElements.push({target: target, source: source});\n };\n\n $scrollspy.untrackElement = function(target, source) {\n var toDelete;\n for (var i = trackedElements.length; i--;) {\n if(trackedElements[i].target === target && trackedElements[i].source === source) {\n toDelete = i;\n break;\n }\n }\n trackedElements = trackedElements.splice(toDelete, 1);\n };\n\n $scrollspy.activate = function(i) {\n trackedElements[i].addClass('active');\n };\n\n // Initialize plugin\n\n $scrollspy.init();\n return $scrollspy;\n\n }\n\n return ScrollSpyFactory;\n\n };\n\n })\n\n .directive('bsScrollspy', function($rootScope, debounce, dimensions, $scrollspy) {\n\n return {\n restrict: 'EAC',\n link: function postLink(scope, element, attr) {\n\n var options = {scope: scope};\n angular.forEach(['offset', 'target'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n var scrollspy = $scrollspy(options);\n scrollspy.trackElement(options.target, element);\n\n scope.$on('$destroy', function() {\n if (scrollspy) {\n scrollspy.untrackElement(options.target, element);\n scrollspy.destroy();\n }\n options = null;\n scrollspy = null;\n });\n\n }\n };\n\n })\n\n\n .directive('bsScrollspyList', function($rootScope, debounce, dimensions, $scrollspy) {\n\n return {\n restrict: 'A',\n compile: function postLink(element, attr) {\n var children = element[0].querySelectorAll('li > a[href]');\n angular.forEach(children, function(child) {\n var childEl = angular.element(child);\n childEl.parent().attr('bs-scrollspy', '').attr('data-target', childEl.attr('href'));\n });\n }\n\n };\n\n });\n\n// Source: select/select.js\nangular.module('mgcrea.ngStrap.select', ['mgcrea.ngStrap.tooltip', 'mgcrea.ngStrap.helpers.parseOptions'])\n\n .provider('$select', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'select',\n prefixEvent: '$select',\n placement: 'bottom-left',\n templateUrl: 'select/select.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n multiple: false,\n allNoneButtons: false,\n sort: true,\n caretHtml: ' ',\n placeholder: 'Choose among the following...',\n allText: 'All',\n noneText: 'None',\n maxLength: 3,\n maxLengthHtml: 'selected',\n iconCheckmark: 'glyphicon glyphicon-ok'\n };\n\n this.$get = function($window, $document, $rootScope, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n\n function SelectFactory(element, controller, config) {\n\n var $select = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $select = $tooltip(element, options);\n var scope = $select.$scope;\n\n scope.$matches = [];\n if (options.multiple) {\n scope.$activeIndex = [];\n }\n else {\n scope.$activeIndex = -1;\n }\n scope.$isMultiple = options.multiple;\n scope.$showAllNoneButtons = options.allNoneButtons && options.multiple;\n scope.$iconCheckmark = options.iconCheckmark;\n scope.$allText = options.allText;\n scope.$noneText = options.noneText;\n\n scope.$activate = function(index) {\n scope.$$postDigest(function() {\n $select.activate(index);\n });\n };\n\n scope.$select = function(index, evt) {\n scope.$$postDigest(function() {\n $select.select(index);\n });\n };\n\n scope.$isVisible = function() {\n return $select.$isVisible();\n };\n\n scope.$isActive = function(index) {\n return $select.$isActive(index);\n };\n\n scope.$selectAll = function () {\n for (var i = 0; i < scope.$matches.length; i++) {\n if (!scope.$isActive(i)) {\n scope.$select(i);\n }\n }\n };\n\n scope.$selectNone = function () {\n for (var i = 0; i < scope.$matches.length; i++) {\n if (scope.$isActive(i)) {\n scope.$select(i);\n }\n }\n };\n\n // Public methods\n\n $select.update = function(matches) {\n scope.$matches = matches;\n $select.$updateActiveIndex();\n };\n\n $select.activate = function(index) {\n if(options.multiple) {\n $select.$isActive(index) ? scope.$activeIndex.splice(scope.$activeIndex.indexOf(index), 1) : scope.$activeIndex.push(index);\n if(options.sort) scope.$activeIndex.sort(function(a, b) { return a - b; }); // use numeric sort instead of default sort\n } else {\n scope.$activeIndex = index;\n }\n return scope.$activeIndex;\n };\n\n $select.select = function(index) {\n var value = scope.$matches[index].value;\n scope.$apply(function() {\n $select.activate(index);\n if(options.multiple) {\n controller.$setViewValue(scope.$activeIndex.map(function(index) {\n return scope.$matches[index].value;\n }));\n } else {\n controller.$setViewValue(value);\n // Hide if single select\n $select.hide();\n }\n });\n // Emit event\n scope.$emit(options.prefixEvent + '.select', value, index, $select);\n };\n\n // Protected methods\n\n $select.$updateActiveIndex = function() {\n if(controller.$modelValue && scope.$matches.length) {\n if(options.multiple && angular.isArray(controller.$modelValue)) {\n scope.$activeIndex = controller.$modelValue.map(function(value) {\n return $select.$getIndex(value);\n });\n } else {\n scope.$activeIndex = $select.$getIndex(controller.$modelValue);\n }\n } else if(scope.$activeIndex >= scope.$matches.length) {\n scope.$activeIndex = options.multiple ? [] : 0;\n }\n };\n\n $select.$isVisible = function() {\n if(!options.minLength || !controller) {\n return scope.$matches.length;\n }\n // minLength support\n return scope.$matches.length && controller.$viewValue.length >= options.minLength;\n };\n\n $select.$isActive = function(index) {\n if(options.multiple) {\n return scope.$activeIndex.indexOf(index) !== -1;\n } else {\n return scope.$activeIndex === index;\n }\n };\n\n $select.$getIndex = function(value) {\n var l = scope.$matches.length, i = l;\n if(!l) return;\n for(i = l; i--;) {\n if(scope.$matches[i].value === value) break;\n }\n if(i < 0) return;\n return i;\n };\n\n $select.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n targetEl.triggerHandler('click');\n }\n };\n\n $select.$onKeyDown = function(evt) {\n if (!/(9|13|38|40)/.test(evt.keyCode)) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // release focus on tab\n if (options.multiple && evt.keyCode === 9) {\n return $select.hide();\n }\n\n // Select with enter\n if(!options.multiple && (evt.keyCode === 13 || evt.keyCode === 9)) {\n return $select.select(scope.$activeIndex);\n }\n\n if (!options.multiple) {\n // Navigate with keyboard\n if(evt.keyCode === 38 && scope.$activeIndex > 0) scope.$activeIndex--;\n else if(evt.keyCode === 38 && scope.$activeIndex < 0) scope.$activeIndex = scope.$matches.length - 1;\n else if(evt.keyCode === 40 && scope.$activeIndex < scope.$matches.length - 1) scope.$activeIndex++;\n else if(angular.isUndefined(scope.$activeIndex)) scope.$activeIndex = 0;\n scope.$digest();\n }\n };\n\n // Overrides\n\n var _show = $select.show;\n $select.show = function() {\n _show();\n if(options.multiple) {\n $select.$element.addClass('select-multiple');\n }\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n $select.$element.on(isTouch ? 'touchstart' : 'mousedown', $select.$onMouseDown);\n if(options.keyboard) {\n element.on('keydown', $select.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $select.hide;\n $select.hide = function() {\n if(!options.multiple && !controller.$modelValue) {\n scope.$activeIndex = -1;\n }\n $select.$element.off(isTouch ? 'touchstart' : 'mousedown', $select.$onMouseDown);\n if(options.keyboard) {\n element.off('keydown', $select.$onKeyDown);\n }\n _hide(true);\n };\n\n return $select;\n\n }\n\n SelectFactory.defaults = defaults;\n return SelectFactory;\n\n };\n\n })\n\n .directive('bsSelect', function($window, $parse, $q, $select, $parseOptions) {\n\n var defaults = $select.defaults;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope, placeholder: defaults.placeholder};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'placeholder', 'allNoneButtons', 'maxLength', 'maxLengthHtml', 'allText', 'noneText', 'iconCheckmark', 'autoClose', 'id', 'sort', 'caretHtml', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'allNoneButtons', 'sort'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Only parse data-multiple. Angular sets existence attributes to true (multiple/required/etc), they apply this\n // to data-multiple as well for some reason, so we'll parse this ourselves and disregard multiple\n var dataMultiple = element.attr('data-multiple');\n if(angular.isDefined(dataMultiple)) {\n if(falseValueRegExp.test(dataMultiple))\n options.multiple = false;\n else\n options.multiple = dataMultiple;\n }\n\n // Add support for select markup\n if(element[0].nodeName.toLowerCase() === 'select') {\n var inputEl = element;\n inputEl.css('display', 'none');\n element = angular.element('');\n inputEl.after(element);\n }\n\n // Build proper bsOptions\n var parsedOptions = $parseOptions(attr.bsOptions);\n\n // Initialize select\n var select = $select(element, controller, options);\n\n // Watch bsOptions values before filtering for changes\n var watchedOptions = parsedOptions.$match[7].replace(/\\|.+/, '').trim();\n scope.$watchCollection(watchedOptions, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', watchedOptions, newValue, oldValue);\n parsedOptions.valuesFn(scope, controller)\n .then(function(values) {\n select.update(values);\n controller.$render();\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.ngModel, newValue, oldValue);\n select.$updateActiveIndex();\n controller.$render();\n }, true);\n\n // Model rendering in view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var selected, index;\n if(options.multiple && angular.isArray(controller.$modelValue)) {\n selected = controller.$modelValue.map(function(value) {\n index = select.$getIndex(value);\n return angular.isDefined(index) ? select.$scope.$matches[index].label : false;\n }).filter(angular.isDefined);\n if(selected.length > (options.maxLength || defaults.maxLength)) {\n selected = selected.length + ' ' + (options.maxLengthHtml || defaults.maxLengthHtml);\n } else {\n selected = selected.join(', ');\n }\n } else {\n index = select.$getIndex(controller.$modelValue);\n selected = angular.isDefined(index) ? select.$scope.$matches[index].label : false;\n }\n element.html((selected ? selected : options.placeholder) + (options.caretHtml ? options.caretHtml : defaults.caretHtml));\n };\n\n if(options.multiple){\n controller.$isEmpty = function(value){\n return !value || value.length === 0;\n };\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (select) select.destroy();\n options = null;\n select = null;\n });\n\n }\n };\n\n });\n\n// Source: popover/popover.js\nangular.module('mgcrea.ngStrap.popover', ['mgcrea.ngStrap.tooltip'])\n\n .provider('$popover', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n customClass: '',\n // uncommenting the next two lines will break backwards compatability\n // prefixClass: 'popover',\n // prefixEvent: 'popover',\n container: false,\n target: false,\n placement: 'right',\n templateUrl: 'popover/popover.tpl.html',\n contentTemplate: false,\n trigger: 'click',\n keyboard: true,\n html: false,\n title: '',\n content: '',\n delay: 0,\n autoClose: false\n };\n\n this.$get = function($tooltip) {\n\n function PopoverFactory(element, config) {\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n var $popover = $tooltip(element, options);\n\n // Support scope as string options [/*title, */content]\n if(options.content) {\n $popover.$scope.content = options.content;\n }\n\n return $popover;\n\n }\n\n return PopoverFactory;\n\n };\n\n })\n\n .directive('bsPopover', function($window, $sce, $popover) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'customClass', 'autoClose', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoClose'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // should not parse target attribute (anchor tag), only data-target #1454\n var dataTarget = element.attr('data-target');\n if(angular.isDefined(dataTarget)) {\n if(falseValueRegExp.test(dataTarget))\n options.target = false;\n else\n options.target = dataTarget;\n }\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n angular.isDefined(oldValue) && requestAnimationFrame(function() {\n popover && popover.$applyPlacement();\n });\n });\n });\n\n // Support scope as an object\n attr.bsPopover && scope.$watch(attr.bsPopover, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n angular.isDefined(oldValue) && requestAnimationFrame(function() {\n popover && popover.$applyPlacement();\n });\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!popover || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(popover),?/i);\n newValue === true ? popover.show() : popover.hide();\n });\n\n // Viewport support\n attr.viewport && scope.$watch(attr.viewport, function (newValue) {\n if(!popover || !angular.isDefined(newValue)) return;\n popover.setViewport(newValue);\n });\n\n // Initialize popover\n var popover = $popover(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (popover) popover.destroy();\n options = null;\n popover = null;\n });\n\n }\n };\n\n });\n\n// Source: tab/tab.js\nangular.module('mgcrea.ngStrap.tab', [])\n\n .provider('$tab', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n template: 'tab/tab.tpl.html',\n navClass: 'nav-tabs',\n activeClass: 'active'\n };\n\n var controller = this.controller = function($scope, $element, $attrs) {\n var self = this;\n\n // Attributes options\n self.$options = angular.copy(defaults);\n angular.forEach(['animation', 'navClass', 'activeClass'], function(key) {\n if(angular.isDefined($attrs[key])) self.$options[key] = $attrs[key];\n });\n\n // Publish options on scope\n $scope.$navClass = self.$options.navClass;\n $scope.$activeClass = self.$options.activeClass;\n\n self.$panes = $scope.$panes = [];\n\n // Please use $activePaneChangeListeners if you use `bsActivePane`\n // Because we removed `ngModel` as default, we rename viewChangeListeners to\n // activePaneChangeListeners to make more sense.\n self.$activePaneChangeListeners = self.$viewChangeListeners = [];\n\n self.$push = function(pane) {\n if(angular.isUndefined(self.$panes.$active)) {\n $scope.$setActive(pane.name || 0);\n }\n self.$panes.push(pane);\n };\n\n self.$remove = function(pane) {\n var index = self.$panes.indexOf(pane);\n var active = self.$panes.$active;\n var activeIndex;\n if(angular.isString(active)) {\n activeIndex = self.$panes.map(function(pane) {\n return pane.name;\n }).indexOf(active);\n } else {\n activeIndex = self.$panes.$active;\n }\n\n // remove pane from $panes array\n self.$panes.splice(index, 1);\n\n if (index < activeIndex) {\n // we removed a pane before the active pane, so we need to\n // decrement the active pane index\n activeIndex--;\n }\n else if (index === activeIndex && activeIndex === self.$panes.length) {\n // we remove the active pane and it was the one at the end,\n // so select the previous one\n activeIndex--;\n }\n if(activeIndex >= 0 && activeIndex < self.$panes.length) {\n self.$setActive(self.$panes[activeIndex].name || activeIndex);\n } else {\n self.$setActive();\n }\n };\n\n self.$setActive = $scope.$setActive = function(value) {\n self.$panes.$active = value;\n self.$activePaneChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n self.$isActive = $scope.$isActive = function($pane, $index) {\n return self.$panes.$active === $pane.name || self.$panes.$active === $index;\n };\n\n };\n\n this.$get = function() {\n var $tab = {};\n $tab.defaults = defaults;\n $tab.controller = controller;\n return $tab;\n };\n\n })\n\n .directive('bsTabs', function($window, $animate, $tab, $parse) {\n\n var defaults = $tab.defaults;\n\n return {\n require: ['?ngModel', 'bsTabs'],\n transclude: true,\n scope: true,\n controller: ['$scope', '$element', '$attrs', $tab.controller],\n templateUrl: function(element, attr) {\n return attr.template || defaults.template;\n },\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsTabsCtrl = controllers[1];\n\n // 'ngModel' does interfere with form validation\n // and status, use `bsActivePane` instead to avoid it\n if(ngModelCtrl) {\n\n // Update the modelValue following\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n ngModelCtrl.$setViewValue(bsTabsCtrl.$panes.$active);\n });\n\n // modelValue -> $formatters -> viewValue\n ngModelCtrl.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n bsTabsCtrl.$setActive(modelValue);\n return modelValue;\n });\n\n }\n\n if (attrs.bsActivePane) {\n // adapted from angularjs ngModelController bindings\n // https://github.com/angular/angular.js/blob/v1.3.1/src%2Fng%2Fdirective%2Finput.js#L1730\n var parsedBsActivePane = $parse(attrs.bsActivePane);\n\n // Update bsActivePane value with change\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n parsedBsActivePane.assign(scope, bsTabsCtrl.$panes.$active);\n });\n\n // watch bsActivePane for value changes\n scope.$watch(attrs.bsActivePane, function(newValue, oldValue) {\n bsTabsCtrl.$setActive(newValue);\n }, true);\n }\n }\n };\n\n })\n\n .directive('bsPane', function($window, $animate, $sce) {\n\n return {\n require: ['^?ngModel', '^bsTabs'],\n scope: true,\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsTabsCtrl = controllers[1];\n\n // Add base class\n element.addClass('tab-pane');\n\n // Observe title attribute for change\n attrs.$observe('title', function(newValue, oldValue) {\n scope.title = $sce.trustAsHtml(newValue);\n });\n\n // Save tab name into scope\n scope.name = attrs.name;\n\n // Add animation class\n if(bsTabsCtrl.$options.animation) {\n element.addClass(bsTabsCtrl.$options.animation);\n }\n\n attrs.$observe('disabled', function(newValue, oldValue) {\n scope.disabled = scope.$eval(newValue);\n });\n\n // Push pane to parent bsTabs controller\n bsTabsCtrl.$push(scope);\n\n // remove pane from tab controller when pane is destroyed\n scope.$on('$destroy', function() {\n bsTabsCtrl.$remove(scope);\n });\n\n function render() {\n var index = bsTabsCtrl.$panes.indexOf(scope);\n $animate[bsTabsCtrl.$isActive(scope, index) ? 'addClass' : 'removeClass'](element, bsTabsCtrl.$options.activeClass);\n }\n\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n render();\n });\n render();\n\n }\n };\n\n });\n\n// Source: tooltip/tooltip.js\nangular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.core', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$tooltip', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n customClass: '',\n prefixClass: 'tooltip',\n prefixEvent: 'tooltip',\n container: false,\n target: false,\n placement: 'top',\n templateUrl: 'tooltip/tooltip.tpl.html',\n template: '',\n contentTemplate: false,\n trigger: 'hover focus',\n keyboard: false,\n html: false,\n show: false,\n title: '',\n type: '',\n delay: 0,\n autoClose: false,\n bsEnabled: true,\n viewport: {\n selector: 'body',\n padding: 0\n }\n };\n\n this.$get = function($window, $rootScope, $bsCompiler, $q, $templateCache, $http, $animate, $sce, dimensions, $$rAF, $timeout) {\n\n var trim = String.prototype.trim;\n var isTouch = 'createTouch' in $window.document;\n var htmlReplaceRegExp = /ng-bind=\"/ig;\n var $body = angular.element($window.document);\n\n function TooltipFactory(element, config) {\n\n var $tooltip = {};\n\n // Common vars\n var options = $tooltip.$options = angular.extend({}, defaults, config);\n var promise = $tooltip.$promise = $bsCompiler.compile(options);\n var scope = $tooltip.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n var nodeName = element[0].nodeName.toLowerCase();\n if(options.delay && angular.isString(options.delay)) {\n var split = options.delay.split(',').map(parseFloat);\n options.delay = split.length > 1 ? {show: split[0], hide: split[1]} : split[0];\n }\n\n // Store $id to identify the triggering element in events\n // give priority to options.id, otherwise, try to use\n // element id if defined\n $tooltip.$id = options.id || element.attr('id') || '';\n\n // Support scope as string options\n if(options.title) {\n scope.title = $sce.trustAsHtml(options.title);\n }\n\n // Provide scope helpers\n scope.$setEnabled = function(isEnabled) {\n scope.$$postDigest(function() {\n $tooltip.setEnabled(isEnabled);\n });\n };\n scope.$hide = function() {\n scope.$$postDigest(function() {\n $tooltip.hide();\n });\n };\n scope.$show = function() {\n scope.$$postDigest(function() {\n $tooltip.show();\n });\n };\n scope.$toggle = function() {\n scope.$$postDigest(function() {\n $tooltip.toggle();\n });\n };\n // Publish isShown as a protected var on scope\n $tooltip.$isShown = scope.$isShown = false;\n\n // Private vars\n var timeout, hoverState;\n\n // Fetch, compile then initialize tooltip\n var compileData, tipElement, tipContainer, tipScope;\n promise.then(function(data) {\n compileData = data;\n $tooltip.init();\n });\n\n $tooltip.init = function() {\n\n // Options: delay\n if (options.delay && angular.isNumber(options.delay)) {\n options.delay = {\n show: options.delay,\n hide: options.delay\n };\n }\n\n // Replace trigger on touch devices ?\n // if(isTouch && options.trigger === defaults.trigger) {\n // options.trigger.replace(/hover/g, 'click');\n // }\n\n // Options : container\n if(options.container === 'self') {\n tipContainer = element;\n } else if(angular.isElement(options.container)) {\n tipContainer = options.container;\n } else if(options.container) {\n tipContainer = findElement(options.container);\n }\n\n // Options: trigger\n bindTriggerEvents();\n\n // Options: target\n if(options.target) {\n options.target = angular.isElement(options.target) ? options.target : findElement(options.target);\n }\n\n // Options: show\n if(options.show) {\n scope.$$postDigest(function() {\n options.trigger === 'focus' ? element[0].focus() : $tooltip.show();\n });\n }\n\n };\n\n $tooltip.destroy = function() {\n\n // Unbind events\n unbindTriggerEvents();\n\n // Remove element\n destroyTipElement();\n\n // Destroy scope\n scope.$destroy();\n\n };\n\n $tooltip.enter = function() {\n\n clearTimeout(timeout);\n hoverState = 'in';\n if (!options.delay || !options.delay.show) {\n return $tooltip.show();\n }\n\n timeout = setTimeout(function() {\n if (hoverState ==='in') $tooltip.show();\n }, options.delay.show);\n\n };\n\n $tooltip.show = function() {\n if (!options.bsEnabled || $tooltip.$isShown) return;\n\n scope.$emit(options.prefixEvent + '.show.before', $tooltip);\n var parent, after;\n if (options.container) {\n parent = tipContainer;\n if (tipContainer[0].lastChild) {\n after = angular.element(tipContainer[0].lastChild);\n } else {\n after = null;\n }\n } else {\n parent = null;\n after = element;\n }\n\n\n // Hide any existing tipElement\n if(tipElement) destroyTipElement();\n // Fetch a cloned element linked from template\n tipScope = $tooltip.$scope.$new();\n tipElement = $tooltip.$element = compileData.link(tipScope, function(clonedElement, scope) {});\n\n // Set the initial positioning. Make the tooltip invisible\n // so IE doesn't try to focus on it off screen.\n tipElement.css({top: '-9999px', left: '-9999px', right: 'auto', display: 'block', visibility: 'hidden'});\n\n // Options: animation\n if(options.animation) tipElement.addClass(options.animation);\n // Options: type\n if(options.type) tipElement.addClass(options.prefixClass + '-' + options.type);\n // Options: custom classes\n if(options.customClass) tipElement.addClass(options.customClass);\n\n // Append the element, without any animations. If we append\n // using $animate.enter, some of the animations cause the placement\n // to be off due to the transforms.\n after ? after.after(tipElement) : parent.prepend(tipElement);\n\n $tooltip.$isShown = scope.$isShown = true;\n safeDigest(scope);\n\n // Now, apply placement\n $tooltip.$applyPlacement();\n\n // Once placed, animate it.\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.enter(tipElement, parent, after, enterAnimateCallback);\n } else {\n $animate.enter(tipElement, parent, after).then(enterAnimateCallback);\n }\n safeDigest(scope);\n\n $$rAF(function () {\n // Once the tooltip is placed and the animation starts, make the tooltip visible\n if(tipElement) tipElement.css({visibility: 'visible'});\n });\n\n // Bind events\n if(options.keyboard) {\n if(options.trigger !== 'focus') {\n $tooltip.focus();\n }\n bindKeyboardEvents();\n }\n\n if(options.autoClose) {\n bindAutoCloseEvents();\n }\n\n };\n\n function enterAnimateCallback() {\n scope.$emit(options.prefixEvent + '.show', $tooltip);\n }\n\n $tooltip.leave = function() {\n\n clearTimeout(timeout);\n hoverState = 'out';\n if (!options.delay || !options.delay.hide) {\n return $tooltip.hide();\n }\n timeout = setTimeout(function () {\n if (hoverState === 'out') {\n $tooltip.hide();\n }\n }, options.delay.hide);\n\n };\n\n var _blur;\n var _tipToHide;\n $tooltip.hide = function(blur) {\n\n if(!$tooltip.$isShown) return;\n scope.$emit(options.prefixEvent + '.hide.before', $tooltip);\n\n // store blur value for leaveAnimateCallback to use\n _blur = blur;\n\n // store current tipElement reference to use\n // in leaveAnimateCallback\n _tipToHide = tipElement;\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.leave(tipElement, leaveAnimateCallback);\n } else {\n $animate.leave(tipElement).then(leaveAnimateCallback);\n }\n\n $tooltip.$isShown = scope.$isShown = false;\n safeDigest(scope);\n\n // Unbind events\n if(options.keyboard && tipElement !== null) {\n unbindKeyboardEvents();\n }\n\n if(options.autoClose && tipElement !== null) {\n unbindAutoCloseEvents();\n }\n };\n\n function leaveAnimateCallback() {\n scope.$emit(options.prefixEvent + '.hide', $tooltip);\n\n // check if current tipElement still references\n // the same element when hide was called\n if (tipElement === _tipToHide) {\n // Allow to blur the input when hidden, like when pressing enter key\n if(_blur && options.trigger === 'focus') {\n return element[0].blur();\n }\n\n // clean up child scopes\n destroyTipElement();\n }\n }\n\n $tooltip.toggle = function() {\n $tooltip.$isShown ? $tooltip.leave() : $tooltip.enter();\n };\n\n $tooltip.focus = function() {\n tipElement[0].focus();\n };\n\n $tooltip.setEnabled = function(isEnabled) {\n options.bsEnabled = isEnabled;\n };\n\n $tooltip.setViewport = function(viewport) {\n options.viewport = viewport;\n };\n\n // Protected methods\n\n $tooltip.$applyPlacement = function() {\n if(!tipElement) return;\n\n // Determine if we're doing an auto or normal placement\n var placement = options.placement,\n autoToken = /\\s?auto?\\s?/i,\n autoPlace = autoToken.test(placement);\n\n if (autoPlace) {\n placement = placement.replace(autoToken, '') || defaults.placement;\n }\n\n // Need to add the position class before we get\n // the offsets\n tipElement.addClass(options.placement);\n\n // Get the position of the target element\n // and the height and width of the tooltip so we can center it.\n var elementPosition = getPosition(),\n tipWidth = tipElement.prop('offsetWidth'),\n tipHeight = tipElement.prop('offsetHeight');\n\n // If we're auto placing, we need to check the positioning\n if (autoPlace) {\n var originalPlacement = placement;\n var container = options.container ? findElement(options.container) : element.parent();\n var containerPosition = getPosition(container);\n\n // Determine if the vertical placement\n if (originalPlacement.indexOf('bottom') >= 0 && elementPosition.bottom + tipHeight > containerPosition.bottom) {\n placement = originalPlacement.replace('bottom', 'top');\n } else if (originalPlacement.indexOf('top') >= 0 && elementPosition.top - tipHeight < containerPosition.top) {\n placement = originalPlacement.replace('top', 'bottom');\n }\n\n // Determine the horizontal placement\n // The exotic placements of left and right are opposite of the standard placements. Their arrows are put on the left/right\n // and flow in the opposite direction of their placement.\n if ((originalPlacement === 'right' || originalPlacement === 'bottom-left' || originalPlacement === 'top-left') &&\n elementPosition.right + tipWidth > containerPosition.width) {\n\n placement = originalPlacement === 'right' ? 'left' : placement.replace('left', 'right');\n } else if ((originalPlacement === 'left' || originalPlacement === 'bottom-right' || originalPlacement === 'top-right') &&\n elementPosition.left - tipWidth < containerPosition.left) {\n\n placement = originalPlacement === 'left' ? 'right' : placement.replace('right', 'left');\n }\n\n tipElement.removeClass(originalPlacement).addClass(placement);\n }\n\n // Get the tooltip's top and left coordinates to center it with this directive.\n var tipPosition = getCalculatedOffset(placement, elementPosition, tipWidth, tipHeight);\n applyPlacement(tipPosition, placement);\n };\n\n $tooltip.$onKeyUp = function(evt) {\n if (evt.which === 27 && $tooltip.$isShown) {\n $tooltip.hide();\n evt.stopPropagation();\n }\n };\n\n $tooltip.$onFocusKeyUp = function(evt) {\n if (evt.which === 27) {\n element[0].blur();\n evt.stopPropagation();\n }\n };\n\n $tooltip.$onFocusElementMouseDown = function(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n // Some browsers do not auto-focus buttons (eg. Safari)\n $tooltip.$isShown ? element[0].blur() : element[0].focus();\n };\n\n // bind/unbind events\n function bindTriggerEvents() {\n var triggers = options.trigger.split(' ');\n angular.forEach(triggers, function(trigger) {\n if(trigger === 'click') {\n element.on('click', $tooltip.toggle);\n } else if(trigger !== 'manual') {\n element.on(trigger === 'hover' ? 'mouseenter' : 'focus', $tooltip.enter);\n element.on(trigger === 'hover' ? 'mouseleave' : 'blur', $tooltip.leave);\n nodeName === 'button' && trigger !== 'hover' && element.on(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);\n }\n });\n }\n\n function unbindTriggerEvents() {\n var triggers = options.trigger.split(' ');\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i];\n if(trigger === 'click') {\n element.off('click', $tooltip.toggle);\n } else if(trigger !== 'manual') {\n element.off(trigger === 'hover' ? 'mouseenter' : 'focus', $tooltip.enter);\n element.off(trigger === 'hover' ? 'mouseleave' : 'blur', $tooltip.leave);\n nodeName === 'button' && trigger !== 'hover' && element.off(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);\n }\n }\n }\n\n function bindKeyboardEvents() {\n if(options.trigger !== 'focus') {\n tipElement.on('keyup', $tooltip.$onKeyUp);\n } else {\n element.on('keyup', $tooltip.$onFocusKeyUp);\n }\n }\n\n function unbindKeyboardEvents() {\n if(options.trigger !== 'focus') {\n tipElement.off('keyup', $tooltip.$onKeyUp);\n } else {\n element.off('keyup', $tooltip.$onFocusKeyUp);\n }\n }\n\n var _autoCloseEventsBinded = false;\n function bindAutoCloseEvents() {\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n // Stop propagation when clicking inside tooltip\n tipElement.on('click', stopEventPropagation);\n\n // Hide when clicking outside tooltip\n $body.on('click', $tooltip.hide);\n\n _autoCloseEventsBinded = true;\n }, 0, false);\n }\n\n function unbindAutoCloseEvents() {\n if (_autoCloseEventsBinded) {\n tipElement.off('click', stopEventPropagation);\n $body.off('click', $tooltip.hide);\n _autoCloseEventsBinded = false;\n }\n }\n\n function stopEventPropagation(event) {\n event.stopPropagation();\n }\n\n // Private methods\n\n function getPosition($element) {\n $element = $element || (options.target || element);\n\n var el = $element[0],\n isBody = el.tagName === 'BODY';\n\n var elRect = el.getBoundingClientRect();\n var rect = {};\n\n // IE8 has issues with angular.extend and using elRect directly.\n // By coping the values of elRect into a new object, we can continue to use extend\n for (var p in elRect) {\n // DO NOT use hasOwnProperty when inspecting the return of getBoundingClientRect.\n rect[p] = elRect[p];\n }\n\n if (rect.width === null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n rect = angular.extend({}, rect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top });\n }\n var elOffset = isBody ? { top: 0, left: 0 } : dimensions.offset(el),\n scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.prop('scrollTop') || 0 },\n outerDims = isBody ? { width: document.documentElement.clientWidth, height: $window.innerHeight } : null;\n\n return angular.extend({}, rect, scroll, outerDims, elOffset);\n }\n\n function getCalculatedOffset(placement, position, actualWidth, actualHeight) {\n var offset;\n var split = placement.split('-');\n\n switch (split[0]) {\n case 'right':\n offset = {\n top: position.top + position.height / 2 - actualHeight / 2,\n left: position.left + position.width\n };\n break;\n case 'bottom':\n offset = {\n top: position.top + position.height,\n left: position.left + position.width / 2 - actualWidth / 2\n };\n break;\n case 'left':\n offset = {\n top: position.top + position.height / 2 - actualHeight / 2,\n left: position.left - actualWidth\n };\n break;\n default:\n offset = {\n top: position.top - actualHeight,\n left: position.left + position.width / 2 - actualWidth / 2\n };\n break;\n }\n\n if(!split[1]) {\n return offset;\n }\n\n // Add support for corners @todo css\n if(split[0] === 'top' || split[0] === 'bottom') {\n switch (split[1]) {\n case 'left':\n offset.left = position.left;\n break;\n case 'right':\n offset.left = position.left + position.width - actualWidth;\n }\n } else if(split[0] === 'left' || split[0] === 'right') {\n switch (split[1]) {\n case 'top':\n offset.top = position.top - actualHeight;\n break;\n case 'bottom':\n offset.top = position.top + position.height;\n }\n }\n\n return offset;\n }\n\n function applyPlacement(offset, placement) {\n var tip = tipElement[0],\n width = tip.offsetWidth,\n height = tip.offsetHeight;\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt(dimensions.css(tip, 'margin-top'), 10),\n marginLeft = parseInt(dimensions.css(tip, 'margin-left'), 10);\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0;\n if (isNaN(marginLeft)) marginLeft = 0;\n\n offset.top = offset.top + marginTop;\n offset.left = offset.left + marginLeft;\n\n // dimensions setOffset doesn't round pixel values\n // so we use setOffset directly with our own function\n dimensions.setOffset(tip, angular.extend({\n using: function (props) {\n tipElement.css({\n top: Math.round(props.top) + 'px',\n left: Math.round(props.left) + 'px',\n right: ''\n });\n }\n }, offset), 0);\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = tip.offsetWidth,\n actualHeight = tip.offsetHeight;\n\n if (placement === 'top' && actualHeight !== height) {\n offset.top = offset.top + height - actualHeight;\n }\n\n // If it's an exotic placement, exit now instead of\n // applying a delta and changing the arrow\n if (/top-left|top-right|bottom-left|bottom-right/.test(placement)) return;\n\n var delta = getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight);\n\n if (delta.left) {\n offset.left += delta.left;\n } else {\n offset.top += delta.top;\n }\n\n dimensions.setOffset(tip, offset);\n\n if (/top|right|bottom|left/.test(placement)) {\n var isVertical = /top|bottom/.test(placement),\n arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight,\n arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight';\n\n replaceArrow(arrowDelta, tip[arrowOffsetPosition], isVertical);\n }\n }\n\n function getViewportAdjustedDelta(placement, position, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 },\n $viewport = options.viewport && findElement(options.viewport.selector || options.viewport);\n\n if (!$viewport) {\n return delta;\n }\n\n var viewportPadding = options.viewport && options.viewport.padding || 0,\n viewportDimensions = getPosition($viewport);\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = position.top - viewportPadding - viewportDimensions.scroll,\n bottomEdgeOffset = position.top + viewportPadding - viewportDimensions.scroll + actualHeight;\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset;\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset;\n }\n } else {\n var leftEdgeOffset = position.left - viewportPadding,\n rightEdgeOffset = position.left + viewportPadding + actualWidth;\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset;\n } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset;\n }\n }\n\n return delta;\n }\n\n function replaceArrow(delta, dimension, isHorizontal) {\n var $arrow = findElement('.tooltip-arrow, .arrow', tipElement[0]);\n\n $arrow.css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isHorizontal ? 'top' : 'left', '');\n }\n\n function destroyTipElement() {\n // Cancel pending callbacks\n clearTimeout(timeout);\n\n if($tooltip.$isShown && tipElement !== null) {\n if(options.autoClose) {\n unbindAutoCloseEvents();\n }\n\n if(options.keyboard) {\n unbindKeyboardEvents();\n }\n }\n\n if(tipScope) {\n tipScope.$destroy();\n tipScope = null;\n }\n\n if(tipElement) {\n tipElement.remove();\n tipElement = $tooltip.$element = null;\n }\n }\n\n return $tooltip;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n var fetchPromises = {};\n function fetchTemplate(template) {\n if(fetchPromises[template]) return fetchPromises[template];\n return (fetchPromises[template] = $http.get(template, {cache: $templateCache}).then(function(res) {\n return res.data;\n }));\n }\n\n return TooltipFactory;\n\n };\n\n })\n\n .directive('bsTooltip', function($window, $location, $sce, $tooltip, $$rAF) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'backdropAnimation', 'type', 'customClass', 'id'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // should not parse target attribute (anchor tag), only data-target #1454\n var dataTarget = element.attr('data-target');\n if(angular.isDefined(dataTarget)) {\n if(falseValueRegExp.test(dataTarget))\n options.target = false;\n else\n options.target = dataTarget;\n }\n\n // overwrite inherited title value when no value specified\n // fix for angular 1.3.1 531a8de72c439d8ddd064874bf364c00cedabb11\n if (!scope.hasOwnProperty('title')){\n scope.title = '';\n }\n\n // Observe scope attributes for change\n attr.$observe('title', function(newValue) {\n if (angular.isDefined(newValue) || !scope.hasOwnProperty('title')) {\n var oldValue = scope.title;\n scope.title = $sce.trustAsHtml(newValue);\n angular.isDefined(oldValue) && $$rAF(function() {\n tooltip && tooltip.$applyPlacement();\n });\n }\n });\n\n // Support scope as an object\n attr.bsTooltip && scope.$watch(attr.bsTooltip, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.title = newValue;\n }\n angular.isDefined(oldValue) && $$rAF(function() {\n tooltip && tooltip.$applyPlacement();\n });\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!tooltip || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(tooltip),?/i);\n newValue === true ? tooltip.show() : tooltip.hide();\n });\n\n // Enabled binding support\n attr.bsEnabled && scope.$watch(attr.bsEnabled, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.bsEnabled, newValue, oldValue);\n if(!tooltip || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|1|,?(tooltip),?/i);\n newValue === false ? tooltip.setEnabled(false) : tooltip.setEnabled(true);\n });\n\n // Viewport support\n attr.viewport && scope.$watch(attr.viewport, function (newValue) {\n if(!tooltip || !angular.isDefined(newValue)) return;\n tooltip.setViewport(newValue);\n });\n\n // Initialize popover\n var tooltip = $tooltip(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if(tooltip) tooltip.destroy();\n options = null;\n tooltip = null;\n });\n\n }\n };\n\n });\n\n// Source: timepicker/timepicker.js\nangular.module('mgcrea.ngStrap.timepicker', [\n 'mgcrea.ngStrap.helpers.dateParser',\n 'mgcrea.ngStrap.helpers.dateFormatter',\n 'mgcrea.ngStrap.tooltip'])\n\n .provider('$timepicker', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n //uncommenting the following line will break backwards compatability\n // prefixEvent: 'timepicker',\n prefixClass: 'timepicker',\n placement: 'bottom-left',\n templateUrl: 'timepicker/timepicker.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n // lang: $locale.id,\n useNative: true,\n timeType: 'date',\n timeFormat: 'shortTime',\n timezone: null,\n modelTimeFormat: null,\n autoclose: false,\n minTime: -Infinity,\n maxTime: +Infinity,\n length: 5,\n hourStep: 1,\n minuteStep: 5,\n secondStep: 5,\n roundDisplay: false,\n iconUp: 'glyphicon glyphicon-chevron-up',\n iconDown: 'glyphicon glyphicon-chevron-down',\n arrowBehavior: 'pager'\n };\n\n this.$get = function($window, $document, $rootScope, $sce, $dateFormatter, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n if(!defaults.lang) defaults.lang = $dateFormatter.getDefaultLocale();\n\n function timepickerFactory(element, controller, config) {\n\n var $timepicker = $tooltip(element, angular.extend({}, defaults, config));\n var parentScope = config.scope;\n var options = $timepicker.$options;\n var scope = $timepicker.$scope;\n\n var lang = options.lang;\n var formatDate = function(date, format, timezone) {\n return $dateFormatter.formatDate(date, format, lang, timezone);\n };\n\n function floorMinutes(time)\n {\n // coeff used to floor current time to nearest minuteStep interval\n var coeff = 1000 * 60 * options.minuteStep;\n return new Date(Math.floor(time.getTime() / coeff) * coeff);\n }\n\n // View vars\n\n var selectedIndex = 0;\n var defaultDate = options.roundDisplay ? floorMinutes(new Date()) : new Date();\n var startDate = controller.$dateValue || defaultDate;\n var viewDate = {hour: startDate.getHours(), meridian: startDate.getHours() < 12, minute: startDate.getMinutes(), second: startDate.getSeconds(), millisecond: startDate.getMilliseconds()};\n\n var format = $dateFormatter.getDatetimeFormat(options.timeFormat, lang);\n\n var hoursFormat = $dateFormatter.hoursFormat(format),\n timeSeparator = $dateFormatter.timeSeparator(format),\n minutesFormat = $dateFormatter.minutesFormat(format),\n secondsFormat = $dateFormatter.secondsFormat(format),\n showSeconds = $dateFormatter.showSeconds(format),\n showAM = $dateFormatter.showAM(format);\n\n scope.$iconUp = options.iconUp;\n scope.$iconDown = options.iconDown;\n\n // Scope methods\n\n scope.$select = function(date, index) {\n $timepicker.select(date, index);\n };\n scope.$moveIndex = function(value, index) {\n $timepicker.$moveIndex(value, index);\n };\n scope.$switchMeridian = function(date) {\n $timepicker.switchMeridian(date);\n };\n\n // Public methods\n\n $timepicker.update = function(date) {\n // console.warn('$timepicker.update() newValue=%o', date);\n if(angular.isDate(date) && !isNaN(date.getTime())) {\n $timepicker.$date = date;\n angular.extend(viewDate, {hour: date.getHours(), minute: date.getMinutes(), second: date.getSeconds(), millisecond: date.getMilliseconds()});\n $timepicker.$build();\n } else if(!$timepicker.$isBuilt) {\n $timepicker.$build();\n }\n };\n\n $timepicker.select = function(date, index, keep) {\n // console.warn('$timepicker.select', date, scope.$mode);\n if(!controller.$dateValue || isNaN(controller.$dateValue.getTime())) controller.$dateValue = new Date(1970, 0, 1);\n if(!angular.isDate(date)) date = new Date(date);\n if(index === 0) controller.$dateValue.setHours(date.getHours());\n else if(index === 1) controller.$dateValue.setMinutes(date.getMinutes());\n else if(index === 2) controller.$dateValue.setSeconds(date.getSeconds());\n controller.$setViewValue(angular.copy(controller.$dateValue));\n controller.$render();\n if(options.autoclose && !keep) {\n $timeout(function() { $timepicker.hide(true); });\n }\n };\n\n $timepicker.switchMeridian = function(date) {\n if (!controller.$dateValue || isNaN(controller.$dateValue.getTime())) {\n return;\n }\n var hours = (date || controller.$dateValue).getHours();\n controller.$dateValue.setHours(hours < 12 ? hours + 12 : hours - 12);\n controller.$setViewValue(angular.copy(controller.$dateValue));\n controller.$render();\n };\n\n // Protected methods\n\n $timepicker.$build = function() {\n // console.warn('$timepicker.$build() viewDate=%o', viewDate);\n var i, midIndex = scope.midIndex = parseInt(options.length / 2, 10);\n var hours = [], hour;\n for(i = 0; i < options.length; i++) {\n hour = new Date(1970, 0, 1, viewDate.hour - (midIndex - i) * options.hourStep);\n hours.push({date: hour, label: formatDate(hour, hoursFormat), selected: $timepicker.$date && $timepicker.$isSelected(hour, 0), disabled: $timepicker.$isDisabled(hour, 0)});\n }\n var minutes = [], minute;\n for(i = 0; i < options.length; i++) {\n minute = new Date(1970, 0, 1, 0, viewDate.minute - (midIndex - i) * options.minuteStep);\n minutes.push({date: minute, label: formatDate(minute, minutesFormat), selected: $timepicker.$date && $timepicker.$isSelected(minute, 1), disabled: $timepicker.$isDisabled(minute, 1)});\n }\n var seconds = [], second;\n for(i = 0; i < options.length; i++) {\n second = new Date(1970, 0, 1, 0, 0, viewDate.second - (midIndex - i) * options.secondStep);\n seconds.push({date: second, label: formatDate(second, secondsFormat), selected: $timepicker.$date && $timepicker.$isSelected(second, 2), disabled: $timepicker.$isDisabled(second, 2)});\n }\n\n var rows = [];\n for(i = 0; i < options.length; i++) {\n if (showSeconds) {\n rows.push([hours[i], minutes[i], seconds[i]]);\n } else {\n rows.push([hours[i], minutes[i]]);\n }\n }\n scope.rows = rows;\n scope.showSeconds = showSeconds;\n scope.showAM = showAM;\n scope.isAM = ($timepicker.$date || hours[midIndex].date).getHours() < 12;\n scope.timeSeparator = timeSeparator;\n $timepicker.$isBuilt = true;\n };\n\n $timepicker.$isSelected = function(date, index) {\n if(!$timepicker.$date) return false;\n else if(index === 0) {\n return date.getHours() === $timepicker.$date.getHours();\n } else if(index === 1) {\n return date.getMinutes() === $timepicker.$date.getMinutes();\n } else if(index === 2) {\n return date.getSeconds() === $timepicker.$date.getSeconds();\n }\n };\n\n $timepicker.$isDisabled = function(date, index) {\n var selectedTime;\n if(index === 0) {\n selectedTime = date.getTime() + viewDate.minute * 6e4 + viewDate.second * 1e3;\n } else if(index === 1) {\n selectedTime = date.getTime() + viewDate.hour * 36e5 + viewDate.second * 1e3;\n } else if(index === 2) {\n selectedTime = date.getTime() + viewDate.hour * 36e5 + viewDate.minute * 6e4;\n }\n return selectedTime < options.minTime * 1 || selectedTime > options.maxTime * 1;\n };\n\n scope.$arrowAction = function (value, index) {\n if (options.arrowBehavior === 'picker') {\n $timepicker.$setTimeByStep(value,index);\n } else {\n $timepicker.$moveIndex(value,index);\n }\n };\n\n $timepicker.$setTimeByStep = function(value, index) {\n var newDate = new Date($timepicker.$date);\n var hours = newDate.getHours(), hoursLength = formatDate(newDate, hoursFormat).length;\n var minutes = newDate.getMinutes(), minutesLength = formatDate(newDate, minutesFormat).length;\n var seconds = newDate.getSeconds(), secondsLength = formatDate(newDate, secondsFormat).length;\n if (index === 0) {\n newDate.setHours(hours - (parseInt(options.hourStep, 10) * value));\n }\n else if (index === 1) {\n newDate.setMinutes(minutes - (parseInt(options.minuteStep, 10) * value));\n }\n else if (index === 2) {\n newDate.setSeconds(seconds - (parseInt(options.secondStep, 10) * value));\n }\n $timepicker.select(newDate, index, true);\n };\n\n $timepicker.$moveIndex = function(value, index) {\n var targetDate;\n if(index === 0) {\n targetDate = new Date(1970, 0, 1, viewDate.hour + (value * options.length), viewDate.minute, viewDate.second);\n angular.extend(viewDate, {hour: targetDate.getHours()});\n } else if(index === 1) {\n targetDate = new Date(1970, 0, 1, viewDate.hour, viewDate.minute + (value * options.length * options.minuteStep), viewDate.second);\n angular.extend(viewDate, {minute: targetDate.getMinutes()});\n } else if(index === 2) {\n targetDate = new Date(1970, 0, 1, viewDate.hour, viewDate.minute, viewDate.second + (value * options.length * options.secondStep));\n angular.extend(viewDate, {second: targetDate.getSeconds()});\n }\n $timepicker.$build();\n };\n\n $timepicker.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n if(evt.target.nodeName.toLowerCase() !== 'input') evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n if(targetEl[0].nodeName.toLowerCase() !== 'button') {\n targetEl = targetEl.parent();\n }\n targetEl.triggerHandler('click');\n }\n };\n\n $timepicker.$onKeyDown = function(evt) {\n if (!/(38|37|39|40|13)/.test(evt.keyCode) || evt.shiftKey || evt.altKey) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // Close on enter\n if(evt.keyCode === 13) return $timepicker.hide(true);\n\n // Navigate with keyboard\n var newDate = new Date($timepicker.$date);\n var hours = newDate.getHours(), hoursLength = formatDate(newDate, hoursFormat).length;\n var minutes = newDate.getMinutes(), minutesLength = formatDate(newDate, minutesFormat).length;\n var seconds = newDate.getSeconds(), secondsLength = formatDate(newDate, secondsFormat).length;\n var sepLength = 1;\n var lateralMove = /(37|39)/.test(evt.keyCode);\n var count = 2 + showSeconds * 1 + showAM * 1;\n\n // Navigate indexes (left, right)\n if (lateralMove) {\n if(evt.keyCode === 37) selectedIndex = selectedIndex < 1 ? count - 1 : selectedIndex - 1;\n else if(evt.keyCode === 39) selectedIndex = selectedIndex < count - 1 ? selectedIndex + 1 : 0;\n }\n\n // Update values (up, down)\n var selectRange = [0, hoursLength];\n var incr = 0;\n if (evt.keyCode === 38) incr = -1;\n if (evt.keyCode === 40) incr = +1;\n var isSeconds = selectedIndex === 2 && showSeconds;\n var isMeridian = selectedIndex === 2 && !showSeconds || selectedIndex === 3 && showSeconds;\n if(selectedIndex === 0) {\n newDate.setHours(hours + incr*parseInt(options.hourStep, 10));\n // re-calculate hours length because we have changed hours value\n hoursLength = formatDate(newDate, hoursFormat).length;\n selectRange = [0, hoursLength];\n } else if(selectedIndex === 1) {\n newDate.setMinutes(minutes + incr*parseInt(options.minuteStep, 10));\n // re-calculate minutes length because we have changes minutes value\n minutesLength = formatDate(newDate, minutesFormat).length;\n selectRange = [hoursLength + sepLength, minutesLength];\n } else if(isSeconds) {\n newDate.setSeconds(seconds + incr*parseInt(options.secondStep, 10));\n // re-calculate seconds length because we have changes seconds value\n secondsLength = formatDate(newDate, secondsFormat).length;\n selectRange = [hoursLength + sepLength + minutesLength + sepLength, secondsLength];\n } else if(isMeridian) {\n if(!lateralMove) $timepicker.switchMeridian();\n selectRange = [hoursLength + sepLength + minutesLength + sepLength + (secondsLength + sepLength)*showSeconds, 2];\n }\n $timepicker.select(newDate, selectedIndex, true);\n createSelection(selectRange[0], selectRange[1]);\n parentScope.$digest();\n };\n\n // Private\n\n function createSelection(start, length) {\n var end = start + length;\n if(element[0].createTextRange) {\n var selRange = element[0].createTextRange();\n selRange.collapse(true);\n selRange.moveStart('character', start);\n selRange.moveEnd('character', end);\n selRange.select();\n } else if(element[0].setSelectionRange) {\n element[0].setSelectionRange(start, end);\n } else if(angular.isUndefined(element[0].selectionStart)) {\n element[0].selectionStart = start;\n element[0].selectionEnd = end;\n }\n }\n\n function focusElement() {\n element[0].focus();\n }\n\n // Overrides\n\n var _init = $timepicker.init;\n $timepicker.init = function() {\n if(isNative && options.useNative) {\n element.prop('type', 'time');\n element.css('-webkit-appearance', 'textfield');\n return;\n } else if(isTouch) {\n element.prop('type', 'text');\n element.attr('readonly', 'true');\n element.on('click', focusElement);\n }\n _init();\n };\n\n var _destroy = $timepicker.destroy;\n $timepicker.destroy = function() {\n if(isNative && options.useNative) {\n element.off('click', focusElement);\n }\n _destroy();\n };\n\n var _show = $timepicker.show;\n $timepicker.show = function() {\n _show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n $timepicker.$element && $timepicker.$element.on(isTouch ? 'touchstart' : 'mousedown', $timepicker.$onMouseDown);\n if(options.keyboard) {\n element && element.on('keydown', $timepicker.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $timepicker.hide;\n $timepicker.hide = function(blur) {\n if(!$timepicker.$isShown) return;\n $timepicker.$element && $timepicker.$element.off(isTouch ? 'touchstart' : 'mousedown', $timepicker.$onMouseDown);\n if(options.keyboard) {\n element && element.off('keydown', $timepicker.$onKeyDown);\n }\n _hide(blur);\n };\n\n return $timepicker;\n\n }\n\n timepickerFactory.defaults = defaults;\n return timepickerFactory;\n\n };\n\n })\n\n\n .directive('bsTimepicker', function($window, $parse, $q, $dateFormatter, $dateParser, $timepicker) {\n\n var defaults = $timepicker.defaults;\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'autoclose', 'timeType', 'timeFormat', 'timezone', 'modelTimeFormat', 'useNative', 'hourStep', 'minuteStep', 'secondStep', 'length', 'arrowBehavior', 'iconUp', 'iconDown', 'roundDisplay', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoclose', 'useNative', 'roundDisplay'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!timepicker || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(timepicker),?/i);\n newValue === true ? timepicker.show() : timepicker.hide();\n });\n\n // Initialize timepicker\n if(isNative && (options.useNative || defaults.useNative)) options.timeFormat = 'HH:mm';\n var timepicker = $timepicker(element, controller, options);\n options = timepicker.$options;\n\n var lang = options.lang;\n var formatDate = function(date, format, timezone) {\n return $dateFormatter.formatDate(date, format, lang, timezone);\n };\n\n // Initialize parser\n var dateParser = $dateParser({format: options.timeFormat, lang: lang});\n\n // Observe attributes for changes\n angular.forEach(['minTime', 'maxTime'], function(key) {\n // console.warn('attr.$observe(%s)', key, attr[key]);\n angular.isDefined(attr[key]) && attr.$observe(key, function(newValue) {\n timepicker.$options[key] = dateParser.getTimeForAttribute(key, newValue);\n !isNaN(timepicker.$options[key]) && timepicker.$build();\n validateAgainstMinMaxTime(controller.$dateValue);\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.ngModel, newValue, oldValue, controller.$dateValue);\n timepicker.update(controller.$dateValue);\n }, true);\n\n function validateAgainstMinMaxTime(parsedTime) {\n if (!angular.isDate(parsedTime)) return;\n var isMinValid = isNaN(options.minTime) || new Date(parsedTime.getTime()).setFullYear(1970, 0, 1) >= options.minTime;\n var isMaxValid = isNaN(options.maxTime) || new Date(parsedTime.getTime()).setFullYear(1970, 0, 1) <= options.maxTime;\n var isValid = isMinValid && isMaxValid;\n controller.$setValidity('date', isValid);\n controller.$setValidity('min', isMinValid);\n controller.$setValidity('max', isMaxValid);\n // Only update the model when we have a valid date\n if(!isValid) {\n return;\n }\n controller.$dateValue = parsedTime;\n }\n\n // viewValue -> $parsers -> modelValue\n controller.$parsers.unshift(function(viewValue) {\n // console.warn('$parser(\"%s\"): viewValue=%o', element.attr('ng-model'), viewValue);\n var date;\n // Null values should correctly reset the model value & validity\n if(!viewValue) {\n // BREAKING CHANGE:\n // return null (not undefined) when input value is empty, so angularjs 1.3\n // ngModelController can go ahead and run validators, like ngRequired\n controller.$setValidity('date', true);\n return null;\n }\n var parsedTime = angular.isDate(viewValue) ? viewValue : dateParser.parse(viewValue, controller.$dateValue);\n if(!parsedTime || isNaN(parsedTime.getTime())) {\n controller.$setValidity('date', false);\n // return undefined, causes ngModelController to\n // invalidate model value\n return;\n } else {\n validateAgainstMinMaxTime(parsedTime);\n }\n\n if(options.timeType === 'string') {\n date = dateParser.timezoneOffsetAdjust(parsedTime, options.timezone, true);\n return formatDate(date, options.modelTimeFormat || options.timeFormat);\n }\n date = dateParser.timezoneOffsetAdjust(controller.$dateValue, options.timezone, true);\n if(options.timeType === 'number') {\n return date.getTime();\n } else if(options.timeType === 'unix') {\n return date.getTime() / 1000;\n } else if(options.timeType === 'iso') {\n return date.toISOString();\n } else {\n return new Date(date);\n }\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var date;\n if(angular.isUndefined(modelValue) || modelValue === null) {\n date = NaN;\n } else if(angular.isDate(modelValue)) {\n date = modelValue;\n } else if(options.timeType === 'string') {\n date = dateParser.parse(modelValue, null, options.modelTimeFormat);\n } else if(options.timeType === 'unix') {\n date = new Date(modelValue * 1000);\n } else {\n date = new Date(modelValue);\n }\n // Setup default value?\n // if(isNaN(date.getTime())) date = new Date(new Date().setMinutes(0) + 36e5);\n controller.$dateValue = dateParser.timezoneOffsetAdjust(date, options.timezone);\n return getTimeFormattedString();\n });\n\n // viewValue -> element\n controller.$render = function() {\n // console.warn('$render(\"%s\"): viewValue=%o', element.attr('ng-model'), controller.$viewValue);\n element.val(getTimeFormattedString());\n };\n\n function getTimeFormattedString() {\n return !controller.$dateValue || isNaN(controller.$dateValue.getTime()) ? '' : formatDate(controller.$dateValue, options.timeFormat);\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (timepicker) timepicker.destroy();\n options = null;\n timepicker = null;\n });\n\n }\n };\n\n });\n\n// Source: typeahead/typeahead.js\nangular.module('mgcrea.ngStrap.typeahead', ['mgcrea.ngStrap.tooltip', 'mgcrea.ngStrap.helpers.parseOptions'])\n\n .provider('$typeahead', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'typeahead',\n prefixEvent: '$typeahead',\n placement: 'bottom-left',\n templateUrl: 'typeahead/typeahead.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n minLength: 1,\n filter: 'filter',\n limit: 6,\n autoSelect: false,\n comparator: '',\n trimValue: true\n };\n\n this.$get = function($window, $rootScope, $tooltip, $$rAF, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n\n function TypeaheadFactory(element, controller, config) {\n\n var $typeahead = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $typeahead = $tooltip(element, options);\n var parentScope = config.scope;\n var scope = $typeahead.$scope;\n\n scope.$resetMatches = function(){\n scope.$matches = [];\n scope.$activeIndex = options.autoSelect ? 0 : -1; // If set to 0, the first match will be highlighted\n };\n scope.$resetMatches();\n\n scope.$activate = function(index) {\n scope.$$postDigest(function() {\n $typeahead.activate(index);\n });\n };\n\n scope.$select = function(index, evt) {\n scope.$$postDigest(function() {\n $typeahead.select(index);\n });\n };\n\n scope.$isVisible = function() {\n return $typeahead.$isVisible();\n };\n\n // Public methods\n\n $typeahead.update = function(matches) {\n scope.$matches = matches;\n if(scope.$activeIndex >= matches.length) {\n scope.$activeIndex = options.autoSelect ? 0: -1;\n }\n\n // wrap in a $timeout so the results are updated\n // before repositioning\n safeDigest(scope);\n $$rAF($typeahead.$applyPlacement);\n };\n\n $typeahead.activate = function(index) {\n scope.$activeIndex = index;\n };\n\n $typeahead.select = function(index) {\n if(index === -1) return;\n var value = scope.$matches[index].value;\n // console.log('$setViewValue', value);\n controller.$setViewValue(value);\n controller.$render();\n scope.$resetMatches();\n if(parentScope) parentScope.$digest();\n // Emit event\n scope.$emit(options.prefixEvent + '.select', value, index, $typeahead);\n };\n\n // Protected methods\n\n $typeahead.$isVisible = function() {\n if(!options.minLength || !controller) {\n return !!scope.$matches.length;\n }\n // minLength support\n return scope.$matches.length && angular.isString(controller.$viewValue) && controller.$viewValue.length >= options.minLength;\n };\n\n $typeahead.$getIndex = function(value) {\n var l = scope.$matches.length, i = l;\n if(!l) return;\n for(i = l; i--;) {\n if(scope.$matches[i].value === value) break;\n }\n if(i < 0) return;\n return i;\n };\n\n $typeahead.$onMouseDown = function(evt) {\n // Prevent blur on mousedown\n evt.preventDefault();\n evt.stopPropagation();\n };\n\n $typeahead.$onKeyDown = function(evt) {\n if(!/(38|40|13)/.test(evt.keyCode)) return;\n\n // Let ngSubmit pass if the typeahead tip is hidden or no option is selected\n if($typeahead.$isVisible() && !(evt.keyCode === 13 && scope.$activeIndex === -1)) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n\n // Select with enter\n if(evt.keyCode === 13 && scope.$matches.length) {\n $typeahead.select(scope.$activeIndex);\n }\n\n // Navigate with keyboard\n else if(evt.keyCode === 38 && scope.$activeIndex > 0) scope.$activeIndex--;\n else if(evt.keyCode === 40 && scope.$activeIndex < scope.$matches.length - 1) scope.$activeIndex++;\n else if(angular.isUndefined(scope.$activeIndex)) scope.$activeIndex = 0;\n scope.$digest();\n };\n\n // Overrides\n\n var show = $typeahead.show;\n $typeahead.show = function() {\n show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed immediately.\n $timeout(function() {\n $typeahead.$element && $typeahead.$element.on('mousedown', $typeahead.$onMouseDown);\n if(options.keyboard) {\n element && element.on('keydown', $typeahead.$onKeyDown);\n }\n }, 0, false);\n };\n\n var hide = $typeahead.hide;\n $typeahead.hide = function() {\n $typeahead.$element && $typeahead.$element.off('mousedown', $typeahead.$onMouseDown);\n if(options.keyboard) {\n element && element.off('keydown', $typeahead.$onKeyDown);\n }\n if(!options.autoSelect)\n $typeahead.activate(-1);\n hide();\n };\n\n return $typeahead;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n TypeaheadFactory.defaults = defaults;\n return TypeaheadFactory;\n\n };\n\n })\n\n .directive('bsTypeahead', function($window, $parse, $q, $typeahead, $parseOptions) {\n\n var defaults = $typeahead.defaults;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'filter', 'limit', 'minLength', 'watchOptions', 'selectMode', 'autoSelect', 'comparator', 'id', 'prefixEvent', 'prefixClass'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'trimValue'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key])) options[key] = false;\n });\n\n // Disable browser autocompletion\n element.attr('autocomplete' ,'false');\n\n // Build proper bsOptions\n var filter = options.filter || defaults.filter;\n var limit = options.limit || defaults.limit;\n var comparator = options.comparator || defaults.comparator;\n\n var bsOptions = attr.bsOptions;\n if(filter) bsOptions += ' | ' + filter + ':$viewValue';\n if (comparator) bsOptions += ':' + comparator;\n if(limit) bsOptions += ' | limitTo:' + limit;\n var parsedOptions = $parseOptions(bsOptions);\n\n // Initialize typeahead\n var typeahead = $typeahead(element, controller, options);\n\n // Watch options on demand\n if(options.watchOptions) {\n // Watch bsOptions values before filtering for changes, drop function calls\n var watchedOptions = parsedOptions.$match[7].replace(/\\|.+/, '').replace(/\\(.*\\)/g, '').trim();\n scope.$watchCollection(watchedOptions, function (newValue, oldValue) {\n // console.warn('scope.$watch(%s)', watchedOptions, newValue, oldValue);\n parsedOptions.valuesFn(scope, controller).then(function (values) {\n typeahead.update(values);\n controller.$render();\n });\n });\n }\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('$watch', element.attr('ng-model'), newValue);\n scope.$modelValue = newValue; // Publish modelValue on scope for custom templates\n parsedOptions.valuesFn(scope, controller)\n .then(function(values) {\n // Prevent input with no future prospect if selectMode is truthy\n // @TODO test selectMode\n if(options.selectMode && !values.length && newValue.length > 0) {\n controller.$setViewValue(controller.$viewValue.substring(0, controller.$viewValue.length - 1));\n return;\n }\n if(values.length > limit) values = values.slice(0, limit);\n var isVisible = typeahead.$isVisible();\n isVisible && typeahead.update(values);\n // Do not re-queue an update if a correct value has been selected\n if(values.length === 1 && values[0].value === newValue) return;\n !isVisible && typeahead.update(values);\n // Queue a new rendering that will leverage collection loading\n controller.$render();\n });\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var displayValue = parsedOptions.displayValue(modelValue);\n\n // If we can determine the displayValue, use that\n if (displayValue) return displayValue;\n\n // If there's no display value, attempt to use the modelValue.\n // If the model is an object not much we can do\n if (modelValue && typeof modelValue !== 'object') {\n return modelValue;\n }\n return '';\n });\n\n // Model rendering in view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n if(controller.$isEmpty(controller.$viewValue)) return element.val('');\n var index = typeahead.$getIndex(controller.$modelValue);\n var selected = angular.isDefined(index) ? typeahead.$scope.$matches[index].label : controller.$viewValue;\n selected = angular.isObject(selected) ? parsedOptions.displayValue(selected) : selected;\n var value = selected ? selected.toString().replace(/<(?:.|\\n)*?>/gm, '') : '';\n element.val(options.trimValue === false ? value : value.trim());\n };\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (typeahead) typeahead.destroy();\n options = null;\n typeahead = null;\n });\n\n }\n };\n\n });\n\n})(window, document);\n","'use strict';\n\n// NOTICE: This file was forked from the angular-material project (github.com/angular/material)\n// MIT Licensed - Copyright (c) 2014-2015 Google, Inc. http://angularjs.org\n\nangular.module('mgcrea.ngStrap.core', [])\n .service('$bsCompiler', bsCompilerService);\n\nfunction bsCompilerService($q, $http, $injector, $compile, $controller, $templateCache) {\n /* jshint validthis: true */\n\n /*\n * @ngdoc service\n * @name $bsCompiler\n * @module material.core\n * @description\n * The $bsCompiler service is an abstraction of angular's compiler, that allows the developer\n * to easily compile an element with a templateUrl, controller, and locals.\n *\n * @usage\n * \n * $bsCompiler.compile({\n * templateUrl: 'modal.html',\n * controller: 'ModalCtrl',\n * locals: {\n * modal: myModalInstance;\n * }\n * }).then(function(compileData) {\n * compileData.element; // modal.html's template in an element\n * compileData.link(myScope); //attach controller & scope to element\n * });\n * \n */\n\n /*\n * @ngdoc method\n * @name $bsCompiler#compile\n * @description A helper to compile an HTML template/templateUrl with a given controller,\n * locals, and scope.\n * @param {object} options An options object, with the following properties:\n *\n * - `controller` - `{(string=|function()=}` Controller fn that should be associated with\n * newly created scope or the name of a registered controller if passed as a string.\n * - `controllerAs` - `{string=}` A controller alias name. If present the controller will be\n * published to scope under the `controllerAs` name.\n * - `template` - `{string=}` An html template as a string.\n * - `templateUrl` - `{string=}` A path to an html template.\n * - `transformTemplate` - `{function(template)=}` A function which transforms the template after\n * it is loaded. It will be given the template string as a parameter, and should\n * return a a new string representing the transformed template.\n * - `resolve` - `{Object.=}` - An optional map of dependencies which should\n * be injected into the controller. If any of these dependencies are promises, the compiler\n * will wait for them all to be resolved, or if one is rejected before the controller is\n * instantiated `compile()` will fail..\n * * `key` - `{string}`: a name of a dependency to be injected into the controller.\n * * `factory` - `{string|function}`: If `string` then it is an alias for a service.\n * Otherwise if function, then it is injected and the return value is treated as the\n * dependency. If the result is a promise, it is resolved before its value is\n * injected into the controller.\n *\n * @returns {object=} promise A promise, which will be resolved with a `compileData` object.\n * `compileData` has the following properties:\n *\n * - `element` - `{element}`: an uncompiled element matching the provided template.\n * - `link` - `{function(scope)}`: A link function, which, when called, will compile\n * the element and instantiate the provided controller (if given).\n * - `locals` - `{object}`: The locals which will be passed into the controller once `link` is\n * called. If `bindToController` is true, they will be coppied to the ctrl instead\n * - `bindToController` - `bool`: bind the locals to the controller, instead of passing them in.\n */\n this.compile = function(options) {\n\n if(options.template && /\\.html$/.test(options.template)) {\n console.warn('Deprecated use of `template` option to pass a file. Please use the `templateUrl` option instead.');\n options.templateUrl = options.template;\n options.template = '';\n }\n\n var templateUrl = options.templateUrl;\n var template = options.template || '';\n var controller = options.controller;\n var controllerAs = options.controllerAs;\n var resolve = angular.copy(options.resolve || {});\n var locals = angular.copy(options.locals || {});\n var transformTemplate = options.transformTemplate || angular.identity;\n var bindToController = options.bindToController;\n\n // Take resolve values and invoke them.\n // Resolves can either be a string (value: 'MyRegisteredAngularConst'),\n // or an invokable 'factory' of sorts: (value: function ValueGetter($dependency) {})\n angular.forEach(resolve, function(value, key) {\n if (angular.isString(value)) {\n resolve[key] = $injector.get(value);\n } else {\n resolve[key] = $injector.invoke(value);\n }\n });\n // Add the locals, which are just straight values to inject\n // eg locals: { three: 3 }, will inject three into the controller\n angular.extend(resolve, locals);\n\n if (templateUrl) {\n resolve.$template = fetchTemplate(templateUrl);\n } else {\n resolve.$template = $q.when(template);\n }\n\n if (options.contentTemplate) {\n // TODO(mgcrea): deprecate?\n resolve.$template = $q.all([resolve.$template, fetchTemplate(options.contentTemplate)])\n .then(function(templates) {\n var templateEl = angular.element(templates[0]);\n var contentEl = findElement('[ng-bind=\"content\"]', templateEl[0]).removeAttr('ng-bind').html(templates[1]);\n // Drop the default footer as you probably don't want it if you use a custom contentTemplate\n if(!options.templateUrl) contentEl.next().remove();\n return templateEl[0].outerHTML;\n });\n }\n\n // Wait for all the resolves to finish if they are promises\n return $q.all(resolve).then(function(locals) {\n\n var template = transformTemplate(locals.$template);\n if (options.html) {\n template = template.replace(/ng-bind=\"/ig, 'ng-bind-html=\"');\n }\n // var element = options.element || angular.element('
').html(template.trim()).contents();\n var element = angular.element('
').html(template.trim()).contents();\n var linkFn = $compile(element);\n\n // Return a linking function that can be used later when the element is ready\n return {\n locals: locals,\n element: element,\n link: function link(scope) {\n locals.$scope = scope;\n\n // Instantiate controller if it exists, because we have scope\n if (controller) {\n var invokeCtrl = $controller(controller, locals, true);\n if (bindToController) {\n angular.extend(invokeCtrl.instance, locals);\n }\n // Support angular@~1.2 invokeCtrl\n var ctrl = angular.isObject(invokeCtrl) ? invokeCtrl : invokeCtrl();\n // See angular-route source for this logic\n element.data('$ngControllerController', ctrl);\n element.children().data('$ngControllerController', ctrl);\n\n if (controllerAs) {\n scope[controllerAs] = ctrl;\n }\n }\n\n return linkFn.apply(null, arguments);\n }\n };\n });\n\n };\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n var fetchPromises = {};\n function fetchTemplate(template) {\n if(fetchPromises[template]) return fetchPromises[template];\n return (fetchPromises[template] = $http.get(template, {cache: $templateCache})\n .then(function(res) {\n return res.data;\n }));\n }\n\n}\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.dateFormatter', [])\n\n .service('$dateFormatter', function($locale, dateFilter) {\n\n // The unused `lang` arguments are on purpose. The default implementation does not\n // use them and it always uses the locale loaded into the `$locale` service.\n // Custom implementations might use it, thus allowing different directives to\n // have different languages.\n\n this.getDefaultLocale = function() {\n return $locale.id;\n };\n\n // Format is either a data format name, e.g. \"shortTime\" or \"fullDate\", or a date format\n // Return either the corresponding date format or the given date format.\n this.getDatetimeFormat = function(format, lang) {\n return $locale.DATETIME_FORMATS[format] || format;\n };\n\n this.weekdaysShort = function(lang) {\n return $locale.DATETIME_FORMATS.SHORTDAY;\n };\n\n function splitTimeFormat(format) {\n return /(h+)([:\\.])?(m+)([:\\.])?(s*)[ ]?(a?)/i.exec(format).slice(1);\n }\n\n // h:mm a => h\n this.hoursFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[0];\n };\n\n // h:mm a => mm\n this.minutesFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[2];\n };\n\n // h:mm:ss a => ss\n this.secondsFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[4];\n };\n\n // h:mm a => :\n this.timeSeparator = function(timeFormat) {\n return splitTimeFormat(timeFormat)[1];\n };\n\n // h:mm:ss a => true, h:mm a => false\n this.showSeconds = function(timeFormat) {\n return !!splitTimeFormat(timeFormat)[4];\n };\n\n // h:mm a => true, H.mm => false\n this.showAM = function(timeFormat) {\n return !!splitTimeFormat(timeFormat)[5];\n };\n\n this.formatDate = function(date, format, lang, timezone){\n return dateFilter(date, format, timezone);\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.affix', ['mgcrea.ngStrap.helpers.dimensions', 'mgcrea.ngStrap.helpers.debounce'])\n\n .provider('$affix', function() {\n\n var defaults = this.defaults = {\n offsetTop: 'auto',\n inlineStyles: true\n };\n\n this.$get = function($window, debounce, dimensions) {\n\n var bodyEl = angular.element($window.document.body);\n var windowEl = angular.element($window);\n\n function AffixFactory(element, config) {\n\n var $affix = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n var targetEl = options.target;\n\n // Initial private vars\n var reset = 'affix affix-top affix-bottom',\n setWidth = false,\n initialAffixTop = 0,\n initialOffsetTop = 0,\n offsetTop = 0,\n offsetBottom = 0,\n affixed = null,\n unpin = null;\n\n var parent = element.parent();\n // Options: custom parent\n if (options.offsetParent) {\n if (options.offsetParent.match(/^\\d+$/)) {\n for (var i = 0; i < (options.offsetParent * 1) - 1; i++) {\n parent = parent.parent();\n }\n }\n else {\n parent = angular.element(options.offsetParent);\n }\n }\n\n $affix.init = function() {\n\n this.$parseOffsets();\n initialOffsetTop = dimensions.offset(element[0]).top + initialAffixTop;\n setWidth = !element[0].style.width;\n\n // Bind events\n targetEl.on('scroll', this.checkPosition);\n targetEl.on('click', this.checkPositionWithEventLoop);\n windowEl.on('resize', this.$debouncedOnResize);\n\n // Both of these checkPosition() calls are necessary for the case where\n // the user hits refresh after scrolling to the bottom of the page.\n this.checkPosition();\n this.checkPositionWithEventLoop();\n\n };\n\n $affix.destroy = function() {\n\n // Unbind events\n targetEl.off('scroll', this.checkPosition);\n targetEl.off('click', this.checkPositionWithEventLoop);\n windowEl.off('resize', this.$debouncedOnResize);\n\n };\n\n $affix.checkPositionWithEventLoop = function() {\n\n // IE 9 throws an error if we use 'this' instead of '$affix'\n // in this setTimeout call\n setTimeout($affix.checkPosition, 1);\n\n };\n\n $affix.checkPosition = function() {\n // if (!this.$element.is(':visible')) return\n\n var scrollTop = getScrollTop();\n var position = dimensions.offset(element[0]);\n var elementHeight = dimensions.height(element[0]);\n\n // Get required affix class according to position\n var affix = getRequiredAffixClass(unpin, position, elementHeight);\n\n // Did affix status changed this last check?\n if(affixed === affix) return;\n affixed = affix;\n\n // Add proper affix class\n element.removeClass(reset).addClass('affix' + ((affix !== 'middle') ? '-' + affix : ''));\n\n if(affix === 'top') {\n unpin = null;\n if(setWidth) {\n element.css('width', '');\n }\n if (options.inlineStyles) {\n element.css('position', (options.offsetParent) ? '' : 'relative');\n element.css('top', '');\n }\n } else if(affix === 'bottom') {\n if (options.offsetUnpin) {\n unpin = -(options.offsetUnpin * 1);\n }\n else {\n // Calculate unpin threshold when affixed to bottom.\n // Hopefully the browser scrolls pixel by pixel.\n unpin = position.top - scrollTop;\n }\n if(setWidth) {\n element.css('width', '');\n }\n if (options.inlineStyles) {\n element.css('position', (options.offsetParent) ? '' : 'relative');\n element.css('top', (options.offsetParent) ? '' : ((bodyEl[0].offsetHeight - offsetBottom - elementHeight - initialOffsetTop) + 'px'));\n }\n } else { // affix === 'middle'\n unpin = null;\n if(setWidth) {\n element.css('width', element[0].offsetWidth + 'px');\n }\n if (options.inlineStyles) {\n element.css('position', 'fixed');\n element.css('top', initialAffixTop + 'px');\n }\n }\n\n };\n\n $affix.$onResize = function() {\n $affix.$parseOffsets();\n $affix.checkPosition();\n };\n $affix.$debouncedOnResize = debounce($affix.$onResize, 50);\n\n $affix.$parseOffsets = function() {\n var initialPosition = element.css('position');\n // Reset position to calculate correct offsetTop\n if (options.inlineStyles){\n element.css('position', (options.offsetParent) ? '' : 'relative');\n }\n\n if(options.offsetTop) {\n if(options.offsetTop === 'auto') {\n options.offsetTop = '+0';\n }\n if(options.offsetTop.match(/^[-+]\\d+$/)) {\n initialAffixTop = - options.offsetTop * 1;\n if(options.offsetParent) {\n offsetTop = dimensions.offset(parent[0]).top + (options.offsetTop * 1);\n }\n else {\n offsetTop = dimensions.offset(element[0]).top - dimensions.css(element[0], 'marginTop', true) + (options.offsetTop * 1);\n }\n }\n else {\n offsetTop = options.offsetTop * 1;\n }\n }\n\n if(options.offsetBottom) {\n if(options.offsetParent && options.offsetBottom.match(/^[-+]\\d+$/)) {\n // add 1 pixel due to rounding problems...\n offsetBottom = getScrollHeight() - (dimensions.offset(parent[0]).top + dimensions.height(parent[0])) + (options.offsetBottom * 1) + 1;\n }\n else {\n offsetBottom = options.offsetBottom * 1;\n }\n }\n\n // Bring back the element's position after calculations\n if (options.inlineStyles){\n element.css('position', initialPosition);\n }\n };\n\n // Private methods\n\n function getRequiredAffixClass(unpin, position, elementHeight) {\n\n var scrollTop = getScrollTop();\n var scrollHeight = getScrollHeight();\n\n if(scrollTop <= offsetTop) {\n return 'top';\n } else if(unpin !== null && (scrollTop + unpin <= position.top)) {\n return 'middle';\n } else if(offsetBottom !== null && (position.top + elementHeight + initialAffixTop >= scrollHeight - offsetBottom)) {\n return 'bottom';\n } else {\n return 'middle';\n }\n\n }\n\n function getScrollTop() {\n return targetEl[0] === $window ? $window.pageYOffset : targetEl[0].scrollTop;\n }\n\n function getScrollHeight() {\n return targetEl[0] === $window ? $window.document.body.scrollHeight : targetEl[0].scrollHeight;\n }\n\n $affix.init();\n return $affix;\n\n }\n\n return AffixFactory;\n\n };\n\n })\n\n .directive('bsAffix', function($affix, $window) {\n\n return {\n restrict: 'EAC',\n require: '^?bsAffixTarget',\n link: function postLink(scope, element, attr, affixTarget) {\n\n var options = {scope: scope, target: affixTarget ? affixTarget.$element : angular.element($window)};\n angular.forEach(['offsetTop', 'offsetBottom', 'offsetParent', 'offsetUnpin', 'inlineStyles'], function(key) {\n if(angular.isDefined(attr[key])) {\n var option = attr[key];\n if (/true/i.test(option)) option = true;\n if (/false/i.test(option)) option = false;\n options[key] = option;\n }\n });\n\n var affix = $affix(element, options);\n scope.$on('$destroy', function() {\n affix && affix.destroy();\n options = null;\n affix = null;\n });\n\n }\n };\n\n })\n\n .directive('bsAffixTarget', function() {\n return {\n controller: function($element) {\n this.$element = $element;\n }\n };\n });\n","'use strict';\n\n// @BUG: following snippet won't compile correctly\n// @TODO: submit issue to core\n// ' ' +\n\nangular.module('mgcrea.ngStrap.alert', ['mgcrea.ngStrap.modal'])\n\n .provider('$alert', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'alert',\n prefixEvent: 'alert',\n placement: null,\n templateUrl: 'alert/alert.tpl.html',\n container: false,\n element: null,\n backdrop: false,\n keyboard: true,\n show: true,\n // Specific options\n duration: false,\n type: false,\n dismissable: true\n };\n\n this.$get = function($modal, $timeout) {\n\n function AlertFactory(config) {\n\n var $alert = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $alert = $modal(options);\n\n // Support scope as string options [/*title, content, */ type, dismissable]\n $alert.$scope.dismissable = !!options.dismissable;\n if(options.type) {\n $alert.$scope.type = options.type;\n }\n\n // Support auto-close duration\n var show = $alert.show;\n if(options.duration) {\n $alert.show = function() {\n show();\n $timeout(function() {\n $alert.hide();\n }, options.duration * 1000);\n };\n }\n\n return $alert;\n\n }\n\n return AlertFactory;\n\n };\n\n })\n\n .directive('bsAlert', function($window, $sce, $alert) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'keyboard', 'html', 'container', 'animation', 'duration', 'dismissable'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['keyboard', 'html', 'container', 'dismissable'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // overwrite inherited title value when no value specified\n // fix for angular 1.3.1 531a8de72c439d8ddd064874bf364c00cedabb11\n if (!scope.hasOwnProperty('title')){\n scope.title = '';\n }\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content', 'type'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsAlert && scope.$watch(attr.bsAlert, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize alert\n var alert = $alert(options);\n\n // Trigger\n element.on(attr.trigger || 'click', alert.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (alert) alert.destroy();\n options = null;\n alert = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.aside', ['mgcrea.ngStrap.modal'])\n\n .provider('$aside', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade-and-slide-right',\n prefixClass: 'aside',\n prefixEvent: 'aside',\n placement: 'right',\n templateUrl: 'aside/aside.tpl.html',\n contentTemplate: false,\n container: false,\n element: null,\n backdrop: true,\n keyboard: true,\n html: false,\n show: true\n };\n\n this.$get = function($modal) {\n\n function AsideFactory(config) {\n\n var $aside = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $aside = $modal(options);\n\n return $aside;\n\n }\n\n return AsideFactory;\n\n };\n\n })\n\n .directive('bsAside', function($window, $sce, $aside) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'backdrop', 'keyboard', 'html', 'container', 'animation'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['backdrop', 'keyboard', 'html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsAside && scope.$watch(attr.bsAside, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize aside\n var aside = $aside(options);\n\n // Trigger\n element.on(attr.trigger || 'click', aside.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (aside) aside.destroy();\n options = null;\n aside = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.button', [])\n\n .provider('$button', function() {\n\n var defaults = this.defaults = {\n activeClass:'active',\n toggleEvent:'click'\n };\n\n this.$get = function() {\n return {defaults: defaults};\n };\n\n })\n\n .directive('bsCheckboxGroup', function() {\n\n return {\n restrict: 'A',\n require: 'ngModel',\n compile: function postLink(element, attr) {\n element.attr('data-toggle', 'buttons');\n element.removeAttr('ng-model');\n var children = element[0].querySelectorAll('input[type=\"checkbox\"]');\n angular.forEach(children, function(child) {\n var childEl = angular.element(child);\n childEl.attr('bs-checkbox', '');\n childEl.attr('ng-model', attr.ngModel + '.' + childEl.attr('value'));\n });\n }\n\n };\n\n })\n\n .directive('bsCheckbox', function($button, $$rAF) {\n\n var defaults = $button.defaults;\n var constantValueRegExp = /^(true|false|\\d+)$/;\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n var options = defaults;\n\n // Support label > input[type=\"checkbox\"]\n var isInput = element[0].nodeName === 'INPUT';\n var activeElement = isInput ? element.parent() : element;\n\n var trueValue = angular.isDefined(attr.trueValue) ? attr.trueValue : true;\n if(constantValueRegExp.test(attr.trueValue)) {\n trueValue = scope.$eval(attr.trueValue);\n }\n var falseValue = angular.isDefined(attr.falseValue) ? attr.falseValue : false;\n if(constantValueRegExp.test(attr.falseValue)) {\n falseValue = scope.$eval(attr.falseValue);\n }\n\n // Parse exotic values\n var hasExoticValues = typeof trueValue !== 'boolean' || typeof falseValue !== 'boolean';\n if(hasExoticValues) {\n controller.$parsers.push(function(viewValue) {\n // console.warn('$parser', element.attr('ng-model'), 'viewValue', viewValue);\n return viewValue ? trueValue : falseValue;\n });\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n return angular.equals(modelValue, trueValue);\n });\n // Fix rendering for exotic values\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n controller.$render();\n });\n }\n\n // model -> view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var isActive = angular.equals(controller.$modelValue, trueValue);\n $$rAF(function() {\n if(isInput) element[0].checked = isActive;\n activeElement.toggleClass(options.activeClass, isActive);\n });\n };\n\n // view -> model\n element.bind(options.toggleEvent, function() {\n scope.$apply(function () {\n // console.warn('!click', element.attr('ng-model'), 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue, 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue);\n if(!isInput) {\n controller.$setViewValue(!activeElement.hasClass('active'));\n }\n if(!hasExoticValues) {\n controller.$render();\n }\n });\n });\n\n }\n\n };\n\n })\n\n .directive('bsRadioGroup', function() {\n\n return {\n restrict: 'A',\n require: 'ngModel',\n compile: function postLink(element, attr) {\n element.attr('data-toggle', 'buttons');\n element.removeAttr('ng-model');\n var children = element[0].querySelectorAll('input[type=\"radio\"]');\n angular.forEach(children, function(child) {\n angular.element(child).attr('bs-radio', '');\n angular.element(child).attr('ng-model', attr.ngModel);\n });\n }\n\n };\n\n })\n\n .directive('bsRadio', function($button, $$rAF) {\n\n var defaults = $button.defaults;\n var constantValueRegExp = /^(true|false|\\d+)$/;\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n var options = defaults;\n\n // Support `label > input[type=\"radio\"]` markup\n var isInput = element[0].nodeName === 'INPUT';\n var activeElement = isInput ? element.parent() : element;\n\n var value;\n attr.$observe('value', function(v) {\n value = constantValueRegExp.test(v) ? scope.$eval(v) : v;\n controller.$render();\n });\n\n // model -> view\n controller.$render = function () {\n // console.warn('$render', element.attr('value'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var isActive = angular.equals(controller.$modelValue, value);\n $$rAF(function() {\n if(isInput) element[0].checked = isActive;\n activeElement.toggleClass(options.activeClass, isActive);\n });\n };\n\n // view -> model\n element.bind(options.toggleEvent, function() {\n scope.$apply(function () {\n // console.warn('!click', element.attr('value'), 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue, 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue);\n controller.$setViewValue(value);\n controller.$render();\n });\n });\n\n }\n\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.collapse', [])\n\n .provider('$collapse', function() {\n\n var defaults = this.defaults = {\n animation: 'am-collapse',\n disallowToggle: false,\n activeClass: 'in',\n startCollapsed: false,\n allowMultiple: false\n };\n\n var controller = this.controller = function($scope, $element, $attrs) {\n var self = this;\n\n // Attributes options\n self.$options = angular.copy(defaults);\n angular.forEach(['animation', 'disallowToggle', 'activeClass', 'startCollapsed', 'allowMultiple'], function (key) {\n if(angular.isDefined($attrs[key])) self.$options[key] = $attrs[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['disallowToggle', 'startCollapsed', 'allowMultiple'], function(key) {\n if(angular.isDefined($attrs[key]) && falseValueRegExp.test($attrs[key])) {\n self.$options[key] = false;\n }\n });\n\n self.$toggles = [];\n self.$targets = [];\n\n self.$viewChangeListeners = [];\n\n self.$registerToggle = function(element) {\n self.$toggles.push(element);\n };\n self.$registerTarget = function(element) {\n self.$targets.push(element);\n };\n\n self.$unregisterToggle = function(element) {\n var index = self.$toggles.indexOf(element);\n // remove toggle from $toggles array\n self.$toggles.splice(index, 1);\n };\n self.$unregisterTarget = function(element) {\n var index = self.$targets.indexOf(element);\n\n // remove element from $targets array\n self.$targets.splice(index, 1);\n\n if (self.$options.allowMultiple) {\n // remove target index from $active array values\n deactivateItem(element);\n }\n\n // fix active item indexes\n fixActiveItemIndexes(index);\n\n self.$viewChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n // use array to store all the currently open panels\n self.$targets.$active = !self.$options.startCollapsed ? [0] : [];\n self.$setActive = $scope.$setActive = function(value) {\n if(angular.isArray(value)) {\n self.$targets.$active = value;\n }\n else if(!self.$options.disallowToggle) {\n // toogle element active status\n isActive(value) ? deactivateItem(value) : activateItem(value);\n } else {\n activateItem(value);\n }\n\n self.$viewChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n self.$activeIndexes = function() {\n return self.$options.allowMultiple ? self.$targets.$active :\n self.$targets.$active.length === 1 ? self.$targets.$active[0] : -1;\n };\n\n function fixActiveItemIndexes(index) {\n // item with index was removed, so we\n // need to adjust other items index values\n var activeIndexes = self.$targets.$active;\n for(var i = 0; i < activeIndexes.length; i++) {\n if (index < activeIndexes[i]) {\n activeIndexes[i] = activeIndexes[i] - 1;\n }\n\n // the last item is active, so we need to\n // adjust its index\n if (activeIndexes[i] === self.$targets.length) {\n activeIndexes[i] = self.$targets.length - 1;\n }\n }\n }\n\n function isActive(value) {\n var activeItems = self.$targets.$active;\n return activeItems.indexOf(value) === -1 ? false : true;\n }\n\n function deactivateItem(value) {\n var index = self.$targets.$active.indexOf(value);\n if (index !== -1) {\n self.$targets.$active.splice(index, 1);\n }\n }\n\n function activateItem(value) {\n if (!self.$options.allowMultiple) {\n // remove current selected item\n self.$targets.$active.splice(0, 1);\n }\n\n if (self.$targets.$active.indexOf(value) === -1) {\n self.$targets.$active.push(value);\n }\n }\n\n };\n\n this.$get = function() {\n var $collapse = {};\n $collapse.defaults = defaults;\n $collapse.controller = controller;\n return $collapse;\n };\n\n })\n\n .directive('bsCollapse', function($window, $animate, $collapse) {\n\n var defaults = $collapse.defaults;\n\n return {\n require: ['?ngModel', 'bsCollapse'],\n controller: ['$scope', '$element', '$attrs', $collapse.controller],\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n if(ngModelCtrl) {\n\n // Update the modelValue following\n bsCollapseCtrl.$viewChangeListeners.push(function() {\n ngModelCtrl.$setViewValue(bsCollapseCtrl.$activeIndexes());\n });\n\n // modelValue -> $formatters -> viewValue\n ngModelCtrl.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n if (angular.isArray(modelValue)) {\n // model value is an array, so just replace\n // the active items directly\n bsCollapseCtrl.$setActive(modelValue);\n }\n else {\n var activeIndexes = bsCollapseCtrl.$activeIndexes();\n\n if (angular.isArray(activeIndexes)) {\n // we have an array of selected indexes\n if (activeIndexes.indexOf(modelValue * 1) === -1) {\n // item with modelValue index is not active\n bsCollapseCtrl.$setActive(modelValue * 1);\n }\n }\n else if (activeIndexes !== modelValue * 1) {\n bsCollapseCtrl.$setActive(modelValue * 1);\n }\n }\n return modelValue;\n });\n\n }\n\n }\n };\n\n })\n\n .directive('bsCollapseToggle', function() {\n\n return {\n require: ['^?ngModel', '^bsCollapse'],\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n // Add base attr\n element.attr('data-toggle', 'collapse');\n\n // Push pane to parent bsCollapse controller\n bsCollapseCtrl.$registerToggle(element);\n\n // remove toggle from collapse controller when toggle is destroyed\n scope.$on('$destroy', function() {\n bsCollapseCtrl.$unregisterToggle(element);\n });\n\n element.on('click', function() {\n var index = attrs.bsCollapseToggle && attrs.bsCollapseToggle !== 'bs-collapse-toggle' ? attrs.bsCollapseToggle : bsCollapseCtrl.$toggles.indexOf(element);\n bsCollapseCtrl.$setActive(index * 1);\n scope.$apply();\n });\n\n }\n };\n\n })\n\n .directive('bsCollapseTarget', function($animate) {\n\n return {\n require: ['^?ngModel', '^bsCollapse'],\n // scope: true,\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n // Add base class\n element.addClass('collapse');\n\n // Add animation class\n if(bsCollapseCtrl.$options.animation) {\n element.addClass(bsCollapseCtrl.$options.animation);\n }\n\n // Push pane to parent bsCollapse controller\n bsCollapseCtrl.$registerTarget(element);\n\n // remove pane target from collapse controller when target is destroyed\n scope.$on('$destroy', function() {\n bsCollapseCtrl.$unregisterTarget(element);\n });\n\n function render() {\n var index = bsCollapseCtrl.$targets.indexOf(element);\n var active = bsCollapseCtrl.$activeIndexes();\n var action = 'removeClass';\n if (angular.isArray(active)) {\n if (active.indexOf(index) !== -1) {\n action = 'addClass';\n }\n }\n else if (index === active) {\n action = 'addClass';\n }\n\n $animate[action](element, bsCollapseCtrl.$options.activeClass);\n }\n\n bsCollapseCtrl.$viewChangeListeners.push(function() {\n render();\n });\n render();\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.datepicker', [\n 'mgcrea.ngStrap.helpers.dateParser',\n 'mgcrea.ngStrap.helpers.dateFormatter',\n 'mgcrea.ngStrap.tooltip'])\n\n .provider('$datepicker', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n //uncommenting the following line will break backwards compatability\n // prefixEvent: 'datepicker',\n prefixClass: 'datepicker',\n placement: 'bottom-left',\n templateUrl: 'datepicker/datepicker.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n // lang: $locale.id,\n useNative: false,\n dateType: 'date',\n dateFormat: 'shortDate',\n timezone: null,\n modelDateFormat: null,\n dayFormat: 'dd',\n monthFormat: 'MMM',\n yearFormat: 'yyyy',\n monthTitleFormat: 'MMMM yyyy',\n yearTitleFormat: 'yyyy',\n strictFormat: false,\n autoclose: false,\n minDate: -Infinity,\n maxDate: +Infinity,\n startView: 0,\n minView: 0,\n startWeek: 0,\n daysOfWeekDisabled: '',\n iconLeft: 'glyphicon glyphicon-chevron-left',\n iconRight: 'glyphicon glyphicon-chevron-right'\n };\n\n this.$get = function($window, $document, $rootScope, $sce, $dateFormatter, datepickerViews, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n if(!defaults.lang) defaults.lang = $dateFormatter.getDefaultLocale();\n\n function DatepickerFactory(element, controller, config) {\n\n var $datepicker = $tooltip(element, angular.extend({}, defaults, config));\n var parentScope = config.scope;\n var options = $datepicker.$options;\n var scope = $datepicker.$scope;\n if(options.startView) options.startView -= options.minView;\n\n // View vars\n\n var pickerViews = datepickerViews($datepicker);\n $datepicker.$views = pickerViews.views;\n var viewDate = pickerViews.viewDate;\n scope.$mode = options.startView;\n scope.$iconLeft = options.iconLeft;\n scope.$iconRight = options.iconRight;\n var $picker = $datepicker.$views[scope.$mode];\n\n // Scope methods\n\n scope.$select = function(date) {\n $datepicker.select(date);\n };\n scope.$selectPane = function(value) {\n $datepicker.$selectPane(value);\n };\n scope.$toggleMode = function() {\n $datepicker.setMode((scope.$mode + 1) % $datepicker.$views.length);\n };\n\n // Public methods\n\n $datepicker.update = function(date) {\n // console.warn('$datepicker.update() newValue=%o', date);\n if(angular.isDate(date) && !isNaN(date.getTime())) {\n $datepicker.$date = date;\n $picker.update.call($picker, date);\n }\n // Build only if pristine\n $datepicker.$build(true);\n };\n\n $datepicker.updateDisabledDates = function(dateRanges) {\n options.disabledDateRanges = dateRanges;\n for(var i = 0, l = scope.rows.length; i < l; i++) {\n angular.forEach(scope.rows[i], $datepicker.$setDisabledEl);\n }\n };\n\n $datepicker.select = function(date, keep) {\n // console.warn('$datepicker.select', date, scope.$mode);\n if(!angular.isDate(controller.$dateValue)) controller.$dateValue = new Date(date);\n if(!scope.$mode || keep) {\n controller.$setViewValue(angular.copy(date));\n controller.$render();\n if(options.autoclose && !keep) {\n $timeout(function() { $datepicker.hide(true); });\n }\n } else {\n angular.extend(viewDate, {year: date.getFullYear(), month: date.getMonth(), date: date.getDate()});\n $datepicker.setMode(scope.$mode - 1);\n $datepicker.$build();\n }\n };\n\n $datepicker.setMode = function(mode) {\n // console.warn('$datepicker.setMode', mode);\n scope.$mode = mode;\n $picker = $datepicker.$views[scope.$mode];\n $datepicker.$build();\n };\n\n // Protected methods\n\n $datepicker.$build = function(pristine) {\n // console.warn('$datepicker.$build() viewDate=%o', viewDate);\n if(pristine === true && $picker.built) return;\n if(pristine === false && !$picker.built) return;\n $picker.build.call($picker);\n };\n\n $datepicker.$updateSelected = function() {\n for(var i = 0, l = scope.rows.length; i < l; i++) {\n angular.forEach(scope.rows[i], updateSelected);\n }\n };\n\n $datepicker.$isSelected = function(date) {\n return $picker.isSelected(date);\n };\n\n $datepicker.$setDisabledEl = function(el) {\n el.disabled = $picker.isDisabled(el.date);\n };\n\n $datepicker.$selectPane = function(value) {\n var steps = $picker.steps;\n // set targetDate to first day of month to avoid problems with\n // date values rollover. This assumes the viewDate does not\n // depend on the day of the month\n var targetDate = new Date(Date.UTC(viewDate.year + ((steps.year || 0) * value), viewDate.month + ((steps.month || 0) * value), 1));\n angular.extend(viewDate, {year: targetDate.getUTCFullYear(), month: targetDate.getUTCMonth(), date: targetDate.getUTCDate()});\n $datepicker.$build();\n };\n\n $datepicker.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n if(targetEl[0].nodeName.toLowerCase() !== 'button') {\n targetEl = targetEl.parent();\n }\n targetEl.triggerHandler('click');\n }\n };\n\n $datepicker.$onKeyDown = function(evt) {\n if (!/(38|37|39|40|13)/.test(evt.keyCode) || evt.shiftKey || evt.altKey) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n if(evt.keyCode === 13) {\n if(!scope.$mode) {\n return $datepicker.hide(true);\n } else {\n return scope.$apply(function() { $datepicker.setMode(scope.$mode - 1); });\n }\n }\n\n // Navigate with keyboard\n $picker.onKeyDown(evt);\n parentScope.$digest();\n };\n\n // Private\n\n function updateSelected(el) {\n el.selected = $datepicker.$isSelected(el.date);\n }\n\n function focusElement() {\n element[0].focus();\n }\n\n // Overrides\n\n var _init = $datepicker.init;\n $datepicker.init = function() {\n if(isNative && options.useNative) {\n element.prop('type', 'date');\n element.css('-webkit-appearance', 'textfield');\n return;\n } else if(isTouch) {\n element.prop('type', 'text');\n element.attr('readonly', 'true');\n element.on('click', focusElement);\n }\n _init();\n };\n\n var _destroy = $datepicker.destroy;\n $datepicker.destroy = function() {\n if(isNative && options.useNative) {\n element.off('click', focusElement);\n }\n _destroy();\n };\n\n var _show = $datepicker.show;\n $datepicker.show = function() {\n _show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n // if $datepicker is no longer showing, don't setup events\n if(!$datepicker.$isShown) return;\n $datepicker.$element.on(isTouch ? 'touchstart' : 'mousedown', $datepicker.$onMouseDown);\n if(options.keyboard) {\n element.on('keydown', $datepicker.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $datepicker.hide;\n $datepicker.hide = function(blur) {\n if(!$datepicker.$isShown) return;\n $datepicker.$element.off(isTouch ? 'touchstart' : 'mousedown', $datepicker.$onMouseDown);\n if(options.keyboard) {\n element.off('keydown', $datepicker.$onKeyDown);\n }\n _hide(blur);\n };\n\n return $datepicker;\n\n }\n\n DatepickerFactory.defaults = defaults;\n return DatepickerFactory;\n\n };\n\n })\n\n .directive('bsDatepicker', function($window, $parse, $q, $dateFormatter, $dateParser, $datepicker) {\n\n var defaults = $datepicker.defaults;\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'autoclose', 'dateType', 'dateFormat', 'timezone', 'modelDateFormat', 'dayFormat', 'strictFormat', 'startWeek', 'startDate', 'useNative', 'lang', 'startView', 'minView', 'iconLeft', 'iconRight', 'daysOfWeekDisabled', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoclose', 'useNative'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!datepicker || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(datepicker),?/i);\n newValue === true ? datepicker.show() : datepicker.hide();\n });\n\n // Initialize datepicker\n var datepicker = $datepicker(element, controller, options);\n options = datepicker.$options;\n // Set expected iOS format\n if(isNative && options.useNative) options.dateFormat = 'yyyy-MM-dd';\n\n var lang = options.lang;\n\n var formatDate = function(date, format) {\n return $dateFormatter.formatDate(date, format, lang);\n };\n\n var dateParser = $dateParser({format: options.dateFormat, lang: lang, strict: options.strictFormat});\n\n // Observe attributes for changes\n angular.forEach(['minDate', 'maxDate'], function(key) {\n // console.warn('attr.$observe(%s)', key, attr[key]);\n angular.isDefined(attr[key]) && attr.$observe(key, function(newValue) {\n // console.warn('attr.$observe(%s)=%o', key, newValue);\n datepicker.$options[key] = dateParser.getDateForAttribute(key, newValue);\n // Build only if dirty\n !isNaN(datepicker.$options[key]) && datepicker.$build(false);\n validateAgainstMinMaxDate(controller.$dateValue);\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n datepicker.update(controller.$dateValue);\n }, true);\n\n // Normalize undefined/null/empty array,\n // so that we don't treat changing from undefined->null as a change.\n function normalizeDateRanges(ranges) {\n if (!ranges || !ranges.length) return null;\n return ranges;\n }\n\n if (angular.isDefined(attr.disabledDates)) {\n scope.$watch(attr.disabledDates, function(disabledRanges, previousValue) {\n disabledRanges = normalizeDateRanges(disabledRanges);\n previousValue = normalizeDateRanges(previousValue);\n\n if (disabledRanges) {\n datepicker.updateDisabledDates(disabledRanges);\n }\n });\n }\n\n function validateAgainstMinMaxDate(parsedDate) {\n if (!angular.isDate(parsedDate)) return;\n var isMinValid = isNaN(datepicker.$options.minDate) || parsedDate.getTime() >= datepicker.$options.minDate;\n var isMaxValid = isNaN(datepicker.$options.maxDate) || parsedDate.getTime() <= datepicker.$options.maxDate;\n var isValid = isMinValid && isMaxValid;\n controller.$setValidity('date', isValid);\n controller.$setValidity('min', isMinValid);\n controller.$setValidity('max', isMaxValid);\n // Only update the model when we have a valid date\n if(isValid) controller.$dateValue = parsedDate;\n }\n\n // viewValue -> $parsers -> modelValue\n controller.$parsers.unshift(function(viewValue) {\n // console.warn('$parser(\"%s\"): viewValue=%o', element.attr('ng-model'), viewValue);\n var date;\n // Null values should correctly reset the model value & validity\n if(!viewValue) {\n controller.$setValidity('date', true);\n // BREAKING CHANGE:\n // return null (not undefined) when input value is empty, so angularjs 1.3\n // ngModelController can go ahead and run validators, like ngRequired\n return null;\n }\n var parsedDate = dateParser.parse(viewValue, controller.$dateValue);\n if(!parsedDate || isNaN(parsedDate.getTime())) {\n controller.$setValidity('date', false);\n // return undefined, causes ngModelController to\n // invalidate model value\n return;\n } else {\n validateAgainstMinMaxDate(parsedDate);\n }\n\n if(options.dateType === 'string') {\n date = dateParser.timezoneOffsetAdjust(parsedDate, options.timezone, true);\n return formatDate(date, options.modelDateFormat || options.dateFormat);\n }\n date = dateParser.timezoneOffsetAdjust(controller.$dateValue, options.timezone, true);\n if(options.dateType === 'number') {\n return date.getTime();\n } else if(options.dateType === 'unix') {\n return date.getTime() / 1000;\n } else if(options.dateType === 'iso') {\n return date.toISOString();\n } else {\n return new Date(date);\n }\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var date;\n if(angular.isUndefined(modelValue) || modelValue === null) {\n date = NaN;\n } else if(angular.isDate(modelValue)) {\n date = modelValue;\n } else if(options.dateType === 'string') {\n date = dateParser.parse(modelValue, null, options.modelDateFormat);\n } else if(options.dateType === 'unix') {\n date = new Date(modelValue * 1000);\n } else {\n date = new Date(modelValue);\n }\n // Setup default value?\n // if(isNaN(date.getTime())) {\n // var today = new Date();\n // date = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0, 0);\n // }\n controller.$dateValue = dateParser.timezoneOffsetAdjust(date, options.timezone);\n return getDateFormattedString();\n });\n\n // viewValue -> element\n controller.$render = function() {\n // console.warn('$render(\"%s\"): viewValue=%o', element.attr('ng-model'), controller.$viewValue);\n element.val(getDateFormattedString());\n };\n\n function getDateFormattedString() {\n return !controller.$dateValue || isNaN(controller.$dateValue.getTime()) ? '' : formatDate(controller.$dateValue, options.dateFormat);\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if(datepicker) datepicker.destroy();\n options = null;\n datepicker = null;\n });\n\n }\n };\n\n })\n\n .provider('datepickerViews', function() {\n\n var defaults = this.defaults = {\n dayFormat: 'dd',\n daySplit: 7\n };\n\n // Split array into smaller arrays\n function split(arr, size) {\n var arrays = [];\n while(arr.length > 0) {\n arrays.push(arr.splice(0, size));\n }\n return arrays;\n }\n\n // Modulus operator\n function mod(n, m) {\n return ((n % m) + m) % m;\n }\n\n this.$get = function($dateFormatter, $dateParser, $sce) {\n\n return function(picker) {\n\n var scope = picker.$scope;\n var options = picker.$options;\n\n var lang = options.lang;\n var formatDate = function(date, format) {\n return $dateFormatter.formatDate(date, format, lang);\n };\n var dateParser = $dateParser({format: options.dateFormat, lang: lang, strict: options.strictFormat});\n\n var weekDaysMin = $dateFormatter.weekdaysShort(lang);\n var weekDaysLabels = weekDaysMin.slice(options.startWeek).concat(weekDaysMin.slice(0, options.startWeek));\n var weekDaysLabelsHtml = $sce.trustAsHtml('' + weekDaysLabels.join('') + '');\n\n var startDate = picker.$date || (options.startDate ? dateParser.getDateForAttribute('startDate', options.startDate) : new Date());\n var viewDate = {year: startDate.getFullYear(), month: startDate.getMonth(), date: startDate.getDate()};\n\n var views = [{\n format: options.dayFormat,\n split: 7,\n steps: { month: 1 },\n update: function(date, force) {\n if(!this.built || force || date.getFullYear() !== viewDate.year || date.getMonth() !== viewDate.month) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getDate() !== viewDate.date || date.getDate() === 1) {\n // chaging picker current month will cause viewDate.date to be set to first day of the month,\n // in $datepicker.$selectPane, so picker would not update selected day display if\n // user picks first day of the new month.\n // As a workaround, we are always forcing update when picked date is first day of month.\n viewDate.date = picker.$date.getDate();\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstDayOfMonth = new Date(viewDate.year, viewDate.month, 1), firstDayOfMonthOffset = firstDayOfMonth.getTimezoneOffset();\n var firstDate = new Date(+firstDayOfMonth - mod(firstDayOfMonth.getDay() - options.startWeek, 7) * 864e5), firstDateOffset = firstDate.getTimezoneOffset();\n var today = dateParser.timezoneOffsetAdjust(new Date(), options.timezone).toDateString();\n // Handle daylight time switch\n if(firstDateOffset !== firstDayOfMonthOffset) firstDate = new Date(+firstDate + (firstDateOffset - firstDayOfMonthOffset) * 60e3);\n var days = [], day;\n for(var i = 0; i < 42; i++) { // < 7 * 6\n day = dateParser.daylightSavingAdjust(new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + i));\n days.push({date: day, isToday: day.toDateString() === today, label: formatDate(day, this.format), selected: picker.$date && this.isSelected(day), muted: day.getMonth() !== viewDate.month, disabled: this.isDisabled(day)});\n }\n scope.title = formatDate(firstDayOfMonth, options.monthTitleFormat);\n scope.showLabels = true;\n scope.labels = weekDaysLabelsHtml;\n scope.rows = split(days, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear() && date.getMonth() === picker.$date.getMonth() && date.getDate() === picker.$date.getDate();\n },\n isDisabled: function(date) {\n var time = date.getTime();\n\n // Disabled because of min/max date.\n if (time < options.minDate || time > options.maxDate) return true;\n\n // Disabled due to being a disabled day of the week\n if (options.daysOfWeekDisabled.indexOf(date.getDay()) !== -1) return true;\n\n // Disabled because of disabled date range.\n if (options.disabledDateRanges) {\n for (var i = 0; i < options.disabledDateRanges.length; i++) {\n if (time >= options.disabledDateRanges[i].start && time <= options.disabledDateRanges[i].end) {\n return true;\n }\n }\n }\n\n return false;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualTime = picker.$date.getTime();\n var newDate;\n\n if(evt.keyCode === 37) newDate = new Date(actualTime - 1 * 864e5);\n else if(evt.keyCode === 38) newDate = new Date(actualTime - 7 * 864e5);\n else if(evt.keyCode === 39) newDate = new Date(actualTime + 1 * 864e5);\n else if(evt.keyCode === 40) newDate = new Date(actualTime + 7 * 864e5);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }, {\n name: 'month',\n format: options.monthFormat,\n split: 4,\n steps: { year: 1 },\n update: function(date, force) {\n if(!this.built || date.getFullYear() !== viewDate.year) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getMonth() !== viewDate.month) {\n angular.extend(viewDate, {month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstMonth = new Date(viewDate.year, 0, 1);\n var months = [], month;\n for (var i = 0; i < 12; i++) {\n month = new Date(viewDate.year, i, 1);\n months.push({date: month, label: formatDate(month, this.format), selected: picker.$isSelected(month), disabled: this.isDisabled(month)});\n }\n scope.title = formatDate(month, options.yearTitleFormat);\n scope.showLabels = false;\n scope.rows = split(months, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear() && date.getMonth() === picker.$date.getMonth();\n },\n isDisabled: function(date) {\n var lastDate = +new Date(date.getFullYear(), date.getMonth() + 1, 0);\n return lastDate < options.minDate || date.getTime() > options.maxDate;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualMonth = picker.$date.getMonth();\n var newDate = new Date(picker.$date);\n\n if(evt.keyCode === 37) newDate.setMonth(actualMonth - 1);\n else if(evt.keyCode === 38) newDate.setMonth(actualMonth - 4);\n else if(evt.keyCode === 39) newDate.setMonth(actualMonth + 1);\n else if(evt.keyCode === 40) newDate.setMonth(actualMonth + 4);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }, {\n name: 'year',\n format: options.yearFormat,\n split: 4,\n steps: { year: 12 },\n update: function(date, force) {\n if(!this.built || force || parseInt(date.getFullYear()/20, 10) !== parseInt(viewDate.year/20, 10)) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getFullYear() !== viewDate.year) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstYear = viewDate.year - viewDate.year % (this.split * 3);\n var years = [], year;\n for (var i = 0; i < 12; i++) {\n year = new Date(firstYear + i, 0, 1);\n years.push({date: year, label: formatDate(year, this.format), selected: picker.$isSelected(year), disabled: this.isDisabled(year)});\n }\n scope.title = years[0].label + '-' + years[years.length - 1].label;\n scope.showLabels = false;\n scope.rows = split(years, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear();\n },\n isDisabled: function(date) {\n var lastDate = +new Date(date.getFullYear() + 1, 0, 0);\n return lastDate < options.minDate || date.getTime() > options.maxDate;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualYear = picker.$date.getFullYear(),\n newDate = new Date(picker.$date);\n\n if(evt.keyCode === 37) newDate.setYear(actualYear - 1);\n else if(evt.keyCode === 38) newDate.setYear(actualYear - 4);\n else if(evt.keyCode === 39) newDate.setYear(actualYear + 1);\n else if(evt.keyCode === 40) newDate.setYear(actualYear + 4);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }];\n\n return {\n views: options.minView ? Array.prototype.slice.call(views, options.minView) : views,\n viewDate: viewDate\n };\n\n };\n\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.dropdown', ['mgcrea.ngStrap.tooltip'])\n\n .provider('$dropdown', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'dropdown',\n prefixEvent: 'dropdown',\n placement: 'bottom-left',\n templateUrl: 'dropdown/dropdown.tpl.html',\n trigger: 'click',\n container: false,\n keyboard: true,\n html: false,\n delay: 0\n };\n\n this.$get = function($window, $rootScope, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var matchesSelector = Element.prototype.matchesSelector || Element.prototype.webkitMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector;\n\n function DropdownFactory(element, config) {\n\n var $dropdown = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n var scope = $dropdown.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n $dropdown = $tooltip(element, options);\n var parentEl = element.parent();\n\n // Protected methods\n\n $dropdown.$onKeyDown = function(evt) {\n if (!/(38|40)/.test(evt.keyCode)) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // Retrieve focused index\n var items = angular.element($dropdown.$element[0].querySelectorAll('li:not(.divider) a'));\n if(!items.length) return;\n var index;\n angular.forEach(items, function(el, i) {\n if(matchesSelector && matchesSelector.call(el, ':focus')) index = i;\n });\n\n // Navigate with keyboard\n if(evt.keyCode === 38 && index > 0) index--;\n else if(evt.keyCode === 40 && index < items.length - 1) index++;\n else if(angular.isUndefined(index)) index = 0;\n items.eq(index)[0].focus();\n\n };\n\n // Overrides\n\n var show = $dropdown.show;\n $dropdown.show = function() {\n show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n options.keyboard && $dropdown.$element && $dropdown.$element.on('keydown', $dropdown.$onKeyDown);\n bodyEl.on('click', onBodyClick);\n }, 0, false);\n parentEl.hasClass('dropdown') && parentEl.addClass('open');\n };\n\n var hide = $dropdown.hide;\n $dropdown.hide = function() {\n if(!$dropdown.$isShown) return;\n options.keyboard && $dropdown.$element && $dropdown.$element.off('keydown', $dropdown.$onKeyDown);\n bodyEl.off('click', onBodyClick);\n parentEl.hasClass('dropdown') && parentEl.removeClass('open');\n hide();\n };\n\n var destroy = $dropdown.destroy;\n $dropdown.destroy = function() {\n bodyEl.off('click', onBodyClick);\n destroy();\n };\n\n // Private functions\n\n function onBodyClick(evt) {\n if(evt.target === element[0]) return;\n return evt.target !== element[0] && $dropdown.hide();\n }\n\n return $dropdown;\n\n }\n\n return DropdownFactory;\n\n };\n\n })\n\n .directive('bsDropdown', function($window, $sce, $dropdown) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'id'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as an object\n attr.bsDropdown && scope.$watch(attr.bsDropdown, function(newValue, oldValue) {\n scope.content = newValue;\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!dropdown || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(dropdown),?/i);\n newValue === true ? dropdown.show() : dropdown.hide();\n });\n\n // Initialize dropdown\n var dropdown = $dropdown(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (dropdown) dropdown.destroy();\n options = null;\n dropdown = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.dateParser', [])\n\n.provider('$dateParser', function($localeProvider) {\n\n // define a custom ParseDate object to use instead of native Date\n // to avoid date values wrapping when setting date component values\n function ParseDate() {\n this.year = 1970;\n this.month = 0;\n this.day = 1;\n this.hours = 0;\n this.minutes = 0;\n this.seconds = 0;\n this.milliseconds = 0;\n }\n\n ParseDate.prototype.setMilliseconds = function(value) { this.milliseconds = value; };\n ParseDate.prototype.setSeconds = function(value) { this.seconds = value; };\n ParseDate.prototype.setMinutes = function(value) { this.minutes = value; };\n ParseDate.prototype.setHours = function(value) { this.hours = value; };\n ParseDate.prototype.getHours = function() { return this.hours; };\n ParseDate.prototype.setDate = function(value) { this.day = value; };\n ParseDate.prototype.setMonth = function(value) { this.month = value; };\n ParseDate.prototype.setFullYear = function(value) { this.year = value; };\n ParseDate.prototype.fromDate = function(value) {\n this.year = value.getFullYear();\n this.month = value.getMonth();\n this.day = value.getDate();\n this.hours = value.getHours();\n this.minutes = value.getMinutes();\n this.seconds = value.getSeconds();\n this.milliseconds = value.getMilliseconds();\n return this;\n };\n\n ParseDate.prototype.toDate = function() {\n return new Date(this.year, this.month, this.day, this.hours, this.minutes, this.seconds, this.milliseconds);\n };\n\n var proto = ParseDate.prototype;\n\n function noop() {\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function indexOfCaseInsensitive(array, value) {\n var len = array.length, str=value.toString().toLowerCase();\n for (var i=0; i 12 when midnight changeover, but then cannot generate\n * midnight datetime, so jump to 1AM, otherwise reset.\n * @param date (Date) the date to check\n * @return (Date) the corrected date\n *\n * __ copied from jquery ui datepicker __\n */\n $dateParser.daylightSavingAdjust = function(date) {\n if (!date) {\n return null;\n }\n date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);\n return date;\n };\n\n /* Correct the date for timezone offset.\n * @param date (Date) the date to adjust\n * @param timezone (string) the timezone to adjust for\n * @param undo (boolean) to add or subtract timezone offset\n * @return (Date) the corrected date\n */\n $dateParser.timezoneOffsetAdjust = function(date, timezone, undo) {\n if (!date) {\n return null;\n }\n // Right now, only 'UTC' is supported.\n if (timezone && timezone === 'UTC') {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + (undo?-1:1)*date.getTimezoneOffset());\n }\n return date;\n };\n\n // Private functions\n\n function setMapForFormat(format) {\n var keys = Object.keys(setFnMap), i;\n var map = [], sortedMap = [];\n // Map to setFn\n var clonedFormat = format;\n for(i = 0; i < keys.length; i++) {\n if(format.split(keys[i]).length > 1) {\n var index = clonedFormat.search(keys[i]);\n format = format.split(keys[i]).join('');\n if(setFnMap[keys[i]]) {\n map[index] = setFnMap[keys[i]];\n }\n }\n }\n // Sort result map\n angular.forEach(map, function(v) {\n // conditional required since angular.forEach broke around v1.2.21\n // related pr: https://github.com/angular/angular.js/pull/8525\n if(v) sortedMap.push(v);\n });\n return sortedMap;\n }\n\n function escapeReservedSymbols(text) {\n return text.replace(/\\//g, '[\\\\/]').replace('/-/g', '[-]').replace(/\\./g, '[.]').replace(/\\\\s/g, '[\\\\s]');\n }\n\n function regExpForFormat(format) {\n var keys = Object.keys(regExpMap), i;\n\n var re = format;\n // Abstract replaces to avoid collisions\n for(i = 0; i < keys.length; i++) {\n re = re.split(keys[i]).join('${' + i + '}');\n }\n // Replace abstracted values\n for(i = 0; i < keys.length; i++) {\n re = re.split('${' + i + '}').join('(' + regExpMap[keys[i]] + ')');\n }\n format = escapeReservedSymbols(format);\n\n return new RegExp('^' + re + '$', ['i']);\n }\n\n $dateParser.init();\n return $dateParser;\n\n };\n\n return DateParserFactory;\n\n };\n\n});\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.debounce', [])\n\n// @source jashkenas/underscore\n// @url https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L693\n.factory('debounce', function($timeout) {\n return function(func, wait, immediate) {\n var timeout = null;\n return function() {\n var context = this,\n args = arguments,\n callNow = immediate && !timeout;\n if(timeout) {\n $timeout.cancel(timeout);\n }\n timeout = $timeout(function later() {\n timeout = null;\n if(!immediate) {\n func.apply(context, args);\n }\n }, wait, false);\n if(callNow) {\n func.apply(context, args);\n }\n return timeout;\n };\n };\n})\n\n\n// @source jashkenas/underscore\n// @url https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L661\n.factory('throttle', function($timeout) {\n return function(func, wait, options) {\n var timeout = null;\n options || (options = {});\n return function() {\n var context = this,\n args = arguments;\n if(!timeout) {\n if(options.leading !== false) {\n func.apply(context, args);\n }\n timeout = $timeout(function later() {\n timeout = null;\n if(options.trailing !== false) {\n func.apply(context, args);\n }\n }, wait, false);\n }\n };\n };\n});\n\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.dimensions', [])\n\n .factory('dimensions', function($document, $window) {\n\n var jqLite = angular.element;\n var fn = {};\n\n /**\n * Test the element nodeName\n * @param element\n * @param name\n */\n var nodeName = fn.nodeName = function(element, name) {\n return element.nodeName && element.nodeName.toLowerCase() === name.toLowerCase();\n };\n\n /**\n * Returns the element computed style\n * @param element\n * @param prop\n * @param extra\n */\n fn.css = function(element, prop, extra) {\n var value;\n if (element.currentStyle) { //IE\n value = element.currentStyle[prop];\n } else if (window.getComputedStyle) {\n value = window.getComputedStyle(element)[prop];\n } else {\n value = element.style[prop];\n }\n return extra === true ? parseFloat(value) || 0 : value;\n };\n\n /**\n * Provides read-only equivalent of jQuery's offset function:\n * @required-by bootstrap-tooltip, bootstrap-affix\n * @url http://api.jquery.com/offset/\n * @param element\n */\n fn.offset = function(element) {\n var boxRect = element.getBoundingClientRect();\n var docElement = element.ownerDocument;\n return {\n width: boxRect.width || element.offsetWidth,\n height: boxRect.height || element.offsetHeight,\n top: boxRect.top + (window.pageYOffset || docElement.documentElement.scrollTop) - (docElement.documentElement.clientTop || 0),\n left: boxRect.left + (window.pageXOffset || docElement.documentElement.scrollLeft) - (docElement.documentElement.clientLeft || 0)\n };\n };\n \n /**\n * Provides set equivalent of jQuery's offset function:\n * @required-by bootstrap-tooltip\n * @url http://api.jquery.com/offset/\n * @param element\n * @param options\n * @param i\n */\n fn.setOffset = function (element, options, i) {\n var curPosition,\n curLeft,\n curCSSTop,\n curTop,\n curOffset,\n curCSSLeft,\n calculatePosition,\n position = fn.css(element, 'position'),\n curElem = angular.element(element),\n props = {};\n \n // Set position first, in-case top/left are set even on static elem\n if (position === 'static') {\n element.style.position = 'relative';\n }\n \n curOffset = fn.offset(element);\n curCSSTop = fn.css(element, 'top');\n curCSSLeft = fn.css(element, 'left');\n calculatePosition = (position === 'absolute' || position === 'fixed') && \n (curCSSTop + curCSSLeft).indexOf('auto') > -1;\n \n // Need to be able to calculate position if either\n // top or left is auto and position is either absolute or fixed\n if (calculatePosition) {\n curPosition = fn.position(element);\n curTop = curPosition.top;\n curLeft = curPosition.left;\n } else {\n curTop = parseFloat(curCSSTop) || 0;\n curLeft = parseFloat(curCSSLeft) || 0;\n }\n \n if (angular.isFunction(options)) {\n options = options.call(element, i, curOffset);\n }\n \n if (options.top !== null ) {\n props.top = (options.top - curOffset.top) + curTop;\n }\n if ( options.left !== null ) {\n props.left = (options.left - curOffset.left) + curLeft;\n }\n\n if ('using' in options) {\n options.using.call(curElem, props);\n } else {\n curElem.css({\n top: props.top + 'px',\n left: props.left + 'px'\n });\n }\n };\n\n /**\n * Provides read-only equivalent of jQuery's position function\n * @required-by bootstrap-tooltip, bootstrap-affix\n * @url http://api.jquery.com/offset/\n * @param element\n */\n fn.position = function(element) {\n\n var offsetParentRect = {top: 0, left: 0},\n offsetParentElement,\n offset;\n\n // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent\n if (fn.css(element, 'position') === 'fixed') {\n\n // We assume that getBoundingClientRect is available when computed position is fixed\n offset = element.getBoundingClientRect();\n\n } else {\n\n // Get *real* offsetParentElement\n offsetParentElement = offsetParent(element);\n\n // Get correct offsets\n offset = fn.offset(element);\n if (!nodeName(offsetParentElement, 'html')) {\n offsetParentRect = fn.offset(offsetParentElement);\n }\n\n // Add offsetParent borders\n offsetParentRect.top += fn.css(offsetParentElement, 'borderTopWidth', true);\n offsetParentRect.left += fn.css(offsetParentElement, 'borderLeftWidth', true);\n }\n\n // Subtract parent offsets and element margins\n return {\n width: element.offsetWidth,\n height: element.offsetHeight,\n top: offset.top - offsetParentRect.top - fn.css(element, 'marginTop', true),\n left: offset.left - offsetParentRect.left - fn.css(element, 'marginLeft', true)\n };\n\n };\n\n /**\n * Returns the closest, non-statically positioned offsetParent of a given element\n * @required-by fn.position\n * @param element\n */\n var offsetParent = function offsetParentElement(element) {\n var docElement = element.ownerDocument;\n var offsetParent = element.offsetParent || docElement;\n if(nodeName(offsetParent, '#document')) return docElement.documentElement;\n while(offsetParent && !nodeName(offsetParent, 'html') && fn.css(offsetParent, 'position') === 'static') {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || docElement.documentElement;\n };\n\n /**\n * Provides equivalent of jQuery's height function\n * @required-by bootstrap-affix\n * @url http://api.jquery.com/height/\n * @param element\n * @param outer\n */\n fn.height = function(element, outer) {\n var value = element.offsetHeight;\n if(outer) {\n value += fn.css(element, 'marginTop', true) + fn.css(element, 'marginBottom', true);\n } else {\n value -= fn.css(element, 'paddingTop', true) + fn.css(element, 'paddingBottom', true) + fn.css(element, 'borderTopWidth', true) + fn.css(element, 'borderBottomWidth', true);\n }\n return value;\n };\n\n /**\n * Provides equivalent of jQuery's width function\n * @required-by bootstrap-affix\n * @url http://api.jquery.com/width/\n * @param element\n * @param outer\n */\n fn.width = function(element, outer) {\n var value = element.offsetWidth;\n if(outer) {\n value += fn.css(element, 'marginLeft', true) + fn.css(element, 'marginRight', true);\n } else {\n value -= fn.css(element, 'paddingLeft', true) + fn.css(element, 'paddingRight', true) + fn.css(element, 'borderLeftWidth', true) + fn.css(element, 'borderRightWidth', true);\n }\n return value;\n };\n\n return fn;\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.parseOptions', [])\n\n .provider('$parseOptions', function() {\n\n var defaults = this.defaults = {\n regexp: /^\\s*(.*?)(?:\\s+as\\s+(.*?))?(?:\\s+group\\s+by\\s+(.*))?\\s+for\\s+(?:([\\$\\w][\\$\\w]*)|(?:\\(\\s*([\\$\\w][\\$\\w]*)\\s*,\\s*([\\$\\w][\\$\\w]*)\\s*\\)))\\s+in\\s+(.*?)(?:\\s+track\\s+by\\s+(.*?))?$/\n };\n\n this.$get = function($parse, $q) {\n\n function ParseOptionsFactory(attr, config) {\n\n var $parseOptions = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n $parseOptions.$values = [];\n\n // Private vars\n var match, displayFn, valueName, keyName, groupByFn, valueFn, valuesFn;\n\n $parseOptions.init = function() {\n $parseOptions.$match = match = attr.match(options.regexp);\n displayFn = $parse(match[2] || match[1]),\n valueName = match[4] || match[6],\n keyName = match[5],\n groupByFn = $parse(match[3] || ''),\n valueFn = $parse(match[2] ? match[1] : valueName),\n valuesFn = $parse(match[7]);\n };\n\n $parseOptions.valuesFn = function(scope, controller) {\n var valuesPromise;\n try {\n // Might throw 'notarray' error since cea8e75\n valuesPromise = valuesFn(scope, controller);\n } catch(err) {\n valuesPromise = [];\n }\n return $q.when(valuesPromise)\n .then(function(values) {\n if(!angular.isArray(values)) {\n values = [];\n }\n $parseOptions.$values = values.length ? parseValues(values, scope) : [];\n return $parseOptions.$values;\n });\n };\n\n $parseOptions.displayValue = function(modelValue) {\n var scope = {};\n scope[valueName] = modelValue;\n return displayFn(scope);\n };\n\n // Private functions\n\n function parseValues(values, scope) {\n return values.map(function(match, index) {\n var locals = {}, label, value;\n locals[valueName] = match;\n label = displayFn(scope, locals);\n value = valueFn(scope, locals);\n return {label: label, value: value, index: index};\n });\n }\n\n $parseOptions.init();\n return $parseOptions;\n\n }\n\n return ParseOptionsFactory;\n\n };\n\n });\n","'use strict';\n\n(angular.version.minor < 3 && angular.version.dot < 14) && angular.module('ng')\n\n.factory('$$rAF', function($window, $timeout) {\n\n var requestAnimationFrame = $window.requestAnimationFrame ||\n $window.webkitRequestAnimationFrame ||\n $window.mozRequestAnimationFrame;\n\n var cancelAnimationFrame = $window.cancelAnimationFrame ||\n $window.webkitCancelAnimationFrame ||\n $window.mozCancelAnimationFrame ||\n $window.webkitCancelRequestAnimationFrame;\n\n var rafSupported = !!requestAnimationFrame;\n var raf = rafSupported ?\n function(fn) {\n var id = requestAnimationFrame(fn);\n return function() {\n cancelAnimationFrame(id);\n };\n } :\n function(fn) {\n var timer = $timeout(fn, 16.66, false); // 1000 / 60 = 16.666\n return function() {\n $timeout.cancel(timer);\n };\n };\n\n raf.supported = rafSupported;\n\n return raf;\n\n});\n\n// .factory('$$animateReflow', function($$rAF, $document) {\n\n// var bodyEl = $document[0].body;\n\n// return function(fn) {\n// //the returned function acts as the cancellation function\n// return $$rAF(function() {\n// //the line below will force the browser to perform a repaint\n// //so that all the animated elements within the animation frame\n// //will be properly updated and drawn on screen. This is\n// //required to perform multi-class CSS based animations with\n// //Firefox. DO NOT REMOVE THIS LINE.\n// var a = bodyEl.offsetWidth + 1;\n// fn();\n// });\n// };\n\n// });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.modal', ['mgcrea.ngStrap.core', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$modal', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n backdropAnimation: 'am-fade',\n prefixClass: 'modal',\n prefixEvent: 'modal',\n placement: 'top',\n templateUrl: 'modal/modal.tpl.html',\n template: '',\n contentTemplate: false,\n container: false,\n element: null,\n backdrop: true,\n keyboard: true,\n html: false,\n show: true\n };\n\n this.$get = function($window, $rootScope, $bsCompiler, $q, $templateCache, $http, $animate, $timeout, $sce, dimensions) {\n\n var forEach = angular.forEach;\n var trim = String.prototype.trim;\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n var bodyElement = angular.element($window.document.body);\n\n function ModalFactory(config) {\n\n var $modal = {};\n\n // Common vars\n var options = $modal.$options = angular.extend({}, defaults, config);\n var promise = $modal.$promise = $bsCompiler.compile(options);\n var scope = $modal.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n if(!options.element && !options.container) {\n options.container = 'body';\n }\n\n // Store $id to identify the triggering element in events\n // give priority to options.id, otherwise, try to use\n // element id if defined\n $modal.$id = options.id || options.element && options.element.attr('id') || '';\n\n // Support scope as string options\n forEach(['title', 'content'], function(key) {\n if(options[key]) scope[key] = $sce.trustAsHtml(options[key]);\n });\n\n // Provide scope helpers\n scope.$hide = function() {\n scope.$$postDigest(function() {\n $modal.hide();\n });\n };\n scope.$show = function() {\n scope.$$postDigest(function() {\n $modal.show();\n });\n };\n scope.$toggle = function() {\n scope.$$postDigest(function() {\n $modal.toggle();\n });\n };\n // Publish isShown as a protected var on scope\n $modal.$isShown = scope.$isShown = false;\n\n // Fetch, compile then initialize modal\n var compileData, modalElement, modalScope;\n var backdropElement = angular.element('
');\n backdropElement.css({position:'fixed', top:'0px', left:'0px', bottom:'0px', right:'0px', 'z-index': 1038});\n promise.then(function(data) {\n compileData = data;\n $modal.init();\n });\n\n $modal.init = function() {\n\n // Options: show\n if(options.show) {\n scope.$$postDigest(function() {\n $modal.show();\n });\n }\n\n };\n\n $modal.destroy = function() {\n\n // Remove element\n destroyModalElement();\n\n // remove backdrop element\n if(backdropElement) {\n backdropElement.remove();\n backdropElement = null;\n }\n\n // Destroy scope\n scope.$destroy();\n };\n\n $modal.show = function() {\n if($modal.$isShown) return;\n\n var parent, after;\n if(angular.isElement(options.container)) {\n parent = options.container;\n after = options.container[0].lastChild ? angular.element(options.container[0].lastChild) : null;\n } else {\n if (options.container) {\n parent = findElement(options.container);\n after = parent[0] && parent[0].lastChild ? angular.element(parent[0].lastChild) : null;\n } else {\n parent = null;\n after = options.element;\n }\n }\n\n // destroy any existing modal elements\n if(modalElement) destroyModalElement();\n\n // create a new scope, so we can destroy it and all child scopes\n // when destroying the modal element\n modalScope = $modal.$scope.$new();\n // Fetch a cloned element linked from template (noop callback is required)\n modalElement = $modal.$element = compileData.link(modalScope, function(clonedElement, scope) {});\n\n if(scope.$emit(options.prefixEvent + '.show.before', $modal).defaultPrevented) {\n return;\n }\n\n // Set the initial positioning.\n modalElement.css({display: 'block'}).addClass(options.placement);\n\n // Options: animation\n if(options.animation) {\n if(options.backdrop) {\n backdropElement.addClass(options.backdropAnimation);\n }\n modalElement.addClass(options.animation);\n }\n\n if(options.backdrop) {\n $animate.enter(backdropElement, bodyElement, null);\n }\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.enter(modalElement, parent, after, enterAnimateCallback);\n } else {\n $animate.enter(modalElement, parent, after).then(enterAnimateCallback);\n }\n\n $modal.$isShown = scope.$isShown = true;\n safeDigest(scope);\n // Focus once the enter-animation has started\n // Weird PhantomJS bug hack\n var el = modalElement[0];\n requestAnimationFrame(function() {\n el.focus();\n });\n\n bodyElement.addClass(options.prefixClass + '-open');\n if(options.animation) {\n bodyElement.addClass(options.prefixClass + '-with-' + options.animation);\n }\n\n // Bind events\n bindBackdropEvents();\n bindKeyboardEvents();\n };\n\n function enterAnimateCallback() {\n scope.$emit(options.prefixEvent + '.show', $modal);\n }\n\n $modal.hide = function() {\n if(!$modal.$isShown) return;\n\n if(scope.$emit(options.prefixEvent + '.hide.before', $modal).defaultPrevented) {\n return;\n }\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.leave(modalElement, leaveAnimateCallback);\n } else {\n $animate.leave(modalElement).then(leaveAnimateCallback);\n }\n\n if(options.backdrop) {\n $animate.leave(backdropElement);\n }\n $modal.$isShown = scope.$isShown = false;\n safeDigest(scope);\n\n // Unbind events\n unbindBackdropEvents();\n unbindKeyboardEvents();\n };\n\n function leaveAnimateCallback() {\n scope.$emit(options.prefixEvent + '.hide', $modal);\n bodyElement.removeClass(options.prefixClass + '-open');\n if(options.animation) {\n bodyElement.removeClass(options.prefixClass + '-with-' + options.animation);\n }\n }\n\n $modal.toggle = function() {\n\n $modal.$isShown ? $modal.hide() : $modal.show();\n\n };\n\n $modal.focus = function() {\n modalElement[0].focus();\n };\n\n // Protected methods\n\n $modal.$onKeyUp = function(evt) {\n\n if (evt.which === 27 && $modal.$isShown) {\n $modal.hide();\n evt.stopPropagation();\n }\n\n };\n\n function bindBackdropEvents() {\n if(options.backdrop) {\n modalElement.on('click', hideOnBackdropClick);\n backdropElement.on('click', hideOnBackdropClick);\n backdropElement.on('wheel', preventEventDefault);\n }\n }\n\n function unbindBackdropEvents() {\n if(options.backdrop) {\n modalElement.off('click', hideOnBackdropClick);\n backdropElement.off('click', hideOnBackdropClick);\n backdropElement.off('wheel', preventEventDefault);\n }\n }\n\n function bindKeyboardEvents() {\n if(options.keyboard) {\n modalElement.on('keyup', $modal.$onKeyUp);\n }\n }\n\n function unbindKeyboardEvents() {\n if(options.keyboard) {\n modalElement.off('keyup', $modal.$onKeyUp);\n }\n }\n\n // Private methods\n\n function hideOnBackdropClick(evt) {\n if(evt.target !== evt.currentTarget) return;\n options.backdrop === 'static' ? $modal.focus() : $modal.hide();\n }\n\n function preventEventDefault(evt) {\n evt.preventDefault();\n }\n\n function destroyModalElement() {\n if($modal.$isShown && modalElement !== null) {\n // un-bind events\n unbindBackdropEvents();\n unbindKeyboardEvents();\n }\n\n if(modalScope) {\n modalScope.$destroy();\n modalScope = null;\n }\n\n if(modalElement) {\n modalElement.remove();\n modalElement = $modal.$element = null;\n }\n }\n\n return $modal;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n return ModalFactory;\n\n };\n\n })\n\n .directive('bsModal', function($window, $sce, $modal) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'controller', 'placement', 'backdrop', 'keyboard', 'html', 'container', 'animation', 'id', 'prefixEvent', 'prefixClass'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['backdrop', 'keyboard', 'html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsModal && scope.$watch(attr.bsModal, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize modal\n var modal = $modal(options);\n\n // Trigger\n element.on(attr.trigger || 'click', modal.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (modal) modal.destroy();\n options = null;\n modal = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.navbar', [])\n\n .provider('$navbar', function() {\n\n var defaults = this.defaults = {\n activeClass: 'active',\n routeAttr: 'data-match-route',\n strict: false\n };\n\n this.$get = function() {\n return {defaults: defaults};\n };\n\n })\n\n .directive('bsNavbar', function($window, $location, $navbar) {\n\n var defaults = $navbar.defaults;\n\n return {\n restrict: 'A',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = angular.copy(defaults);\n angular.forEach(Object.keys(defaults), function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // Watch for the $location\n scope.$watch(function() {\n\n return $location.path();\n\n }, function(newValue, oldValue) {\n\n var liElements = element[0].querySelectorAll('li[' + options.routeAttr + ']');\n\n angular.forEach(liElements, function(li) {\n\n var liElement = angular.element(li);\n var pattern = liElement.attr(options.routeAttr).replace('/', '\\\\/');\n if(options.strict) {\n pattern = '^' + pattern + '$';\n }\n var regexp = new RegExp(pattern, 'i');\n\n if(regexp.test(newValue)) {\n liElement.addClass(options.activeClass);\n } else {\n liElement.removeClass(options.activeClass);\n }\n\n });\n\n });\n\n }\n\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.scrollspy', ['mgcrea.ngStrap.helpers.debounce', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$scrollspy', function() {\n\n // Pool of registered spies\n var spies = this.$$spies = {};\n\n var defaults = this.defaults = {\n debounce: 150,\n throttle: 100,\n offset: 100\n };\n\n this.$get = function($window, $document, $rootScope, dimensions, debounce, throttle) {\n\n var windowEl = angular.element($window);\n var docEl = angular.element($document.prop('documentElement'));\n var bodyEl = angular.element($window.document.body);\n\n // Helper functions\n\n function nodeName(element, name) {\n return element[0].nodeName && element[0].nodeName.toLowerCase() === name.toLowerCase();\n }\n\n function ScrollSpyFactory(config) {\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n if(!options.element) options.element = bodyEl;\n var isWindowSpy = nodeName(options.element, 'body');\n var scrollEl = isWindowSpy ? windowEl : options.element;\n var scrollId = isWindowSpy ? 'window' : options.id;\n\n // Use existing spy\n if(spies[scrollId]) {\n spies[scrollId].$$count++;\n return spies[scrollId];\n }\n\n var $scrollspy = {};\n\n // Private vars\n var unbindViewContentLoaded, unbindIncludeContentLoaded;\n var trackedElements = $scrollspy.$trackedElements = [];\n var sortedElements = [];\n var activeTarget;\n var debouncedCheckPosition;\n var throttledCheckPosition;\n var debouncedCheckOffsets;\n var viewportHeight;\n var scrollTop;\n\n $scrollspy.init = function() {\n\n // Setup internal ref counter\n this.$$count = 1;\n\n // Bind events\n debouncedCheckPosition = debounce(this.checkPosition, options.debounce);\n throttledCheckPosition = throttle(this.checkPosition, options.throttle);\n scrollEl.on('click', this.checkPositionWithEventLoop);\n windowEl.on('resize', debouncedCheckPosition);\n scrollEl.on('scroll', throttledCheckPosition);\n\n debouncedCheckOffsets = debounce(this.checkOffsets, options.debounce);\n unbindViewContentLoaded = $rootScope.$on('$viewContentLoaded', debouncedCheckOffsets);\n unbindIncludeContentLoaded = $rootScope.$on('$includeContentLoaded', debouncedCheckOffsets);\n debouncedCheckOffsets();\n\n // Register spy for reuse\n if(scrollId) {\n spies[scrollId] = $scrollspy;\n }\n\n };\n\n $scrollspy.destroy = function() {\n\n // Check internal ref counter\n this.$$count--;\n if(this.$$count > 0) {\n return;\n }\n\n // Unbind events\n scrollEl.off('click', this.checkPositionWithEventLoop);\n windowEl.off('resize', debouncedCheckPosition);\n scrollEl.off('scroll', throttledCheckPosition);\n unbindViewContentLoaded();\n unbindIncludeContentLoaded();\n if (scrollId) {\n delete spies[scrollId];\n }\n };\n\n $scrollspy.checkPosition = function() {\n\n // Not ready yet\n if(!sortedElements.length) return;\n\n // Calculate the scroll position\n scrollTop = (isWindowSpy ? $window.pageYOffset : scrollEl.prop('scrollTop')) || 0;\n\n // Calculate the viewport height for use by the components\n viewportHeight = Math.max($window.innerHeight, docEl.prop('clientHeight'));\n\n // Activate first element if scroll is smaller\n if(scrollTop < sortedElements[0].offsetTop && activeTarget !== sortedElements[0].target) {\n return $scrollspy.$activateElement(sortedElements[0]);\n }\n\n // Activate proper element\n for (var i = sortedElements.length; i--;) {\n if(angular.isUndefined(sortedElements[i].offsetTop) || sortedElements[i].offsetTop === null) continue;\n if(activeTarget === sortedElements[i].target) continue;\n if(scrollTop < sortedElements[i].offsetTop) continue;\n if(sortedElements[i + 1] && scrollTop > sortedElements[i + 1].offsetTop) continue;\n return $scrollspy.$activateElement(sortedElements[i]);\n }\n\n };\n\n $scrollspy.checkPositionWithEventLoop = function() {\n // IE 9 throws an error if we use 'this' instead of '$scrollspy'\n // in this setTimeout call\n setTimeout($scrollspy.checkPosition, 1);\n };\n\n // Protected methods\n\n $scrollspy.$activateElement = function(element) {\n if(activeTarget) {\n var activeElement = $scrollspy.$getTrackedElement(activeTarget);\n if(activeElement) {\n activeElement.source.removeClass('active');\n if(nodeName(activeElement.source, 'li') && nodeName(activeElement.source.parent().parent(), 'li')) {\n activeElement.source.parent().parent().removeClass('active');\n }\n }\n }\n activeTarget = element.target;\n element.source.addClass('active');\n if(nodeName(element.source, 'li') && nodeName(element.source.parent().parent(), 'li')) {\n element.source.parent().parent().addClass('active');\n }\n };\n\n $scrollspy.$getTrackedElement = function(target) {\n return trackedElements.filter(function(obj) {\n return obj.target === target;\n })[0];\n };\n\n // Track offsets behavior\n\n $scrollspy.checkOffsets = function() {\n\n angular.forEach(trackedElements, function(trackedElement) {\n var targetElement = document.querySelector(trackedElement.target);\n trackedElement.offsetTop = targetElement ? dimensions.offset(targetElement).top : null;\n if(options.offset && trackedElement.offsetTop !== null) trackedElement.offsetTop -= options.offset * 1;\n });\n\n sortedElements = trackedElements\n .filter(function(el) {\n return el.offsetTop !== null;\n })\n .sort(function(a, b) {\n return a.offsetTop - b.offsetTop;\n });\n\n debouncedCheckPosition();\n\n };\n\n $scrollspy.trackElement = function(target, source) {\n trackedElements.push({target: target, source: source});\n };\n\n $scrollspy.untrackElement = function(target, source) {\n var toDelete;\n for (var i = trackedElements.length; i--;) {\n if(trackedElements[i].target === target && trackedElements[i].source === source) {\n toDelete = i;\n break;\n }\n }\n trackedElements = trackedElements.splice(toDelete, 1);\n };\n\n $scrollspy.activate = function(i) {\n trackedElements[i].addClass('active');\n };\n\n // Initialize plugin\n\n $scrollspy.init();\n return $scrollspy;\n\n }\n\n return ScrollSpyFactory;\n\n };\n\n })\n\n .directive('bsScrollspy', function($rootScope, debounce, dimensions, $scrollspy) {\n\n return {\n restrict: 'EAC',\n link: function postLink(scope, element, attr) {\n\n var options = {scope: scope};\n angular.forEach(['offset', 'target'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n var scrollspy = $scrollspy(options);\n scrollspy.trackElement(options.target, element);\n\n scope.$on('$destroy', function() {\n if (scrollspy) {\n scrollspy.untrackElement(options.target, element);\n scrollspy.destroy();\n }\n options = null;\n scrollspy = null;\n });\n\n }\n };\n\n })\n\n\n .directive('bsScrollspyList', function($rootScope, debounce, dimensions, $scrollspy) {\n\n return {\n restrict: 'A',\n compile: function postLink(element, attr) {\n var children = element[0].querySelectorAll('li > a[href]');\n angular.forEach(children, function(child) {\n var childEl = angular.element(child);\n childEl.parent().attr('bs-scrollspy', '').attr('data-target', childEl.attr('href'));\n });\n }\n\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.select', ['mgcrea.ngStrap.tooltip', 'mgcrea.ngStrap.helpers.parseOptions'])\n\n .provider('$select', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'select',\n prefixEvent: '$select',\n placement: 'bottom-left',\n templateUrl: 'select/select.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n multiple: false,\n allNoneButtons: false,\n sort: true,\n caretHtml: ' ',\n placeholder: 'Choose among the following...',\n allText: 'All',\n noneText: 'None',\n maxLength: 3,\n maxLengthHtml: 'selected',\n iconCheckmark: 'glyphicon glyphicon-ok'\n };\n\n this.$get = function($window, $document, $rootScope, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n\n function SelectFactory(element, controller, config) {\n\n var $select = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $select = $tooltip(element, options);\n var scope = $select.$scope;\n\n scope.$matches = [];\n if (options.multiple) {\n scope.$activeIndex = [];\n }\n else {\n scope.$activeIndex = -1;\n }\n scope.$isMultiple = options.multiple;\n scope.$showAllNoneButtons = options.allNoneButtons && options.multiple;\n scope.$iconCheckmark = options.iconCheckmark;\n scope.$allText = options.allText;\n scope.$noneText = options.noneText;\n\n scope.$activate = function(index) {\n scope.$$postDigest(function() {\n $select.activate(index);\n });\n };\n\n scope.$select = function(index, evt) {\n scope.$$postDigest(function() {\n $select.select(index);\n });\n };\n\n scope.$isVisible = function() {\n return $select.$isVisible();\n };\n\n scope.$isActive = function(index) {\n return $select.$isActive(index);\n };\n\n scope.$selectAll = function () {\n for (var i = 0; i < scope.$matches.length; i++) {\n if (!scope.$isActive(i)) {\n scope.$select(i);\n }\n }\n };\n\n scope.$selectNone = function () {\n for (var i = 0; i < scope.$matches.length; i++) {\n if (scope.$isActive(i)) {\n scope.$select(i);\n }\n }\n };\n\n // Public methods\n\n $select.update = function(matches) {\n scope.$matches = matches;\n $select.$updateActiveIndex();\n };\n\n $select.activate = function(index) {\n if(options.multiple) {\n $select.$isActive(index) ? scope.$activeIndex.splice(scope.$activeIndex.indexOf(index), 1) : scope.$activeIndex.push(index);\n if(options.sort) scope.$activeIndex.sort(function(a, b) { return a - b; }); // use numeric sort instead of default sort\n } else {\n scope.$activeIndex = index;\n }\n return scope.$activeIndex;\n };\n\n $select.select = function(index) {\n var value = scope.$matches[index].value;\n scope.$apply(function() {\n $select.activate(index);\n if(options.multiple) {\n controller.$setViewValue(scope.$activeIndex.map(function(index) {\n return scope.$matches[index].value;\n }));\n } else {\n controller.$setViewValue(value);\n // Hide if single select\n $select.hide();\n }\n });\n // Emit event\n scope.$emit(options.prefixEvent + '.select', value, index, $select);\n };\n\n // Protected methods\n\n $select.$updateActiveIndex = function() {\n if(controller.$modelValue && scope.$matches.length) {\n if(options.multiple && angular.isArray(controller.$modelValue)) {\n scope.$activeIndex = controller.$modelValue.map(function(value) {\n return $select.$getIndex(value);\n });\n } else {\n scope.$activeIndex = $select.$getIndex(controller.$modelValue);\n }\n } else if(scope.$activeIndex >= scope.$matches.length) {\n scope.$activeIndex = options.multiple ? [] : 0;\n }\n };\n\n $select.$isVisible = function() {\n if(!options.minLength || !controller) {\n return scope.$matches.length;\n }\n // minLength support\n return scope.$matches.length && controller.$viewValue.length >= options.minLength;\n };\n\n $select.$isActive = function(index) {\n if(options.multiple) {\n return scope.$activeIndex.indexOf(index) !== -1;\n } else {\n return scope.$activeIndex === index;\n }\n };\n\n $select.$getIndex = function(value) {\n var l = scope.$matches.length, i = l;\n if(!l) return;\n for(i = l; i--;) {\n if(scope.$matches[i].value === value) break;\n }\n if(i < 0) return;\n return i;\n };\n\n $select.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n targetEl.triggerHandler('click');\n }\n };\n\n $select.$onKeyDown = function(evt) {\n if (!/(9|13|38|40)/.test(evt.keyCode)) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // release focus on tab\n if (options.multiple && evt.keyCode === 9) {\n return $select.hide();\n }\n\n // Select with enter\n if(!options.multiple && (evt.keyCode === 13 || evt.keyCode === 9)) {\n return $select.select(scope.$activeIndex);\n }\n\n if (!options.multiple) {\n // Navigate with keyboard\n if(evt.keyCode === 38 && scope.$activeIndex > 0) scope.$activeIndex--;\n else if(evt.keyCode === 38 && scope.$activeIndex < 0) scope.$activeIndex = scope.$matches.length - 1;\n else if(evt.keyCode === 40 && scope.$activeIndex < scope.$matches.length - 1) scope.$activeIndex++;\n else if(angular.isUndefined(scope.$activeIndex)) scope.$activeIndex = 0;\n scope.$digest();\n }\n };\n\n // Overrides\n\n var _show = $select.show;\n $select.show = function() {\n _show();\n if(options.multiple) {\n $select.$element.addClass('select-multiple');\n }\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n $select.$element.on(isTouch ? 'touchstart' : 'mousedown', $select.$onMouseDown);\n if(options.keyboard) {\n element.on('keydown', $select.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $select.hide;\n $select.hide = function() {\n if(!options.multiple && !controller.$modelValue) {\n scope.$activeIndex = -1;\n }\n $select.$element.off(isTouch ? 'touchstart' : 'mousedown', $select.$onMouseDown);\n if(options.keyboard) {\n element.off('keydown', $select.$onKeyDown);\n }\n _hide(true);\n };\n\n return $select;\n\n }\n\n SelectFactory.defaults = defaults;\n return SelectFactory;\n\n };\n\n })\n\n .directive('bsSelect', function($window, $parse, $q, $select, $parseOptions) {\n\n var defaults = $select.defaults;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope, placeholder: defaults.placeholder};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'placeholder', 'allNoneButtons', 'maxLength', 'maxLengthHtml', 'allText', 'noneText', 'iconCheckmark', 'autoClose', 'id', 'sort', 'caretHtml', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'allNoneButtons', 'sort'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Only parse data-multiple. Angular sets existence attributes to true (multiple/required/etc), they apply this\n // to data-multiple as well for some reason, so we'll parse this ourselves and disregard multiple\n var dataMultiple = element.attr('data-multiple');\n if(angular.isDefined(dataMultiple)) {\n if(falseValueRegExp.test(dataMultiple))\n options.multiple = false;\n else\n options.multiple = dataMultiple;\n }\n\n // Add support for select markup\n if(element[0].nodeName.toLowerCase() === 'select') {\n var inputEl = element;\n inputEl.css('display', 'none');\n element = angular.element('');\n inputEl.after(element);\n }\n\n // Build proper bsOptions\n var parsedOptions = $parseOptions(attr.bsOptions);\n\n // Initialize select\n var select = $select(element, controller, options);\n\n // Watch bsOptions values before filtering for changes\n var watchedOptions = parsedOptions.$match[7].replace(/\\|.+/, '').trim();\n scope.$watchCollection(watchedOptions, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', watchedOptions, newValue, oldValue);\n parsedOptions.valuesFn(scope, controller)\n .then(function(values) {\n select.update(values);\n controller.$render();\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.ngModel, newValue, oldValue);\n select.$updateActiveIndex();\n controller.$render();\n }, true);\n\n // Model rendering in view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var selected, index;\n if(options.multiple && angular.isArray(controller.$modelValue)) {\n selected = controller.$modelValue.map(function(value) {\n index = select.$getIndex(value);\n return angular.isDefined(index) ? select.$scope.$matches[index].label : false;\n }).filter(angular.isDefined);\n if(selected.length > (options.maxLength || defaults.maxLength)) {\n selected = selected.length + ' ' + (options.maxLengthHtml || defaults.maxLengthHtml);\n } else {\n selected = selected.join(', ');\n }\n } else {\n index = select.$getIndex(controller.$modelValue);\n selected = angular.isDefined(index) ? select.$scope.$matches[index].label : false;\n }\n element.html((selected ? selected : options.placeholder) + (options.caretHtml ? options.caretHtml : defaults.caretHtml));\n };\n\n if(options.multiple){\n controller.$isEmpty = function(value){\n return !value || value.length === 0;\n };\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (select) select.destroy();\n options = null;\n select = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.popover', ['mgcrea.ngStrap.tooltip'])\n\n .provider('$popover', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n customClass: '',\n // uncommenting the next two lines will break backwards compatability\n // prefixClass: 'popover',\n // prefixEvent: 'popover',\n container: false,\n target: false,\n placement: 'right',\n templateUrl: 'popover/popover.tpl.html',\n contentTemplate: false,\n trigger: 'click',\n keyboard: true,\n html: false,\n title: '',\n content: '',\n delay: 0,\n autoClose: false\n };\n\n this.$get = function($tooltip) {\n\n function PopoverFactory(element, config) {\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n var $popover = $tooltip(element, options);\n\n // Support scope as string options [/*title, */content]\n if(options.content) {\n $popover.$scope.content = options.content;\n }\n\n return $popover;\n\n }\n\n return PopoverFactory;\n\n };\n\n })\n\n .directive('bsPopover', function($window, $sce, $popover) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'customClass', 'autoClose', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoClose'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // should not parse target attribute (anchor tag), only data-target #1454\n var dataTarget = element.attr('data-target');\n if(angular.isDefined(dataTarget)) {\n if(falseValueRegExp.test(dataTarget))\n options.target = false;\n else\n options.target = dataTarget;\n }\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n angular.isDefined(oldValue) && requestAnimationFrame(function() {\n popover && popover.$applyPlacement();\n });\n });\n });\n\n // Support scope as an object\n attr.bsPopover && scope.$watch(attr.bsPopover, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n angular.isDefined(oldValue) && requestAnimationFrame(function() {\n popover && popover.$applyPlacement();\n });\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!popover || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(popover),?/i);\n newValue === true ? popover.show() : popover.hide();\n });\n\n // Viewport support\n attr.viewport && scope.$watch(attr.viewport, function (newValue) {\n if(!popover || !angular.isDefined(newValue)) return;\n popover.setViewport(newValue);\n });\n\n // Initialize popover\n var popover = $popover(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (popover) popover.destroy();\n options = null;\n popover = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.tab', [])\n\n .provider('$tab', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n template: 'tab/tab.tpl.html',\n navClass: 'nav-tabs',\n activeClass: 'active'\n };\n\n var controller = this.controller = function($scope, $element, $attrs) {\n var self = this;\n\n // Attributes options\n self.$options = angular.copy(defaults);\n angular.forEach(['animation', 'navClass', 'activeClass'], function(key) {\n if(angular.isDefined($attrs[key])) self.$options[key] = $attrs[key];\n });\n\n // Publish options on scope\n $scope.$navClass = self.$options.navClass;\n $scope.$activeClass = self.$options.activeClass;\n\n self.$panes = $scope.$panes = [];\n\n // Please use $activePaneChangeListeners if you use `bsActivePane`\n // Because we removed `ngModel` as default, we rename viewChangeListeners to\n // activePaneChangeListeners to make more sense.\n self.$activePaneChangeListeners = self.$viewChangeListeners = [];\n\n self.$push = function(pane) {\n if(angular.isUndefined(self.$panes.$active)) {\n $scope.$setActive(pane.name || 0);\n }\n self.$panes.push(pane);\n };\n\n self.$remove = function(pane) {\n var index = self.$panes.indexOf(pane);\n var active = self.$panes.$active;\n var activeIndex;\n if(angular.isString(active)) {\n activeIndex = self.$panes.map(function(pane) {\n return pane.name;\n }).indexOf(active);\n } else {\n activeIndex = self.$panes.$active;\n }\n\n // remove pane from $panes array\n self.$panes.splice(index, 1);\n\n if (index < activeIndex) {\n // we removed a pane before the active pane, so we need to\n // decrement the active pane index\n activeIndex--;\n }\n else if (index === activeIndex && activeIndex === self.$panes.length) {\n // we remove the active pane and it was the one at the end,\n // so select the previous one\n activeIndex--;\n }\n if(activeIndex >= 0 && activeIndex < self.$panes.length) {\n self.$setActive(self.$panes[activeIndex].name || activeIndex);\n } else {\n self.$setActive();\n }\n };\n\n self.$setActive = $scope.$setActive = function(value) {\n self.$panes.$active = value;\n self.$activePaneChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n self.$isActive = $scope.$isActive = function($pane, $index) {\n return self.$panes.$active === $pane.name || self.$panes.$active === $index;\n };\n\n };\n\n this.$get = function() {\n var $tab = {};\n $tab.defaults = defaults;\n $tab.controller = controller;\n return $tab;\n };\n\n })\n\n .directive('bsTabs', function($window, $animate, $tab, $parse) {\n\n var defaults = $tab.defaults;\n\n return {\n require: ['?ngModel', 'bsTabs'],\n transclude: true,\n scope: true,\n controller: ['$scope', '$element', '$attrs', $tab.controller],\n templateUrl: function(element, attr) {\n return attr.template || defaults.template;\n },\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsTabsCtrl = controllers[1];\n\n // 'ngModel' does interfere with form validation\n // and status, use `bsActivePane` instead to avoid it\n if(ngModelCtrl) {\n\n // Update the modelValue following\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n ngModelCtrl.$setViewValue(bsTabsCtrl.$panes.$active);\n });\n\n // modelValue -> $formatters -> viewValue\n ngModelCtrl.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n bsTabsCtrl.$setActive(modelValue);\n return modelValue;\n });\n\n }\n\n if (attrs.bsActivePane) {\n // adapted from angularjs ngModelController bindings\n // https://github.com/angular/angular.js/blob/v1.3.1/src%2Fng%2Fdirective%2Finput.js#L1730\n var parsedBsActivePane = $parse(attrs.bsActivePane);\n\n // Update bsActivePane value with change\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n parsedBsActivePane.assign(scope, bsTabsCtrl.$panes.$active);\n });\n\n // watch bsActivePane for value changes\n scope.$watch(attrs.bsActivePane, function(newValue, oldValue) {\n bsTabsCtrl.$setActive(newValue);\n }, true);\n }\n }\n };\n\n })\n\n .directive('bsPane', function($window, $animate, $sce) {\n\n return {\n require: ['^?ngModel', '^bsTabs'],\n scope: true,\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsTabsCtrl = controllers[1];\n\n // Add base class\n element.addClass('tab-pane');\n\n // Observe title attribute for change\n attrs.$observe('title', function(newValue, oldValue) {\n scope.title = $sce.trustAsHtml(newValue);\n });\n\n // Save tab name into scope\n scope.name = attrs.name;\n\n // Add animation class\n if(bsTabsCtrl.$options.animation) {\n element.addClass(bsTabsCtrl.$options.animation);\n }\n\n attrs.$observe('disabled', function(newValue, oldValue) {\n scope.disabled = scope.$eval(newValue);\n });\n\n // Push pane to parent bsTabs controller\n bsTabsCtrl.$push(scope);\n\n // remove pane from tab controller when pane is destroyed\n scope.$on('$destroy', function() {\n bsTabsCtrl.$remove(scope);\n });\n\n function render() {\n var index = bsTabsCtrl.$panes.indexOf(scope);\n $animate[bsTabsCtrl.$isActive(scope, index) ? 'addClass' : 'removeClass'](element, bsTabsCtrl.$options.activeClass);\n }\n\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n render();\n });\n render();\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.core', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$tooltip', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n customClass: '',\n prefixClass: 'tooltip',\n prefixEvent: 'tooltip',\n container: false,\n target: false,\n placement: 'top',\n templateUrl: 'tooltip/tooltip.tpl.html',\n template: '',\n contentTemplate: false,\n trigger: 'hover focus',\n keyboard: false,\n html: false,\n show: false,\n title: '',\n type: '',\n delay: 0,\n autoClose: false,\n bsEnabled: true,\n viewport: {\n selector: 'body',\n padding: 0\n }\n };\n\n this.$get = function($window, $rootScope, $bsCompiler, $q, $templateCache, $http, $animate, $sce, dimensions, $$rAF, $timeout) {\n\n var trim = String.prototype.trim;\n var isTouch = 'createTouch' in $window.document;\n var htmlReplaceRegExp = /ng-bind=\"/ig;\n var $body = angular.element($window.document);\n\n function TooltipFactory(element, config) {\n\n var $tooltip = {};\n\n // Common vars\n var options = $tooltip.$options = angular.extend({}, defaults, config);\n var promise = $tooltip.$promise = $bsCompiler.compile(options);\n var scope = $tooltip.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n var nodeName = element[0].nodeName.toLowerCase();\n if(options.delay && angular.isString(options.delay)) {\n var split = options.delay.split(',').map(parseFloat);\n options.delay = split.length > 1 ? {show: split[0], hide: split[1]} : split[0];\n }\n\n // Store $id to identify the triggering element in events\n // give priority to options.id, otherwise, try to use\n // element id if defined\n $tooltip.$id = options.id || element.attr('id') || '';\n\n // Support scope as string options\n if(options.title) {\n scope.title = $sce.trustAsHtml(options.title);\n }\n\n // Provide scope helpers\n scope.$setEnabled = function(isEnabled) {\n scope.$$postDigest(function() {\n $tooltip.setEnabled(isEnabled);\n });\n };\n scope.$hide = function() {\n scope.$$postDigest(function() {\n $tooltip.hide();\n });\n };\n scope.$show = function() {\n scope.$$postDigest(function() {\n $tooltip.show();\n });\n };\n scope.$toggle = function() {\n scope.$$postDigest(function() {\n $tooltip.toggle();\n });\n };\n // Publish isShown as a protected var on scope\n $tooltip.$isShown = scope.$isShown = false;\n\n // Private vars\n var timeout, hoverState;\n\n // Fetch, compile then initialize tooltip\n var compileData, tipElement, tipContainer, tipScope;\n promise.then(function(data) {\n compileData = data;\n $tooltip.init();\n });\n\n $tooltip.init = function() {\n\n // Options: delay\n if (options.delay && angular.isNumber(options.delay)) {\n options.delay = {\n show: options.delay,\n hide: options.delay\n };\n }\n\n // Replace trigger on touch devices ?\n // if(isTouch && options.trigger === defaults.trigger) {\n // options.trigger.replace(/hover/g, 'click');\n // }\n\n // Options : container\n if(options.container === 'self') {\n tipContainer = element;\n } else if(angular.isElement(options.container)) {\n tipContainer = options.container;\n } else if(options.container) {\n tipContainer = findElement(options.container);\n }\n\n // Options: trigger\n bindTriggerEvents();\n\n // Options: target\n if(options.target) {\n options.target = angular.isElement(options.target) ? options.target : findElement(options.target);\n }\n\n // Options: show\n if(options.show) {\n scope.$$postDigest(function() {\n options.trigger === 'focus' ? element[0].focus() : $tooltip.show();\n });\n }\n\n };\n\n $tooltip.destroy = function() {\n\n // Unbind events\n unbindTriggerEvents();\n\n // Remove element\n destroyTipElement();\n\n // Destroy scope\n scope.$destroy();\n\n };\n\n $tooltip.enter = function() {\n\n clearTimeout(timeout);\n hoverState = 'in';\n if (!options.delay || !options.delay.show) {\n return $tooltip.show();\n }\n\n timeout = setTimeout(function() {\n if (hoverState ==='in') $tooltip.show();\n }, options.delay.show);\n\n };\n\n $tooltip.show = function() {\n if (!options.bsEnabled || $tooltip.$isShown) return;\n\n scope.$emit(options.prefixEvent + '.show.before', $tooltip);\n var parent, after;\n if (options.container) {\n parent = tipContainer;\n if (tipContainer[0].lastChild) {\n after = angular.element(tipContainer[0].lastChild);\n } else {\n after = null;\n }\n } else {\n parent = null;\n after = element;\n }\n\n\n // Hide any existing tipElement\n if(tipElement) destroyTipElement();\n // Fetch a cloned element linked from template\n tipScope = $tooltip.$scope.$new();\n tipElement = $tooltip.$element = compileData.link(tipScope, function(clonedElement, scope) {});\n\n // Set the initial positioning. Make the tooltip invisible\n // so IE doesn't try to focus on it off screen.\n tipElement.css({top: '-9999px', left: '-9999px', right: 'auto', display: 'block', visibility: 'hidden'});\n\n // Options: animation\n if(options.animation) tipElement.addClass(options.animation);\n // Options: type\n if(options.type) tipElement.addClass(options.prefixClass + '-' + options.type);\n // Options: custom classes\n if(options.customClass) tipElement.addClass(options.customClass);\n\n // Append the element, without any animations. If we append\n // using $animate.enter, some of the animations cause the placement\n // to be off due to the transforms.\n after ? after.after(tipElement) : parent.prepend(tipElement);\n\n $tooltip.$isShown = scope.$isShown = true;\n safeDigest(scope);\n\n // Now, apply placement\n $tooltip.$applyPlacement();\n\n // Once placed, animate it.\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.enter(tipElement, parent, after, enterAnimateCallback);\n } else {\n $animate.enter(tipElement, parent, after).then(enterAnimateCallback);\n }\n safeDigest(scope);\n\n $$rAF(function () {\n // Once the tooltip is placed and the animation starts, make the tooltip visible\n if(tipElement) tipElement.css({visibility: 'visible'});\n });\n\n // Bind events\n if(options.keyboard) {\n if(options.trigger !== 'focus') {\n $tooltip.focus();\n }\n bindKeyboardEvents();\n }\n\n if(options.autoClose) {\n bindAutoCloseEvents();\n }\n\n };\n\n function enterAnimateCallback() {\n scope.$emit(options.prefixEvent + '.show', $tooltip);\n }\n\n $tooltip.leave = function() {\n\n clearTimeout(timeout);\n hoverState = 'out';\n if (!options.delay || !options.delay.hide) {\n return $tooltip.hide();\n }\n timeout = setTimeout(function () {\n if (hoverState === 'out') {\n $tooltip.hide();\n }\n }, options.delay.hide);\n\n };\n\n var _blur;\n var _tipToHide;\n $tooltip.hide = function(blur) {\n\n if(!$tooltip.$isShown) return;\n scope.$emit(options.prefixEvent + '.hide.before', $tooltip);\n\n // store blur value for leaveAnimateCallback to use\n _blur = blur;\n\n // store current tipElement reference to use\n // in leaveAnimateCallback\n _tipToHide = tipElement;\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.leave(tipElement, leaveAnimateCallback);\n } else {\n $animate.leave(tipElement).then(leaveAnimateCallback);\n }\n\n $tooltip.$isShown = scope.$isShown = false;\n safeDigest(scope);\n\n // Unbind events\n if(options.keyboard && tipElement !== null) {\n unbindKeyboardEvents();\n }\n\n if(options.autoClose && tipElement !== null) {\n unbindAutoCloseEvents();\n }\n };\n\n function leaveAnimateCallback() {\n scope.$emit(options.prefixEvent + '.hide', $tooltip);\n\n // check if current tipElement still references\n // the same element when hide was called\n if (tipElement === _tipToHide) {\n // Allow to blur the input when hidden, like when pressing enter key\n if(_blur && options.trigger === 'focus') {\n return element[0].blur();\n }\n\n // clean up child scopes\n destroyTipElement();\n }\n }\n\n $tooltip.toggle = function() {\n $tooltip.$isShown ? $tooltip.leave() : $tooltip.enter();\n };\n\n $tooltip.focus = function() {\n tipElement[0].focus();\n };\n\n $tooltip.setEnabled = function(isEnabled) {\n options.bsEnabled = isEnabled;\n };\n\n $tooltip.setViewport = function(viewport) {\n options.viewport = viewport;\n };\n\n // Protected methods\n\n $tooltip.$applyPlacement = function() {\n if(!tipElement) return;\n\n // Determine if we're doing an auto or normal placement\n var placement = options.placement,\n autoToken = /\\s?auto?\\s?/i,\n autoPlace = autoToken.test(placement);\n\n if (autoPlace) {\n placement = placement.replace(autoToken, '') || defaults.placement;\n }\n\n // Need to add the position class before we get\n // the offsets\n tipElement.addClass(options.placement);\n\n // Get the position of the target element\n // and the height and width of the tooltip so we can center it.\n var elementPosition = getPosition(),\n tipWidth = tipElement.prop('offsetWidth'),\n tipHeight = tipElement.prop('offsetHeight');\n\n // If we're auto placing, we need to check the positioning\n if (autoPlace) {\n var originalPlacement = placement;\n var container = options.container ? findElement(options.container) : element.parent();\n var containerPosition = getPosition(container);\n\n // Determine if the vertical placement\n if (originalPlacement.indexOf('bottom') >= 0 && elementPosition.bottom + tipHeight > containerPosition.bottom) {\n placement = originalPlacement.replace('bottom', 'top');\n } else if (originalPlacement.indexOf('top') >= 0 && elementPosition.top - tipHeight < containerPosition.top) {\n placement = originalPlacement.replace('top', 'bottom');\n }\n\n // Determine the horizontal placement\n // The exotic placements of left and right are opposite of the standard placements. Their arrows are put on the left/right\n // and flow in the opposite direction of their placement.\n if ((originalPlacement === 'right' || originalPlacement === 'bottom-left' || originalPlacement === 'top-left') &&\n elementPosition.right + tipWidth > containerPosition.width) {\n\n placement = originalPlacement === 'right' ? 'left' : placement.replace('left', 'right');\n } else if ((originalPlacement === 'left' || originalPlacement === 'bottom-right' || originalPlacement === 'top-right') &&\n elementPosition.left - tipWidth < containerPosition.left) {\n\n placement = originalPlacement === 'left' ? 'right' : placement.replace('right', 'left');\n }\n\n tipElement.removeClass(originalPlacement).addClass(placement);\n }\n\n // Get the tooltip's top and left coordinates to center it with this directive.\n var tipPosition = getCalculatedOffset(placement, elementPosition, tipWidth, tipHeight);\n applyPlacement(tipPosition, placement);\n };\n\n $tooltip.$onKeyUp = function(evt) {\n if (evt.which === 27 && $tooltip.$isShown) {\n $tooltip.hide();\n evt.stopPropagation();\n }\n };\n\n $tooltip.$onFocusKeyUp = function(evt) {\n if (evt.which === 27) {\n element[0].blur();\n evt.stopPropagation();\n }\n };\n\n $tooltip.$onFocusElementMouseDown = function(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n // Some browsers do not auto-focus buttons (eg. Safari)\n $tooltip.$isShown ? element[0].blur() : element[0].focus();\n };\n\n // bind/unbind events\n function bindTriggerEvents() {\n var triggers = options.trigger.split(' ');\n angular.forEach(triggers, function(trigger) {\n if(trigger === 'click') {\n element.on('click', $tooltip.toggle);\n } else if(trigger !== 'manual') {\n element.on(trigger === 'hover' ? 'mouseenter' : 'focus', $tooltip.enter);\n element.on(trigger === 'hover' ? 'mouseleave' : 'blur', $tooltip.leave);\n nodeName === 'button' && trigger !== 'hover' && element.on(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);\n }\n });\n }\n\n function unbindTriggerEvents() {\n var triggers = options.trigger.split(' ');\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i];\n if(trigger === 'click') {\n element.off('click', $tooltip.toggle);\n } else if(trigger !== 'manual') {\n element.off(trigger === 'hover' ? 'mouseenter' : 'focus', $tooltip.enter);\n element.off(trigger === 'hover' ? 'mouseleave' : 'blur', $tooltip.leave);\n nodeName === 'button' && trigger !== 'hover' && element.off(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);\n }\n }\n }\n\n function bindKeyboardEvents() {\n if(options.trigger !== 'focus') {\n tipElement.on('keyup', $tooltip.$onKeyUp);\n } else {\n element.on('keyup', $tooltip.$onFocusKeyUp);\n }\n }\n\n function unbindKeyboardEvents() {\n if(options.trigger !== 'focus') {\n tipElement.off('keyup', $tooltip.$onKeyUp);\n } else {\n element.off('keyup', $tooltip.$onFocusKeyUp);\n }\n }\n\n var _autoCloseEventsBinded = false;\n function bindAutoCloseEvents() {\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n // Stop propagation when clicking inside tooltip\n tipElement.on('click', stopEventPropagation);\n\n // Hide when clicking outside tooltip\n $body.on('click', $tooltip.hide);\n\n _autoCloseEventsBinded = true;\n }, 0, false);\n }\n\n function unbindAutoCloseEvents() {\n if (_autoCloseEventsBinded) {\n tipElement.off('click', stopEventPropagation);\n $body.off('click', $tooltip.hide);\n _autoCloseEventsBinded = false;\n }\n }\n\n function stopEventPropagation(event) {\n event.stopPropagation();\n }\n\n // Private methods\n\n function getPosition($element) {\n $element = $element || (options.target || element);\n\n var el = $element[0],\n isBody = el.tagName === 'BODY';\n\n var elRect = el.getBoundingClientRect();\n var rect = {};\n\n // IE8 has issues with angular.extend and using elRect directly.\n // By coping the values of elRect into a new object, we can continue to use extend\n for (var p in elRect) {\n // DO NOT use hasOwnProperty when inspecting the return of getBoundingClientRect.\n rect[p] = elRect[p];\n }\n\n if (rect.width === null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n rect = angular.extend({}, rect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top });\n }\n var elOffset = isBody ? { top: 0, left: 0 } : dimensions.offset(el),\n scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.prop('scrollTop') || 0 },\n outerDims = isBody ? { width: document.documentElement.clientWidth, height: $window.innerHeight } : null;\n\n return angular.extend({}, rect, scroll, outerDims, elOffset);\n }\n\n function getCalculatedOffset(placement, position, actualWidth, actualHeight) {\n var offset;\n var split = placement.split('-');\n\n switch (split[0]) {\n case 'right':\n offset = {\n top: position.top + position.height / 2 - actualHeight / 2,\n left: position.left + position.width\n };\n break;\n case 'bottom':\n offset = {\n top: position.top + position.height,\n left: position.left + position.width / 2 - actualWidth / 2\n };\n break;\n case 'left':\n offset = {\n top: position.top + position.height / 2 - actualHeight / 2,\n left: position.left - actualWidth\n };\n break;\n default:\n offset = {\n top: position.top - actualHeight,\n left: position.left + position.width / 2 - actualWidth / 2\n };\n break;\n }\n\n if(!split[1]) {\n return offset;\n }\n\n // Add support for corners @todo css\n if(split[0] === 'top' || split[0] === 'bottom') {\n switch (split[1]) {\n case 'left':\n offset.left = position.left;\n break;\n case 'right':\n offset.left = position.left + position.width - actualWidth;\n }\n } else if(split[0] === 'left' || split[0] === 'right') {\n switch (split[1]) {\n case 'top':\n offset.top = position.top - actualHeight;\n break;\n case 'bottom':\n offset.top = position.top + position.height;\n }\n }\n\n return offset;\n }\n\n function applyPlacement(offset, placement) {\n var tip = tipElement[0],\n width = tip.offsetWidth,\n height = tip.offsetHeight;\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt(dimensions.css(tip, 'margin-top'), 10),\n marginLeft = parseInt(dimensions.css(tip, 'margin-left'), 10);\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0;\n if (isNaN(marginLeft)) marginLeft = 0;\n\n offset.top = offset.top + marginTop;\n offset.left = offset.left + marginLeft;\n\n // dimensions setOffset doesn't round pixel values\n // so we use setOffset directly with our own function\n dimensions.setOffset(tip, angular.extend({\n using: function (props) {\n tipElement.css({\n top: Math.round(props.top) + 'px',\n left: Math.round(props.left) + 'px',\n right: ''\n });\n }\n }, offset), 0);\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = tip.offsetWidth,\n actualHeight = tip.offsetHeight;\n\n if (placement === 'top' && actualHeight !== height) {\n offset.top = offset.top + height - actualHeight;\n }\n\n // If it's an exotic placement, exit now instead of\n // applying a delta and changing the arrow\n if (/top-left|top-right|bottom-left|bottom-right/.test(placement)) return;\n\n var delta = getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight);\n\n if (delta.left) {\n offset.left += delta.left;\n } else {\n offset.top += delta.top;\n }\n\n dimensions.setOffset(tip, offset);\n\n if (/top|right|bottom|left/.test(placement)) {\n var isVertical = /top|bottom/.test(placement),\n arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight,\n arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight';\n\n replaceArrow(arrowDelta, tip[arrowOffsetPosition], isVertical);\n }\n }\n\n function getViewportAdjustedDelta(placement, position, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 },\n $viewport = options.viewport && findElement(options.viewport.selector || options.viewport);\n\n if (!$viewport) {\n return delta;\n }\n\n var viewportPadding = options.viewport && options.viewport.padding || 0,\n viewportDimensions = getPosition($viewport);\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = position.top - viewportPadding - viewportDimensions.scroll,\n bottomEdgeOffset = position.top + viewportPadding - viewportDimensions.scroll + actualHeight;\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset;\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset;\n }\n } else {\n var leftEdgeOffset = position.left - viewportPadding,\n rightEdgeOffset = position.left + viewportPadding + actualWidth;\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset;\n } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset;\n }\n }\n\n return delta;\n }\n\n function replaceArrow(delta, dimension, isHorizontal) {\n var $arrow = findElement('.tooltip-arrow, .arrow', tipElement[0]);\n\n $arrow.css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isHorizontal ? 'top' : 'left', '');\n }\n\n function destroyTipElement() {\n // Cancel pending callbacks\n clearTimeout(timeout);\n\n if($tooltip.$isShown && tipElement !== null) {\n if(options.autoClose) {\n unbindAutoCloseEvents();\n }\n\n if(options.keyboard) {\n unbindKeyboardEvents();\n }\n }\n\n if(tipScope) {\n tipScope.$destroy();\n tipScope = null;\n }\n\n if(tipElement) {\n tipElement.remove();\n tipElement = $tooltip.$element = null;\n }\n }\n\n return $tooltip;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n var fetchPromises = {};\n function fetchTemplate(template) {\n if(fetchPromises[template]) return fetchPromises[template];\n return (fetchPromises[template] = $http.get(template, {cache: $templateCache}).then(function(res) {\n return res.data;\n }));\n }\n\n return TooltipFactory;\n\n };\n\n })\n\n .directive('bsTooltip', function($window, $location, $sce, $tooltip, $$rAF) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'backdropAnimation', 'type', 'customClass', 'id'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // should not parse target attribute (anchor tag), only data-target #1454\n var dataTarget = element.attr('data-target');\n if(angular.isDefined(dataTarget)) {\n if(falseValueRegExp.test(dataTarget))\n options.target = false;\n else\n options.target = dataTarget;\n }\n\n // overwrite inherited title value when no value specified\n // fix for angular 1.3.1 531a8de72c439d8ddd064874bf364c00cedabb11\n if (!scope.hasOwnProperty('title')){\n scope.title = '';\n }\n\n // Observe scope attributes for change\n attr.$observe('title', function(newValue) {\n if (angular.isDefined(newValue) || !scope.hasOwnProperty('title')) {\n var oldValue = scope.title;\n scope.title = $sce.trustAsHtml(newValue);\n angular.isDefined(oldValue) && $$rAF(function() {\n tooltip && tooltip.$applyPlacement();\n });\n }\n });\n\n // Support scope as an object\n attr.bsTooltip && scope.$watch(attr.bsTooltip, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.title = newValue;\n }\n angular.isDefined(oldValue) && $$rAF(function() {\n tooltip && tooltip.$applyPlacement();\n });\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!tooltip || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(tooltip),?/i);\n newValue === true ? tooltip.show() : tooltip.hide();\n });\n\n // Enabled binding support\n attr.bsEnabled && scope.$watch(attr.bsEnabled, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.bsEnabled, newValue, oldValue);\n if(!tooltip || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|1|,?(tooltip),?/i);\n newValue === false ? tooltip.setEnabled(false) : tooltip.setEnabled(true);\n });\n\n // Viewport support\n attr.viewport && scope.$watch(attr.viewport, function (newValue) {\n if(!tooltip || !angular.isDefined(newValue)) return;\n tooltip.setViewport(newValue);\n });\n\n // Initialize popover\n var tooltip = $tooltip(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if(tooltip) tooltip.destroy();\n options = null;\n tooltip = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.timepicker', [\n 'mgcrea.ngStrap.helpers.dateParser',\n 'mgcrea.ngStrap.helpers.dateFormatter',\n 'mgcrea.ngStrap.tooltip'])\n\n .provider('$timepicker', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n //uncommenting the following line will break backwards compatability\n // prefixEvent: 'timepicker',\n prefixClass: 'timepicker',\n placement: 'bottom-left',\n templateUrl: 'timepicker/timepicker.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n // lang: $locale.id,\n useNative: true,\n timeType: 'date',\n timeFormat: 'shortTime',\n timezone: null,\n modelTimeFormat: null,\n autoclose: false,\n minTime: -Infinity,\n maxTime: +Infinity,\n length: 5,\n hourStep: 1,\n minuteStep: 5,\n secondStep: 5,\n roundDisplay: false,\n iconUp: 'glyphicon glyphicon-chevron-up',\n iconDown: 'glyphicon glyphicon-chevron-down',\n arrowBehavior: 'pager'\n };\n\n this.$get = function($window, $document, $rootScope, $sce, $dateFormatter, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n if(!defaults.lang) defaults.lang = $dateFormatter.getDefaultLocale();\n\n function timepickerFactory(element, controller, config) {\n\n var $timepicker = $tooltip(element, angular.extend({}, defaults, config));\n var parentScope = config.scope;\n var options = $timepicker.$options;\n var scope = $timepicker.$scope;\n\n var lang = options.lang;\n var formatDate = function(date, format, timezone) {\n return $dateFormatter.formatDate(date, format, lang, timezone);\n };\n\n function floorMinutes(time)\n {\n // coeff used to floor current time to nearest minuteStep interval\n var coeff = 1000 * 60 * options.minuteStep;\n return new Date(Math.floor(time.getTime() / coeff) * coeff);\n }\n\n // View vars\n\n var selectedIndex = 0;\n var defaultDate = options.roundDisplay ? floorMinutes(new Date()) : new Date();\n var startDate = controller.$dateValue || defaultDate;\n var viewDate = {hour: startDate.getHours(), meridian: startDate.getHours() < 12, minute: startDate.getMinutes(), second: startDate.getSeconds(), millisecond: startDate.getMilliseconds()};\n\n var format = $dateFormatter.getDatetimeFormat(options.timeFormat, lang);\n\n var hoursFormat = $dateFormatter.hoursFormat(format),\n timeSeparator = $dateFormatter.timeSeparator(format),\n minutesFormat = $dateFormatter.minutesFormat(format),\n secondsFormat = $dateFormatter.secondsFormat(format),\n showSeconds = $dateFormatter.showSeconds(format),\n showAM = $dateFormatter.showAM(format);\n\n scope.$iconUp = options.iconUp;\n scope.$iconDown = options.iconDown;\n\n // Scope methods\n\n scope.$select = function(date, index) {\n $timepicker.select(date, index);\n };\n scope.$moveIndex = function(value, index) {\n $timepicker.$moveIndex(value, index);\n };\n scope.$switchMeridian = function(date) {\n $timepicker.switchMeridian(date);\n };\n\n // Public methods\n\n $timepicker.update = function(date) {\n // console.warn('$timepicker.update() newValue=%o', date);\n if(angular.isDate(date) && !isNaN(date.getTime())) {\n $timepicker.$date = date;\n angular.extend(viewDate, {hour: date.getHours(), minute: date.getMinutes(), second: date.getSeconds(), millisecond: date.getMilliseconds()});\n $timepicker.$build();\n } else if(!$timepicker.$isBuilt) {\n $timepicker.$build();\n }\n };\n\n $timepicker.select = function(date, index, keep) {\n // console.warn('$timepicker.select', date, scope.$mode);\n if(!controller.$dateValue || isNaN(controller.$dateValue.getTime())) controller.$dateValue = new Date(1970, 0, 1);\n if(!angular.isDate(date)) date = new Date(date);\n if(index === 0) controller.$dateValue.setHours(date.getHours());\n else if(index === 1) controller.$dateValue.setMinutes(date.getMinutes());\n else if(index === 2) controller.$dateValue.setSeconds(date.getSeconds());\n controller.$setViewValue(angular.copy(controller.$dateValue));\n controller.$render();\n if(options.autoclose && !keep) {\n $timeout(function() { $timepicker.hide(true); });\n }\n };\n\n $timepicker.switchMeridian = function(date) {\n if (!controller.$dateValue || isNaN(controller.$dateValue.getTime())) {\n return;\n }\n var hours = (date || controller.$dateValue).getHours();\n controller.$dateValue.setHours(hours < 12 ? hours + 12 : hours - 12);\n controller.$setViewValue(angular.copy(controller.$dateValue));\n controller.$render();\n };\n\n // Protected methods\n\n $timepicker.$build = function() {\n // console.warn('$timepicker.$build() viewDate=%o', viewDate);\n var i, midIndex = scope.midIndex = parseInt(options.length / 2, 10);\n var hours = [], hour;\n for(i = 0; i < options.length; i++) {\n hour = new Date(1970, 0, 1, viewDate.hour - (midIndex - i) * options.hourStep);\n hours.push({date: hour, label: formatDate(hour, hoursFormat), selected: $timepicker.$date && $timepicker.$isSelected(hour, 0), disabled: $timepicker.$isDisabled(hour, 0)});\n }\n var minutes = [], minute;\n for(i = 0; i < options.length; i++) {\n minute = new Date(1970, 0, 1, 0, viewDate.minute - (midIndex - i) * options.minuteStep);\n minutes.push({date: minute, label: formatDate(minute, minutesFormat), selected: $timepicker.$date && $timepicker.$isSelected(minute, 1), disabled: $timepicker.$isDisabled(minute, 1)});\n }\n var seconds = [], second;\n for(i = 0; i < options.length; i++) {\n second = new Date(1970, 0, 1, 0, 0, viewDate.second - (midIndex - i) * options.secondStep);\n seconds.push({date: second, label: formatDate(second, secondsFormat), selected: $timepicker.$date && $timepicker.$isSelected(second, 2), disabled: $timepicker.$isDisabled(second, 2)});\n }\n\n var rows = [];\n for(i = 0; i < options.length; i++) {\n if (showSeconds) {\n rows.push([hours[i], minutes[i], seconds[i]]);\n } else {\n rows.push([hours[i], minutes[i]]);\n }\n }\n scope.rows = rows;\n scope.showSeconds = showSeconds;\n scope.showAM = showAM;\n scope.isAM = ($timepicker.$date || hours[midIndex].date).getHours() < 12;\n scope.timeSeparator = timeSeparator;\n $timepicker.$isBuilt = true;\n };\n\n $timepicker.$isSelected = function(date, index) {\n if(!$timepicker.$date) return false;\n else if(index === 0) {\n return date.getHours() === $timepicker.$date.getHours();\n } else if(index === 1) {\n return date.getMinutes() === $timepicker.$date.getMinutes();\n } else if(index === 2) {\n return date.getSeconds() === $timepicker.$date.getSeconds();\n }\n };\n\n $timepicker.$isDisabled = function(date, index) {\n var selectedTime;\n if(index === 0) {\n selectedTime = date.getTime() + viewDate.minute * 6e4 + viewDate.second * 1e3;\n } else if(index === 1) {\n selectedTime = date.getTime() + viewDate.hour * 36e5 + viewDate.second * 1e3;\n } else if(index === 2) {\n selectedTime = date.getTime() + viewDate.hour * 36e5 + viewDate.minute * 6e4;\n }\n return selectedTime < options.minTime * 1 || selectedTime > options.maxTime * 1;\n };\n\n scope.$arrowAction = function (value, index) {\n if (options.arrowBehavior === 'picker') {\n $timepicker.$setTimeByStep(value,index);\n } else {\n $timepicker.$moveIndex(value,index);\n }\n };\n\n $timepicker.$setTimeByStep = function(value, index) {\n var newDate = new Date($timepicker.$date);\n var hours = newDate.getHours(), hoursLength = formatDate(newDate, hoursFormat).length;\n var minutes = newDate.getMinutes(), minutesLength = formatDate(newDate, minutesFormat).length;\n var seconds = newDate.getSeconds(), secondsLength = formatDate(newDate, secondsFormat).length;\n if (index === 0) {\n newDate.setHours(hours - (parseInt(options.hourStep, 10) * value));\n }\n else if (index === 1) {\n newDate.setMinutes(minutes - (parseInt(options.minuteStep, 10) * value));\n }\n else if (index === 2) {\n newDate.setSeconds(seconds - (parseInt(options.secondStep, 10) * value));\n }\n $timepicker.select(newDate, index, true);\n };\n\n $timepicker.$moveIndex = function(value, index) {\n var targetDate;\n if(index === 0) {\n targetDate = new Date(1970, 0, 1, viewDate.hour + (value * options.length), viewDate.minute, viewDate.second);\n angular.extend(viewDate, {hour: targetDate.getHours()});\n } else if(index === 1) {\n targetDate = new Date(1970, 0, 1, viewDate.hour, viewDate.minute + (value * options.length * options.minuteStep), viewDate.second);\n angular.extend(viewDate, {minute: targetDate.getMinutes()});\n } else if(index === 2) {\n targetDate = new Date(1970, 0, 1, viewDate.hour, viewDate.minute, viewDate.second + (value * options.length * options.secondStep));\n angular.extend(viewDate, {second: targetDate.getSeconds()});\n }\n $timepicker.$build();\n };\n\n $timepicker.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n if(evt.target.nodeName.toLowerCase() !== 'input') evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n if(targetEl[0].nodeName.toLowerCase() !== 'button') {\n targetEl = targetEl.parent();\n }\n targetEl.triggerHandler('click');\n }\n };\n\n $timepicker.$onKeyDown = function(evt) {\n if (!/(38|37|39|40|13)/.test(evt.keyCode) || evt.shiftKey || evt.altKey) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // Close on enter\n if(evt.keyCode === 13) return $timepicker.hide(true);\n\n // Navigate with keyboard\n var newDate = new Date($timepicker.$date);\n var hours = newDate.getHours(), hoursLength = formatDate(newDate, hoursFormat).length;\n var minutes = newDate.getMinutes(), minutesLength = formatDate(newDate, minutesFormat).length;\n var seconds = newDate.getSeconds(), secondsLength = formatDate(newDate, secondsFormat).length;\n var sepLength = 1;\n var lateralMove = /(37|39)/.test(evt.keyCode);\n var count = 2 + showSeconds * 1 + showAM * 1;\n\n // Navigate indexes (left, right)\n if (lateralMove) {\n if(evt.keyCode === 37) selectedIndex = selectedIndex < 1 ? count - 1 : selectedIndex - 1;\n else if(evt.keyCode === 39) selectedIndex = selectedIndex < count - 1 ? selectedIndex + 1 : 0;\n }\n\n // Update values (up, down)\n var selectRange = [0, hoursLength];\n var incr = 0;\n if (evt.keyCode === 38) incr = -1;\n if (evt.keyCode === 40) incr = +1;\n var isSeconds = selectedIndex === 2 && showSeconds;\n var isMeridian = selectedIndex === 2 && !showSeconds || selectedIndex === 3 && showSeconds;\n if(selectedIndex === 0) {\n newDate.setHours(hours + incr*parseInt(options.hourStep, 10));\n // re-calculate hours length because we have changed hours value\n hoursLength = formatDate(newDate, hoursFormat).length;\n selectRange = [0, hoursLength];\n } else if(selectedIndex === 1) {\n newDate.setMinutes(minutes + incr*parseInt(options.minuteStep, 10));\n // re-calculate minutes length because we have changes minutes value\n minutesLength = formatDate(newDate, minutesFormat).length;\n selectRange = [hoursLength + sepLength, minutesLength];\n } else if(isSeconds) {\n newDate.setSeconds(seconds + incr*parseInt(options.secondStep, 10));\n // re-calculate seconds length because we have changes seconds value\n secondsLength = formatDate(newDate, secondsFormat).length;\n selectRange = [hoursLength + sepLength + minutesLength + sepLength, secondsLength];\n } else if(isMeridian) {\n if(!lateralMove) $timepicker.switchMeridian();\n selectRange = [hoursLength + sepLength + minutesLength + sepLength + (secondsLength + sepLength)*showSeconds, 2];\n }\n $timepicker.select(newDate, selectedIndex, true);\n createSelection(selectRange[0], selectRange[1]);\n parentScope.$digest();\n };\n\n // Private\n\n function createSelection(start, length) {\n var end = start + length;\n if(element[0].createTextRange) {\n var selRange = element[0].createTextRange();\n selRange.collapse(true);\n selRange.moveStart('character', start);\n selRange.moveEnd('character', end);\n selRange.select();\n } else if(element[0].setSelectionRange) {\n element[0].setSelectionRange(start, end);\n } else if(angular.isUndefined(element[0].selectionStart)) {\n element[0].selectionStart = start;\n element[0].selectionEnd = end;\n }\n }\n\n function focusElement() {\n element[0].focus();\n }\n\n // Overrides\n\n var _init = $timepicker.init;\n $timepicker.init = function() {\n if(isNative && options.useNative) {\n element.prop('type', 'time');\n element.css('-webkit-appearance', 'textfield');\n return;\n } else if(isTouch) {\n element.prop('type', 'text');\n element.attr('readonly', 'true');\n element.on('click', focusElement);\n }\n _init();\n };\n\n var _destroy = $timepicker.destroy;\n $timepicker.destroy = function() {\n if(isNative && options.useNative) {\n element.off('click', focusElement);\n }\n _destroy();\n };\n\n var _show = $timepicker.show;\n $timepicker.show = function() {\n _show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n $timepicker.$element && $timepicker.$element.on(isTouch ? 'touchstart' : 'mousedown', $timepicker.$onMouseDown);\n if(options.keyboard) {\n element && element.on('keydown', $timepicker.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $timepicker.hide;\n $timepicker.hide = function(blur) {\n if(!$timepicker.$isShown) return;\n $timepicker.$element && $timepicker.$element.off(isTouch ? 'touchstart' : 'mousedown', $timepicker.$onMouseDown);\n if(options.keyboard) {\n element && element.off('keydown', $timepicker.$onKeyDown);\n }\n _hide(blur);\n };\n\n return $timepicker;\n\n }\n\n timepickerFactory.defaults = defaults;\n return timepickerFactory;\n\n };\n\n })\n\n\n .directive('bsTimepicker', function($window, $parse, $q, $dateFormatter, $dateParser, $timepicker) {\n\n var defaults = $timepicker.defaults;\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'autoclose', 'timeType', 'timeFormat', 'timezone', 'modelTimeFormat', 'useNative', 'hourStep', 'minuteStep', 'secondStep', 'length', 'arrowBehavior', 'iconUp', 'iconDown', 'roundDisplay', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoclose', 'useNative', 'roundDisplay'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!timepicker || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(timepicker),?/i);\n newValue === true ? timepicker.show() : timepicker.hide();\n });\n\n // Initialize timepicker\n if(isNative && (options.useNative || defaults.useNative)) options.timeFormat = 'HH:mm';\n var timepicker = $timepicker(element, controller, options);\n options = timepicker.$options;\n\n var lang = options.lang;\n var formatDate = function(date, format, timezone) {\n return $dateFormatter.formatDate(date, format, lang, timezone);\n };\n\n // Initialize parser\n var dateParser = $dateParser({format: options.timeFormat, lang: lang});\n\n // Observe attributes for changes\n angular.forEach(['minTime', 'maxTime'], function(key) {\n // console.warn('attr.$observe(%s)', key, attr[key]);\n angular.isDefined(attr[key]) && attr.$observe(key, function(newValue) {\n timepicker.$options[key] = dateParser.getTimeForAttribute(key, newValue);\n !isNaN(timepicker.$options[key]) && timepicker.$build();\n validateAgainstMinMaxTime(controller.$dateValue);\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.ngModel, newValue, oldValue, controller.$dateValue);\n timepicker.update(controller.$dateValue);\n }, true);\n\n function validateAgainstMinMaxTime(parsedTime) {\n if (!angular.isDate(parsedTime)) return;\n var isMinValid = isNaN(options.minTime) || new Date(parsedTime.getTime()).setFullYear(1970, 0, 1) >= options.minTime;\n var isMaxValid = isNaN(options.maxTime) || new Date(parsedTime.getTime()).setFullYear(1970, 0, 1) <= options.maxTime;\n var isValid = isMinValid && isMaxValid;\n controller.$setValidity('date', isValid);\n controller.$setValidity('min', isMinValid);\n controller.$setValidity('max', isMaxValid);\n // Only update the model when we have a valid date\n if(!isValid) {\n return;\n }\n controller.$dateValue = parsedTime;\n }\n\n // viewValue -> $parsers -> modelValue\n controller.$parsers.unshift(function(viewValue) {\n // console.warn('$parser(\"%s\"): viewValue=%o', element.attr('ng-model'), viewValue);\n var date;\n // Null values should correctly reset the model value & validity\n if(!viewValue) {\n // BREAKING CHANGE:\n // return null (not undefined) when input value is empty, so angularjs 1.3\n // ngModelController can go ahead and run validators, like ngRequired\n controller.$setValidity('date', true);\n return null;\n }\n var parsedTime = angular.isDate(viewValue) ? viewValue : dateParser.parse(viewValue, controller.$dateValue);\n if(!parsedTime || isNaN(parsedTime.getTime())) {\n controller.$setValidity('date', false);\n // return undefined, causes ngModelController to\n // invalidate model value\n return;\n } else {\n validateAgainstMinMaxTime(parsedTime);\n }\n\n if(options.timeType === 'string') {\n date = dateParser.timezoneOffsetAdjust(parsedTime, options.timezone, true);\n return formatDate(date, options.modelTimeFormat || options.timeFormat);\n }\n date = dateParser.timezoneOffsetAdjust(controller.$dateValue, options.timezone, true);\n if(options.timeType === 'number') {\n return date.getTime();\n } else if(options.timeType === 'unix') {\n return date.getTime() / 1000;\n } else if(options.timeType === 'iso') {\n return date.toISOString();\n } else {\n return new Date(date);\n }\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var date;\n if(angular.isUndefined(modelValue) || modelValue === null) {\n date = NaN;\n } else if(angular.isDate(modelValue)) {\n date = modelValue;\n } else if(options.timeType === 'string') {\n date = dateParser.parse(modelValue, null, options.modelTimeFormat);\n } else if(options.timeType === 'unix') {\n date = new Date(modelValue * 1000);\n } else {\n date = new Date(modelValue);\n }\n // Setup default value?\n // if(isNaN(date.getTime())) date = new Date(new Date().setMinutes(0) + 36e5);\n controller.$dateValue = dateParser.timezoneOffsetAdjust(date, options.timezone);\n return getTimeFormattedString();\n });\n\n // viewValue -> element\n controller.$render = function() {\n // console.warn('$render(\"%s\"): viewValue=%o', element.attr('ng-model'), controller.$viewValue);\n element.val(getTimeFormattedString());\n };\n\n function getTimeFormattedString() {\n return !controller.$dateValue || isNaN(controller.$dateValue.getTime()) ? '' : formatDate(controller.$dateValue, options.timeFormat);\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (timepicker) timepicker.destroy();\n options = null;\n timepicker = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.typeahead', ['mgcrea.ngStrap.tooltip', 'mgcrea.ngStrap.helpers.parseOptions'])\n\n .provider('$typeahead', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'typeahead',\n prefixEvent: '$typeahead',\n placement: 'bottom-left',\n templateUrl: 'typeahead/typeahead.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n minLength: 1,\n filter: 'filter',\n limit: 6,\n autoSelect: false,\n comparator: '',\n trimValue: true\n };\n\n this.$get = function($window, $rootScope, $tooltip, $$rAF, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n\n function TypeaheadFactory(element, controller, config) {\n\n var $typeahead = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $typeahead = $tooltip(element, options);\n var parentScope = config.scope;\n var scope = $typeahead.$scope;\n\n scope.$resetMatches = function(){\n scope.$matches = [];\n scope.$activeIndex = options.autoSelect ? 0 : -1; // If set to 0, the first match will be highlighted\n };\n scope.$resetMatches();\n\n scope.$activate = function(index) {\n scope.$$postDigest(function() {\n $typeahead.activate(index);\n });\n };\n\n scope.$select = function(index, evt) {\n scope.$$postDigest(function() {\n $typeahead.select(index);\n });\n };\n\n scope.$isVisible = function() {\n return $typeahead.$isVisible();\n };\n\n // Public methods\n\n $typeahead.update = function(matches) {\n scope.$matches = matches;\n if(scope.$activeIndex >= matches.length) {\n scope.$activeIndex = options.autoSelect ? 0: -1;\n }\n\n // wrap in a $timeout so the results are updated\n // before repositioning\n safeDigest(scope);\n $$rAF($typeahead.$applyPlacement);\n };\n\n $typeahead.activate = function(index) {\n scope.$activeIndex = index;\n };\n\n $typeahead.select = function(index) {\n if(index === -1) return;\n var value = scope.$matches[index].value;\n // console.log('$setViewValue', value);\n controller.$setViewValue(value);\n controller.$render();\n scope.$resetMatches();\n if(parentScope) parentScope.$digest();\n // Emit event\n scope.$emit(options.prefixEvent + '.select', value, index, $typeahead);\n };\n\n // Protected methods\n\n $typeahead.$isVisible = function() {\n if(!options.minLength || !controller) {\n return !!scope.$matches.length;\n }\n // minLength support\n return scope.$matches.length && angular.isString(controller.$viewValue) && controller.$viewValue.length >= options.minLength;\n };\n\n $typeahead.$getIndex = function(value) {\n var l = scope.$matches.length, i = l;\n if(!l) return;\n for(i = l; i--;) {\n if(scope.$matches[i].value === value) break;\n }\n if(i < 0) return;\n return i;\n };\n\n $typeahead.$onMouseDown = function(evt) {\n // Prevent blur on mousedown\n evt.preventDefault();\n evt.stopPropagation();\n };\n\n $typeahead.$onKeyDown = function(evt) {\n if(!/(38|40|13)/.test(evt.keyCode)) return;\n\n // Let ngSubmit pass if the typeahead tip is hidden or no option is selected\n if($typeahead.$isVisible() && !(evt.keyCode === 13 && scope.$activeIndex === -1)) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n\n // Select with enter\n if(evt.keyCode === 13 && scope.$matches.length) {\n $typeahead.select(scope.$activeIndex);\n }\n\n // Navigate with keyboard\n else if(evt.keyCode === 38 && scope.$activeIndex > 0) scope.$activeIndex--;\n else if(evt.keyCode === 40 && scope.$activeIndex < scope.$matches.length - 1) scope.$activeIndex++;\n else if(angular.isUndefined(scope.$activeIndex)) scope.$activeIndex = 0;\n scope.$digest();\n };\n\n // Overrides\n\n var show = $typeahead.show;\n $typeahead.show = function() {\n show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed immediately.\n $timeout(function() {\n $typeahead.$element && $typeahead.$element.on('mousedown', $typeahead.$onMouseDown);\n if(options.keyboard) {\n element && element.on('keydown', $typeahead.$onKeyDown);\n }\n }, 0, false);\n };\n\n var hide = $typeahead.hide;\n $typeahead.hide = function() {\n $typeahead.$element && $typeahead.$element.off('mousedown', $typeahead.$onMouseDown);\n if(options.keyboard) {\n element && element.off('keydown', $typeahead.$onKeyDown);\n }\n if(!options.autoSelect)\n $typeahead.activate(-1);\n hide();\n };\n\n return $typeahead;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n TypeaheadFactory.defaults = defaults;\n return TypeaheadFactory;\n\n };\n\n })\n\n .directive('bsTypeahead', function($window, $parse, $q, $typeahead, $parseOptions) {\n\n var defaults = $typeahead.defaults;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'filter', 'limit', 'minLength', 'watchOptions', 'selectMode', 'autoSelect', 'comparator', 'id', 'prefixEvent', 'prefixClass'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'trimValue'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key])) options[key] = false;\n });\n\n // Disable browser autocompletion\n element.attr('autocomplete' ,'false');\n\n // Build proper bsOptions\n var filter = options.filter || defaults.filter;\n var limit = options.limit || defaults.limit;\n var comparator = options.comparator || defaults.comparator;\n\n var bsOptions = attr.bsOptions;\n if(filter) bsOptions += ' | ' + filter + ':$viewValue';\n if (comparator) bsOptions += ':' + comparator;\n if(limit) bsOptions += ' | limitTo:' + limit;\n var parsedOptions = $parseOptions(bsOptions);\n\n // Initialize typeahead\n var typeahead = $typeahead(element, controller, options);\n\n // Watch options on demand\n if(options.watchOptions) {\n // Watch bsOptions values before filtering for changes, drop function calls\n var watchedOptions = parsedOptions.$match[7].replace(/\\|.+/, '').replace(/\\(.*\\)/g, '').trim();\n scope.$watchCollection(watchedOptions, function (newValue, oldValue) {\n // console.warn('scope.$watch(%s)', watchedOptions, newValue, oldValue);\n parsedOptions.valuesFn(scope, controller).then(function (values) {\n typeahead.update(values);\n controller.$render();\n });\n });\n }\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('$watch', element.attr('ng-model'), newValue);\n scope.$modelValue = newValue; // Publish modelValue on scope for custom templates\n parsedOptions.valuesFn(scope, controller)\n .then(function(values) {\n // Prevent input with no future prospect if selectMode is truthy\n // @TODO test selectMode\n if(options.selectMode && !values.length && newValue.length > 0) {\n controller.$setViewValue(controller.$viewValue.substring(0, controller.$viewValue.length - 1));\n return;\n }\n if(values.length > limit) values = values.slice(0, limit);\n var isVisible = typeahead.$isVisible();\n isVisible && typeahead.update(values);\n // Do not re-queue an update if a correct value has been selected\n if(values.length === 1 && values[0].value === newValue) return;\n !isVisible && typeahead.update(values);\n // Queue a new rendering that will leverage collection loading\n controller.$render();\n });\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var displayValue = parsedOptions.displayValue(modelValue);\n\n // If we can determine the displayValue, use that\n if (displayValue) return displayValue;\n\n // If there's no display value, attempt to use the modelValue.\n // If the model is an object not much we can do\n if (modelValue && typeof modelValue !== 'object') {\n return modelValue;\n }\n return '';\n });\n\n // Model rendering in view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n if(controller.$isEmpty(controller.$viewValue)) return element.val('');\n var index = typeahead.$getIndex(controller.$modelValue);\n var selected = angular.isDefined(index) ? typeahead.$scope.$matches[index].label : controller.$viewValue;\n selected = angular.isObject(selected) ? parsedOptions.displayValue(selected) : selected;\n var value = selected ? selected.toString().replace(/<(?:.|\\n)*?>/gm, '') : '';\n element.val(options.trimValue === false ? value : value.trim());\n };\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (typeahead) typeahead.destroy();\n options = null;\n typeahead = null;\n });\n\n }\n };\n\n });\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["angular-strap.js","helpers/compiler.js","helpers/date-formatter.js","affix/affix.js","alert/alert.js","aside/aside.js","button/button.js","collapse/collapse.js","datepicker/datepicker.js","dropdown/dropdown.js","helpers/date-parser.js","helpers/debounce.js","helpers/dimensions.js","helpers/parse-options.js","helpers/raf.js","modal/modal.js","navbar/navbar.js","popover/popover.js","scrollspy/scrollspy.js","select/select.js","timepicker/timepicker.js","tab/tab.js","typeahead/typeahead.js","tooltip/tooltip.js"],"names":["window","document","undefined","templateUrl","options","cache","$templateCache","then","element","res","fetchTemplate","template","fetchPromises","bsCompilerService","$inject","$http","get","angular","module","getDefaultLocale","$locale","this","compile","controller","console","controllerAs","resolve","copy","locals","bindToController","forEach","value","isString","$injector","key","invoke","transformTemplate","identity","extend","$template","when","$q","contentEl","findElement","outerHTML","contentTemplate","all","templateEl","removeAttr","html","templates","replace","next","remove","link","scope","trim","contents","linkFn","invokeCtrl","children","instance","ctrl","isObject","arguments","data","apply","bodyEl","$window","body","windowEl","defaults","AffixFactory","offsetTop","$affix","inlineStyles","$get","reset","setWidth","initialAffixTop","offsetParent","match","getRequiredAffixClass","unpin","position","top","scrollTop","getScrollTop","scrollHeight","getScrollHeight","targetEl","pageYOffset","directive","parent","target","initialOffsetTop","offsetBottom","affixed","init","i","$parseOffsets","on","checkPosition","require","checkPositionWithEventLoop","dimensions","offset","destroy","style","width","off","affix","setTimeout","elementHeight","height","css","addClass","offsetUnpin","offsetHeight","offsetWidth","$debouncedOnResize","$onResize","initialPosition","restrict","affixTarget","$element","option","$on","attr","test","animation","prefixClass","container","provider","backdrop","keyboard","show","duration","type","dismissable","AlertFactory","$alert","$scope","config","$timeout","hide","isDefined","falseValueRegExp","hasOwnProperty","title","newValue","oldValue","trustAsHtml","bsAlert","$observe","content","alert","trigger","toggle","AsideFactory","$aside","requestAnimationFrame","$modal","bsAside","$watch","aside","activeClass","querySelectorAll","childEl","ngModel","child","$button","constantValueRegExp","isInput","trueValue","falseValue","hasExoticValues","viewValue","$formatters","push","$render","modelValue","isActive","equals","checked","activeElement","bind","toggleEvent","$modelValue","$$rAF","$setViewValue","toggleClass","$apply","hasClass","nodeName","self","startCollapsed","allowMultiple","$attrs","activeIndexes","$targets","$active","length","index","indexOf","activeItems","splice","activateItem","$options","$collapse","$viewChangeListeners","$registerToggle","$toggles","$unregisterToggle","$unregisterTarget","deactivateItem","fn","fixActiveItemIndexes","$setActive","disallowToggle","$activeIndexes","bsCollapseCtrl","controllers","$animate","ngModelCtrl","attrs","isArray","bsCollapseToggle","$registerTarget","render","active","action","delay","useNative","dateType","dateFormat","timezone","modelDateFormat","dayFormat","monthFormat","yearFormat","monthTitleFormat","yearTitleFormat","strictFormat","autoclose","minDate","Infinity","maxDate","startView","minView","startWeek","daysOfWeekDisabled","iconLeft","iconRight","isNative","DatepickerFactory","parentScope","$datepicker","pickerViews","views","el","selected","date","focus","viewDate","$iconLeft","$iconRight","$picker","$views","$mode","datepickerViews","$selectPane","$toggleMode","setMode","select","isDate","$build","updateDisabledDates","disabledDateRanges","dateRanges","$date","$dateValue","keep","Date","year","getFullYear","month","getDate","mode","pristine","call","$updateSelected","rows","built","$isSelected","$setDisabledEl","disabled","isDisabled","steps","targetDate","getUTCFullYear","getUTCMonth","UTC","$onMouseDown","evt","preventDefault","stopPropagation","isTouch","getUTCDate","$onKeyDown","keyCode","shiftKey","altKey","updateSelected","onKeyDown","$digest","prop","focusElement","_init","_destroy","_show","_hide","blur","navigator","userAgent","previousValue","normalizeDateRanges","ranges","disabledRanges","datepicker","isMaxValid","isValid","isMinValid","isNaN","parsedDate","getTime","$parsers","unshift","$setValidity","getDateFormattedString","formatDate","bsShow","lang","format","$dateFormatter","dateParser","$dateParser","strict","validateAgainstMinMaxDate","getDateForAttribute","disabledDates","parse","timezoneOffsetAdjust","isUndefined","NaN","daySplit","arr","mod","n","m","arrays","size","$sce","weekDaysMin","weekdaysShort","weekDaysLabelsHtml","startDate","picker","weekDaysLabels","slice","concat","split","getMonth","update","firstDayOfMonth","firstDate","getDay","today","firstDateOffset","build","day","days","isToday","toDateString","label","muted","showLabels","labels","time","isSelected","newDate","name","firstMonth","months","lastDate","actualMonth","parseInt","firstYear","years","actualYear","setYear","placement","matchesSelector","DropdownFactory","$dropdown","onBodyClick","items","$rootScope","$new","parentEl","$isShown","removeClass","prototype","transclusion","bsDropdown","dropdown","service","splitTimeFormat","timeFormat","exec","DATETIME_FORMATS","id","getDatetimeFormat","SHORTDAY","hoursFormat","minutesFormat","secondsFormat","timeSeparator","showSeconds","dateFilter","ParseDate","seconds","$localeProvider","milliseconds","hours","array","isNumeric","parseFloat","isFinite","indexOfCaseInsensitive","len","str","toString","toLowerCase","DateParserFactory","minutes","getHours","getMilliseconds","getMinutes","proto","noop","toDate","regExpMap","sss","mm","keys","setFnMap","map","clonedFormat","search","v","sortedMap","regExpForFormat","re","join","text","Object","escapeReservedSymbols","RegExp","regex","HH","H","hh","h","a","EEEE","EEE","dd","d","MMMM","MMM","SHORTMONTH","MM","M","DAY","yyyy","yy","y","MONTH","ss","setSeconds","s","setMinutes","setHours","setDate","setMonth","setFullYear","setMap","$format","setMapForFormat","baseDate","formatRegex","formatSetMap","matches","fromDate","substr","getTimeForAttribute","daylightSavingAdjust","undo","func","timeout","context","factory","immediate","args","cancel","callNow","leading","trailing","wait","currentStyle","getComputedStyle","extra","boxRect","getBoundingClientRect","left","docElement","ownerDocument","curPosition","curLeft","curCSSTop","documentElement","clientTop","pageXOffset","scrollLeft","clientLeft","curCSSLeft","calculatePosition","curTop","curOffset","curElem","props","isFunction","using","offsetParentRect","offsetParentElement","outer","$parseOptions","$values","regexp","$match","displayFn","valueName","valueFn","ParseOptionsFactory","groupByFn","valuesFn","$parse","keyName","cancelAnimationFrame","values","displayValue","raf","webkitRequestAnimationFrame","mozRequestAnimationFrame","rafSupported","timer","prefixEvent","bodyElement","ModalFactory","enterAnimateCallback","version","minor","modalElement","unbindBackdropEvents","hideOnBackdropClick","backdropElement","preventEventDefault","bindKeyboardEvents","$onKeyUp","destroyModalElement","modalScope","$destroy","promise","$hide","$$postDigest","$id","$show","bottom","right","z-index","compileData","after","isElement","$emit","display","clonedElement","defaultPrevented","enter","backdropAnimation","safeDigest","bindBackdropEvents","leave","leaveAnimateCallback","unbindKeyboardEvents","which","$root","$$phase","query","bsModal","modal","routeAttr","$navbar","liElements","li","liElement","pattern","path","autoClose","$popover","PopoverFactory","$tooltip","dataTarget","popover","bsPopover","$applyPlacement","setViewport","viewport","spies","$document","debounce","throttle","ScrollSpyFactory","scrollEl","isWindowSpy","scrollId","$$count","$scrollspy","unbindViewContentLoaded","unbindIncludeContentLoaded","trackedElements","$trackedElements","sortedElements","activeTarget","debouncedCheckPosition","viewportHeight","throttledCheckPosition","debouncedCheckOffsets","checkOffsets","docEl","$activateElement","source","$getTrackedElement","filter","targetElement","querySelector","trackedElement","b","trackElement","toDelete","untrackElement","activate","scrollspy","multiple","allNoneButtons","sort","caretHtml","placeholder","allText","noneText","maxLength","maxLengthHtml","iconCheckmark","SelectFactory","$select","$activeIndex","$isMultiple","$showAllNoneButtons","$allText","$iconCheckmark","$isActive","$isVisible","$selectNone","$matches","$updateActiveIndex","$getIndex","minLength","$viewValue","l","dataMultiple","inputEl","watchedOptions","$watchCollection","parsedOptions","bsOptions","$isEmpty","timeType","modelTimeFormat","minTime","maxTime","hourStep","minuteStep","secondStep","roundDisplay","iconUp","iconDown","arrowBehavior","$timepicker","timepickerFactory","hour","meridian","coeff","selRange","end","start","setSelectionRange","collapse","selectionStart","moveStart","selectionEnd","moveEnd","floorMinutes","floor","selectedIndex","defaultDate","second","getSeconds","millisecond","$iconUp","$iconDown","$moveIndex","$switchMeridian","switchMeridian","minute","midIndex","$isDisabled","showAM","isAM","selectedTime","$arrowAction","$setTimeByStep","triggerHandler","sepLength","lateralMove","count","minutesLength","selectRange","hoursLength","incr","isSeconds","isMeridian","secondsLength","createSelection","createTextRange","parsedTime","getTimeFormattedString","timepicker","validateAgainstMinMaxTime","navClass","$activeClass","$panes","$activePaneChangeListeners","$push","pane","$navClass","$remove","activeIndex","$pane","$tab","transclude","postLink","bsTabsCtrl","bsActivePane","parsedBsActivePane","assign","limit","autoSelect","comparator","trimValue","$typeahead","$resetMatches","TypeaheadFactory","$filter","expression","results","typeahead","watchOptions","selectMode","isVisible","val","bsEnabled","selector","padding","String","htmlReplaceRegExp","$body","_tipToHide","tipElement","triggers","unbindTriggerEvents","$onFocusElementMouseDown","_autoCloseEventsBinded","bindAutoCloseEvents","unbindAutoCloseEvents","stopEventPropagation","event","getPosition","rect","elRect","p","scroll","isBody","getCalculatedOffset","actualWidth","actualHeight","outerDims","clientWidth","innerHeight","tip","marginTop","marginLeft","setOffset","delta","getViewportAdjustedDelta","isVertical","replaceArrow","arrowDelta","arrowOffsetPosition","viewportDimensions","$viewport","topEdgeOffset","bottomEdgeOffset","viewportPadding","leftEdgeOffset","rightEdgeOffset","dimension","isHorizontal","$arrow","clearTimeout","tipScope","$promise","$bsCompiler","$setEnabled","setEnabled","isEnabled","tipContainer","bindTriggerEvents","destroyTipElement","hoverState","lastChild","visibility","customClass","_blur","elementPosition","autoPlace","autoToken","viewportPosition","originalPlacement","tipHeight","tipPosition","applyPlacement","tipWidth","$location","tooltip","bsTooltip"],"mappings":"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","file":"angular-strap.min.js","sourcesContent":["(function(window, document, undefined) {\n'use strict';\n\n// Source: module.js\nangular.module('mgcrea.ngStrap', [\n 'mgcrea.ngStrap.modal',\n 'mgcrea.ngStrap.aside',\n 'mgcrea.ngStrap.alert',\n 'mgcrea.ngStrap.button',\n 'mgcrea.ngStrap.select',\n 'mgcrea.ngStrap.datepicker',\n 'mgcrea.ngStrap.timepicker',\n 'mgcrea.ngStrap.navbar',\n 'mgcrea.ngStrap.tooltip',\n 'mgcrea.ngStrap.popover',\n 'mgcrea.ngStrap.dropdown',\n 'mgcrea.ngStrap.typeahead',\n 'mgcrea.ngStrap.scrollspy',\n 'mgcrea.ngStrap.affix',\n 'mgcrea.ngStrap.tab',\n 'mgcrea.ngStrap.collapse'\n]);\n\n// Source: affix/affix.js\nangular.module('mgcrea.ngStrap.affix', ['mgcrea.ngStrap.helpers.dimensions', 'mgcrea.ngStrap.helpers.debounce'])\n\n .provider('$affix', function() {\n\n var defaults = this.defaults = {\n offsetTop: 'auto',\n inlineStyles: true\n };\n\n this.$get = function($window, debounce, dimensions) {\n\n var bodyEl = angular.element($window.document.body);\n var windowEl = angular.element($window);\n\n function AffixFactory(element, config) {\n\n var $affix = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n var targetEl = options.target;\n\n // Initial private vars\n var reset = 'affix affix-top affix-bottom',\n setWidth = false,\n initialAffixTop = 0,\n initialOffsetTop = 0,\n offsetTop = 0,\n offsetBottom = 0,\n affixed = null,\n unpin = null;\n\n var parent = element.parent();\n // Options: custom parent\n if (options.offsetParent) {\n if (options.offsetParent.match(/^\\d+$/)) {\n for (var i = 0; i < (options.offsetParent * 1) - 1; i++) {\n parent = parent.parent();\n }\n }\n else {\n parent = angular.element(options.offsetParent);\n }\n }\n\n $affix.init = function() {\n\n this.$parseOffsets();\n initialOffsetTop = dimensions.offset(element[0]).top + initialAffixTop;\n setWidth = !element[0].style.width;\n\n // Bind events\n targetEl.on('scroll', this.checkPosition);\n targetEl.on('click', this.checkPositionWithEventLoop);\n windowEl.on('resize', this.$debouncedOnResize);\n\n // Both of these checkPosition() calls are necessary for the case where\n // the user hits refresh after scrolling to the bottom of the page.\n this.checkPosition();\n this.checkPositionWithEventLoop();\n\n };\n\n $affix.destroy = function() {\n\n // Unbind events\n targetEl.off('scroll', this.checkPosition);\n targetEl.off('click', this.checkPositionWithEventLoop);\n windowEl.off('resize', this.$debouncedOnResize);\n\n };\n\n $affix.checkPositionWithEventLoop = function() {\n\n // IE 9 throws an error if we use 'this' instead of '$affix'\n // in this setTimeout call\n setTimeout($affix.checkPosition, 1);\n\n };\n\n $affix.checkPosition = function() {\n // if (!this.$element.is(':visible')) return\n\n var scrollTop = getScrollTop();\n var position = dimensions.offset(element[0]);\n var elementHeight = dimensions.height(element[0]);\n\n // Get required affix class according to position\n var affix = getRequiredAffixClass(unpin, position, elementHeight);\n\n // Did affix status changed this last check?\n if(affixed === affix) return;\n affixed = affix;\n\n // Add proper affix class\n element.removeClass(reset).addClass('affix' + ((affix !== 'middle') ? '-' + affix : ''));\n\n if(affix === 'top') {\n unpin = null;\n if(setWidth) {\n element.css('width', '');\n }\n if (options.inlineStyles) {\n element.css('position', (options.offsetParent) ? '' : 'relative');\n element.css('top', '');\n }\n } else if(affix === 'bottom') {\n if (options.offsetUnpin) {\n unpin = -(options.offsetUnpin * 1);\n }\n else {\n // Calculate unpin threshold when affixed to bottom.\n // Hopefully the browser scrolls pixel by pixel.\n unpin = position.top - scrollTop;\n }\n if(setWidth) {\n element.css('width', '');\n }\n if (options.inlineStyles) {\n element.css('position', (options.offsetParent) ? '' : 'relative');\n element.css('top', (options.offsetParent) ? '' : ((bodyEl[0].offsetHeight - offsetBottom - elementHeight - initialOffsetTop) + 'px'));\n }\n } else { // affix === 'middle'\n unpin = null;\n if(setWidth) {\n element.css('width', element[0].offsetWidth + 'px');\n }\n if (options.inlineStyles) {\n element.css('position', 'fixed');\n element.css('top', initialAffixTop + 'px');\n }\n }\n\n };\n\n $affix.$onResize = function() {\n $affix.$parseOffsets();\n $affix.checkPosition();\n };\n $affix.$debouncedOnResize = debounce($affix.$onResize, 50);\n\n $affix.$parseOffsets = function() {\n var initialPosition = element.css('position');\n // Reset position to calculate correct offsetTop\n if (options.inlineStyles){\n element.css('position', (options.offsetParent) ? '' : 'relative');\n }\n\n if(options.offsetTop) {\n if(options.offsetTop === 'auto') {\n options.offsetTop = '+0';\n }\n if(options.offsetTop.match(/^[-+]\\d+$/)) {\n initialAffixTop = - options.offsetTop * 1;\n if(options.offsetParent) {\n offsetTop = dimensions.offset(parent[0]).top + (options.offsetTop * 1);\n }\n else {\n offsetTop = dimensions.offset(element[0]).top - dimensions.css(element[0], 'marginTop', true) + (options.offsetTop * 1);\n }\n }\n else {\n offsetTop = options.offsetTop * 1;\n }\n }\n\n if(options.offsetBottom) {\n if(options.offsetParent && options.offsetBottom.match(/^[-+]\\d+$/)) {\n // add 1 pixel due to rounding problems...\n offsetBottom = getScrollHeight() - (dimensions.offset(parent[0]).top + dimensions.height(parent[0])) + (options.offsetBottom * 1) + 1;\n }\n else {\n offsetBottom = options.offsetBottom * 1;\n }\n }\n\n // Bring back the element's position after calculations\n if (options.inlineStyles){\n element.css('position', initialPosition);\n }\n };\n\n // Private methods\n\n function getRequiredAffixClass(unpin, position, elementHeight) {\n\n var scrollTop = getScrollTop();\n var scrollHeight = getScrollHeight();\n\n if(scrollTop <= offsetTop) {\n return 'top';\n } else if(unpin !== null && (scrollTop + unpin <= position.top)) {\n return 'middle';\n } else if(offsetBottom !== null && (position.top + elementHeight + initialAffixTop >= scrollHeight - offsetBottom)) {\n return 'bottom';\n } else {\n return 'middle';\n }\n\n }\n\n function getScrollTop() {\n return targetEl[0] === $window ? $window.pageYOffset : targetEl[0].scrollTop;\n }\n\n function getScrollHeight() {\n return targetEl[0] === $window ? $window.document.body.scrollHeight : targetEl[0].scrollHeight;\n }\n\n $affix.init();\n return $affix;\n\n }\n\n return AffixFactory;\n\n };\n\n })\n\n .directive('bsAffix', function($affix, $window) {\n\n return {\n restrict: 'EAC',\n require: '^?bsAffixTarget',\n link: function postLink(scope, element, attr, affixTarget) {\n\n var options = {scope: scope, target: affixTarget ? affixTarget.$element : angular.element($window)};\n angular.forEach(['offsetTop', 'offsetBottom', 'offsetParent', 'offsetUnpin', 'inlineStyles'], function(key) {\n if(angular.isDefined(attr[key])) {\n var option = attr[key];\n if (/true/i.test(option)) option = true;\n if (/false/i.test(option)) option = false;\n options[key] = option;\n }\n });\n\n var affix = $affix(element, options);\n scope.$on('$destroy', function() {\n affix && affix.destroy();\n options = null;\n affix = null;\n });\n\n }\n };\n\n })\n\n .directive('bsAffixTarget', function() {\n return {\n controller: function($element) {\n this.$element = $element;\n }\n };\n });\n\n// Source: alert/alert.js\n// @BUG: following snippet won't compile correctly\n// @TODO: submit issue to core\n// ' ' +\n\nangular.module('mgcrea.ngStrap.alert', ['mgcrea.ngStrap.modal'])\n\n .provider('$alert', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'alert',\n prefixEvent: 'alert',\n placement: null,\n templateUrl: 'alert/alert.tpl.html',\n container: false,\n element: null,\n backdrop: false,\n keyboard: true,\n show: true,\n // Specific options\n duration: false,\n type: false,\n dismissable: true\n };\n\n this.$get = function($modal, $timeout) {\n\n function AlertFactory(config) {\n\n var $alert = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $alert = $modal(options);\n\n // Support scope as string options [/*title, content, */ type, dismissable]\n $alert.$scope.dismissable = !!options.dismissable;\n if(options.type) {\n $alert.$scope.type = options.type;\n }\n\n // Support auto-close duration\n var show = $alert.show;\n if(options.duration) {\n $alert.show = function() {\n show();\n $timeout(function() {\n $alert.hide();\n }, options.duration * 1000);\n };\n }\n\n return $alert;\n\n }\n\n return AlertFactory;\n\n };\n\n })\n\n .directive('bsAlert', function($window, $sce, $alert) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'keyboard', 'html', 'container', 'animation', 'duration', 'dismissable'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['keyboard', 'html', 'container', 'dismissable'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // overwrite inherited title value when no value specified\n // fix for angular 1.3.1 531a8de72c439d8ddd064874bf364c00cedabb11\n if (!scope.hasOwnProperty('title')){\n scope.title = '';\n }\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content', 'type'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsAlert && scope.$watch(attr.bsAlert, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize alert\n var alert = $alert(options);\n\n // Trigger\n element.on(attr.trigger || 'click', alert.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (alert) alert.destroy();\n options = null;\n alert = null;\n });\n\n }\n };\n\n });\n\n// Source: aside/aside.js\nangular.module('mgcrea.ngStrap.aside', ['mgcrea.ngStrap.modal'])\n\n .provider('$aside', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade-and-slide-right',\n prefixClass: 'aside',\n prefixEvent: 'aside',\n placement: 'right',\n templateUrl: 'aside/aside.tpl.html',\n contentTemplate: false,\n container: false,\n element: null,\n backdrop: true,\n keyboard: true,\n html: false,\n show: true\n };\n\n this.$get = function($modal) {\n\n function AsideFactory(config) {\n\n var $aside = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $aside = $modal(options);\n\n return $aside;\n\n }\n\n return AsideFactory;\n\n };\n\n })\n\n .directive('bsAside', function($window, $sce, $aside) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'backdrop', 'keyboard', 'html', 'container', 'animation'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['backdrop', 'keyboard', 'html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsAside && scope.$watch(attr.bsAside, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize aside\n var aside = $aside(options);\n\n // Trigger\n element.on(attr.trigger || 'click', aside.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (aside) aside.destroy();\n options = null;\n aside = null;\n });\n\n }\n };\n\n });\n\n// Source: button/button.js\nangular.module('mgcrea.ngStrap.button', [])\n\n .provider('$button', function() {\n\n var defaults = this.defaults = {\n activeClass:'active',\n toggleEvent:'click'\n };\n\n this.$get = function() {\n return {defaults: defaults};\n };\n\n })\n\n .directive('bsCheckboxGroup', function() {\n\n return {\n restrict: 'A',\n require: 'ngModel',\n compile: function postLink(element, attr) {\n element.attr('data-toggle', 'buttons');\n element.removeAttr('ng-model');\n var children = element[0].querySelectorAll('input[type=\"checkbox\"]');\n angular.forEach(children, function(child) {\n var childEl = angular.element(child);\n childEl.attr('bs-checkbox', '');\n childEl.attr('ng-model', attr.ngModel + '.' + childEl.attr('value'));\n });\n }\n\n };\n\n })\n\n .directive('bsCheckbox', function($button, $$rAF) {\n\n var defaults = $button.defaults;\n var constantValueRegExp = /^(true|false|\\d+)$/;\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n var options = defaults;\n\n // Support label > input[type=\"checkbox\"]\n var isInput = element[0].nodeName === 'INPUT';\n var activeElement = isInput ? element.parent() : element;\n\n var trueValue = angular.isDefined(attr.trueValue) ? attr.trueValue : true;\n if(constantValueRegExp.test(attr.trueValue)) {\n trueValue = scope.$eval(attr.trueValue);\n }\n var falseValue = angular.isDefined(attr.falseValue) ? attr.falseValue : false;\n if(constantValueRegExp.test(attr.falseValue)) {\n falseValue = scope.$eval(attr.falseValue);\n }\n\n // Parse exotic values\n var hasExoticValues = typeof trueValue !== 'boolean' || typeof falseValue !== 'boolean';\n if(hasExoticValues) {\n controller.$parsers.push(function(viewValue) {\n // console.warn('$parser', element.attr('ng-model'), 'viewValue', viewValue);\n return viewValue ? trueValue : falseValue;\n });\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n return angular.equals(modelValue, trueValue);\n });\n // Fix rendering for exotic values\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n controller.$render();\n });\n }\n\n // model -> view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var isActive = angular.equals(controller.$modelValue, trueValue);\n $$rAF(function() {\n if(isInput) element[0].checked = isActive;\n activeElement.toggleClass(options.activeClass, isActive);\n });\n };\n\n // view -> model\n element.bind(options.toggleEvent, function() {\n scope.$apply(function () {\n // console.warn('!click', element.attr('ng-model'), 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue, 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue);\n if(!isInput) {\n controller.$setViewValue(!activeElement.hasClass('active'));\n }\n if(!hasExoticValues) {\n controller.$render();\n }\n });\n });\n\n }\n\n };\n\n })\n\n .directive('bsRadioGroup', function() {\n\n return {\n restrict: 'A',\n require: 'ngModel',\n compile: function postLink(element, attr) {\n element.attr('data-toggle', 'buttons');\n element.removeAttr('ng-model');\n var children = element[0].querySelectorAll('input[type=\"radio\"]');\n angular.forEach(children, function(child) {\n angular.element(child).attr('bs-radio', '');\n angular.element(child).attr('ng-model', attr.ngModel);\n });\n }\n\n };\n\n })\n\n .directive('bsRadio', function($button, $$rAF) {\n\n var defaults = $button.defaults;\n var constantValueRegExp = /^(true|false|\\d+)$/;\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n var options = defaults;\n\n // Support `label > input[type=\"radio\"]` markup\n var isInput = element[0].nodeName === 'INPUT';\n var activeElement = isInput ? element.parent() : element;\n\n var value;\n attr.$observe('value', function(v) {\n value = constantValueRegExp.test(v) ? scope.$eval(v) : v;\n controller.$render();\n });\n\n // model -> view\n controller.$render = function () {\n // console.warn('$render', element.attr('value'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var isActive = angular.equals(controller.$modelValue, value);\n $$rAF(function() {\n if(isInput) element[0].checked = isActive;\n activeElement.toggleClass(options.activeClass, isActive);\n });\n };\n\n // view -> model\n element.bind(options.toggleEvent, function() {\n scope.$apply(function () {\n // console.warn('!click', element.attr('value'), 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue, 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue);\n controller.$setViewValue(value);\n controller.$render();\n });\n });\n\n }\n\n };\n\n });\n\n// Source: collapse/collapse.js\nangular.module('mgcrea.ngStrap.collapse', [])\n\n .provider('$collapse', function() {\n\n var defaults = this.defaults = {\n animation: 'am-collapse',\n disallowToggle: false,\n activeClass: 'in',\n startCollapsed: false,\n allowMultiple: false\n };\n\n var controller = this.controller = function($scope, $element, $attrs) {\n var self = this;\n\n // Attributes options\n self.$options = angular.copy(defaults);\n angular.forEach(['animation', 'disallowToggle', 'activeClass', 'startCollapsed', 'allowMultiple'], function (key) {\n if(angular.isDefined($attrs[key])) self.$options[key] = $attrs[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['disallowToggle', 'startCollapsed', 'allowMultiple'], function(key) {\n if(angular.isDefined($attrs[key]) && falseValueRegExp.test($attrs[key])) {\n self.$options[key] = false;\n }\n });\n\n self.$toggles = [];\n self.$targets = [];\n\n self.$viewChangeListeners = [];\n\n self.$registerToggle = function(element) {\n self.$toggles.push(element);\n };\n self.$registerTarget = function(element) {\n self.$targets.push(element);\n };\n\n self.$unregisterToggle = function(element) {\n var index = self.$toggles.indexOf(element);\n // remove toggle from $toggles array\n self.$toggles.splice(index, 1);\n };\n self.$unregisterTarget = function(element) {\n var index = self.$targets.indexOf(element);\n\n // remove element from $targets array\n self.$targets.splice(index, 1);\n\n if (self.$options.allowMultiple) {\n // remove target index from $active array values\n deactivateItem(element);\n }\n\n // fix active item indexes\n fixActiveItemIndexes(index);\n\n self.$viewChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n // use array to store all the currently open panels\n self.$targets.$active = !self.$options.startCollapsed ? [0] : [];\n self.$setActive = $scope.$setActive = function(value) {\n if(angular.isArray(value)) {\n self.$targets.$active = value;\n }\n else if(!self.$options.disallowToggle) {\n // toogle element active status\n isActive(value) ? deactivateItem(value) : activateItem(value);\n } else {\n activateItem(value);\n }\n\n self.$viewChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n self.$activeIndexes = function() {\n return self.$options.allowMultiple ? self.$targets.$active :\n self.$targets.$active.length === 1 ? self.$targets.$active[0] : -1;\n };\n\n function fixActiveItemIndexes(index) {\n // item with index was removed, so we\n // need to adjust other items index values\n var activeIndexes = self.$targets.$active;\n for(var i = 0; i < activeIndexes.length; i++) {\n if (index < activeIndexes[i]) {\n activeIndexes[i] = activeIndexes[i] - 1;\n }\n\n // the last item is active, so we need to\n // adjust its index\n if (activeIndexes[i] === self.$targets.length) {\n activeIndexes[i] = self.$targets.length - 1;\n }\n }\n }\n\n function isActive(value) {\n var activeItems = self.$targets.$active;\n return activeItems.indexOf(value) === -1 ? false : true;\n }\n\n function deactivateItem(value) {\n var index = self.$targets.$active.indexOf(value);\n if (index !== -1) {\n self.$targets.$active.splice(index, 1);\n }\n }\n\n function activateItem(value) {\n if (!self.$options.allowMultiple) {\n // remove current selected item\n self.$targets.$active.splice(0, 1);\n }\n\n if (self.$targets.$active.indexOf(value) === -1) {\n self.$targets.$active.push(value);\n }\n }\n\n };\n\n this.$get = function() {\n var $collapse = {};\n $collapse.defaults = defaults;\n $collapse.controller = controller;\n return $collapse;\n };\n\n })\n\n .directive('bsCollapse', function($window, $animate, $collapse) {\n\n var defaults = $collapse.defaults;\n\n return {\n require: ['?ngModel', 'bsCollapse'],\n controller: ['$scope', '$element', '$attrs', $collapse.controller],\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n if(ngModelCtrl) {\n\n // Update the modelValue following\n bsCollapseCtrl.$viewChangeListeners.push(function() {\n ngModelCtrl.$setViewValue(bsCollapseCtrl.$activeIndexes());\n });\n\n // modelValue -> $formatters -> viewValue\n ngModelCtrl.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n if (angular.isArray(modelValue)) {\n // model value is an array, so just replace\n // the active items directly\n bsCollapseCtrl.$setActive(modelValue);\n }\n else {\n var activeIndexes = bsCollapseCtrl.$activeIndexes();\n\n if (angular.isArray(activeIndexes)) {\n // we have an array of selected indexes\n if (activeIndexes.indexOf(modelValue * 1) === -1) {\n // item with modelValue index is not active\n bsCollapseCtrl.$setActive(modelValue * 1);\n }\n }\n else if (activeIndexes !== modelValue * 1) {\n bsCollapseCtrl.$setActive(modelValue * 1);\n }\n }\n return modelValue;\n });\n\n }\n\n }\n };\n\n })\n\n .directive('bsCollapseToggle', function() {\n\n return {\n require: ['^?ngModel', '^bsCollapse'],\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n // Add base attr\n element.attr('data-toggle', 'collapse');\n\n // Push pane to parent bsCollapse controller\n bsCollapseCtrl.$registerToggle(element);\n\n // remove toggle from collapse controller when toggle is destroyed\n scope.$on('$destroy', function() {\n bsCollapseCtrl.$unregisterToggle(element);\n });\n\n element.on('click', function() {\n var index = attrs.bsCollapseToggle && attrs.bsCollapseToggle !== 'bs-collapse-toggle' ? attrs.bsCollapseToggle : bsCollapseCtrl.$toggles.indexOf(element);\n bsCollapseCtrl.$setActive(index * 1);\n scope.$apply();\n });\n\n }\n };\n\n })\n\n .directive('bsCollapseTarget', function($animate) {\n\n return {\n require: ['^?ngModel', '^bsCollapse'],\n // scope: true,\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n // Add base class\n element.addClass('collapse');\n\n // Add animation class\n if(bsCollapseCtrl.$options.animation) {\n element.addClass(bsCollapseCtrl.$options.animation);\n }\n\n // Push pane to parent bsCollapse controller\n bsCollapseCtrl.$registerTarget(element);\n\n // remove pane target from collapse controller when target is destroyed\n scope.$on('$destroy', function() {\n bsCollapseCtrl.$unregisterTarget(element);\n });\n\n function render() {\n var index = bsCollapseCtrl.$targets.indexOf(element);\n var active = bsCollapseCtrl.$activeIndexes();\n var action = 'removeClass';\n if (angular.isArray(active)) {\n if (active.indexOf(index) !== -1) {\n action = 'addClass';\n }\n }\n else if (index === active) {\n action = 'addClass';\n }\n\n $animate[action](element, bsCollapseCtrl.$options.activeClass);\n }\n\n bsCollapseCtrl.$viewChangeListeners.push(function() {\n render();\n });\n render();\n\n }\n };\n\n });\n\n// Source: datepicker/datepicker.js\nangular.module('mgcrea.ngStrap.datepicker', [\n 'mgcrea.ngStrap.helpers.dateParser',\n 'mgcrea.ngStrap.helpers.dateFormatter',\n 'mgcrea.ngStrap.tooltip'])\n\n .provider('$datepicker', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n //uncommenting the following line will break backwards compatability\n // prefixEvent: 'datepicker',\n prefixClass: 'datepicker',\n placement: 'bottom-left',\n templateUrl: 'datepicker/datepicker.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n // lang: $locale.id,\n useNative: false,\n dateType: 'date',\n dateFormat: 'shortDate',\n timezone: null,\n modelDateFormat: null,\n dayFormat: 'dd',\n monthFormat: 'MMM',\n yearFormat: 'yyyy',\n monthTitleFormat: 'MMMM yyyy',\n yearTitleFormat: 'yyyy',\n strictFormat: false,\n autoclose: false,\n minDate: -Infinity,\n maxDate: +Infinity,\n startView: 0,\n minView: 0,\n startWeek: 0,\n daysOfWeekDisabled: '',\n iconLeft: 'glyphicon glyphicon-chevron-left',\n iconRight: 'glyphicon glyphicon-chevron-right'\n };\n\n this.$get = function($window, $document, $rootScope, $sce, $dateFormatter, datepickerViews, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n if(!defaults.lang) defaults.lang = $dateFormatter.getDefaultLocale();\n\n function DatepickerFactory(element, controller, config) {\n\n var $datepicker = $tooltip(element, angular.extend({}, defaults, config));\n var parentScope = config.scope;\n var options = $datepicker.$options;\n var scope = $datepicker.$scope;\n if(options.startView) options.startView -= options.minView;\n\n // View vars\n\n var pickerViews = datepickerViews($datepicker);\n $datepicker.$views = pickerViews.views;\n var viewDate = pickerViews.viewDate;\n scope.$mode = options.startView;\n scope.$iconLeft = options.iconLeft;\n scope.$iconRight = options.iconRight;\n var $picker = $datepicker.$views[scope.$mode];\n\n // Scope methods\n\n scope.$select = function(date) {\n $datepicker.select(date);\n };\n scope.$selectPane = function(value) {\n $datepicker.$selectPane(value);\n };\n scope.$toggleMode = function() {\n $datepicker.setMode((scope.$mode + 1) % $datepicker.$views.length);\n };\n\n // Public methods\n\n $datepicker.update = function(date) {\n // console.warn('$datepicker.update() newValue=%o', date);\n if(angular.isDate(date) && !isNaN(date.getTime())) {\n $datepicker.$date = date;\n $picker.update.call($picker, date);\n }\n // Build only if pristine\n $datepicker.$build(true);\n };\n\n $datepicker.updateDisabledDates = function(dateRanges) {\n options.disabledDateRanges = dateRanges;\n for(var i = 0, l = scope.rows.length; i < l; i++) {\n angular.forEach(scope.rows[i], $datepicker.$setDisabledEl);\n }\n };\n\n $datepicker.select = function(date, keep) {\n // console.warn('$datepicker.select', date, scope.$mode);\n if(!angular.isDate(controller.$dateValue)) controller.$dateValue = new Date(date);\n if(!scope.$mode || keep) {\n controller.$setViewValue(angular.copy(date));\n controller.$render();\n if(options.autoclose && !keep) {\n $timeout(function() { $datepicker.hide(true); });\n }\n } else {\n angular.extend(viewDate, {year: date.getFullYear(), month: date.getMonth(), date: date.getDate()});\n $datepicker.setMode(scope.$mode - 1);\n $datepicker.$build();\n }\n };\n\n $datepicker.setMode = function(mode) {\n // console.warn('$datepicker.setMode', mode);\n scope.$mode = mode;\n $picker = $datepicker.$views[scope.$mode];\n $datepicker.$build();\n };\n\n // Protected methods\n\n $datepicker.$build = function(pristine) {\n // console.warn('$datepicker.$build() viewDate=%o', viewDate);\n if(pristine === true && $picker.built) return;\n if(pristine === false && !$picker.built) return;\n $picker.build.call($picker);\n };\n\n $datepicker.$updateSelected = function() {\n for(var i = 0, l = scope.rows.length; i < l; i++) {\n angular.forEach(scope.rows[i], updateSelected);\n }\n };\n\n $datepicker.$isSelected = function(date) {\n return $picker.isSelected(date);\n };\n\n $datepicker.$setDisabledEl = function(el) {\n el.disabled = $picker.isDisabled(el.date);\n };\n\n $datepicker.$selectPane = function(value) {\n var steps = $picker.steps;\n // set targetDate to first day of month to avoid problems with\n // date values rollover. This assumes the viewDate does not\n // depend on the day of the month\n var targetDate = new Date(Date.UTC(viewDate.year + ((steps.year || 0) * value), viewDate.month + ((steps.month || 0) * value), 1));\n angular.extend(viewDate, {year: targetDate.getUTCFullYear(), month: targetDate.getUTCMonth(), date: targetDate.getUTCDate()});\n $datepicker.$build();\n };\n\n $datepicker.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n if(targetEl[0].nodeName.toLowerCase() !== 'button') {\n targetEl = targetEl.parent();\n }\n targetEl.triggerHandler('click');\n }\n };\n\n $datepicker.$onKeyDown = function(evt) {\n if (!/(38|37|39|40|13)/.test(evt.keyCode) || evt.shiftKey || evt.altKey) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n if(evt.keyCode === 13) {\n if(!scope.$mode) {\n return $datepicker.hide(true);\n } else {\n return scope.$apply(function() { $datepicker.setMode(scope.$mode - 1); });\n }\n }\n\n // Navigate with keyboard\n $picker.onKeyDown(evt);\n parentScope.$digest();\n };\n\n // Private\n\n function updateSelected(el) {\n el.selected = $datepicker.$isSelected(el.date);\n }\n\n function focusElement() {\n element[0].focus();\n }\n\n // Overrides\n\n var _init = $datepicker.init;\n $datepicker.init = function() {\n if(isNative && options.useNative) {\n element.prop('type', 'date');\n element.css('-webkit-appearance', 'textfield');\n return;\n } else if(isTouch) {\n element.prop('type', 'text');\n element.attr('readonly', 'true');\n element.on('click', focusElement);\n }\n _init();\n };\n\n var _destroy = $datepicker.destroy;\n $datepicker.destroy = function() {\n if(isNative && options.useNative) {\n element.off('click', focusElement);\n }\n _destroy();\n };\n\n var _show = $datepicker.show;\n $datepicker.show = function() {\n if((!isTouch && element.attr('readonly')) || element.attr('disabled')) return;\n _show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n // if $datepicker is no longer showing, don't setup events\n if(!$datepicker.$isShown) return;\n $datepicker.$element.on(isTouch ? 'touchstart' : 'mousedown', $datepicker.$onMouseDown);\n if(options.keyboard) {\n element.on('keydown', $datepicker.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $datepicker.hide;\n $datepicker.hide = function(blur) {\n if(!$datepicker.$isShown) return;\n $datepicker.$element.off(isTouch ? 'touchstart' : 'mousedown', $datepicker.$onMouseDown);\n if(options.keyboard) {\n element.off('keydown', $datepicker.$onKeyDown);\n }\n _hide(blur);\n };\n\n return $datepicker;\n\n }\n\n DatepickerFactory.defaults = defaults;\n return DatepickerFactory;\n\n };\n\n })\n\n .directive('bsDatepicker', function($window, $parse, $q, $dateFormatter, $dateParser, $datepicker) {\n\n var defaults = $datepicker.defaults;\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'autoclose', 'dateType', 'dateFormat', 'timezone', 'modelDateFormat', 'dayFormat', 'strictFormat', 'startWeek', 'startDate', 'useNative', 'lang', 'startView', 'minView', 'iconLeft', 'iconRight', 'daysOfWeekDisabled', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoclose', 'useNative'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!datepicker || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(datepicker),?/i);\n newValue === true ? datepicker.show() : datepicker.hide();\n });\n\n // Initialize datepicker\n var datepicker = $datepicker(element, controller, options);\n options = datepicker.$options;\n // Set expected iOS format\n if(isNative && options.useNative) options.dateFormat = 'yyyy-MM-dd';\n\n var lang = options.lang;\n\n var formatDate = function(date, format) {\n return $dateFormatter.formatDate(date, format, lang);\n };\n\n var dateParser = $dateParser({format: options.dateFormat, lang: lang, strict: options.strictFormat});\n\n // Observe attributes for changes\n angular.forEach(['minDate', 'maxDate'], function(key) {\n // console.warn('attr.$observe(%s)', key, attr[key]);\n angular.isDefined(attr[key]) && attr.$observe(key, function(newValue) {\n // console.warn('attr.$observe(%s)=%o', key, newValue);\n datepicker.$options[key] = dateParser.getDateForAttribute(key, newValue);\n // Build only if dirty\n !isNaN(datepicker.$options[key]) && datepicker.$build(false);\n validateAgainstMinMaxDate(controller.$dateValue);\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n datepicker.update(controller.$dateValue);\n }, true);\n\n // Normalize undefined/null/empty array,\n // so that we don't treat changing from undefined->null as a change.\n function normalizeDateRanges(ranges) {\n if (!ranges || !ranges.length) return null;\n return ranges;\n }\n\n if (angular.isDefined(attr.disabledDates)) {\n scope.$watch(attr.disabledDates, function(disabledRanges, previousValue) {\n disabledRanges = normalizeDateRanges(disabledRanges);\n previousValue = normalizeDateRanges(previousValue);\n\n if (disabledRanges) {\n datepicker.updateDisabledDates(disabledRanges);\n }\n });\n }\n\n function validateAgainstMinMaxDate(parsedDate) {\n if (!angular.isDate(parsedDate)) return;\n var isMinValid = isNaN(datepicker.$options.minDate) || parsedDate.getTime() >= datepicker.$options.minDate;\n var isMaxValid = isNaN(datepicker.$options.maxDate) || parsedDate.getTime() <= datepicker.$options.maxDate;\n var isValid = isMinValid && isMaxValid;\n controller.$setValidity('date', isValid);\n controller.$setValidity('min', isMinValid);\n controller.$setValidity('max', isMaxValid);\n // Only update the model when we have a valid date\n if(isValid) controller.$dateValue = parsedDate;\n }\n\n // viewValue -> $parsers -> modelValue\n controller.$parsers.unshift(function(viewValue) {\n // console.warn('$parser(\"%s\"): viewValue=%o', element.attr('ng-model'), viewValue);\n var date;\n // Null values should correctly reset the model value & validity\n if(!viewValue) {\n controller.$setValidity('date', true);\n // BREAKING CHANGE:\n // return null (not undefined) when input value is empty, so angularjs 1.3\n // ngModelController can go ahead and run validators, like ngRequired\n return null;\n }\n var parsedDate = dateParser.parse(viewValue, controller.$dateValue);\n if(!parsedDate || isNaN(parsedDate.getTime())) {\n controller.$setValidity('date', false);\n // return undefined, causes ngModelController to\n // invalidate model value\n return;\n } else {\n validateAgainstMinMaxDate(parsedDate);\n }\n\n if(options.dateType === 'string') {\n date = dateParser.timezoneOffsetAdjust(parsedDate, options.timezone, true);\n return formatDate(date, options.modelDateFormat || options.dateFormat);\n }\n date = dateParser.timezoneOffsetAdjust(controller.$dateValue, options.timezone, true);\n if(options.dateType === 'number') {\n return date.getTime();\n } else if(options.dateType === 'unix') {\n return date.getTime() / 1000;\n } else if(options.dateType === 'iso') {\n return date.toISOString();\n } else {\n return new Date(date);\n }\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var date;\n if(angular.isUndefined(modelValue) || modelValue === null) {\n date = NaN;\n } else if(angular.isDate(modelValue)) {\n date = modelValue;\n } else if(options.dateType === 'string') {\n date = dateParser.parse(modelValue, null, options.modelDateFormat);\n } else if(options.dateType === 'unix') {\n date = new Date(modelValue * 1000);\n } else {\n date = new Date(modelValue);\n }\n // Setup default value?\n // if(isNaN(date.getTime())) {\n // var today = new Date();\n // date = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0, 0);\n // }\n controller.$dateValue = dateParser.timezoneOffsetAdjust(date, options.timezone);\n return getDateFormattedString();\n });\n\n // viewValue -> element\n controller.$render = function() {\n // console.warn('$render(\"%s\"): viewValue=%o', element.attr('ng-model'), controller.$viewValue);\n element.val(getDateFormattedString());\n };\n\n function getDateFormattedString() {\n return !controller.$dateValue || isNaN(controller.$dateValue.getTime()) ? '' : formatDate(controller.$dateValue, options.dateFormat);\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if(datepicker) datepicker.destroy();\n options = null;\n datepicker = null;\n });\n\n }\n };\n\n })\n\n .provider('datepickerViews', function() {\n\n var defaults = this.defaults = {\n dayFormat: 'dd',\n daySplit: 7\n };\n\n // Split array into smaller arrays\n function split(arr, size) {\n var arrays = [];\n while(arr.length > 0) {\n arrays.push(arr.splice(0, size));\n }\n return arrays;\n }\n\n // Modulus operator\n function mod(n, m) {\n return ((n % m) + m) % m;\n }\n\n this.$get = function($dateFormatter, $dateParser, $sce) {\n\n return function(picker) {\n\n var scope = picker.$scope;\n var options = picker.$options;\n\n var lang = options.lang;\n var formatDate = function(date, format) {\n return $dateFormatter.formatDate(date, format, lang);\n };\n var dateParser = $dateParser({format: options.dateFormat, lang: lang, strict: options.strictFormat});\n\n var weekDaysMin = $dateFormatter.weekdaysShort(lang);\n var weekDaysLabels = weekDaysMin.slice(options.startWeek).concat(weekDaysMin.slice(0, options.startWeek));\n var weekDaysLabelsHtml = $sce.trustAsHtml('' + weekDaysLabels.join('') + '');\n\n var startDate = picker.$date || (options.startDate ? dateParser.getDateForAttribute('startDate', options.startDate) : new Date());\n var viewDate = {year: startDate.getFullYear(), month: startDate.getMonth(), date: startDate.getDate()};\n\n var views = [{\n format: options.dayFormat,\n split: 7,\n steps: { month: 1 },\n update: function(date, force) {\n if(!this.built || force || date.getFullYear() !== viewDate.year || date.getMonth() !== viewDate.month) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getDate() !== viewDate.date || date.getDate() === 1) {\n // chaging picker current month will cause viewDate.date to be set to first day of the month,\n // in $datepicker.$selectPane, so picker would not update selected day display if\n // user picks first day of the new month.\n // As a workaround, we are always forcing update when picked date is first day of month.\n viewDate.date = picker.$date.getDate();\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstDayOfMonth = new Date(viewDate.year, viewDate.month, 1), firstDayOfMonthOffset = firstDayOfMonth.getTimezoneOffset();\n var firstDate = new Date(+firstDayOfMonth - mod(firstDayOfMonth.getDay() - options.startWeek, 7) * 864e5), firstDateOffset = firstDate.getTimezoneOffset();\n var today = dateParser.timezoneOffsetAdjust(new Date(), options.timezone).toDateString();\n // Handle daylight time switch\n if(firstDateOffset !== firstDayOfMonthOffset) firstDate = new Date(+firstDate + (firstDateOffset - firstDayOfMonthOffset) * 60e3);\n var days = [], day;\n for(var i = 0; i < 42; i++) { // < 7 * 6\n day = dateParser.daylightSavingAdjust(new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + i));\n days.push({date: day, isToday: day.toDateString() === today, label: formatDate(day, this.format), selected: picker.$date && this.isSelected(day), muted: day.getMonth() !== viewDate.month, disabled: this.isDisabled(day)});\n }\n scope.title = formatDate(firstDayOfMonth, options.monthTitleFormat);\n scope.showLabels = true;\n scope.labels = weekDaysLabelsHtml;\n scope.rows = split(days, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear() && date.getMonth() === picker.$date.getMonth() && date.getDate() === picker.$date.getDate();\n },\n isDisabled: function(date) {\n var time = date.getTime();\n\n // Disabled because of min/max date.\n if (time < options.minDate || time > options.maxDate) return true;\n\n // Disabled due to being a disabled day of the week\n if (options.daysOfWeekDisabled.indexOf(date.getDay()) !== -1) return true;\n\n // Disabled because of disabled date range.\n if (options.disabledDateRanges) {\n for (var i = 0; i < options.disabledDateRanges.length; i++) {\n if (time >= options.disabledDateRanges[i].start && time <= options.disabledDateRanges[i].end) {\n return true;\n }\n }\n }\n\n return false;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualTime = picker.$date.getTime();\n var newDate;\n\n if(evt.keyCode === 37) newDate = new Date(actualTime - 1 * 864e5);\n else if(evt.keyCode === 38) newDate = new Date(actualTime - 7 * 864e5);\n else if(evt.keyCode === 39) newDate = new Date(actualTime + 1 * 864e5);\n else if(evt.keyCode === 40) newDate = new Date(actualTime + 7 * 864e5);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }, {\n name: 'month',\n format: options.monthFormat,\n split: 4,\n steps: { year: 1 },\n update: function(date, force) {\n if(!this.built || date.getFullYear() !== viewDate.year) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getMonth() !== viewDate.month) {\n angular.extend(viewDate, {month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstMonth = new Date(viewDate.year, 0, 1);\n var months = [], month;\n for (var i = 0; i < 12; i++) {\n month = new Date(viewDate.year, i, 1);\n months.push({date: month, label: formatDate(month, this.format), selected: picker.$isSelected(month), disabled: this.isDisabled(month)});\n }\n scope.title = formatDate(month, options.yearTitleFormat);\n scope.showLabels = false;\n scope.rows = split(months, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear() && date.getMonth() === picker.$date.getMonth();\n },\n isDisabled: function(date) {\n var lastDate = +new Date(date.getFullYear(), date.getMonth() + 1, 0);\n return lastDate < options.minDate || date.getTime() > options.maxDate;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualMonth = picker.$date.getMonth();\n var newDate = new Date(picker.$date);\n\n if(evt.keyCode === 37) newDate.setMonth(actualMonth - 1);\n else if(evt.keyCode === 38) newDate.setMonth(actualMonth - 4);\n else if(evt.keyCode === 39) newDate.setMonth(actualMonth + 1);\n else if(evt.keyCode === 40) newDate.setMonth(actualMonth + 4);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }, {\n name: 'year',\n format: options.yearFormat,\n split: 4,\n steps: { year: 12 },\n update: function(date, force) {\n if(!this.built || force || parseInt(date.getFullYear()/20, 10) !== parseInt(viewDate.year/20, 10)) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getFullYear() !== viewDate.year) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstYear = viewDate.year - viewDate.year % (this.split * 3);\n var years = [], year;\n for (var i = 0; i < 12; i++) {\n year = new Date(firstYear + i, 0, 1);\n years.push({date: year, label: formatDate(year, this.format), selected: picker.$isSelected(year), disabled: this.isDisabled(year)});\n }\n scope.title = years[0].label + '-' + years[years.length - 1].label;\n scope.showLabels = false;\n scope.rows = split(years, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear();\n },\n isDisabled: function(date) {\n var lastDate = +new Date(date.getFullYear() + 1, 0, 0);\n return lastDate < options.minDate || date.getTime() > options.maxDate;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualYear = picker.$date.getFullYear(),\n newDate = new Date(picker.$date);\n\n if(evt.keyCode === 37) newDate.setYear(actualYear - 1);\n else if(evt.keyCode === 38) newDate.setYear(actualYear - 4);\n else if(evt.keyCode === 39) newDate.setYear(actualYear + 1);\n else if(evt.keyCode === 40) newDate.setYear(actualYear + 4);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }];\n\n return {\n views: options.minView ? Array.prototype.slice.call(views, options.minView) : views,\n viewDate: viewDate\n };\n\n };\n\n };\n\n });\n\n// Source: dropdown/dropdown.js\nangular.module('mgcrea.ngStrap.dropdown', ['mgcrea.ngStrap.tooltip'])\n\n .provider('$dropdown', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'dropdown',\n prefixEvent: 'dropdown',\n placement: 'bottom-left',\n templateUrl: 'dropdown/dropdown.tpl.html',\n trigger: 'click',\n container: false,\n keyboard: true,\n html: false,\n delay: 0\n };\n\n this.$get = function($window, $rootScope, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var matchesSelector = Element.prototype.matchesSelector || Element.prototype.webkitMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector;\n\n function DropdownFactory(element, config) {\n\n var $dropdown = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n var scope = $dropdown.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n $dropdown = $tooltip(element, options);\n var parentEl = element.parent();\n\n // Protected methods\n\n $dropdown.$onKeyDown = function(evt) {\n if (!/(38|40)/.test(evt.keyCode)) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // Retrieve focused index\n var items = angular.element($dropdown.$element[0].querySelectorAll('li:not(.divider) a'));\n if(!items.length) return;\n var index;\n angular.forEach(items, function(el, i) {\n if(matchesSelector && matchesSelector.call(el, ':focus')) index = i;\n });\n\n // Navigate with keyboard\n if(evt.keyCode === 38 && index > 0) index--;\n else if(evt.keyCode === 40 && index < items.length - 1) index++;\n else if(angular.isUndefined(index)) index = 0;\n items.eq(index)[0].focus();\n\n };\n\n // Overrides\n\n var show = $dropdown.show;\n $dropdown.show = function() {\n show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n options.keyboard && $dropdown.$element && $dropdown.$element.on('keydown', $dropdown.$onKeyDown);\n bodyEl.on('click', onBodyClick);\n }, 0, false);\n parentEl.hasClass('dropdown') && parentEl.addClass('open');\n };\n\n var hide = $dropdown.hide;\n $dropdown.hide = function() {\n if(!$dropdown.$isShown) return;\n options.keyboard && $dropdown.$element && $dropdown.$element.off('keydown', $dropdown.$onKeyDown);\n bodyEl.off('click', onBodyClick);\n parentEl.hasClass('dropdown') && parentEl.removeClass('open');\n hide();\n };\n\n var destroy = $dropdown.destroy;\n $dropdown.destroy = function() {\n bodyEl.off('click', onBodyClick);\n destroy();\n };\n\n // Private functions\n\n function onBodyClick(evt) {\n if(evt.target === element[0]) return;\n return evt.target !== element[0] && $dropdown.hide();\n }\n\n return $dropdown;\n\n }\n\n return DropdownFactory;\n\n };\n\n })\n\n .directive('bsDropdown', function($window, $sce, $dropdown) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'id'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as an object\n attr.bsDropdown && scope.$watch(attr.bsDropdown, function(newValue, oldValue) {\n scope.content = newValue;\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!dropdown || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(dropdown),?/i);\n newValue === true ? dropdown.show() : dropdown.hide();\n });\n\n // Initialize dropdown\n var dropdown = $dropdown(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (dropdown) dropdown.destroy();\n options = null;\n dropdown = null;\n });\n\n }\n };\n\n });\n\n// Source: helpers/compiler.js\n// NOTICE: This file was forked from the angular-material project (github.com/angular/material)\n// MIT Licensed - Copyright (c) 2014-2015 Google, Inc. http://angularjs.org\n\nangular.module('mgcrea.ngStrap.core', [])\n .service('$bsCompiler', bsCompilerService);\n\nfunction bsCompilerService($q, $http, $injector, $compile, $controller, $templateCache) {\n /* jshint validthis: true */\n\n /*\n * @ngdoc service\n * @name $bsCompiler\n * @module material.core\n * @description\n * The $bsCompiler service is an abstraction of angular's compiler, that allows the developer\n * to easily compile an element with a templateUrl, controller, and locals.\n *\n * @usage\n * \n * $bsCompiler.compile({\n * templateUrl: 'modal.html',\n * controller: 'ModalCtrl',\n * locals: {\n * modal: myModalInstance;\n * }\n * }).then(function(compileData) {\n * compileData.element; // modal.html's template in an element\n * compileData.link(myScope); //attach controller & scope to element\n * });\n * \n */\n\n /*\n * @ngdoc method\n * @name $bsCompiler#compile\n * @description A helper to compile an HTML template/templateUrl with a given controller,\n * locals, and scope.\n * @param {object} options An options object, with the following properties:\n *\n * - `controller` - `{(string=|function()=}` Controller fn that should be associated with\n * newly created scope or the name of a registered controller if passed as a string.\n * - `controllerAs` - `{string=}` A controller alias name. If present the controller will be\n * published to scope under the `controllerAs` name.\n * - `template` - `{string=}` An html template as a string.\n * - `templateUrl` - `{string=}` A path to an html template.\n * - `transformTemplate` - `{function(template)=}` A function which transforms the template after\n * it is loaded. It will be given the template string as a parameter, and should\n * return a a new string representing the transformed template.\n * - `resolve` - `{Object.=}` - An optional map of dependencies which should\n * be injected into the controller. If any of these dependencies are promises, the compiler\n * will wait for them all to be resolved, or if one is rejected before the controller is\n * instantiated `compile()` will fail..\n * * `key` - `{string}`: a name of a dependency to be injected into the controller.\n * * `factory` - `{string|function}`: If `string` then it is an alias for a service.\n * Otherwise if function, then it is injected and the return value is treated as the\n * dependency. If the result is a promise, it is resolved before its value is\n * injected into the controller.\n *\n * @returns {object=} promise A promise, which will be resolved with a `compileData` object.\n * `compileData` has the following properties:\n *\n * - `element` - `{element}`: an uncompiled element matching the provided template.\n * - `link` - `{function(scope)}`: A link function, which, when called, will compile\n * the element and instantiate the provided controller (if given).\n * - `locals` - `{object}`: The locals which will be passed into the controller once `link` is\n * called. If `bindToController` is true, they will be coppied to the ctrl instead\n * - `bindToController` - `bool`: bind the locals to the controller, instead of passing them in.\n */\n this.compile = function(options) {\n\n if(options.template && /\\.html$/.test(options.template)) {\n console.warn('Deprecated use of `template` option to pass a file. Please use the `templateUrl` option instead.');\n options.templateUrl = options.template;\n options.template = '';\n }\n\n var templateUrl = options.templateUrl;\n var template = options.template || '';\n var controller = options.controller;\n var controllerAs = options.controllerAs;\n var resolve = angular.copy(options.resolve || {});\n var locals = angular.copy(options.locals || {});\n var transformTemplate = options.transformTemplate || angular.identity;\n var bindToController = options.bindToController;\n\n // Take resolve values and invoke them.\n // Resolves can either be a string (value: 'MyRegisteredAngularConst'),\n // or an invokable 'factory' of sorts: (value: function ValueGetter($dependency) {})\n angular.forEach(resolve, function(value, key) {\n if (angular.isString(value)) {\n resolve[key] = $injector.get(value);\n } else {\n resolve[key] = $injector.invoke(value);\n }\n });\n // Add the locals, which are just straight values to inject\n // eg locals: { three: 3 }, will inject three into the controller\n angular.extend(resolve, locals);\n\n if (templateUrl) {\n resolve.$template = fetchTemplate(templateUrl);\n } else {\n resolve.$template = $q.when(template);\n }\n\n if (options.contentTemplate) {\n // TODO(mgcrea): deprecate?\n resolve.$template = $q.all([resolve.$template, fetchTemplate(options.contentTemplate)])\n .then(function(templates) {\n var templateEl = angular.element(templates[0]);\n var contentEl = findElement('[ng-bind=\"content\"]', templateEl[0]).removeAttr('ng-bind').html(templates[1]);\n // Drop the default footer as you probably don't want it if you use a custom contentTemplate\n if(!options.templateUrl) contentEl.next().remove();\n return templateEl[0].outerHTML;\n });\n }\n\n // Wait for all the resolves to finish if they are promises\n return $q.all(resolve).then(function(locals) {\n\n var template = transformTemplate(locals.$template);\n if (options.html) {\n template = template.replace(/ng-bind=\"/ig, 'ng-bind-html=\"');\n }\n // var element = options.element || angular.element('
').html(template.trim()).contents();\n var element = angular.element('
').html(template.trim()).contents();\n var linkFn = $compile(element);\n\n // Return a linking function that can be used later when the element is ready\n return {\n locals: locals,\n element: element,\n link: function link(scope) {\n locals.$scope = scope;\n\n // Instantiate controller if it exists, because we have scope\n if (controller) {\n var invokeCtrl = $controller(controller, locals, true);\n if (bindToController) {\n angular.extend(invokeCtrl.instance, locals);\n }\n // Support angular@~1.2 invokeCtrl\n var ctrl = angular.isObject(invokeCtrl) ? invokeCtrl : invokeCtrl();\n // See angular-route source for this logic\n element.data('$ngControllerController', ctrl);\n element.children().data('$ngControllerController', ctrl);\n\n if (controllerAs) {\n scope[controllerAs] = ctrl;\n }\n }\n\n return linkFn.apply(null, arguments);\n }\n };\n });\n\n };\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n var fetchPromises = {};\n function fetchTemplate(template) {\n if(fetchPromises[template]) return fetchPromises[template];\n return (fetchPromises[template] = $http.get(template, {cache: $templateCache})\n .then(function(res) {\n return res.data;\n }));\n }\n\n}\n\n// Source: helpers/date-formatter.js\nangular.module('mgcrea.ngStrap.helpers.dateFormatter', [])\n\n .service('$dateFormatter', function($locale, dateFilter) {\n\n // The unused `lang` arguments are on purpose. The default implementation does not\n // use them and it always uses the locale loaded into the `$locale` service.\n // Custom implementations might use it, thus allowing different directives to\n // have different languages.\n\n this.getDefaultLocale = function() {\n return $locale.id;\n };\n\n // Format is either a data format name, e.g. \"shortTime\" or \"fullDate\", or a date format\n // Return either the corresponding date format or the given date format.\n this.getDatetimeFormat = function(format, lang) {\n return $locale.DATETIME_FORMATS[format] || format;\n };\n\n this.weekdaysShort = function(lang) {\n return $locale.DATETIME_FORMATS.SHORTDAY;\n };\n\n function splitTimeFormat(format) {\n return /(h+)([:\\.])?(m+)([:\\.])?(s*)[ ]?(a?)/i.exec(format).slice(1);\n }\n\n // h:mm a => h\n this.hoursFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[0];\n };\n\n // h:mm a => mm\n this.minutesFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[2];\n };\n\n // h:mm:ss a => ss\n this.secondsFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[4];\n };\n\n // h:mm a => :\n this.timeSeparator = function(timeFormat) {\n return splitTimeFormat(timeFormat)[1];\n };\n\n // h:mm:ss a => true, h:mm a => false\n this.showSeconds = function(timeFormat) {\n return !!splitTimeFormat(timeFormat)[4];\n };\n\n // h:mm a => true, H.mm => false\n this.showAM = function(timeFormat) {\n return !!splitTimeFormat(timeFormat)[5];\n };\n\n this.formatDate = function(date, format, lang, timezone){\n return dateFilter(date, format, timezone);\n };\n\n });\n\n// Source: helpers/date-parser.js\nangular.module('mgcrea.ngStrap.helpers.dateParser', [])\n\n.provider('$dateParser', function($localeProvider) {\n\n // define a custom ParseDate object to use instead of native Date\n // to avoid date values wrapping when setting date component values\n function ParseDate() {\n this.year = 1970;\n this.month = 0;\n this.day = 1;\n this.hours = 0;\n this.minutes = 0;\n this.seconds = 0;\n this.milliseconds = 0;\n }\n\n ParseDate.prototype.setMilliseconds = function(value) { this.milliseconds = value; };\n ParseDate.prototype.setSeconds = function(value) { this.seconds = value; };\n ParseDate.prototype.setMinutes = function(value) { this.minutes = value; };\n ParseDate.prototype.setHours = function(value) { this.hours = value; };\n ParseDate.prototype.getHours = function() { return this.hours; };\n ParseDate.prototype.setDate = function(value) { this.day = value; };\n ParseDate.prototype.setMonth = function(value) { this.month = value; };\n ParseDate.prototype.setFullYear = function(value) { this.year = value; };\n ParseDate.prototype.fromDate = function(value) {\n this.year = value.getFullYear();\n this.month = value.getMonth();\n this.day = value.getDate();\n this.hours = value.getHours();\n this.minutes = value.getMinutes();\n this.seconds = value.getSeconds();\n this.milliseconds = value.getMilliseconds();\n return this;\n };\n\n ParseDate.prototype.toDate = function() {\n return new Date(this.year, this.month, this.day, this.hours, this.minutes, this.seconds, this.milliseconds);\n };\n\n var proto = ParseDate.prototype;\n\n function noop() {\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function indexOfCaseInsensitive(array, value) {\n var len = array.length, str=value.toString().toLowerCase();\n for (var i=0; i 12 when midnight changeover, but then cannot generate\n * midnight datetime, so jump to 1AM, otherwise reset.\n * @param date (Date) the date to check\n * @return (Date) the corrected date\n *\n * __ copied from jquery ui datepicker __\n */\n $dateParser.daylightSavingAdjust = function(date) {\n if (!date) {\n return null;\n }\n date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);\n return date;\n };\n\n /* Correct the date for timezone offset.\n * @param date (Date) the date to adjust\n * @param timezone (string) the timezone to adjust for\n * @param undo (boolean) to add or subtract timezone offset\n * @return (Date) the corrected date\n */\n $dateParser.timezoneOffsetAdjust = function(date, timezone, undo) {\n if (!date) {\n return null;\n }\n // Right now, only 'UTC' is supported.\n if (timezone && timezone === 'UTC') {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + (undo?-1:1)*date.getTimezoneOffset());\n }\n return date;\n };\n\n // Private functions\n\n function setMapForFormat(format) {\n var keys = Object.keys(setFnMap), i;\n var map = [], sortedMap = [];\n // Map to setFn\n var clonedFormat = format;\n for(i = 0; i < keys.length; i++) {\n if(format.split(keys[i]).length > 1) {\n var index = clonedFormat.search(keys[i]);\n format = format.split(keys[i]).join('');\n if(setFnMap[keys[i]]) {\n map[index] = setFnMap[keys[i]];\n }\n }\n }\n // Sort result map\n angular.forEach(map, function(v) {\n // conditional required since angular.forEach broke around v1.2.21\n // related pr: https://github.com/angular/angular.js/pull/8525\n if(v) sortedMap.push(v);\n });\n return sortedMap;\n }\n\n function escapeReservedSymbols(text) {\n return text.replace(/\\//g, '[\\\\/]').replace('/-/g', '[-]').replace(/\\./g, '[.]').replace(/\\\\s/g, '[\\\\s]');\n }\n\n function regExpForFormat(format) {\n var keys = Object.keys(regExpMap), i;\n\n var re = format;\n // Abstract replaces to avoid collisions\n for(i = 0; i < keys.length; i++) {\n re = re.split(keys[i]).join('${' + i + '}');\n }\n // Replace abstracted values\n for(i = 0; i < keys.length; i++) {\n re = re.split('${' + i + '}').join('(' + regExpMap[keys[i]] + ')');\n }\n format = escapeReservedSymbols(format);\n\n return new RegExp('^' + re + '$', ['i']);\n }\n\n $dateParser.init();\n return $dateParser;\n\n };\n\n return DateParserFactory;\n\n };\n\n});\n\n// Source: helpers/debounce.js\nangular.module('mgcrea.ngStrap.helpers.debounce', [])\n\n// @source jashkenas/underscore\n// @url https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L693\n.factory('debounce', function($timeout) {\n return function(func, wait, immediate) {\n var timeout = null;\n return function() {\n var context = this,\n args = arguments,\n callNow = immediate && !timeout;\n if(timeout) {\n $timeout.cancel(timeout);\n }\n timeout = $timeout(function later() {\n timeout = null;\n if(!immediate) {\n func.apply(context, args);\n }\n }, wait, false);\n if(callNow) {\n func.apply(context, args);\n }\n return timeout;\n };\n };\n})\n\n\n// @source jashkenas/underscore\n// @url https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L661\n.factory('throttle', function($timeout) {\n return function(func, wait, options) {\n var timeout = null;\n options || (options = {});\n return function() {\n var context = this,\n args = arguments;\n if(!timeout) {\n if(options.leading !== false) {\n func.apply(context, args);\n }\n timeout = $timeout(function later() {\n timeout = null;\n if(options.trailing !== false) {\n func.apply(context, args);\n }\n }, wait, false);\n }\n };\n };\n});\n\n// Source: helpers/dimensions.js\nangular.module('mgcrea.ngStrap.helpers.dimensions', [])\n\n .factory('dimensions', function($document, $window) {\n\n var jqLite = angular.element;\n var fn = {};\n\n /**\n * Test the element nodeName\n * @param element\n * @param name\n */\n var nodeName = fn.nodeName = function(element, name) {\n return element.nodeName && element.nodeName.toLowerCase() === name.toLowerCase();\n };\n\n /**\n * Returns the element computed style\n * @param element\n * @param prop\n * @param extra\n */\n fn.css = function(element, prop, extra) {\n var value;\n if (element.currentStyle) { //IE\n value = element.currentStyle[prop];\n } else if (window.getComputedStyle) {\n value = window.getComputedStyle(element)[prop];\n } else {\n value = element.style[prop];\n }\n return extra === true ? parseFloat(value) || 0 : value;\n };\n\n /**\n * Provides read-only equivalent of jQuery's offset function:\n * @required-by bootstrap-tooltip, bootstrap-affix\n * @url http://api.jquery.com/offset/\n * @param element\n */\n fn.offset = function(element) {\n var boxRect = element.getBoundingClientRect();\n var docElement = element.ownerDocument;\n return {\n width: boxRect.width || element.offsetWidth,\n height: boxRect.height || element.offsetHeight,\n top: boxRect.top + (window.pageYOffset || docElement.documentElement.scrollTop) - (docElement.documentElement.clientTop || 0),\n left: boxRect.left + (window.pageXOffset || docElement.documentElement.scrollLeft) - (docElement.documentElement.clientLeft || 0)\n };\n };\n \n /**\n * Provides set equivalent of jQuery's offset function:\n * @required-by bootstrap-tooltip\n * @url http://api.jquery.com/offset/\n * @param element\n * @param options\n * @param i\n */\n fn.setOffset = function (element, options, i) {\n var curPosition,\n curLeft,\n curCSSTop,\n curTop,\n curOffset,\n curCSSLeft,\n calculatePosition,\n position = fn.css(element, 'position'),\n curElem = angular.element(element),\n props = {};\n \n // Set position first, in-case top/left are set even on static elem\n if (position === 'static') {\n element.style.position = 'relative';\n }\n \n curOffset = fn.offset(element);\n curCSSTop = fn.css(element, 'top');\n curCSSLeft = fn.css(element, 'left');\n calculatePosition = (position === 'absolute' || position === 'fixed') && \n (curCSSTop + curCSSLeft).indexOf('auto') > -1;\n \n // Need to be able to calculate position if either\n // top or left is auto and position is either absolute or fixed\n if (calculatePosition) {\n curPosition = fn.position(element);\n curTop = curPosition.top;\n curLeft = curPosition.left;\n } else {\n curTop = parseFloat(curCSSTop) || 0;\n curLeft = parseFloat(curCSSLeft) || 0;\n }\n \n if (angular.isFunction(options)) {\n options = options.call(element, i, curOffset);\n }\n \n if (options.top !== null ) {\n props.top = (options.top - curOffset.top) + curTop;\n }\n if ( options.left !== null ) {\n props.left = (options.left - curOffset.left) + curLeft;\n }\n\n if ('using' in options) {\n options.using.call(curElem, props);\n } else {\n curElem.css({\n top: props.top + 'px',\n left: props.left + 'px'\n });\n }\n };\n\n /**\n * Provides read-only equivalent of jQuery's position function\n * @required-by bootstrap-tooltip, bootstrap-affix\n * @url http://api.jquery.com/offset/\n * @param element\n */\n fn.position = function(element) {\n\n var offsetParentRect = {top: 0, left: 0},\n offsetParentElement,\n offset;\n\n // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent\n if (fn.css(element, 'position') === 'fixed') {\n\n // We assume that getBoundingClientRect is available when computed position is fixed\n offset = element.getBoundingClientRect();\n\n } else {\n\n // Get *real* offsetParentElement\n offsetParentElement = offsetParent(element);\n\n // Get correct offsets\n offset = fn.offset(element);\n if (!nodeName(offsetParentElement, 'html')) {\n offsetParentRect = fn.offset(offsetParentElement);\n }\n\n // Add offsetParent borders\n offsetParentRect.top += fn.css(offsetParentElement, 'borderTopWidth', true);\n offsetParentRect.left += fn.css(offsetParentElement, 'borderLeftWidth', true);\n }\n\n // Subtract parent offsets and element margins\n return {\n width: element.offsetWidth,\n height: element.offsetHeight,\n top: offset.top - offsetParentRect.top - fn.css(element, 'marginTop', true),\n left: offset.left - offsetParentRect.left - fn.css(element, 'marginLeft', true)\n };\n\n };\n\n /**\n * Returns the closest, non-statically positioned offsetParent of a given element\n * @required-by fn.position\n * @param element\n */\n var offsetParent = function offsetParentElement(element) {\n var docElement = element.ownerDocument;\n var offsetParent = element.offsetParent || docElement;\n if(nodeName(offsetParent, '#document')) return docElement.documentElement;\n while(offsetParent && !nodeName(offsetParent, 'html') && fn.css(offsetParent, 'position') === 'static') {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || docElement.documentElement;\n };\n\n /**\n * Provides equivalent of jQuery's height function\n * @required-by bootstrap-affix\n * @url http://api.jquery.com/height/\n * @param element\n * @param outer\n */\n fn.height = function(element, outer) {\n var value = element.offsetHeight;\n if(outer) {\n value += fn.css(element, 'marginTop', true) + fn.css(element, 'marginBottom', true);\n } else {\n value -= fn.css(element, 'paddingTop', true) + fn.css(element, 'paddingBottom', true) + fn.css(element, 'borderTopWidth', true) + fn.css(element, 'borderBottomWidth', true);\n }\n return value;\n };\n\n /**\n * Provides equivalent of jQuery's width function\n * @required-by bootstrap-affix\n * @url http://api.jquery.com/width/\n * @param element\n * @param outer\n */\n fn.width = function(element, outer) {\n var value = element.offsetWidth;\n if(outer) {\n value += fn.css(element, 'marginLeft', true) + fn.css(element, 'marginRight', true);\n } else {\n value -= fn.css(element, 'paddingLeft', true) + fn.css(element, 'paddingRight', true) + fn.css(element, 'borderLeftWidth', true) + fn.css(element, 'borderRightWidth', true);\n }\n return value;\n };\n\n return fn;\n\n });\n\n// Source: helpers/parse-options.js\nangular.module('mgcrea.ngStrap.helpers.parseOptions', [])\n\n .provider('$parseOptions', function() {\n\n var defaults = this.defaults = {\n regexp: /^\\s*(.*?)(?:\\s+as\\s+(.*?))?(?:\\s+group\\s+by\\s+(.*))?\\s+for\\s+(?:([\\$\\w][\\$\\w]*)|(?:\\(\\s*([\\$\\w][\\$\\w]*)\\s*,\\s*([\\$\\w][\\$\\w]*)\\s*\\)))\\s+in\\s+(.*?)(?:\\s+track\\s+by\\s+(.*?))?$/\n };\n\n this.$get = function($parse, $q) {\n\n function ParseOptionsFactory(attr, config) {\n\n var $parseOptions = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n $parseOptions.$values = [];\n\n // Private vars\n var match, displayFn, valueName, keyName, groupByFn, valueFn, valuesFn;\n\n $parseOptions.init = function() {\n $parseOptions.$match = match = attr.match(options.regexp);\n displayFn = $parse(match[2] || match[1]),\n valueName = match[4] || match[6],\n keyName = match[5],\n groupByFn = $parse(match[3] || ''),\n valueFn = $parse(match[2] ? match[1] : valueName),\n valuesFn = $parse(match[7]);\n };\n\n $parseOptions.valuesFn = function(scope, controller) {\n return $q.when(valuesFn(scope, controller))\n .then(function(values) {\n if(!angular.isArray(values)) {\n values = [];\n }\n $parseOptions.$values = values.length ? parseValues(values, scope) : [];\n return $parseOptions.$values;\n });\n };\n\n $parseOptions.displayValue = function(modelValue) {\n var scope = {};\n scope[valueName] = modelValue;\n return displayFn(scope);\n };\n\n // Private functions\n\n function parseValues(values, scope) {\n return values.map(function(match, index) {\n var locals = {}, label, value;\n locals[valueName] = match;\n label = displayFn(scope, locals);\n value = valueFn(scope, locals);\n return {label: label, value: value, index: index};\n });\n }\n\n $parseOptions.init();\n return $parseOptions;\n\n }\n\n return ParseOptionsFactory;\n\n };\n\n });\n\n// Source: helpers/raf.js\n(angular.version.minor < 3 && angular.version.dot < 14) && angular.module('ng')\n\n.factory('$$rAF', function($window, $timeout) {\n\n var requestAnimationFrame = $window.requestAnimationFrame ||\n $window.webkitRequestAnimationFrame ||\n $window.mozRequestAnimationFrame;\n\n var cancelAnimationFrame = $window.cancelAnimationFrame ||\n $window.webkitCancelAnimationFrame ||\n $window.mozCancelAnimationFrame ||\n $window.webkitCancelRequestAnimationFrame;\n\n var rafSupported = !!requestAnimationFrame;\n var raf = rafSupported ?\n function(fn) {\n var id = requestAnimationFrame(fn);\n return function() {\n cancelAnimationFrame(id);\n };\n } :\n function(fn) {\n var timer = $timeout(fn, 16.66, false); // 1000 / 60 = 16.666\n return function() {\n $timeout.cancel(timer);\n };\n };\n\n raf.supported = rafSupported;\n\n return raf;\n\n});\n\n// .factory('$$animateReflow', function($$rAF, $document) {\n\n// var bodyEl = $document[0].body;\n\n// return function(fn) {\n// //the returned function acts as the cancellation function\n// return $$rAF(function() {\n// //the line below will force the browser to perform a repaint\n// //so that all the animated elements within the animation frame\n// //will be properly updated and drawn on screen. This is\n// //required to perform multi-class CSS based animations with\n// //Firefox. DO NOT REMOVE THIS LINE.\n// var a = bodyEl.offsetWidth + 1;\n// fn();\n// });\n// };\n\n// });\n\n// Source: modal/modal.js\nangular.module('mgcrea.ngStrap.modal', ['mgcrea.ngStrap.core', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$modal', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n backdropAnimation: 'am-fade',\n prefixClass: 'modal',\n prefixEvent: 'modal',\n placement: 'top',\n templateUrl: 'modal/modal.tpl.html',\n template: '',\n contentTemplate: false,\n container: false,\n element: null,\n backdrop: true,\n keyboard: true,\n html: false,\n show: true\n };\n\n this.$get = function($window, $rootScope, $bsCompiler, $q, $templateCache, $http, $animate, $timeout, $sce, dimensions) {\n\n var forEach = angular.forEach;\n var trim = String.prototype.trim;\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n var bodyElement = angular.element($window.document.body);\n\n function ModalFactory(config) {\n\n var $modal = {};\n\n // Common vars\n var options = $modal.$options = angular.extend({}, defaults, config);\n var promise = $modal.$promise = $bsCompiler.compile(options);\n var scope = $modal.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n if(!options.element && !options.container) {\n options.container = 'body';\n }\n\n // Store $id to identify the triggering element in events\n // give priority to options.id, otherwise, try to use\n // element id if defined\n $modal.$id = options.id || options.element && options.element.attr('id') || '';\n\n // Support scope as string options\n forEach(['title', 'content'], function(key) {\n if(options[key]) scope[key] = $sce.trustAsHtml(options[key]);\n });\n\n // Provide scope helpers\n scope.$hide = function() {\n scope.$$postDigest(function() {\n $modal.hide();\n });\n };\n scope.$show = function() {\n scope.$$postDigest(function() {\n $modal.show();\n });\n };\n scope.$toggle = function() {\n scope.$$postDigest(function() {\n $modal.toggle();\n });\n };\n // Publish isShown as a protected var on scope\n $modal.$isShown = scope.$isShown = false;\n\n // Fetch, compile then initialize modal\n var compileData, modalElement, modalScope;\n var backdropElement = angular.element('
');\n backdropElement.css({position:'fixed', top:'0px', left:'0px', bottom:'0px', right:'0px', 'z-index': 1038});\n promise.then(function(data) {\n compileData = data;\n $modal.init();\n });\n\n $modal.init = function() {\n\n // Options: show\n if(options.show) {\n scope.$$postDigest(function() {\n $modal.show();\n });\n }\n\n };\n\n $modal.destroy = function() {\n\n // Remove element\n destroyModalElement();\n\n // remove backdrop element\n if(backdropElement) {\n backdropElement.remove();\n backdropElement = null;\n }\n\n // Destroy scope\n scope.$destroy();\n };\n\n $modal.show = function() {\n if($modal.$isShown) return;\n\n var parent, after;\n if(angular.isElement(options.container)) {\n parent = options.container;\n after = options.container[0].lastChild ? angular.element(options.container[0].lastChild) : null;\n } else {\n if (options.container) {\n parent = findElement(options.container);\n after = parent[0] && parent[0].lastChild ? angular.element(parent[0].lastChild) : null;\n } else {\n parent = null;\n after = options.element;\n }\n }\n\n // destroy any existing modal elements\n if(modalElement) destroyModalElement();\n\n // create a new scope, so we can destroy it and all child scopes\n // when destroying the modal element\n modalScope = $modal.$scope.$new();\n // Fetch a cloned element linked from template (noop callback is required)\n modalElement = $modal.$element = compileData.link(modalScope, function(clonedElement, scope) {});\n\n if(scope.$emit(options.prefixEvent + '.show.before', $modal).defaultPrevented) {\n return;\n }\n\n // Set the initial positioning.\n modalElement.css({display: 'block'}).addClass(options.placement);\n\n // Options: animation\n if(options.animation) {\n if(options.backdrop) {\n backdropElement.addClass(options.backdropAnimation);\n }\n modalElement.addClass(options.animation);\n }\n\n if(options.backdrop) {\n $animate.enter(backdropElement, bodyElement, null);\n }\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.enter(modalElement, parent, after, enterAnimateCallback);\n } else {\n $animate.enter(modalElement, parent, after).then(enterAnimateCallback);\n }\n\n $modal.$isShown = scope.$isShown = true;\n safeDigest(scope);\n // Focus once the enter-animation has started\n // Weird PhantomJS bug hack\n var el = modalElement[0];\n requestAnimationFrame(function() {\n el.focus();\n });\n\n bodyElement.addClass(options.prefixClass + '-open');\n if(options.animation) {\n bodyElement.addClass(options.prefixClass + '-with-' + options.animation);\n }\n\n // Bind events\n bindBackdropEvents();\n bindKeyboardEvents();\n };\n\n function enterAnimateCallback() {\n scope.$emit(options.prefixEvent + '.show', $modal);\n }\n\n $modal.hide = function() {\n if(!$modal.$isShown) return;\n\n if(scope.$emit(options.prefixEvent + '.hide.before', $modal).defaultPrevented) {\n return;\n }\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.leave(modalElement, leaveAnimateCallback);\n } else {\n $animate.leave(modalElement).then(leaveAnimateCallback);\n }\n\n if(options.backdrop) {\n $animate.leave(backdropElement);\n }\n $modal.$isShown = scope.$isShown = false;\n safeDigest(scope);\n\n // Unbind events\n unbindBackdropEvents();\n unbindKeyboardEvents();\n };\n\n function leaveAnimateCallback() {\n scope.$emit(options.prefixEvent + '.hide', $modal);\n bodyElement.removeClass(options.prefixClass + '-open');\n if(options.animation) {\n bodyElement.removeClass(options.prefixClass + '-with-' + options.animation);\n }\n }\n\n $modal.toggle = function() {\n\n $modal.$isShown ? $modal.hide() : $modal.show();\n\n };\n\n $modal.focus = function() {\n modalElement[0].focus();\n };\n\n // Protected methods\n\n $modal.$onKeyUp = function(evt) {\n\n if (evt.which === 27 && $modal.$isShown) {\n $modal.hide();\n evt.stopPropagation();\n }\n\n };\n\n function bindBackdropEvents() {\n if(options.backdrop) {\n modalElement.on('click', hideOnBackdropClick);\n backdropElement.on('click', hideOnBackdropClick);\n backdropElement.on('wheel', preventEventDefault);\n }\n }\n\n function unbindBackdropEvents() {\n if(options.backdrop) {\n modalElement.off('click', hideOnBackdropClick);\n backdropElement.off('click', hideOnBackdropClick);\n backdropElement.off('wheel', preventEventDefault);\n }\n }\n\n function bindKeyboardEvents() {\n if(options.keyboard) {\n modalElement.on('keyup', $modal.$onKeyUp);\n }\n }\n\n function unbindKeyboardEvents() {\n if(options.keyboard) {\n modalElement.off('keyup', $modal.$onKeyUp);\n }\n }\n\n // Private methods\n\n function hideOnBackdropClick(evt) {\n if(evt.target !== evt.currentTarget) return;\n options.backdrop === 'static' ? $modal.focus() : $modal.hide();\n }\n\n function preventEventDefault(evt) {\n evt.preventDefault();\n }\n\n function destroyModalElement() {\n if($modal.$isShown && modalElement !== null) {\n // un-bind events\n unbindBackdropEvents();\n unbindKeyboardEvents();\n }\n\n if(modalScope) {\n modalScope.$destroy();\n modalScope = null;\n }\n\n if(modalElement) {\n modalElement.remove();\n modalElement = $modal.$element = null;\n }\n }\n\n return $modal;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n return ModalFactory;\n\n };\n\n })\n\n .directive('bsModal', function($window, $sce, $modal) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'controller', 'placement', 'backdrop', 'keyboard', 'html', 'container', 'animation', 'id', 'prefixEvent', 'prefixClass'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['backdrop', 'keyboard', 'html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsModal && scope.$watch(attr.bsModal, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize modal\n var modal = $modal(options);\n\n // Trigger\n element.on(attr.trigger || 'click', modal.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (modal) modal.destroy();\n options = null;\n modal = null;\n });\n\n }\n };\n\n });\n\n// Source: navbar/navbar.js\nangular.module('mgcrea.ngStrap.navbar', [])\n\n .provider('$navbar', function() {\n\n var defaults = this.defaults = {\n activeClass: 'active',\n routeAttr: 'data-match-route',\n strict: false\n };\n\n this.$get = function() {\n return {defaults: defaults};\n };\n\n })\n\n .directive('bsNavbar', function($window, $location, $navbar) {\n\n var defaults = $navbar.defaults;\n\n return {\n restrict: 'A',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = angular.copy(defaults);\n angular.forEach(Object.keys(defaults), function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // Watch for the $location\n scope.$watch(function() {\n\n return $location.path();\n\n }, function(newValue, oldValue) {\n\n var liElements = element[0].querySelectorAll('li[' + options.routeAttr + ']');\n\n angular.forEach(liElements, function(li) {\n\n var liElement = angular.element(li);\n var pattern = liElement.attr(options.routeAttr).replace('/', '\\\\/');\n if(options.strict) {\n pattern = '^' + pattern + '$';\n }\n var regexp = new RegExp(pattern, 'i');\n\n if(regexp.test(newValue)) {\n liElement.addClass(options.activeClass);\n } else {\n liElement.removeClass(options.activeClass);\n }\n\n });\n\n });\n\n }\n\n };\n\n });\n\n// Source: popover/popover.js\nangular.module('mgcrea.ngStrap.popover', ['mgcrea.ngStrap.tooltip'])\n\n .provider('$popover', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n customClass: '',\n // uncommenting the next two lines will break backwards compatability\n // prefixClass: 'popover',\n // prefixEvent: 'popover',\n container: false,\n target: false,\n placement: 'right',\n templateUrl: 'popover/popover.tpl.html',\n contentTemplate: false,\n trigger: 'click',\n keyboard: true,\n html: false,\n title: '',\n content: '',\n delay: 0,\n autoClose: false\n };\n\n this.$get = function($tooltip) {\n\n function PopoverFactory(element, config) {\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n var $popover = $tooltip(element, options);\n\n // Support scope as string options [/*title, */content]\n if(options.content) {\n $popover.$scope.content = options.content;\n }\n\n return $popover;\n\n }\n\n return PopoverFactory;\n\n };\n\n })\n\n .directive('bsPopover', function($window, $sce, $popover) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'customClass', 'autoClose', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoClose'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // should not parse target attribute (anchor tag), only data-target #1454\n var dataTarget = element.attr('data-target');\n if(angular.isDefined(dataTarget)) {\n if(falseValueRegExp.test(dataTarget))\n options.target = false;\n else\n options.target = dataTarget;\n }\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n angular.isDefined(oldValue) && requestAnimationFrame(function() {\n popover && popover.$applyPlacement();\n });\n });\n });\n\n // Support scope as an object\n attr.bsPopover && scope.$watch(attr.bsPopover, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n angular.isDefined(oldValue) && requestAnimationFrame(function() {\n popover && popover.$applyPlacement();\n });\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!popover || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(popover),?/i);\n newValue === true ? popover.show() : popover.hide();\n });\n\n // Viewport support\n attr.viewport && scope.$watch(attr.viewport, function (newValue) {\n if(!popover || !angular.isDefined(newValue)) return;\n popover.setViewport(newValue);\n });\n\n // Initialize popover\n var popover = $popover(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (popover) popover.destroy();\n options = null;\n popover = null;\n });\n\n }\n };\n\n });\n\n// Source: scrollspy/scrollspy.js\nangular.module('mgcrea.ngStrap.scrollspy', ['mgcrea.ngStrap.helpers.debounce', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$scrollspy', function() {\n\n // Pool of registered spies\n var spies = this.$$spies = {};\n\n var defaults = this.defaults = {\n debounce: 150,\n throttle: 100,\n offset: 100\n };\n\n this.$get = function($window, $document, $rootScope, dimensions, debounce, throttle) {\n\n var windowEl = angular.element($window);\n var docEl = angular.element($document.prop('documentElement'));\n var bodyEl = angular.element($window.document.body);\n\n // Helper functions\n\n function nodeName(element, name) {\n return element[0].nodeName && element[0].nodeName.toLowerCase() === name.toLowerCase();\n }\n\n function ScrollSpyFactory(config) {\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n if(!options.element) options.element = bodyEl;\n var isWindowSpy = nodeName(options.element, 'body');\n var scrollEl = isWindowSpy ? windowEl : options.element;\n var scrollId = isWindowSpy ? 'window' : options.id;\n\n // Use existing spy\n if(spies[scrollId]) {\n spies[scrollId].$$count++;\n return spies[scrollId];\n }\n\n var $scrollspy = {};\n\n // Private vars\n var unbindViewContentLoaded, unbindIncludeContentLoaded;\n var trackedElements = $scrollspy.$trackedElements = [];\n var sortedElements = [];\n var activeTarget;\n var debouncedCheckPosition;\n var throttledCheckPosition;\n var debouncedCheckOffsets;\n var viewportHeight;\n var scrollTop;\n\n $scrollspy.init = function() {\n\n // Setup internal ref counter\n this.$$count = 1;\n\n // Bind events\n debouncedCheckPosition = debounce(this.checkPosition, options.debounce);\n throttledCheckPosition = throttle(this.checkPosition, options.throttle);\n scrollEl.on('click', this.checkPositionWithEventLoop);\n windowEl.on('resize', debouncedCheckPosition);\n scrollEl.on('scroll', throttledCheckPosition);\n\n debouncedCheckOffsets = debounce(this.checkOffsets, options.debounce);\n unbindViewContentLoaded = $rootScope.$on('$viewContentLoaded', debouncedCheckOffsets);\n unbindIncludeContentLoaded = $rootScope.$on('$includeContentLoaded', debouncedCheckOffsets);\n debouncedCheckOffsets();\n\n // Register spy for reuse\n if(scrollId) {\n spies[scrollId] = $scrollspy;\n }\n\n };\n\n $scrollspy.destroy = function() {\n\n // Check internal ref counter\n this.$$count--;\n if(this.$$count > 0) {\n return;\n }\n\n // Unbind events\n scrollEl.off('click', this.checkPositionWithEventLoop);\n windowEl.off('resize', debouncedCheckPosition);\n scrollEl.off('scroll', throttledCheckPosition);\n unbindViewContentLoaded();\n unbindIncludeContentLoaded();\n if (scrollId) {\n delete spies[scrollId];\n }\n };\n\n $scrollspy.checkPosition = function() {\n\n // Not ready yet\n if(!sortedElements.length) return;\n\n // Calculate the scroll position\n scrollTop = (isWindowSpy ? $window.pageYOffset : scrollEl.prop('scrollTop')) || 0;\n\n // Calculate the viewport height for use by the components\n viewportHeight = Math.max($window.innerHeight, docEl.prop('clientHeight'));\n\n // Activate first element if scroll is smaller\n if(scrollTop < sortedElements[0].offsetTop && activeTarget !== sortedElements[0].target) {\n return $scrollspy.$activateElement(sortedElements[0]);\n }\n\n // Activate proper element\n for (var i = sortedElements.length; i--;) {\n if(angular.isUndefined(sortedElements[i].offsetTop) || sortedElements[i].offsetTop === null) continue;\n if(activeTarget === sortedElements[i].target) continue;\n if(scrollTop < sortedElements[i].offsetTop) continue;\n if(sortedElements[i + 1] && scrollTop > sortedElements[i + 1].offsetTop) continue;\n return $scrollspy.$activateElement(sortedElements[i]);\n }\n\n };\n\n $scrollspy.checkPositionWithEventLoop = function() {\n // IE 9 throws an error if we use 'this' instead of '$scrollspy'\n // in this setTimeout call\n setTimeout($scrollspy.checkPosition, 1);\n };\n\n // Protected methods\n\n $scrollspy.$activateElement = function(element) {\n if(activeTarget) {\n var activeElement = $scrollspy.$getTrackedElement(activeTarget);\n if(activeElement) {\n activeElement.source.removeClass('active');\n if(nodeName(activeElement.source, 'li') && nodeName(activeElement.source.parent().parent(), 'li')) {\n activeElement.source.parent().parent().removeClass('active');\n }\n }\n }\n activeTarget = element.target;\n element.source.addClass('active');\n if(nodeName(element.source, 'li') && nodeName(element.source.parent().parent(), 'li')) {\n element.source.parent().parent().addClass('active');\n }\n };\n\n $scrollspy.$getTrackedElement = function(target) {\n return trackedElements.filter(function(obj) {\n return obj.target === target;\n })[0];\n };\n\n // Track offsets behavior\n\n $scrollspy.checkOffsets = function() {\n\n angular.forEach(trackedElements, function(trackedElement) {\n var targetElement = document.querySelector(trackedElement.target);\n trackedElement.offsetTop = targetElement ? dimensions.offset(targetElement).top : null;\n if(options.offset && trackedElement.offsetTop !== null) trackedElement.offsetTop -= options.offset * 1;\n });\n\n sortedElements = trackedElements\n .filter(function(el) {\n return el.offsetTop !== null;\n })\n .sort(function(a, b) {\n return a.offsetTop - b.offsetTop;\n });\n\n debouncedCheckPosition();\n\n };\n\n $scrollspy.trackElement = function(target, source) {\n trackedElements.push({target: target, source: source});\n };\n\n $scrollspy.untrackElement = function(target, source) {\n var toDelete;\n for (var i = trackedElements.length; i--;) {\n if(trackedElements[i].target === target && trackedElements[i].source === source) {\n toDelete = i;\n break;\n }\n }\n trackedElements = trackedElements.splice(toDelete, 1);\n };\n\n $scrollspy.activate = function(i) {\n trackedElements[i].addClass('active');\n };\n\n // Initialize plugin\n\n $scrollspy.init();\n return $scrollspy;\n\n }\n\n return ScrollSpyFactory;\n\n };\n\n })\n\n .directive('bsScrollspy', function($rootScope, debounce, dimensions, $scrollspy) {\n\n return {\n restrict: 'EAC',\n link: function postLink(scope, element, attr) {\n\n var options = {scope: scope};\n angular.forEach(['offset', 'target'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n var scrollspy = $scrollspy(options);\n scrollspy.trackElement(options.target, element);\n\n scope.$on('$destroy', function() {\n if (scrollspy) {\n scrollspy.untrackElement(options.target, element);\n scrollspy.destroy();\n }\n options = null;\n scrollspy = null;\n });\n\n }\n };\n\n })\n\n\n .directive('bsScrollspyList', function($rootScope, debounce, dimensions, $scrollspy) {\n\n return {\n restrict: 'A',\n compile: function postLink(element, attr) {\n var children = element[0].querySelectorAll('li > a[href]');\n angular.forEach(children, function(child) {\n var childEl = angular.element(child);\n childEl.parent().attr('bs-scrollspy', '').attr('data-target', childEl.attr('href'));\n });\n }\n\n };\n\n });\n\n// Source: select/select.js\nangular.module('mgcrea.ngStrap.select', ['mgcrea.ngStrap.tooltip', 'mgcrea.ngStrap.helpers.parseOptions'])\n\n .provider('$select', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'select',\n prefixEvent: '$select',\n placement: 'bottom-left',\n templateUrl: 'select/select.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n multiple: false,\n allNoneButtons: false,\n sort: true,\n caretHtml: ' ',\n placeholder: 'Choose among the following...',\n allText: 'All',\n noneText: 'None',\n maxLength: 3,\n maxLengthHtml: 'selected',\n iconCheckmark: 'glyphicon glyphicon-ok'\n };\n\n this.$get = function($window, $document, $rootScope, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n\n function SelectFactory(element, controller, config) {\n\n var $select = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $select = $tooltip(element, options);\n var scope = $select.$scope;\n\n scope.$matches = [];\n if (options.multiple) {\n scope.$activeIndex = [];\n }\n else {\n scope.$activeIndex = -1;\n }\n scope.$isMultiple = options.multiple;\n scope.$showAllNoneButtons = options.allNoneButtons && options.multiple;\n scope.$iconCheckmark = options.iconCheckmark;\n scope.$allText = options.allText;\n scope.$noneText = options.noneText;\n\n scope.$activate = function(index) {\n scope.$$postDigest(function() {\n $select.activate(index);\n });\n };\n\n scope.$select = function(index, evt) {\n scope.$$postDigest(function() {\n $select.select(index);\n });\n };\n\n scope.$isVisible = function() {\n return $select.$isVisible();\n };\n\n scope.$isActive = function(index) {\n return $select.$isActive(index);\n };\n\n scope.$selectAll = function () {\n for (var i = 0; i < scope.$matches.length; i++) {\n if (!scope.$isActive(i)) {\n scope.$select(i);\n }\n }\n };\n\n scope.$selectNone = function () {\n for (var i = 0; i < scope.$matches.length; i++) {\n if (scope.$isActive(i)) {\n scope.$select(i);\n }\n }\n };\n\n // Public methods\n\n $select.update = function(matches) {\n scope.$matches = matches;\n $select.$updateActiveIndex();\n };\n\n $select.activate = function(index) {\n if(options.multiple) {\n $select.$isActive(index) ? scope.$activeIndex.splice(scope.$activeIndex.indexOf(index), 1) : scope.$activeIndex.push(index);\n if(options.sort) scope.$activeIndex.sort(function(a, b) { return a - b; }); // use numeric sort instead of default sort\n } else {\n scope.$activeIndex = index;\n }\n return scope.$activeIndex;\n };\n\n $select.select = function(index) {\n var value = scope.$matches[index].value;\n scope.$apply(function() {\n $select.activate(index);\n if(options.multiple) {\n controller.$setViewValue(scope.$activeIndex.map(function(index) {\n return scope.$matches[index].value;\n }));\n } else {\n controller.$setViewValue(value);\n // Hide if single select\n $select.hide();\n }\n });\n // Emit event\n scope.$emit(options.prefixEvent + '.select', value, index, $select);\n };\n\n // Protected methods\n\n $select.$updateActiveIndex = function() {\n if(controller.$modelValue && scope.$matches.length) {\n if(options.multiple && angular.isArray(controller.$modelValue)) {\n scope.$activeIndex = controller.$modelValue.map(function(value) {\n return $select.$getIndex(value);\n });\n } else {\n scope.$activeIndex = $select.$getIndex(controller.$modelValue);\n }\n } else if(scope.$activeIndex >= scope.$matches.length) {\n scope.$activeIndex = options.multiple ? [] : 0;\n }\n };\n\n $select.$isVisible = function() {\n if(!options.minLength || !controller) {\n return scope.$matches.length;\n }\n // minLength support\n return scope.$matches.length && controller.$viewValue.length >= options.minLength;\n };\n\n $select.$isActive = function(index) {\n if(options.multiple) {\n return scope.$activeIndex.indexOf(index) !== -1;\n } else {\n return scope.$activeIndex === index;\n }\n };\n\n $select.$getIndex = function(value) {\n var l = scope.$matches.length, i = l;\n if(!l) return;\n for(i = l; i--;) {\n if(scope.$matches[i].value === value) break;\n }\n if(i < 0) return;\n return i;\n };\n\n $select.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n targetEl.triggerHandler('click');\n }\n };\n\n $select.$onKeyDown = function(evt) {\n if (!/(9|13|38|40)/.test(evt.keyCode)) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // release focus on tab\n if (options.multiple && evt.keyCode === 9) {\n return $select.hide();\n }\n\n // Select with enter\n if(!options.multiple && (evt.keyCode === 13 || evt.keyCode === 9)) {\n return $select.select(scope.$activeIndex);\n }\n\n if (!options.multiple) {\n // Navigate with keyboard\n if(evt.keyCode === 38 && scope.$activeIndex > 0) scope.$activeIndex--;\n else if(evt.keyCode === 38 && scope.$activeIndex < 0) scope.$activeIndex = scope.$matches.length - 1;\n else if(evt.keyCode === 40 && scope.$activeIndex < scope.$matches.length - 1) scope.$activeIndex++;\n else if(angular.isUndefined(scope.$activeIndex)) scope.$activeIndex = 0;\n scope.$digest();\n }\n };\n\n // Overrides\n\n var _show = $select.show;\n $select.show = function() {\n _show();\n if(options.multiple) {\n $select.$element.addClass('select-multiple');\n }\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n $select.$element.on(isTouch ? 'touchstart' : 'mousedown', $select.$onMouseDown);\n if(options.keyboard) {\n element.on('keydown', $select.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $select.hide;\n $select.hide = function() {\n if(!options.multiple && !controller.$modelValue) {\n scope.$activeIndex = -1;\n }\n $select.$element.off(isTouch ? 'touchstart' : 'mousedown', $select.$onMouseDown);\n if(options.keyboard) {\n element.off('keydown', $select.$onKeyDown);\n }\n _hide(true);\n };\n\n return $select;\n\n }\n\n SelectFactory.defaults = defaults;\n return SelectFactory;\n\n };\n\n })\n\n .directive('bsSelect', function($window, $parse, $q, $select, $parseOptions) {\n\n var defaults = $select.defaults;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope, placeholder: defaults.placeholder};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'placeholder', 'allNoneButtons', 'maxLength', 'maxLengthHtml', 'allText', 'noneText', 'iconCheckmark', 'autoClose', 'id', 'sort', 'caretHtml', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'allNoneButtons', 'sort'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Only parse data-multiple. Angular sets existence attributes to true (multiple/required/etc), they apply this\n // to data-multiple as well for some reason, so we'll parse this ourselves and disregard multiple\n var dataMultiple = element.attr('data-multiple');\n if(angular.isDefined(dataMultiple)) {\n if(falseValueRegExp.test(dataMultiple))\n options.multiple = false;\n else\n options.multiple = dataMultiple;\n }\n\n // Add support for select markup\n if(element[0].nodeName.toLowerCase() === 'select') {\n var inputEl = element;\n inputEl.css('display', 'none');\n element = angular.element('');\n inputEl.after(element);\n }\n\n // Build proper bsOptions\n var parsedOptions = $parseOptions(attr.bsOptions);\n\n // Initialize select\n var select = $select(element, controller, options);\n\n // Watch bsOptions values before filtering for changes\n var watchedOptions = parsedOptions.$match[7].replace(/\\|.+/, '').trim();\n scope.$watchCollection(watchedOptions, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', watchedOptions, newValue, oldValue);\n parsedOptions.valuesFn(scope, controller)\n .then(function(values) {\n select.update(values);\n controller.$render();\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.ngModel, newValue, oldValue);\n select.$updateActiveIndex();\n controller.$render();\n }, true);\n\n // Model rendering in view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var selected, index;\n if(options.multiple && angular.isArray(controller.$modelValue)) {\n selected = controller.$modelValue.map(function(value) {\n index = select.$getIndex(value);\n return angular.isDefined(index) ? select.$scope.$matches[index].label : false;\n }).filter(angular.isDefined);\n if(selected.length > (options.maxLength || defaults.maxLength)) {\n selected = selected.length + ' ' + (options.maxLengthHtml || defaults.maxLengthHtml);\n } else {\n selected = selected.join(', ');\n }\n } else {\n index = select.$getIndex(controller.$modelValue);\n selected = angular.isDefined(index) ? select.$scope.$matches[index].label : false;\n }\n element.html((selected ? selected : options.placeholder) + (options.caretHtml ? options.caretHtml : defaults.caretHtml));\n };\n\n if(options.multiple){\n controller.$isEmpty = function(value){\n return !value || value.length === 0;\n };\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (select) select.destroy();\n options = null;\n select = null;\n });\n\n }\n };\n\n });\n\n// Source: timepicker/timepicker.js\nangular.module('mgcrea.ngStrap.timepicker', ['mgcrea.ngStrap.helpers.dateParser', 'mgcrea.ngStrap.helpers.dateFormatter', 'mgcrea.ngStrap.tooltip'])\n\n .provider('$timepicker', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n //uncommenting the following line will break backwards compatability\n // prefixEvent: 'timepicker',\n prefixClass: 'timepicker',\n placement: 'bottom-left',\n templateUrl: 'timepicker/timepicker.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n // lang: $locale.id,\n useNative: true,\n timeType: 'date',\n timeFormat: 'shortTime',\n timezone: null,\n modelTimeFormat: null,\n autoclose: false,\n minTime: -Infinity,\n maxTime: +Infinity,\n length: 5,\n hourStep: 1,\n minuteStep: 5,\n secondStep: 5,\n roundDisplay: false,\n iconUp: 'glyphicon glyphicon-chevron-up',\n iconDown: 'glyphicon glyphicon-chevron-down',\n arrowBehavior: 'pager'\n };\n\n this.$get = function($window, $document, $rootScope, $sce, $dateFormatter, $tooltip, $timeout) {\n\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n if (!defaults.lang) {\n defaults.lang = $dateFormatter.getDefaultLocale();\n }\n\n function timepickerFactory(element, controller, config) {\n\n var $timepicker = $tooltip(element, angular.extend({}, defaults, config));\n var parentScope = config.scope;\n var options = $timepicker.$options;\n var scope = $timepicker.$scope;\n\n var lang = options.lang;\n var formatDate = function(date, format, timezone) {\n return $dateFormatter.formatDate(date, format, lang, timezone);\n };\n\n function floorMinutes(time) {\n // coeff used to floor current time to nearest minuteStep interval\n var coeff = 1000 * 60 * options.minuteStep;\n return new Date(Math.floor(time.getTime() / coeff) * coeff);\n }\n\n // View vars\n\n var selectedIndex = 0;\n var defaultDate = options.roundDisplay ? floorMinutes(new Date()) : new Date();\n var startDate = controller.$dateValue || defaultDate;\n var viewDate = {\n hour: startDate.getHours(),\n meridian: startDate.getHours() < 12,\n minute: startDate.getMinutes(),\n second: startDate.getSeconds(),\n millisecond: startDate.getMilliseconds()\n };\n\n var format = $dateFormatter.getDatetimeFormat(options.timeFormat, lang);\n\n var hoursFormat = $dateFormatter.hoursFormat(format),\n timeSeparator = $dateFormatter.timeSeparator(format),\n minutesFormat = $dateFormatter.minutesFormat(format),\n secondsFormat = $dateFormatter.secondsFormat(format),\n showSeconds = $dateFormatter.showSeconds(format),\n showAM = $dateFormatter.showAM(format);\n\n scope.$iconUp = options.iconUp;\n scope.$iconDown = options.iconDown;\n\n // Scope methods\n\n scope.$select = function(date, index) {\n $timepicker.select(date, index);\n };\n scope.$moveIndex = function(value, index) {\n $timepicker.$moveIndex(value, index);\n };\n scope.$switchMeridian = function(date) {\n $timepicker.switchMeridian(date);\n };\n\n // Public methods\n\n $timepicker.update = function(date) {\n // console.warn('$timepicker.update() newValue=%o', date);\n if (angular.isDate(date) && !isNaN(date.getTime())) {\n $timepicker.$date = date;\n angular.extend(viewDate, {\n hour: date.getHours(),\n minute: date.getMinutes(),\n second: date.getSeconds(),\n millisecond: date.getMilliseconds()\n });\n $timepicker.$build();\n } else if (!$timepicker.$isBuilt) {\n $timepicker.$build();\n }\n };\n\n $timepicker.select = function(date, index, keep) {\n // console.warn('$timepicker.select', date, scope.$mode);\n if (!controller.$dateValue || isNaN(controller.$dateValue.getTime())) controller.$dateValue = new Date(1970, 0, 1);\n if (!angular.isDate(date)) date = new Date(date);\n if (index === 0) controller.$dateValue.setHours(date.getHours());\n else if (index === 1) controller.$dateValue.setMinutes(date.getMinutes());\n else if (index === 2) controller.$dateValue.setSeconds(date.getSeconds());\n controller.$setViewValue(angular.copy(controller.$dateValue));\n controller.$render();\n if (options.autoclose && !keep) {\n $timeout(function() {\n $timepicker.hide(true);\n });\n }\n };\n\n $timepicker.switchMeridian = function(date) {\n if (!controller.$dateValue || isNaN(controller.$dateValue.getTime())) {\n return;\n }\n var hours = (date || controller.$dateValue).getHours();\n controller.$dateValue.setHours(hours < 12 ? hours + 12 : hours - 12);\n controller.$setViewValue(angular.copy(controller.$dateValue));\n controller.$render();\n };\n\n // Protected methods\n\n $timepicker.$build = function() {\n // console.warn('$timepicker.$build() viewDate=%o', viewDate);\n var i, midIndex = scope.midIndex = parseInt(options.length / 2, 10);\n var hours = [],\n hour;\n for (i = 0; i < options.length; i++) {\n hour = new Date(1970, 0, 1, viewDate.hour - (midIndex - i) * options.hourStep);\n hours.push({\n date: hour,\n label: formatDate(hour, hoursFormat),\n selected: $timepicker.$date && $timepicker.$isSelected(hour, 0),\n disabled: $timepicker.$isDisabled(hour, 0)\n });\n }\n var minutes = [],\n minute;\n for (i = 0; i < options.length; i++) {\n minute = new Date(1970, 0, 1, 0, viewDate.minute - (midIndex - i) * options.minuteStep);\n minutes.push({\n date: minute,\n label: formatDate(minute, minutesFormat),\n selected: $timepicker.$date && $timepicker.$isSelected(minute, 1),\n disabled: $timepicker.$isDisabled(minute, 1)\n });\n }\n var seconds = [],\n second;\n for (i = 0; i < options.length; i++) {\n second = new Date(1970, 0, 1, 0, 0, viewDate.second - (midIndex - i) * options.secondStep);\n seconds.push({\n date: second,\n label: formatDate(second, secondsFormat),\n selected: $timepicker.$date && $timepicker.$isSelected(second, 2),\n disabled: $timepicker.$isDisabled(second, 2)\n });\n }\n\n var rows = [];\n for (i = 0; i < options.length; i++) {\n if (showSeconds) {\n rows.push([hours[i], minutes[i], seconds[i]]);\n } else {\n rows.push([hours[i], minutes[i]]);\n }\n }\n scope.rows = rows;\n scope.showSeconds = showSeconds;\n scope.showAM = showAM;\n scope.isAM = ($timepicker.$date || hours[midIndex].date).getHours() < 12;\n scope.timeSeparator = timeSeparator;\n $timepicker.$isBuilt = true;\n };\n\n $timepicker.$isSelected = function(date, index) {\n if (!$timepicker.$date) return false;\n else if (index === 0) {\n return date.getHours() === $timepicker.$date.getHours();\n } else if (index === 1) {\n return date.getMinutes() === $timepicker.$date.getMinutes();\n } else if (index === 2) {\n return date.getSeconds() === $timepicker.$date.getSeconds();\n }\n };\n\n $timepicker.$isDisabled = function(date, index) {\n var selectedTime;\n if (index === 0) {\n selectedTime = date.getTime() + viewDate.minute * 6e4 + viewDate.second * 1e3;\n } else if (index === 1) {\n selectedTime = date.getTime() + viewDate.hour * 36e5 + viewDate.second * 1e3;\n } else if (index === 2) {\n selectedTime = date.getTime() + viewDate.hour * 36e5 + viewDate.minute * 6e4;\n }\n return selectedTime < options.minTime * 1 || selectedTime > options.maxTime * 1;\n };\n\n scope.$arrowAction = function(value, index) {\n if (options.arrowBehavior === 'picker') {\n $timepicker.$setTimeByStep(value, index);\n } else {\n $timepicker.$moveIndex(value, index);\n }\n };\n\n $timepicker.$setTimeByStep = function(value, index) {\n var newDate = new Date($timepicker.$date || startDate);\n var hours = newDate.getHours();\n var minutes = newDate.getMinutes();\n var seconds = newDate.getSeconds();\n if (index === 0) {\n newDate.setHours(hours - (parseInt(options.hourStep, 10) * value));\n } else if (index === 1) {\n newDate.setMinutes(minutes - (parseInt(options.minuteStep, 10) * value));\n } else if (index === 2) {\n newDate.setSeconds(seconds - (parseInt(options.secondStep, 10) * value));\n }\n $timepicker.select(newDate, index, true);\n };\n\n $timepicker.$moveIndex = function(value, index) {\n var targetDate;\n if (index === 0) {\n targetDate = new Date(1970, 0, 1, viewDate.hour + (value * options.length), viewDate.minute, viewDate.second);\n angular.extend(viewDate, {\n hour: targetDate.getHours()\n });\n } else if (index === 1) {\n targetDate = new Date(1970, 0, 1, viewDate.hour, viewDate.minute + (value * options.length * options.minuteStep), viewDate.second);\n angular.extend(viewDate, {\n minute: targetDate.getMinutes()\n });\n } else if (index === 2) {\n targetDate = new Date(1970, 0, 1, viewDate.hour, viewDate.minute, viewDate.second + (value * options.length * options.secondStep));\n angular.extend(viewDate, {\n second: targetDate.getSeconds()\n });\n }\n $timepicker.$build();\n };\n\n $timepicker.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n if (evt.target.nodeName.toLowerCase() !== 'input') evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if (isTouch) {\n var targetEl = angular.element(evt.target);\n if (targetEl[0].nodeName.toLowerCase() !== 'button') {\n targetEl = targetEl.parent();\n }\n targetEl.triggerHandler('click');\n }\n };\n\n $timepicker.$onKeyDown = function(evt) {\n if (!/(38|37|39|40|13)/.test(evt.keyCode) || evt.shiftKey || evt.altKey) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // Close on enter\n if (evt.keyCode === 13) {\n $timepicker.hide(true);\n return;\n }\n\n // Navigate with keyboard\n var newDate = new Date($timepicker.$date);\n var hours = newDate.getHours(),\n hoursLength = formatDate(newDate, hoursFormat).length;\n var minutes = newDate.getMinutes(),\n minutesLength = formatDate(newDate, minutesFormat).length;\n var seconds = newDate.getSeconds(),\n secondsLength = formatDate(newDate, secondsFormat).length;\n var sepLength = 1;\n var lateralMove = /(37|39)/.test(evt.keyCode);\n var count = 2 + showSeconds * 1 + showAM * 1;\n\n // Navigate indexes (left, right)\n if (lateralMove) {\n if (evt.keyCode === 37) selectedIndex = selectedIndex < 1 ? count - 1 : selectedIndex - 1;\n else if (evt.keyCode === 39) selectedIndex = selectedIndex < count - 1 ? selectedIndex + 1 : 0;\n }\n\n // Update values (up, down)\n var selectRange = [0, hoursLength];\n var incr = 0;\n if (evt.keyCode === 38) incr = -1;\n if (evt.keyCode === 40) incr = +1;\n var isSeconds = selectedIndex === 2 && showSeconds;\n var isMeridian = selectedIndex === 2 && !showSeconds || selectedIndex === 3 && showSeconds;\n if (selectedIndex === 0) {\n newDate.setHours(hours + incr * parseInt(options.hourStep, 10));\n // re-calculate hours length because we have changed hours value\n hoursLength = formatDate(newDate, hoursFormat).length;\n selectRange = [0, hoursLength];\n } else if (selectedIndex === 1) {\n newDate.setMinutes(minutes + incr * parseInt(options.minuteStep, 10));\n // re-calculate minutes length because we have changes minutes value\n minutesLength = formatDate(newDate, minutesFormat).length;\n selectRange = [hoursLength + sepLength, minutesLength];\n } else if (isSeconds) {\n newDate.setSeconds(seconds + incr * parseInt(options.secondStep, 10));\n // re-calculate seconds length because we have changes seconds value\n secondsLength = formatDate(newDate, secondsFormat).length;\n selectRange = [hoursLength + sepLength + minutesLength + sepLength, secondsLength];\n } else if (isMeridian) {\n if (!lateralMove) $timepicker.switchMeridian();\n selectRange = [hoursLength + sepLength + minutesLength + sepLength + (secondsLength + sepLength) * showSeconds, 2];\n }\n $timepicker.select(newDate, selectedIndex, true);\n createSelection(selectRange[0], selectRange[1]);\n parentScope.$digest();\n };\n\n // Private\n\n function createSelection(start, length) {\n var end = start + length;\n if (element[0].createTextRange) {\n var selRange = element[0].createTextRange();\n selRange.collapse(true);\n selRange.moveStart('character', start);\n selRange.moveEnd('character', end);\n selRange.select();\n } else if (element[0].setSelectionRange) {\n element[0].setSelectionRange(start, end);\n } else if (angular.isUndefined(element[0].selectionStart)) {\n element[0].selectionStart = start;\n element[0].selectionEnd = end;\n }\n }\n\n function focusElement() {\n element[0].focus();\n }\n\n // Overrides\n\n var _init = $timepicker.init;\n $timepicker.init = function() {\n if (isNative && options.useNative) {\n element.prop('type', 'time');\n element.css('-webkit-appearance', 'textfield');\n return;\n } else if (isTouch) {\n element.prop('type', 'text');\n element.attr('readonly', 'true');\n element.on('click', focusElement);\n }\n _init();\n };\n\n var _destroy = $timepicker.destroy;\n $timepicker.destroy = function() {\n if (isNative && options.useNative) {\n element.off('click', focusElement);\n }\n _destroy();\n };\n\n var _show = $timepicker.show;\n $timepicker.show = function() {\n if((!isTouch && element.attr('readonly')) || element.attr('disabled')) return;\n _show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n $timepicker.$element && $timepicker.$element.on(isTouch ? 'touchstart' : 'mousedown', $timepicker.$onMouseDown);\n if (options.keyboard) {\n element && element.on('keydown', $timepicker.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $timepicker.hide;\n $timepicker.hide = function(blur) {\n if (!$timepicker.$isShown) return;\n $timepicker.$element && $timepicker.$element.off(isTouch ? 'touchstart' : 'mousedown', $timepicker.$onMouseDown);\n if (options.keyboard) {\n element && element.off('keydown', $timepicker.$onKeyDown);\n }\n _hide(blur);\n };\n\n return $timepicker;\n\n }\n\n timepickerFactory.defaults = defaults;\n return timepickerFactory;\n\n };\n\n })\n\n\n .directive('bsTimepicker', function($window, $parse, $q, $dateFormatter, $dateParser, $timepicker) {\n\n var defaults = $timepicker.defaults;\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {\n scope: scope\n };\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'autoclose', 'timeType', 'timeFormat', 'timezone', 'modelTimeFormat', 'useNative', 'hourStep', 'minuteStep', 'secondStep', 'length', 'arrowBehavior', 'iconUp', 'iconDown', 'roundDisplay', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if (angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoclose', 'useNative', 'roundDisplay'], function(key) {\n if (angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if (!timepicker || !angular.isDefined(newValue)) return;\n if (angular.isString(newValue)) newValue = !!newValue.match(/true|,?(timepicker),?/i);\n newValue === true ? timepicker.show() : timepicker.hide();\n });\n\n // Initialize timepicker\n if (isNative && (options.useNative || defaults.useNative)) options.timeFormat = 'HH:mm';\n var timepicker = $timepicker(element, controller, options);\n options = timepicker.$options;\n\n var lang = options.lang;\n var formatDate = function(date, format, timezone) {\n return $dateFormatter.formatDate(date, format, lang, timezone);\n };\n\n // Initialize parser\n var dateParser = $dateParser({\n format: options.timeFormat,\n lang: lang\n });\n\n // Observe attributes for changes\n angular.forEach(['minTime', 'maxTime'], function(key) {\n // console.warn('attr.$observe(%s)', key, attr[key]);\n angular.isDefined(attr[key]) && attr.$observe(key, function(newValue) {\n timepicker.$options[key] = dateParser.getTimeForAttribute(key, newValue);\n !isNaN(timepicker.$options[key]) && timepicker.$build();\n validateAgainstMinMaxTime(controller.$dateValue);\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.ngModel, newValue, oldValue, controller.$dateValue);\n timepicker.update(controller.$dateValue);\n }, true);\n\n function validateAgainstMinMaxTime(parsedTime) {\n if (!angular.isDate(parsedTime)) return;\n var isMinValid = isNaN(options.minTime) || new Date(parsedTime.getTime()).setFullYear(1970, 0, 1) >= options.minTime;\n var isMaxValid = isNaN(options.maxTime) || new Date(parsedTime.getTime()).setFullYear(1970, 0, 1) <= options.maxTime;\n var isValid = isMinValid && isMaxValid;\n controller.$setValidity('date', isValid);\n controller.$setValidity('min', isMinValid);\n controller.$setValidity('max', isMaxValid);\n // Only update the model when we have a valid date\n if (!isValid) {\n return;\n }\n controller.$dateValue = parsedTime;\n }\n\n // viewValue -> $parsers -> modelValue\n controller.$parsers.unshift(function(viewValue) {\n // console.warn('$parser(\"%s\"): viewValue=%o', element.attr('ng-model'), viewValue);\n var date;\n // Null values should correctly reset the model value & validity\n if (!viewValue) {\n // BREAKING CHANGE:\n // return null (not undefined) when input value is empty, so angularjs 1.3\n // ngModelController can go ahead and run validators, like ngRequired\n controller.$setValidity('date', true);\n return null;\n }\n var parsedTime = angular.isDate(viewValue) ? viewValue : dateParser.parse(viewValue, controller.$dateValue);\n if (!parsedTime || isNaN(parsedTime.getTime())) {\n controller.$setValidity('date', false);\n // Return undefined, causes ngModelController to\n // invalidate model value\n return undefined;\n } else {\n validateAgainstMinMaxTime(parsedTime);\n }\n\n if (options.timeType === 'string') {\n date = dateParser.timezoneOffsetAdjust(parsedTime, options.timezone, true);\n return formatDate(date, options.modelTimeFormat || options.timeFormat);\n }\n date = dateParser.timezoneOffsetAdjust(controller.$dateValue, options.timezone, true);\n if (options.timeType === 'number') {\n return date.getTime();\n } else if (options.timeType === 'unix') {\n return date.getTime() / 1000;\n } else if (options.timeType === 'iso') {\n return date.toISOString();\n } else {\n return new Date(date);\n }\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var date;\n if (angular.isUndefined(modelValue) || modelValue === null) {\n date = NaN;\n } else if (angular.isDate(modelValue)) {\n date = modelValue;\n } else if (options.timeType === 'string') {\n date = dateParser.parse(modelValue, null, options.modelTimeFormat);\n } else if (options.timeType === 'unix') {\n date = new Date(modelValue * 1000);\n } else {\n date = new Date(modelValue);\n }\n // Setup default value?\n // if(isNaN(date.getTime())) date = new Date(new Date().setMinutes(0) + 36e5);\n controller.$dateValue = dateParser.timezoneOffsetAdjust(date, options.timezone);\n return getTimeFormattedString();\n });\n\n // viewValue -> element\n controller.$render = function() {\n // console.warn('$render(\"%s\"): viewValue=%o', element.attr('ng-model'), controller.$viewValue);\n element.val(getTimeFormattedString());\n };\n\n function getTimeFormattedString() {\n return !controller.$dateValue || isNaN(controller.$dateValue.getTime()) ? '' : formatDate(controller.$dateValue, options.timeFormat);\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (timepicker) timepicker.destroy();\n options = null;\n timepicker = null;\n });\n\n }\n };\n\n });\n\n// Source: tab/tab.js\nangular.module('mgcrea.ngStrap.tab', [])\n\n .provider('$tab', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n template: 'tab/tab.tpl.html',\n navClass: 'nav-tabs',\n activeClass: 'active'\n };\n\n var controller = this.controller = function($scope, $element, $attrs) {\n var self = this;\n\n // Attributes options\n self.$options = angular.copy(defaults);\n angular.forEach(['animation', 'navClass', 'activeClass'], function(key) {\n if(angular.isDefined($attrs[key])) self.$options[key] = $attrs[key];\n });\n\n // Publish options on scope\n $scope.$navClass = self.$options.navClass;\n $scope.$activeClass = self.$options.activeClass;\n\n self.$panes = $scope.$panes = [];\n\n // Please use $activePaneChangeListeners if you use `bsActivePane`\n // Because we removed `ngModel` as default, we rename viewChangeListeners to\n // activePaneChangeListeners to make more sense.\n self.$activePaneChangeListeners = self.$viewChangeListeners = [];\n\n self.$push = function(pane) {\n if(angular.isUndefined(self.$panes.$active)) {\n $scope.$setActive(pane.name || 0);\n }\n self.$panes.push(pane);\n };\n\n self.$remove = function(pane) {\n var index = self.$panes.indexOf(pane);\n var active = self.$panes.$active;\n var activeIndex;\n if(angular.isString(active)) {\n activeIndex = self.$panes.map(function(pane) {\n return pane.name;\n }).indexOf(active);\n } else {\n activeIndex = self.$panes.$active;\n }\n\n // remove pane from $panes array\n self.$panes.splice(index, 1);\n\n if (index < activeIndex) {\n // we removed a pane before the active pane, so we need to\n // decrement the active pane index\n activeIndex--;\n }\n else if (index === activeIndex && activeIndex === self.$panes.length) {\n // we remove the active pane and it was the one at the end,\n // so select the previous one\n activeIndex--;\n }\n if(activeIndex >= 0 && activeIndex < self.$panes.length) {\n self.$setActive(self.$panes[activeIndex].name || activeIndex);\n } else {\n self.$setActive();\n }\n };\n\n self.$setActive = $scope.$setActive = function(value) {\n self.$panes.$active = value;\n self.$activePaneChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n self.$isActive = $scope.$isActive = function($pane, $index) {\n return self.$panes.$active === $pane.name || self.$panes.$active === $index;\n };\n\n };\n\n this.$get = function() {\n var $tab = {};\n $tab.defaults = defaults;\n $tab.controller = controller;\n return $tab;\n };\n\n })\n\n .directive('bsTabs', function($window, $animate, $tab, $parse) {\n\n var defaults = $tab.defaults;\n\n return {\n require: ['?ngModel', 'bsTabs'],\n transclude: true,\n scope: true,\n controller: ['$scope', '$element', '$attrs', $tab.controller],\n templateUrl: function(element, attr) {\n return attr.template || defaults.template;\n },\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsTabsCtrl = controllers[1];\n\n // 'ngModel' does interfere with form validation\n // and status, use `bsActivePane` instead to avoid it\n if(ngModelCtrl) {\n\n // Update the modelValue following\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n ngModelCtrl.$setViewValue(bsTabsCtrl.$panes.$active);\n });\n\n // modelValue -> $formatters -> viewValue\n ngModelCtrl.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n bsTabsCtrl.$setActive(modelValue);\n return modelValue;\n });\n\n }\n\n if (attrs.bsActivePane) {\n // adapted from angularjs ngModelController bindings\n // https://github.com/angular/angular.js/blob/v1.3.1/src%2Fng%2Fdirective%2Finput.js#L1730\n var parsedBsActivePane = $parse(attrs.bsActivePane);\n\n // Update bsActivePane value with change\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n parsedBsActivePane.assign(scope, bsTabsCtrl.$panes.$active);\n });\n\n // watch bsActivePane for value changes\n scope.$watch(attrs.bsActivePane, function(newValue, oldValue) {\n bsTabsCtrl.$setActive(newValue);\n }, true);\n }\n }\n };\n\n })\n\n .directive('bsPane', function($window, $animate, $sce) {\n\n return {\n require: ['^?ngModel', '^bsTabs'],\n scope: true,\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsTabsCtrl = controllers[1];\n\n // Add base class\n element.addClass('tab-pane');\n\n // Observe title attribute for change\n attrs.$observe('title', function(newValue, oldValue) {\n scope.title = $sce.trustAsHtml(newValue);\n });\n\n // Save tab name into scope\n scope.name = attrs.name;\n\n // Add animation class\n if(bsTabsCtrl.$options.animation) {\n element.addClass(bsTabsCtrl.$options.animation);\n }\n\n attrs.$observe('disabled', function(newValue, oldValue) {\n scope.disabled = scope.$eval(newValue);\n });\n\n // Push pane to parent bsTabs controller\n bsTabsCtrl.$push(scope);\n\n // remove pane from tab controller when pane is destroyed\n scope.$on('$destroy', function() {\n bsTabsCtrl.$remove(scope);\n });\n\n function render() {\n var index = bsTabsCtrl.$panes.indexOf(scope);\n $animate[bsTabsCtrl.$isActive(scope, index) ? 'addClass' : 'removeClass'](element, bsTabsCtrl.$options.activeClass);\n }\n\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n render();\n });\n render();\n\n }\n };\n\n });\n\n// Source: typeahead/typeahead.js\nangular.module('mgcrea.ngStrap.typeahead', ['mgcrea.ngStrap.tooltip', 'mgcrea.ngStrap.helpers.parseOptions'])\n\n .provider('$typeahead', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'typeahead',\n prefixEvent: '$typeahead',\n placement: 'bottom-left',\n templateUrl: 'typeahead/typeahead.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n minLength: 1,\n filter: 'bsAsyncFilter',\n limit: 6,\n autoSelect: false,\n comparator: '',\n trimValue: true\n };\n\n this.$get = function($window, $rootScope, $tooltip, $$rAF, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n\n function TypeaheadFactory(element, controller, config) {\n\n var $typeahead = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $typeahead = $tooltip(element, options);\n var parentScope = config.scope;\n var scope = $typeahead.$scope;\n\n scope.$resetMatches = function() {\n scope.$matches = [];\n scope.$activeIndex = options.autoSelect ? 0 : -1; // If set to 0, the first match will be highlighted\n };\n scope.$resetMatches();\n\n scope.$activate = function(index) {\n scope.$$postDigest(function() {\n $typeahead.activate(index);\n });\n };\n\n scope.$select = function(index, evt) {\n scope.$$postDigest(function() {\n $typeahead.select(index);\n });\n };\n\n scope.$isVisible = function() {\n return $typeahead.$isVisible();\n };\n\n // Public methods\n\n $typeahead.update = function(matches) {\n scope.$matches = matches;\n if (scope.$activeIndex >= matches.length) {\n scope.$activeIndex = options.autoSelect ? 0 : -1;\n }\n\n // wrap in a $timeout so the results are updated\n // before repositioning\n safeDigest(scope);\n $$rAF($typeahead.$applyPlacement);\n };\n\n $typeahead.activate = function(index) {\n scope.$activeIndex = index;\n };\n\n $typeahead.select = function(index) {\n if (index === -1) return;\n var value = scope.$matches[index].value;\n // console.log('$setViewValue', value);\n controller.$setViewValue(value);\n controller.$render();\n scope.$resetMatches();\n if (parentScope) parentScope.$digest();\n // Emit event\n scope.$emit(options.prefixEvent + '.select', value, index, $typeahead);\n };\n\n // Protected methods\n\n $typeahead.$isVisible = function() {\n if (!options.minLength || !controller) {\n return !!scope.$matches.length;\n }\n // minLength support\n return scope.$matches.length && angular.isString(controller.$viewValue) && controller.$viewValue.length >= options.minLength;\n };\n\n $typeahead.$getIndex = function(value) {\n var l = scope.$matches.length,\n i = l;\n if (!l) return;\n for (i = l; i--;) {\n if (scope.$matches[i].value === value) break;\n }\n if (i < 0) return;\n return i;\n };\n\n $typeahead.$onMouseDown = function(evt) {\n // Prevent blur on mousedown\n evt.preventDefault();\n evt.stopPropagation();\n };\n\n $typeahead.$onKeyDown = function(evt) {\n if (!/(38|40|13)/.test(evt.keyCode)) return;\n\n // Let ngSubmit pass if the typeahead tip is hidden or no option is selected\n if ($typeahead.$isVisible() && !(evt.keyCode === 13 && scope.$activeIndex === -1)) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n\n // Select with enter\n if (evt.keyCode === 13 && scope.$matches.length) {\n $typeahead.select(scope.$activeIndex);\n }\n\n // Navigate with keyboard\n else if (evt.keyCode === 38 && scope.$activeIndex > 0) scope.$activeIndex--;\n else if (evt.keyCode === 40 && scope.$activeIndex < scope.$matches.length - 1) scope.$activeIndex++;\n else if (angular.isUndefined(scope.$activeIndex)) scope.$activeIndex = 0;\n scope.$digest();\n };\n\n // Overrides\n\n var show = $typeahead.show;\n $typeahead.show = function() {\n show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed immediately.\n $timeout(function() {\n $typeahead.$element && $typeahead.$element.on('mousedown', $typeahead.$onMouseDown);\n if (options.keyboard) {\n element && element.on('keydown', $typeahead.$onKeyDown);\n }\n }, 0, false);\n };\n\n var hide = $typeahead.hide;\n $typeahead.hide = function() {\n $typeahead.$element && $typeahead.$element.off('mousedown', $typeahead.$onMouseDown);\n if (options.keyboard) {\n element && element.off('keydown', $typeahead.$onKeyDown);\n }\n if (!options.autoSelect)\n $typeahead.activate(-1);\n hide();\n };\n\n return $typeahead;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n TypeaheadFactory.defaults = defaults;\n return TypeaheadFactory;\n\n };\n\n })\n\n .filter('bsAsyncFilter', function($filter) {\n return function(array, expression, comparator) {\n if (array && angular.isFunction(array.then)) {\n return array.then(function(results) {\n return $filter('filter')(results, expression, comparator);\n });\n } else {\n return $filter('filter')(array, expression, comparator);\n }\n };\n })\n\n .directive('bsTypeahead', function($window, $parse, $q, $typeahead, $parseOptions) {\n\n var defaults = $typeahead.defaults;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {\n scope: scope\n };\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'filter', 'limit', 'minLength', 'watchOptions', 'selectMode', 'autoSelect', 'comparator', 'id', 'prefixEvent', 'prefixClass'], function(key) {\n if (angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'trimValue'], function(key) {\n if (angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key])) options[key] = false;\n });\n\n // Disable browser autocompletion\n element.attr('autocomplete', 'false');\n\n // Build proper bsOptions\n var filter = options.filter || defaults.filter;\n var limit = options.limit || defaults.limit;\n var comparator = options.comparator || defaults.comparator;\n\n var bsOptions = attr.bsOptions;\n if (filter) bsOptions += ' | ' + filter + ':$viewValue';\n if (comparator) bsOptions += ':' + comparator;\n if (limit) bsOptions += ' | limitTo:' + limit;\n var parsedOptions = $parseOptions(bsOptions);\n\n // Initialize typeahead\n var typeahead = $typeahead(element, controller, options);\n\n // Watch options on demand\n if (options.watchOptions) {\n // Watch bsOptions values before filtering for changes, drop function calls\n var watchedOptions = parsedOptions.$match[7].replace(/\\|.+/, '').replace(/\\(.*\\)/g, '').trim();\n scope.$watchCollection(watchedOptions, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', watchedOptions, newValue, oldValue);\n parsedOptions.valuesFn(scope, controller).then(function(values) {\n typeahead.update(values);\n controller.$render();\n });\n });\n }\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('$watch', element.attr('ng-model'), newValue);\n scope.$modelValue = newValue; // Publish modelValue on scope for custom templates\n parsedOptions.valuesFn(scope, controller)\n .then(function(values) {\n // Prevent input with no future prospect if selectMode is truthy\n // @TODO test selectMode\n if (options.selectMode && !values.length && newValue.length > 0) {\n controller.$setViewValue(controller.$viewValue.substring(0, controller.$viewValue.length - 1));\n return;\n }\n if (values.length > limit) values = values.slice(0, limit);\n var isVisible = typeahead.$isVisible();\n isVisible && typeahead.update(values);\n // Do not re-queue an update if a correct value has been selected\n if (values.length === 1 && values[0].value === newValue) return;\n !isVisible && typeahead.update(values);\n // Queue a new rendering that will leverage collection loading\n controller.$render();\n });\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var displayValue = parsedOptions.displayValue(modelValue);\n\n // If we can determine the displayValue, use that\n if (displayValue) {\n return displayValue;\n }\n\n // If there's no display value, attempt to use the modelValue.\n // If the model is an object not much we can do\n if (modelValue && typeof modelValue !== 'object') {\n return modelValue;\n }\n return '';\n });\n\n // Model rendering in view\n controller.$render = function() {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n if (controller.$isEmpty(controller.$viewValue)) {\n return element.val('');\n }\n var index = typeahead.$getIndex(controller.$modelValue);\n var selected = angular.isDefined(index) ? typeahead.$scope.$matches[index].label : controller.$viewValue;\n selected = angular.isObject(selected) ? parsedOptions.displayValue(selected) : selected;\n var value = selected ? selected.toString().replace(/<(?:.|\\n)*?>/gm, '') : '';\n element.val(options.trimValue === false ? value : value.trim());\n };\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (typeahead) typeahead.destroy();\n options = null;\n typeahead = null;\n });\n\n }\n };\n\n });\n\n// Source: tooltip/tooltip.js\nangular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.core', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$tooltip', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n customClass: '',\n prefixClass: 'tooltip',\n prefixEvent: 'tooltip',\n container: false,\n target: false,\n placement: 'top',\n templateUrl: 'tooltip/tooltip.tpl.html',\n template: '',\n contentTemplate: false,\n trigger: 'hover focus',\n keyboard: false,\n html: false,\n show: false,\n title: '',\n type: '',\n delay: 0,\n autoClose: false,\n bsEnabled: true,\n viewport: {\n selector: 'body',\n padding: 0\n }\n };\n\n this.$get = function($window, $rootScope, $bsCompiler, $q, $templateCache, $http, $animate, $sce, dimensions, $$rAF, $timeout) {\n\n var trim = String.prototype.trim;\n var isTouch = 'createTouch' in $window.document;\n var htmlReplaceRegExp = /ng-bind=\"/ig;\n var $body = angular.element($window.document);\n\n function TooltipFactory(element, config) {\n\n var $tooltip = {};\n\n // Common vars\n var options = $tooltip.$options = angular.extend({}, defaults, config);\n var promise = $tooltip.$promise = $bsCompiler.compile(options);\n var scope = $tooltip.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n var nodeName = element[0].nodeName.toLowerCase();\n if(options.delay && angular.isString(options.delay)) {\n var split = options.delay.split(',').map(parseFloat);\n options.delay = split.length > 1 ? {show: split[0], hide: split[1]} : split[0];\n }\n\n // Store $id to identify the triggering element in events\n // give priority to options.id, otherwise, try to use\n // element id if defined\n $tooltip.$id = options.id || element.attr('id') || '';\n\n // Support scope as string options\n if(options.title) {\n scope.title = $sce.trustAsHtml(options.title);\n }\n\n // Provide scope helpers\n scope.$setEnabled = function(isEnabled) {\n scope.$$postDigest(function() {\n $tooltip.setEnabled(isEnabled);\n });\n };\n scope.$hide = function() {\n scope.$$postDigest(function() {\n $tooltip.hide();\n });\n };\n scope.$show = function() {\n scope.$$postDigest(function() {\n $tooltip.show();\n });\n };\n scope.$toggle = function() {\n scope.$$postDigest(function() {\n $tooltip.toggle();\n });\n };\n // Publish isShown as a protected var on scope\n $tooltip.$isShown = scope.$isShown = false;\n\n // Private vars\n var timeout, hoverState;\n\n // Fetch, compile then initialize tooltip\n var compileData, tipElement, tipContainer, tipScope;\n promise.then(function(data) {\n compileData = data;\n $tooltip.init();\n });\n\n $tooltip.init = function() {\n\n // Options: delay\n if (options.delay && angular.isNumber(options.delay)) {\n options.delay = {\n show: options.delay,\n hide: options.delay\n };\n }\n\n // Replace trigger on touch devices ?\n // if(isTouch && options.trigger === defaults.trigger) {\n // options.trigger.replace(/hover/g, 'click');\n // }\n\n // Options : container\n if(options.container === 'self') {\n tipContainer = element;\n } else if(angular.isElement(options.container)) {\n tipContainer = options.container;\n } else if(options.container) {\n tipContainer = findElement(options.container);\n }\n\n // Options: trigger\n bindTriggerEvents();\n\n // Options: target\n if(options.target) {\n options.target = angular.isElement(options.target) ? options.target : findElement(options.target);\n }\n\n // Options: show\n if(options.show) {\n scope.$$postDigest(function() {\n options.trigger === 'focus' ? element[0].focus() : $tooltip.show();\n });\n }\n\n };\n\n $tooltip.destroy = function() {\n\n // Unbind events\n unbindTriggerEvents();\n\n // Remove element\n destroyTipElement();\n\n // Destroy scope\n scope.$destroy();\n\n };\n\n $tooltip.enter = function() {\n\n clearTimeout(timeout);\n hoverState = 'in';\n if (!options.delay || !options.delay.show) {\n return $tooltip.show();\n }\n\n timeout = setTimeout(function() {\n if (hoverState ==='in') $tooltip.show();\n }, options.delay.show);\n\n };\n\n $tooltip.show = function() {\n if (!options.bsEnabled || $tooltip.$isShown) return;\n\n scope.$emit(options.prefixEvent + '.show.before', $tooltip);\n var parent, after;\n if (options.container) {\n parent = tipContainer;\n if (tipContainer[0].lastChild) {\n after = angular.element(tipContainer[0].lastChild);\n } else {\n after = null;\n }\n } else {\n parent = null;\n after = element;\n }\n\n\n // Hide any existing tipElement\n if(tipElement) destroyTipElement();\n // Fetch a cloned element linked from template\n tipScope = $tooltip.$scope.$new();\n tipElement = $tooltip.$element = compileData.link(tipScope, function(clonedElement, scope) {});\n\n // Set the initial positioning. Make the tooltip invisible\n // so IE doesn't try to focus on it off screen.\n tipElement.css({top: '-9999px', left: '-9999px', right: 'auto', display: 'block', visibility: 'hidden'});\n\n // Options: animation\n if(options.animation) tipElement.addClass(options.animation);\n // Options: type\n if(options.type) tipElement.addClass(options.prefixClass + '-' + options.type);\n // Options: custom classes\n if(options.customClass) tipElement.addClass(options.customClass);\n\n // Append the element, without any animations. If we append\n // using $animate.enter, some of the animations cause the placement\n // to be off due to the transforms.\n after ? after.after(tipElement) : parent.prepend(tipElement);\n\n $tooltip.$isShown = scope.$isShown = true;\n safeDigest(scope);\n\n // Now, apply placement\n $tooltip.$applyPlacement();\n\n // Once placed, animate it.\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.enter(tipElement, parent, after, enterAnimateCallback);\n } else {\n $animate.enter(tipElement, parent, after).then(enterAnimateCallback);\n }\n safeDigest(scope);\n\n $$rAF(function () {\n // Once the tooltip is placed and the animation starts, make the tooltip visible\n if(tipElement) tipElement.css({visibility: 'visible'});\n });\n\n // Bind events\n if(options.keyboard) {\n if(options.trigger !== 'focus') {\n $tooltip.focus();\n }\n bindKeyboardEvents();\n }\n\n if(options.autoClose) {\n bindAutoCloseEvents();\n }\n\n };\n\n function enterAnimateCallback() {\n scope.$emit(options.prefixEvent + '.show', $tooltip);\n }\n\n $tooltip.leave = function() {\n\n clearTimeout(timeout);\n hoverState = 'out';\n if (!options.delay || !options.delay.hide) {\n return $tooltip.hide();\n }\n timeout = setTimeout(function () {\n if (hoverState === 'out') {\n $tooltip.hide();\n }\n }, options.delay.hide);\n\n };\n\n var _blur;\n var _tipToHide;\n $tooltip.hide = function(blur) {\n\n if(!$tooltip.$isShown) return;\n scope.$emit(options.prefixEvent + '.hide.before', $tooltip);\n\n // store blur value for leaveAnimateCallback to use\n _blur = blur;\n\n // store current tipElement reference to use\n // in leaveAnimateCallback\n _tipToHide = tipElement;\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.leave(tipElement, leaveAnimateCallback);\n } else {\n $animate.leave(tipElement).then(leaveAnimateCallback);\n }\n\n $tooltip.$isShown = scope.$isShown = false;\n safeDigest(scope);\n\n // Unbind events\n if(options.keyboard && tipElement !== null) {\n unbindKeyboardEvents();\n }\n\n if(options.autoClose && tipElement !== null) {\n unbindAutoCloseEvents();\n }\n };\n\n function leaveAnimateCallback() {\n scope.$emit(options.prefixEvent + '.hide', $tooltip);\n\n // check if current tipElement still references\n // the same element when hide was called\n if (tipElement === _tipToHide) {\n // Allow to blur the input when hidden, like when pressing enter key\n if(_blur && options.trigger === 'focus') {\n return element[0].blur();\n }\n\n // clean up child scopes\n destroyTipElement();\n }\n }\n\n $tooltip.toggle = function() {\n $tooltip.$isShown ? $tooltip.leave() : $tooltip.enter();\n };\n\n $tooltip.focus = function() {\n tipElement[0].focus();\n };\n\n $tooltip.setEnabled = function(isEnabled) {\n options.bsEnabled = isEnabled;\n };\n\n $tooltip.setViewport = function(viewport) {\n options.viewport = viewport;\n };\n\n // Protected methods\n\n $tooltip.$applyPlacement = function() {\n if(!tipElement) return;\n\n // Determine if we're doing an auto or normal placement\n var placement = options.placement,\n autoToken = /\\s?auto?\\s?/i,\n autoPlace = autoToken.test(placement);\n\n if (autoPlace) {\n placement = placement.replace(autoToken, '') || defaults.placement;\n }\n\n // Need to add the position class before we get\n // the offsets\n tipElement.addClass(options.placement);\n\n // Get the position of the target element\n // and the height and width of the tooltip so we can center it.\n var elementPosition = getPosition(),\n tipWidth = tipElement.prop('offsetWidth'),\n tipHeight = tipElement.prop('offsetHeight');\n\n // Refresh viewport position\n $tooltip.$viewport = options.viewport && findElement(options.viewport.selector || options.viewport);\n\n // If we're auto placing, we need to check the positioning\n if (autoPlace) {\n var originalPlacement = placement;\n var viewportPosition = getPosition($tooltip.$viewport);\n\n // Determine if the vertical placement\n if (originalPlacement.indexOf('bottom') >= 0 && elementPosition.bottom + tipHeight > viewportPosition.bottom) {\n placement = originalPlacement.replace('bottom', 'top');\n } else if (originalPlacement.indexOf('top') >= 0 && elementPosition.top - tipHeight < viewportPosition.top) {\n placement = originalPlacement.replace('top', 'bottom');\n }\n\n // Determine the horizontal placement\n // The exotic placements of left and right are opposite of the standard placements. Their arrows are put on the left/right\n // and flow in the opposite direction of their placement.\n if ((originalPlacement === 'right' || originalPlacement === 'bottom-left' || originalPlacement === 'top-left') &&\n elementPosition.right + tipWidth > viewportPosition.width) {\n\n placement = originalPlacement === 'right' ? 'left' : placement.replace('left', 'right');\n } else if ((originalPlacement === 'left' || originalPlacement === 'bottom-right' || originalPlacement === 'top-right') &&\n elementPosition.left - tipWidth < viewportPosition.left) {\n\n placement = originalPlacement === 'left' ? 'right' : placement.replace('right', 'left');\n }\n\n tipElement.removeClass(originalPlacement).addClass(placement);\n }\n\n // Get the tooltip's top and left coordinates to center it with this directive.\n var tipPosition = getCalculatedOffset(placement, elementPosition, tipWidth, tipHeight);\n applyPlacement(tipPosition, placement);\n };\n\n $tooltip.$onKeyUp = function(evt) {\n if (evt.which === 27 && $tooltip.$isShown) {\n $tooltip.hide();\n evt.stopPropagation();\n }\n };\n\n $tooltip.$onFocusKeyUp = function(evt) {\n if (evt.which === 27) {\n element[0].blur();\n evt.stopPropagation();\n }\n };\n\n $tooltip.$onFocusElementMouseDown = function(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n // Some browsers do not auto-focus buttons (eg. Safari)\n $tooltip.$isShown ? element[0].blur() : element[0].focus();\n };\n\n // bind/unbind events\n function bindTriggerEvents() {\n var triggers = options.trigger.split(' ');\n angular.forEach(triggers, function(trigger) {\n if(trigger === 'click') {\n element.on('click', $tooltip.toggle);\n } else if(trigger !== 'manual') {\n element.on(trigger === 'hover' ? 'mouseenter' : 'focus', $tooltip.enter);\n element.on(trigger === 'hover' ? 'mouseleave' : 'blur', $tooltip.leave);\n nodeName === 'button' && trigger !== 'hover' && element.on(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);\n }\n });\n }\n\n function unbindTriggerEvents() {\n var triggers = options.trigger.split(' ');\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i];\n if(trigger === 'click') {\n element.off('click', $tooltip.toggle);\n } else if(trigger !== 'manual') {\n element.off(trigger === 'hover' ? 'mouseenter' : 'focus', $tooltip.enter);\n element.off(trigger === 'hover' ? 'mouseleave' : 'blur', $tooltip.leave);\n nodeName === 'button' && trigger !== 'hover' && element.off(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);\n }\n }\n }\n\n function bindKeyboardEvents() {\n if(options.trigger !== 'focus') {\n tipElement.on('keyup', $tooltip.$onKeyUp);\n } else {\n element.on('keyup', $tooltip.$onFocusKeyUp);\n }\n }\n\n function unbindKeyboardEvents() {\n if(options.trigger !== 'focus') {\n tipElement.off('keyup', $tooltip.$onKeyUp);\n } else {\n element.off('keyup', $tooltip.$onFocusKeyUp);\n }\n }\n\n var _autoCloseEventsBinded = false;\n function bindAutoCloseEvents() {\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n // Stop propagation when clicking inside tooltip\n tipElement.on('click', stopEventPropagation);\n\n // Hide when clicking outside tooltip\n $body.on('click', $tooltip.hide);\n\n _autoCloseEventsBinded = true;\n }, 0, false);\n }\n\n function unbindAutoCloseEvents() {\n if (_autoCloseEventsBinded) {\n tipElement.off('click', stopEventPropagation);\n $body.off('click', $tooltip.hide);\n _autoCloseEventsBinded = false;\n }\n }\n\n function stopEventPropagation(event) {\n event.stopPropagation();\n }\n\n // Private methods\n\n function getPosition($element) {\n $element = $element || (options.target || element);\n\n var el = $element[0],\n isBody = el.tagName === 'BODY';\n\n var elRect = el.getBoundingClientRect();\n var rect = {};\n\n // IE8 has issues with angular.extend and using elRect directly.\n // By coping the values of elRect into a new object, we can continue to use extend\n for (var p in elRect) {\n // DO NOT use hasOwnProperty when inspecting the return of getBoundingClientRect.\n rect[p] = elRect[p];\n }\n\n if (rect.width === null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n rect = angular.extend({}, rect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top });\n }\n var elOffset = isBody ? { top: 0, left: 0 } : dimensions.offset(el),\n scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.prop('scrollTop') || 0 },\n outerDims = isBody ? { width: document.documentElement.clientWidth, height: $window.innerHeight } : null;\n\n return angular.extend({}, rect, scroll, outerDims, elOffset);\n }\n\n function getCalculatedOffset(placement, position, actualWidth, actualHeight) {\n var offset;\n var split = placement.split('-');\n\n switch (split[0]) {\n case 'right':\n offset = {\n top: position.top + position.height / 2 - actualHeight / 2,\n left: position.left + position.width\n };\n break;\n case 'bottom':\n offset = {\n top: position.top + position.height,\n left: position.left + position.width / 2 - actualWidth / 2\n };\n break;\n case 'left':\n offset = {\n top: position.top + position.height / 2 - actualHeight / 2,\n left: position.left - actualWidth\n };\n break;\n default:\n offset = {\n top: position.top - actualHeight,\n left: position.left + position.width / 2 - actualWidth / 2\n };\n break;\n }\n\n if(!split[1]) {\n return offset;\n }\n\n // Add support for corners @todo css\n if(split[0] === 'top' || split[0] === 'bottom') {\n switch (split[1]) {\n case 'left':\n offset.left = position.left;\n break;\n case 'right':\n offset.left = position.left + position.width - actualWidth;\n }\n } else if(split[0] === 'left' || split[0] === 'right') {\n switch (split[1]) {\n case 'top':\n offset.top = position.top - actualHeight;\n break;\n case 'bottom':\n offset.top = position.top + position.height;\n }\n }\n\n return offset;\n }\n\n function applyPlacement(offset, placement) {\n var tip = tipElement[0],\n width = tip.offsetWidth,\n height = tip.offsetHeight;\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt(dimensions.css(tip, 'margin-top'), 10),\n marginLeft = parseInt(dimensions.css(tip, 'margin-left'), 10);\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0;\n if (isNaN(marginLeft)) marginLeft = 0;\n\n offset.top = offset.top + marginTop;\n offset.left = offset.left + marginLeft;\n\n // dimensions setOffset doesn't round pixel values\n // so we use setOffset directly with our own function\n dimensions.setOffset(tip, angular.extend({\n using: function (props) {\n tipElement.css({\n top: Math.round(props.top) + 'px',\n left: Math.round(props.left) + 'px',\n right: ''\n });\n }\n }, offset), 0);\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = tip.offsetWidth,\n actualHeight = tip.offsetHeight;\n\n if (placement === 'top' && actualHeight !== height) {\n offset.top = offset.top + height - actualHeight;\n }\n\n // If it's an exotic placement, exit now instead of\n // applying a delta and changing the arrow\n if (/top-left|top-right|bottom-left|bottom-right/.test(placement)) return;\n\n var delta = getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight);\n\n if (delta.left) {\n offset.left += delta.left;\n } else {\n offset.top += delta.top;\n }\n\n dimensions.setOffset(tip, offset);\n\n if (/top|right|bottom|left/.test(placement)) {\n var isVertical = /top|bottom/.test(placement),\n arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight,\n arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight';\n\n replaceArrow(arrowDelta, tip[arrowOffsetPosition], isVertical);\n }\n }\n\n // @source https://github.com/twbs/bootstrap/blob/v3.3.5/js/tooltip.js#L380\n function getViewportAdjustedDelta(placement, position, actualWidth, actualHeight) {\n var delta = {top: 0, left: 0};\n if (!$tooltip.$viewport) return delta;\n\n var viewportPadding = options.viewport && options.viewport.padding || 0;\n var viewportDimensions = getPosition($tooltip.$viewport);\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = position.top - viewportPadding - viewportDimensions.scroll;\n var bottomEdgeOffset = position.top + viewportPadding - viewportDimensions.scroll + actualHeight;\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset;\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset;\n }\n } else {\n var leftEdgeOffset = position.left - viewportPadding;\n var rightEdgeOffset = position.left + viewportPadding + actualWidth;\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset;\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset;\n }\n }\n\n return delta;\n }\n\n function replaceArrow(delta, dimension, isHorizontal) {\n var $arrow = findElement('.tooltip-arrow, .arrow', tipElement[0]);\n\n $arrow.css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isHorizontal ? 'top' : 'left', '');\n }\n\n function destroyTipElement() {\n // Cancel pending callbacks\n clearTimeout(timeout);\n\n if($tooltip.$isShown && tipElement !== null) {\n if(options.autoClose) {\n unbindAutoCloseEvents();\n }\n\n if(options.keyboard) {\n unbindKeyboardEvents();\n }\n }\n\n if(tipScope) {\n tipScope.$destroy();\n tipScope = null;\n }\n\n if(tipElement) {\n tipElement.remove();\n tipElement = $tooltip.$element = null;\n }\n }\n\n return $tooltip;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n var fetchPromises = {};\n function fetchTemplate(template) {\n if(fetchPromises[template]) return fetchPromises[template];\n return (fetchPromises[template] = $http.get(template, {cache: $templateCache}).then(function(res) {\n return res.data;\n }));\n }\n\n return TooltipFactory;\n\n };\n\n })\n\n .directive('bsTooltip', function($window, $location, $sce, $tooltip, $$rAF) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'backdropAnimation', 'type', 'customClass', 'id'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // should not parse target attribute (anchor tag), only data-target #1454\n var dataTarget = element.attr('data-target');\n if(angular.isDefined(dataTarget)) {\n if(falseValueRegExp.test(dataTarget))\n options.target = false;\n else\n options.target = dataTarget;\n }\n\n // overwrite inherited title value when no value specified\n // fix for angular 1.3.1 531a8de72c439d8ddd064874bf364c00cedabb11\n if (!scope.hasOwnProperty('title')){\n scope.title = '';\n }\n\n // Observe scope attributes for change\n attr.$observe('title', function(newValue) {\n if (angular.isDefined(newValue) || !scope.hasOwnProperty('title')) {\n var oldValue = scope.title;\n scope.title = $sce.trustAsHtml(newValue);\n angular.isDefined(oldValue) && $$rAF(function() {\n tooltip && tooltip.$applyPlacement();\n });\n }\n });\n\n // Support scope as an object\n attr.bsTooltip && scope.$watch(attr.bsTooltip, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.title = newValue;\n }\n angular.isDefined(oldValue) && $$rAF(function() {\n tooltip && tooltip.$applyPlacement();\n });\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!tooltip || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(tooltip),?/i);\n newValue === true ? tooltip.show() : tooltip.hide();\n });\n\n // Enabled binding support\n attr.bsEnabled && scope.$watch(attr.bsEnabled, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.bsEnabled, newValue, oldValue);\n if(!tooltip || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|1|,?(tooltip),?/i);\n newValue === false ? tooltip.setEnabled(false) : tooltip.setEnabled(true);\n });\n\n // Viewport support\n attr.viewport && scope.$watch(attr.viewport, function (newValue) {\n if(!tooltip || !angular.isDefined(newValue)) return;\n tooltip.setViewport(newValue);\n });\n\n // Initialize popover\n var tooltip = $tooltip(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if(tooltip) tooltip.destroy();\n options = null;\n tooltip = null;\n });\n\n }\n };\n\n });\n\n})(window, document);\n","'use strict';\n\n// NOTICE: This file was forked from the angular-material project (github.com/angular/material)\n// MIT Licensed - Copyright (c) 2014-2015 Google, Inc. http://angularjs.org\n\nangular.module('mgcrea.ngStrap.core', [])\n .service('$bsCompiler', bsCompilerService);\n\nfunction bsCompilerService($q, $http, $injector, $compile, $controller, $templateCache) {\n /* jshint validthis: true */\n\n /*\n * @ngdoc service\n * @name $bsCompiler\n * @module material.core\n * @description\n * The $bsCompiler service is an abstraction of angular's compiler, that allows the developer\n * to easily compile an element with a templateUrl, controller, and locals.\n *\n * @usage\n * \n * $bsCompiler.compile({\n * templateUrl: 'modal.html',\n * controller: 'ModalCtrl',\n * locals: {\n * modal: myModalInstance;\n * }\n * }).then(function(compileData) {\n * compileData.element; // modal.html's template in an element\n * compileData.link(myScope); //attach controller & scope to element\n * });\n * \n */\n\n /*\n * @ngdoc method\n * @name $bsCompiler#compile\n * @description A helper to compile an HTML template/templateUrl with a given controller,\n * locals, and scope.\n * @param {object} options An options object, with the following properties:\n *\n * - `controller` - `{(string=|function()=}` Controller fn that should be associated with\n * newly created scope or the name of a registered controller if passed as a string.\n * - `controllerAs` - `{string=}` A controller alias name. If present the controller will be\n * published to scope under the `controllerAs` name.\n * - `template` - `{string=}` An html template as a string.\n * - `templateUrl` - `{string=}` A path to an html template.\n * - `transformTemplate` - `{function(template)=}` A function which transforms the template after\n * it is loaded. It will be given the template string as a parameter, and should\n * return a a new string representing the transformed template.\n * - `resolve` - `{Object.=}` - An optional map of dependencies which should\n * be injected into the controller. If any of these dependencies are promises, the compiler\n * will wait for them all to be resolved, or if one is rejected before the controller is\n * instantiated `compile()` will fail..\n * * `key` - `{string}`: a name of a dependency to be injected into the controller.\n * * `factory` - `{string|function}`: If `string` then it is an alias for a service.\n * Otherwise if function, then it is injected and the return value is treated as the\n * dependency. If the result is a promise, it is resolved before its value is\n * injected into the controller.\n *\n * @returns {object=} promise A promise, which will be resolved with a `compileData` object.\n * `compileData` has the following properties:\n *\n * - `element` - `{element}`: an uncompiled element matching the provided template.\n * - `link` - `{function(scope)}`: A link function, which, when called, will compile\n * the element and instantiate the provided controller (if given).\n * - `locals` - `{object}`: The locals which will be passed into the controller once `link` is\n * called. If `bindToController` is true, they will be coppied to the ctrl instead\n * - `bindToController` - `bool`: bind the locals to the controller, instead of passing them in.\n */\n this.compile = function(options) {\n\n if(options.template && /\\.html$/.test(options.template)) {\n console.warn('Deprecated use of `template` option to pass a file. Please use the `templateUrl` option instead.');\n options.templateUrl = options.template;\n options.template = '';\n }\n\n var templateUrl = options.templateUrl;\n var template = options.template || '';\n var controller = options.controller;\n var controllerAs = options.controllerAs;\n var resolve = angular.copy(options.resolve || {});\n var locals = angular.copy(options.locals || {});\n var transformTemplate = options.transformTemplate || angular.identity;\n var bindToController = options.bindToController;\n\n // Take resolve values and invoke them.\n // Resolves can either be a string (value: 'MyRegisteredAngularConst'),\n // or an invokable 'factory' of sorts: (value: function ValueGetter($dependency) {})\n angular.forEach(resolve, function(value, key) {\n if (angular.isString(value)) {\n resolve[key] = $injector.get(value);\n } else {\n resolve[key] = $injector.invoke(value);\n }\n });\n // Add the locals, which are just straight values to inject\n // eg locals: { three: 3 }, will inject three into the controller\n angular.extend(resolve, locals);\n\n if (templateUrl) {\n resolve.$template = fetchTemplate(templateUrl);\n } else {\n resolve.$template = $q.when(template);\n }\n\n if (options.contentTemplate) {\n // TODO(mgcrea): deprecate?\n resolve.$template = $q.all([resolve.$template, fetchTemplate(options.contentTemplate)])\n .then(function(templates) {\n var templateEl = angular.element(templates[0]);\n var contentEl = findElement('[ng-bind=\"content\"]', templateEl[0]).removeAttr('ng-bind').html(templates[1]);\n // Drop the default footer as you probably don't want it if you use a custom contentTemplate\n if(!options.templateUrl) contentEl.next().remove();\n return templateEl[0].outerHTML;\n });\n }\n\n // Wait for all the resolves to finish if they are promises\n return $q.all(resolve).then(function(locals) {\n\n var template = transformTemplate(locals.$template);\n if (options.html) {\n template = template.replace(/ng-bind=\"/ig, 'ng-bind-html=\"');\n }\n // var element = options.element || angular.element('
').html(template.trim()).contents();\n var element = angular.element('
').html(template.trim()).contents();\n var linkFn = $compile(element);\n\n // Return a linking function that can be used later when the element is ready\n return {\n locals: locals,\n element: element,\n link: function link(scope) {\n locals.$scope = scope;\n\n // Instantiate controller if it exists, because we have scope\n if (controller) {\n var invokeCtrl = $controller(controller, locals, true);\n if (bindToController) {\n angular.extend(invokeCtrl.instance, locals);\n }\n // Support angular@~1.2 invokeCtrl\n var ctrl = angular.isObject(invokeCtrl) ? invokeCtrl : invokeCtrl();\n // See angular-route source for this logic\n element.data('$ngControllerController', ctrl);\n element.children().data('$ngControllerController', ctrl);\n\n if (controllerAs) {\n scope[controllerAs] = ctrl;\n }\n }\n\n return linkFn.apply(null, arguments);\n }\n };\n });\n\n };\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n var fetchPromises = {};\n function fetchTemplate(template) {\n if(fetchPromises[template]) return fetchPromises[template];\n return (fetchPromises[template] = $http.get(template, {cache: $templateCache})\n .then(function(res) {\n return res.data;\n }));\n }\n\n}\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.dateFormatter', [])\n\n .service('$dateFormatter', function($locale, dateFilter) {\n\n // The unused `lang` arguments are on purpose. The default implementation does not\n // use them and it always uses the locale loaded into the `$locale` service.\n // Custom implementations might use it, thus allowing different directives to\n // have different languages.\n\n this.getDefaultLocale = function() {\n return $locale.id;\n };\n\n // Format is either a data format name, e.g. \"shortTime\" or \"fullDate\", or a date format\n // Return either the corresponding date format or the given date format.\n this.getDatetimeFormat = function(format, lang) {\n return $locale.DATETIME_FORMATS[format] || format;\n };\n\n this.weekdaysShort = function(lang) {\n return $locale.DATETIME_FORMATS.SHORTDAY;\n };\n\n function splitTimeFormat(format) {\n return /(h+)([:\\.])?(m+)([:\\.])?(s*)[ ]?(a?)/i.exec(format).slice(1);\n }\n\n // h:mm a => h\n this.hoursFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[0];\n };\n\n // h:mm a => mm\n this.minutesFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[2];\n };\n\n // h:mm:ss a => ss\n this.secondsFormat = function(timeFormat) {\n return splitTimeFormat(timeFormat)[4];\n };\n\n // h:mm a => :\n this.timeSeparator = function(timeFormat) {\n return splitTimeFormat(timeFormat)[1];\n };\n\n // h:mm:ss a => true, h:mm a => false\n this.showSeconds = function(timeFormat) {\n return !!splitTimeFormat(timeFormat)[4];\n };\n\n // h:mm a => true, H.mm => false\n this.showAM = function(timeFormat) {\n return !!splitTimeFormat(timeFormat)[5];\n };\n\n this.formatDate = function(date, format, lang, timezone){\n return dateFilter(date, format, timezone);\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.affix', ['mgcrea.ngStrap.helpers.dimensions', 'mgcrea.ngStrap.helpers.debounce'])\n\n .provider('$affix', function() {\n\n var defaults = this.defaults = {\n offsetTop: 'auto',\n inlineStyles: true\n };\n\n this.$get = function($window, debounce, dimensions) {\n\n var bodyEl = angular.element($window.document.body);\n var windowEl = angular.element($window);\n\n function AffixFactory(element, config) {\n\n var $affix = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n var targetEl = options.target;\n\n // Initial private vars\n var reset = 'affix affix-top affix-bottom',\n setWidth = false,\n initialAffixTop = 0,\n initialOffsetTop = 0,\n offsetTop = 0,\n offsetBottom = 0,\n affixed = null,\n unpin = null;\n\n var parent = element.parent();\n // Options: custom parent\n if (options.offsetParent) {\n if (options.offsetParent.match(/^\\d+$/)) {\n for (var i = 0; i < (options.offsetParent * 1) - 1; i++) {\n parent = parent.parent();\n }\n }\n else {\n parent = angular.element(options.offsetParent);\n }\n }\n\n $affix.init = function() {\n\n this.$parseOffsets();\n initialOffsetTop = dimensions.offset(element[0]).top + initialAffixTop;\n setWidth = !element[0].style.width;\n\n // Bind events\n targetEl.on('scroll', this.checkPosition);\n targetEl.on('click', this.checkPositionWithEventLoop);\n windowEl.on('resize', this.$debouncedOnResize);\n\n // Both of these checkPosition() calls are necessary for the case where\n // the user hits refresh after scrolling to the bottom of the page.\n this.checkPosition();\n this.checkPositionWithEventLoop();\n\n };\n\n $affix.destroy = function() {\n\n // Unbind events\n targetEl.off('scroll', this.checkPosition);\n targetEl.off('click', this.checkPositionWithEventLoop);\n windowEl.off('resize', this.$debouncedOnResize);\n\n };\n\n $affix.checkPositionWithEventLoop = function() {\n\n // IE 9 throws an error if we use 'this' instead of '$affix'\n // in this setTimeout call\n setTimeout($affix.checkPosition, 1);\n\n };\n\n $affix.checkPosition = function() {\n // if (!this.$element.is(':visible')) return\n\n var scrollTop = getScrollTop();\n var position = dimensions.offset(element[0]);\n var elementHeight = dimensions.height(element[0]);\n\n // Get required affix class according to position\n var affix = getRequiredAffixClass(unpin, position, elementHeight);\n\n // Did affix status changed this last check?\n if(affixed === affix) return;\n affixed = affix;\n\n // Add proper affix class\n element.removeClass(reset).addClass('affix' + ((affix !== 'middle') ? '-' + affix : ''));\n\n if(affix === 'top') {\n unpin = null;\n if(setWidth) {\n element.css('width', '');\n }\n if (options.inlineStyles) {\n element.css('position', (options.offsetParent) ? '' : 'relative');\n element.css('top', '');\n }\n } else if(affix === 'bottom') {\n if (options.offsetUnpin) {\n unpin = -(options.offsetUnpin * 1);\n }\n else {\n // Calculate unpin threshold when affixed to bottom.\n // Hopefully the browser scrolls pixel by pixel.\n unpin = position.top - scrollTop;\n }\n if(setWidth) {\n element.css('width', '');\n }\n if (options.inlineStyles) {\n element.css('position', (options.offsetParent) ? '' : 'relative');\n element.css('top', (options.offsetParent) ? '' : ((bodyEl[0].offsetHeight - offsetBottom - elementHeight - initialOffsetTop) + 'px'));\n }\n } else { // affix === 'middle'\n unpin = null;\n if(setWidth) {\n element.css('width', element[0].offsetWidth + 'px');\n }\n if (options.inlineStyles) {\n element.css('position', 'fixed');\n element.css('top', initialAffixTop + 'px');\n }\n }\n\n };\n\n $affix.$onResize = function() {\n $affix.$parseOffsets();\n $affix.checkPosition();\n };\n $affix.$debouncedOnResize = debounce($affix.$onResize, 50);\n\n $affix.$parseOffsets = function() {\n var initialPosition = element.css('position');\n // Reset position to calculate correct offsetTop\n if (options.inlineStyles){\n element.css('position', (options.offsetParent) ? '' : 'relative');\n }\n\n if(options.offsetTop) {\n if(options.offsetTop === 'auto') {\n options.offsetTop = '+0';\n }\n if(options.offsetTop.match(/^[-+]\\d+$/)) {\n initialAffixTop = - options.offsetTop * 1;\n if(options.offsetParent) {\n offsetTop = dimensions.offset(parent[0]).top + (options.offsetTop * 1);\n }\n else {\n offsetTop = dimensions.offset(element[0]).top - dimensions.css(element[0], 'marginTop', true) + (options.offsetTop * 1);\n }\n }\n else {\n offsetTop = options.offsetTop * 1;\n }\n }\n\n if(options.offsetBottom) {\n if(options.offsetParent && options.offsetBottom.match(/^[-+]\\d+$/)) {\n // add 1 pixel due to rounding problems...\n offsetBottom = getScrollHeight() - (dimensions.offset(parent[0]).top + dimensions.height(parent[0])) + (options.offsetBottom * 1) + 1;\n }\n else {\n offsetBottom = options.offsetBottom * 1;\n }\n }\n\n // Bring back the element's position after calculations\n if (options.inlineStyles){\n element.css('position', initialPosition);\n }\n };\n\n // Private methods\n\n function getRequiredAffixClass(unpin, position, elementHeight) {\n\n var scrollTop = getScrollTop();\n var scrollHeight = getScrollHeight();\n\n if(scrollTop <= offsetTop) {\n return 'top';\n } else if(unpin !== null && (scrollTop + unpin <= position.top)) {\n return 'middle';\n } else if(offsetBottom !== null && (position.top + elementHeight + initialAffixTop >= scrollHeight - offsetBottom)) {\n return 'bottom';\n } else {\n return 'middle';\n }\n\n }\n\n function getScrollTop() {\n return targetEl[0] === $window ? $window.pageYOffset : targetEl[0].scrollTop;\n }\n\n function getScrollHeight() {\n return targetEl[0] === $window ? $window.document.body.scrollHeight : targetEl[0].scrollHeight;\n }\n\n $affix.init();\n return $affix;\n\n }\n\n return AffixFactory;\n\n };\n\n })\n\n .directive('bsAffix', function($affix, $window) {\n\n return {\n restrict: 'EAC',\n require: '^?bsAffixTarget',\n link: function postLink(scope, element, attr, affixTarget) {\n\n var options = {scope: scope, target: affixTarget ? affixTarget.$element : angular.element($window)};\n angular.forEach(['offsetTop', 'offsetBottom', 'offsetParent', 'offsetUnpin', 'inlineStyles'], function(key) {\n if(angular.isDefined(attr[key])) {\n var option = attr[key];\n if (/true/i.test(option)) option = true;\n if (/false/i.test(option)) option = false;\n options[key] = option;\n }\n });\n\n var affix = $affix(element, options);\n scope.$on('$destroy', function() {\n affix && affix.destroy();\n options = null;\n affix = null;\n });\n\n }\n };\n\n })\n\n .directive('bsAffixTarget', function() {\n return {\n controller: function($element) {\n this.$element = $element;\n }\n };\n });\n","'use strict';\n\n// @BUG: following snippet won't compile correctly\n// @TODO: submit issue to core\n// ' ' +\n\nangular.module('mgcrea.ngStrap.alert', ['mgcrea.ngStrap.modal'])\n\n .provider('$alert', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'alert',\n prefixEvent: 'alert',\n placement: null,\n templateUrl: 'alert/alert.tpl.html',\n container: false,\n element: null,\n backdrop: false,\n keyboard: true,\n show: true,\n // Specific options\n duration: false,\n type: false,\n dismissable: true\n };\n\n this.$get = function($modal, $timeout) {\n\n function AlertFactory(config) {\n\n var $alert = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $alert = $modal(options);\n\n // Support scope as string options [/*title, content, */ type, dismissable]\n $alert.$scope.dismissable = !!options.dismissable;\n if(options.type) {\n $alert.$scope.type = options.type;\n }\n\n // Support auto-close duration\n var show = $alert.show;\n if(options.duration) {\n $alert.show = function() {\n show();\n $timeout(function() {\n $alert.hide();\n }, options.duration * 1000);\n };\n }\n\n return $alert;\n\n }\n\n return AlertFactory;\n\n };\n\n })\n\n .directive('bsAlert', function($window, $sce, $alert) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'keyboard', 'html', 'container', 'animation', 'duration', 'dismissable'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['keyboard', 'html', 'container', 'dismissable'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // overwrite inherited title value when no value specified\n // fix for angular 1.3.1 531a8de72c439d8ddd064874bf364c00cedabb11\n if (!scope.hasOwnProperty('title')){\n scope.title = '';\n }\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content', 'type'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsAlert && scope.$watch(attr.bsAlert, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize alert\n var alert = $alert(options);\n\n // Trigger\n element.on(attr.trigger || 'click', alert.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (alert) alert.destroy();\n options = null;\n alert = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.aside', ['mgcrea.ngStrap.modal'])\n\n .provider('$aside', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade-and-slide-right',\n prefixClass: 'aside',\n prefixEvent: 'aside',\n placement: 'right',\n templateUrl: 'aside/aside.tpl.html',\n contentTemplate: false,\n container: false,\n element: null,\n backdrop: true,\n keyboard: true,\n html: false,\n show: true\n };\n\n this.$get = function($modal) {\n\n function AsideFactory(config) {\n\n var $aside = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $aside = $modal(options);\n\n return $aside;\n\n }\n\n return AsideFactory;\n\n };\n\n })\n\n .directive('bsAside', function($window, $sce, $aside) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'backdrop', 'keyboard', 'html', 'container', 'animation'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['backdrop', 'keyboard', 'html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsAside && scope.$watch(attr.bsAside, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize aside\n var aside = $aside(options);\n\n // Trigger\n element.on(attr.trigger || 'click', aside.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (aside) aside.destroy();\n options = null;\n aside = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.button', [])\n\n .provider('$button', function() {\n\n var defaults = this.defaults = {\n activeClass:'active',\n toggleEvent:'click'\n };\n\n this.$get = function() {\n return {defaults: defaults};\n };\n\n })\n\n .directive('bsCheckboxGroup', function() {\n\n return {\n restrict: 'A',\n require: 'ngModel',\n compile: function postLink(element, attr) {\n element.attr('data-toggle', 'buttons');\n element.removeAttr('ng-model');\n var children = element[0].querySelectorAll('input[type=\"checkbox\"]');\n angular.forEach(children, function(child) {\n var childEl = angular.element(child);\n childEl.attr('bs-checkbox', '');\n childEl.attr('ng-model', attr.ngModel + '.' + childEl.attr('value'));\n });\n }\n\n };\n\n })\n\n .directive('bsCheckbox', function($button, $$rAF) {\n\n var defaults = $button.defaults;\n var constantValueRegExp = /^(true|false|\\d+)$/;\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n var options = defaults;\n\n // Support label > input[type=\"checkbox\"]\n var isInput = element[0].nodeName === 'INPUT';\n var activeElement = isInput ? element.parent() : element;\n\n var trueValue = angular.isDefined(attr.trueValue) ? attr.trueValue : true;\n if(constantValueRegExp.test(attr.trueValue)) {\n trueValue = scope.$eval(attr.trueValue);\n }\n var falseValue = angular.isDefined(attr.falseValue) ? attr.falseValue : false;\n if(constantValueRegExp.test(attr.falseValue)) {\n falseValue = scope.$eval(attr.falseValue);\n }\n\n // Parse exotic values\n var hasExoticValues = typeof trueValue !== 'boolean' || typeof falseValue !== 'boolean';\n if(hasExoticValues) {\n controller.$parsers.push(function(viewValue) {\n // console.warn('$parser', element.attr('ng-model'), 'viewValue', viewValue);\n return viewValue ? trueValue : falseValue;\n });\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n return angular.equals(modelValue, trueValue);\n });\n // Fix rendering for exotic values\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n controller.$render();\n });\n }\n\n // model -> view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var isActive = angular.equals(controller.$modelValue, trueValue);\n $$rAF(function() {\n if(isInput) element[0].checked = isActive;\n activeElement.toggleClass(options.activeClass, isActive);\n });\n };\n\n // view -> model\n element.bind(options.toggleEvent, function() {\n scope.$apply(function () {\n // console.warn('!click', element.attr('ng-model'), 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue, 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue);\n if(!isInput) {\n controller.$setViewValue(!activeElement.hasClass('active'));\n }\n if(!hasExoticValues) {\n controller.$render();\n }\n });\n });\n\n }\n\n };\n\n })\n\n .directive('bsRadioGroup', function() {\n\n return {\n restrict: 'A',\n require: 'ngModel',\n compile: function postLink(element, attr) {\n element.attr('data-toggle', 'buttons');\n element.removeAttr('ng-model');\n var children = element[0].querySelectorAll('input[type=\"radio\"]');\n angular.forEach(children, function(child) {\n angular.element(child).attr('bs-radio', '');\n angular.element(child).attr('ng-model', attr.ngModel);\n });\n }\n\n };\n\n })\n\n .directive('bsRadio', function($button, $$rAF) {\n\n var defaults = $button.defaults;\n var constantValueRegExp = /^(true|false|\\d+)$/;\n\n return {\n restrict: 'A',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n var options = defaults;\n\n // Support `label > input[type=\"radio\"]` markup\n var isInput = element[0].nodeName === 'INPUT';\n var activeElement = isInput ? element.parent() : element;\n\n var value;\n attr.$observe('value', function(v) {\n value = constantValueRegExp.test(v) ? scope.$eval(v) : v;\n controller.$render();\n });\n\n // model -> view\n controller.$render = function () {\n // console.warn('$render', element.attr('value'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var isActive = angular.equals(controller.$modelValue, value);\n $$rAF(function() {\n if(isInput) element[0].checked = isActive;\n activeElement.toggleClass(options.activeClass, isActive);\n });\n };\n\n // view -> model\n element.bind(options.toggleEvent, function() {\n scope.$apply(function () {\n // console.warn('!click', element.attr('value'), 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue, 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue);\n controller.$setViewValue(value);\n controller.$render();\n });\n });\n\n }\n\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.collapse', [])\n\n .provider('$collapse', function() {\n\n var defaults = this.defaults = {\n animation: 'am-collapse',\n disallowToggle: false,\n activeClass: 'in',\n startCollapsed: false,\n allowMultiple: false\n };\n\n var controller = this.controller = function($scope, $element, $attrs) {\n var self = this;\n\n // Attributes options\n self.$options = angular.copy(defaults);\n angular.forEach(['animation', 'disallowToggle', 'activeClass', 'startCollapsed', 'allowMultiple'], function (key) {\n if(angular.isDefined($attrs[key])) self.$options[key] = $attrs[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['disallowToggle', 'startCollapsed', 'allowMultiple'], function(key) {\n if(angular.isDefined($attrs[key]) && falseValueRegExp.test($attrs[key])) {\n self.$options[key] = false;\n }\n });\n\n self.$toggles = [];\n self.$targets = [];\n\n self.$viewChangeListeners = [];\n\n self.$registerToggle = function(element) {\n self.$toggles.push(element);\n };\n self.$registerTarget = function(element) {\n self.$targets.push(element);\n };\n\n self.$unregisterToggle = function(element) {\n var index = self.$toggles.indexOf(element);\n // remove toggle from $toggles array\n self.$toggles.splice(index, 1);\n };\n self.$unregisterTarget = function(element) {\n var index = self.$targets.indexOf(element);\n\n // remove element from $targets array\n self.$targets.splice(index, 1);\n\n if (self.$options.allowMultiple) {\n // remove target index from $active array values\n deactivateItem(element);\n }\n\n // fix active item indexes\n fixActiveItemIndexes(index);\n\n self.$viewChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n // use array to store all the currently open panels\n self.$targets.$active = !self.$options.startCollapsed ? [0] : [];\n self.$setActive = $scope.$setActive = function(value) {\n if(angular.isArray(value)) {\n self.$targets.$active = value;\n }\n else if(!self.$options.disallowToggle) {\n // toogle element active status\n isActive(value) ? deactivateItem(value) : activateItem(value);\n } else {\n activateItem(value);\n }\n\n self.$viewChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n self.$activeIndexes = function() {\n return self.$options.allowMultiple ? self.$targets.$active :\n self.$targets.$active.length === 1 ? self.$targets.$active[0] : -1;\n };\n\n function fixActiveItemIndexes(index) {\n // item with index was removed, so we\n // need to adjust other items index values\n var activeIndexes = self.$targets.$active;\n for(var i = 0; i < activeIndexes.length; i++) {\n if (index < activeIndexes[i]) {\n activeIndexes[i] = activeIndexes[i] - 1;\n }\n\n // the last item is active, so we need to\n // adjust its index\n if (activeIndexes[i] === self.$targets.length) {\n activeIndexes[i] = self.$targets.length - 1;\n }\n }\n }\n\n function isActive(value) {\n var activeItems = self.$targets.$active;\n return activeItems.indexOf(value) === -1 ? false : true;\n }\n\n function deactivateItem(value) {\n var index = self.$targets.$active.indexOf(value);\n if (index !== -1) {\n self.$targets.$active.splice(index, 1);\n }\n }\n\n function activateItem(value) {\n if (!self.$options.allowMultiple) {\n // remove current selected item\n self.$targets.$active.splice(0, 1);\n }\n\n if (self.$targets.$active.indexOf(value) === -1) {\n self.$targets.$active.push(value);\n }\n }\n\n };\n\n this.$get = function() {\n var $collapse = {};\n $collapse.defaults = defaults;\n $collapse.controller = controller;\n return $collapse;\n };\n\n })\n\n .directive('bsCollapse', function($window, $animate, $collapse) {\n\n var defaults = $collapse.defaults;\n\n return {\n require: ['?ngModel', 'bsCollapse'],\n controller: ['$scope', '$element', '$attrs', $collapse.controller],\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n if(ngModelCtrl) {\n\n // Update the modelValue following\n bsCollapseCtrl.$viewChangeListeners.push(function() {\n ngModelCtrl.$setViewValue(bsCollapseCtrl.$activeIndexes());\n });\n\n // modelValue -> $formatters -> viewValue\n ngModelCtrl.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n if (angular.isArray(modelValue)) {\n // model value is an array, so just replace\n // the active items directly\n bsCollapseCtrl.$setActive(modelValue);\n }\n else {\n var activeIndexes = bsCollapseCtrl.$activeIndexes();\n\n if (angular.isArray(activeIndexes)) {\n // we have an array of selected indexes\n if (activeIndexes.indexOf(modelValue * 1) === -1) {\n // item with modelValue index is not active\n bsCollapseCtrl.$setActive(modelValue * 1);\n }\n }\n else if (activeIndexes !== modelValue * 1) {\n bsCollapseCtrl.$setActive(modelValue * 1);\n }\n }\n return modelValue;\n });\n\n }\n\n }\n };\n\n })\n\n .directive('bsCollapseToggle', function() {\n\n return {\n require: ['^?ngModel', '^bsCollapse'],\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n // Add base attr\n element.attr('data-toggle', 'collapse');\n\n // Push pane to parent bsCollapse controller\n bsCollapseCtrl.$registerToggle(element);\n\n // remove toggle from collapse controller when toggle is destroyed\n scope.$on('$destroy', function() {\n bsCollapseCtrl.$unregisterToggle(element);\n });\n\n element.on('click', function() {\n var index = attrs.bsCollapseToggle && attrs.bsCollapseToggle !== 'bs-collapse-toggle' ? attrs.bsCollapseToggle : bsCollapseCtrl.$toggles.indexOf(element);\n bsCollapseCtrl.$setActive(index * 1);\n scope.$apply();\n });\n\n }\n };\n\n })\n\n .directive('bsCollapseTarget', function($animate) {\n\n return {\n require: ['^?ngModel', '^bsCollapse'],\n // scope: true,\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsCollapseCtrl = controllers[1];\n\n // Add base class\n element.addClass('collapse');\n\n // Add animation class\n if(bsCollapseCtrl.$options.animation) {\n element.addClass(bsCollapseCtrl.$options.animation);\n }\n\n // Push pane to parent bsCollapse controller\n bsCollapseCtrl.$registerTarget(element);\n\n // remove pane target from collapse controller when target is destroyed\n scope.$on('$destroy', function() {\n bsCollapseCtrl.$unregisterTarget(element);\n });\n\n function render() {\n var index = bsCollapseCtrl.$targets.indexOf(element);\n var active = bsCollapseCtrl.$activeIndexes();\n var action = 'removeClass';\n if (angular.isArray(active)) {\n if (active.indexOf(index) !== -1) {\n action = 'addClass';\n }\n }\n else if (index === active) {\n action = 'addClass';\n }\n\n $animate[action](element, bsCollapseCtrl.$options.activeClass);\n }\n\n bsCollapseCtrl.$viewChangeListeners.push(function() {\n render();\n });\n render();\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.datepicker', [\n 'mgcrea.ngStrap.helpers.dateParser',\n 'mgcrea.ngStrap.helpers.dateFormatter',\n 'mgcrea.ngStrap.tooltip'])\n\n .provider('$datepicker', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n //uncommenting the following line will break backwards compatability\n // prefixEvent: 'datepicker',\n prefixClass: 'datepicker',\n placement: 'bottom-left',\n templateUrl: 'datepicker/datepicker.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n // lang: $locale.id,\n useNative: false,\n dateType: 'date',\n dateFormat: 'shortDate',\n timezone: null,\n modelDateFormat: null,\n dayFormat: 'dd',\n monthFormat: 'MMM',\n yearFormat: 'yyyy',\n monthTitleFormat: 'MMMM yyyy',\n yearTitleFormat: 'yyyy',\n strictFormat: false,\n autoclose: false,\n minDate: -Infinity,\n maxDate: +Infinity,\n startView: 0,\n minView: 0,\n startWeek: 0,\n daysOfWeekDisabled: '',\n iconLeft: 'glyphicon glyphicon-chevron-left',\n iconRight: 'glyphicon glyphicon-chevron-right'\n };\n\n this.$get = function($window, $document, $rootScope, $sce, $dateFormatter, datepickerViews, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n if(!defaults.lang) defaults.lang = $dateFormatter.getDefaultLocale();\n\n function DatepickerFactory(element, controller, config) {\n\n var $datepicker = $tooltip(element, angular.extend({}, defaults, config));\n var parentScope = config.scope;\n var options = $datepicker.$options;\n var scope = $datepicker.$scope;\n if(options.startView) options.startView -= options.minView;\n\n // View vars\n\n var pickerViews = datepickerViews($datepicker);\n $datepicker.$views = pickerViews.views;\n var viewDate = pickerViews.viewDate;\n scope.$mode = options.startView;\n scope.$iconLeft = options.iconLeft;\n scope.$iconRight = options.iconRight;\n var $picker = $datepicker.$views[scope.$mode];\n\n // Scope methods\n\n scope.$select = function(date) {\n $datepicker.select(date);\n };\n scope.$selectPane = function(value) {\n $datepicker.$selectPane(value);\n };\n scope.$toggleMode = function() {\n $datepicker.setMode((scope.$mode + 1) % $datepicker.$views.length);\n };\n\n // Public methods\n\n $datepicker.update = function(date) {\n // console.warn('$datepicker.update() newValue=%o', date);\n if(angular.isDate(date) && !isNaN(date.getTime())) {\n $datepicker.$date = date;\n $picker.update.call($picker, date);\n }\n // Build only if pristine\n $datepicker.$build(true);\n };\n\n $datepicker.updateDisabledDates = function(dateRanges) {\n options.disabledDateRanges = dateRanges;\n for(var i = 0, l = scope.rows.length; i < l; i++) {\n angular.forEach(scope.rows[i], $datepicker.$setDisabledEl);\n }\n };\n\n $datepicker.select = function(date, keep) {\n // console.warn('$datepicker.select', date, scope.$mode);\n if(!angular.isDate(controller.$dateValue)) controller.$dateValue = new Date(date);\n if(!scope.$mode || keep) {\n controller.$setViewValue(angular.copy(date));\n controller.$render();\n if(options.autoclose && !keep) {\n $timeout(function() { $datepicker.hide(true); });\n }\n } else {\n angular.extend(viewDate, {year: date.getFullYear(), month: date.getMonth(), date: date.getDate()});\n $datepicker.setMode(scope.$mode - 1);\n $datepicker.$build();\n }\n };\n\n $datepicker.setMode = function(mode) {\n // console.warn('$datepicker.setMode', mode);\n scope.$mode = mode;\n $picker = $datepicker.$views[scope.$mode];\n $datepicker.$build();\n };\n\n // Protected methods\n\n $datepicker.$build = function(pristine) {\n // console.warn('$datepicker.$build() viewDate=%o', viewDate);\n if(pristine === true && $picker.built) return;\n if(pristine === false && !$picker.built) return;\n $picker.build.call($picker);\n };\n\n $datepicker.$updateSelected = function() {\n for(var i = 0, l = scope.rows.length; i < l; i++) {\n angular.forEach(scope.rows[i], updateSelected);\n }\n };\n\n $datepicker.$isSelected = function(date) {\n return $picker.isSelected(date);\n };\n\n $datepicker.$setDisabledEl = function(el) {\n el.disabled = $picker.isDisabled(el.date);\n };\n\n $datepicker.$selectPane = function(value) {\n var steps = $picker.steps;\n // set targetDate to first day of month to avoid problems with\n // date values rollover. This assumes the viewDate does not\n // depend on the day of the month\n var targetDate = new Date(Date.UTC(viewDate.year + ((steps.year || 0) * value), viewDate.month + ((steps.month || 0) * value), 1));\n angular.extend(viewDate, {year: targetDate.getUTCFullYear(), month: targetDate.getUTCMonth(), date: targetDate.getUTCDate()});\n $datepicker.$build();\n };\n\n $datepicker.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n if(targetEl[0].nodeName.toLowerCase() !== 'button') {\n targetEl = targetEl.parent();\n }\n targetEl.triggerHandler('click');\n }\n };\n\n $datepicker.$onKeyDown = function(evt) {\n if (!/(38|37|39|40|13)/.test(evt.keyCode) || evt.shiftKey || evt.altKey) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n if(evt.keyCode === 13) {\n if(!scope.$mode) {\n return $datepicker.hide(true);\n } else {\n return scope.$apply(function() { $datepicker.setMode(scope.$mode - 1); });\n }\n }\n\n // Navigate with keyboard\n $picker.onKeyDown(evt);\n parentScope.$digest();\n };\n\n // Private\n\n function updateSelected(el) {\n el.selected = $datepicker.$isSelected(el.date);\n }\n\n function focusElement() {\n element[0].focus();\n }\n\n // Overrides\n\n var _init = $datepicker.init;\n $datepicker.init = function() {\n if(isNative && options.useNative) {\n element.prop('type', 'date');\n element.css('-webkit-appearance', 'textfield');\n return;\n } else if(isTouch) {\n element.prop('type', 'text');\n element.attr('readonly', 'true');\n element.on('click', focusElement);\n }\n _init();\n };\n\n var _destroy = $datepicker.destroy;\n $datepicker.destroy = function() {\n if(isNative && options.useNative) {\n element.off('click', focusElement);\n }\n _destroy();\n };\n\n var _show = $datepicker.show;\n $datepicker.show = function() {\n if((!isTouch && element.attr('readonly')) || element.attr('disabled')) return;\n _show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n // if $datepicker is no longer showing, don't setup events\n if(!$datepicker.$isShown) return;\n $datepicker.$element.on(isTouch ? 'touchstart' : 'mousedown', $datepicker.$onMouseDown);\n if(options.keyboard) {\n element.on('keydown', $datepicker.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $datepicker.hide;\n $datepicker.hide = function(blur) {\n if(!$datepicker.$isShown) return;\n $datepicker.$element.off(isTouch ? 'touchstart' : 'mousedown', $datepicker.$onMouseDown);\n if(options.keyboard) {\n element.off('keydown', $datepicker.$onKeyDown);\n }\n _hide(blur);\n };\n\n return $datepicker;\n\n }\n\n DatepickerFactory.defaults = defaults;\n return DatepickerFactory;\n\n };\n\n })\n\n .directive('bsDatepicker', function($window, $parse, $q, $dateFormatter, $dateParser, $datepicker) {\n\n var defaults = $datepicker.defaults;\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'autoclose', 'dateType', 'dateFormat', 'timezone', 'modelDateFormat', 'dayFormat', 'strictFormat', 'startWeek', 'startDate', 'useNative', 'lang', 'startView', 'minView', 'iconLeft', 'iconRight', 'daysOfWeekDisabled', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoclose', 'useNative'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!datepicker || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(datepicker),?/i);\n newValue === true ? datepicker.show() : datepicker.hide();\n });\n\n // Initialize datepicker\n var datepicker = $datepicker(element, controller, options);\n options = datepicker.$options;\n // Set expected iOS format\n if(isNative && options.useNative) options.dateFormat = 'yyyy-MM-dd';\n\n var lang = options.lang;\n\n var formatDate = function(date, format) {\n return $dateFormatter.formatDate(date, format, lang);\n };\n\n var dateParser = $dateParser({format: options.dateFormat, lang: lang, strict: options.strictFormat});\n\n // Observe attributes for changes\n angular.forEach(['minDate', 'maxDate'], function(key) {\n // console.warn('attr.$observe(%s)', key, attr[key]);\n angular.isDefined(attr[key]) && attr.$observe(key, function(newValue) {\n // console.warn('attr.$observe(%s)=%o', key, newValue);\n datepicker.$options[key] = dateParser.getDateForAttribute(key, newValue);\n // Build only if dirty\n !isNaN(datepicker.$options[key]) && datepicker.$build(false);\n validateAgainstMinMaxDate(controller.$dateValue);\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n datepicker.update(controller.$dateValue);\n }, true);\n\n // Normalize undefined/null/empty array,\n // so that we don't treat changing from undefined->null as a change.\n function normalizeDateRanges(ranges) {\n if (!ranges || !ranges.length) return null;\n return ranges;\n }\n\n if (angular.isDefined(attr.disabledDates)) {\n scope.$watch(attr.disabledDates, function(disabledRanges, previousValue) {\n disabledRanges = normalizeDateRanges(disabledRanges);\n previousValue = normalizeDateRanges(previousValue);\n\n if (disabledRanges) {\n datepicker.updateDisabledDates(disabledRanges);\n }\n });\n }\n\n function validateAgainstMinMaxDate(parsedDate) {\n if (!angular.isDate(parsedDate)) return;\n var isMinValid = isNaN(datepicker.$options.minDate) || parsedDate.getTime() >= datepicker.$options.minDate;\n var isMaxValid = isNaN(datepicker.$options.maxDate) || parsedDate.getTime() <= datepicker.$options.maxDate;\n var isValid = isMinValid && isMaxValid;\n controller.$setValidity('date', isValid);\n controller.$setValidity('min', isMinValid);\n controller.$setValidity('max', isMaxValid);\n // Only update the model when we have a valid date\n if(isValid) controller.$dateValue = parsedDate;\n }\n\n // viewValue -> $parsers -> modelValue\n controller.$parsers.unshift(function(viewValue) {\n // console.warn('$parser(\"%s\"): viewValue=%o', element.attr('ng-model'), viewValue);\n var date;\n // Null values should correctly reset the model value & validity\n if(!viewValue) {\n controller.$setValidity('date', true);\n // BREAKING CHANGE:\n // return null (not undefined) when input value is empty, so angularjs 1.3\n // ngModelController can go ahead and run validators, like ngRequired\n return null;\n }\n var parsedDate = dateParser.parse(viewValue, controller.$dateValue);\n if(!parsedDate || isNaN(parsedDate.getTime())) {\n controller.$setValidity('date', false);\n // return undefined, causes ngModelController to\n // invalidate model value\n return;\n } else {\n validateAgainstMinMaxDate(parsedDate);\n }\n\n if(options.dateType === 'string') {\n date = dateParser.timezoneOffsetAdjust(parsedDate, options.timezone, true);\n return formatDate(date, options.modelDateFormat || options.dateFormat);\n }\n date = dateParser.timezoneOffsetAdjust(controller.$dateValue, options.timezone, true);\n if(options.dateType === 'number') {\n return date.getTime();\n } else if(options.dateType === 'unix') {\n return date.getTime() / 1000;\n } else if(options.dateType === 'iso') {\n return date.toISOString();\n } else {\n return new Date(date);\n }\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var date;\n if(angular.isUndefined(modelValue) || modelValue === null) {\n date = NaN;\n } else if(angular.isDate(modelValue)) {\n date = modelValue;\n } else if(options.dateType === 'string') {\n date = dateParser.parse(modelValue, null, options.modelDateFormat);\n } else if(options.dateType === 'unix') {\n date = new Date(modelValue * 1000);\n } else {\n date = new Date(modelValue);\n }\n // Setup default value?\n // if(isNaN(date.getTime())) {\n // var today = new Date();\n // date = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0, 0);\n // }\n controller.$dateValue = dateParser.timezoneOffsetAdjust(date, options.timezone);\n return getDateFormattedString();\n });\n\n // viewValue -> element\n controller.$render = function() {\n // console.warn('$render(\"%s\"): viewValue=%o', element.attr('ng-model'), controller.$viewValue);\n element.val(getDateFormattedString());\n };\n\n function getDateFormattedString() {\n return !controller.$dateValue || isNaN(controller.$dateValue.getTime()) ? '' : formatDate(controller.$dateValue, options.dateFormat);\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if(datepicker) datepicker.destroy();\n options = null;\n datepicker = null;\n });\n\n }\n };\n\n })\n\n .provider('datepickerViews', function() {\n\n var defaults = this.defaults = {\n dayFormat: 'dd',\n daySplit: 7\n };\n\n // Split array into smaller arrays\n function split(arr, size) {\n var arrays = [];\n while(arr.length > 0) {\n arrays.push(arr.splice(0, size));\n }\n return arrays;\n }\n\n // Modulus operator\n function mod(n, m) {\n return ((n % m) + m) % m;\n }\n\n this.$get = function($dateFormatter, $dateParser, $sce) {\n\n return function(picker) {\n\n var scope = picker.$scope;\n var options = picker.$options;\n\n var lang = options.lang;\n var formatDate = function(date, format) {\n return $dateFormatter.formatDate(date, format, lang);\n };\n var dateParser = $dateParser({format: options.dateFormat, lang: lang, strict: options.strictFormat});\n\n var weekDaysMin = $dateFormatter.weekdaysShort(lang);\n var weekDaysLabels = weekDaysMin.slice(options.startWeek).concat(weekDaysMin.slice(0, options.startWeek));\n var weekDaysLabelsHtml = $sce.trustAsHtml('' + weekDaysLabels.join('') + '');\n\n var startDate = picker.$date || (options.startDate ? dateParser.getDateForAttribute('startDate', options.startDate) : new Date());\n var viewDate = {year: startDate.getFullYear(), month: startDate.getMonth(), date: startDate.getDate()};\n\n var views = [{\n format: options.dayFormat,\n split: 7,\n steps: { month: 1 },\n update: function(date, force) {\n if(!this.built || force || date.getFullYear() !== viewDate.year || date.getMonth() !== viewDate.month) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getDate() !== viewDate.date || date.getDate() === 1) {\n // chaging picker current month will cause viewDate.date to be set to first day of the month,\n // in $datepicker.$selectPane, so picker would not update selected day display if\n // user picks first day of the new month.\n // As a workaround, we are always forcing update when picked date is first day of month.\n viewDate.date = picker.$date.getDate();\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstDayOfMonth = new Date(viewDate.year, viewDate.month, 1), firstDayOfMonthOffset = firstDayOfMonth.getTimezoneOffset();\n var firstDate = new Date(+firstDayOfMonth - mod(firstDayOfMonth.getDay() - options.startWeek, 7) * 864e5), firstDateOffset = firstDate.getTimezoneOffset();\n var today = dateParser.timezoneOffsetAdjust(new Date(), options.timezone).toDateString();\n // Handle daylight time switch\n if(firstDateOffset !== firstDayOfMonthOffset) firstDate = new Date(+firstDate + (firstDateOffset - firstDayOfMonthOffset) * 60e3);\n var days = [], day;\n for(var i = 0; i < 42; i++) { // < 7 * 6\n day = dateParser.daylightSavingAdjust(new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + i));\n days.push({date: day, isToday: day.toDateString() === today, label: formatDate(day, this.format), selected: picker.$date && this.isSelected(day), muted: day.getMonth() !== viewDate.month, disabled: this.isDisabled(day)});\n }\n scope.title = formatDate(firstDayOfMonth, options.monthTitleFormat);\n scope.showLabels = true;\n scope.labels = weekDaysLabelsHtml;\n scope.rows = split(days, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear() && date.getMonth() === picker.$date.getMonth() && date.getDate() === picker.$date.getDate();\n },\n isDisabled: function(date) {\n var time = date.getTime();\n\n // Disabled because of min/max date.\n if (time < options.minDate || time > options.maxDate) return true;\n\n // Disabled due to being a disabled day of the week\n if (options.daysOfWeekDisabled.indexOf(date.getDay()) !== -1) return true;\n\n // Disabled because of disabled date range.\n if (options.disabledDateRanges) {\n for (var i = 0; i < options.disabledDateRanges.length; i++) {\n if (time >= options.disabledDateRanges[i].start && time <= options.disabledDateRanges[i].end) {\n return true;\n }\n }\n }\n\n return false;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualTime = picker.$date.getTime();\n var newDate;\n\n if(evt.keyCode === 37) newDate = new Date(actualTime - 1 * 864e5);\n else if(evt.keyCode === 38) newDate = new Date(actualTime - 7 * 864e5);\n else if(evt.keyCode === 39) newDate = new Date(actualTime + 1 * 864e5);\n else if(evt.keyCode === 40) newDate = new Date(actualTime + 7 * 864e5);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }, {\n name: 'month',\n format: options.monthFormat,\n split: 4,\n steps: { year: 1 },\n update: function(date, force) {\n if(!this.built || date.getFullYear() !== viewDate.year) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getMonth() !== viewDate.month) {\n angular.extend(viewDate, {month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstMonth = new Date(viewDate.year, 0, 1);\n var months = [], month;\n for (var i = 0; i < 12; i++) {\n month = new Date(viewDate.year, i, 1);\n months.push({date: month, label: formatDate(month, this.format), selected: picker.$isSelected(month), disabled: this.isDisabled(month)});\n }\n scope.title = formatDate(month, options.yearTitleFormat);\n scope.showLabels = false;\n scope.rows = split(months, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear() && date.getMonth() === picker.$date.getMonth();\n },\n isDisabled: function(date) {\n var lastDate = +new Date(date.getFullYear(), date.getMonth() + 1, 0);\n return lastDate < options.minDate || date.getTime() > options.maxDate;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualMonth = picker.$date.getMonth();\n var newDate = new Date(picker.$date);\n\n if(evt.keyCode === 37) newDate.setMonth(actualMonth - 1);\n else if(evt.keyCode === 38) newDate.setMonth(actualMonth - 4);\n else if(evt.keyCode === 39) newDate.setMonth(actualMonth + 1);\n else if(evt.keyCode === 40) newDate.setMonth(actualMonth + 4);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }, {\n name: 'year',\n format: options.yearFormat,\n split: 4,\n steps: { year: 12 },\n update: function(date, force) {\n if(!this.built || force || parseInt(date.getFullYear()/20, 10) !== parseInt(viewDate.year/20, 10)) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$build();\n } else if(date.getFullYear() !== viewDate.year) {\n angular.extend(viewDate, {year: picker.$date.getFullYear(), month: picker.$date.getMonth(), date: picker.$date.getDate()});\n picker.$updateSelected();\n }\n },\n build: function() {\n var firstYear = viewDate.year - viewDate.year % (this.split * 3);\n var years = [], year;\n for (var i = 0; i < 12; i++) {\n year = new Date(firstYear + i, 0, 1);\n years.push({date: year, label: formatDate(year, this.format), selected: picker.$isSelected(year), disabled: this.isDisabled(year)});\n }\n scope.title = years[0].label + '-' + years[years.length - 1].label;\n scope.showLabels = false;\n scope.rows = split(years, this.split);\n this.built = true;\n },\n isSelected: function(date) {\n return picker.$date && date.getFullYear() === picker.$date.getFullYear();\n },\n isDisabled: function(date) {\n var lastDate = +new Date(date.getFullYear() + 1, 0, 0);\n return lastDate < options.minDate || date.getTime() > options.maxDate;\n },\n onKeyDown: function(evt) {\n if (!picker.$date) {\n return;\n }\n var actualYear = picker.$date.getFullYear(),\n newDate = new Date(picker.$date);\n\n if(evt.keyCode === 37) newDate.setYear(actualYear - 1);\n else if(evt.keyCode === 38) newDate.setYear(actualYear - 4);\n else if(evt.keyCode === 39) newDate.setYear(actualYear + 1);\n else if(evt.keyCode === 40) newDate.setYear(actualYear + 4);\n\n if (!this.isDisabled(newDate)) picker.select(newDate, true);\n }\n }];\n\n return {\n views: options.minView ? Array.prototype.slice.call(views, options.minView) : views,\n viewDate: viewDate\n };\n\n };\n\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.dropdown', ['mgcrea.ngStrap.tooltip'])\n\n .provider('$dropdown', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'dropdown',\n prefixEvent: 'dropdown',\n placement: 'bottom-left',\n templateUrl: 'dropdown/dropdown.tpl.html',\n trigger: 'click',\n container: false,\n keyboard: true,\n html: false,\n delay: 0\n };\n\n this.$get = function($window, $rootScope, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var matchesSelector = Element.prototype.matchesSelector || Element.prototype.webkitMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector;\n\n function DropdownFactory(element, config) {\n\n var $dropdown = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n var scope = $dropdown.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n $dropdown = $tooltip(element, options);\n var parentEl = element.parent();\n\n // Protected methods\n\n $dropdown.$onKeyDown = function(evt) {\n if (!/(38|40)/.test(evt.keyCode)) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // Retrieve focused index\n var items = angular.element($dropdown.$element[0].querySelectorAll('li:not(.divider) a'));\n if(!items.length) return;\n var index;\n angular.forEach(items, function(el, i) {\n if(matchesSelector && matchesSelector.call(el, ':focus')) index = i;\n });\n\n // Navigate with keyboard\n if(evt.keyCode === 38 && index > 0) index--;\n else if(evt.keyCode === 40 && index < items.length - 1) index++;\n else if(angular.isUndefined(index)) index = 0;\n items.eq(index)[0].focus();\n\n };\n\n // Overrides\n\n var show = $dropdown.show;\n $dropdown.show = function() {\n show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n options.keyboard && $dropdown.$element && $dropdown.$element.on('keydown', $dropdown.$onKeyDown);\n bodyEl.on('click', onBodyClick);\n }, 0, false);\n parentEl.hasClass('dropdown') && parentEl.addClass('open');\n };\n\n var hide = $dropdown.hide;\n $dropdown.hide = function() {\n if(!$dropdown.$isShown) return;\n options.keyboard && $dropdown.$element && $dropdown.$element.off('keydown', $dropdown.$onKeyDown);\n bodyEl.off('click', onBodyClick);\n parentEl.hasClass('dropdown') && parentEl.removeClass('open');\n hide();\n };\n\n var destroy = $dropdown.destroy;\n $dropdown.destroy = function() {\n bodyEl.off('click', onBodyClick);\n destroy();\n };\n\n // Private functions\n\n function onBodyClick(evt) {\n if(evt.target === element[0]) return;\n return evt.target !== element[0] && $dropdown.hide();\n }\n\n return $dropdown;\n\n }\n\n return DropdownFactory;\n\n };\n\n })\n\n .directive('bsDropdown', function($window, $sce, $dropdown) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'id'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as an object\n attr.bsDropdown && scope.$watch(attr.bsDropdown, function(newValue, oldValue) {\n scope.content = newValue;\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!dropdown || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(dropdown),?/i);\n newValue === true ? dropdown.show() : dropdown.hide();\n });\n\n // Initialize dropdown\n var dropdown = $dropdown(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (dropdown) dropdown.destroy();\n options = null;\n dropdown = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.dateParser', [])\n\n.provider('$dateParser', function($localeProvider) {\n\n // define a custom ParseDate object to use instead of native Date\n // to avoid date values wrapping when setting date component values\n function ParseDate() {\n this.year = 1970;\n this.month = 0;\n this.day = 1;\n this.hours = 0;\n this.minutes = 0;\n this.seconds = 0;\n this.milliseconds = 0;\n }\n\n ParseDate.prototype.setMilliseconds = function(value) { this.milliseconds = value; };\n ParseDate.prototype.setSeconds = function(value) { this.seconds = value; };\n ParseDate.prototype.setMinutes = function(value) { this.minutes = value; };\n ParseDate.prototype.setHours = function(value) { this.hours = value; };\n ParseDate.prototype.getHours = function() { return this.hours; };\n ParseDate.prototype.setDate = function(value) { this.day = value; };\n ParseDate.prototype.setMonth = function(value) { this.month = value; };\n ParseDate.prototype.setFullYear = function(value) { this.year = value; };\n ParseDate.prototype.fromDate = function(value) {\n this.year = value.getFullYear();\n this.month = value.getMonth();\n this.day = value.getDate();\n this.hours = value.getHours();\n this.minutes = value.getMinutes();\n this.seconds = value.getSeconds();\n this.milliseconds = value.getMilliseconds();\n return this;\n };\n\n ParseDate.prototype.toDate = function() {\n return new Date(this.year, this.month, this.day, this.hours, this.minutes, this.seconds, this.milliseconds);\n };\n\n var proto = ParseDate.prototype;\n\n function noop() {\n }\n\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function indexOfCaseInsensitive(array, value) {\n var len = array.length, str=value.toString().toLowerCase();\n for (var i=0; i 12 when midnight changeover, but then cannot generate\n * midnight datetime, so jump to 1AM, otherwise reset.\n * @param date (Date) the date to check\n * @return (Date) the corrected date\n *\n * __ copied from jquery ui datepicker __\n */\n $dateParser.daylightSavingAdjust = function(date) {\n if (!date) {\n return null;\n }\n date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);\n return date;\n };\n\n /* Correct the date for timezone offset.\n * @param date (Date) the date to adjust\n * @param timezone (string) the timezone to adjust for\n * @param undo (boolean) to add or subtract timezone offset\n * @return (Date) the corrected date\n */\n $dateParser.timezoneOffsetAdjust = function(date, timezone, undo) {\n if (!date) {\n return null;\n }\n // Right now, only 'UTC' is supported.\n if (timezone && timezone === 'UTC') {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + (undo?-1:1)*date.getTimezoneOffset());\n }\n return date;\n };\n\n // Private functions\n\n function setMapForFormat(format) {\n var keys = Object.keys(setFnMap), i;\n var map = [], sortedMap = [];\n // Map to setFn\n var clonedFormat = format;\n for(i = 0; i < keys.length; i++) {\n if(format.split(keys[i]).length > 1) {\n var index = clonedFormat.search(keys[i]);\n format = format.split(keys[i]).join('');\n if(setFnMap[keys[i]]) {\n map[index] = setFnMap[keys[i]];\n }\n }\n }\n // Sort result map\n angular.forEach(map, function(v) {\n // conditional required since angular.forEach broke around v1.2.21\n // related pr: https://github.com/angular/angular.js/pull/8525\n if(v) sortedMap.push(v);\n });\n return sortedMap;\n }\n\n function escapeReservedSymbols(text) {\n return text.replace(/\\//g, '[\\\\/]').replace('/-/g', '[-]').replace(/\\./g, '[.]').replace(/\\\\s/g, '[\\\\s]');\n }\n\n function regExpForFormat(format) {\n var keys = Object.keys(regExpMap), i;\n\n var re = format;\n // Abstract replaces to avoid collisions\n for(i = 0; i < keys.length; i++) {\n re = re.split(keys[i]).join('${' + i + '}');\n }\n // Replace abstracted values\n for(i = 0; i < keys.length; i++) {\n re = re.split('${' + i + '}').join('(' + regExpMap[keys[i]] + ')');\n }\n format = escapeReservedSymbols(format);\n\n return new RegExp('^' + re + '$', ['i']);\n }\n\n $dateParser.init();\n return $dateParser;\n\n };\n\n return DateParserFactory;\n\n };\n\n});\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.debounce', [])\n\n// @source jashkenas/underscore\n// @url https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L693\n.factory('debounce', function($timeout) {\n return function(func, wait, immediate) {\n var timeout = null;\n return function() {\n var context = this,\n args = arguments,\n callNow = immediate && !timeout;\n if(timeout) {\n $timeout.cancel(timeout);\n }\n timeout = $timeout(function later() {\n timeout = null;\n if(!immediate) {\n func.apply(context, args);\n }\n }, wait, false);\n if(callNow) {\n func.apply(context, args);\n }\n return timeout;\n };\n };\n})\n\n\n// @source jashkenas/underscore\n// @url https://github.com/jashkenas/underscore/blob/1.5.2/underscore.js#L661\n.factory('throttle', function($timeout) {\n return function(func, wait, options) {\n var timeout = null;\n options || (options = {});\n return function() {\n var context = this,\n args = arguments;\n if(!timeout) {\n if(options.leading !== false) {\n func.apply(context, args);\n }\n timeout = $timeout(function later() {\n timeout = null;\n if(options.trailing !== false) {\n func.apply(context, args);\n }\n }, wait, false);\n }\n };\n };\n});\n\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.dimensions', [])\n\n .factory('dimensions', function($document, $window) {\n\n var jqLite = angular.element;\n var fn = {};\n\n /**\n * Test the element nodeName\n * @param element\n * @param name\n */\n var nodeName = fn.nodeName = function(element, name) {\n return element.nodeName && element.nodeName.toLowerCase() === name.toLowerCase();\n };\n\n /**\n * Returns the element computed style\n * @param element\n * @param prop\n * @param extra\n */\n fn.css = function(element, prop, extra) {\n var value;\n if (element.currentStyle) { //IE\n value = element.currentStyle[prop];\n } else if (window.getComputedStyle) {\n value = window.getComputedStyle(element)[prop];\n } else {\n value = element.style[prop];\n }\n return extra === true ? parseFloat(value) || 0 : value;\n };\n\n /**\n * Provides read-only equivalent of jQuery's offset function:\n * @required-by bootstrap-tooltip, bootstrap-affix\n * @url http://api.jquery.com/offset/\n * @param element\n */\n fn.offset = function(element) {\n var boxRect = element.getBoundingClientRect();\n var docElement = element.ownerDocument;\n return {\n width: boxRect.width || element.offsetWidth,\n height: boxRect.height || element.offsetHeight,\n top: boxRect.top + (window.pageYOffset || docElement.documentElement.scrollTop) - (docElement.documentElement.clientTop || 0),\n left: boxRect.left + (window.pageXOffset || docElement.documentElement.scrollLeft) - (docElement.documentElement.clientLeft || 0)\n };\n };\n \n /**\n * Provides set equivalent of jQuery's offset function:\n * @required-by bootstrap-tooltip\n * @url http://api.jquery.com/offset/\n * @param element\n * @param options\n * @param i\n */\n fn.setOffset = function (element, options, i) {\n var curPosition,\n curLeft,\n curCSSTop,\n curTop,\n curOffset,\n curCSSLeft,\n calculatePosition,\n position = fn.css(element, 'position'),\n curElem = angular.element(element),\n props = {};\n \n // Set position first, in-case top/left are set even on static elem\n if (position === 'static') {\n element.style.position = 'relative';\n }\n \n curOffset = fn.offset(element);\n curCSSTop = fn.css(element, 'top');\n curCSSLeft = fn.css(element, 'left');\n calculatePosition = (position === 'absolute' || position === 'fixed') && \n (curCSSTop + curCSSLeft).indexOf('auto') > -1;\n \n // Need to be able to calculate position if either\n // top or left is auto and position is either absolute or fixed\n if (calculatePosition) {\n curPosition = fn.position(element);\n curTop = curPosition.top;\n curLeft = curPosition.left;\n } else {\n curTop = parseFloat(curCSSTop) || 0;\n curLeft = parseFloat(curCSSLeft) || 0;\n }\n \n if (angular.isFunction(options)) {\n options = options.call(element, i, curOffset);\n }\n \n if (options.top !== null ) {\n props.top = (options.top - curOffset.top) + curTop;\n }\n if ( options.left !== null ) {\n props.left = (options.left - curOffset.left) + curLeft;\n }\n\n if ('using' in options) {\n options.using.call(curElem, props);\n } else {\n curElem.css({\n top: props.top + 'px',\n left: props.left + 'px'\n });\n }\n };\n\n /**\n * Provides read-only equivalent of jQuery's position function\n * @required-by bootstrap-tooltip, bootstrap-affix\n * @url http://api.jquery.com/offset/\n * @param element\n */\n fn.position = function(element) {\n\n var offsetParentRect = {top: 0, left: 0},\n offsetParentElement,\n offset;\n\n // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent\n if (fn.css(element, 'position') === 'fixed') {\n\n // We assume that getBoundingClientRect is available when computed position is fixed\n offset = element.getBoundingClientRect();\n\n } else {\n\n // Get *real* offsetParentElement\n offsetParentElement = offsetParent(element);\n\n // Get correct offsets\n offset = fn.offset(element);\n if (!nodeName(offsetParentElement, 'html')) {\n offsetParentRect = fn.offset(offsetParentElement);\n }\n\n // Add offsetParent borders\n offsetParentRect.top += fn.css(offsetParentElement, 'borderTopWidth', true);\n offsetParentRect.left += fn.css(offsetParentElement, 'borderLeftWidth', true);\n }\n\n // Subtract parent offsets and element margins\n return {\n width: element.offsetWidth,\n height: element.offsetHeight,\n top: offset.top - offsetParentRect.top - fn.css(element, 'marginTop', true),\n left: offset.left - offsetParentRect.left - fn.css(element, 'marginLeft', true)\n };\n\n };\n\n /**\n * Returns the closest, non-statically positioned offsetParent of a given element\n * @required-by fn.position\n * @param element\n */\n var offsetParent = function offsetParentElement(element) {\n var docElement = element.ownerDocument;\n var offsetParent = element.offsetParent || docElement;\n if(nodeName(offsetParent, '#document')) return docElement.documentElement;\n while(offsetParent && !nodeName(offsetParent, 'html') && fn.css(offsetParent, 'position') === 'static') {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || docElement.documentElement;\n };\n\n /**\n * Provides equivalent of jQuery's height function\n * @required-by bootstrap-affix\n * @url http://api.jquery.com/height/\n * @param element\n * @param outer\n */\n fn.height = function(element, outer) {\n var value = element.offsetHeight;\n if(outer) {\n value += fn.css(element, 'marginTop', true) + fn.css(element, 'marginBottom', true);\n } else {\n value -= fn.css(element, 'paddingTop', true) + fn.css(element, 'paddingBottom', true) + fn.css(element, 'borderTopWidth', true) + fn.css(element, 'borderBottomWidth', true);\n }\n return value;\n };\n\n /**\n * Provides equivalent of jQuery's width function\n * @required-by bootstrap-affix\n * @url http://api.jquery.com/width/\n * @param element\n * @param outer\n */\n fn.width = function(element, outer) {\n var value = element.offsetWidth;\n if(outer) {\n value += fn.css(element, 'marginLeft', true) + fn.css(element, 'marginRight', true);\n } else {\n value -= fn.css(element, 'paddingLeft', true) + fn.css(element, 'paddingRight', true) + fn.css(element, 'borderLeftWidth', true) + fn.css(element, 'borderRightWidth', true);\n }\n return value;\n };\n\n return fn;\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.helpers.parseOptions', [])\n\n .provider('$parseOptions', function() {\n\n var defaults = this.defaults = {\n regexp: /^\\s*(.*?)(?:\\s+as\\s+(.*?))?(?:\\s+group\\s+by\\s+(.*))?\\s+for\\s+(?:([\\$\\w][\\$\\w]*)|(?:\\(\\s*([\\$\\w][\\$\\w]*)\\s*,\\s*([\\$\\w][\\$\\w]*)\\s*\\)))\\s+in\\s+(.*?)(?:\\s+track\\s+by\\s+(.*?))?$/\n };\n\n this.$get = function($parse, $q) {\n\n function ParseOptionsFactory(attr, config) {\n\n var $parseOptions = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n $parseOptions.$values = [];\n\n // Private vars\n var match, displayFn, valueName, keyName, groupByFn, valueFn, valuesFn;\n\n $parseOptions.init = function() {\n $parseOptions.$match = match = attr.match(options.regexp);\n displayFn = $parse(match[2] || match[1]),\n valueName = match[4] || match[6],\n keyName = match[5],\n groupByFn = $parse(match[3] || ''),\n valueFn = $parse(match[2] ? match[1] : valueName),\n valuesFn = $parse(match[7]);\n };\n\n $parseOptions.valuesFn = function(scope, controller) {\n return $q.when(valuesFn(scope, controller))\n .then(function(values) {\n if(!angular.isArray(values)) {\n values = [];\n }\n $parseOptions.$values = values.length ? parseValues(values, scope) : [];\n return $parseOptions.$values;\n });\n };\n\n $parseOptions.displayValue = function(modelValue) {\n var scope = {};\n scope[valueName] = modelValue;\n return displayFn(scope);\n };\n\n // Private functions\n\n function parseValues(values, scope) {\n return values.map(function(match, index) {\n var locals = {}, label, value;\n locals[valueName] = match;\n label = displayFn(scope, locals);\n value = valueFn(scope, locals);\n return {label: label, value: value, index: index};\n });\n }\n\n $parseOptions.init();\n return $parseOptions;\n\n }\n\n return ParseOptionsFactory;\n\n };\n\n });\n","'use strict';\n\n(angular.version.minor < 3 && angular.version.dot < 14) && angular.module('ng')\n\n.factory('$$rAF', function($window, $timeout) {\n\n var requestAnimationFrame = $window.requestAnimationFrame ||\n $window.webkitRequestAnimationFrame ||\n $window.mozRequestAnimationFrame;\n\n var cancelAnimationFrame = $window.cancelAnimationFrame ||\n $window.webkitCancelAnimationFrame ||\n $window.mozCancelAnimationFrame ||\n $window.webkitCancelRequestAnimationFrame;\n\n var rafSupported = !!requestAnimationFrame;\n var raf = rafSupported ?\n function(fn) {\n var id = requestAnimationFrame(fn);\n return function() {\n cancelAnimationFrame(id);\n };\n } :\n function(fn) {\n var timer = $timeout(fn, 16.66, false); // 1000 / 60 = 16.666\n return function() {\n $timeout.cancel(timer);\n };\n };\n\n raf.supported = rafSupported;\n\n return raf;\n\n});\n\n// .factory('$$animateReflow', function($$rAF, $document) {\n\n// var bodyEl = $document[0].body;\n\n// return function(fn) {\n// //the returned function acts as the cancellation function\n// return $$rAF(function() {\n// //the line below will force the browser to perform a repaint\n// //so that all the animated elements within the animation frame\n// //will be properly updated and drawn on screen. This is\n// //required to perform multi-class CSS based animations with\n// //Firefox. DO NOT REMOVE THIS LINE.\n// var a = bodyEl.offsetWidth + 1;\n// fn();\n// });\n// };\n\n// });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.modal', ['mgcrea.ngStrap.core', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$modal', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n backdropAnimation: 'am-fade',\n prefixClass: 'modal',\n prefixEvent: 'modal',\n placement: 'top',\n templateUrl: 'modal/modal.tpl.html',\n template: '',\n contentTemplate: false,\n container: false,\n element: null,\n backdrop: true,\n keyboard: true,\n html: false,\n show: true\n };\n\n this.$get = function($window, $rootScope, $bsCompiler, $q, $templateCache, $http, $animate, $timeout, $sce, dimensions) {\n\n var forEach = angular.forEach;\n var trim = String.prototype.trim;\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n var bodyElement = angular.element($window.document.body);\n\n function ModalFactory(config) {\n\n var $modal = {};\n\n // Common vars\n var options = $modal.$options = angular.extend({}, defaults, config);\n var promise = $modal.$promise = $bsCompiler.compile(options);\n var scope = $modal.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n if(!options.element && !options.container) {\n options.container = 'body';\n }\n\n // Store $id to identify the triggering element in events\n // give priority to options.id, otherwise, try to use\n // element id if defined\n $modal.$id = options.id || options.element && options.element.attr('id') || '';\n\n // Support scope as string options\n forEach(['title', 'content'], function(key) {\n if(options[key]) scope[key] = $sce.trustAsHtml(options[key]);\n });\n\n // Provide scope helpers\n scope.$hide = function() {\n scope.$$postDigest(function() {\n $modal.hide();\n });\n };\n scope.$show = function() {\n scope.$$postDigest(function() {\n $modal.show();\n });\n };\n scope.$toggle = function() {\n scope.$$postDigest(function() {\n $modal.toggle();\n });\n };\n // Publish isShown as a protected var on scope\n $modal.$isShown = scope.$isShown = false;\n\n // Fetch, compile then initialize modal\n var compileData, modalElement, modalScope;\n var backdropElement = angular.element('
');\n backdropElement.css({position:'fixed', top:'0px', left:'0px', bottom:'0px', right:'0px', 'z-index': 1038});\n promise.then(function(data) {\n compileData = data;\n $modal.init();\n });\n\n $modal.init = function() {\n\n // Options: show\n if(options.show) {\n scope.$$postDigest(function() {\n $modal.show();\n });\n }\n\n };\n\n $modal.destroy = function() {\n\n // Remove element\n destroyModalElement();\n\n // remove backdrop element\n if(backdropElement) {\n backdropElement.remove();\n backdropElement = null;\n }\n\n // Destroy scope\n scope.$destroy();\n };\n\n $modal.show = function() {\n if($modal.$isShown) return;\n\n var parent, after;\n if(angular.isElement(options.container)) {\n parent = options.container;\n after = options.container[0].lastChild ? angular.element(options.container[0].lastChild) : null;\n } else {\n if (options.container) {\n parent = findElement(options.container);\n after = parent[0] && parent[0].lastChild ? angular.element(parent[0].lastChild) : null;\n } else {\n parent = null;\n after = options.element;\n }\n }\n\n // destroy any existing modal elements\n if(modalElement) destroyModalElement();\n\n // create a new scope, so we can destroy it and all child scopes\n // when destroying the modal element\n modalScope = $modal.$scope.$new();\n // Fetch a cloned element linked from template (noop callback is required)\n modalElement = $modal.$element = compileData.link(modalScope, function(clonedElement, scope) {});\n\n if(scope.$emit(options.prefixEvent + '.show.before', $modal).defaultPrevented) {\n return;\n }\n\n // Set the initial positioning.\n modalElement.css({display: 'block'}).addClass(options.placement);\n\n // Options: animation\n if(options.animation) {\n if(options.backdrop) {\n backdropElement.addClass(options.backdropAnimation);\n }\n modalElement.addClass(options.animation);\n }\n\n if(options.backdrop) {\n $animate.enter(backdropElement, bodyElement, null);\n }\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.enter(modalElement, parent, after, enterAnimateCallback);\n } else {\n $animate.enter(modalElement, parent, after).then(enterAnimateCallback);\n }\n\n $modal.$isShown = scope.$isShown = true;\n safeDigest(scope);\n // Focus once the enter-animation has started\n // Weird PhantomJS bug hack\n var el = modalElement[0];\n requestAnimationFrame(function() {\n el.focus();\n });\n\n bodyElement.addClass(options.prefixClass + '-open');\n if(options.animation) {\n bodyElement.addClass(options.prefixClass + '-with-' + options.animation);\n }\n\n // Bind events\n bindBackdropEvents();\n bindKeyboardEvents();\n };\n\n function enterAnimateCallback() {\n scope.$emit(options.prefixEvent + '.show', $modal);\n }\n\n $modal.hide = function() {\n if(!$modal.$isShown) return;\n\n if(scope.$emit(options.prefixEvent + '.hide.before', $modal).defaultPrevented) {\n return;\n }\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.leave(modalElement, leaveAnimateCallback);\n } else {\n $animate.leave(modalElement).then(leaveAnimateCallback);\n }\n\n if(options.backdrop) {\n $animate.leave(backdropElement);\n }\n $modal.$isShown = scope.$isShown = false;\n safeDigest(scope);\n\n // Unbind events\n unbindBackdropEvents();\n unbindKeyboardEvents();\n };\n\n function leaveAnimateCallback() {\n scope.$emit(options.prefixEvent + '.hide', $modal);\n bodyElement.removeClass(options.prefixClass + '-open');\n if(options.animation) {\n bodyElement.removeClass(options.prefixClass + '-with-' + options.animation);\n }\n }\n\n $modal.toggle = function() {\n\n $modal.$isShown ? $modal.hide() : $modal.show();\n\n };\n\n $modal.focus = function() {\n modalElement[0].focus();\n };\n\n // Protected methods\n\n $modal.$onKeyUp = function(evt) {\n\n if (evt.which === 27 && $modal.$isShown) {\n $modal.hide();\n evt.stopPropagation();\n }\n\n };\n\n function bindBackdropEvents() {\n if(options.backdrop) {\n modalElement.on('click', hideOnBackdropClick);\n backdropElement.on('click', hideOnBackdropClick);\n backdropElement.on('wheel', preventEventDefault);\n }\n }\n\n function unbindBackdropEvents() {\n if(options.backdrop) {\n modalElement.off('click', hideOnBackdropClick);\n backdropElement.off('click', hideOnBackdropClick);\n backdropElement.off('wheel', preventEventDefault);\n }\n }\n\n function bindKeyboardEvents() {\n if(options.keyboard) {\n modalElement.on('keyup', $modal.$onKeyUp);\n }\n }\n\n function unbindKeyboardEvents() {\n if(options.keyboard) {\n modalElement.off('keyup', $modal.$onKeyUp);\n }\n }\n\n // Private methods\n\n function hideOnBackdropClick(evt) {\n if(evt.target !== evt.currentTarget) return;\n options.backdrop === 'static' ? $modal.focus() : $modal.hide();\n }\n\n function preventEventDefault(evt) {\n evt.preventDefault();\n }\n\n function destroyModalElement() {\n if($modal.$isShown && modalElement !== null) {\n // un-bind events\n unbindBackdropEvents();\n unbindKeyboardEvents();\n }\n\n if(modalScope) {\n modalScope.$destroy();\n modalScope = null;\n }\n\n if(modalElement) {\n modalElement.remove();\n modalElement = $modal.$element = null;\n }\n }\n\n return $modal;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n return ModalFactory;\n\n };\n\n })\n\n .directive('bsModal', function($window, $sce, $modal) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope, element: element, show: false};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'controller', 'placement', 'backdrop', 'keyboard', 'html', 'container', 'animation', 'id', 'prefixEvent', 'prefixClass'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['backdrop', 'keyboard', 'html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n });\n });\n\n // Support scope as an object\n attr.bsModal && scope.$watch(attr.bsModal, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n }, true);\n\n // Initialize modal\n var modal = $modal(options);\n\n // Trigger\n element.on(attr.trigger || 'click', modal.toggle);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (modal) modal.destroy();\n options = null;\n modal = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.navbar', [])\n\n .provider('$navbar', function() {\n\n var defaults = this.defaults = {\n activeClass: 'active',\n routeAttr: 'data-match-route',\n strict: false\n };\n\n this.$get = function() {\n return {defaults: defaults};\n };\n\n })\n\n .directive('bsNavbar', function($window, $location, $navbar) {\n\n var defaults = $navbar.defaults;\n\n return {\n restrict: 'A',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = angular.copy(defaults);\n angular.forEach(Object.keys(defaults), function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // Watch for the $location\n scope.$watch(function() {\n\n return $location.path();\n\n }, function(newValue, oldValue) {\n\n var liElements = element[0].querySelectorAll('li[' + options.routeAttr + ']');\n\n angular.forEach(liElements, function(li) {\n\n var liElement = angular.element(li);\n var pattern = liElement.attr(options.routeAttr).replace('/', '\\\\/');\n if(options.strict) {\n pattern = '^' + pattern + '$';\n }\n var regexp = new RegExp(pattern, 'i');\n\n if(regexp.test(newValue)) {\n liElement.addClass(options.activeClass);\n } else {\n liElement.removeClass(options.activeClass);\n }\n\n });\n\n });\n\n }\n\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.popover', ['mgcrea.ngStrap.tooltip'])\n\n .provider('$popover', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n customClass: '',\n // uncommenting the next two lines will break backwards compatability\n // prefixClass: 'popover',\n // prefixEvent: 'popover',\n container: false,\n target: false,\n placement: 'right',\n templateUrl: 'popover/popover.tpl.html',\n contentTemplate: false,\n trigger: 'click',\n keyboard: true,\n html: false,\n title: '',\n content: '',\n delay: 0,\n autoClose: false\n };\n\n this.$get = function($tooltip) {\n\n function PopoverFactory(element, config) {\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n var $popover = $tooltip(element, options);\n\n // Support scope as string options [/*title, */content]\n if(options.content) {\n $popover.$scope.content = options.content;\n }\n\n return $popover;\n\n }\n\n return PopoverFactory;\n\n };\n\n })\n\n .directive('bsPopover', function($window, $sce, $popover) {\n\n var requestAnimationFrame = $window.requestAnimationFrame || $window.setTimeout;\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'customClass', 'autoClose', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoClose'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // should not parse target attribute (anchor tag), only data-target #1454\n var dataTarget = element.attr('data-target');\n if(angular.isDefined(dataTarget)) {\n if(falseValueRegExp.test(dataTarget))\n options.target = false;\n else\n options.target = dataTarget;\n }\n\n // Support scope as data-attrs\n angular.forEach(['title', 'content'], function(key) {\n attr[key] && attr.$observe(key, function(newValue, oldValue) {\n scope[key] = $sce.trustAsHtml(newValue);\n angular.isDefined(oldValue) && requestAnimationFrame(function() {\n popover && popover.$applyPlacement();\n });\n });\n });\n\n // Support scope as an object\n attr.bsPopover && scope.$watch(attr.bsPopover, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.content = newValue;\n }\n angular.isDefined(oldValue) && requestAnimationFrame(function() {\n popover && popover.$applyPlacement();\n });\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!popover || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(popover),?/i);\n newValue === true ? popover.show() : popover.hide();\n });\n\n // Viewport support\n attr.viewport && scope.$watch(attr.viewport, function (newValue) {\n if(!popover || !angular.isDefined(newValue)) return;\n popover.setViewport(newValue);\n });\n\n // Initialize popover\n var popover = $popover(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (popover) popover.destroy();\n options = null;\n popover = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.scrollspy', ['mgcrea.ngStrap.helpers.debounce', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$scrollspy', function() {\n\n // Pool of registered spies\n var spies = this.$$spies = {};\n\n var defaults = this.defaults = {\n debounce: 150,\n throttle: 100,\n offset: 100\n };\n\n this.$get = function($window, $document, $rootScope, dimensions, debounce, throttle) {\n\n var windowEl = angular.element($window);\n var docEl = angular.element($document.prop('documentElement'));\n var bodyEl = angular.element($window.document.body);\n\n // Helper functions\n\n function nodeName(element, name) {\n return element[0].nodeName && element[0].nodeName.toLowerCase() === name.toLowerCase();\n }\n\n function ScrollSpyFactory(config) {\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n if(!options.element) options.element = bodyEl;\n var isWindowSpy = nodeName(options.element, 'body');\n var scrollEl = isWindowSpy ? windowEl : options.element;\n var scrollId = isWindowSpy ? 'window' : options.id;\n\n // Use existing spy\n if(spies[scrollId]) {\n spies[scrollId].$$count++;\n return spies[scrollId];\n }\n\n var $scrollspy = {};\n\n // Private vars\n var unbindViewContentLoaded, unbindIncludeContentLoaded;\n var trackedElements = $scrollspy.$trackedElements = [];\n var sortedElements = [];\n var activeTarget;\n var debouncedCheckPosition;\n var throttledCheckPosition;\n var debouncedCheckOffsets;\n var viewportHeight;\n var scrollTop;\n\n $scrollspy.init = function() {\n\n // Setup internal ref counter\n this.$$count = 1;\n\n // Bind events\n debouncedCheckPosition = debounce(this.checkPosition, options.debounce);\n throttledCheckPosition = throttle(this.checkPosition, options.throttle);\n scrollEl.on('click', this.checkPositionWithEventLoop);\n windowEl.on('resize', debouncedCheckPosition);\n scrollEl.on('scroll', throttledCheckPosition);\n\n debouncedCheckOffsets = debounce(this.checkOffsets, options.debounce);\n unbindViewContentLoaded = $rootScope.$on('$viewContentLoaded', debouncedCheckOffsets);\n unbindIncludeContentLoaded = $rootScope.$on('$includeContentLoaded', debouncedCheckOffsets);\n debouncedCheckOffsets();\n\n // Register spy for reuse\n if(scrollId) {\n spies[scrollId] = $scrollspy;\n }\n\n };\n\n $scrollspy.destroy = function() {\n\n // Check internal ref counter\n this.$$count--;\n if(this.$$count > 0) {\n return;\n }\n\n // Unbind events\n scrollEl.off('click', this.checkPositionWithEventLoop);\n windowEl.off('resize', debouncedCheckPosition);\n scrollEl.off('scroll', throttledCheckPosition);\n unbindViewContentLoaded();\n unbindIncludeContentLoaded();\n if (scrollId) {\n delete spies[scrollId];\n }\n };\n\n $scrollspy.checkPosition = function() {\n\n // Not ready yet\n if(!sortedElements.length) return;\n\n // Calculate the scroll position\n scrollTop = (isWindowSpy ? $window.pageYOffset : scrollEl.prop('scrollTop')) || 0;\n\n // Calculate the viewport height for use by the components\n viewportHeight = Math.max($window.innerHeight, docEl.prop('clientHeight'));\n\n // Activate first element if scroll is smaller\n if(scrollTop < sortedElements[0].offsetTop && activeTarget !== sortedElements[0].target) {\n return $scrollspy.$activateElement(sortedElements[0]);\n }\n\n // Activate proper element\n for (var i = sortedElements.length; i--;) {\n if(angular.isUndefined(sortedElements[i].offsetTop) || sortedElements[i].offsetTop === null) continue;\n if(activeTarget === sortedElements[i].target) continue;\n if(scrollTop < sortedElements[i].offsetTop) continue;\n if(sortedElements[i + 1] && scrollTop > sortedElements[i + 1].offsetTop) continue;\n return $scrollspy.$activateElement(sortedElements[i]);\n }\n\n };\n\n $scrollspy.checkPositionWithEventLoop = function() {\n // IE 9 throws an error if we use 'this' instead of '$scrollspy'\n // in this setTimeout call\n setTimeout($scrollspy.checkPosition, 1);\n };\n\n // Protected methods\n\n $scrollspy.$activateElement = function(element) {\n if(activeTarget) {\n var activeElement = $scrollspy.$getTrackedElement(activeTarget);\n if(activeElement) {\n activeElement.source.removeClass('active');\n if(nodeName(activeElement.source, 'li') && nodeName(activeElement.source.parent().parent(), 'li')) {\n activeElement.source.parent().parent().removeClass('active');\n }\n }\n }\n activeTarget = element.target;\n element.source.addClass('active');\n if(nodeName(element.source, 'li') && nodeName(element.source.parent().parent(), 'li')) {\n element.source.parent().parent().addClass('active');\n }\n };\n\n $scrollspy.$getTrackedElement = function(target) {\n return trackedElements.filter(function(obj) {\n return obj.target === target;\n })[0];\n };\n\n // Track offsets behavior\n\n $scrollspy.checkOffsets = function() {\n\n angular.forEach(trackedElements, function(trackedElement) {\n var targetElement = document.querySelector(trackedElement.target);\n trackedElement.offsetTop = targetElement ? dimensions.offset(targetElement).top : null;\n if(options.offset && trackedElement.offsetTop !== null) trackedElement.offsetTop -= options.offset * 1;\n });\n\n sortedElements = trackedElements\n .filter(function(el) {\n return el.offsetTop !== null;\n })\n .sort(function(a, b) {\n return a.offsetTop - b.offsetTop;\n });\n\n debouncedCheckPosition();\n\n };\n\n $scrollspy.trackElement = function(target, source) {\n trackedElements.push({target: target, source: source});\n };\n\n $scrollspy.untrackElement = function(target, source) {\n var toDelete;\n for (var i = trackedElements.length; i--;) {\n if(trackedElements[i].target === target && trackedElements[i].source === source) {\n toDelete = i;\n break;\n }\n }\n trackedElements = trackedElements.splice(toDelete, 1);\n };\n\n $scrollspy.activate = function(i) {\n trackedElements[i].addClass('active');\n };\n\n // Initialize plugin\n\n $scrollspy.init();\n return $scrollspy;\n\n }\n\n return ScrollSpyFactory;\n\n };\n\n })\n\n .directive('bsScrollspy', function($rootScope, debounce, dimensions, $scrollspy) {\n\n return {\n restrict: 'EAC',\n link: function postLink(scope, element, attr) {\n\n var options = {scope: scope};\n angular.forEach(['offset', 'target'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n var scrollspy = $scrollspy(options);\n scrollspy.trackElement(options.target, element);\n\n scope.$on('$destroy', function() {\n if (scrollspy) {\n scrollspy.untrackElement(options.target, element);\n scrollspy.destroy();\n }\n options = null;\n scrollspy = null;\n });\n\n }\n };\n\n })\n\n\n .directive('bsScrollspyList', function($rootScope, debounce, dimensions, $scrollspy) {\n\n return {\n restrict: 'A',\n compile: function postLink(element, attr) {\n var children = element[0].querySelectorAll('li > a[href]');\n angular.forEach(children, function(child) {\n var childEl = angular.element(child);\n childEl.parent().attr('bs-scrollspy', '').attr('data-target', childEl.attr('href'));\n });\n }\n\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.select', ['mgcrea.ngStrap.tooltip', 'mgcrea.ngStrap.helpers.parseOptions'])\n\n .provider('$select', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'select',\n prefixEvent: '$select',\n placement: 'bottom-left',\n templateUrl: 'select/select.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n multiple: false,\n allNoneButtons: false,\n sort: true,\n caretHtml: ' ',\n placeholder: 'Choose among the following...',\n allText: 'All',\n noneText: 'None',\n maxLength: 3,\n maxLengthHtml: 'selected',\n iconCheckmark: 'glyphicon glyphicon-ok'\n };\n\n this.$get = function($window, $document, $rootScope, $tooltip, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n\n function SelectFactory(element, controller, config) {\n\n var $select = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $select = $tooltip(element, options);\n var scope = $select.$scope;\n\n scope.$matches = [];\n if (options.multiple) {\n scope.$activeIndex = [];\n }\n else {\n scope.$activeIndex = -1;\n }\n scope.$isMultiple = options.multiple;\n scope.$showAllNoneButtons = options.allNoneButtons && options.multiple;\n scope.$iconCheckmark = options.iconCheckmark;\n scope.$allText = options.allText;\n scope.$noneText = options.noneText;\n\n scope.$activate = function(index) {\n scope.$$postDigest(function() {\n $select.activate(index);\n });\n };\n\n scope.$select = function(index, evt) {\n scope.$$postDigest(function() {\n $select.select(index);\n });\n };\n\n scope.$isVisible = function() {\n return $select.$isVisible();\n };\n\n scope.$isActive = function(index) {\n return $select.$isActive(index);\n };\n\n scope.$selectAll = function () {\n for (var i = 0; i < scope.$matches.length; i++) {\n if (!scope.$isActive(i)) {\n scope.$select(i);\n }\n }\n };\n\n scope.$selectNone = function () {\n for (var i = 0; i < scope.$matches.length; i++) {\n if (scope.$isActive(i)) {\n scope.$select(i);\n }\n }\n };\n\n // Public methods\n\n $select.update = function(matches) {\n scope.$matches = matches;\n $select.$updateActiveIndex();\n };\n\n $select.activate = function(index) {\n if(options.multiple) {\n $select.$isActive(index) ? scope.$activeIndex.splice(scope.$activeIndex.indexOf(index), 1) : scope.$activeIndex.push(index);\n if(options.sort) scope.$activeIndex.sort(function(a, b) { return a - b; }); // use numeric sort instead of default sort\n } else {\n scope.$activeIndex = index;\n }\n return scope.$activeIndex;\n };\n\n $select.select = function(index) {\n var value = scope.$matches[index].value;\n scope.$apply(function() {\n $select.activate(index);\n if(options.multiple) {\n controller.$setViewValue(scope.$activeIndex.map(function(index) {\n return scope.$matches[index].value;\n }));\n } else {\n controller.$setViewValue(value);\n // Hide if single select\n $select.hide();\n }\n });\n // Emit event\n scope.$emit(options.prefixEvent + '.select', value, index, $select);\n };\n\n // Protected methods\n\n $select.$updateActiveIndex = function() {\n if(controller.$modelValue && scope.$matches.length) {\n if(options.multiple && angular.isArray(controller.$modelValue)) {\n scope.$activeIndex = controller.$modelValue.map(function(value) {\n return $select.$getIndex(value);\n });\n } else {\n scope.$activeIndex = $select.$getIndex(controller.$modelValue);\n }\n } else if(scope.$activeIndex >= scope.$matches.length) {\n scope.$activeIndex = options.multiple ? [] : 0;\n }\n };\n\n $select.$isVisible = function() {\n if(!options.minLength || !controller) {\n return scope.$matches.length;\n }\n // minLength support\n return scope.$matches.length && controller.$viewValue.length >= options.minLength;\n };\n\n $select.$isActive = function(index) {\n if(options.multiple) {\n return scope.$activeIndex.indexOf(index) !== -1;\n } else {\n return scope.$activeIndex === index;\n }\n };\n\n $select.$getIndex = function(value) {\n var l = scope.$matches.length, i = l;\n if(!l) return;\n for(i = l; i--;) {\n if(scope.$matches[i].value === value) break;\n }\n if(i < 0) return;\n return i;\n };\n\n $select.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if(isTouch) {\n var targetEl = angular.element(evt.target);\n targetEl.triggerHandler('click');\n }\n };\n\n $select.$onKeyDown = function(evt) {\n if (!/(9|13|38|40)/.test(evt.keyCode)) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // release focus on tab\n if (options.multiple && evt.keyCode === 9) {\n return $select.hide();\n }\n\n // Select with enter\n if(!options.multiple && (evt.keyCode === 13 || evt.keyCode === 9)) {\n return $select.select(scope.$activeIndex);\n }\n\n if (!options.multiple) {\n // Navigate with keyboard\n if(evt.keyCode === 38 && scope.$activeIndex > 0) scope.$activeIndex--;\n else if(evt.keyCode === 38 && scope.$activeIndex < 0) scope.$activeIndex = scope.$matches.length - 1;\n else if(evt.keyCode === 40 && scope.$activeIndex < scope.$matches.length - 1) scope.$activeIndex++;\n else if(angular.isUndefined(scope.$activeIndex)) scope.$activeIndex = 0;\n scope.$digest();\n }\n };\n\n // Overrides\n\n var _show = $select.show;\n $select.show = function() {\n _show();\n if(options.multiple) {\n $select.$element.addClass('select-multiple');\n }\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n $select.$element.on(isTouch ? 'touchstart' : 'mousedown', $select.$onMouseDown);\n if(options.keyboard) {\n element.on('keydown', $select.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $select.hide;\n $select.hide = function() {\n if(!options.multiple && !controller.$modelValue) {\n scope.$activeIndex = -1;\n }\n $select.$element.off(isTouch ? 'touchstart' : 'mousedown', $select.$onMouseDown);\n if(options.keyboard) {\n element.off('keydown', $select.$onKeyDown);\n }\n _hide(true);\n };\n\n return $select;\n\n }\n\n SelectFactory.defaults = defaults;\n return SelectFactory;\n\n };\n\n })\n\n .directive('bsSelect', function($window, $parse, $q, $select, $parseOptions) {\n\n var defaults = $select.defaults;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {scope: scope, placeholder: defaults.placeholder};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'placeholder', 'allNoneButtons', 'maxLength', 'maxLengthHtml', 'allText', 'noneText', 'iconCheckmark', 'autoClose', 'id', 'sort', 'caretHtml', 'prefixClass', 'prefixEvent'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'allNoneButtons', 'sort'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Only parse data-multiple. Angular sets existence attributes to true (multiple/required/etc), they apply this\n // to data-multiple as well for some reason, so we'll parse this ourselves and disregard multiple\n var dataMultiple = element.attr('data-multiple');\n if(angular.isDefined(dataMultiple)) {\n if(falseValueRegExp.test(dataMultiple))\n options.multiple = false;\n else\n options.multiple = dataMultiple;\n }\n\n // Add support for select markup\n if(element[0].nodeName.toLowerCase() === 'select') {\n var inputEl = element;\n inputEl.css('display', 'none');\n element = angular.element('');\n inputEl.after(element);\n }\n\n // Build proper bsOptions\n var parsedOptions = $parseOptions(attr.bsOptions);\n\n // Initialize select\n var select = $select(element, controller, options);\n\n // Watch bsOptions values before filtering for changes\n var watchedOptions = parsedOptions.$match[7].replace(/\\|.+/, '').trim();\n scope.$watchCollection(watchedOptions, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', watchedOptions, newValue, oldValue);\n parsedOptions.valuesFn(scope, controller)\n .then(function(values) {\n select.update(values);\n controller.$render();\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.ngModel, newValue, oldValue);\n select.$updateActiveIndex();\n controller.$render();\n }, true);\n\n // Model rendering in view\n controller.$render = function () {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n var selected, index;\n if(options.multiple && angular.isArray(controller.$modelValue)) {\n selected = controller.$modelValue.map(function(value) {\n index = select.$getIndex(value);\n return angular.isDefined(index) ? select.$scope.$matches[index].label : false;\n }).filter(angular.isDefined);\n if(selected.length > (options.maxLength || defaults.maxLength)) {\n selected = selected.length + ' ' + (options.maxLengthHtml || defaults.maxLengthHtml);\n } else {\n selected = selected.join(', ');\n }\n } else {\n index = select.$getIndex(controller.$modelValue);\n selected = angular.isDefined(index) ? select.$scope.$matches[index].label : false;\n }\n element.html((selected ? selected : options.placeholder) + (options.caretHtml ? options.caretHtml : defaults.caretHtml));\n };\n\n if(options.multiple){\n controller.$isEmpty = function(value){\n return !value || value.length === 0;\n };\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (select) select.destroy();\n options = null;\n select = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.timepicker', ['mgcrea.ngStrap.helpers.dateParser', 'mgcrea.ngStrap.helpers.dateFormatter', 'mgcrea.ngStrap.tooltip'])\n\n .provider('$timepicker', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n //uncommenting the following line will break backwards compatability\n // prefixEvent: 'timepicker',\n prefixClass: 'timepicker',\n placement: 'bottom-left',\n templateUrl: 'timepicker/timepicker.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n // lang: $locale.id,\n useNative: true,\n timeType: 'date',\n timeFormat: 'shortTime',\n timezone: null,\n modelTimeFormat: null,\n autoclose: false,\n minTime: -Infinity,\n maxTime: +Infinity,\n length: 5,\n hourStep: 1,\n minuteStep: 5,\n secondStep: 5,\n roundDisplay: false,\n iconUp: 'glyphicon glyphicon-chevron-up',\n iconDown: 'glyphicon glyphicon-chevron-down',\n arrowBehavior: 'pager'\n };\n\n this.$get = function($window, $document, $rootScope, $sce, $dateFormatter, $tooltip, $timeout) {\n\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n var isTouch = ('createTouch' in $window.document) && isNative;\n if (!defaults.lang) {\n defaults.lang = $dateFormatter.getDefaultLocale();\n }\n\n function timepickerFactory(element, controller, config) {\n\n var $timepicker = $tooltip(element, angular.extend({}, defaults, config));\n var parentScope = config.scope;\n var options = $timepicker.$options;\n var scope = $timepicker.$scope;\n\n var lang = options.lang;\n var formatDate = function(date, format, timezone) {\n return $dateFormatter.formatDate(date, format, lang, timezone);\n };\n\n function floorMinutes(time) {\n // coeff used to floor current time to nearest minuteStep interval\n var coeff = 1000 * 60 * options.minuteStep;\n return new Date(Math.floor(time.getTime() / coeff) * coeff);\n }\n\n // View vars\n\n var selectedIndex = 0;\n var defaultDate = options.roundDisplay ? floorMinutes(new Date()) : new Date();\n var startDate = controller.$dateValue || defaultDate;\n var viewDate = {\n hour: startDate.getHours(),\n meridian: startDate.getHours() < 12,\n minute: startDate.getMinutes(),\n second: startDate.getSeconds(),\n millisecond: startDate.getMilliseconds()\n };\n\n var format = $dateFormatter.getDatetimeFormat(options.timeFormat, lang);\n\n var hoursFormat = $dateFormatter.hoursFormat(format),\n timeSeparator = $dateFormatter.timeSeparator(format),\n minutesFormat = $dateFormatter.minutesFormat(format),\n secondsFormat = $dateFormatter.secondsFormat(format),\n showSeconds = $dateFormatter.showSeconds(format),\n showAM = $dateFormatter.showAM(format);\n\n scope.$iconUp = options.iconUp;\n scope.$iconDown = options.iconDown;\n\n // Scope methods\n\n scope.$select = function(date, index) {\n $timepicker.select(date, index);\n };\n scope.$moveIndex = function(value, index) {\n $timepicker.$moveIndex(value, index);\n };\n scope.$switchMeridian = function(date) {\n $timepicker.switchMeridian(date);\n };\n\n // Public methods\n\n $timepicker.update = function(date) {\n // console.warn('$timepicker.update() newValue=%o', date);\n if (angular.isDate(date) && !isNaN(date.getTime())) {\n $timepicker.$date = date;\n angular.extend(viewDate, {\n hour: date.getHours(),\n minute: date.getMinutes(),\n second: date.getSeconds(),\n millisecond: date.getMilliseconds()\n });\n $timepicker.$build();\n } else if (!$timepicker.$isBuilt) {\n $timepicker.$build();\n }\n };\n\n $timepicker.select = function(date, index, keep) {\n // console.warn('$timepicker.select', date, scope.$mode);\n if (!controller.$dateValue || isNaN(controller.$dateValue.getTime())) controller.$dateValue = new Date(1970, 0, 1);\n if (!angular.isDate(date)) date = new Date(date);\n if (index === 0) controller.$dateValue.setHours(date.getHours());\n else if (index === 1) controller.$dateValue.setMinutes(date.getMinutes());\n else if (index === 2) controller.$dateValue.setSeconds(date.getSeconds());\n controller.$setViewValue(angular.copy(controller.$dateValue));\n controller.$render();\n if (options.autoclose && !keep) {\n $timeout(function() {\n $timepicker.hide(true);\n });\n }\n };\n\n $timepicker.switchMeridian = function(date) {\n if (!controller.$dateValue || isNaN(controller.$dateValue.getTime())) {\n return;\n }\n var hours = (date || controller.$dateValue).getHours();\n controller.$dateValue.setHours(hours < 12 ? hours + 12 : hours - 12);\n controller.$setViewValue(angular.copy(controller.$dateValue));\n controller.$render();\n };\n\n // Protected methods\n\n $timepicker.$build = function() {\n // console.warn('$timepicker.$build() viewDate=%o', viewDate);\n var i, midIndex = scope.midIndex = parseInt(options.length / 2, 10);\n var hours = [],\n hour;\n for (i = 0; i < options.length; i++) {\n hour = new Date(1970, 0, 1, viewDate.hour - (midIndex - i) * options.hourStep);\n hours.push({\n date: hour,\n label: formatDate(hour, hoursFormat),\n selected: $timepicker.$date && $timepicker.$isSelected(hour, 0),\n disabled: $timepicker.$isDisabled(hour, 0)\n });\n }\n var minutes = [],\n minute;\n for (i = 0; i < options.length; i++) {\n minute = new Date(1970, 0, 1, 0, viewDate.minute - (midIndex - i) * options.minuteStep);\n minutes.push({\n date: minute,\n label: formatDate(minute, minutesFormat),\n selected: $timepicker.$date && $timepicker.$isSelected(minute, 1),\n disabled: $timepicker.$isDisabled(minute, 1)\n });\n }\n var seconds = [],\n second;\n for (i = 0; i < options.length; i++) {\n second = new Date(1970, 0, 1, 0, 0, viewDate.second - (midIndex - i) * options.secondStep);\n seconds.push({\n date: second,\n label: formatDate(second, secondsFormat),\n selected: $timepicker.$date && $timepicker.$isSelected(second, 2),\n disabled: $timepicker.$isDisabled(second, 2)\n });\n }\n\n var rows = [];\n for (i = 0; i < options.length; i++) {\n if (showSeconds) {\n rows.push([hours[i], minutes[i], seconds[i]]);\n } else {\n rows.push([hours[i], minutes[i]]);\n }\n }\n scope.rows = rows;\n scope.showSeconds = showSeconds;\n scope.showAM = showAM;\n scope.isAM = ($timepicker.$date || hours[midIndex].date).getHours() < 12;\n scope.timeSeparator = timeSeparator;\n $timepicker.$isBuilt = true;\n };\n\n $timepicker.$isSelected = function(date, index) {\n if (!$timepicker.$date) return false;\n else if (index === 0) {\n return date.getHours() === $timepicker.$date.getHours();\n } else if (index === 1) {\n return date.getMinutes() === $timepicker.$date.getMinutes();\n } else if (index === 2) {\n return date.getSeconds() === $timepicker.$date.getSeconds();\n }\n };\n\n $timepicker.$isDisabled = function(date, index) {\n var selectedTime;\n if (index === 0) {\n selectedTime = date.getTime() + viewDate.minute * 6e4 + viewDate.second * 1e3;\n } else if (index === 1) {\n selectedTime = date.getTime() + viewDate.hour * 36e5 + viewDate.second * 1e3;\n } else if (index === 2) {\n selectedTime = date.getTime() + viewDate.hour * 36e5 + viewDate.minute * 6e4;\n }\n return selectedTime < options.minTime * 1 || selectedTime > options.maxTime * 1;\n };\n\n scope.$arrowAction = function(value, index) {\n if (options.arrowBehavior === 'picker') {\n $timepicker.$setTimeByStep(value, index);\n } else {\n $timepicker.$moveIndex(value, index);\n }\n };\n\n $timepicker.$setTimeByStep = function(value, index) {\n var newDate = new Date($timepicker.$date || startDate);\n var hours = newDate.getHours();\n var minutes = newDate.getMinutes();\n var seconds = newDate.getSeconds();\n if (index === 0) {\n newDate.setHours(hours - (parseInt(options.hourStep, 10) * value));\n } else if (index === 1) {\n newDate.setMinutes(minutes - (parseInt(options.minuteStep, 10) * value));\n } else if (index === 2) {\n newDate.setSeconds(seconds - (parseInt(options.secondStep, 10) * value));\n }\n $timepicker.select(newDate, index, true);\n };\n\n $timepicker.$moveIndex = function(value, index) {\n var targetDate;\n if (index === 0) {\n targetDate = new Date(1970, 0, 1, viewDate.hour + (value * options.length), viewDate.minute, viewDate.second);\n angular.extend(viewDate, {\n hour: targetDate.getHours()\n });\n } else if (index === 1) {\n targetDate = new Date(1970, 0, 1, viewDate.hour, viewDate.minute + (value * options.length * options.minuteStep), viewDate.second);\n angular.extend(viewDate, {\n minute: targetDate.getMinutes()\n });\n } else if (index === 2) {\n targetDate = new Date(1970, 0, 1, viewDate.hour, viewDate.minute, viewDate.second + (value * options.length * options.secondStep));\n angular.extend(viewDate, {\n second: targetDate.getSeconds()\n });\n }\n $timepicker.$build();\n };\n\n $timepicker.$onMouseDown = function(evt) {\n // Prevent blur on mousedown on .dropdown-menu\n if (evt.target.nodeName.toLowerCase() !== 'input') evt.preventDefault();\n evt.stopPropagation();\n // Emulate click for mobile devices\n if (isTouch) {\n var targetEl = angular.element(evt.target);\n if (targetEl[0].nodeName.toLowerCase() !== 'button') {\n targetEl = targetEl.parent();\n }\n targetEl.triggerHandler('click');\n }\n };\n\n $timepicker.$onKeyDown = function(evt) {\n if (!/(38|37|39|40|13)/.test(evt.keyCode) || evt.shiftKey || evt.altKey) return;\n evt.preventDefault();\n evt.stopPropagation();\n\n // Close on enter\n if (evt.keyCode === 13) {\n $timepicker.hide(true);\n return;\n }\n\n // Navigate with keyboard\n var newDate = new Date($timepicker.$date);\n var hours = newDate.getHours(),\n hoursLength = formatDate(newDate, hoursFormat).length;\n var minutes = newDate.getMinutes(),\n minutesLength = formatDate(newDate, minutesFormat).length;\n var seconds = newDate.getSeconds(),\n secondsLength = formatDate(newDate, secondsFormat).length;\n var sepLength = 1;\n var lateralMove = /(37|39)/.test(evt.keyCode);\n var count = 2 + showSeconds * 1 + showAM * 1;\n\n // Navigate indexes (left, right)\n if (lateralMove) {\n if (evt.keyCode === 37) selectedIndex = selectedIndex < 1 ? count - 1 : selectedIndex - 1;\n else if (evt.keyCode === 39) selectedIndex = selectedIndex < count - 1 ? selectedIndex + 1 : 0;\n }\n\n // Update values (up, down)\n var selectRange = [0, hoursLength];\n var incr = 0;\n if (evt.keyCode === 38) incr = -1;\n if (evt.keyCode === 40) incr = +1;\n var isSeconds = selectedIndex === 2 && showSeconds;\n var isMeridian = selectedIndex === 2 && !showSeconds || selectedIndex === 3 && showSeconds;\n if (selectedIndex === 0) {\n newDate.setHours(hours + incr * parseInt(options.hourStep, 10));\n // re-calculate hours length because we have changed hours value\n hoursLength = formatDate(newDate, hoursFormat).length;\n selectRange = [0, hoursLength];\n } else if (selectedIndex === 1) {\n newDate.setMinutes(minutes + incr * parseInt(options.minuteStep, 10));\n // re-calculate minutes length because we have changes minutes value\n minutesLength = formatDate(newDate, minutesFormat).length;\n selectRange = [hoursLength + sepLength, minutesLength];\n } else if (isSeconds) {\n newDate.setSeconds(seconds + incr * parseInt(options.secondStep, 10));\n // re-calculate seconds length because we have changes seconds value\n secondsLength = formatDate(newDate, secondsFormat).length;\n selectRange = [hoursLength + sepLength + minutesLength + sepLength, secondsLength];\n } else if (isMeridian) {\n if (!lateralMove) $timepicker.switchMeridian();\n selectRange = [hoursLength + sepLength + minutesLength + sepLength + (secondsLength + sepLength) * showSeconds, 2];\n }\n $timepicker.select(newDate, selectedIndex, true);\n createSelection(selectRange[0], selectRange[1]);\n parentScope.$digest();\n };\n\n // Private\n\n function createSelection(start, length) {\n var end = start + length;\n if (element[0].createTextRange) {\n var selRange = element[0].createTextRange();\n selRange.collapse(true);\n selRange.moveStart('character', start);\n selRange.moveEnd('character', end);\n selRange.select();\n } else if (element[0].setSelectionRange) {\n element[0].setSelectionRange(start, end);\n } else if (angular.isUndefined(element[0].selectionStart)) {\n element[0].selectionStart = start;\n element[0].selectionEnd = end;\n }\n }\n\n function focusElement() {\n element[0].focus();\n }\n\n // Overrides\n\n var _init = $timepicker.init;\n $timepicker.init = function() {\n if (isNative && options.useNative) {\n element.prop('type', 'time');\n element.css('-webkit-appearance', 'textfield');\n return;\n } else if (isTouch) {\n element.prop('type', 'text');\n element.attr('readonly', 'true');\n element.on('click', focusElement);\n }\n _init();\n };\n\n var _destroy = $timepicker.destroy;\n $timepicker.destroy = function() {\n if (isNative && options.useNative) {\n element.off('click', focusElement);\n }\n _destroy();\n };\n\n var _show = $timepicker.show;\n $timepicker.show = function() {\n if((!isTouch && element.attr('readonly')) || element.attr('disabled')) return;\n _show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n $timepicker.$element && $timepicker.$element.on(isTouch ? 'touchstart' : 'mousedown', $timepicker.$onMouseDown);\n if (options.keyboard) {\n element && element.on('keydown', $timepicker.$onKeyDown);\n }\n }, 0, false);\n };\n\n var _hide = $timepicker.hide;\n $timepicker.hide = function(blur) {\n if (!$timepicker.$isShown) return;\n $timepicker.$element && $timepicker.$element.off(isTouch ? 'touchstart' : 'mousedown', $timepicker.$onMouseDown);\n if (options.keyboard) {\n element && element.off('keydown', $timepicker.$onKeyDown);\n }\n _hide(blur);\n };\n\n return $timepicker;\n\n }\n\n timepickerFactory.defaults = defaults;\n return timepickerFactory;\n\n };\n\n })\n\n\n .directive('bsTimepicker', function($window, $parse, $q, $dateFormatter, $dateParser, $timepicker) {\n\n var defaults = $timepicker.defaults;\n var isNative = /(ip(a|o)d|iphone|android)/ig.test($window.navigator.userAgent);\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {\n scope: scope\n };\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'autoclose', 'timeType', 'timeFormat', 'timezone', 'modelTimeFormat', 'useNative', 'hourStep', 'minuteStep', 'secondStep', 'length', 'arrowBehavior', 'iconUp', 'iconDown', 'roundDisplay', 'id', 'prefixClass', 'prefixEvent'], function(key) {\n if (angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'autoclose', 'useNative', 'roundDisplay'], function(key) {\n if (angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if (!timepicker || !angular.isDefined(newValue)) return;\n if (angular.isString(newValue)) newValue = !!newValue.match(/true|,?(timepicker),?/i);\n newValue === true ? timepicker.show() : timepicker.hide();\n });\n\n // Initialize timepicker\n if (isNative && (options.useNative || defaults.useNative)) options.timeFormat = 'HH:mm';\n var timepicker = $timepicker(element, controller, options);\n options = timepicker.$options;\n\n var lang = options.lang;\n var formatDate = function(date, format, timezone) {\n return $dateFormatter.formatDate(date, format, lang, timezone);\n };\n\n // Initialize parser\n var dateParser = $dateParser({\n format: options.timeFormat,\n lang: lang\n });\n\n // Observe attributes for changes\n angular.forEach(['minTime', 'maxTime'], function(key) {\n // console.warn('attr.$observe(%s)', key, attr[key]);\n angular.isDefined(attr[key]) && attr.$observe(key, function(newValue) {\n timepicker.$options[key] = dateParser.getTimeForAttribute(key, newValue);\n !isNaN(timepicker.$options[key]) && timepicker.$build();\n validateAgainstMinMaxTime(controller.$dateValue);\n });\n });\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.ngModel, newValue, oldValue, controller.$dateValue);\n timepicker.update(controller.$dateValue);\n }, true);\n\n function validateAgainstMinMaxTime(parsedTime) {\n if (!angular.isDate(parsedTime)) return;\n var isMinValid = isNaN(options.minTime) || new Date(parsedTime.getTime()).setFullYear(1970, 0, 1) >= options.minTime;\n var isMaxValid = isNaN(options.maxTime) || new Date(parsedTime.getTime()).setFullYear(1970, 0, 1) <= options.maxTime;\n var isValid = isMinValid && isMaxValid;\n controller.$setValidity('date', isValid);\n controller.$setValidity('min', isMinValid);\n controller.$setValidity('max', isMaxValid);\n // Only update the model when we have a valid date\n if (!isValid) {\n return;\n }\n controller.$dateValue = parsedTime;\n }\n\n // viewValue -> $parsers -> modelValue\n controller.$parsers.unshift(function(viewValue) {\n // console.warn('$parser(\"%s\"): viewValue=%o', element.attr('ng-model'), viewValue);\n var date;\n // Null values should correctly reset the model value & validity\n if (!viewValue) {\n // BREAKING CHANGE:\n // return null (not undefined) when input value is empty, so angularjs 1.3\n // ngModelController can go ahead and run validators, like ngRequired\n controller.$setValidity('date', true);\n return null;\n }\n var parsedTime = angular.isDate(viewValue) ? viewValue : dateParser.parse(viewValue, controller.$dateValue);\n if (!parsedTime || isNaN(parsedTime.getTime())) {\n controller.$setValidity('date', false);\n // Return undefined, causes ngModelController to\n // invalidate model value\n return undefined;\n } else {\n validateAgainstMinMaxTime(parsedTime);\n }\n\n if (options.timeType === 'string') {\n date = dateParser.timezoneOffsetAdjust(parsedTime, options.timezone, true);\n return formatDate(date, options.modelTimeFormat || options.timeFormat);\n }\n date = dateParser.timezoneOffsetAdjust(controller.$dateValue, options.timezone, true);\n if (options.timeType === 'number') {\n return date.getTime();\n } else if (options.timeType === 'unix') {\n return date.getTime() / 1000;\n } else if (options.timeType === 'iso') {\n return date.toISOString();\n } else {\n return new Date(date);\n }\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var date;\n if (angular.isUndefined(modelValue) || modelValue === null) {\n date = NaN;\n } else if (angular.isDate(modelValue)) {\n date = modelValue;\n } else if (options.timeType === 'string') {\n date = dateParser.parse(modelValue, null, options.modelTimeFormat);\n } else if (options.timeType === 'unix') {\n date = new Date(modelValue * 1000);\n } else {\n date = new Date(modelValue);\n }\n // Setup default value?\n // if(isNaN(date.getTime())) date = new Date(new Date().setMinutes(0) + 36e5);\n controller.$dateValue = dateParser.timezoneOffsetAdjust(date, options.timezone);\n return getTimeFormattedString();\n });\n\n // viewValue -> element\n controller.$render = function() {\n // console.warn('$render(\"%s\"): viewValue=%o', element.attr('ng-model'), controller.$viewValue);\n element.val(getTimeFormattedString());\n };\n\n function getTimeFormattedString() {\n return !controller.$dateValue || isNaN(controller.$dateValue.getTime()) ? '' : formatDate(controller.$dateValue, options.timeFormat);\n }\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (timepicker) timepicker.destroy();\n options = null;\n timepicker = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.tab', [])\n\n .provider('$tab', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n template: 'tab/tab.tpl.html',\n navClass: 'nav-tabs',\n activeClass: 'active'\n };\n\n var controller = this.controller = function($scope, $element, $attrs) {\n var self = this;\n\n // Attributes options\n self.$options = angular.copy(defaults);\n angular.forEach(['animation', 'navClass', 'activeClass'], function(key) {\n if(angular.isDefined($attrs[key])) self.$options[key] = $attrs[key];\n });\n\n // Publish options on scope\n $scope.$navClass = self.$options.navClass;\n $scope.$activeClass = self.$options.activeClass;\n\n self.$panes = $scope.$panes = [];\n\n // Please use $activePaneChangeListeners if you use `bsActivePane`\n // Because we removed `ngModel` as default, we rename viewChangeListeners to\n // activePaneChangeListeners to make more sense.\n self.$activePaneChangeListeners = self.$viewChangeListeners = [];\n\n self.$push = function(pane) {\n if(angular.isUndefined(self.$panes.$active)) {\n $scope.$setActive(pane.name || 0);\n }\n self.$panes.push(pane);\n };\n\n self.$remove = function(pane) {\n var index = self.$panes.indexOf(pane);\n var active = self.$panes.$active;\n var activeIndex;\n if(angular.isString(active)) {\n activeIndex = self.$panes.map(function(pane) {\n return pane.name;\n }).indexOf(active);\n } else {\n activeIndex = self.$panes.$active;\n }\n\n // remove pane from $panes array\n self.$panes.splice(index, 1);\n\n if (index < activeIndex) {\n // we removed a pane before the active pane, so we need to\n // decrement the active pane index\n activeIndex--;\n }\n else if (index === activeIndex && activeIndex === self.$panes.length) {\n // we remove the active pane and it was the one at the end,\n // so select the previous one\n activeIndex--;\n }\n if(activeIndex >= 0 && activeIndex < self.$panes.length) {\n self.$setActive(self.$panes[activeIndex].name || activeIndex);\n } else {\n self.$setActive();\n }\n };\n\n self.$setActive = $scope.$setActive = function(value) {\n self.$panes.$active = value;\n self.$activePaneChangeListeners.forEach(function(fn) {\n fn();\n });\n };\n\n self.$isActive = $scope.$isActive = function($pane, $index) {\n return self.$panes.$active === $pane.name || self.$panes.$active === $index;\n };\n\n };\n\n this.$get = function() {\n var $tab = {};\n $tab.defaults = defaults;\n $tab.controller = controller;\n return $tab;\n };\n\n })\n\n .directive('bsTabs', function($window, $animate, $tab, $parse) {\n\n var defaults = $tab.defaults;\n\n return {\n require: ['?ngModel', 'bsTabs'],\n transclude: true,\n scope: true,\n controller: ['$scope', '$element', '$attrs', $tab.controller],\n templateUrl: function(element, attr) {\n return attr.template || defaults.template;\n },\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsTabsCtrl = controllers[1];\n\n // 'ngModel' does interfere with form validation\n // and status, use `bsActivePane` instead to avoid it\n if(ngModelCtrl) {\n\n // Update the modelValue following\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n ngModelCtrl.$setViewValue(bsTabsCtrl.$panes.$active);\n });\n\n // modelValue -> $formatters -> viewValue\n ngModelCtrl.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n bsTabsCtrl.$setActive(modelValue);\n return modelValue;\n });\n\n }\n\n if (attrs.bsActivePane) {\n // adapted from angularjs ngModelController bindings\n // https://github.com/angular/angular.js/blob/v1.3.1/src%2Fng%2Fdirective%2Finput.js#L1730\n var parsedBsActivePane = $parse(attrs.bsActivePane);\n\n // Update bsActivePane value with change\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n parsedBsActivePane.assign(scope, bsTabsCtrl.$panes.$active);\n });\n\n // watch bsActivePane for value changes\n scope.$watch(attrs.bsActivePane, function(newValue, oldValue) {\n bsTabsCtrl.$setActive(newValue);\n }, true);\n }\n }\n };\n\n })\n\n .directive('bsPane', function($window, $animate, $sce) {\n\n return {\n require: ['^?ngModel', '^bsTabs'],\n scope: true,\n link: function postLink(scope, element, attrs, controllers) {\n\n var ngModelCtrl = controllers[0];\n var bsTabsCtrl = controllers[1];\n\n // Add base class\n element.addClass('tab-pane');\n\n // Observe title attribute for change\n attrs.$observe('title', function(newValue, oldValue) {\n scope.title = $sce.trustAsHtml(newValue);\n });\n\n // Save tab name into scope\n scope.name = attrs.name;\n\n // Add animation class\n if(bsTabsCtrl.$options.animation) {\n element.addClass(bsTabsCtrl.$options.animation);\n }\n\n attrs.$observe('disabled', function(newValue, oldValue) {\n scope.disabled = scope.$eval(newValue);\n });\n\n // Push pane to parent bsTabs controller\n bsTabsCtrl.$push(scope);\n\n // remove pane from tab controller when pane is destroyed\n scope.$on('$destroy', function() {\n bsTabsCtrl.$remove(scope);\n });\n\n function render() {\n var index = bsTabsCtrl.$panes.indexOf(scope);\n $animate[bsTabsCtrl.$isActive(scope, index) ? 'addClass' : 'removeClass'](element, bsTabsCtrl.$options.activeClass);\n }\n\n bsTabsCtrl.$activePaneChangeListeners.push(function() {\n render();\n });\n render();\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.typeahead', ['mgcrea.ngStrap.tooltip', 'mgcrea.ngStrap.helpers.parseOptions'])\n\n .provider('$typeahead', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n prefixClass: 'typeahead',\n prefixEvent: '$typeahead',\n placement: 'bottom-left',\n templateUrl: 'typeahead/typeahead.tpl.html',\n trigger: 'focus',\n container: false,\n keyboard: true,\n html: false,\n delay: 0,\n minLength: 1,\n filter: 'bsAsyncFilter',\n limit: 6,\n autoSelect: false,\n comparator: '',\n trimValue: true\n };\n\n this.$get = function($window, $rootScope, $tooltip, $$rAF, $timeout) {\n\n var bodyEl = angular.element($window.document.body);\n\n function TypeaheadFactory(element, controller, config) {\n\n var $typeahead = {};\n\n // Common vars\n var options = angular.extend({}, defaults, config);\n\n $typeahead = $tooltip(element, options);\n var parentScope = config.scope;\n var scope = $typeahead.$scope;\n\n scope.$resetMatches = function() {\n scope.$matches = [];\n scope.$activeIndex = options.autoSelect ? 0 : -1; // If set to 0, the first match will be highlighted\n };\n scope.$resetMatches();\n\n scope.$activate = function(index) {\n scope.$$postDigest(function() {\n $typeahead.activate(index);\n });\n };\n\n scope.$select = function(index, evt) {\n scope.$$postDigest(function() {\n $typeahead.select(index);\n });\n };\n\n scope.$isVisible = function() {\n return $typeahead.$isVisible();\n };\n\n // Public methods\n\n $typeahead.update = function(matches) {\n scope.$matches = matches;\n if (scope.$activeIndex >= matches.length) {\n scope.$activeIndex = options.autoSelect ? 0 : -1;\n }\n\n // wrap in a $timeout so the results are updated\n // before repositioning\n safeDigest(scope);\n $$rAF($typeahead.$applyPlacement);\n };\n\n $typeahead.activate = function(index) {\n scope.$activeIndex = index;\n };\n\n $typeahead.select = function(index) {\n if (index === -1) return;\n var value = scope.$matches[index].value;\n // console.log('$setViewValue', value);\n controller.$setViewValue(value);\n controller.$render();\n scope.$resetMatches();\n if (parentScope) parentScope.$digest();\n // Emit event\n scope.$emit(options.prefixEvent + '.select', value, index, $typeahead);\n };\n\n // Protected methods\n\n $typeahead.$isVisible = function() {\n if (!options.minLength || !controller) {\n return !!scope.$matches.length;\n }\n // minLength support\n return scope.$matches.length && angular.isString(controller.$viewValue) && controller.$viewValue.length >= options.minLength;\n };\n\n $typeahead.$getIndex = function(value) {\n var l = scope.$matches.length,\n i = l;\n if (!l) return;\n for (i = l; i--;) {\n if (scope.$matches[i].value === value) break;\n }\n if (i < 0) return;\n return i;\n };\n\n $typeahead.$onMouseDown = function(evt) {\n // Prevent blur on mousedown\n evt.preventDefault();\n evt.stopPropagation();\n };\n\n $typeahead.$onKeyDown = function(evt) {\n if (!/(38|40|13)/.test(evt.keyCode)) return;\n\n // Let ngSubmit pass if the typeahead tip is hidden or no option is selected\n if ($typeahead.$isVisible() && !(evt.keyCode === 13 && scope.$activeIndex === -1)) {\n evt.preventDefault();\n evt.stopPropagation();\n }\n\n // Select with enter\n if (evt.keyCode === 13 && scope.$matches.length) {\n $typeahead.select(scope.$activeIndex);\n }\n\n // Navigate with keyboard\n else if (evt.keyCode === 38 && scope.$activeIndex > 0) scope.$activeIndex--;\n else if (evt.keyCode === 40 && scope.$activeIndex < scope.$matches.length - 1) scope.$activeIndex++;\n else if (angular.isUndefined(scope.$activeIndex)) scope.$activeIndex = 0;\n scope.$digest();\n };\n\n // Overrides\n\n var show = $typeahead.show;\n $typeahead.show = function() {\n show();\n // use timeout to hookup the events to prevent\n // event bubbling from being processed immediately.\n $timeout(function() {\n $typeahead.$element && $typeahead.$element.on('mousedown', $typeahead.$onMouseDown);\n if (options.keyboard) {\n element && element.on('keydown', $typeahead.$onKeyDown);\n }\n }, 0, false);\n };\n\n var hide = $typeahead.hide;\n $typeahead.hide = function() {\n $typeahead.$element && $typeahead.$element.off('mousedown', $typeahead.$onMouseDown);\n if (options.keyboard) {\n element && element.off('keydown', $typeahead.$onKeyDown);\n }\n if (!options.autoSelect)\n $typeahead.activate(-1);\n hide();\n };\n\n return $typeahead;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n TypeaheadFactory.defaults = defaults;\n return TypeaheadFactory;\n\n };\n\n })\n\n .filter('bsAsyncFilter', function($filter) {\n return function(array, expression, comparator) {\n if (array && angular.isFunction(array.then)) {\n return array.then(function(results) {\n return $filter('filter')(results, expression, comparator);\n });\n } else {\n return $filter('filter')(array, expression, comparator);\n }\n };\n })\n\n .directive('bsTypeahead', function($window, $parse, $q, $typeahead, $parseOptions) {\n\n var defaults = $typeahead.defaults;\n\n return {\n restrict: 'EAC',\n require: 'ngModel',\n link: function postLink(scope, element, attr, controller) {\n\n // Directive options\n var options = {\n scope: scope\n };\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'placement', 'container', 'delay', 'trigger', 'keyboard', 'html', 'animation', 'filter', 'limit', 'minLength', 'watchOptions', 'selectMode', 'autoSelect', 'comparator', 'id', 'prefixEvent', 'prefixClass'], function(key) {\n if (angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container', 'trimValue'], function(key) {\n if (angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key])) options[key] = false;\n });\n\n // Disable browser autocompletion\n element.attr('autocomplete', 'false');\n\n // Build proper bsOptions\n var filter = options.filter || defaults.filter;\n var limit = options.limit || defaults.limit;\n var comparator = options.comparator || defaults.comparator;\n\n var bsOptions = attr.bsOptions;\n if (filter) bsOptions += ' | ' + filter + ':$viewValue';\n if (comparator) bsOptions += ':' + comparator;\n if (limit) bsOptions += ' | limitTo:' + limit;\n var parsedOptions = $parseOptions(bsOptions);\n\n // Initialize typeahead\n var typeahead = $typeahead(element, controller, options);\n\n // Watch options on demand\n if (options.watchOptions) {\n // Watch bsOptions values before filtering for changes, drop function calls\n var watchedOptions = parsedOptions.$match[7].replace(/\\|.+/, '').replace(/\\(.*\\)/g, '').trim();\n scope.$watchCollection(watchedOptions, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', watchedOptions, newValue, oldValue);\n parsedOptions.valuesFn(scope, controller).then(function(values) {\n typeahead.update(values);\n controller.$render();\n });\n });\n }\n\n // Watch model for changes\n scope.$watch(attr.ngModel, function(newValue, oldValue) {\n // console.warn('$watch', element.attr('ng-model'), newValue);\n scope.$modelValue = newValue; // Publish modelValue on scope for custom templates\n parsedOptions.valuesFn(scope, controller)\n .then(function(values) {\n // Prevent input with no future prospect if selectMode is truthy\n // @TODO test selectMode\n if (options.selectMode && !values.length && newValue.length > 0) {\n controller.$setViewValue(controller.$viewValue.substring(0, controller.$viewValue.length - 1));\n return;\n }\n if (values.length > limit) values = values.slice(0, limit);\n var isVisible = typeahead.$isVisible();\n isVisible && typeahead.update(values);\n // Do not re-queue an update if a correct value has been selected\n if (values.length === 1 && values[0].value === newValue) return;\n !isVisible && typeahead.update(values);\n // Queue a new rendering that will leverage collection loading\n controller.$render();\n });\n });\n\n // modelValue -> $formatters -> viewValue\n controller.$formatters.push(function(modelValue) {\n // console.warn('$formatter(\"%s\"): modelValue=%o (%o)', element.attr('ng-model'), modelValue, typeof modelValue);\n var displayValue = parsedOptions.displayValue(modelValue);\n\n // If we can determine the displayValue, use that\n if (displayValue) {\n return displayValue;\n }\n\n // If there's no display value, attempt to use the modelValue.\n // If the model is an object not much we can do\n if (modelValue && typeof modelValue !== 'object') {\n return modelValue;\n }\n return '';\n });\n\n // Model rendering in view\n controller.$render = function() {\n // console.warn('$render', element.attr('ng-model'), 'controller.$modelValue', typeof controller.$modelValue, controller.$modelValue, 'controller.$viewValue', typeof controller.$viewValue, controller.$viewValue);\n if (controller.$isEmpty(controller.$viewValue)) {\n return element.val('');\n }\n var index = typeahead.$getIndex(controller.$modelValue);\n var selected = angular.isDefined(index) ? typeahead.$scope.$matches[index].label : controller.$viewValue;\n selected = angular.isObject(selected) ? parsedOptions.displayValue(selected) : selected;\n var value = selected ? selected.toString().replace(/<(?:.|\\n)*?>/gm, '') : '';\n element.val(options.trimValue === false ? value : value.trim());\n };\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if (typeahead) typeahead.destroy();\n options = null;\n typeahead = null;\n });\n\n }\n };\n\n });\n","'use strict';\n\nangular.module('mgcrea.ngStrap.tooltip', ['mgcrea.ngStrap.core', 'mgcrea.ngStrap.helpers.dimensions'])\n\n .provider('$tooltip', function() {\n\n var defaults = this.defaults = {\n animation: 'am-fade',\n customClass: '',\n prefixClass: 'tooltip',\n prefixEvent: 'tooltip',\n container: false,\n target: false,\n placement: 'top',\n templateUrl: 'tooltip/tooltip.tpl.html',\n template: '',\n contentTemplate: false,\n trigger: 'hover focus',\n keyboard: false,\n html: false,\n show: false,\n title: '',\n type: '',\n delay: 0,\n autoClose: false,\n bsEnabled: true,\n viewport: {\n selector: 'body',\n padding: 0\n }\n };\n\n this.$get = function($window, $rootScope, $bsCompiler, $q, $templateCache, $http, $animate, $sce, dimensions, $$rAF, $timeout) {\n\n var trim = String.prototype.trim;\n var isTouch = 'createTouch' in $window.document;\n var htmlReplaceRegExp = /ng-bind=\"/ig;\n var $body = angular.element($window.document);\n\n function TooltipFactory(element, config) {\n\n var $tooltip = {};\n\n // Common vars\n var options = $tooltip.$options = angular.extend({}, defaults, config);\n var promise = $tooltip.$promise = $bsCompiler.compile(options);\n var scope = $tooltip.$scope = options.scope && options.scope.$new() || $rootScope.$new();\n\n var nodeName = element[0].nodeName.toLowerCase();\n if(options.delay && angular.isString(options.delay)) {\n var split = options.delay.split(',').map(parseFloat);\n options.delay = split.length > 1 ? {show: split[0], hide: split[1]} : split[0];\n }\n\n // Store $id to identify the triggering element in events\n // give priority to options.id, otherwise, try to use\n // element id if defined\n $tooltip.$id = options.id || element.attr('id') || '';\n\n // Support scope as string options\n if(options.title) {\n scope.title = $sce.trustAsHtml(options.title);\n }\n\n // Provide scope helpers\n scope.$setEnabled = function(isEnabled) {\n scope.$$postDigest(function() {\n $tooltip.setEnabled(isEnabled);\n });\n };\n scope.$hide = function() {\n scope.$$postDigest(function() {\n $tooltip.hide();\n });\n };\n scope.$show = function() {\n scope.$$postDigest(function() {\n $tooltip.show();\n });\n };\n scope.$toggle = function() {\n scope.$$postDigest(function() {\n $tooltip.toggle();\n });\n };\n // Publish isShown as a protected var on scope\n $tooltip.$isShown = scope.$isShown = false;\n\n // Private vars\n var timeout, hoverState;\n\n // Fetch, compile then initialize tooltip\n var compileData, tipElement, tipContainer, tipScope;\n promise.then(function(data) {\n compileData = data;\n $tooltip.init();\n });\n\n $tooltip.init = function() {\n\n // Options: delay\n if (options.delay && angular.isNumber(options.delay)) {\n options.delay = {\n show: options.delay,\n hide: options.delay\n };\n }\n\n // Replace trigger on touch devices ?\n // if(isTouch && options.trigger === defaults.trigger) {\n // options.trigger.replace(/hover/g, 'click');\n // }\n\n // Options : container\n if(options.container === 'self') {\n tipContainer = element;\n } else if(angular.isElement(options.container)) {\n tipContainer = options.container;\n } else if(options.container) {\n tipContainer = findElement(options.container);\n }\n\n // Options: trigger\n bindTriggerEvents();\n\n // Options: target\n if(options.target) {\n options.target = angular.isElement(options.target) ? options.target : findElement(options.target);\n }\n\n // Options: show\n if(options.show) {\n scope.$$postDigest(function() {\n options.trigger === 'focus' ? element[0].focus() : $tooltip.show();\n });\n }\n\n };\n\n $tooltip.destroy = function() {\n\n // Unbind events\n unbindTriggerEvents();\n\n // Remove element\n destroyTipElement();\n\n // Destroy scope\n scope.$destroy();\n\n };\n\n $tooltip.enter = function() {\n\n clearTimeout(timeout);\n hoverState = 'in';\n if (!options.delay || !options.delay.show) {\n return $tooltip.show();\n }\n\n timeout = setTimeout(function() {\n if (hoverState ==='in') $tooltip.show();\n }, options.delay.show);\n\n };\n\n $tooltip.show = function() {\n if (!options.bsEnabled || $tooltip.$isShown) return;\n\n scope.$emit(options.prefixEvent + '.show.before', $tooltip);\n var parent, after;\n if (options.container) {\n parent = tipContainer;\n if (tipContainer[0].lastChild) {\n after = angular.element(tipContainer[0].lastChild);\n } else {\n after = null;\n }\n } else {\n parent = null;\n after = element;\n }\n\n\n // Hide any existing tipElement\n if(tipElement) destroyTipElement();\n // Fetch a cloned element linked from template\n tipScope = $tooltip.$scope.$new();\n tipElement = $tooltip.$element = compileData.link(tipScope, function(clonedElement, scope) {});\n\n // Set the initial positioning. Make the tooltip invisible\n // so IE doesn't try to focus on it off screen.\n tipElement.css({top: '-9999px', left: '-9999px', right: 'auto', display: 'block', visibility: 'hidden'});\n\n // Options: animation\n if(options.animation) tipElement.addClass(options.animation);\n // Options: type\n if(options.type) tipElement.addClass(options.prefixClass + '-' + options.type);\n // Options: custom classes\n if(options.customClass) tipElement.addClass(options.customClass);\n\n // Append the element, without any animations. If we append\n // using $animate.enter, some of the animations cause the placement\n // to be off due to the transforms.\n after ? after.after(tipElement) : parent.prepend(tipElement);\n\n $tooltip.$isShown = scope.$isShown = true;\n safeDigest(scope);\n\n // Now, apply placement\n $tooltip.$applyPlacement();\n\n // Once placed, animate it.\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.enter(tipElement, parent, after, enterAnimateCallback);\n } else {\n $animate.enter(tipElement, parent, after).then(enterAnimateCallback);\n }\n safeDigest(scope);\n\n $$rAF(function () {\n // Once the tooltip is placed and the animation starts, make the tooltip visible\n if(tipElement) tipElement.css({visibility: 'visible'});\n });\n\n // Bind events\n if(options.keyboard) {\n if(options.trigger !== 'focus') {\n $tooltip.focus();\n }\n bindKeyboardEvents();\n }\n\n if(options.autoClose) {\n bindAutoCloseEvents();\n }\n\n };\n\n function enterAnimateCallback() {\n scope.$emit(options.prefixEvent + '.show', $tooltip);\n }\n\n $tooltip.leave = function() {\n\n clearTimeout(timeout);\n hoverState = 'out';\n if (!options.delay || !options.delay.hide) {\n return $tooltip.hide();\n }\n timeout = setTimeout(function () {\n if (hoverState === 'out') {\n $tooltip.hide();\n }\n }, options.delay.hide);\n\n };\n\n var _blur;\n var _tipToHide;\n $tooltip.hide = function(blur) {\n\n if(!$tooltip.$isShown) return;\n scope.$emit(options.prefixEvent + '.hide.before', $tooltip);\n\n // store blur value for leaveAnimateCallback to use\n _blur = blur;\n\n // store current tipElement reference to use\n // in leaveAnimateCallback\n _tipToHide = tipElement;\n\n // Support v1.2+ $animate\n // https://github.com/angular/angular.js/issues/11713\n if(angular.version.minor <= 2) {\n $animate.leave(tipElement, leaveAnimateCallback);\n } else {\n $animate.leave(tipElement).then(leaveAnimateCallback);\n }\n\n $tooltip.$isShown = scope.$isShown = false;\n safeDigest(scope);\n\n // Unbind events\n if(options.keyboard && tipElement !== null) {\n unbindKeyboardEvents();\n }\n\n if(options.autoClose && tipElement !== null) {\n unbindAutoCloseEvents();\n }\n };\n\n function leaveAnimateCallback() {\n scope.$emit(options.prefixEvent + '.hide', $tooltip);\n\n // check if current tipElement still references\n // the same element when hide was called\n if (tipElement === _tipToHide) {\n // Allow to blur the input when hidden, like when pressing enter key\n if(_blur && options.trigger === 'focus') {\n return element[0].blur();\n }\n\n // clean up child scopes\n destroyTipElement();\n }\n }\n\n $tooltip.toggle = function() {\n $tooltip.$isShown ? $tooltip.leave() : $tooltip.enter();\n };\n\n $tooltip.focus = function() {\n tipElement[0].focus();\n };\n\n $tooltip.setEnabled = function(isEnabled) {\n options.bsEnabled = isEnabled;\n };\n\n $tooltip.setViewport = function(viewport) {\n options.viewport = viewport;\n };\n\n // Protected methods\n\n $tooltip.$applyPlacement = function() {\n if(!tipElement) return;\n\n // Determine if we're doing an auto or normal placement\n var placement = options.placement,\n autoToken = /\\s?auto?\\s?/i,\n autoPlace = autoToken.test(placement);\n\n if (autoPlace) {\n placement = placement.replace(autoToken, '') || defaults.placement;\n }\n\n // Need to add the position class before we get\n // the offsets\n tipElement.addClass(options.placement);\n\n // Get the position of the target element\n // and the height and width of the tooltip so we can center it.\n var elementPosition = getPosition(),\n tipWidth = tipElement.prop('offsetWidth'),\n tipHeight = tipElement.prop('offsetHeight');\n\n // Refresh viewport position\n $tooltip.$viewport = options.viewport && findElement(options.viewport.selector || options.viewport);\n\n // If we're auto placing, we need to check the positioning\n if (autoPlace) {\n var originalPlacement = placement;\n var viewportPosition = getPosition($tooltip.$viewport);\n\n // Determine if the vertical placement\n if (originalPlacement.indexOf('bottom') >= 0 && elementPosition.bottom + tipHeight > viewportPosition.bottom) {\n placement = originalPlacement.replace('bottom', 'top');\n } else if (originalPlacement.indexOf('top') >= 0 && elementPosition.top - tipHeight < viewportPosition.top) {\n placement = originalPlacement.replace('top', 'bottom');\n }\n\n // Determine the horizontal placement\n // The exotic placements of left and right are opposite of the standard placements. Their arrows are put on the left/right\n // and flow in the opposite direction of their placement.\n if ((originalPlacement === 'right' || originalPlacement === 'bottom-left' || originalPlacement === 'top-left') &&\n elementPosition.right + tipWidth > viewportPosition.width) {\n\n placement = originalPlacement === 'right' ? 'left' : placement.replace('left', 'right');\n } else if ((originalPlacement === 'left' || originalPlacement === 'bottom-right' || originalPlacement === 'top-right') &&\n elementPosition.left - tipWidth < viewportPosition.left) {\n\n placement = originalPlacement === 'left' ? 'right' : placement.replace('right', 'left');\n }\n\n tipElement.removeClass(originalPlacement).addClass(placement);\n }\n\n // Get the tooltip's top and left coordinates to center it with this directive.\n var tipPosition = getCalculatedOffset(placement, elementPosition, tipWidth, tipHeight);\n applyPlacement(tipPosition, placement);\n };\n\n $tooltip.$onKeyUp = function(evt) {\n if (evt.which === 27 && $tooltip.$isShown) {\n $tooltip.hide();\n evt.stopPropagation();\n }\n };\n\n $tooltip.$onFocusKeyUp = function(evt) {\n if (evt.which === 27) {\n element[0].blur();\n evt.stopPropagation();\n }\n };\n\n $tooltip.$onFocusElementMouseDown = function(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n // Some browsers do not auto-focus buttons (eg. Safari)\n $tooltip.$isShown ? element[0].blur() : element[0].focus();\n };\n\n // bind/unbind events\n function bindTriggerEvents() {\n var triggers = options.trigger.split(' ');\n angular.forEach(triggers, function(trigger) {\n if(trigger === 'click') {\n element.on('click', $tooltip.toggle);\n } else if(trigger !== 'manual') {\n element.on(trigger === 'hover' ? 'mouseenter' : 'focus', $tooltip.enter);\n element.on(trigger === 'hover' ? 'mouseleave' : 'blur', $tooltip.leave);\n nodeName === 'button' && trigger !== 'hover' && element.on(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);\n }\n });\n }\n\n function unbindTriggerEvents() {\n var triggers = options.trigger.split(' ');\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i];\n if(trigger === 'click') {\n element.off('click', $tooltip.toggle);\n } else if(trigger !== 'manual') {\n element.off(trigger === 'hover' ? 'mouseenter' : 'focus', $tooltip.enter);\n element.off(trigger === 'hover' ? 'mouseleave' : 'blur', $tooltip.leave);\n nodeName === 'button' && trigger !== 'hover' && element.off(isTouch ? 'touchstart' : 'mousedown', $tooltip.$onFocusElementMouseDown);\n }\n }\n }\n\n function bindKeyboardEvents() {\n if(options.trigger !== 'focus') {\n tipElement.on('keyup', $tooltip.$onKeyUp);\n } else {\n element.on('keyup', $tooltip.$onFocusKeyUp);\n }\n }\n\n function unbindKeyboardEvents() {\n if(options.trigger !== 'focus') {\n tipElement.off('keyup', $tooltip.$onKeyUp);\n } else {\n element.off('keyup', $tooltip.$onFocusKeyUp);\n }\n }\n\n var _autoCloseEventsBinded = false;\n function bindAutoCloseEvents() {\n // use timeout to hookup the events to prevent\n // event bubbling from being processed imediately.\n $timeout(function() {\n // Stop propagation when clicking inside tooltip\n tipElement.on('click', stopEventPropagation);\n\n // Hide when clicking outside tooltip\n $body.on('click', $tooltip.hide);\n\n _autoCloseEventsBinded = true;\n }, 0, false);\n }\n\n function unbindAutoCloseEvents() {\n if (_autoCloseEventsBinded) {\n tipElement.off('click', stopEventPropagation);\n $body.off('click', $tooltip.hide);\n _autoCloseEventsBinded = false;\n }\n }\n\n function stopEventPropagation(event) {\n event.stopPropagation();\n }\n\n // Private methods\n\n function getPosition($element) {\n $element = $element || (options.target || element);\n\n var el = $element[0],\n isBody = el.tagName === 'BODY';\n\n var elRect = el.getBoundingClientRect();\n var rect = {};\n\n // IE8 has issues with angular.extend and using elRect directly.\n // By coping the values of elRect into a new object, we can continue to use extend\n for (var p in elRect) {\n // DO NOT use hasOwnProperty when inspecting the return of getBoundingClientRect.\n rect[p] = elRect[p];\n }\n\n if (rect.width === null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n rect = angular.extend({}, rect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top });\n }\n var elOffset = isBody ? { top: 0, left: 0 } : dimensions.offset(el),\n scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.prop('scrollTop') || 0 },\n outerDims = isBody ? { width: document.documentElement.clientWidth, height: $window.innerHeight } : null;\n\n return angular.extend({}, rect, scroll, outerDims, elOffset);\n }\n\n function getCalculatedOffset(placement, position, actualWidth, actualHeight) {\n var offset;\n var split = placement.split('-');\n\n switch (split[0]) {\n case 'right':\n offset = {\n top: position.top + position.height / 2 - actualHeight / 2,\n left: position.left + position.width\n };\n break;\n case 'bottom':\n offset = {\n top: position.top + position.height,\n left: position.left + position.width / 2 - actualWidth / 2\n };\n break;\n case 'left':\n offset = {\n top: position.top + position.height / 2 - actualHeight / 2,\n left: position.left - actualWidth\n };\n break;\n default:\n offset = {\n top: position.top - actualHeight,\n left: position.left + position.width / 2 - actualWidth / 2\n };\n break;\n }\n\n if(!split[1]) {\n return offset;\n }\n\n // Add support for corners @todo css\n if(split[0] === 'top' || split[0] === 'bottom') {\n switch (split[1]) {\n case 'left':\n offset.left = position.left;\n break;\n case 'right':\n offset.left = position.left + position.width - actualWidth;\n }\n } else if(split[0] === 'left' || split[0] === 'right') {\n switch (split[1]) {\n case 'top':\n offset.top = position.top - actualHeight;\n break;\n case 'bottom':\n offset.top = position.top + position.height;\n }\n }\n\n return offset;\n }\n\n function applyPlacement(offset, placement) {\n var tip = tipElement[0],\n width = tip.offsetWidth,\n height = tip.offsetHeight;\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt(dimensions.css(tip, 'margin-top'), 10),\n marginLeft = parseInt(dimensions.css(tip, 'margin-left'), 10);\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0;\n if (isNaN(marginLeft)) marginLeft = 0;\n\n offset.top = offset.top + marginTop;\n offset.left = offset.left + marginLeft;\n\n // dimensions setOffset doesn't round pixel values\n // so we use setOffset directly with our own function\n dimensions.setOffset(tip, angular.extend({\n using: function (props) {\n tipElement.css({\n top: Math.round(props.top) + 'px',\n left: Math.round(props.left) + 'px',\n right: ''\n });\n }\n }, offset), 0);\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = tip.offsetWidth,\n actualHeight = tip.offsetHeight;\n\n if (placement === 'top' && actualHeight !== height) {\n offset.top = offset.top + height - actualHeight;\n }\n\n // If it's an exotic placement, exit now instead of\n // applying a delta and changing the arrow\n if (/top-left|top-right|bottom-left|bottom-right/.test(placement)) return;\n\n var delta = getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight);\n\n if (delta.left) {\n offset.left += delta.left;\n } else {\n offset.top += delta.top;\n }\n\n dimensions.setOffset(tip, offset);\n\n if (/top|right|bottom|left/.test(placement)) {\n var isVertical = /top|bottom/.test(placement),\n arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight,\n arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight';\n\n replaceArrow(arrowDelta, tip[arrowOffsetPosition], isVertical);\n }\n }\n\n // @source https://github.com/twbs/bootstrap/blob/v3.3.5/js/tooltip.js#L380\n function getViewportAdjustedDelta(placement, position, actualWidth, actualHeight) {\n var delta = {top: 0, left: 0};\n if (!$tooltip.$viewport) return delta;\n\n var viewportPadding = options.viewport && options.viewport.padding || 0;\n var viewportDimensions = getPosition($tooltip.$viewport);\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = position.top - viewportPadding - viewportDimensions.scroll;\n var bottomEdgeOffset = position.top + viewportPadding - viewportDimensions.scroll + actualHeight;\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset;\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset;\n }\n } else {\n var leftEdgeOffset = position.left - viewportPadding;\n var rightEdgeOffset = position.left + viewportPadding + actualWidth;\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset;\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset;\n }\n }\n\n return delta;\n }\n\n function replaceArrow(delta, dimension, isHorizontal) {\n var $arrow = findElement('.tooltip-arrow, .arrow', tipElement[0]);\n\n $arrow.css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isHorizontal ? 'top' : 'left', '');\n }\n\n function destroyTipElement() {\n // Cancel pending callbacks\n clearTimeout(timeout);\n\n if($tooltip.$isShown && tipElement !== null) {\n if(options.autoClose) {\n unbindAutoCloseEvents();\n }\n\n if(options.keyboard) {\n unbindKeyboardEvents();\n }\n }\n\n if(tipScope) {\n tipScope.$destroy();\n tipScope = null;\n }\n\n if(tipElement) {\n tipElement.remove();\n tipElement = $tooltip.$element = null;\n }\n }\n\n return $tooltip;\n\n }\n\n // Helper functions\n\n function safeDigest(scope) {\n scope.$$phase || (scope.$root && scope.$root.$$phase) || scope.$digest();\n }\n\n function findElement(query, element) {\n return angular.element((element || document).querySelectorAll(query));\n }\n\n var fetchPromises = {};\n function fetchTemplate(template) {\n if(fetchPromises[template]) return fetchPromises[template];\n return (fetchPromises[template] = $http.get(template, {cache: $templateCache}).then(function(res) {\n return res.data;\n }));\n }\n\n return TooltipFactory;\n\n };\n\n })\n\n .directive('bsTooltip', function($window, $location, $sce, $tooltip, $$rAF) {\n\n return {\n restrict: 'EAC',\n scope: true,\n link: function postLink(scope, element, attr, transclusion) {\n\n // Directive options\n var options = {scope: scope};\n angular.forEach(['template', 'templateUrl', 'controller', 'controllerAs', 'contentTemplate', 'placement', 'container', 'delay', 'trigger', 'html', 'animation', 'backdropAnimation', 'type', 'customClass', 'id'], function(key) {\n if(angular.isDefined(attr[key])) options[key] = attr[key];\n });\n\n // use string regex match boolean attr falsy values, leave truthy values be\n var falseValueRegExp = /^(false|0|)$/i;\n angular.forEach(['html', 'container'], function(key) {\n if(angular.isDefined(attr[key]) && falseValueRegExp.test(attr[key]))\n options[key] = false;\n });\n\n // should not parse target attribute (anchor tag), only data-target #1454\n var dataTarget = element.attr('data-target');\n if(angular.isDefined(dataTarget)) {\n if(falseValueRegExp.test(dataTarget))\n options.target = false;\n else\n options.target = dataTarget;\n }\n\n // overwrite inherited title value when no value specified\n // fix for angular 1.3.1 531a8de72c439d8ddd064874bf364c00cedabb11\n if (!scope.hasOwnProperty('title')){\n scope.title = '';\n }\n\n // Observe scope attributes for change\n attr.$observe('title', function(newValue) {\n if (angular.isDefined(newValue) || !scope.hasOwnProperty('title')) {\n var oldValue = scope.title;\n scope.title = $sce.trustAsHtml(newValue);\n angular.isDefined(oldValue) && $$rAF(function() {\n tooltip && tooltip.$applyPlacement();\n });\n }\n });\n\n // Support scope as an object\n attr.bsTooltip && scope.$watch(attr.bsTooltip, function(newValue, oldValue) {\n if(angular.isObject(newValue)) {\n angular.extend(scope, newValue);\n } else {\n scope.title = newValue;\n }\n angular.isDefined(oldValue) && $$rAF(function() {\n tooltip && tooltip.$applyPlacement();\n });\n }, true);\n\n // Visibility binding support\n attr.bsShow && scope.$watch(attr.bsShow, function(newValue, oldValue) {\n if(!tooltip || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|,?(tooltip),?/i);\n newValue === true ? tooltip.show() : tooltip.hide();\n });\n\n // Enabled binding support\n attr.bsEnabled && scope.$watch(attr.bsEnabled, function(newValue, oldValue) {\n // console.warn('scope.$watch(%s)', attr.bsEnabled, newValue, oldValue);\n if(!tooltip || !angular.isDefined(newValue)) return;\n if(angular.isString(newValue)) newValue = !!newValue.match(/true|1|,?(tooltip),?/i);\n newValue === false ? tooltip.setEnabled(false) : tooltip.setEnabled(true);\n });\n\n // Viewport support\n attr.viewport && scope.$watch(attr.viewport, function (newValue) {\n if(!tooltip || !angular.isDefined(newValue)) return;\n tooltip.setViewport(newValue);\n });\n\n // Initialize popover\n var tooltip = $tooltip(element, options);\n\n // Garbage collection\n scope.$on('$destroy', function() {\n if(tooltip) tooltip.destroy();\n options = null;\n tooltip = null;\n });\n\n }\n };\n\n });\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/public/lib/js/angular-strap.tpl.min.js b/public/lib/js/angular-strap.tpl.min.js index 9170ba70..8b97e418 100644 --- a/public/lib/js/angular-strap.tpl.min.js +++ b/public/lib/js/angular-strap.tpl.min.js @@ -1,8 +1,8 @@ /** * angular-strap - * @version v2.3.0 - 2015-07-12 + * @version v2.3.1 - 2015-07-19 * @link http://mgcrea.github.io/angular-strap * @author Olivier Louvignes (https://github.com/mgcrea) * @license MIT License, http://www.opensource.org/licenses/MIT */ -!function(t,e,n){'use strict';angular.module('mgcrea.ngStrap.alert').run(['$templateCache',function(t){t.put('alert/alert.tpl.html','
 
')}]),angular.module('mgcrea.ngStrap.aside').run(['$templateCache',function(t){t.put('aside/aside.tpl.html','')}]),angular.module('mgcrea.ngStrap.datepicker').run(['$templateCache',function(t){t.put('datepicker/datepicker.tpl.html','')}]),angular.module('mgcrea.ngStrap.dropdown').run(['$templateCache',function(t){t.put('dropdown/dropdown.tpl.html','')}]),angular.module('mgcrea.ngStrap.modal').run(['$templateCache',function(t){t.put('modal/modal.tpl.html','')}]),angular.module('mgcrea.ngStrap.select').run(['$templateCache',function(t){t.put('select/select.tpl.html','')}]),angular.module('mgcrea.ngStrap.popover').run(['$templateCache',function(t){t.put('popover/popover.tpl.html','

')}]),angular.module('mgcrea.ngStrap.tab').run(['$templateCache',function(t){t.put('tab/tab.tpl.html','
')}]),angular.module('mgcrea.ngStrap.tooltip').run(['$templateCache',function(t){t.put('tooltip/tooltip.tpl.html','
')}]),angular.module('mgcrea.ngStrap.timepicker').run(['$templateCache',function(t){t.put('timepicker/timepicker.tpl.html','')}]),angular.module('mgcrea.ngStrap.typeahead').run(['$templateCache',function(t){t.put('typeahead/typeahead.tpl.html','')}])}(window,document); \ No newline at end of file +!function(t,e,n){'use strict';angular.module('mgcrea.ngStrap.alert').run(['$templateCache',function(t){t.put('alert/alert.tpl.html','
 
')}]),angular.module('mgcrea.ngStrap.aside').run(['$templateCache',function(t){t.put('aside/aside.tpl.html','')}]),angular.module('mgcrea.ngStrap.datepicker').run(['$templateCache',function(t){t.put('datepicker/datepicker.tpl.html','')}]),angular.module('mgcrea.ngStrap.dropdown').run(['$templateCache',function(t){t.put('dropdown/dropdown.tpl.html','')}]),angular.module('mgcrea.ngStrap.modal').run(['$templateCache',function(t){t.put('modal/modal.tpl.html','')}]),angular.module('mgcrea.ngStrap.popover').run(['$templateCache',function(t){t.put('popover/popover.tpl.html','

')}]),angular.module('mgcrea.ngStrap.select').run(['$templateCache',function(t){t.put('select/select.tpl.html','')}]),angular.module('mgcrea.ngStrap.timepicker').run(['$templateCache',function(t){t.put('timepicker/timepicker.tpl.html','')}]),angular.module('mgcrea.ngStrap.tab').run(['$templateCache',function(t){t.put('tab/tab.tpl.html','
')}]),angular.module('mgcrea.ngStrap.typeahead').run(['$templateCache',function(t){t.put('typeahead/typeahead.tpl.html','')}]),angular.module('mgcrea.ngStrap.tooltip').run(['$templateCache',function(t){t.put('tooltip/tooltip.tpl.html','
')}])}(window,document); \ No newline at end of file diff --git a/public/lib/js/angular.min.js b/public/lib/js/angular.min.js index ba809740..0cf4b172 100644 --- a/public/lib/js/angular.min.js +++ b/public/lib/js/angular.min.js @@ -1,252 +1,293 @@ /* - AngularJS v1.3.16 - (c) 2010-2014 Google, Inc. http://angularjs.org + AngularJS v1.4.5 + (c) 2010-2015 Google, Inc. http://angularjs.org License: MIT */ -(function(T,V,s){'use strict';function F(b){return function(){var a=arguments[0],c;c="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.3.16/"+(b?b+"/":"")+a;for(a=1;a").append(b).html();try{return b[0].nodeType===ab?L(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+L(b)})}catch(d){return L(c)}}function uc(b){try{return decodeURIComponent(b)}catch(a){}} -function vc(b){var a={},c,d;q((b||"").split("&"),function(b){b&&(c=b.replace(/\+/g,"%20").split("="),d=uc(c[0]),y(d)&&(b=y(c[1])?uc(c[1]):!0,wc.call(a,d)?w(a[d])?a[d].push(b):a[d]=[a[d],b]:a[d]=b))});return a}function Qb(b){var a=[];q(b,function(b,d){w(b)?q(b,function(b){a.push(Ca(d,!0)+(!0===b?"":"="+Ca(b,!0)))}):a.push(Ca(d,!0)+(!0===b?"":"="+Ca(b,!0)))});return a.length?a.join("&"):""}function sb(b){return Ca(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function Ca(b,a){return encodeURIComponent(b).replace(/%40/gi, -"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,a?"%20":"+")}function Nd(b,a){var c,d,e=tb.length;b=z(b);for(d=0;d/,">"));}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);c.debugInfoEnabled&&a.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);a.unshift("ng");d=bb(a,c.strictDi);d.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector", -d);c(b)(a)})}]);return d},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;T&&e.test(T.name)&&(c.debugInfoEnabled=!0,T.name=T.name.replace(e,""));if(T&&!f.test(T.name))return d();T.name=T.name.replace(f,"");ba.resumeBootstrap=function(b){q(b,function(b){a.push(b)});return d()};E(ba.resumeDeferredBootstrap)&&ba.resumeDeferredBootstrap()}function Pd(){T.name="NG_ENABLE_DEBUG_INFO!"+T.name;T.location.reload()}function Qd(b){b=ba.element(b).injector();if(!b)throw Ja("test");return b.get("$$testability")} -function yc(b,a){a=a||"_";return b.replace(Rd,function(b,d){return(d?a:"")+b.toLowerCase()})}function Sd(){var b;zc||((pa=T.jQuery)&&pa.fn.on?(z=pa,x(pa.fn,{scope:Ka.scope,isolateScope:Ka.isolateScope,controller:Ka.controller,injector:Ka.injector,inheritedData:Ka.inheritedData}),b=pa.cleanData,pa.cleanData=function(a){var c;if(Rb)Rb=!1;else for(var d=0,e;null!=(e=a[d]);d++)(c=pa._data(e,"events"))&&c.$destroy&&pa(e).triggerHandler("$destroy");b(a)}):z=R,ba.element=z,zc=!0)}function Sb(b,a,c){if(!b)throw Ja("areq", -a||"?",c||"required");return b}function La(b,a,c){c&&w(b)&&(b=b[b.length-1]);Sb(E(b),a,"not a function, got "+(b&&"object"===typeof b?b.constructor.name||"Object":typeof b));return b}function Ma(b,a){if("hasOwnProperty"===b)throw Ja("badname",a);}function Ac(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,g=0;g")+d[2];for(d=d[0];d--;)c=c.lastChild;f=Ya(f,c.childNodes);c=e.firstChild;c.textContent=""}else f.push(a.createTextNode(b));e.textContent="";e.innerHTML="";q(f,function(a){e.appendChild(a)}); -return e}function R(b){if(b instanceof R)return b;var a;O(b)&&(b=U(b),a=!0);if(!(this instanceof R)){if(a&&"<"!=b.charAt(0))throw Ub("nosel");return new R(b)}if(a){a=V;var c;b=(c=mf.exec(b))?[a.createElement(c[1])]:(c=Kc(b,a))?c.childNodes:[]}Lc(this,b)}function Vb(b){return b.cloneNode(!0)}function xb(b,a){a||yb(b);if(b.querySelectorAll)for(var c=b.querySelectorAll("*"),d=0,e=c.length;d 4096 bytes)!"));else{if(r.cookie!==y)for(y=r.cookie,d=y.split("; "),Fa={},f=0;fk&&this.remove(n.key),b},get:function(a){if(k").parent()[0])});var f=Y(a,b,a,c,d,e);N.$$addScopeClass(a);var g=null;return function(b,c,d){Sb(b,"scope");d=d||{};var e=d.parentBoundTranscludeFn,h=d.transcludeControllers;d=d.futureParentElement;e&&e.$$boundTransclude&&(e=e.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==sa(d)&&d.toString().match(/SVG/)?"svg":"html":"html");d="html"!==g?z(T(g,z("
").append(a).html())):c?Ka.clone.call(a):a;if(h)for(var l in h)d.data("$"+l+"Controller",h[l].instance);N.$$addScopeInfo(d, -b);c&&c(d,b);f&&f(b,d,d,e);return d}}function Y(a,b,c,d,e,f){function g(a,c,d,e){var f,l,k,n,m,v,u;if(p)for(u=Array(c.length),n=0;nK.priority)break;if(F=K.scope)K.templateUrl||(I(F)?(Oa("new/isolated scope",J||G,K,x),J=K):Oa("new/isolated scope",J,K,x)),G=G||K;ia=K.name;!K.templateUrl&&K.controller&&(F=K.controller,H=H||{},Oa("'"+ia+"' controller",H[ia],K,x),H[ia]=K);if(F=K.transclude)C=!0,K.$$tlb||(Oa("transclusion",Ga,K,x),Ga=K), -"element"==F?(A=!0,D=K.priority,F=x,x=e.$$element=z(V.createComment(" "+ia+": "+e[ia]+" ")),d=x[0],Q(g,Za.call(F,0),d),gb=N(F,f,D,h&&h.name,{nonTlbTranscludeDirective:Ga})):(F=z(Vb(d)).contents(),x.empty(),gb=N(F,f));if(K.template)if(Yb=!0,Oa("template",Y,K,x),Y=K,F=E(K.template)?K.template(x,e):K.template,F=Yc(F),K.replace){h=K;F=Tb.test(F)?Zc(T(K.templateNamespace,U(F))):[];d=F[0];if(1!=F.length||d.nodeType!==ma)throw da("tplrt",ia,"");Q(g,x,d);L={$attr:{}};F=W(d,[],L);var tf=a.splice(qa+1,a.length- -(qa+1));J&&hb(F);a=a.concat(F).concat(tf);Vc(e,L);L=a.length}else x.html(F);if(K.templateUrl)Yb=!0,Oa("template",Y,K,x),Y=K,K.replace&&(h=K),M=Xb(a.splice(qa,a.length-qa),x,e,g,C&&gb,k,n,{controllerDirectives:H,newIsolateScopeDirective:J,templateDirective:Y,nonTlbTranscludeDirective:Ga}),L=a.length;else if(K.compile)try{xa=K.compile(x,e,gb),E(xa)?B(null,xa,R,jb):xa&&B(xa.pre,xa.post,R,jb)}catch(ac){c(ac,ta(x))}K.terminal&&(M.terminal=!0,D=Math.max(D,K.priority))}M.scope=G&&!0===G.scope;M.transcludeOnThisElement= -C;M.elementTranscludeOnThisElement=A;M.templateOnThisElement=Yb;M.transclude=gb;m.hasElementTranscludeDirective=A;return M}function hb(a){for(var b=0,c=a.length;bm.priority)&&-1!=m.restrict.indexOf(f)&&(k&&(m=Pb(m,{$$start:k,$$end:l})),b.push(m),h=m)}catch(u){c(u)}}return h}function F(b){if(e.hasOwnProperty(b))for(var c= -a.get(b+"Directive"),d=0,f=c.length;d"+b+"";return c.childNodes[0].childNodes;default:return b}}function jb(a,b){if("srcdoc"==b)return B.HTML;var c=sa(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b))return B.RESOURCE_URL}function R(a,c,d,e,f){var g=jb(a,e);f=h[e]||f;var l=b(d,!0,g,f);if(l){if("multiple"===e&&"select"===sa(a))throw da("selmulti",ta(a));c.push({priority:100,compile:function(){return{pre:function(a,c,h){c=h.$$observers||(h.$$observers={});if(k.test(e))throw da("nodomevents"); -var n=h[e];n!==d&&(l=n&&b(n,!0,g,f),d=n);l&&(h[e]=l(a),(c[e]||(c[e]=[])).$$inter=!0,(h.$$observers&&h.$$observers[e].$$scope||a).$watch(l,function(a,b){"class"===e&&a!=b?h.$updateClass(a,b):h.$set(e,a)}))}}}})}}function Q(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g=a)return b;for(;a--;)8===b[a].nodeType&&uf.call(b,a,1);return b}function Ke(){var b= -{},a=!1,c=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(a,c){Ma(a,"controller");I(a)?x(b,a):b[a]=c};this.allowGlobals=function(){a=!0};this.$get=["$injector","$window",function(d,e){function f(a,b,c,d){if(!a||!I(a.$scope))throw F("$controller")("noscp",d,b);a.$scope[b]=c}return function(g,h,l,k){var m,r,n;l=!0===l;k&&O(k)&&(n=k);if(O(g)){k=g.match(c);if(!k)throw vf("ctrlfmt",g);r=k[1];n=n||k[3];g=b.hasOwnProperty(r)?b[r]:Ac(h.$scope,r,!0)||(a?Ac(e,r,!0):s);La(g,r,!0)}if(l)return l=(w(g)?g[g.length- -1]:g).prototype,m=Object.create(l||null),n&&f(h,n,m,r||g.name),x(function(){d.invoke(g,m,h,r);return m},{instance:m,identifier:n});m=d.instantiate(g,h,r);n&&f(h,n,m,r||g.name);return m}}]}function Le(){this.$get=["$window",function(b){return z(b.document)}]}function Me(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b,arguments)}}]}function bc(b,a){if(O(b)){var c=b.replace(wf,"").trim();if(c){var d=a("Content-Type");(d=d&&0===d.indexOf(ad))||(d=(d=c.match(xf))&&yf[d[0]].test(c)); -d&&(b=tc(c))}}return b}function bd(b){var a=ga(),c,d,e;if(!b)return a;q(b.split("\n"),function(b){e=b.indexOf(":");c=L(U(b.substr(0,e)));d=U(b.substr(e+1));c&&(a[c]=a[c]?a[c]+", "+d:d)});return a}function cd(b){var a=I(b)?b:s;return function(c){a||(a=bd(b));return c?(c=a[L(c)],void 0===c&&(c=null),c):a}}function dd(b,a,c,d){if(E(d))return d(b,a,c);q(d,function(d){b=d(b,a,c)});return b}function Pe(){var b=this.defaults={transformResponse:[bc],transformRequest:[function(a){return I(a)&&"[object File]"!== -Aa.call(a)&&"[object Blob]"!==Aa.call(a)&&"[object FormData]"!==Aa.call(a)?$a(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:oa(cc),put:oa(cc),patch:oa(cc)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},a=!1;this.useApplyAsync=function(b){return y(b)?(a=!!b,this):a};var c=this.interceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(d,e,f,g,h,l){function k(a){function c(a){var b=x({},a);b.data=a.data?dd(a.data, -a.headers,a.status,e.transformResponse):a.data;a=a.status;return 200<=a&&300>a?b:h.reject(b)}function d(a){var b,c={};q(a,function(a,d){E(a)?(b=a(),null!=b&&(c[d]=b)):c[d]=a});return c}if(!ba.isObject(a))throw F("$http")("badreq",a);var e=x({method:"get",transformRequest:b.transformRequest,transformResponse:b.transformResponse},a);e.headers=function(a){var c=b.headers,e=x({},a.headers),f,g,c=x({},c.common,c[L(a.method)]);a:for(f in c){a=L(f);for(g in e)if(L(g)===a)continue a;e[f]=c[f]}return d(e)}(a); -e.method=vb(e.method);var f=[function(a){var d=a.headers,e=dd(a.data,cd(d),s,a.transformRequest);C(e)&&q(d,function(a,b){"content-type"===L(b)&&delete d[b]});C(a.withCredentials)&&!C(b.withCredentials)&&(a.withCredentials=b.withCredentials);return m(a,e).then(c,c)},s],g=h.when(e);for(q(u,function(a){(a.request||a.requestError)&&f.unshift(a.request,a.requestError);(a.response||a.responseError)&&f.push(a.response,a.responseError)});f.length;){a=f.shift();var l=f.shift(),g=g.then(a,l)}g.success=function(a){La(a, -"fn");g.then(function(b){a(b.data,b.status,b.headers,e)});return g};g.error=function(a){La(a,"fn");g.then(null,function(b){a(b.data,b.status,b.headers,e)});return g};return g}function m(c,f){function l(b,c,d,e){function f(){m(c,b,d,e)}D&&(200<=b&&300>b?D.put(q,[b,c,bd(d),e]):D.remove(q));a?g.$applyAsync(f):(f(),g.$$phase||g.$apply())}function m(a,b,d,e){b=Math.max(b,0);(200<=b&&300>b?B.resolve:B.reject)({data:a,status:b,headers:cd(d),config:c,statusText:e})}function u(a){m(a.data,a.status,oa(a.headers()), -a.statusText)}function J(){var a=k.pendingRequests.indexOf(c);-1!==a&&k.pendingRequests.splice(a,1)}var B=h.defer(),M=B.promise,D,G,N=c.headers,q=r(c.url,c.params);k.pendingRequests.push(c);M.then(J,J);!c.cache&&!b.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(D=I(c.cache)?c.cache:I(b.cache)?b.cache:n);D&&(G=D.get(q),y(G)?G&&E(G.then)?G.then(u,u):w(G)?m(G[1],G[0],oa(G[2]),G[3]):m(G,200,{},"OK"):D.put(q,M));C(G)&&((G=ed(c.url)?e.cookies()[c.xsrfCookieName||b.xsrfCookieName]:s)&&(N[c.xsrfHeaderName|| -b.xsrfHeaderName]=G),d(c.method,q,f,l,N,c.timeout,c.withCredentials,c.responseType));return M}function r(a,b){if(!b)return a;var c=[];Jd(b,function(a,b){null===a||C(a)||(w(a)||(a=[a]),q(a,function(a){I(a)&&(a=ea(a)?a.toISOString():$a(a));c.push(Ca(b)+"="+Ca(a))}))});0=l&&(v.resolve(n),r(P.$$intervalId),delete f[P.$$intervalId]);u||b.$apply()},h);f[P.$$intervalId]=v;return P}var f={}; -e.cancel=function(b){return b&&b.$$intervalId in f?(f[b.$$intervalId].reject("canceled"),a.clearInterval(b.$$intervalId),delete f[b.$$intervalId],!0):!1};return e}]}function Wd(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"\u00a4",posSuf:"",negPre:"(\u00a4",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January February March April May June July August September October November December".split(" "), -SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a",ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"]},pluralCat:function(b){return 1===b?"one":"other"}}}} -function ec(b){b=b.split("/");for(var a=b.length;a--;)b[a]=sb(b[a]);return b.join("/")}function fd(b,a){var c=ya(b);a.$$protocol=c.protocol;a.$$host=c.hostname;a.$$port=aa(c.port)||Bf[c.protocol]||null}function gd(b,a){var c="/"!==b.charAt(0);c&&(b="/"+b);var d=ya(b);a.$$path=decodeURIComponent(c&&"/"===d.pathname.charAt(0)?d.pathname.substring(1):d.pathname);a.$$search=vc(d.search);a.$$hash=decodeURIComponent(d.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function wa(b,a){if(0=== -a.indexOf(b))return a.substr(b.length)}function Ea(b){var a=b.indexOf("#");return-1==a?b:b.substr(0,a)}function Gb(b){return b.replace(/(#.+)|#$/,"$1")}function fc(b){return b.substr(0,Ea(b).lastIndexOf("/")+1)}function gc(b,a){this.$$html5=!0;a=a||"";var c=fc(b);fd(b,this);this.$$parse=function(a){var b=wa(c,a);if(!O(b))throw Hb("ipthprfx",a,c);gd(b,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var a=Qb(this.$$search),b=this.$$hash?"#"+sb(this.$$hash):"";this.$$url= -ec(this.$$path)+(a?"?"+a:"")+b;this.$$absUrl=c+this.$$url.substr(1)};this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;(f=wa(b,d))!==s?(g=f,g=(f=wa(a,f))!==s?c+(wa("/",f)||f):b+g):(f=wa(c,d))!==s?g=c+f:c==d+"/"&&(g=c);g&&this.$$parse(g);return!!g}}function hc(b,a){var c=fc(b);fd(b,this);this.$$parse=function(d){d=wa(b,d)||wa(c,d);var e;"#"===d.charAt(0)?(e=wa(a,d),C(e)&&(e=d)):e=this.$$html5?d:"";gd(e,this);d=this.$$path;var f=/^\/[A-Z]:(\/.*)/;0===e.indexOf(b)&& -(e=e.replace(b,""));f.exec(e)||(d=(e=f.exec(d))?e[1]:d);this.$$path=d;this.$$compose()};this.$$compose=function(){var c=Qb(this.$$search),e=this.$$hash?"#"+sb(this.$$hash):"";this.$$url=ec(this.$$path)+(c?"?"+c:"")+e;this.$$absUrl=b+(this.$$url?a+this.$$url:"")};this.$$parseLinkUrl=function(a,c){return Ea(b)==Ea(a)?(this.$$parse(a),!0):!1}}function hd(b,a){this.$$html5=!0;hc.apply(this,arguments);var c=fc(b);this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f, -g;b==Ea(d)?f=d:(g=wa(c,d))?f=b+a+g:c===d+"/"&&(f=c);f&&this.$$parse(f);return!!f};this.$$compose=function(){var c=Qb(this.$$search),e=this.$$hash?"#"+sb(this.$$hash):"";this.$$url=ec(this.$$path)+(c?"?"+c:"")+e;this.$$absUrl=b+a+this.$$url}}function Ib(b){return function(){return this[b]}}function id(b,a){return function(c){if(C(c))return this[b];this[b]=a(c);this.$$compose();return this}}function Re(){var b="",a={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(a){return y(a)? -(b=a,this):b};this.html5Mode=function(b){return Wa(b)?(a.enabled=b,this):I(b)?(Wa(b.enabled)&&(a.enabled=b.enabled),Wa(b.requireBase)&&(a.requireBase=b.requireBase),Wa(b.rewriteLinks)&&(a.rewriteLinks=b.rewriteLinks),this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(c,d,e,f,g){function h(a,b,c){var e=k.url(),f=k.$$state;try{d.url(a,b,c),k.$$state=d.state()}catch(g){throw k.url(e),k.$$state=f,g;}}function l(a,b){c.$broadcast("$locationChangeSuccess",k.absUrl(), -a,k.$$state,b)}var k,m;m=d.baseHref();var r=d.url(),n;if(a.enabled){if(!m&&a.requireBase)throw Hb("nobase");n=r.substring(0,r.indexOf("/",r.indexOf("//")+2))+(m||"/");m=e.history?gc:hd}else n=Ea(r),m=hc;k=new m(n,"#"+b);k.$$parseLinkUrl(r,r);k.$$state=d.state();var u=/^\s*(javascript|mailto):/i;f.on("click",function(b){if(a.rewriteLinks&&!b.ctrlKey&&!b.metaKey&&!b.shiftKey&&2!=b.which&&2!=b.button){for(var e=z(b.target);"a"!==sa(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var h=e.prop("href"), -l=e.attr("href")||e.attr("xlink:href");I(h)&&"[object SVGAnimatedString]"===h.toString()&&(h=ya(h.animVal).href);u.test(h)||!h||e.attr("target")||b.isDefaultPrevented()||!k.$$parseLinkUrl(h,l)||(b.preventDefault(),k.absUrl()!=d.url()&&(c.$apply(),g.angular["ff-684208-preventDefault"]=!0))}});Gb(k.absUrl())!=Gb(r)&&d.url(k.absUrl(),!0);var v=!0;d.onUrlChange(function(a,b){c.$evalAsync(function(){var d=k.absUrl(),e=k.$$state,f;k.$$parse(a);k.$$state=b;f=c.$broadcast("$locationChangeStart",a,d,b,e).defaultPrevented; -k.absUrl()===a&&(f?(k.$$parse(d),k.$$state=e,h(d,!1,e)):(v=!1,l(d,e)))});c.$$phase||c.$digest()});c.$watch(function(){var a=Gb(d.url()),b=Gb(k.absUrl()),f=d.state(),g=k.$$replace,n=a!==b||k.$$html5&&e.history&&f!==k.$$state;if(v||n)v=!1,c.$evalAsync(function(){var b=k.absUrl(),d=c.$broadcast("$locationChangeStart",b,a,k.$$state,f).defaultPrevented;k.absUrl()===b&&(d?(k.$$parse(a),k.$$state=f):(n&&h(b,g,f===k.$$state?null:k.$$state),l(a,f)))});k.$$replace=!1});return k}]}function Se(){var b=!0,a=this; -this.debugEnabled=function(a){return y(a)?(b=a,this):b};this.$get=["$window",function(c){function d(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=c.console||{},e=b[a]||b.log||A;a=!1;try{a=!!e.apply}catch(l){}return a?function(){var a=[];q(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"), -info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function ra(b,a){if("__defineGetter__"===b||"__defineSetter__"===b||"__lookupGetter__"===b||"__lookupSetter__"===b||"__proto__"===b)throw ja("isecfld",a);return b}function ka(b,a){if(b){if(b.constructor===b)throw ja("isecfn",a);if(b.window===b)throw ja("isecwindow",a);if(b.children&&(b.nodeName||b.prop&&b.attr&&b.find))throw ja("isecdom",a);if(b===Object)throw ja("isecobj", -a);}return b}function ic(b){return b.constant}function kb(b,a,c,d,e){ka(b,e);ka(a,e);c=c.split(".");for(var f,g=0;1h?jd(g[0],g[1],g[2],g[3],g[4],c,d):function(a,b){var e=0,f;do f=jd(g[e++],g[e++],g[e++],g[e++],g[e++],c,d)(a,b),b=s,a=f;while(e< -h);return f};else{var l="";d&&(l+="s = eso(s, fe);\nl = eso(l, fe);\n");var k=d;q(g,function(a,b){ra(a,c);var e=(b?"s":'((l&&l.hasOwnProperty("'+a+'"))?l:s)')+"."+a;if(d||Pa(a))e="eso("+e+", fe)",k=!0;l+="if(s == null) return undefined;\ns="+e+";\n"});l+="return s;";a=new Function("s","l","eso","fe",l);a.toString=ca(l);k&&(a=Cf(a,c));f=a}f.sharedGetter=!0;f.assign=function(a,c,d){return kb(a,d,b,c,b)};return e[b]=f}function jc(b){return E(b.valueOf)?b.valueOf():Gf.call(b)}function Te(){var b=ga(), -a=ga();this.$get=["$filter","$sniffer",function(c,d){function e(a){var b=a;a.sharedGetter&&(b=function(b,c){return a(b,c)},b.literal=a.literal,b.constant=a.constant,b.assign=a.assign);return b}function f(a,b){for(var c=0,d=a.length;c=this.promise.$$state.status&&d&&d.length&&b(function(){for(var b,e,f=0,g=d.length;fa)for(b in k++,f)e.hasOwnProperty(b)||(u--,delete f[b])}else f!==e&&(f=e,k++);return k}}c.$stateful=!0;var d=this,e,f,g,l=1q&&(P=4-q,S[P]||(S[P]=[]),S[P].push({msg:E(b.exp)?"fn: "+(b.exp.name||b.exp.toString()):b.exp,newVal:f,oldVal:h}));else if(b===d){n=!1;break a}}catch(F){g(F)}if(!(k=s.$$childHead||s!==this&&s.$$nextSibling))for(;s!==this&&!(k=s.$$nextSibling);)s=s.$parent}while(s=k);if((n||p.length)&&!q--)throw t.$$phase=null,c("infdig",a,S);}while(n||p.length);for(t.$$phase=null;H.length;)try{H.shift()()}catch(x){g(x)}}, -$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;if(this!==t){for(var b in this.$$listenerCount)n(this,this.$$listenerCount[b],b);a.$$childHead==this&&(a.$$childHead=this.$$nextSibling);a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync= -this.$applyAsync=A;this.$on=this.$watch=this.$watchGroup=function(){return A};this.$$listeners={};this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}}},$eval:function(a,b){return h(a)(this,b)},$evalAsync:function(a,b){t.$$phase||p.length||l.defer(function(){p.length&&t.$digest()});p.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){H.push(a)},$apply:function(a){try{return r("$apply"),this.$eval(a)}catch(b){g(b)}finally{t.$$phase= -null;try{t.$digest()}catch(c){throw g(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&J.push(b);s()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,n(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,f=!1,h={name:a,targetScope:e,stopPropagation:function(){f=!0},preventDefault:function(){h.defaultPrevented= -!0},defaultPrevented:!1},l=Ya([h],arguments,1),k,m;do{d=e.$$listeners[a]||c;h.currentScope=e;k=0;for(m=d.length;kQa)throw za("iequirks");var d=oa(la);d.isEnabled=function(){return b};d.trustAs=c.trustAs;d.getTrusted=c.getTrusted;d.valueOf=c.valueOf;b||(d.trustAs=d.getTrusted=function(a,b){return b},d.valueOf=na);d.parseAs=function(b,c){var e=a(c);return e.literal&&e.constant?e:a(c,function(a){return d.getTrusted(b,a)})};var e=d.parseAs,f=d.getTrusted,g=d.trustAs;q(la,function(a,b){var c=L(b);d[eb("parse_as_"+c)]=function(b){return e(a,b)};d[eb("get_trusted_"+c)]=function(b){return f(a,b)};d[eb("trust_as_"+ -c)]=function(b){return g(a,b)}});return d}]}function Ze(){this.$get=["$window","$document",function(b,a){var c={},d=aa((/android (\d+)/.exec(L((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||{}).userAgent),f=a[0]||{},g,h=/^(Moz|webkit|ms)(?=[A-Z])/,l=f.body&&f.body.style,k=!1,m=!1;if(l){for(var r in l)if(k=h.exec(r)){g=k[0];g=g.substr(0,1).toUpperCase()+g.substr(1);break}g||(g="WebkitOpacity"in l&&"webkit");k=!!("transition"in l||g+"Transition"in l);m=!!("animation"in l||g+"Animation"in -l);!d||k&&m||(k=O(f.body.style.webkitTransition),m=O(f.body.style.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hasEvent:function(a){if("input"===a&&11>=Qa)return!1;if(C(c[a])){var b=f.createElement("div");c[a]="on"+a in b}return c[a]},csp:cb(),vendorPrefix:g,transitions:k,animations:m,android:d}}]}function af(){this.$get=["$templateCache","$http","$q",function(b,a,c){function d(e,f){d.totalPendingRequests++;var g=a.defaults&&a.defaults.transformResponse;w(g)?g=g.filter(function(a){return a!== -bc}):g===bc&&(g=null);return a.get(e,{cache:b,transformResponse:g})["finally"](function(){d.totalPendingRequests--}).then(function(a){return a.data},function(a){if(!f)throw da("tpload",e);return c.reject(a)})}d.totalPendingRequests=0;return d}]}function bf(){this.$get=["$rootScope","$browser","$location",function(b,a,c){return{findBindings:function(a,b,c){a=a.getElementsByClassName("ng-binding");var g=[];q(a,function(a){var d=ba.element(a).data("$binding");d&&q(d,function(d){c?(new RegExp("(^|\\s)"+ -ld(b)+"(\\s|\\||$)")).test(d)&&g.push(a):-1!=d.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,c){for(var g=["ng-","data-ng-","ng\\:"],h=0;hb;b=Math.abs(b);var g=b+"",h="",l=[],k=!1;if(-1!==g.indexOf("e")){var m=g.match(/([\d\.]+)e(-?)(\d+)/);m&&"-"==m[2]&&m[3]>e+1?b=0:(h=g,k=!0)}if(k)0b&&(h=b.toFixed(e),b=parseFloat(h));else{g=(g.split(td)[1]||"").length;C(e)&&(e=Math.min(Math.max(a.minFrac,g),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);var g=(""+b).split(td),k=g[0],g=g[1]||"",r=0,n=a.lgSize,u=a.gSize;if(k.length>=n+u)for(r=k.length-n,m=0;mb&&(d="-",b=-b);for(b=""+b;b.length-c)e+=c;0===e&&-12==c&&(e=12);return Jb(e,a,d)}}function Kb(b,a){return function(c,d){var e=c["get"+b](), -f=vb(a?"SHORT"+b:b);return d[f][e]}}function ud(b){var a=(new Date(b,0,1)).getDay();return new Date(b,0,(4>=a?5:12)-a)}function vd(b){return function(a){var c=ud(a.getFullYear());a=+new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))-+c;a=1+Math.round(a/6048E5);return Jb(a,b)}}function lc(b,a){return 0>=b.getFullYear()?a.ERAS[0]:a.ERAS[1]}function pd(b){function a(a){var b;if(b=a.match(c)){a=new Date(0);var f=0,g=0,h=b[8]?a.setUTCFullYear:a.setFullYear,l=b[8]?a.setUTCHours:a.setHours; -b[9]&&(f=aa(b[9]+b[10]),g=aa(b[9]+b[11]));h.call(a,aa(b[1]),aa(b[2])-1,aa(b[3]));f=aa(b[4]||0)-f;g=aa(b[5]||0)-g;h=aa(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));l.call(a,f,g,h,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e,f){var g="",h=[],l,k;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;O(c)&&(c=Of.test(c)?aa(c):a(c));Q(c)&&(c=new Date(c));if(!ea(c))return c;for(;e;)(k=Pf.exec(e))?(h=Ya(h,k,1), -e=h.pop()):(h.push(e),e=null);f&&"UTC"===f&&(c=new Date(c.getTime()),c.setMinutes(c.getMinutes()+c.getTimezoneOffset()));q(h,function(a){l=Qf[a];g+=l?l(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function Jf(){return function(b,a){C(a)&&(a=2);return $a(b,a)}}function Kf(){return function(b,a){Q(b)&&(b=b.toString());return w(b)||O(b)?(a=Infinity===Math.abs(Number(a))?Number(a):aa(a))?0b||37<=b&&40>= -b||m(a,this,this.value)});if(e.hasEvent("paste"))a.on("paste cut",m)}a.on("change",l);d.$render=function(){a.val(d.$isEmpty(d.$viewValue)?"":d.$viewValue)}}function Nb(b,a){return function(c,d){var e,f;if(ea(c))return c;if(O(c)){'"'==c.charAt(0)&&'"'==c.charAt(c.length-1)&&(c=c.substring(1,c.length-1));if(Rf.test(c))return new Date(c);b.lastIndex=0;if(e=b.exec(c))return e.shift(),f=d?{yyyy:d.getFullYear(),MM:d.getMonth()+1,dd:d.getDate(),HH:d.getHours(),mm:d.getMinutes(),ss:d.getSeconds(),sss:d.getMilliseconds()/ -1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},q(e,function(b,c){c=q};g.$observe("min",function(a){q=n(a);h.$validate()})}if(y(g.max)||g.ngMax){var t;h.$validators.max=function(a){return!r(a)||C(t)||c(a)<=t};g.$observe("max",function(a){t=n(a);h.$validate()})}}} -function yd(b,a,c,d){(d.$$hasNativeValidators=I(a[0].validity))&&d.$parsers.push(function(b){var c=a.prop("validity")||{};return c.badInput&&!c.typeMismatch?s:b})}function zd(b,a,c,d,e){if(y(d)){b=b(d);if(!b.constant)throw F("ngModel")("constexpr",c,d);return b(a)}return e}function nc(b,a){b="ngClass"+b;return["$animate",function(c){function d(a,b){var c=[],d=0;a:for(;d(?:<\/\1>|)$/,Tb=/<|&#?\w+;/,kf=/<([\w:]+)/,lf=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ha={option:[1,'"],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ha.optgroup=ha.option;ha.tbody=ha.tfoot=ha.colgroup= -ha.caption=ha.thead;ha.th=ha.td;var Ka=R.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===V.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),R(T).on("load",a))},toString:function(){var b=[];q(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?z(this[b]):z(this[this.length+b])},length:0,push:Tf,sort:[].sort,splice:[].splice},Fb={};q("multiple selected checked disabled readOnly required open".split(" "),function(b){Fb[L(b)]=b}); -var Rc={};q("input select option textarea button form details".split(" "),function(b){Rc[b]=!0});var Sc={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};q({data:Wb,removeData:yb},function(b,a){R[a]=b});q({data:Wb,inheritedData:Eb,scope:function(b){return z.data(b,"$scope")||Eb(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return z.data(b,"$isolateScope")||z.data(b,"$isolateScopeNoTemplate")},controller:Nc,injector:function(b){return Eb(b, -"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Bb,css:function(b,a,c){a=eb(a);if(y(c))b.style[a]=c;else return b.style[a]},attr:function(b,a,c){var d=b.nodeType;if(d!==ab&&2!==d&&8!==d)if(d=L(a),Fb[d])if(y(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||A).specified?d:s;else if(y(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?s:b},prop:function(b,a,c){if(y(c))b[a]=c;else return b[a]}, -text:function(){function b(a,b){if(C(b)){var d=a.nodeType;return d===ma||d===ab?a.textContent:""}a.textContent=b}b.$dv="";return b}(),val:function(b,a){if(C(a)){if(b.multiple&&"select"===sa(b)){var c=[];q(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(C(a))return b.innerHTML;xb(b,!0);b.innerHTML=a},empty:Oc},function(b,a){R.prototype[a]=function(a,d){var e,f,g=this.length;if(b!==Oc&&(2==b.length&&b!==Bb&&b!==Nc? -a:d)===s){if(I(a)){for(e=0;e":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a,c)||e(a,c)},"!":function(a,c,d){return!d(a,c)},"=":!0,"|":!0}),cg={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},kc=function(a){this.options=a};kc.prototype={constructor:kc, -lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"=== -a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=y(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw ja("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.indexa){a=this.tokens[a];var g=a.text;if(g===c||g===d||g===e||g===f||!(c||d||e||f))return a}return!1},expect:function(a,c,d,e){return(a=this.peek(a,c,d,e))?(this.tokens.shift(),a):!1},consume:function(a){if(0===this.tokens.length)throw ja("ueoe",this.text);var c=this.expect(a);c||this.throwError("is unexpected, expecting ["+a+ -"]",this.peek());return c},unaryFn:function(a,c){var d=qb[a];return x(function(a,f){return d(a,f,c)},{constant:c.constant,inputs:[c]})},binaryFn:function(a,c,d,e){var f=qb[c];return x(function(c,e){return f(c,e,a,d)},{constant:a.constant&&d.constant,inputs:!e&&[a,d]})},identifier:function(){for(var a=this.consume().text;this.peek(".")&&this.peekAhead(1).identifier&&!this.peekAhead(2,"(");)a+=this.consume().text+this.consume().text;return Df(a,this.options,this.text)},constant:function(){var a=this.consume().value; -return x(function(){return a},{constant:!0,literal:!0})},statements:function(){for(var a=[];;)if(0","<=",">=");)a=this.binaryFn(a,c.text,this.additive());return a},additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a=this.binaryFn(a,c.text,this.multiplicative());return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a= -this.binaryFn(a,c.text,this.unary());return a},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn(lb.ZERO,a.text,this.unary()):(a=this.expect("!"))?this.unaryFn(a.text,this.unary()):this.primary()},fieldAccess:function(a){var c=this.identifier();return x(function(d,e,f){d=f||a(d,e);return null==d?s:c(d)},{assign:function(d,e,f){var g=a(d,f);g||a.assign(d,g={},f);return c.assign(g,e)}})},objectIndex:function(a){var c=this.text,d=this.expression();this.consume("]"); -return x(function(e,f){var g=a(e,f),h=d(e,f);ra(h,c);return g?ka(g[h],c):s},{assign:function(e,f,g){var h=ra(d(e,g),c),l=ka(a(e,g),c);l||a.assign(e,l={},g);return l[h]=f}})},functionCall:function(a,c){var d=[];if(")"!==this.peekToken().text){do d.push(this.expression());while(this.expect(","))}this.consume(")");var e=this.text,f=d.length?[]:null;return function(g,h){var l=c?c(g,h):y(c)?s:g,k=a(g,h,l)||A;if(f)for(var m=d.length;m--;)f[m]=ka(d[m](g,h),e);ka(l,e);if(k){if(k.constructor===k)throw ja("isecfn", -e);if(k===$f||k===ag||k===bg)throw ja("isecff",e);}l=k.apply?k.apply(l,f):k(f[0],f[1],f[2],f[3],f[4]);f&&(f.length=0);return ka(l,e)}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]");return x(function(c,d){for(var e=[],f=0,g=a.length;fa.getHours()? -c.AMPMS[0]:c.AMPMS[1]},Z:function(a){a=-1*a.getTimezoneOffset();return a=(0<=a?"+":"")+(Jb(Math[0=a.getFullYear()?c.ERANAMES[0]:c.ERANAMES[1]}},Pf=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,Of=/^\-?\d+$/;pd.$inject=["$locale"];var Lf=ca(L),Mf=ca(vb);rd.$inject=["$parse"];var Yd=ca({restrict:"E",compile:function(a,c){if(!c.href&&!c.xlinkHref&& -!c.name)return function(a,c){if("a"===c[0].nodeName.toLowerCase()){var f="[object SVGAnimatedString]"===Aa.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}}),wb={};q(Fb,function(a,c){if("multiple"!=a){var d=va("ng-"+c);wb[d]=function(){return{restrict:"A",priority:100,link:function(a,f,g){a.$watch(g[d],function(a){g.$set(c,!!a)})}}}}});q(Sc,function(a,c){wb[c]=function(){return{priority:100,link:function(a,e,f){if("ngPattern"===c&&"/"==f.ngPattern.charAt(0)&& -(e=f.ngPattern.match(Sf))){f.$set("ngPattern",new RegExp(e[1],e[2]));return}a.$watch(f[c],function(a){f.$set(c,a)})}}}});q(["src","srcset","href"],function(a){var c=va("ng-"+a);wb[c]=function(){return{priority:99,link:function(d,e,f){var g=a,h=a;"href"===a&&"[object SVGAnimatedString]"===Aa.call(e.prop("href"))&&(h="xlinkHref",f.$attr[h]="xlink:href",g=null);f.$observe(c,function(c){c?(f.$set(h,c),Qa&&g&&e.prop(g,f[h])):"href"===a&&f.$set(h,null)})}}}});var Lb={$addControl:A,$$renameControl:function(a, -c){a.$name=c},$removeControl:A,$setValidity:A,$setDirty:A,$setPristine:A,$setSubmitted:A};wd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Dd=function(a){return["$timeout",function(c){return{name:"form",restrict:a?"EAC":"E",controller:wd,compile:function(d,e){d.addClass(Ra).addClass(ob);var f=e.name?"name":a&&e.ngForm?"ngForm":!1;return{pre:function(a,d,e,k){if(!("action"in e)){var m=function(c){a.$apply(function(){k.$commitViewValue();k.$setSubmitted()});c.preventDefault()}; -d[0].addEventListener("submit",m,!1);d.on("$destroy",function(){c(function(){d[0].removeEventListener("submit",m,!1)},0,!1)})}var r=k.$$parentForm;f&&(kb(a,null,k.$name,k,k.$name),e.$observe(f,function(c){k.$name!==c&&(kb(a,null,k.$name,s,k.$name),r.$$renameControl(k,c),kb(a,null,k.$name,k,k.$name))}));d.on("$destroy",function(){r.$removeControl(k);f&&kb(a,null,e[f],s,k.$name);x(k,Lb)})}}}}}]},Zd=Dd(),le=Dd(!0),Rf=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,dg=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/, -eg=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,fg=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,Ed=/^(\d{4})-(\d{2})-(\d{2})$/,Fd=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,oc=/^(\d{4})-W(\d\d)$/,Gd=/^(\d{4})-(\d\d)$/,Hd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Id={text:function(a,c,d,e,f,g){mb(a,c,d,e,f,g);mc(e)},date:nb("date",Ed,Nb(Ed,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":nb("datetimelocal",Fd,Nb(Fd,"yyyy MM dd HH mm ss sss".split(" ")), -"yyyy-MM-ddTHH:mm:ss.sss"),time:nb("time",Hd,Nb(Hd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:nb("week",oc,function(a,c){if(ea(a))return a;if(O(a)){oc.lastIndex=0;var d=oc.exec(a);if(d){var e=+d[1],f=+d[2],g=d=0,h=0,l=0,k=ud(e),f=7*(f-1);c&&(d=c.getHours(),g=c.getMinutes(),h=c.getSeconds(),l=c.getMilliseconds());return new Date(e,0,k.getDate()+f,d,g,h,l)}}return NaN},"yyyy-Www"),month:nb("month",Gd,Nb(Gd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,g){yd(a,c,d,e);mb(a,c,d,e,f,g);e.$$parserName= -"number";e.$parsers.push(function(a){return e.$isEmpty(a)?null:fg.test(a)?parseFloat(a):s});e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!Q(a))throw Ob("numfmt",a);a=a.toString()}return a});if(y(d.min)||d.ngMin){var h;e.$validators.min=function(a){return e.$isEmpty(a)||C(h)||a>=h};d.$observe("min",function(a){y(a)&&!Q(a)&&(a=parseFloat(a,10));h=Q(a)&&!isNaN(a)?a:s;e.$validate()})}if(y(d.max)||d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)||C(l)||a<=l};d.$observe("max",function(a){y(a)&& -!Q(a)&&(a=parseFloat(a,10));l=Q(a)&&!isNaN(a)?a:s;e.$validate()})}},url:function(a,c,d,e,f,g){mb(a,c,d,e,f,g);mc(e);e.$$parserName="url";e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||dg.test(d)}},email:function(a,c,d,e,f,g){mb(a,c,d,e,f,g);mc(e);e.$$parserName="email";e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||eg.test(d)}},radio:function(a,c,d,e){C(d.name)&&c.attr("name",++rb);c.on("click",function(a){c[0].checked&&e.$setViewValue(d.value,a&&a.type)});e.$render= -function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,g,h,l){var k=zd(l,a,"ngTrueValue",d.ngTrueValue,!0),m=zd(l,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click",function(a){e.$setViewValue(c[0].checked,a&&a.type)});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return!1===a};e.$formatters.push(function(a){return fa(a,k)});e.$parsers.push(function(a){return a?k:m})},hidden:A,button:A,submit:A,reset:A,file:A},Cc=["$browser", -"$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,g,h,l){l[0]&&(Id[L(h.type)]||Id.text)(f,g,h,l[0],c,a,d,e)}}}}],gg=/^(true|false|\d+)$/,De=function(){return{restrict:"A",priority:100,compile:function(a,c){return gg.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value",a)})}}}},de=["$compile",function(a){return{restrict:"AC",compile:function(c){a.$$addBindingClass(c); -return function(c,e,f){a.$$addBindingInfo(e,f.ngBind);e=e[0];c.$watch(f.ngBind,function(a){e.textContent=a===s?"":a})}}}}],fe=["$interpolate","$compile",function(a,c){return{compile:function(d){c.$$addBindingClass(d);return function(d,f,g){d=a(f.attr(g.$attr.ngBindTemplate));c.$$addBindingInfo(f,d.expressions);f=f[0];g.$observe("ngBindTemplate",function(a){f.textContent=a===s?"":a})}}}}],ee=["$sce","$parse","$compile",function(a,c,d){return{restrict:"A",compile:function(e,f){var g=c(f.ngBindHtml), -h=c(f.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(e);return function(c,e,f){d.$$addBindingInfo(e,f.ngBindHtml);c.$watch(h,function(){e.html(a.getTrustedHtml(g(c))||"")})}}}}],Ce=ca({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),ge=nc("",!0),ie=nc("Odd",0),he=nc("Even",1),je=Ia({compile:function(a,c){c.$set("ngCloak",s);a.removeClass("ng-cloak")}}),ke=[function(){return{restrict:"A",scope:!0,controller:"@", -priority:500}}],Hc={},hg={blur:!0,focus:!0};q("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=va("ng-"+a);Hc[c]=["$parse","$rootScope",function(d,e){return{restrict:"A",compile:function(f,g){var h=d(g[c],null,!0);return function(c,d){d.on(a,function(d){var f=function(){h(c,{$event:d})};hg[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var ne=["$animate",function(a){return{multiElement:!0, -transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var h,l,k;c.$watch(e.ngIf,function(c){c?l||g(function(c,f){l=f;c[c.length++]=V.createComment(" end ngIf: "+e.ngIf+" ");h={clone:c};a.enter(c,d.parent(),d)}):(k&&(k.remove(),k=null),l&&(l.$destroy(),l=null),h&&(k=ub(h.clone),a.leave(k).then(function(){k=null}),h=null))})}}}],oe=["$templateRequest","$anchorScroll","$animate","$sce",function(a,c,d,e){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element", -controller:ba.noop,compile:function(f,g){var h=g.ngInclude||g.src,l=g.onload||"",k=g.autoscroll;return function(f,g,n,q,v){var s=0,t,p,H,J=function(){p&&(p.remove(),p=null);t&&(t.$destroy(),t=null);H&&(d.leave(H).then(function(){p=null}),p=H,H=null)};f.$watch(e.parseAsResourceUrl(h),function(e){var h=function(){!y(k)||k&&!f.$eval(k)||c()},n=++s;e?(a(e,!0).then(function(a){if(n===s){var c=f.$new();q.template=a;a=v(c,function(a){J();d.enter(a,null,g).then(h)});t=c;H=a;t.$emit("$includeContentLoaded", -e);f.$eval(l)}},function(){n===s&&(J(),f.$emit("$includeContentError",e))}),f.$emit("$includeContentRequested",e)):(J(),q.template=null)})}}}}],Fe=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Kc(f.template,V).childNodes)(c,function(a){d.append(a)},{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}],pe=Ia({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}), -Be=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)||", ",g="false"!==d.ngTrim,h=g?U(f):f;e.$parsers.push(function(a){if(!C(a)){var c=[];a&&q(a.split(h),function(a){a&&c.push(g?U(a):a)});return c}});e.$formatters.push(function(a){return w(a)?a.join(f):s});e.$isEmpty=function(a){return!a||!a.length}}}},ob="ng-valid",Ad="ng-invalid",Ra="ng-pristine",Mb="ng-dirty",Cd="ng-pending",Ob=new F("ngModel"),ig=["$scope","$exceptionHandler","$attrs", -"$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,g,h,l,k,m){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=s;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=s;this.$name=m(d.name||"",!1)(a);var r=f(d.ngModel),n=r.assign,u=r,v=n, -P=null,t,p=this;this.$$setOptions=function(a){if((p.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),g=f(d.ngModel+"($$$p)");u=function(a){var d=r(a);E(d)&&(d=c(a));return d};v=function(a,c){E(r(a))?g(a,{$$$p:p.$modelValue}):n(a,p.$modelValue)}}else if(!r.assign)throw Ob("nonassign",d.ngModel,ta(e));};this.$render=A;this.$isEmpty=function(a){return C(a)||""===a||null===a||a!==a};var H=e.inheritedData("$formController")||Lb,J=0;xd({ctrl:this,$element:e,set:function(a,c){a[c]=!0},unset:function(a, -c){delete a[c]},parentForm:H,$animate:g});this.$setPristine=function(){p.$dirty=!1;p.$pristine=!0;g.removeClass(e,Mb);g.addClass(e,Ra)};this.$setDirty=function(){p.$dirty=!0;p.$pristine=!1;g.removeClass(e,Ra);g.addClass(e,Mb);H.$setDirty()};this.$setUntouched=function(){p.$touched=!1;p.$untouched=!0;g.setClass(e,"ng-untouched","ng-touched")};this.$setTouched=function(){p.$touched=!0;p.$untouched=!1;g.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){h.cancel(P);p.$viewValue= -p.$$lastCommittedViewValue;p.$render()};this.$validate=function(){if(!Q(p.$modelValue)||!isNaN(p.$modelValue)){var a=p.$$rawModelValue,c=p.$valid,d=p.$modelValue,e=p.$options&&p.$options.allowInvalid;p.$$runValidators(a,p.$$lastCommittedViewValue,function(f){e||c===f||(p.$modelValue=f?a:s,p.$modelValue!==d&&p.$$writeModelToScope())})}};this.$$runValidators=function(a,c,d){function e(){var d=!0;q(p.$validators,function(e,f){var h=e(a,c);d=d&&h;g(f,h)});return d?!0:(q(p.$asyncValidators,function(a, -c){g(c,null)}),!1)}function f(){var d=[],e=!0;q(p.$asyncValidators,function(f,h){var k=f(a,c);if(!k||!E(k.then))throw Ob("$asyncValidators",k);g(h,s);d.push(k.then(function(){g(h,!0)},function(a){e=!1;g(h,!1)}))});d.length?k.all(d).then(function(){h(e)},A):h(!0)}function g(a,c){l===J&&p.$setValidity(a,c)}function h(a){l===J&&d(a)}J++;var l=J;(function(){var a=p.$$parserName||"parse";if(t===s)g(a,null);else return t||(q(p.$validators,function(a,c){g(c,null)}),q(p.$asyncValidators,function(a,c){g(c, -null)})),g(a,t),t;return!0})()?e()?f():h(!1):h(!1)};this.$commitViewValue=function(){var a=p.$viewValue;h.cancel(P);if(p.$$lastCommittedViewValue!==a||""===a&&p.$$hasNativeValidators)p.$$lastCommittedViewValue=a,p.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=p.$$lastCommittedViewValue;if(t=C(c)?s:!0)for(var d=0;dD;)d=t.pop(),m(S,d.label,!1),d.element.remove()}for(;T.length> -w;){l=T.pop();for(D=1;Da&&n.removeOption(c)})}var t;if(!(t=v.match(d)))throw kg("iexp",v,ta(f));var B=c(t[2]||t[1]),A=t[4]||t[6],E=/ as /.test(t[0])&&t[1],z=E?c(E):null,I=t[5],M=c(t[3]||""),D=c(t[2]?t[1]:A),O=c(t[7]),L=t[8]?c(t[8]):null,R={},T=[[{element:f,label:""}]],U={};x&&(a(x)(e),x.removeClass("ng-scope"),x.remove());f.empty();f.on("change",function(){e.$apply(function(){var a=O(e)||[],c;if(u)c=[],q(f.val(), -function(d){d=L?R[d]:d;c.push("?"===d?s:""===d?null:h(z?z:D,d,a[d]))});else{var d=L?R[f.val()]:f.val();c="?"===d?s:""===d?null:h(z?z:D,d,a[d])}g.$setViewValue(c);r()})});g.$render=r;e.$watchCollection(O,l);e.$watchCollection(function(){var a=O(e),c;if(a&&w(a)){c=Array(a.length);for(var d=0,f=a.length;df||e.$isEmpty(c)||c.length<=f}}}}},Fc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=0;d.$observe("minlength",function(a){f=aa(a)||0;e.$validate()});e.$validators.minlength=function(a,c){return e.$isEmpty(c)||c.length>=f}}}}};T.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(Sd(),Ud(ba),z(V).ready(function(){Od(V,xc)}))})(window,document);!window.angular.$$csp()&&window.angular.element(document).find("head").prepend(''); +(function(N,W,u){'use strict';function G(b){return function(){var a=arguments[0],c;c="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.4.5/"+(b?b+"/":"")+a;for(a=1;a").append(b).html();try{return b[0].nodeType===Pa?I(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+I(b)})}catch(d){return I(c)}}function wc(b){try{return decodeURIComponent(b)}catch(a){}}function xc(b){var a={};n((b||"").split("&"),function(b){var d,e,f;b&&(e= +b=b.replace(/\+/g,"%20"),d=b.indexOf("="),-1!==d&&(e=b.substring(0,d),f=b.substring(d+1)),e=wc(e),x(e)&&(f=x(f)?wc(f):!0,Na.call(a,e)?K(a[e])?a[e].push(f):a[e]=[a[e],f]:a[e]=f))});return a}function Pb(b){var a=[];n(b,function(b,d){K(b)?n(b,function(b){a.push(ma(d,!0)+(!0===b?"":"="+ma(b,!0)))}):a.push(ma(d,!0)+(!0===b?"":"="+ma(b,!0)))});return a.length?a.join("&"):""}function nb(b){return ma(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ma(b,a){return encodeURIComponent(b).replace(/%40/gi, +"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,a?"%20":"+")}function Yd(b,a){var c,d,e=Qa.length;for(d=0;d/,">"));}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);c.debugInfoEnabled&&a.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);a.unshift("ng");d=eb(a,c.strictDi);d.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector", +d);c(b)(a)})}]);return d},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;N&&e.test(N.name)&&(c.debugInfoEnabled=!0,N.name=N.name.replace(e,""));if(N&&!f.test(N.name))return d();N.name=N.name.replace(f,"");aa.resumeBootstrap=function(b){n(b,function(b){a.push(b)});return d()};B(aa.resumeDeferredBootstrap)&&aa.resumeDeferredBootstrap()}function $d(){N.name="NG_ENABLE_DEBUG_INFO!"+N.name;N.location.reload()}function ae(b){b=aa.element(b).injector();if(!b)throw Ea("test");return b.get("$$testability")} +function zc(b,a){a=a||"_";return b.replace(be,function(b,d){return(d?a:"")+b.toLowerCase()})}function ce(){var b;if(!Ac){var a=ob();la=N.jQuery;x(a)&&(la=null===a?u:N[a]);la&&la.fn.on?(z=la,Q(la.fn,{scope:Ra.scope,isolateScope:Ra.isolateScope,controller:Ra.controller,injector:Ra.injector,inheritedData:Ra.inheritedData}),b=la.cleanData,la.cleanData=function(a){var d;if(Qb)Qb=!1;else for(var e=0,f;null!=(f=a[e]);e++)(d=la._data(f,"events"))&&d.$destroy&&la(f).triggerHandler("$destroy");b(a)}):z=R;aa.element= +z;Ac=!0}}function pb(b,a,c){if(!b)throw Ea("areq",a||"?",c||"required");return b}function Sa(b,a,c){c&&K(b)&&(b=b[b.length-1]);pb(B(b),a,"not a function, got "+(b&&"object"===typeof b?b.constructor.name||"Object":typeof b));return b}function Ta(b,a){if("hasOwnProperty"===b)throw Ea("badname",a);}function Bc(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,g=0;g")+d[2];for(d=d[0];d--;)c=c.lastChild;f=cb(f,c.childNodes);c=e.firstChild;c.textContent=""}else f.push(a.createTextNode(b));e.textContent="";e.innerHTML="";n(f,function(a){e.appendChild(a)});return e}function R(b){if(b instanceof R)return b;var a;H(b)&&(b=T(b),a=!0);if(!(this instanceof R)){if(a&&"<"!=b.charAt(0))throw Tb("nosel");return new R(b)}if(a){a=W;var c;b=(c=Df.exec(b))?[a.createElement(c[1])]: +(c=Lc(b,a))?c.childNodes:[]}Mc(this,b)}function Ub(b){return b.cloneNode(!0)}function tb(b,a){a||ub(b);if(b.querySelectorAll)for(var c=b.querySelectorAll("*"),d=0,e=c.length;dk&&this.remove(s.key); +return b}},get:function(a){if(k").parent()[0])});var f=S(a,b,a,c,d,e);V.$$addScopeClass(a);var g=null;return function(b,c,d){pb(b,"scope");d=d||{}; +var e=d.parentBoundTranscludeFn,h=d.transcludeControllers;d=d.futureParentElement;e&&e.$$boundTransclude&&(e=e.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==ta(d)&&d.toString().match(/SVG/)?"svg":"html":"html");d="html"!==g?z(Xb(g,z("
").append(a).html())):c?Ra.clone.call(a):a;if(h)for(var k in h)d.data("$"+k+"Controller",h[k].instance);V.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,e);return d}}function S(a,b,c,d,e,f){function g(a,c,d,e){var f,k,l,m,s,t,O;if(p)for(O=Array(c.length),m=0;m< +h.length;m+=3)f=h[m],O[f]=c[f];else O=c;m=0;for(s=h.length;mC.priority)break;if(v=C.scope)C.templateUrl||(D(v)?(N("new/isolated scope",P||S,C,ba),P=C):N("new/isolated scope", +P,C,ba)),S=S||C;x=C.name;!C.templateUrl&&C.controller&&(v=C.controller,w=w||ga(),N("'"+x+"' controller",w[x],C,ba),w[x]=C);if(v=C.transclude)n=!0,C.$$tlb||(N("transclusion",A,C,ba),A=C),"element"==v?(r=!0,J=C.priority,v=ba,ba=d.$$element=z(W.createComment(" "+x+": "+d[x]+" ")),b=ba[0],U(f,xa.call(v,0),b),y=V(v,e,J,g&&g.name,{nonTlbTranscludeDirective:A})):(v=z(Ub(b)).contents(),ba.empty(),y=V(v,e));if(C.template)if(M=!0,N("template",F,C,ba),F=C,v=B(C.template)?C.template(ba,d):C.template,v=fa(v), +C.replace){g=C;v=Sb.test(v)?Yc(Xb(C.templateNamespace,T(v))):[];b=v[0];if(1!=v.length||b.nodeType!==pa)throw ea("tplrt",x,"");U(f,ba,b);G={$attr:{}};v=ha(b,[],G);var Q=a.splice(wa+1,a.length-(wa+1));P&&Zc(v);a=a.concat(v).concat(Q);$c(d,G);G=a.length}else ba.html(v);if(C.templateUrl)M=!0,N("template",F,C,ba),F=C,C.replace&&(g=C),L=Lf(a.splice(wa,a.length-wa),ba,d,f,n&&y,h,k,{controllerDirectives:w,newScopeDirective:S!==C&&S,newIsolateScopeDirective:P,templateDirective:F,nonTlbTranscludeDirective:A}), +G=a.length;else if(C.compile)try{za=C.compile(ba,d,y),B(za)?s(null,za,Bb,I):za&&s(za.pre,za.post,Bb,I)}catch(R){c(R,ua(ba))}C.terminal&&(L.terminal=!0,J=Math.max(J,C.priority))}L.scope=S&&!0===S.scope;L.transcludeOnThisElement=n;L.templateOnThisElement=M;L.transclude=y;m.hasElementTranscludeDirective=r;return L}function Zc(a){for(var b=0,c=a.length;bm.priority)&&-1!=m.restrict.indexOf(f)&&(k&&(m=Nb(m,{$$start:k,$$end:l})),b.push(m),h=m)}catch(J){c(J)}}return h}function G(b){if(e.hasOwnProperty(b))for(var c=a.get(b+"Directive"),d=0,f=c.length;d"+b+"";return c.childNodes[0].childNodes;default:return b}}function R(a,b){if("srcdoc"==b)return M.HTML;var c=ta(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b))return M.RESOURCE_URL}function X(a,c,d,e, +f){var g=R(a,e);f=h[e]||f;var l=b(d,!0,g,f);if(l){if("multiple"===e&&"select"===ta(a))throw ea("selmulti",ua(a));c.push({priority:100,compile:function(){return{pre:function(a,c,h){c=h.$$observers||(h.$$observers={});if(k.test(e))throw ea("nodomevents");var m=h[e];m!==d&&(l=m&&b(m,!0,g,f),d=m);l&&(h[e]=l(a),(c[e]||(c[e]=[])).$$inter=!0,(h.$$observers&&h.$$observers[e].$$scope||a).$watch(l,function(a,b){"class"===e&&a!=b?h.$updateClass(a,b):h.$set(e,a)}))}}}})}}function U(a,b,c){var d=b[0],e=b.length, +f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g=a)return b;for(;a--;)8===b[a].nodeType&&Mf.call(b,a,1);return b}function Xe(){var b={},a=!1;this.register=function(a,d){Ta(a,"controller");D(a)?Q(b,a):b[a]=d};this.allowGlobals=function(){a=!0};this.$get=["$injector","$window",function(c,d){function e(a,b,c,d){if(!a||!D(a.$scope))throw G("$controller")("noscp",d,b);a.$scope[b]=c}return function(f,g,h,l){var k,m,q;h=!0===h;l&&H(l)&&(q=l);if(H(f)){l=f.match(Vc);if(!l)throw Nf("ctrlfmt",f);m=l[1];q=q||l[3];f=b.hasOwnProperty(m)?b[m]:Bc(g.$scope, +m,!0)||(a?Bc(d,m,!0):u);Sa(f,m,!0)}if(h)return h=(K(f)?f[f.length-1]:f).prototype,k=Object.create(h||null),q&&e(g,q,k,m||f.name),Q(function(){var a=c.invoke(f,k,g,m);a!==k&&(D(a)||B(a))&&(k=a,q&&e(g,q,k,m||f.name));return k},{instance:k,identifier:q});k=c.instantiate(f,g,m);q&&e(g,q,k,m||f.name);return k}}]}function Ye(){this.$get=["$window",function(b){return z(b.document)}]}function Ze(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b,arguments)}}]}function Yb(b){return D(b)? +ca(b)?b.toISOString():db(b):b}function df(){this.$get=function(){return function(b){if(!b)return"";var a=[];mc(b,function(b,d){null===b||y(b)||(K(b)?n(b,function(b,c){a.push(ma(d)+"="+ma(Yb(b)))}):a.push(ma(d)+"="+ma(Yb(b))))});return a.join("&")}}}function ef(){this.$get=function(){return function(b){function a(b,e,f){null===b||y(b)||(K(b)?n(b,function(b,c){a(b,e+"["+(D(b)?c:"")+"]")}):D(b)&&!ca(b)?mc(b,function(b,c){a(b,e+(f?"":"[")+c+(f?"":"]"))}):c.push(ma(e)+"="+ma(Yb(b))))}if(!b)return"";var c= +[];a(b,"",!0);return c.join("&")}}}function Zb(b,a){if(H(b)){var c=b.replace(Of,"").trim();if(c){var d=a("Content-Type");(d=d&&0===d.indexOf(bd))||(d=(d=c.match(Pf))&&Qf[d[0]].test(c));d&&(b=uc(c))}}return b}function cd(b){var a=ga(),c;H(b)?n(b.split("\n"),function(b){c=b.indexOf(":");var e=I(T(b.substr(0,c)));b=T(b.substr(c+1));e&&(a[e]=a[e]?a[e]+", "+b:b)}):D(b)&&n(b,function(b,c){var f=I(c),g=T(b);f&&(a[f]=a[f]?a[f]+", "+g:g)});return a}function dd(b){var a;return function(c){a||(a=cd(b));return c? +(c=a[I(c)],void 0===c&&(c=null),c):a}}function ed(b,a,c,d){if(B(d))return d(b,a,c);n(d,function(d){b=d(b,a,c)});return b}function cf(){var b=this.defaults={transformResponse:[Zb],transformRequest:[function(a){return D(a)&&"[object File]"!==sa.call(a)&&"[object Blob]"!==sa.call(a)&&"[object FormData]"!==sa.call(a)?db(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ia($b),put:ia($b),patch:ia($b)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"}, +a=!1;this.useApplyAsync=function(b){return x(b)?(a=!!b,this):a};var c=!0;this.useLegacyPromiseExtensions=function(a){return x(a)?(c=!!a,this):c};var d=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(e,f,g,h,l,k){function m(a){function d(a){var b=Q({},a);b.data=a.data?ed(a.data,a.headers,a.status,f.transformResponse):a.data;a=a.status;return 200<=a&&300>a?b:l.reject(b)}function e(a,b){var c,d={};n(a,function(a,e){B(a)?(c=a(b),null!= +c&&(d[e]=c)):d[e]=a});return d}if(!aa.isObject(a))throw G("$http")("badreq",a);var f=Q({method:"get",transformRequest:b.transformRequest,transformResponse:b.transformResponse,paramSerializer:b.paramSerializer},a);f.headers=function(a){var c=b.headers,d=Q({},a.headers),f,g,h,c=Q({},c.common,c[I(a.method)]);a:for(f in c){g=I(f);for(h in d)if(I(h)===g)continue a;d[f]=c[f]}return e(d,ia(a))}(a);f.method=rb(f.method);f.paramSerializer=H(f.paramSerializer)?k.get(f.paramSerializer):f.paramSerializer;var g= +[function(a){var c=a.headers,e=ed(a.data,dd(c),u,a.transformRequest);y(e)&&n(c,function(a,b){"content-type"===I(b)&&delete c[b]});y(a.withCredentials)&&!y(b.withCredentials)&&(a.withCredentials=b.withCredentials);return q(a,e).then(d,d)},u],h=l.when(f);for(n(E,function(a){(a.request||a.requestError)&&g.unshift(a.request,a.requestError);(a.response||a.responseError)&&g.push(a.response,a.responseError)});g.length;){a=g.shift();var m=g.shift(),h=h.then(a,m)}c?(h.success=function(a){Sa(a,"fn");h.then(function(b){a(b.data, +b.status,b.headers,f)});return h},h.error=function(a){Sa(a,"fn");h.then(null,function(b){a(b.data,b.status,b.headers,f)});return h}):(h.success=fd("success"),h.error=fd("error"));return h}function q(c,d){function g(b,c,d,e){function f(){k(c,b,d,e)}F&&(200<=b&&300>b?F.put(P,[b,c,cd(d),e]):F.remove(P));a?h.$applyAsync(f):(f(),h.$$phase||h.$apply())}function k(a,b,d,e){b=Math.max(b,0);(200<=b&&300>b?O.resolve:O.reject)({data:a,status:b,headers:dd(d),config:c,statusText:e})}function q(a){k(a.data,a.status, +ia(a.headers()),a.statusText)}function E(){var a=m.pendingRequests.indexOf(c);-1!==a&&m.pendingRequests.splice(a,1)}var O=l.defer(),J=O.promise,F,n,S=c.headers,P=s(c.url,c.paramSerializer(c.params));m.pendingRequests.push(c);J.then(E,E);!c.cache&&!b.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(F=D(c.cache)?c.cache:D(b.cache)?b.cache:t);F&&(n=F.get(P),x(n)?n&&B(n.then)?n.then(q,q):K(n)?k(n[1],n[0],ia(n[2]),n[3]):k(n,200,{},"OK"):F.put(P,J));y(n)&&((n=gd(c.url)?f()[c.xsrfCookieName|| +b.xsrfCookieName]:u)&&(S[c.xsrfHeaderName||b.xsrfHeaderName]=n),e(c.method,P,d,g,S,c.timeout,c.withCredentials,c.responseType));return J}function s(a,b){0=l&&(w.resolve(E),t(p.$$intervalId),delete f[p.$$intervalId]);L||b.$apply()},h);f[p.$$intervalId]=w;return p}var f={};e.cancel=function(b){return b&& +b.$$intervalId in f?(f[b.$$intervalId].reject("canceled"),a.clearInterval(b.$$intervalId),delete f[b.$$intervalId],!0):!1};return e}]}function ac(b){b=b.split("/");for(var a=b.length;a--;)b[a]=nb(b[a]);return b.join("/")}function hd(b,a){var c=Aa(b);a.$$protocol=c.protocol;a.$$host=c.hostname;a.$$port=Y(c.port)||Tf[c.protocol]||null}function id(b,a){var c="/"!==b.charAt(0);c&&(b="/"+b);var d=Aa(b);a.$$path=decodeURIComponent(c&&"/"===d.pathname.charAt(0)?d.pathname.substring(1):d.pathname);a.$$search= +xc(d.search);a.$$hash=decodeURIComponent(d.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function ra(b,a){if(0===a.indexOf(b))return a.substr(b.length)}function Ja(b){var a=b.indexOf("#");return-1==a?b:b.substr(0,a)}function Cb(b){return b.replace(/(#.+)|#$/,"$1")}function bc(b,a,c){this.$$html5=!0;c=c||"";hd(b,this);this.$$parse=function(b){var c=ra(a,b);if(!H(c))throw Db("ipthprfx",b,a);id(c,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var b= +Pb(this.$$search),c=this.$$hash?"#"+nb(this.$$hash):"";this.$$url=ac(this.$$path)+(b?"?"+b:"")+c;this.$$absUrl=a+this.$$url.substr(1)};this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;(f=ra(b,d))!==u?(g=f,g=(f=ra(c,f))!==u?a+(ra("/",f)||f):b+g):(f=ra(a,d))!==u?g=a+f:a==d+"/"&&(g=a);g&&this.$$parse(g);return!!g}}function cc(b,a,c){hd(b,this);this.$$parse=function(d){var e=ra(b,d)||ra(a,d),f;y(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",y(e)&&(b=d,this.replace())): +(f=ra(c,e),y(f)&&(f=e));id(f,this);d=this.$$path;var e=b,g=/^\/[A-Z]:(\/.*)/;0===f.indexOf(e)&&(f=f.replace(e,""));g.exec(f)||(d=(f=g.exec(d))?f[1]:d);this.$$path=d;this.$$compose()};this.$$compose=function(){var a=Pb(this.$$search),e=this.$$hash?"#"+nb(this.$$hash):"";this.$$url=ac(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+(this.$$url?c+this.$$url:"")};this.$$parseLinkUrl=function(a,c){return Ja(b)==Ja(a)?(this.$$parse(a),!0):!1}}function jd(b,a,c){this.$$html5=!0;cc.apply(this,arguments);this.$$parseLinkUrl= +function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;b==Ja(d)?f=d:(g=ra(a,d))?f=b+c+g:a===d+"/"&&(f=a);f&&this.$$parse(f);return!!f};this.$$compose=function(){var a=Pb(this.$$search),e=this.$$hash?"#"+nb(this.$$hash):"";this.$$url=ac(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+c+this.$$url}}function Eb(b){return function(){return this[b]}}function kd(b,a){return function(c){if(y(c))return this[b];this[b]=a(c);this.$$compose();return this}}function gf(){var b="",a={enabled:!1,requireBase:!0, +rewriteLinks:!0};this.hashPrefix=function(a){return x(a)?(b=a,this):b};this.html5Mode=function(b){return ab(b)?(a.enabled=b,this):D(b)?(ab(b.enabled)&&(a.enabled=b.enabled),ab(b.requireBase)&&(a.requireBase=b.requireBase),ab(b.rewriteLinks)&&(a.rewriteLinks=b.rewriteLinks),this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(c,d,e,f,g){function h(a,b,c){var e=k.url(),f=k.$$state;try{d.url(a,b,c),k.$$state=d.state()}catch(g){throw k.url(e),k.$$state=f,g;}}function l(a, +b){c.$broadcast("$locationChangeSuccess",k.absUrl(),a,k.$$state,b)}var k,m;m=d.baseHref();var q=d.url(),s;if(a.enabled){if(!m&&a.requireBase)throw Db("nobase");s=q.substring(0,q.indexOf("/",q.indexOf("//")+2))+(m||"/");m=e.history?bc:jd}else s=Ja(q),m=cc;var t=s.substr(0,Ja(s).lastIndexOf("/")+1);k=new m(s,t,"#"+b);k.$$parseLinkUrl(q,q);k.$$state=d.state();var E=/^\s*(javascript|mailto):/i;f.on("click",function(b){if(a.rewriteLinks&&!b.ctrlKey&&!b.metaKey&&!b.shiftKey&&2!=b.which&&2!=b.button){for(var e= +z(b.target);"a"!==ta(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var h=e.prop("href"),l=e.attr("href")||e.attr("xlink:href");D(h)&&"[object SVGAnimatedString]"===h.toString()&&(h=Aa(h.animVal).href);E.test(h)||!h||e.attr("target")||b.isDefaultPrevented()||!k.$$parseLinkUrl(h,l)||(b.preventDefault(),k.absUrl()!=d.url()&&(c.$apply(),g.angular["ff-684208-preventDefault"]=!0))}});Cb(k.absUrl())!=Cb(q)&&d.url(k.absUrl(),!0);var L=!0;d.onUrlChange(function(a,b){y(ra(t,a))?g.location.href=a:(c.$evalAsync(function(){var d= +k.absUrl(),e=k.$$state,f;k.$$parse(a);k.$$state=b;f=c.$broadcast("$locationChangeStart",a,d,b,e).defaultPrevented;k.absUrl()===a&&(f?(k.$$parse(d),k.$$state=e,h(d,!1,e)):(L=!1,l(d,e)))}),c.$$phase||c.$digest())});c.$watch(function(){var a=Cb(d.url()),b=Cb(k.absUrl()),f=d.state(),g=k.$$replace,m=a!==b||k.$$html5&&e.history&&f!==k.$$state;if(L||m)L=!1,c.$evalAsync(function(){var b=k.absUrl(),d=c.$broadcast("$locationChangeStart",b,a,k.$$state,f).defaultPrevented;k.absUrl()===b&&(d?(k.$$parse(a),k.$$state= +f):(m&&h(b,g,f===k.$$state?null:k.$$state),l(a,f)))});k.$$replace=!1});return k}]}function hf(){var b=!0,a=this;this.debugEnabled=function(a){return x(a)?(b=a,this):b};this.$get=["$window",function(c){function d(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=c.console||{},e=b[a]||b.log||v;a=!1;try{a=!!e.apply}catch(l){}return a?function(){var a= +[];n(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function Wa(b,a){if("__defineGetter__"===b||"__defineSetter__"===b||"__lookupGetter__"===b||"__lookupSetter__"===b||"__proto__"===b)throw da("isecfld",a);return b}function Ba(b,a){if(b){if(b.constructor===b)throw da("isecfn",a);if(b.window===b)throw da("isecwindow", +a);if(b.children&&(b.nodeName||b.prop&&b.attr&&b.find))throw da("isecdom",a);if(b===Object)throw da("isecobj",a);}return b}function ld(b,a){if(b){if(b.constructor===b)throw da("isecfn",a);if(b===Uf||b===Vf||b===Wf)throw da("isecff",a);}}function Xf(b,a){return"undefined"!==typeof b?b:a}function md(b,a){return"undefined"===typeof b?a:"undefined"===typeof a?b:b+a}function U(b,a){var c,d;switch(b.type){case r.Program:c=!0;n(b.body,function(b){U(b.expression,a);c=c&&b.expression.constant});b.constant= +c;break;case r.Literal:b.constant=!0;b.toWatch=[];break;case r.UnaryExpression:U(b.argument,a);b.constant=b.argument.constant;b.toWatch=b.argument.toWatch;break;case r.BinaryExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant;b.toWatch=b.left.toWatch.concat(b.right.toWatch);break;case r.LogicalExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant;b.toWatch=b.constant?[]:[b];break;case r.ConditionalExpression:U(b.test,a);U(b.alternate,a);U(b.consequent, +a);b.constant=b.test.constant&&b.alternate.constant&&b.consequent.constant;b.toWatch=b.constant?[]:[b];break;case r.Identifier:b.constant=!1;b.toWatch=[b];break;case r.MemberExpression:U(b.object,a);b.computed&&U(b.property,a);b.constant=b.object.constant&&(!b.computed||b.property.constant);b.toWatch=[b];break;case r.CallExpression:c=b.filter?!a(b.callee.name).$stateful:!1;d=[];n(b.arguments,function(b){U(b,a);c=c&&b.constant;b.constant||d.push.apply(d,b.toWatch)});b.constant=c;b.toWatch=b.filter&& +!a(b.callee.name).$stateful?d:[b];break;case r.AssignmentExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant;b.toWatch=[b];break;case r.ArrayExpression:c=!0;d=[];n(b.elements,function(b){U(b,a);c=c&&b.constant;b.constant||d.push.apply(d,b.toWatch)});b.constant=c;b.toWatch=d;break;case r.ObjectExpression:c=!0;d=[];n(b.properties,function(b){U(b.value,a);c=c&&b.value.constant;b.value.constant||d.push.apply(d,b.value.toWatch)});b.constant=c;b.toWatch=d;break;case r.ThisExpression:b.constant= +!1,b.toWatch=[]}}function nd(b){if(1==b.length){b=b[0].expression;var a=b.toWatch;return 1!==a.length?a:a[0]!==b?a:u}}function od(b){return b.type===r.Identifier||b.type===r.MemberExpression}function pd(b){if(1===b.body.length&&od(b.body[0].expression))return{type:r.AssignmentExpression,left:b.body[0].expression,right:{type:r.NGValueParameter},operator:"="}}function qd(b){return 0===b.body.length||1===b.body.length&&(b.body[0].expression.type===r.Literal||b.body[0].expression.type===r.ArrayExpression|| +b.body[0].expression.type===r.ObjectExpression)}function rd(b,a){this.astBuilder=b;this.$filter=a}function sd(b,a){this.astBuilder=b;this.$filter=a}function Fb(b){return"constructor"==b}function dc(b){return B(b.valueOf)?b.valueOf():Yf.call(b)}function jf(){var b=ga(),a=ga();this.$get=["$filter",function(c){function d(a,b){return null==a||null==b?a===b:"object"===typeof a&&(a=dc(a),"object"===typeof a)?!1:a===b||a!==a&&b!==b}function e(a,b,c,e,f){var g=e.inputs,h;if(1===g.length){var k=d,g=g[0];return a.$watch(function(a){var b= +g(a);d(b,k)||(h=e(a,u,u,[b]),k=b&&dc(b));return h},b,c,f)}for(var l=[],m=[],q=0,n=g.length;q=this.promise.$$state.status&&d&&d.length&&b(function(){for(var b, +e,f=0,g=d.length;fa)for(b in l++,f)e.hasOwnProperty(b)||(t--,delete f[b])}else f!==e&&(f=e,l++);return l}}c.$stateful=!0;var d=this,e,f,g,k=1t&&(C=4-t,w[C]||(w[C]=[]),w[C].push({msg:B(b.exp)?"fn: "+(b.exp.name||b.exp.toString()):b.exp,newVal:f,oldVal:h}));else if(b===d){s=!1;break a}}catch(y){g(y)}if(!(k=n.$$watchersCount&&n.$$childHead||n!==this&&n.$$nextSibling))for(;n!==this&&!(k=n.$$nextSibling);)n=n.$parent}while(n=k);if((s||u.length)&&!t--)throw p.$$phase=null,c("infdig",a,w);}while(s||u.length);for(p.$$phase= +null;x.length;)try{x.shift()()}catch(z){g(z)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;this===p&&l.$$applicationDestroyed();s(this,-this.$$watchersCount);for(var b in this.$$listenerCount)t(this,this.$$listenerCount[b],b);a&&a.$$childHead==this&&(a.$$childHead=this.$$nextSibling);a&&a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&& +(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=v;this.$on=this.$watch=this.$watchGroup=function(){return v};this.$$listeners={};this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}},$eval:function(a,b){return h(a)(this,b)},$evalAsync:function(a,b){p.$$phase||u.length||l.defer(function(){u.length&&p.$digest()});u.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){x.push(a)}, +$apply:function(a){try{q("$apply");try{return this.$eval(a)}finally{p.$$phase=null}}catch(b){g(b)}finally{try{p.$digest()}catch(c){throw g(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&M.push(b);w()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,t(e,1,a))}},$emit:function(a, +b){var c=[],d,e=this,f=!1,h={name:a,targetScope:e,stopPropagation:function(){f=!0},preventDefault:function(){h.defaultPrevented=!0},defaultPrevented:!1},k=cb([h],arguments,1),l,m;do{d=e.$$listeners[a]||c;h.currentScope=e;l=0;for(m=d.length;lVa)throw Ca("iequirks");var d=ia(oa);d.isEnabled=function(){return b};d.trustAs=c.trustAs;d.getTrusted=c.getTrusted;d.valueOf=c.valueOf;b||(d.trustAs=d.getTrusted=function(a,b){return b},d.valueOf=Za);d.parseAs=function(b,c){var e=a(c);return e.literal&&e.constant?e:a(c,function(a){return d.getTrusted(b,a)})};var e=d.parseAs, +f=d.getTrusted,g=d.trustAs;n(oa,function(a,b){var c=I(b);d[fb("parse_as_"+c)]=function(b){return e(a,b)};d[fb("get_trusted_"+c)]=function(b){return f(a,b)};d[fb("trust_as_"+c)]=function(b){return g(a,b)}});return d}]}function pf(){this.$get=["$window","$document",function(b,a){var c={},d=Y((/android (\d+)/.exec(I((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||{}).userAgent),f=a[0]||{},g,h=/^(Moz|webkit|ms)(?=[A-Z])/,l=f.body&&f.body.style,k=!1,m=!1;if(l){for(var q in l)if(k= +h.exec(q)){g=k[0];g=g.substr(0,1).toUpperCase()+g.substr(1);break}g||(g="WebkitOpacity"in l&&"webkit");k=!!("transition"in l||g+"Transition"in l);m=!!("animation"in l||g+"Animation"in l);!d||k&&m||(k=H(l.webkitTransition),m=H(l.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hasEvent:function(a){if("input"===a&&11>=Va)return!1;if(y(c[a])){var b=f.createElement("div");c[a]="on"+a in b}return c[a]},csp:Fa(),vendorPrefix:g,transitions:k,animations:m,android:d}}]}function rf(){this.$get= +["$templateCache","$http","$q","$sce",function(b,a,c,d){function e(f,g){e.totalPendingRequests++;H(f)&&b.get(f)||(f=d.getTrustedResourceUrl(f));var h=a.defaults&&a.defaults.transformResponse;K(h)?h=h.filter(function(a){return a!==Zb}):h===Zb&&(h=null);return a.get(f,{cache:b,transformResponse:h})["finally"](function(){e.totalPendingRequests--}).then(function(a){b.put(f,a.data);return a.data},function(a){if(!g)throw ea("tpload",f,a.status,a.statusText);return c.reject(a)})}e.totalPendingRequests=0; +return e}]}function sf(){this.$get=["$rootScope","$browser","$location",function(b,a,c){return{findBindings:function(a,b,c){a=a.getElementsByClassName("ng-binding");var g=[];n(a,function(a){var d=aa.element(a).data("$binding");d&&n(d,function(d){c?(new RegExp("(^|\\s)"+ud(b)+"(\\s|\\||$)")).test(d)&&g.push(a):-1!=d.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,c){for(var g=["ng-","data-ng-","ng\\:"],h=0;hb;b=Math.abs(b);var g=Infinity===b;if(!g&&!isFinite(b))return"";var h=b+"",l="",k=!1,m=[];g&&(l="\u221e");if(!g&&-1!==h.indexOf("e")){var q=h.match(/([\d\.]+)e(-?)(\d+)/);q&&"-"==q[2]&&q[3]>e+1?b=0:(l=h,k=!0)}if(g||k)0b&&(l=b.toFixed(e),b=parseFloat(l));else{g=(h.split(Dd)[1]||"").length; +y(e)&&(e=Math.min(Math.max(a.minFrac,g),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);var g=(""+b).split(Dd),h=g[0],g=g[1]||"",q=0,s=a.lgSize,t=a.gSize;if(h.length>=s+t)for(q=h.length-s,k=0;kb&&(d="-",b=-b);for(b=""+b;b.length-c)e+=c;0===e&&-12==c&&(e=12);return Gb(e,a,d)}}function Hb(b,a){return function(c,d){var e=c["get"+b](),f=rb(a?"SHORT"+b:b);return d[f][e]}}function Ed(b){var a=(new Date(b,0,1)).getDay();return new Date(b,0,(4>=a?5:12)-a)}function Fd(b){return function(a){var c=Ed(a.getFullYear());a=+new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))- ++c;a=1+Math.round(a/6048E5);return Gb(a,b)}}function hc(b,a){return 0>=b.getFullYear()?a.ERAS[0]:a.ERAS[1]}function zd(b){function a(a){var b;if(b=a.match(c)){a=new Date(0);var f=0,g=0,h=b[8]?a.setUTCFullYear:a.setFullYear,l=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=Y(b[9]+b[10]),g=Y(b[9]+b[11]));h.call(a,Y(b[1]),Y(b[2])-1,Y(b[3]));f=Y(b[4]||0)-f;g=Y(b[5]||0)-g;h=Y(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));l.call(a,f,g,h,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/; +return function(c,e,f){var g="",h=[],l,k;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;H(c)&&(c=fg.test(c)?Y(c):a(c));X(c)&&(c=new Date(c));if(!ca(c)||!isFinite(c.getTime()))return c;for(;e;)(k=gg.exec(e))?(h=cb(h,k,1),e=h.pop()):(h.push(e),e=null);var m=c.getTimezoneOffset();f&&(m=vc(f,c.getTimezoneOffset()),c=Ob(c,f,!0));n(h,function(a){l=hg[a];g+=l?l(c,b.DATETIME_FORMATS,m):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function ag(){return function(b,a){y(a)&&(a=2);return db(b,a)}}function bg(){return function(b, +a,c){a=Infinity===Math.abs(Number(a))?Number(a):Y(a);if(isNaN(a))return b;X(b)&&(b=b.toString());if(!K(b)&&!H(b))return b;c=!c||isNaN(c)?0:Y(c);c=0>c&&c>=-b.length?b.length+c:c;return 0<=a?b.slice(c,c+a):0===c?b.slice(a,b.length):b.slice(Math.max(0,c+a),c)}}function Bd(b){function a(a,c){c=c?-1:1;return a.map(function(a){var d=1,h=Za;if(B(a))h=a;else if(H(a)){if("+"==a.charAt(0)||"-"==a.charAt(0))d="-"==a.charAt(0)?-1:1,a=a.substring(1);if(""!==a&&(h=b(a),h.constant))var l=h(),h=function(a){return a[l]}}return{get:h, +descending:d*c}})}function c(a){switch(typeof a){case "number":case "boolean":case "string":return!0;default:return!1}}return function(b,e,f){if(!Da(b))return b;K(e)||(e=[e]);0===e.length&&(e=["+"]);var g=a(e,f);g.push({get:function(){return{}},descending:f?-1:1});b=Array.prototype.map.call(b,function(a,b){return{value:a,predicateValues:g.map(function(d){var e=d.get(a);d=typeof e;if(null===e)d="string",e="null";else if("string"===d)e=e.toLowerCase();else if("object"===d)a:{if("function"===typeof e.valueOf&& +(e=e.valueOf(),c(e)))break a;if(pc(e)&&(e=e.toString(),c(e)))break a;e=b}return{value:e,type:d}})}});b.sort(function(a,b){for(var c=0,d=0,e=g.length;db||37<=b&&40>=b||m(a,this,this.value)});if(e.hasEvent("paste"))a.on("paste cut", +m)}a.on("change",l);d.$render=function(){var b=d.$isEmpty(d.$viewValue)?"":d.$viewValue;a.val()!==b&&a.val(b)}}function Kb(b,a){return function(c,d){var e,f;if(ca(c))return c;if(H(c)){'"'==c.charAt(0)&&'"'==c.charAt(c.length-1)&&(c=c.substring(1,c.length-1));if(ig.test(c))return new Date(c);b.lastIndex=0;if(e=b.exec(c))return e.shift(),f=d?{yyyy:d.getFullYear(),MM:d.getMonth()+1,dd:d.getDate(),HH:d.getHours(),mm:d.getMinutes(),ss:d.getSeconds(),sss:d.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0, +mm:0,ss:0,sss:0},n(e,function(b,c){c=r};g.$observe("min",function(a){r=s(a);h.$validate()})}if(x(g.max)||g.ngMax){var w;h.$validators.max=function(a){return!q(a)||y(w)||c(a)<=w};g.$observe("max",function(a){w=s(a);h.$validate()})}}}function Id(b,a,c,d){(d.$$hasNativeValidators=D(a[0].validity))&&d.$parsers.push(function(b){var c=a.prop("validity")||{}; +return c.badInput&&!c.typeMismatch?u:b})}function Jd(b,a,c,d,e){if(x(d)){b=b(d);if(!b.constant)throw kb("constexpr",c,d);return b(a)}return e}function jc(b,a){b="ngClass"+b;return["$animate",function(c){function d(a,b){var c=[],d=0;a:for(;d(?:<\/\1>|)$/,Sb=/<|&#?\w+;/, +Bf=/<([\w:]+)/,Cf=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,na={option:[1,'"],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};na.optgroup=na.option;na.tbody=na.tfoot=na.colgroup=na.caption=na.thead;na.th=na.td;var Ra=R.prototype={ready:function(b){function a(){c||(c=!0,b())}var c= +!1;"complete"===W.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),R(N).on("load",a))},toString:function(){var b=[];n(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?z(this[b]):z(this[this.length+b])},length:0,push:kg,sort:[].sort,splice:[].splice},Ab={};n("multiple selected checked disabled readOnly required open".split(" "),function(b){Ab[I(b)]=b});var Rc={};n("input select option textarea button form details".split(" "),function(b){Rc[b]=!0});var Sc= +{ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};n({data:Vb,removeData:ub,hasData:function(b){for(var a in gb[b.ng339])return!0;return!1}},function(b,a){R[a]=b});n({data:Vb,inheritedData:zb,scope:function(b){return z.data(b,"$scope")||zb(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return z.data(b,"$isolateScope")||z.data(b,"$isolateScopeNoTemplate")},controller:Oc,injector:function(b){return zb(b,"$injector")},removeAttr:function(b, +a){b.removeAttribute(a)},hasClass:wb,css:function(b,a,c){a=fb(a);if(x(c))b.style[a]=c;else return b.style[a]},attr:function(b,a,c){var d=b.nodeType;if(d!==Pa&&2!==d&&8!==d)if(d=I(a),Ab[d])if(x(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||v).specified?d:u;else if(x(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?u:b},prop:function(b,a,c){if(x(c))b[a]=c;else return b[a]},text:function(){function b(a, +b){if(y(b)){var d=a.nodeType;return d===pa||d===Pa?a.textContent:""}a.textContent=b}b.$dv="";return b}(),val:function(b,a){if(y(a)){if(b.multiple&&"select"===ta(b)){var c=[];n(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(y(a))return b.innerHTML;tb(b,!0);b.innerHTML=a},empty:Pc},function(b,a){R.prototype[a]=function(a,d){var e,f,g=this.length;if(b!==Pc&&(2==b.length&&b!==wb&&b!==Oc?a:d)===u){if(D(a)){for(e=0;e< +g;e++)if(b===Vb)b(this[e],a);else for(f in a)b(this[e],f,a[f]);return this}e=b.$dv;g=e===u?Math.min(g,1):g;for(f=0;f <= >= && || ! = |".split(" "),function(a){Lb[a]=!0});var rg={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v", +"'":"'",'"':'"'},ec=function(a){this.options=a};ec.prototype={constructor:ec,lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"=== +a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=x(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw da("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.index","<=",">=");)a={type:r.BinaryExpression,operator:c.text,left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a={type:r.BinaryExpression,operator:c.text,left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a={type:r.BinaryExpression,operator:c.text, +left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:r.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object():this.constants.hasOwnProperty(this.peek().text)?a=fa(this.constants[this.consume().text]):this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant(): +this.throwError("not a primary expression",this.peek());for(var c;c=this.expect("(","[",".");)"("===c.text?(a={type:r.CallExpression,callee:a,arguments:this.parseArguments()},this.consume(")")):"["===c.text?(a={type:r.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===c.text?a={type:r.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var c={type:r.CallExpression,callee:this.identifier(), +arguments:a,filter:!0};this.expect(":");)a.push(this.expression());return c},parseArguments:function(){var a=[];if(")"!==this.peekToken().text){do a.push(this.expression());while(this.expect(","))}return a},identifier:function(){var a=this.consume();a.identifier||this.throwError("is not a valid identifier",a);return{type:r.Identifier,name:a.text}},constant:function(){return{type:r.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break; +a.push(this.expression())}while(this.expect(","))}this.consume("]");return{type:r.ArrayExpression,elements:a}},object:function(){var a=[],c;if("}"!==this.peekToken().text){do{if(this.peek("}"))break;c={type:r.Property,kind:"init"};this.peek().constant?c.key=this.constant():this.peek().identifier?c.key=this.identifier():this.throwError("invalid key",this.peek());this.consume(":");c.value=this.expression();a.push(c)}while(this.expect(","))}this.consume("}");return{type:r.ObjectExpression,properties:a}}, +throwError:function(a,c){throw da("syntax",c.text,a,c.index+1,this.text,this.text.substring(c.index));},consume:function(a){if(0===this.tokens.length)throw da("ueoe",this.text);var c=this.expect(a);c||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return c},peekToken:function(){if(0===this.tokens.length)throw da("ueoe",this.text);return this.tokens[0]},peek:function(a,c,d,e){return this.peekAhead(0,a,c,d,e)},peekAhead:function(a,c,d,e,f){if(this.tokens.length>a){a=this.tokens[a]; +var g=a.text;if(g===c||g===d||g===e||g===f||!(c||d||e||f))return a}return!1},expect:function(a,c,d,e){return(a=this.peek(a,c,d,e))?(this.tokens.shift(),a):!1},constants:{"true":{type:r.Literal,value:!0},"false":{type:r.Literal,value:!1},"null":{type:r.Literal,value:null},undefined:{type:r.Literal,value:u},"this":{type:r.ThisExpression}}};rd.prototype={compile:function(a,c){var d=this,e=this.astBuilder.ast(a);this.state={nextId:0,filters:{},expensiveChecks:c,fn:{vars:[],body:[],own:{}},assign:{vars:[], +body:[],own:{}},inputs:[]};U(e,d.$filter);var f="",g;this.stage="assign";if(g=pd(e))this.state.computing="assign",f=this.nextId(),this.recurse(g,f),f="fn.assign="+this.generateFunction("assign","s,v,l");g=nd(e.body);d.stage="inputs";n(g,function(a,c){var e="fn"+c;d.state[e]={vars:[],body:[],own:{}};d.state.computing=e;var f=d.nextId();d.recurse(a,f);d.return_(f);d.state.inputs.push(e);a.watchId=c});this.state.computing="fn";this.stage="main";this.recurse(e);f='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+ +"var fn="+this.generateFunction("fn","s,l,a,i")+f+this.watchFns()+"return fn;";f=(new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","ifDefined","plus","text",f))(this.$filter,Wa,Ba,ld,Xf,md,a);this.state=this.stage=u;f.literal=qd(e);f.constant=e.constant;return f},USE:"use",STRICT:"strict",watchFns:function(){var a=[],c=this.state.inputs,d=this;n(c,function(c){a.push("var "+c+"="+d.generateFunction(c,"s"))});c.length&&a.push("fn.inputs=["+c.join(",")+"];");return a.join("")}, +generateFunction:function(a,c){return"function("+c+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a=[],c=this;n(this.state.filters,function(d,e){a.push(d+"=$filter("+c.escape(e)+")")});return a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")},recurse:function(a,c,d,e,f,g){var h,l,k=this,m,q;e=e||v;if(!g&&x(a.watchId))c=c||this.nextId(),this.if_("i", +this.lazyAssign(c,this.computedMember("i",a.watchId)),this.lazyRecurse(a,c,d,e,f,!0));else switch(a.type){case r.Program:n(a.body,function(c,d){k.recurse(c.expression,u,u,function(a){l=a});d!==a.body.length-1?k.current().body.push(l,";"):k.return_(l)});break;case r.Literal:q=this.escape(a.value);this.assign(c,q);e(q);break;case r.UnaryExpression:this.recurse(a.argument,u,u,function(a){l=a});q=a.operator+"("+this.ifDefined(l,0)+")";this.assign(c,q);e(q);break;case r.BinaryExpression:this.recurse(a.left, +u,u,function(a){h=a});this.recurse(a.right,u,u,function(a){l=a});q="+"===a.operator?this.plus(h,l):"-"===a.operator?this.ifDefined(h,0)+a.operator+this.ifDefined(l,0):"("+h+")"+a.operator+"("+l+")";this.assign(c,q);e(q);break;case r.LogicalExpression:c=c||this.nextId();k.recurse(a.left,c);k.if_("&&"===a.operator?c:k.not(c),k.lazyRecurse(a.right,c));e(c);break;case r.ConditionalExpression:c=c||this.nextId();k.recurse(a.test,c);k.if_(c,k.lazyRecurse(a.alternate,c),k.lazyRecurse(a.consequent,c));e(c); +break;case r.Identifier:c=c||this.nextId();d&&(d.context="inputs"===k.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",a.name)+"?l:s"),d.computed=!1,d.name=a.name);Wa(a.name);k.if_("inputs"===k.stage||k.not(k.getHasOwnProperty("l",a.name)),function(){k.if_("inputs"===k.stage||"s",function(){f&&1!==f&&k.if_(k.not(k.nonComputedMember("s",a.name)),k.lazyAssign(k.nonComputedMember("s",a.name),"{}"));k.assign(c,k.nonComputedMember("s",a.name))})},c&&k.lazyAssign(c,k.nonComputedMember("l", +a.name)));(k.state.expensiveChecks||Fb(a.name))&&k.addEnsureSafeObject(c);e(c);break;case r.MemberExpression:h=d&&(d.context=this.nextId())||this.nextId();c=c||this.nextId();k.recurse(a.object,h,u,function(){k.if_(k.notNull(h),function(){if(a.computed)l=k.nextId(),k.recurse(a.property,l),k.addEnsureSafeMemberName(l),f&&1!==f&&k.if_(k.not(k.computedMember(h,l)),k.lazyAssign(k.computedMember(h,l),"{}")),q=k.ensureSafeObject(k.computedMember(h,l)),k.assign(c,q),d&&(d.computed=!0,d.name=l);else{Wa(a.property.name); +f&&1!==f&&k.if_(k.not(k.nonComputedMember(h,a.property.name)),k.lazyAssign(k.nonComputedMember(h,a.property.name),"{}"));q=k.nonComputedMember(h,a.property.name);if(k.state.expensiveChecks||Fb(a.property.name))q=k.ensureSafeObject(q);k.assign(c,q);d&&(d.computed=!1,d.name=a.property.name)}},function(){k.assign(c,"undefined")});e(c)},!!f);break;case r.CallExpression:c=c||this.nextId();a.filter?(l=k.filter(a.callee.name),m=[],n(a.arguments,function(a){var c=k.nextId();k.recurse(a,c);m.push(c)}),q=l+ +"("+m.join(",")+")",k.assign(c,q),e(c)):(l=k.nextId(),h={},m=[],k.recurse(a.callee,l,h,function(){k.if_(k.notNull(l),function(){k.addEnsureSafeFunction(l);n(a.arguments,function(a){k.recurse(a,k.nextId(),u,function(a){m.push(k.ensureSafeObject(a))})});h.name?(k.state.expensiveChecks||k.addEnsureSafeObject(h.context),q=k.member(h.context,h.name,h.computed)+"("+m.join(",")+")"):q=l+"("+m.join(",")+")";q=k.ensureSafeObject(q);k.assign(c,q)},function(){k.assign(c,"undefined")});e(c)}));break;case r.AssignmentExpression:l= +this.nextId();h={};if(!od(a.left))throw da("lval");this.recurse(a.left,u,h,function(){k.if_(k.notNull(h.context),function(){k.recurse(a.right,l);k.addEnsureSafeObject(k.member(h.context,h.name,h.computed));q=k.member(h.context,h.name,h.computed)+a.operator+l;k.assign(c,q);e(c||q)})},1);break;case r.ArrayExpression:m=[];n(a.elements,function(a){k.recurse(a,k.nextId(),u,function(a){m.push(a)})});q="["+m.join(",")+"]";this.assign(c,q);e(q);break;case r.ObjectExpression:m=[];n(a.properties,function(a){k.recurse(a.value, +k.nextId(),u,function(c){m.push(k.escape(a.key.type===r.Identifier?a.key.name:""+a.key.value)+":"+c)})});q="{"+m.join(",")+"}";this.assign(c,q);e(q);break;case r.ThisExpression:this.assign(c,"s");e("s");break;case r.NGValueParameter:this.assign(c,"v"),e("v")}},getHasOwnProperty:function(a,c){var d=a+"."+c,e=this.current().own;e.hasOwnProperty(d)||(e[d]=this.nextId(!1,a+"&&("+this.escape(c)+" in "+a+")"));return e[d]},assign:function(a,c){if(a)return this.current().body.push(a,"=",c,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)|| +(this.state.filters[a]=this.nextId(!0));return this.state.filters[a]},ifDefined:function(a,c){return"ifDefined("+a+","+this.escape(c)+")"},plus:function(a,c){return"plus("+a+","+c+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a,c,d){if(!0===a)c();else{var e=this.current().body;e.push("if(",a,"){");c();e.push("}");d&&(e.push("else{"),d(),e.push("}"))}},not:function(a){return"!("+a+")"},notNull:function(a){return a+"!=null"},nonComputedMember:function(a,c){return a+ +"."+c},computedMember:function(a,c){return a+"["+c+"]"},member:function(a,c,d){return d?this.computedMember(a,c):this.nonComputedMember(a,c)},addEnsureSafeObject:function(a){this.current().body.push(this.ensureSafeObject(a),";")},addEnsureSafeMemberName:function(a){this.current().body.push(this.ensureSafeMemberName(a),";")},addEnsureSafeFunction:function(a){this.current().body.push(this.ensureSafeFunction(a),";")},ensureSafeObject:function(a){return"ensureSafeObject("+a+",text)"},ensureSafeMemberName:function(a){return"ensureSafeMemberName("+ +a+",text)"},ensureSafeFunction:function(a){return"ensureSafeFunction("+a+",text)"},lazyRecurse:function(a,c,d,e,f,g){var h=this;return function(){h.recurse(a,c,d,e,f,g)}},lazyAssign:function(a,c){var d=this;return function(){d.assign(a,c)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(H(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(X(a))return a.toString();if(!0===a)return"true"; +if(!1===a)return"false";if(null===a)return"null";if("undefined"===typeof a)return"undefined";throw da("esc");},nextId:function(a,c){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(c?"="+c:""));return d},current:function(){return this.state[this.state.computing]}};sd.prototype={compile:function(a,c){var d=this,e=this.astBuilder.ast(a);this.expression=a;this.expensiveChecks=c;U(e,d.$filter);var f,g;if(f=pd(e))g=this.recurse(f);f=nd(e.body);var h;f&&(h=[],n(f,function(a,c){var e=d.recurse(a); +a.input=e;h.push(e);a.watchId=c}));var l=[];n(e.body,function(a){l.push(d.recurse(a.expression))});f=0===e.body.length?function(){}:1===e.body.length?l[0]:function(a,c){var d;n(l,function(e){d=e(a,c)});return d};g&&(f.assign=function(a,c,d){return g(a,d,c)});h&&(f.inputs=h);f.literal=qd(e);f.constant=e.constant;return f},recurse:function(a,c,d){var e,f,g=this,h;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case r.Literal:return this.value(a.value,c);case r.UnaryExpression:return f= +this.recurse(a.argument),this["unary"+a.operator](f,c);case r.BinaryExpression:return e=this.recurse(a.left),f=this.recurse(a.right),this["binary"+a.operator](e,f,c);case r.LogicalExpression:return e=this.recurse(a.left),f=this.recurse(a.right),this["binary"+a.operator](e,f,c);case r.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),c);case r.Identifier:return Wa(a.name,g.expression),g.identifier(a.name,g.expensiveChecks||Fb(a.name), +c,d,g.expression);case r.MemberExpression:return e=this.recurse(a.object,!1,!!d),a.computed||(Wa(a.property.name,g.expression),f=a.property.name),a.computed&&(f=this.recurse(a.property)),a.computed?this.computedMember(e,f,c,d,g.expression):this.nonComputedMember(e,f,g.expensiveChecks,c,d,g.expression);case r.CallExpression:return h=[],n(a.arguments,function(a){h.push(g.recurse(a))}),a.filter&&(f=this.$filter(a.callee.name)),a.filter||(f=this.recurse(a.callee,!0)),a.filter?function(a,d,e,g){for(var n= +[],t=0;t":function(a,c,d){return function(e,f,g,h){e=a(e,f,g,h)>c(e,f,g,h);return d?{value:e}:e}},"binary<=":function(a,c,d){return function(e, +f,g,h){e=a(e,f,g,h)<=c(e,f,g,h);return d?{value:e}:e}},"binary>=":function(a,c,d){return function(e,f,g,h){e=a(e,f,g,h)>=c(e,f,g,h);return d?{value:e}:e}},"binary&&":function(a,c,d){return function(e,f,g,h){e=a(e,f,g,h)&&c(e,f,g,h);return d?{value:e}:e}},"binary||":function(a,c,d){return function(e,f,g,h){e=a(e,f,g,h)||c(e,f,g,h);return d?{value:e}:e}},"ternary?:":function(a,c,d,e){return function(f,g,h,l){f=a(f,g,h,l)?c(f,g,h,l):d(f,g,h,l);return e?{value:f}:f}},value:function(a,c){return function(){return c? +{context:u,name:u,value:a}:a}},identifier:function(a,c,d,e,f){return function(g,h,l,k){g=h&&a in h?h:g;e&&1!==e&&g&&!g[a]&&(g[a]={});h=g?g[a]:u;c&&Ba(h,f);return d?{context:g,name:a,value:h}:h}},computedMember:function(a,c,d,e,f){return function(g,h,l,k){var m=a(g,h,l,k),q,n;null!=m&&(q=c(g,h,l,k),Wa(q,f),e&&1!==e&&m&&!m[q]&&(m[q]={}),n=m[q],Ba(n,f));return d?{context:m,name:q,value:n}:n}},nonComputedMember:function(a,c,d,e,f,g){return function(h,l,k,m){h=a(h,l,k,m);f&&1!==f&&h&&!h[c]&&(h[c]={}); +l=null!=h?h[c]:u;(d||Fb(c))&&Ba(l,g);return e?{context:h,name:c,value:l}:l}},inputs:function(a,c){return function(d,e,f,g){return g?g[c]:a(d,e,f)}}};var fc=function(a,c,d){this.lexer=a;this.$filter=c;this.options=d;this.ast=new r(this.lexer);this.astCompiler=d.csp?new sd(this.ast,c):new rd(this.ast,c)};fc.prototype={constructor:fc,parse:function(a){return this.astCompiler.compile(a,this.options.expensiveChecks)}};ga();ga();var Yf=Object.prototype.valueOf,Ca=G("$sce"),oa={HTML:"html",CSS:"css",URL:"url", +RESOURCE_URL:"resourceUrl",JS:"js"},ea=G("$compile"),Z=W.createElement("a"),wd=Aa(N.location.href);xd.$inject=["$document"];Jc.$inject=["$provide"];yd.$inject=["$locale"];Ad.$inject=["$locale"];var Dd=".",hg={yyyy:$("FullYear",4),yy:$("FullYear",2,0,!0),y:$("FullYear",1),MMMM:Hb("Month"),MMM:Hb("Month",!0),MM:$("Month",2,1),M:$("Month",1,1),dd:$("Date",2),d:$("Date",1),HH:$("Hours",2),H:$("Hours",1),hh:$("Hours",2,-12),h:$("Hours",1,-12),mm:$("Minutes",2),m:$("Minutes",1),ss:$("Seconds",2),s:$("Seconds", +1),sss:$("Milliseconds",3),EEEE:Hb("Day"),EEE:Hb("Day",!0),a:function(a,c){return 12>a.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a,c,d){a=-1*d;return a=(0<=a?"+":"")+(Gb(Math[0=a.getFullYear()?c.ERANAMES[0]:c.ERANAMES[1]}},gg=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,fg=/^\-?\d+$/;zd.$inject=["$locale"];var cg=qa(I),dg=qa(rb);Bd.$inject= +["$parse"];var he=qa({restrict:"E",compile:function(a,c){if(!c.href&&!c.xlinkHref)return function(a,c){if("a"===c[0].nodeName.toLowerCase()){var f="[object SVGAnimatedString]"===sa.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}}),sb={};n(Ab,function(a,c){function d(a,d,f){a.$watch(f[e],function(a){f.$set(c,!!a)})}if("multiple"!=a){var e=va("ng-"+c),f=d;"checked"===a&&(f=function(a,c,f){f.ngModel!==f[e]&&d(a,c,f)});sb[e]=function(){return{restrict:"A", +priority:100,link:f}}}});n(Sc,function(a,c){sb[c]=function(){return{priority:100,link:function(a,e,f){if("ngPattern"===c&&"/"==f.ngPattern.charAt(0)&&(e=f.ngPattern.match(jg))){f.$set("ngPattern",new RegExp(e[1],e[2]));return}a.$watch(f[c],function(a){f.$set(c,a)})}}}});n(["src","srcset","href"],function(a){var c=va("ng-"+a);sb[c]=function(){return{priority:99,link:function(d,e,f){var g=a,h=a;"href"===a&&"[object SVGAnimatedString]"===sa.call(e.prop("href"))&&(h="xlinkHref",f.$attr[h]="xlink:href", +g=null);f.$observe(c,function(c){c?(f.$set(h,c),Va&&g&&e.prop(g,f[h])):"href"===a&&f.$set(h,null)})}}}});var Ib={$addControl:v,$$renameControl:function(a,c){a.$name=c},$removeControl:v,$setValidity:v,$setDirty:v,$setPristine:v,$setSubmitted:v};Gd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Od=function(a){return["$timeout","$parse",function(c,d){function e(a){return""===a?d('this[""]').assign:d(a).assign||v}return{name:"form",restrict:a?"EAC":"E",controller:Gd,compile:function(d, +g){d.addClass(Xa).addClass(lb);var h=g.name?"name":a&&g.ngForm?"ngForm":!1;return{pre:function(a,d,f,g){if(!("action"in f)){var n=function(c){a.$apply(function(){g.$commitViewValue();g.$setSubmitted()});c.preventDefault()};d[0].addEventListener("submit",n,!1);d.on("$destroy",function(){c(function(){d[0].removeEventListener("submit",n,!1)},0,!1)})}var t=g.$$parentForm,r=h?e(g.$name):v;h&&(r(a,g),f.$observe(h,function(c){g.$name!==c&&(r(a,u),t.$$renameControl(g,c),r=e(g.$name),r(a,g))}));d.on("$destroy", +function(){t.$removeControl(g);r(a,u);Q(g,Ib)})}}}}}]},ie=Od(),ve=Od(!0),ig=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,sg=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,tg=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,ug=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Pd=/^(\d{4})-(\d{2})-(\d{2})$/,Qd=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,kc=/^(\d{4})-W(\d\d)$/, +Rd=/^(\d{4})-(\d\d)$/,Sd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Td={text:function(a,c,d,e,f,g){ib(a,c,d,e,f,g);ic(e)},date:jb("date",Pd,Kb(Pd,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":jb("datetimelocal",Qd,Kb(Qd,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:jb("time",Sd,Kb(Sd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:jb("week",kc,function(a,c){if(ca(a))return a;if(H(a)){kc.lastIndex=0;var d=kc.exec(a);if(d){var e=+d[1],f=+d[2],g=d=0,h=0,l=0,k=Ed(e),f=7*(f-1); +c&&(d=c.getHours(),g=c.getMinutes(),h=c.getSeconds(),l=c.getMilliseconds());return new Date(e,0,k.getDate()+f,d,g,h,l)}}return NaN},"yyyy-Www"),month:jb("month",Rd,Kb(Rd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,g){Id(a,c,d,e);ib(a,c,d,e,f,g);e.$$parserName="number";e.$parsers.push(function(a){return e.$isEmpty(a)?null:ug.test(a)?parseFloat(a):u});e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!X(a))throw kb("numfmt",a);a=a.toString()}return a});if(x(d.min)||d.ngMin){var h;e.$validators.min= +function(a){return e.$isEmpty(a)||y(h)||a>=h};d.$observe("min",function(a){x(a)&&!X(a)&&(a=parseFloat(a,10));h=X(a)&&!isNaN(a)?a:u;e.$validate()})}if(x(d.max)||d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)||y(l)||a<=l};d.$observe("max",function(a){x(a)&&!X(a)&&(a=parseFloat(a,10));l=X(a)&&!isNaN(a)?a:u;e.$validate()})}},url:function(a,c,d,e,f,g){ib(a,c,d,e,f,g);ic(e);e.$$parserName="url";e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||sg.test(d)}},email:function(a, +c,d,e,f,g){ib(a,c,d,e,f,g);ic(e);e.$$parserName="email";e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||tg.test(d)}},radio:function(a,c,d,e){y(d.name)&&c.attr("name",++mb);c.on("click",function(a){c[0].checked&&e.$setViewValue(d.value,a&&a.type)});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,g,h,l){var k=Jd(l,a,"ngTrueValue",d.ngTrueValue,!0),m=Jd(l,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click",function(a){e.$setViewValue(c[0].checked, +a&&a.type)});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return!1===a};e.$formatters.push(function(a){return ka(a,k)});e.$parsers.push(function(a){return a?k:m})},hidden:v,button:v,submit:v,reset:v,file:v},Dc=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,g,h,l){l[0]&&(Td[I(h.type)]||Td.text)(f,g,h,l[0],c,a,d,e)}}}}],vg=/^(true|false|\d+)$/,Ne=function(){return{restrict:"A",priority:100,compile:function(a, +c){return vg.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value",a)})}}}},ne=["$compile",function(a){return{restrict:"AC",compile:function(c){a.$$addBindingClass(c);return function(c,e,f){a.$$addBindingInfo(e,f.ngBind);e=e[0];c.$watch(f.ngBind,function(a){e.textContent=a===u?"":a})}}}}],pe=["$interpolate","$compile",function(a,c){return{compile:function(d){c.$$addBindingClass(d);return function(d,f,g){d=a(f.attr(g.$attr.ngBindTemplate)); +c.$$addBindingInfo(f,d.expressions);f=f[0];g.$observe("ngBindTemplate",function(a){f.textContent=a===u?"":a})}}}}],oe=["$sce","$parse","$compile",function(a,c,d){return{restrict:"A",compile:function(e,f){var g=c(f.ngBindHtml),h=c(f.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(e);return function(c,e,f){d.$$addBindingInfo(e,f.ngBindHtml);c.$watch(h,function(){e.html(a.getTrustedHtml(g(c))||"")})}}}}],Me=qa({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}), +qe=jc("",!0),se=jc("Odd",0),re=jc("Even",1),te=Ma({compile:function(a,c){c.$set("ngCloak",u);a.removeClass("ng-cloak")}}),ue=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Ic={},wg={blur:!0,focus:!0};n("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=va("ng-"+a);Ic[c]=["$parse","$rootScope",function(d,e){return{restrict:"A",compile:function(f,g){var h= +d(g[c],null,!0);return function(c,d){d.on(a,function(d){var f=function(){h(c,{$event:d})};wg[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var xe=["$animate",function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var h,l,k;c.$watch(e.ngIf,function(c){c?l||g(function(c,f){l=f;c[c.length++]=W.createComment(" end ngIf: "+e.ngIf+" ");h={clone:c};a.enter(c,d.parent(),d)}):(k&&(k.remove(),k=null),l&&(l.$destroy(),l=null),h&&(k= +qb(h.clone),a.leave(k).then(function(){k=null}),h=null))})}}}],ye=["$templateRequest","$anchorScroll","$animate",function(a,c,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:aa.noop,compile:function(e,f){var g=f.ngInclude||f.src,h=f.onload||"",l=f.autoscroll;return function(e,f,n,s,r){var u=0,v,w,p,A=function(){w&&(w.remove(),w=null);v&&(v.$destroy(),v=null);p&&(d.leave(p).then(function(){w=null}),w=p,p=null)};e.$watch(g,function(g){var n=function(){!x(l)||l&&!e.$eval(l)|| +c()},q=++u;g?(a(g,!0).then(function(a){if(q===u){var c=e.$new();s.template=a;a=r(c,function(a){A();d.enter(a,null,f).then(n)});v=c;p=a;v.$emit("$includeContentLoaded",g);e.$eval(h)}},function(){q===u&&(A(),e.$emit("$includeContentError",g))}),e.$emit("$includeContentRequested",g)):(A(),s.template=null)})}}}}],Pe=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Lc(f.template,W).childNodes)(c,function(a){d.append(a)}, +{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}],ze=Ma({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),Le=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)||", ",g="false"!==d.ngTrim,h=g?T(f):f;e.$parsers.push(function(a){if(!y(a)){var c=[];a&&n(a.split(h),function(a){a&&c.push(g?T(a):a)});return c}});e.$formatters.push(function(a){return K(a)?a.join(f):u});e.$isEmpty=function(a){return!a|| +!a.length}}}},lb="ng-valid",Kd="ng-invalid",Xa="ng-pristine",Jb="ng-dirty",Md="ng-pending",kb=G("ngModel"),xg=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,g,h,l,k,m){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=u;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1; +this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=u;this.$name=m(d.name||"",!1)(a);var q=f(d.ngModel),s=q.assign,r=q,E=s,L=null,w,p=this;this.$$setOptions=function(a){if((p.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),g=f(d.ngModel+"($$$p)");r=function(a){var d=q(a);B(d)&&(d=c(a));return d};E=function(a,c){B(q(a))?g(a,{$$$p:p.$modelValue}):s(a,p.$modelValue)}}else if(!q.assign)throw kb("nonassign",d.ngModel,ua(e));};this.$render=v;this.$isEmpty=function(a){return y(a)|| +""===a||null===a||a!==a};var A=e.inheritedData("$formController")||Ib,z=0;Hd({ctrl:this,$element:e,set:function(a,c){a[c]=!0},unset:function(a,c){delete a[c]},parentForm:A,$animate:g});this.$setPristine=function(){p.$dirty=!1;p.$pristine=!0;g.removeClass(e,Jb);g.addClass(e,Xa)};this.$setDirty=function(){p.$dirty=!0;p.$pristine=!1;g.removeClass(e,Xa);g.addClass(e,Jb);A.$setDirty()};this.$setUntouched=function(){p.$touched=!1;p.$untouched=!0;g.setClass(e,"ng-untouched","ng-touched")};this.$setTouched= +function(){p.$touched=!0;p.$untouched=!1;g.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){h.cancel(L);p.$viewValue=p.$$lastCommittedViewValue;p.$render()};this.$validate=function(){if(!X(p.$modelValue)||!isNaN(p.$modelValue)){var a=p.$$rawModelValue,c=p.$valid,d=p.$modelValue,e=p.$options&&p.$options.allowInvalid;p.$$runValidators(a,p.$$lastCommittedViewValue,function(f){e||c===f||(p.$modelValue=f?a:u,p.$modelValue!==d&&p.$$writeModelToScope())})}};this.$$runValidators= +function(a,c,d){function e(){var d=!0;n(p.$validators,function(e,f){var h=e(a,c);d=d&&h;g(f,h)});return d?!0:(n(p.$asyncValidators,function(a,c){g(c,null)}),!1)}function f(){var d=[],e=!0;n(p.$asyncValidators,function(f,h){var k=f(a,c);if(!k||!B(k.then))throw kb("$asyncValidators",k);g(h,u);d.push(k.then(function(){g(h,!0)},function(a){e=!1;g(h,!1)}))});d.length?k.all(d).then(function(){h(e)},v):h(!0)}function g(a,c){l===z&&p.$setValidity(a,c)}function h(a){l===z&&d(a)}z++;var l=z;(function(){var a= +p.$$parserName||"parse";if(w===u)g(a,null);else return w||(n(p.$validators,function(a,c){g(c,null)}),n(p.$asyncValidators,function(a,c){g(c,null)})),g(a,w),w;return!0})()?e()?f():h(!1):h(!1)};this.$commitViewValue=function(){var a=p.$viewValue;h.cancel(L);if(p.$$lastCommittedViewValue!==a||""===a&&p.$$hasNativeValidators)p.$$lastCommittedViewValue=a,p.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=p.$$lastCommittedViewValue;if(w=y(c)?u:!0)for(var d= +0;df||e.$isEmpty(c)||c.length<=f}}}}},Gc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=0;d.$observe("minlength",function(a){f=Y(a)||0;e.$validate()});e.$validators.minlength=function(a,c){return e.$isEmpty(c)||c.length>=f}}}}};N.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(ce(),ee(aa),aa.module("ngLocale",[],["$provide",function(a){function c(a){a+="";var c=a.indexOf(".");return-1== +c?0:a.length-c-1}a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:"January February March April May June July August September October November December".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y", +medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-\u00a4",negSuf:"",posPre:"\u00a4",posSuf:""}]},id:"en-us",pluralCat:function(a,e){var f=a|0,g=e;u===g&&(g=Math.min(c(a),3));Math.pow(10,g);return 1== +f&&0==g?"one":"other"}})}]),z(W).ready(function(){Zd(W,yc)}))})(window,document);!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend(''); //# sourceMappingURL=angular.min.js.map diff --git a/public/lib/js/angular.min.js.map b/public/lib/js/angular.min.js.map index 3a34c29e..150f24df 100644 --- a/public/lib/js/angular.min.js.map +++ b/public/lib/js/angular.min.js.map @@ -1,8 +1,8 @@ { "version":3, "file":"angular.min.js", -"lineCount":251, -"mappings":"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", +"lineCount":292, +"mappings":"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", "sources":["angular.js"], -"names":["window","document","undefined","minErr","isArrayLike","obj","isWindow","length","Object","nodeType","NODE_TYPE_ELEMENT","isString","isArray","forEach","iterator","context","key","isFunction","hasOwnProperty","call","isPrimitive","forEachSorted","keys","sort","i","reverseParams","iteratorFn","value","nextUid","uid","setHashKey","h","$$hashKey","extend","dst","ii","arguments","j","jj","int","str","parseInt","inherit","parent","extra","create","noop","identity","$","valueFn","isUndefined","isDefined","isObject","isNumber","isDate","toString","isRegExp","isScope","$evalAsync","$watch","isBoolean","isElement","node","nodeName","prop","attr","find","makeMap","items","split","nodeName_","element","lowercase","arrayRemove","array","index","indexOf","splice","copy","source","destination","stackSource","stackDest","ngMinErr","push","result","Date","getTime","RegExp","match","lastIndex","emptyObject","getPrototypeOf","shallowCopy","src","charAt","equals","o1","o2","t1","t2","keySet","concat","array1","array2","slice","bind","self","fn","curryArgs","startIndex","apply","toJsonReplacer","val","toJson","pretty","JSON","stringify","fromJson","json","parse","startingTag","jqLite","clone","empty","e","elemHtml","append","html","NODE_TYPE_TEXT","replace","tryDecodeURIComponent","decodeURIComponent","parseKeyValue","keyValue","key_value","toKeyValue","parts","arrayValue","encodeUriQuery","join","encodeUriSegment","pctEncodeSpaces","encodeURIComponent","getNgAttribute","ngAttr","ngAttrPrefixes","angularInit","bootstrap","appElement","module","config","prefix","name","hasAttribute","getAttribute","candidate","querySelector","strictDi","modules","defaultConfig","doBootstrap","injector","tag","unshift","$provide","debugInfoEnabled","$compileProvider","createInjector","invoke","bootstrapApply","scope","compile","$apply","data","NG_ENABLE_DEBUG_INFO","NG_DEFER_BOOTSTRAP","test","angular","resumeBootstrap","angular.resumeBootstrap","extraModules","resumeDeferredBootstrap","reloadWithDebugInfo","location","reload","getTestability","rootElement","get","snake_case","separator","SNAKE_CASE_REGEXP","letter","pos","toLowerCase","bindJQuery","originalCleanData","bindJQueryFired","jQuery","on","JQLitePrototype","isolateScope","controller","inheritedData","cleanData","jQuery.cleanData","elems","events","skipDestroyOnNextJQueryCleanData","elem","_data","$destroy","triggerHandler","JQLite","assertArg","arg","reason","assertArgFn","acceptArrayAnnotation","constructor","assertNotHasOwnProperty","getter","path","bindFnToScope","lastInstance","len","getBlockNodes","nodes","endNode","blockNodes","nextSibling","createMap","setupModuleLoader","ensure","factory","$injectorMinErr","$$minErr","requires","configFn","invokeLater","provider","method","insertMethod","queue","invokeQueue","moduleInstance","configBlocks","runBlocks","_invokeQueue","_configBlocks","_runBlocks","service","constant","animation","filter","directive","run","block","publishExternalAPI","version","uppercase","counter","csp","angularModule","$LocaleProvider","ngModule","$$sanitizeUri","$$SanitizeUriProvider","$CompileProvider","a","htmlAnchorDirective","input","inputDirective","textarea","form","formDirective","script","scriptDirective","select","selectDirective","style","styleDirective","option","optionDirective","ngBind","ngBindDirective","ngBindHtml","ngBindHtmlDirective","ngBindTemplate","ngBindTemplateDirective","ngClass","ngClassDirective","ngClassEven","ngClassEvenDirective","ngClassOdd","ngClassOddDirective","ngCloak","ngCloakDirective","ngController","ngControllerDirective","ngForm","ngFormDirective","ngHide","ngHideDirective","ngIf","ngIfDirective","ngInclude","ngIncludeDirective","ngInit","ngInitDirective","ngNonBindable","ngNonBindableDirective","ngPluralize","ngPluralizeDirective","ngRepeat","ngRepeatDirective","ngShow","ngShowDirective","ngStyle","ngStyleDirective","ngSwitch","ngSwitchDirective","ngSwitchWhen","ngSwitchWhenDirective","ngSwitchDefault","ngSwitchDefaultDirective","ngOptions","ngOptionsDirective","ngTransclude","ngTranscludeDirective","ngModel","ngModelDirective","ngList","ngListDirective","ngChange","ngChangeDirective","pattern","patternDirective","ngPattern","required","requiredDirective","ngRequired","minlength","minlengthDirective","ngMinlength","maxlength","maxlengthDirective","ngMaxlength","ngValue","ngValueDirective","ngModelOptions","ngModelOptionsDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$anchorScroll","$AnchorScrollProvider","$animate","$AnimateProvider","$browser","$BrowserProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$document","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$httpBackend","$HttpBackendProvider","$location","$LocationProvider","$log","$LogProvider","$parse","$ParseProvider","$rootScope","$RootScopeProvider","$q","$QProvider","$$q","$$QProvider","$sce","$SceProvider","$sceDelegate","$SceDelegateProvider","$sniffer","$SnifferProvider","$templateCache","$TemplateCacheProvider","$templateRequest","$TemplateRequestProvider","$$testability","$$TestabilityProvider","$timeout","$TimeoutProvider","$window","$WindowProvider","$$rAF","$$RAFProvider","$$asyncCallback","$$AsyncCallbackProvider","$$jqLite","$$jqLiteProvider","camelCase","SPECIAL_CHARS_REGEXP","_","offset","toUpperCase","MOZ_HACK_REGEXP","jqLiteAcceptsData","NODE_TYPE_DOCUMENT","jqLiteBuildFragment","tmp","fragment","createDocumentFragment","HTML_REGEXP","appendChild","createElement","TAG_NAME_REGEXP","exec","wrap","wrapMap","_default","innerHTML","XHTML_TAG_REGEXP","lastChild","childNodes","firstChild","textContent","createTextNode","argIsString","trim","jqLiteMinErr","parsed","SINGLE_TAG_REGEXP","jqLiteAddNodes","jqLiteClone","cloneNode","jqLiteDealoc","onlyDescendants","jqLiteRemoveData","querySelectorAll","descendants","l","jqLiteOff","type","unsupported","expandoStore","jqLiteExpandoStore","handle","listenerFns","removeEventListener","expandoId","ng339","jqCache","createIfNecessary","jqId","jqLiteData","isSimpleSetter","isSimpleGetter","massGetter","jqLiteHasClass","selector","jqLiteRemoveClass","cssClasses","setAttribute","cssClass","jqLiteAddClass","existingClasses","root","elements","jqLiteController","jqLiteInheritedData","documentElement","names","parentNode","NODE_TYPE_DOCUMENT_FRAGMENT","host","jqLiteEmpty","removeChild","jqLiteRemove","keepData","jqLiteDocumentLoaded","action","win","readyState","setTimeout","getBooleanAttrName","booleanAttr","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","getAliasedAttrName","ALIASED_ATTR","createEventHandler","eventHandler","event","isDefaultPrevented","event.isDefaultPrevented","defaultPrevented","eventFns","eventFnsLength","immediatePropagationStopped","originalStopImmediatePropagation","stopImmediatePropagation","event.stopImmediatePropagation","stopPropagation","isImmediatePropagationStopped","event.isImmediatePropagationStopped","$get","this.$get","hasClass","classes","addClass","removeClass","hashKey","nextUidFn","objType","HashMap","isolatedUid","this.nextUid","put","anonFn","args","fnText","STRIP_COMMENTS","FN_ARGS","modulesToLoad","supportObject","delegate","provider_","providerInjector","instantiate","providerCache","providerSuffix","enforceReturnValue","enforcedReturnValue","instanceInjector","factoryFn","enforce","loadModules","moduleFn","runInvokeQueue","invokeArgs","loadedModules","message","stack","createInternalInjector","cache","getService","serviceName","caller","INSTANTIATING","err","shift","locals","$inject","$$annotate","Type","instance","prototype","returnedValue","annotate","has","$injector","instanceCache","decorator","decorFn","origProvider","orig$get","origProvider.$get","origInstance","$delegate","autoScrollingEnabled","disableAutoScrolling","this.disableAutoScrolling","getFirstAnchor","list","Array","some","scrollTo","scrollIntoView","scroll","yOffset","getComputedStyle","position","getBoundingClientRect","bottom","elemTop","top","scrollBy","hash","elm","getElementById","getElementsByName","autoScrollWatch","autoScrollWatchAction","newVal","oldVal","supported","Browser","completeOutstandingRequest","outstandingRequestCount","outstandingRequestCallbacks","pop","error","startPoller","interval","check","pollFns","pollFn","pollTimeout","cacheStateAndFireUrlChange","cacheState","fireUrlChange","history","state","cachedState","lastCachedState","lastBrowserUrl","url","lastHistoryState","urlChangeListeners","listener","safeDecodeURIComponent","rawDocument","clearTimeout","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","self.$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","self.notifyWhenNoOutstandingRequests","callback","addPollFn","self.addPollFn","href","baseElement","reloadLocation","self.url","sameState","sameBase","stripHash","substr","self.state","urlChangeInit","onUrlChange","self.onUrlChange","$$checkUrlChange","baseHref","self.baseHref","lastCookies","lastCookieString","cookiePath","cookies","self.cookies","cookieLength","cookie","warn","cookieArray","substring","defer","self.defer","delay","timeoutId","cancel","self.defer.cancel","deferId","cacheFactory","cacheId","options","refresh","entry","freshEnd","staleEnd","n","link","p","nextEntry","prevEntry","caches","size","stats","id","capacity","Number","MAX_VALUE","lruHash","lruEntry","remove","removeAll","destroy","info","cacheFactory.info","cacheFactory.get","$$sanitizeUriProvider","parseIsolateBindings","directiveName","LOCAL_REGEXP","bindings","definition","scopeName","$compileMinErr","mode","collection","optional","attrName","assertValidDirectiveName","hasDirectives","COMMENT_DIRECTIVE_REGEXP","CLASS_DIRECTIVE_REGEXP","ALL_OR_NOTHING_ATTRS","REQUIRE_PREFIX_REGEXP","EVENT_HANDLER_ATTR_REGEXP","this.directive","registerDirective","directiveFactory","Suffix","directives","priority","require","restrict","$$isolateBindings","aHrefSanitizationWhitelist","this.aHrefSanitizationWhitelist","regexp","imgSrcSanitizationWhitelist","this.imgSrcSanitizationWhitelist","this.debugInfoEnabled","enabled","safeAddClass","$element","className","$compileNodes","transcludeFn","maxPriority","ignoreDirective","previousCompileContext","nodeValue","compositeLinkFn","compileNodes","$$addScopeClass","namespace","publicLinkFn","cloneConnectFn","parentBoundTranscludeFn","transcludeControllers","futureParentElement","$$boundTransclude","$linkNode","wrapTemplate","controllerName","$$addScopeInfo","nodeList","$rootElement","childLinkFn","childScope","childBoundTranscludeFn","stableNodeList","nodeLinkFnFound","linkFns","idx","nodeLinkFn","$new","transcludeOnThisElement","createBoundTranscludeFn","transclude","elementTranscludeOnThisElement","templateOnThisElement","attrs","linkFnFound","Attributes","collectDirectives","applyDirectivesToNode","$$element","terminal","previousBoundTranscludeFn","elementTransclusion","boundTranscludeFn","transcludedScope","cloneFn","controllers","containingScope","$$transcluded","attrsMap","$attr","addDirective","directiveNormalize","isNgAttr","nAttrs","attributes","attrStartName","attrEndName","ngAttrName","NG_ATTR_BINDING","PREFIX_REGEXP","directiveNName","directiveIsMultiElement","nName","addAttrInterpolateDirective","animVal","addTextInterpolateDirective","NODE_TYPE_COMMENT","byPriority","groupScan","attrStart","attrEnd","depth","groupElementsLinkFnWrapper","linkFn","compileNode","templateAttrs","jqCollection","originalReplaceDirective","preLinkFns","postLinkFns","addLinkFns","pre","post","newIsolateScopeDirective","$$isolateScope","cloneAndAnnotateFn","getControllers","elementControllers","retrievalMethod","$searchElement","linkNode","controllersBoundTransclude","cloneAttachFn","hasElementTranscludeDirective","scopeToChild","controllerDirectives","$scope","$attrs","$transclude","controllerInstance","controllerAs","templateDirective","$$originalDirective","isolateScopeController","isolateBindingContext","identifier","bindToController","lastValue","parentGet","parentSet","compare","$observe","$$observers","$$scope","literal","b","assign","parentValueWatch","parentValue","$stateful","unwatch","$watchCollection","$on","invokeLinkFn","template","templateUrl","terminalPriority","newScopeDirective","nonTlbTranscludeDirective","hasTranscludeDirective","hasTemplate","$compileNode","$template","childTranscludeFn","$$start","$$end","directiveValue","assertNoDuplicate","$$tlb","createComment","replaceWith","replaceDirective","contents","denormalizeTemplate","removeComments","templateNamespace","newTemplateAttrs","templateDirectives","unprocessedDirectives","markDirectivesAsIsolate","mergeTemplateAttributes","compileTemplateUrl","Math","max","tDirectives","startAttrName","endAttrName","multiElement","srcAttr","dstAttr","$set","tAttrs","linkQueue","afterTemplateNodeLinkFn","afterTemplateChildLinkFn","beforeTemplateCompileNode","origAsyncDirective","derivedSyncDirective","getTrustedResourceUrl","then","content","tempTemplateAttrs","beforeTemplateLinkNode","linkRootElement","$$destroyed","oldClasses","delayedNodeLinkFn","ignoreChildLinkFn","diff","what","previousDirective","text","interpolateFn","textInterpolateCompileFn","templateNode","templateNodeParent","hasCompileParent","$$addBindingClass","textInterpolateLinkFn","$$addBindingInfo","expressions","interpolateFnWatchAction","wrapper","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","allOrNothing","trustedContext","attrInterpolatePreLinkFn","newValue","$$inter","oldValue","$updateClass","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","replaceChild","expando","k","kk","annotation","attributesToCopy","$normalize","$addClass","classVal","$removeClass","newClasses","toAdd","tokenDifference","toRemove","writeAttr","booleanKey","aliasedKey","observer","trimmedSrcset","srcPattern","rawUris","nbrUrisWith2parts","floor","innerIdx","lastTuple","removeAttr","listeners","startSymbol","endSymbol","binding","isolated","noTemplate","dataName","str1","str2","values","tokens1","tokens2","token","jqNodes","globals","CNTRL_REG","register","this.register","allowGlobals","this.allowGlobals","addIdentifier","expression","later","ident","$controllerMinErr","controllerPrototype","exception","cause","defaultHttpResponseTransform","headers","tempData","JSON_PROTECTION_PREFIX","contentType","jsonStart","JSON_START","JSON_ENDS","parseHeaders","line","headersGetter","headersObj","transformData","status","fns","defaults","transformResponse","transformRequest","d","common","CONTENT_TYPE_APPLICATION_JSON","patch","xsrfCookieName","xsrfHeaderName","useApplyAsync","this.useApplyAsync","interceptorFactories","interceptors","requestConfig","response","resp","reject","executeHeaderFns","headerContent","processedHeaders","headerFn","header","mergeHeaders","defHeaders","reqHeaders","defHeaderName","reqHeaderName","lowercaseDefHeaderName","chain","serverRequest","reqData","withCredentials","sendReq","promise","when","reversedInterceptors","interceptor","request","requestError","responseError","thenFn","rejectFn","success","promise.success","promise.error","done","headersString","statusText","resolveHttpPromise","resolvePromise","$applyAsync","$$phase","deferred","resolve","resolvePromiseWithResult","removePendingReq","pendingRequests","cachedResp","buildUrl","params","defaultCache","xsrfValue","urlIsSameOrigin","timeout","responseType","v","toISOString","interceptorFactory","createShortMethods","createShortMethodsWithData","createXhr","XMLHttpRequest","createHttpBackend","callbacks","$browserDefer","jsonpReq","callbackId","async","body","called","addEventListener","timeoutRequest","jsonpDone","xhr","abort","completeRequest","open","setRequestHeader","onload","xhr.onload","responseText","urlResolve","protocol","getAllResponseHeaders","onerror","onabort","send","this.startSymbol","this.endSymbol","escape","ch","mustHaveExpression","unescapeText","escapedStartRegexp","escapedEndRegexp","parseStringifyInterceptor","getTrusted","valueOf","newErr","$interpolateMinErr","endIndex","parseFns","textLength","expressionPositions","startSymbolLength","exp","endSymbolLength","compute","interpolationFn","$$watchDelegate","objectEquality","$watchGroup","interpolateFnWatcher","oldValues","currValue","$interpolate.startSymbol","$interpolate.endSymbol","count","invokeApply","setInterval","clearInterval","iteration","skipApply","$$intervalId","tick","notify","intervals","interval.cancel","NUMBER_FORMATS","DECIMAL_SEP","GROUP_SEP","PATTERNS","minInt","minFrac","maxFrac","posPre","posSuf","negPre","negSuf","gSize","lgSize","CURRENCY_SYM","DATETIME_FORMATS","MONTH","SHORTMONTH","DAY","SHORTDAY","AMPMS","medium","fullDate","longDate","mediumDate","shortDate","mediumTime","shortTime","ERANAMES","ERAS","pluralCat","num","encodePath","segments","parseAbsoluteUrl","absoluteUrl","locationObj","parsedUrl","$$protocol","$$host","hostname","$$port","port","DEFAULT_PORTS","parseAppUrl","relativeUrl","prefixed","$$path","pathname","$$search","search","$$hash","beginsWith","begin","whole","trimEmptyHash","stripFile","lastIndexOf","LocationHtml5Url","appBase","basePrefix","$$html5","appBaseNoFile","$$parse","this.$$parse","pathUrl","$locationMinErr","$$compose","this.$$compose","$$url","$$absUrl","$$parseLinkUrl","this.$$parseLinkUrl","relHref","appUrl","prevAppUrl","rewrittenUrl","LocationHashbangUrl","hashPrefix","withoutBaseUrl","withoutHashUrl","windowsFilePathExp","firstPathSegmentMatch","LocationHashbangInHtml5Url","locationGetter","property","locationGetterSetter","preprocess","html5Mode","requireBase","rewriteLinks","this.hashPrefix","this.html5Mode","setBrowserUrlWithFallback","oldUrl","oldState","$$state","afterLocationChange","$broadcast","absUrl","LocationMode","initialUrl","IGNORE_URI_REGEXP","ctrlKey","metaKey","shiftKey","which","button","target","absHref","preventDefault","initializing","newUrl","newState","$digest","$locationWatch","currentReplace","$$replace","urlOrStateChanged","debug","debugEnabled","this.debugEnabled","flag","formatError","Error","sourceURL","consoleLog","console","logFn","log","hasApply","arg1","arg2","ensureSafeMemberName","fullExpression","$parseMinErr","ensureSafeObject","children","isConstant","setter","setValue","fullExp","propertyObj","isPossiblyDangerousMemberName","cspSafeGetterFn","key0","key1","key2","key3","key4","expensiveChecks","eso","o","eso0","eso1","eso2","eso3","eso4","cspSafeGetter","pathVal","getterFnWithEnsureSafeObject","s","getterFn","getterFnCache","getterFnCacheExpensive","getterFnCacheDefault","pathKeys","pathKeysLength","code","needsEnsureSafeObject","lookupJs","evaledFnGetter","Function","sharedGetter","fn.assign","getValueOf","objectValueOf","cacheDefault","cacheExpensive","wrapSharedExpression","wrapped","collectExpressionInputs","inputs","expressionInputDirtyCheck","oldValueOfValue","inputsWatchDelegate","parsedExpression","inputExpressions","$$inputs","lastResult","oldInputValue","expressionInputWatch","newInputValue","oldInputValueOfValues","expressionInputsWatch","changed","oneTimeWatchDelegate","oneTimeWatch","oneTimeListener","old","$$postDigest","oneTimeLiteralWatchDelegate","isAllDefined","allDefined","constantWatchDelegate","constantWatch","constantListener","addInterceptor","interceptorFn","watchDelegate","regularInterceptedExpression","oneTimeInterceptedExpression","$parseOptions","$parseOptionsExpensive","oneTime","cacheKey","parseOptions","lexer","Lexer","parser","Parser","qFactory","nextTick","exceptionHandler","callOnce","resolveFn","Promise","simpleBind","scheduleProcessQueue","processScheduled","pending","Deferred","$qMinErr","TypeError","onFulfilled","onRejected","progressBack","catch","finally","handleCallback","$$reject","$$resolve","progress","makePromise","resolved","isResolved","callbackOutput","errback","$Q","Q","resolver","all","promises","results","flush","taskQueue","task","taskCount","queueFn","asyncFn","cancelLastRAF","rafFn","cancelQueueFn","requestAnimationFrame","webkitRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","timer","createChildScopeClass","ChildScope","$$watchers","$$nextSibling","$$childHead","$$childTail","$$listeners","$$listenerCount","$id","$$ChildScope","TTL","$rootScopeMinErr","lastDirtyWatch","applyAsyncId","digestTtl","this.digestTtl","destroyChildScope","$event","currentScope","Scope","$parent","$$prevSibling","$root","beginPhase","phase","decrementListenerCount","current","initWatchVal","flushApplyAsync","applyAsyncQueue","scheduleApplyAsync","isolate","child","watchExp","watcher","last","eq","deregisterWatch","watchExpressions","watchGroupAction","changeReactionScheduled","firstRun","newValues","deregisterFns","shouldCall","deregisterWatchGroup","expr","unwatchFn","watchGroupSubAction","$watchCollectionInterceptor","_value","bothNaN","newItem","oldItem","internalArray","oldLength","changeDetected","newLength","internalObject","veryOldValue","trackVeryOldValue","changeDetector","initRun","$watchCollectionAction","watch","watchers","dirty","ttl","watchLog","logIdx","asyncTask","asyncQueue","$eval","isNaN","msg","next","postDigestQueue","eventName","this.$watchGroup","$applyAsyncExpression","namedListeners","indexOfListener","$emit","targetScope","listenerArgs","$$asyncQueue","$$postDigestQueue","$$applyAsyncQueue","sanitizeUri","uri","isImage","regex","normalizedVal","adjustMatcher","matcher","$sceMinErr","escapeForRegexp","adjustMatchers","matchers","adjustedMatchers","SCE_CONTEXTS","resourceUrlWhitelist","resourceUrlBlacklist","this.resourceUrlWhitelist","this.resourceUrlBlacklist","matchUrl","generateHolderType","Base","holderType","trustedValue","$$unwrapTrustedValue","this.$$unwrapTrustedValue","holderType.prototype.valueOf","holderType.prototype.toString","htmlSanitizer","trustedValueHolderBase","byType","CSS","URL","JS","trustAs","Constructor","maybeTrusted","allowed","this.enabled","msie","sce","isEnabled","sce.isEnabled","sce.getTrusted","parseAs","sce.parseAs","enumValue","lName","eventSupport","android","userAgent","navigator","boxee","vendorPrefix","vendorRegex","bodyStyle","transitions","animations","webkitTransition","webkitAnimation","pushState","hasEvent","divElm","handleRequestFn","tpl","ignoreRequestError","totalPendingRequests","transformer","httpOptions","handleError","testability","testability.findBindings","opt_exactMatch","getElementsByClassName","matches","dataBinding","bindingName","testability.findModels","prefixes","attributeEquals","testability.getLocation","testability.setLocation","testability.whenStable","deferreds","$$timeoutId","timeout.cancel","urlParsingNode","requestUrl","originUrl","filters","suffix","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","matchAgainstAnyProp","expressionType","predicateFn","createPredicateFn","shouldMatchPrimitives","actual","expected","item","deepCompare","dontMatchWholeObject","actualType","expectedType","expectedVal","matchAnyProperty","actualVal","$locale","formats","amount","currencySymbol","fractionSize","formatNumber","number","groupSep","decimalSep","isFinite","isNegative","abs","numStr","formatedText","hasExponent","toFixed","parseFloat","fractionLen","min","round","fraction","lgroup","group","padNumber","digits","neg","dateGetter","date","dateStrGetter","shortForm","getFirstThursdayOfYear","year","dayOfWeekOnFirst","getDay","weekGetter","firstThurs","getFullYear","thisThurs","getMonth","getDate","eraGetter","jsonStringToDate","string","R_ISO8601_STR","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","m","ms","format","timezone","NUMBER_STRING","DATE_FORMATS_SPLIT","setMinutes","getMinutes","getTimezoneOffset","DATE_FORMATS","object","spacing","limit","Infinity","sortPredicate","reverseOrder","reverseComparator","comp","descending","objectToString","v1","v2","map","predicate","ngDirective","FormController","controls","parentForm","$$parentForm","nullFormCtrl","$error","$$success","$pending","$name","$dirty","$pristine","$valid","$invalid","$submitted","$addControl","$rollbackViewValue","form.$rollbackViewValue","control","$commitViewValue","form.$commitViewValue","form.$addControl","$$renameControl","form.$$renameControl","newName","oldName","$removeControl","form.$removeControl","$setValidity","addSetValidityMethod","ctrl","set","unset","$setDirty","form.$setDirty","PRISTINE_CLASS","DIRTY_CLASS","$setPristine","form.$setPristine","setClass","SUBMITTED_CLASS","$setUntouched","form.$setUntouched","$setSubmitted","form.$setSubmitted","stringBasedInputType","$formatters","$isEmpty","baseInputType","composing","ev","ngTrim","$viewValue","$$hasNativeValidators","$setViewValue","deferListener","origValue","keyCode","$render","ctrl.$render","createDateParser","mapping","iso","ISO_DATE_REGEXP","yyyy","MM","dd","HH","getHours","mm","ss","getSeconds","sss","getMilliseconds","part","NaN","createDateInputType","parseDate","dynamicDateInputType","isValidDate","parseObservedDateValue","badInputChecker","$options","previousDate","$$parserName","$parsers","parsedDate","$ngModelMinErr","timezoneOffset","ngMin","minVal","$validators","ctrl.$validators.min","$validate","ngMax","maxVal","ctrl.$validators.max","validity","VALIDITY_STATE_PROPERTY","badInput","typeMismatch","parseConstantExpr","fallback","parseFn","classDirective","arrayDifference","arrayClasses","digestClassCounts","classCounts","classesToUpdate","ngClassWatchAction","$index","old$index","mod","cachedToggleClass","switchValue","classCache","toggleValidationCss","validationErrorKey","isValid","VALID_CLASS","INVALID_CLASS","setValidity","isObjectEmpty","PENDING_CLASS","combinedState","REGEX_STRING_REGEXP","documentMode","isActive_","active","full","major","minor","dot","codeName","JQLite._data","MOUSE_EVENT_MAP","mouseleave","mouseenter","optgroup","tbody","tfoot","colgroup","caption","thead","th","td","ready","trigger","fired","removeData","removeAttribute","css","NODE_TYPE_ATTRIBUTE","lowercasedName","specified","getNamedItem","ret","getText","$dv","multiple","selected","nodeCount","jqLiteOn","types","related","relatedTarget","contains","off","one","onFn","replaceNode","insertBefore","contentDocument","prepend","wrapNode","detach","after","newElement","toggleClass","condition","classCondition","nextElementSibling","getElementsByTagName","extraParameters","dummyEvent","handlerArgs","eventFnsCopy","arg3","unbind","FN_ARG_SPLIT","FN_ARG","argDecl","underscore","$animateMinErr","$$selectors","classNameFilter","this.classNameFilter","$$classNameFilter","runAnimationPostDigest","cancelFn","$$cancelFn","defer.promise.$$cancelFn","ngAnimatePostDigest","ngAnimateNotifyComplete","resolveElementClasses","hasClasses","cachedClassManipulation","op","asyncPromise","currentDefer","applyStyles","styles","from","to","animate","enter","leave","move","$$addClassImmediately","$$removeClassImmediately","add","createdCache","STORAGE_KEY","$$setClassImmediately","APPLICATION_JSON","PATH_MATCH","locationPrototype","paramValue","Location","Location.prototype.state","CALL","APPLY","BIND","CONSTANTS","null","true","false","constantGetter","OPERATORS","+","-","*","/","%","===","!==","==","!=","<",">","<=",">=","&&","||","!","ESCAPE","lex","tokens","readString","peek","readNumber","isIdent","readIdent","is","isWhitespace","ch2","ch3","op2","op3","op1","operator","throwError","chars","isExpOperator","start","end","colStr","peekCh","quote","rawString","hex","String","fromCharCode","rep","ZERO","statements","primary","expect","filterChain","consume","arrayDeclaration","functionCall","objectIndex","fieldAccess","peekToken","e1","e2","e3","e4","peekAhead","t","unaryFn","right","$parseUnaryFn","binaryFn","left","isBranching","$parseBinaryFn","$parseConstant","$parseStatements","inputFn","argsFn","$parseFilter","every","assignment","ternary","$parseAssignment","logicalOR","middle","$parseTernary","logicalAND","equality","relational","additive","multiplicative","unary","$parseFieldAccess","indexFn","$parseObjectIndex","fnGetter","contextGetter","expressionText","$parseFunctionCall","elementFns","$parseArrayLiteral","valueFns","$parseObjectLiteral","yy","y","MMMM","MMM","M","H","hh","EEEE","EEE","ampmGetter","Z","timeZoneGetter","zone","paddedZone","ww","w","G","GG","GGG","GGGG","longEraGetter","xlinkHref","propName","normalized","ngBooleanAttrWatchAction","htmlAttr","ngAttrAliasWatchAction","nullFormRenameControl","formDirectiveFactory","isNgForm","ngFormCompile","formElement","nameAttr","ngFormPreLink","handleFormSubmission","parentFormCtrl","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","DATE_REGEXP","DATETIMELOCAL_REGEXP","WEEK_REGEXP","MONTH_REGEXP","TIME_REGEXP","inputType","textInputType","weekParser","isoWeek","existingDate","week","minutes","hours","seconds","milliseconds","addDays","numberInputType","urlInputType","ctrl.$validators.url","modelValue","viewValue","emailInputType","email","ctrl.$validators.email","radioInputType","checked","checkboxInputType","trueValue","ngTrueValue","falseValue","ngFalseValue","ctrl.$isEmpty","ctrls","CONSTANT_VALUE_REGEXP","tplAttr","ngValueConstantLink","ngValueLink","valueWatchAction","$compile","ngBindCompile","templateElement","ngBindLink","ngBindWatchAction","ngBindTemplateCompile","ngBindTemplateLink","ngBindHtmlCompile","tElement","ngBindHtmlGetter","ngBindHtmlWatch","getStringValue","ngBindHtmlLink","ngBindHtmlWatchAction","getTrustedHtml","$viewChangeListeners","forceAsyncEvents","ngEventHandler","previousElements","ngIfWatchAction","newScope","srcExp","onloadExp","autoScrollExp","autoscroll","changeCounter","previousElement","currentElement","cleanupLastIncludeContent","parseAsResourceUrl","ngIncludeWatchAction","afterAnimation","thisChangeId","namespaceAdaptedClone","trimValues","NgModelController","$modelValue","$$rawModelValue","$asyncValidators","$untouched","$touched","parsedNgModel","parsedNgModelAssign","ngModelGet","ngModelSet","pendingDebounce","parserValid","$$setOptions","this.$$setOptions","getterSetter","invokeModelGetter","invokeModelSetter","$$$p","this.$isEmpty","currentValidationRunId","this.$setPristine","this.$setDirty","this.$setUntouched","UNTOUCHED_CLASS","TOUCHED_CLASS","$setTouched","this.$setTouched","this.$rollbackViewValue","$$lastCommittedViewValue","this.$validate","prevValid","prevModelValue","allowInvalid","$$runValidators","allValid","$$writeModelToScope","this.$$runValidators","doneCallback","processSyncValidators","syncValidatorsValid","validator","processAsyncValidators","validatorPromises","validationDone","localValidationRunId","processParseErrors","errorKey","this.$commitViewValue","$$parseAndValidate","this.$$parseAndValidate","this.$$writeModelToScope","this.$setViewValue","updateOnDefault","$$debounceViewValueCommit","this.$$debounceViewValueCommit","debounceDelay","debounce","ngModelWatch","formatters","ngModelCompile","ngModelPreLink","modelCtrl","formCtrl","ngModelPostLink","updateOn","DEFAULT_REGEXP","that","BRACE","IS_WHEN","updateElementText","newText","numberExp","whenExp","whens","whensExpFns","braceReplacement","watchRemover","lastCount","attributeName","tmpMatch","whenKey","ngPluralizeWatchAction","countIsNaN","ngRepeatMinErr","updateScope","valueIdentifier","keyIdentifier","arrayLength","$first","$last","$middle","$odd","$even","ngRepeatCompile","ngRepeatEndComment","lhs","rhs","aliasAs","trackByExp","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","hashFnLocals","ngRepeatLink","lastBlockMap","ngRepeatAction","previousNode","nextNode","nextBlockMap","collectionLength","trackById","collectionKeys","nextBlockOrder","trackByIdFn","itemKey","blockKey","ngRepeatTransclude","ngShowWatchAction","NG_HIDE_CLASS","tempClasses","NG_HIDE_IN_PROGRESS_CLASS","ngHideWatchAction","ngStyleWatchAction","newStyles","oldStyles","ngSwitchController","cases","selectedTranscludes","selectedElements","previousLeaveAnimations","selectedScopes","spliceFactory","ngSwitchWatchAction","selectedTransclude","caseElement","selectedScope","anchor","ngOptionsMinErr","NG_OPTIONS_REGEXP","nullModelCtrl","optionsMap","ngModelCtrl","unknownOption","databound","init","self.init","ngModelCtrl_","nullOption_","unknownOption_","addOption","self.addOption","removeOption","self.removeOption","hasOption","renderUnknownOption","self.renderUnknownOption","unknownVal","self.hasOption","setupAsSingle","selectElement","selectCtrl","ngModelCtrl.$render","emptyOption","setupAsMultiple","lastView","selectMultipleWatch","setupAsOptions","callExpression","exprFn","valueName","keyName","createIsSelectedFn","selectedSet","trackFn","trackIndex","isSelected","compareValueFn","selectAsFn","scheduleRendering","renderScheduled","render","updateLabelMap","labelMap","label","added","optionGroups","optionGroupNames","optionGroupName","optionGroup","existingParent","existingOptions","existingOption","valuesFn","anySelected","optionId","trackKeysCache","groupByFn","displayFn","nullOption","groupIndex","groupLength","optionGroupsCache","optGroupTemplate","lastElement","optionTemplate","optionsExp","selectAs","track","selectionChanged","selectedKey","viewValueFn","getLabels","toDisplay","ngModelCtrl.$isEmpty","nullSelectCtrl","selectCtrlName","interpolateWatchAction","ctrl.$validators.required","patternExp","ctrl.$validators.pattern","intVal","ctrl.$validators.maxlength","ctrl.$validators.minlength","$$csp"] +"names":["window","document","undefined","minErr","isArrayLike","obj","isWindow","length","Object","nodeType","NODE_TYPE_ELEMENT","isString","isArray","forEach","iterator","context","key","isFunction","hasOwnProperty","call","isPrimitive","isBlankObject","forEachSorted","keys","sort","i","reverseParams","iteratorFn","value","nextUid","uid","setHashKey","h","$$hashKey","baseExtend","dst","objs","deep","ii","isObject","j","jj","src","isDate","Date","valueOf","isRegExp","RegExp","extend","slice","arguments","merge","toInt","str","parseInt","inherit","parent","extra","create","noop","identity","$","valueFn","hasCustomToString","toString","prototype","isUndefined","isDefined","getPrototypeOf","isNumber","isScope","$evalAsync","$watch","isBoolean","isElement","node","nodeName","prop","attr","find","makeMap","items","split","nodeName_","element","lowercase","arrayRemove","array","index","indexOf","splice","copy","source","destination","stackSource","stackDest","ngMinErr","TYPED_ARRAY_REGEXP","test","push","constructor","getTime","match","lastIndex","emptyObject","shallowCopy","charAt","equals","o1","o2","t1","t2","keySet","createMap","concat","array1","array2","bind","self","fn","curryArgs","startIndex","apply","toJsonReplacer","val","toJson","pretty","JSON","stringify","fromJson","json","parse","timezoneToOffset","timezone","fallback","requestedTimezoneOffset","isNaN","convertTimezoneToLocal","date","reverse","timezoneOffset","getTimezoneOffset","setMinutes","getMinutes","minutes","startingTag","jqLite","clone","empty","e","elemHtml","append","html","NODE_TYPE_TEXT","replace","tryDecodeURIComponent","decodeURIComponent","parseKeyValue","keyValue","splitPoint","substring","toKeyValue","parts","arrayValue","encodeUriQuery","join","encodeUriSegment","pctEncodeSpaces","encodeURIComponent","getNgAttribute","ngAttr","ngAttrPrefixes","getAttribute","angularInit","bootstrap","appElement","module","config","prefix","name","hasAttribute","candidate","querySelector","strictDi","modules","defaultConfig","doBootstrap","injector","tag","unshift","$provide","debugInfoEnabled","$compileProvider","createInjector","invoke","bootstrapApply","scope","compile","$apply","data","NG_ENABLE_DEBUG_INFO","NG_DEFER_BOOTSTRAP","angular","resumeBootstrap","angular.resumeBootstrap","extraModules","resumeDeferredBootstrap","reloadWithDebugInfo","location","reload","getTestability","rootElement","get","snake_case","separator","SNAKE_CASE_REGEXP","letter","pos","toLowerCase","bindJQuery","originalCleanData","bindJQueryFired","jqName","jq","jQuery","on","JQLitePrototype","isolateScope","controller","inheritedData","cleanData","jQuery.cleanData","elems","events","skipDestroyOnNextJQueryCleanData","elem","_data","$destroy","triggerHandler","JQLite","assertArg","arg","reason","assertArgFn","acceptArrayAnnotation","assertNotHasOwnProperty","getter","path","bindFnToScope","lastInstance","len","getBlockNodes","nodes","endNode","blockNodes","nextSibling","setupModuleLoader","ensure","factory","$injectorMinErr","$$minErr","requires","configFn","invokeLater","provider","method","insertMethod","queue","invokeQueue","moduleInstance","invokeLaterAndSetModuleName","recipeName","factoryFunction","$$moduleName","configBlocks","runBlocks","_invokeQueue","_configBlocks","_runBlocks","service","constant","decorator","animation","filter","directive","run","block","publishExternalAPI","version","uppercase","counter","csp","angularModule","ngModule","$$sanitizeUri","$$SanitizeUriProvider","$CompileProvider","a","htmlAnchorDirective","input","inputDirective","textarea","form","formDirective","script","scriptDirective","select","selectDirective","style","styleDirective","option","optionDirective","ngBind","ngBindDirective","ngBindHtml","ngBindHtmlDirective","ngBindTemplate","ngBindTemplateDirective","ngClass","ngClassDirective","ngClassEven","ngClassEvenDirective","ngClassOdd","ngClassOddDirective","ngCloak","ngCloakDirective","ngController","ngControllerDirective","ngForm","ngFormDirective","ngHide","ngHideDirective","ngIf","ngIfDirective","ngInclude","ngIncludeDirective","ngInit","ngInitDirective","ngNonBindable","ngNonBindableDirective","ngPluralize","ngPluralizeDirective","ngRepeat","ngRepeatDirective","ngShow","ngShowDirective","ngStyle","ngStyleDirective","ngSwitch","ngSwitchDirective","ngSwitchWhen","ngSwitchWhenDirective","ngSwitchDefault","ngSwitchDefaultDirective","ngOptions","ngOptionsDirective","ngTransclude","ngTranscludeDirective","ngModel","ngModelDirective","ngList","ngListDirective","ngChange","ngChangeDirective","pattern","patternDirective","ngPattern","required","requiredDirective","ngRequired","minlength","minlengthDirective","ngMinlength","maxlength","maxlengthDirective","ngMaxlength","ngValue","ngValueDirective","ngModelOptions","ngModelOptionsDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$anchorScroll","$AnchorScrollProvider","$animate","$AnimateProvider","$animateCss","$CoreAnimateCssProvider","$$animateQueue","$$CoreAnimateQueueProvider","$$AnimateRunner","$$CoreAnimateRunnerProvider","$browser","$BrowserProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$document","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$$forceReflow","$$ForceReflowProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$httpParamSerializer","$HttpParamSerializerProvider","$httpParamSerializerJQLike","$HttpParamSerializerJQLikeProvider","$httpBackend","$HttpBackendProvider","$location","$LocationProvider","$log","$LogProvider","$parse","$ParseProvider","$rootScope","$RootScopeProvider","$q","$QProvider","$$q","$$QProvider","$sce","$SceProvider","$sceDelegate","$SceDelegateProvider","$sniffer","$SnifferProvider","$templateCache","$TemplateCacheProvider","$templateRequest","$TemplateRequestProvider","$$testability","$$TestabilityProvider","$timeout","$TimeoutProvider","$window","$WindowProvider","$$rAF","$$RAFProvider","$$jqLite","$$jqLiteProvider","$$HashMap","$$HashMapProvider","$$cookieReader","$$CookieReaderProvider","camelCase","SPECIAL_CHARS_REGEXP","_","offset","toUpperCase","MOZ_HACK_REGEXP","jqLiteAcceptsData","NODE_TYPE_DOCUMENT","jqLiteBuildFragment","tmp","fragment","createDocumentFragment","HTML_REGEXP","appendChild","createElement","TAG_NAME_REGEXP","exec","wrap","wrapMap","_default","innerHTML","XHTML_TAG_REGEXP","lastChild","childNodes","firstChild","textContent","createTextNode","argIsString","trim","jqLiteMinErr","parsed","SINGLE_TAG_REGEXP","jqLiteAddNodes","jqLiteClone","cloneNode","jqLiteDealoc","onlyDescendants","jqLiteRemoveData","querySelectorAll","descendants","l","jqLiteOff","type","unsupported","expandoStore","jqLiteExpandoStore","handle","listenerFns","removeEventListener","expandoId","ng339","jqCache","createIfNecessary","jqId","jqLiteData","isSimpleSetter","isSimpleGetter","massGetter","jqLiteHasClass","selector","jqLiteRemoveClass","cssClasses","setAttribute","cssClass","jqLiteAddClass","existingClasses","root","elements","jqLiteController","jqLiteInheritedData","documentElement","names","parentNode","NODE_TYPE_DOCUMENT_FRAGMENT","host","jqLiteEmpty","removeChild","jqLiteRemove","keepData","jqLiteDocumentLoaded","action","win","readyState","setTimeout","getBooleanAttrName","booleanAttr","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","getAliasedAttrName","ALIASED_ATTR","createEventHandler","eventHandler","event","isDefaultPrevented","event.isDefaultPrevented","defaultPrevented","eventFns","eventFnsLength","immediatePropagationStopped","originalStopImmediatePropagation","stopImmediatePropagation","event.stopImmediatePropagation","stopPropagation","isImmediatePropagationStopped","event.isImmediatePropagationStopped","$get","this.$get","hasClass","classes","addClass","removeClass","hashKey","nextUidFn","objType","HashMap","isolatedUid","this.nextUid","put","anonFn","args","fnText","STRIP_COMMENTS","FN_ARGS","modulesToLoad","supportObject","delegate","provider_","providerInjector","instantiate","providerCache","providerSuffix","enforceReturnValue","enforcedReturnValue","result","instanceInjector","factoryFn","enforce","loadModules","moduleFn","runInvokeQueue","invokeArgs","loadedModules","message","stack","createInternalInjector","cache","getService","serviceName","caller","INSTANTIATING","err","shift","locals","$inject","$$annotate","Type","instance","returnedValue","annotate","has","$injector","instanceCache","decorFn","origProvider","orig$get","origProvider.$get","origInstance","$delegate","autoScrollingEnabled","disableAutoScrolling","this.disableAutoScrolling","getFirstAnchor","list","Array","some","scrollTo","scrollIntoView","scroll","yOffset","getComputedStyle","position","getBoundingClientRect","bottom","elemTop","top","scrollBy","hash","elm","getElementById","getElementsByName","autoScrollWatch","autoScrollWatchAction","newVal","oldVal","mergeClasses","b","splitClasses","klass","prepareAnimateOptions","options","Browser","completeOutstandingRequest","outstandingRequestCount","outstandingRequestCallbacks","pop","error","cacheStateAndFireUrlChange","cacheState","fireUrlChange","history","state","cachedState","lastCachedState","lastBrowserUrl","url","lastHistoryState","urlChangeListeners","listener","clearTimeout","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","self.$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","self.notifyWhenNoOutstandingRequests","callback","href","baseElement","reloadLocation","self.url","sameState","sameBase","stripHash","substr","self.state","urlChangeInit","onUrlChange","self.onUrlChange","$$applicationDestroyed","self.$$applicationDestroyed","off","$$checkUrlChange","baseHref","self.baseHref","defer","self.defer","delay","timeoutId","cancel","self.defer.cancel","deferId","cacheFactory","cacheId","refresh","entry","freshEnd","staleEnd","n","link","p","nextEntry","prevEntry","caches","size","stats","id","capacity","Number","MAX_VALUE","lruHash","lruEntry","remove","removeAll","destroy","info","cacheFactory.info","cacheFactory.get","$$sanitizeUriProvider","parseIsolateBindings","directiveName","isController","LOCAL_REGEXP","bindings","definition","scopeName","$compileMinErr","mode","collection","optional","attrName","assertValidDirectiveName","hasDirectives","COMMENT_DIRECTIVE_REGEXP","CLASS_DIRECTIVE_REGEXP","ALL_OR_NOTHING_ATTRS","REQUIRE_PREFIX_REGEXP","EVENT_HANDLER_ATTR_REGEXP","this.directive","registerDirective","directiveFactory","Suffix","directives","priority","require","restrict","bindToController","controllerAs","CNTRL_REG","$$bindings","$$isolateBindings","aHrefSanitizationWhitelist","this.aHrefSanitizationWhitelist","regexp","imgSrcSanitizationWhitelist","this.imgSrcSanitizationWhitelist","this.debugInfoEnabled","enabled","safeAddClass","$element","className","$compileNodes","transcludeFn","maxPriority","ignoreDirective","previousCompileContext","nodeValue","compositeLinkFn","compileNodes","$$addScopeClass","namespace","publicLinkFn","cloneConnectFn","parentBoundTranscludeFn","transcludeControllers","futureParentElement","$$boundTransclude","$linkNode","wrapTemplate","controllerName","$$addScopeInfo","nodeList","$rootElement","childLinkFn","childScope","childBoundTranscludeFn","stableNodeList","nodeLinkFnFound","linkFns","idx","nodeLinkFn","destroyBindings","$new","$$destroyBindings","$on","transcludeOnThisElement","createBoundTranscludeFn","transclude","templateOnThisElement","attrs","linkFnFound","Attributes","collectDirectives","applyDirectivesToNode","$$element","terminal","previousBoundTranscludeFn","boundTranscludeFn","transcludedScope","cloneFn","controllers","containingScope","$$transcluded","attrsMap","$attr","addDirective","directiveNormalize","isNgAttr","nAttrs","attributes","attrStartName","attrEndName","ngAttrName","NG_ATTR_BINDING","PREFIX_REGEXP","directiveNName","directiveIsMultiElement","nName","addAttrInterpolateDirective","animVal","msie","addTextInterpolateDirective","NODE_TYPE_COMMENT","byPriority","groupScan","attrStart","attrEnd","depth","groupElementsLinkFnWrapper","linkFn","compileNode","templateAttrs","jqCollection","originalReplaceDirective","preLinkFns","postLinkFns","addLinkFns","pre","post","newIsolateScopeDirective","$$isolateScope","cloneAndAnnotateFn","getControllers","elementControllers","inheritType","dataName","setupControllers","controllerDirectives","controllerKey","$scope","$attrs","$transclude","controllerInstance","hasElementTranscludeDirective","linkNode","thisLinkFn","controllersBoundTransclude","cloneAttachFn","scopeToChild","templateDirective","$$originalDirective","initializeDirectiveBindings","scopeDirective","newScopeDirective","controllerForBindings","identifier","controllerResult","invokeLinkFn","template","templateUrl","terminalPriority","nonTlbTranscludeDirective","hasTranscludeDirective","hasTemplate","$compileNode","$template","childTranscludeFn","$$start","$$end","directiveValue","assertNoDuplicate","$$tlb","createComment","replaceWith","replaceDirective","contents","denormalizeTemplate","removeComments","templateNamespace","newTemplateAttrs","templateDirectives","unprocessedDirectives","markDirectivesAsIsolate","mergeTemplateAttributes","compileTemplateUrl","Math","max","tDirectives","startAttrName","endAttrName","multiElement","srcAttr","dstAttr","$set","tAttrs","linkQueue","afterTemplateNodeLinkFn","afterTemplateChildLinkFn","beforeTemplateCompileNode","origAsyncDirective","derivedSyncDirective","then","content","tempTemplateAttrs","beforeTemplateLinkNode","linkRootElement","$$destroyed","oldClasses","delayedNodeLinkFn","ignoreChildLinkFn","diff","what","previousDirective","wrapModuleNameIfDefined","moduleName","text","interpolateFn","textInterpolateCompileFn","templateNode","templateNodeParent","hasCompileParent","$$addBindingClass","textInterpolateLinkFn","$$addBindingInfo","expressions","interpolateFnWatchAction","wrapper","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","allOrNothing","trustedContext","attrInterpolatePreLinkFn","$$observers","newValue","$$inter","$$scope","oldValue","$updateClass","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","replaceChild","hasData","expando","k","kk","annotation","newScope","onNewScopeDestroyed","lastValue","parentGet","parentSet","compare","$observe","literal","assign","parentValueWatch","parentValue","$stateful","unwatch","$watchCollection","attributesToCopy","$normalize","$addClass","classVal","$removeClass","newClasses","toAdd","tokenDifference","toRemove","writeAttr","booleanKey","aliasedKey","observer","trimmedSrcset","srcPattern","rawUris","nbrUrisWith2parts","floor","innerIdx","lastTuple","removeAttr","listeners","startSymbol","endSymbol","binding","isolated","noTemplate","str1","str2","values","tokens1","tokens2","token","jqNodes","globals","register","this.register","allowGlobals","this.allowGlobals","addIdentifier","expression","later","ident","$controllerMinErr","controllerPrototype","exception","cause","serializeValue","v","toISOString","ngParamSerializer","params","jQueryLikeParamSerializer","serialize","toSerialize","topLevel","defaultHttpResponseTransform","headers","tempData","JSON_PROTECTION_PREFIX","contentType","jsonStart","JSON_START","JSON_ENDS","parseHeaders","line","headerVal","headerKey","headersGetter","headersObj","transformData","status","fns","defaults","transformResponse","transformRequest","d","common","CONTENT_TYPE_APPLICATION_JSON","patch","xsrfCookieName","xsrfHeaderName","paramSerializer","useApplyAsync","this.useApplyAsync","useLegacyPromise","useLegacyPromiseExtensions","this.useLegacyPromiseExtensions","interceptorFactories","interceptors","requestConfig","response","resp","reject","executeHeaderFns","headerContent","processedHeaders","headerFn","header","mergeHeaders","defHeaders","reqHeaders","defHeaderName","lowercaseDefHeaderName","reqHeaderName","chain","serverRequest","reqData","withCredentials","sendReq","promise","when","reversedInterceptors","interceptor","request","requestError","responseError","thenFn","rejectFn","success","promise.success","promise.error","$httpMinErrLegacyFn","done","headersString","statusText","resolveHttpPromise","resolvePromise","$applyAsync","$$phase","deferred","resolve","resolvePromiseWithResult","removePendingReq","pendingRequests","cachedResp","buildUrl","defaultCache","xsrfValue","urlIsSameOrigin","timeout","responseType","serializedParams","interceptorFactory","createShortMethods","createShortMethodsWithData","createXhr","XMLHttpRequest","createHttpBackend","callbacks","$browserDefer","rawDocument","jsonpReq","callbackId","async","body","called","addEventListener","timeoutRequest","jsonpDone","xhr","abort","completeRequest","open","setRequestHeader","onload","xhr.onload","responseText","urlResolve","protocol","getAllResponseHeaders","onerror","onabort","send","this.startSymbol","this.endSymbol","escape","ch","unescapeText","escapedStartRegexp","escapedEndRegexp","mustHaveExpression","parseStringifyInterceptor","getTrusted","$interpolateMinErr","interr","endIndex","parseFns","textLength","expressionPositions","startSymbolLength","exp","endSymbolLength","throwNoconcat","compute","interpolationFn","$$watchDelegate","$watchGroup","interpolateFnWatcher","oldValues","currValue","$interpolate.startSymbol","$interpolate.endSymbol","interval","count","invokeApply","hasParams","setInterval","clearInterval","iteration","skipApply","$$intervalId","tick","notify","intervals","interval.cancel","encodePath","segments","parseAbsoluteUrl","absoluteUrl","locationObj","parsedUrl","$$protocol","$$host","hostname","$$port","port","DEFAULT_PORTS","parseAppUrl","relativeUrl","prefixed","$$path","pathname","$$search","search","$$hash","beginsWith","begin","whole","trimEmptyHash","LocationHtml5Url","appBase","appBaseNoFile","basePrefix","$$html5","$$parse","this.$$parse","pathUrl","$locationMinErr","$$compose","this.$$compose","$$url","$$absUrl","$$parseLinkUrl","this.$$parseLinkUrl","relHref","appUrl","prevAppUrl","rewrittenUrl","LocationHashbangUrl","hashPrefix","withoutBaseUrl","withoutHashUrl","windowsFilePathExp","base","firstPathSegmentMatch","LocationHashbangInHtml5Url","locationGetter","property","locationGetterSetter","preprocess","html5Mode","requireBase","rewriteLinks","this.hashPrefix","this.html5Mode","setBrowserUrlWithFallback","oldUrl","oldState","$$state","afterLocationChange","$broadcast","absUrl","LocationMode","initialUrl","lastIndexOf","IGNORE_URI_REGEXP","ctrlKey","metaKey","shiftKey","which","button","target","absHref","preventDefault","initializing","newUrl","newState","$digest","$locationWatch","currentReplace","$$replace","urlOrStateChanged","debug","debugEnabled","this.debugEnabled","flag","formatError","Error","sourceURL","consoleLog","console","logFn","log","hasApply","arg1","arg2","warn","ensureSafeMemberName","fullExpression","$parseMinErr","ensureSafeObject","children","ensureSafeFunction","CALL","APPLY","BIND","ifDefined","plusFn","r","findConstantAndWatchExpressions","ast","allConstants","argsToWatch","AST","Program","expr","Literal","toWatch","UnaryExpression","argument","BinaryExpression","left","right","LogicalExpression","ConditionalExpression","alternate","consequent","Identifier","MemberExpression","object","computed","CallExpression","callee","AssignmentExpression","ArrayExpression","ObjectExpression","properties","ThisExpression","getInputs","lastExpression","isAssignable","assignableAST","NGValueParameter","operator","isLiteral","ASTCompiler","astBuilder","ASTInterpreter","isPossiblyDangerousMemberName","getValueOf","objectValueOf","cacheDefault","cacheExpensive","expressionInputDirtyCheck","oldValueOfValue","inputsWatchDelegate","objectEquality","parsedExpression","prettyPrintExpression","inputExpressions","inputs","lastResult","oldInputValueOf","expressionInputWatch","newInputValue","oldInputValueOfValues","oldInputValues","expressionInputsWatch","changed","oneTimeWatchDelegate","oneTimeWatch","oneTimeListener","old","$$postDigest","oneTimeLiteralWatchDelegate","isAllDefined","allDefined","constantWatchDelegate","constantWatch","constantListener","addInterceptor","interceptorFn","watchDelegate","regularInterceptedExpression","oneTimeInterceptedExpression","noUnsafeEval","$parseOptions","expensiveChecks","$parseOptionsExpensive","oneTime","cacheKey","parseOptions","lexer","Lexer","parser","Parser","qFactory","nextTick","exceptionHandler","callOnce","resolveFn","Promise","simpleBind","scheduleProcessQueue","processScheduled","pending","Deferred","$qMinErr","TypeError","onFulfilled","onRejected","progressBack","catch","finally","handleCallback","$$reject","$$resolve","progress","makePromise","resolved","isResolved","callbackOutput","errback","$Q","Q","resolver","all","promises","results","requestAnimationFrame","webkitRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","raf","timer","supported","createChildScopeClass","ChildScope","$$watchers","$$nextSibling","$$childHead","$$childTail","$$listeners","$$listenerCount","$$watchersCount","$id","$$ChildScope","TTL","$rootScopeMinErr","lastDirtyWatch","applyAsyncId","digestTtl","this.digestTtl","destroyChildScope","$event","currentScope","Scope","$parent","$$prevSibling","$root","beginPhase","phase","incrementWatchersCount","current","decrementListenerCount","initWatchVal","flushApplyAsync","applyAsyncQueue","scheduleApplyAsync","isolate","child","watchExp","watcher","last","eq","deregisterWatch","watchExpressions","watchGroupAction","changeReactionScheduled","firstRun","newValues","deregisterFns","shouldCall","deregisterWatchGroup","unwatchFn","watchGroupSubAction","$watchCollectionInterceptor","_value","bothNaN","newItem","oldItem","internalArray","oldLength","changeDetected","newLength","internalObject","veryOldValue","trackVeryOldValue","changeDetector","initRun","$watchCollectionAction","watch","watchers","dirty","ttl","watchLog","logIdx","asyncTask","asyncQueue","$eval","msg","next","postDigestQueue","eventName","this.$watchGroup","$applyAsyncExpression","namedListeners","indexOfListener","$emit","targetScope","listenerArgs","$$asyncQueue","$$postDigestQueue","$$applyAsyncQueue","sanitizeUri","uri","isImage","regex","normalizedVal","adjustMatcher","matcher","$sceMinErr","escapeForRegexp","adjustMatchers","matchers","adjustedMatchers","SCE_CONTEXTS","resourceUrlWhitelist","resourceUrlBlacklist","this.resourceUrlWhitelist","this.resourceUrlBlacklist","matchUrl","generateHolderType","Base","holderType","trustedValue","$$unwrapTrustedValue","this.$$unwrapTrustedValue","holderType.prototype.valueOf","holderType.prototype.toString","htmlSanitizer","trustedValueHolderBase","byType","CSS","URL","JS","trustAs","Constructor","maybeTrusted","allowed","this.enabled","sce","isEnabled","sce.isEnabled","sce.getTrusted","parseAs","sce.parseAs","enumValue","lName","eventSupport","android","userAgent","navigator","boxee","vendorPrefix","vendorRegex","bodyStyle","transitions","animations","webkitTransition","webkitAnimation","pushState","hasEvent","divElm","handleRequestFn","tpl","ignoreRequestError","totalPendingRequests","getTrustedResourceUrl","transformer","httpOptions","handleError","testability","testability.findBindings","opt_exactMatch","getElementsByClassName","matches","dataBinding","bindingName","testability.findModels","prefixes","attributeEquals","testability.getLocation","testability.setLocation","testability.whenStable","deferreds","$$timeoutId","timeout.cancel","urlParsingNode","requestUrl","originUrl","$$CookieReader","safeDecodeURIComponent","lastCookies","lastCookieString","cookieArray","cookie","currentCookieString","filters","suffix","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","matchAgainstAnyProp","getTypeForFilter","expressionType","predicateFn","createPredicateFn","shouldMatchPrimitives","actual","expected","item","deepCompare","dontMatchWholeObject","actualType","expectedType","expectedVal","matchAnyProperty","actualVal","$locale","formats","NUMBER_FORMATS","amount","currencySymbol","fractionSize","CURRENCY_SYM","PATTERNS","maxFrac","formatNumber","GROUP_SEP","DECIMAL_SEP","number","groupSep","decimalSep","isNegative","abs","isInfinity","Infinity","isFinite","numStr","formatedText","hasExponent","toFixed","parseFloat","fractionLen","min","minFrac","round","fraction","lgroup","lgSize","group","gSize","negPre","posPre","negSuf","posSuf","padNumber","num","digits","neg","dateGetter","dateStrGetter","shortForm","getFirstThursdayOfYear","year","dayOfWeekOnFirst","getDay","weekGetter","firstThurs","getFullYear","thisThurs","getMonth","getDate","eraGetter","ERAS","jsonStringToDate","string","R_ISO8601_STR","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","m","s","ms","format","DATETIME_FORMATS","NUMBER_STRING","DATE_FORMATS_SPLIT","dateTimezoneOffset","DATE_FORMATS","spacing","limit","processPredicates","sortPredicate","reverseOrder","map","predicate","descending","predicates","compareValues","getComparisonObject","predicateValues","doComparison","v1","v2","ngDirective","FormController","controls","parentForm","$$parentForm","nullFormCtrl","$error","$$success","$pending","$name","$dirty","$pristine","$valid","$invalid","$submitted","$addControl","$rollbackViewValue","form.$rollbackViewValue","control","$commitViewValue","form.$commitViewValue","form.$addControl","$$renameControl","form.$$renameControl","newName","oldName","$removeControl","form.$removeControl","$setValidity","addSetValidityMethod","ctrl","set","unset","$setDirty","form.$setDirty","PRISTINE_CLASS","DIRTY_CLASS","$setPristine","form.$setPristine","setClass","SUBMITTED_CLASS","$setUntouched","form.$setUntouched","$setSubmitted","form.$setSubmitted","stringBasedInputType","$formatters","$isEmpty","baseInputType","composing","ev","ngTrim","$viewValue","$$hasNativeValidators","$setViewValue","deferListener","origValue","keyCode","$render","ctrl.$render","createDateParser","mapping","iso","ISO_DATE_REGEXP","yyyy","MM","dd","HH","getHours","mm","ss","getSeconds","sss","getMilliseconds","part","NaN","createDateInputType","parseDate","dynamicDateInputType","isValidDate","parseObservedDateValue","badInputChecker","$options","previousDate","$$parserName","$parsers","parsedDate","ngModelMinErr","ngMin","minVal","$validators","ctrl.$validators.min","$validate","ngMax","maxVal","ctrl.$validators.max","validity","VALIDITY_STATE_PROPERTY","badInput","typeMismatch","parseConstantExpr","parseFn","classDirective","arrayDifference","arrayClasses","digestClassCounts","classCounts","classesToUpdate","ngClassWatchAction","$index","old$index","mod","cachedToggleClass","switchValue","classCache","toggleValidationCss","validationErrorKey","isValid","VALID_CLASS","INVALID_CLASS","setValidity","isObjectEmpty","PENDING_CLASS","combinedState","REGEX_STRING_REGEXP","documentMode","rules","ngCspElement","ngCspAttribute","noInlineStyle","Function","name_","el","full","major","minor","dot","codeName","JQLite._data","MOUSE_EVENT_MAP","mouseleave","mouseenter","optgroup","tbody","tfoot","colgroup","caption","thead","th","td","ready","trigger","fired","removeData","jqLiteHasData","removeAttribute","css","NODE_TYPE_ATTRIBUTE","lowercasedName","specified","getNamedItem","ret","getText","$dv","multiple","selected","nodeCount","jqLiteOn","types","related","relatedTarget","contains","one","onFn","replaceNode","insertBefore","contentDocument","prepend","wrapNode","detach","after","newElement","toggleClass","condition","classCondition","nextElementSibling","getElementsByTagName","extraParameters","dummyEvent","handlerArgs","eventFnsCopy","arg3","unbind","FN_ARG_SPLIT","FN_ARG","argDecl","underscore","$animateMinErr","AnimateRunner","end","resume","pause","complete","pass","fail","postDigestElements","addRemoveClassesPostDigest","add","updateData","classesAdded","classesRemoved","existing","pin","domOperation","from","to","$$registeredAnimations","classNameFilter","this.classNameFilter","$$classNameFilter","reservedRegex","NG_ANIMATE_CLASSNAME","domInsert","parentElement","afterElement","afterNode","ELEMENT_NODE","previousElementSibling","runner","enter","move","leave","addclass","animate","tempClasses","RAFPromise","getPromise","f1","f2","closed","start","domNode","offsetWidth","APPLICATION_JSON","$httpMinErr","$interpolateMinErr.throwNoconcat","$interpolateMinErr.interr","PATH_MATCH","locationPrototype","paramValue","Location","Location.prototype.state","OPERATORS","ESCAPE","lex","tokens","readString","peek","readNumber","isIdent","readIdent","is","isWhitespace","ch2","ch3","op2","op3","op1","throwError","chars","isExpOperator","colStr","peekCh","quote","rawString","hex","String","fromCharCode","rep","ExpressionStatement","Property","program","expressionStatement","expect","filterChain","assignment","ternary","logicalOR","consume","logicalAND","equality","relational","additive","multiplicative","unary","primary","arrayDeclaration","constants","parseArguments","baseExpression","peekToken","kind","e1","e2","e3","e4","peekAhead","t","nextId","vars","own","assignable","stage","computing","recurse","generateFunction","fnKey","intoId","return_","watchId","fnString","USE","STRICT","filterPrefix","watchFns","varsPrefix","section","nameId","recursionFn","skipWatchIdCheck","if_","lazyAssign","computedMember","lazyRecurse","plus","not","getHasOwnProperty","nonComputedMember","addEnsureSafeObject","notNull","addEnsureSafeMemberName","addEnsureSafeFunction","member","filterName","defaultValue","stringEscapeRegex","stringEscapeFn","c","charCodeAt","skip","init","fn.assign","rhs","lhs","unary+","unary-","unary!","binary+","binary-","binary*","binary/","binary%","binary===","binary!==","binary==","binary!=","binary<","binary>","binary<=","binary>=","binary&&","binary||","ternary?:","astCompiler","yy","y","MMMM","MMM","M","H","hh","EEEE","EEE","ampmGetter","AMPMS","Z","timeZoneGetter","zone","paddedZone","ww","w","G","GG","GGG","GGGG","longEraGetter","ERANAMES","xlinkHref","propName","defaultLinkFn","normalized","ngBooleanAttrWatchAction","htmlAttr","ngAttrAliasWatchAction","nullFormRenameControl","formDirectiveFactory","isNgForm","getSetter","ngFormCompile","formElement","nameAttr","ngFormPreLink","handleFormSubmission","parentFormCtrl","setter","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","DATE_REGEXP","DATETIMELOCAL_REGEXP","WEEK_REGEXP","MONTH_REGEXP","TIME_REGEXP","inputType","textInputType","weekParser","isoWeek","existingDate","week","hours","seconds","milliseconds","addDays","numberInputType","urlInputType","ctrl.$validators.url","modelValue","viewValue","emailInputType","email","ctrl.$validators.email","radioInputType","checked","checkboxInputType","trueValue","ngTrueValue","falseValue","ngFalseValue","ctrl.$isEmpty","ctrls","CONSTANT_VALUE_REGEXP","tplAttr","ngValueConstantLink","ngValueLink","valueWatchAction","$compile","ngBindCompile","templateElement","ngBindLink","ngBindWatchAction","ngBindTemplateCompile","ngBindTemplateLink","ngBindHtmlCompile","tElement","ngBindHtmlGetter","ngBindHtmlWatch","getStringValue","ngBindHtmlLink","ngBindHtmlWatchAction","getTrustedHtml","$viewChangeListeners","forceAsyncEvents","ngEventHandler","previousElements","ngIfWatchAction","srcExp","onloadExp","autoScrollExp","autoscroll","changeCounter","previousElement","currentElement","cleanupLastIncludeContent","ngIncludeWatchAction","afterAnimation","thisChangeId","namespaceAdaptedClone","trimValues","NgModelController","$modelValue","$$rawModelValue","$asyncValidators","$untouched","$touched","parsedNgModel","parsedNgModelAssign","ngModelGet","ngModelSet","pendingDebounce","parserValid","$$setOptions","this.$$setOptions","getterSetter","invokeModelGetter","invokeModelSetter","$$$p","this.$isEmpty","currentValidationRunId","this.$setPristine","this.$setDirty","this.$setUntouched","UNTOUCHED_CLASS","TOUCHED_CLASS","$setTouched","this.$setTouched","this.$rollbackViewValue","$$lastCommittedViewValue","this.$validate","prevValid","prevModelValue","allowInvalid","$$runValidators","allValid","$$writeModelToScope","this.$$runValidators","doneCallback","processSyncValidators","syncValidatorsValid","validator","processAsyncValidators","validatorPromises","validationDone","localValidationRunId","processParseErrors","errorKey","this.$commitViewValue","$$parseAndValidate","this.$$parseAndValidate","this.$$writeModelToScope","this.$setViewValue","updateOnDefault","$$debounceViewValueCommit","this.$$debounceViewValueCommit","debounceDelay","debounce","ngModelWatch","formatters","ngModelCompile","ngModelPreLink","modelCtrl","formCtrl","ngModelPostLink","updateOn","DEFAULT_REGEXP","that","ngOptionsMinErr","NG_OPTIONS_REGEXP","parseOptionsExpression","optionsExp","selectElement","Option","selectValue","label","disabled","getOptionValuesKeys","optionValues","optionValuesKeys","keyName","itemKey","valueName","selectAs","trackBy","viewValueFn","trackByFn","getTrackByValueFn","getHashOfValue","getTrackByValue","getLocals","displayFn","groupByFn","disableWhenFn","valuesFn","getWatchables","watchedArray","optionValuesLength","disableWhen","getOptions","optionItems","selectValueMap","optionItem","getOptionFromViewValue","getViewValueFromOption","optionTemplate","optGroupTemplate","updateOptionElement","addOrReuseElement","removeExcessElements","skipEmptyAndUnknownOptions","emptyOption_","emptyOption","unknownOption_","unknownOption","updateOptions","previousValue","selectCtrl","readValue","groupMap","providedEmptyOption","updateOption","optionElement","groupElement","currentOptionElement","ngModelCtrl","nextValue","ngModelCtrl.$isEmpty","writeValue","selectCtrl.writeValue","selectCtrl.readValue","selectedValues","selections","selectedOption","BRACE","IS_WHEN","updateElementText","newText","numberExp","whenExp","whens","whensExpFns","braceReplacement","watchRemover","lastCount","attributeName","tmpMatch","whenKey","ngPluralizeWatchAction","countIsNaN","pluralCat","whenExpFn","ngRepeatMinErr","updateScope","valueIdentifier","keyIdentifier","arrayLength","$first","$last","$middle","$odd","$even","ngRepeatCompile","ngRepeatEndComment","aliasAs","trackByExp","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","hashFnLocals","ngRepeatLink","lastBlockMap","ngRepeatAction","previousNode","nextNode","nextBlockMap","collectionLength","trackById","collectionKeys","nextBlockOrder","trackByIdFn","blockKey","ngRepeatTransclude","ngShowWatchAction","NG_HIDE_CLASS","NG_HIDE_IN_PROGRESS_CLASS","ngHideWatchAction","ngStyleWatchAction","newStyles","oldStyles","ngSwitchController","cases","selectedTranscludes","selectedElements","previousLeaveAnimations","selectedScopes","spliceFactory","ngSwitchWatchAction","selectedTransclude","caseElement","selectedScope","anchor","noopNgModelController","SelectController","optionsMap","renderUnknownOption","self.renderUnknownOption","unknownVal","removeUnknownOption","self.removeUnknownOption","self.readValue","self.writeValue","hasOption","addOption","self.addOption","removeOption","self.removeOption","self.hasOption","ngModelCtrl.$render","lastView","lastViewRef","selectMultipleWatch","chromeHack","selectCtrlName","interpolateWatchAction","ctrl.$validators.required","patternExp","ctrl.$validators.pattern","intVal","ctrl.$validators.maxlength","ctrl.$validators.minlength","getDecimals","opt_precision","pow","ONE","OTHER","$$csp","head"] } diff --git a/src/app/dragdropway/edaApp.js b/src/app/dragdropway/edaApp.js index 34c27dea..3b53bce7 100644 --- a/src/app/dragdropway/edaApp.js +++ b/src/app/dragdropway/edaApp.js @@ -37,7 +37,7 @@ angular 'pageslide-directive' ]) - .value('easyFormGenVersion', 'v1.0.15') + .value('easyFormGenVersion', 'v1.0.16') .run(runfct); diff --git a/src/app/stepway/ngwfApp.js b/src/app/stepway/ngwfApp.js index 2a60c8eb..3e472612 100644 --- a/src/app/stepway/ngwfApp.js +++ b/src/app/stepway/ngwfApp.js @@ -27,7 +27,7 @@ 'ngwfApp.filters', 'ngwfApp.directives' ]) - .value('easyFormGenVersion', 'v1.0.15') + .value('easyFormGenVersion', 'v1.0.16') .config(configfct);