﻿CIV.Grid={Model:CIV.Class.Create(function(d){var g=this;console.assert(typeof d.dataSource!="undefined","options.dataSource not set!");console.assert(typeof d.columns!="undefined","options.columns not set!");d=$.extend({},{template:"gridTemplate",tableTemplate:"gridTable",headerTemplate:"gridHeader",footerTemplate:"gridFooter",showColumnHeaders:true,nestedGridProperty:"__grid",rowClassProperty:"__rowClass",persistSelection:false},d);d.viewState=d.viewState||{prefix:""};g.dataSource=d.dataSource;g.pager=d.pager;if((g.pager==null)&&(!d.noAutoPager)){g.pager=new CIV.Pager.Model({data:{currentPageIndex:1,pageSize:"25"}})}g.header=$.extend({},{pager:g.pager,grid:g},d.header);g.footer=$.extend({},{pager:g.pager,grid:g},d.footer);g.template=ko.observable(d.template);g.tableTemplate=ko.observable(d.tableTemplate);g.headerTemplate=ko.observable(d.headerTemplate);g.footerTemplate=ko.observable(d.footerTemplate);g.showColumnHeaders=ko.observable(d.showColumnHeaders);g.nestedGridProperty=ko.observable(d.nestedGridProperty);g.rowClassProperty=ko.observable(d.rowClassProperty);g.rows=ko.observableArray();var e={columns:CIV.Grid.ColumnDefinition.Mapping,selectedItem:d.dataSource.itemMap};var c={columns:d.columns,selectedItem:null};ko.mapping.fromJS(c,e,this);g.selectedItemId=ko.observable();if(g.pager){g.pager.currentPageIndex.extend({address:d.viewState.prefix+"Page"});g.pager.pageSize.extend({address:d.viewState.prefix+"PageSize"})}if(d.addSortToAddress!==false){g.dataSource.sortOrder.extend({address:d.viewState.prefix+"Order"});g.dataSource.sortExpression.extend({address:d.viewState.prefix+"Sort"})}g.selectedItemId.extend({address:d.viewState.prefix+"Select"});if(d.persistSelection){g.selectedItem.subscribe(function(){if(g.selectedItem()){if(g.selectedItem().id!==undefined){g.selectedItemId(g.selectedItem().id())}}})}var b=g.dataSource.sort().expression;if(g.dataSource.sortExpression()){b=g.dataSource.sortExpression()}var f=ko.utils.arrayFirst(this.columns(),function(h){return(h.allowSort()&&h.sortExpression()==b)});var a=f==null?0:ko.utils.arrayIndexOf(this.columns(),f);if(g.pager){g.pager.pageItems.subscribe(function(){var h=g.pager.pageItems();g.dataSource.page({startIndex:h.start,count:h.count})});g.dataSource.totalItemCount.subscribe(function(){g.pager.totalItemCount(g.dataSource.totalItemCount());if(g.pager.numberStop()<g.pager.currentPageIndex()){g.pager.currentPageIndex(1)}})}g.dataSource.items.subscribe(function(){if(!g.selectedItemId()){return}var h=false;$.each(g.dataSource.items(),function(j,i){if(i.id!==undefined&&i.id()==g.selectedItemId()){g.selectedItem(i);h=true}});if(!h){g.selectedItemId(null)}if(!g.selectedItem()){return}if(ko.utils.arrayIndexOf(g.dataSource.items(),g.selectedItem())<0){g.selectedItem(null)}});g.ensureDataLoaded=function(){if(g.dataSource.loaded()){return}if(g.dataSource.isLoading()){return}var h=g.pager&&g.pager.pageItems();if(g.columns().length){g.dataSource.sort({expression:g.columns()[a].sortExpression(),order:g.dataSource.sort().order})}if(g.pager){g.dataSource.page({startIndex:h.start,count:h.count})}};g.rows=ko.dependentObservable({read:function(){g.ensureDataLoaded();var h=[];if(!g.dataSource.isLoading()){$.each(g.dataSource.items(),function(j,i){h.push(new CIV.Grid.Row.Model({grid:g,item:i,itemIndex:j}))})}return h}});g.headerCells=ko.dependentObservable({read:function(){var h=[];$.each(g.columns(),function(j,i){h.push(new CIV.Grid.HeaderCell.Model({grid:g,columnDefinition:i}))});return h}})})};CIV.Grid.ColumnDefinition={Model:CIV.Class.Create(function(c){console.assert(typeof c!=="undefined","options not set!");var d=this;var a={headerText:"{no title}",headerTitle:null,headerTemplateName:null,text:null,textFormat:null,textClass:"",title:null,templateName:null,footerText:null,footerTitle:null,footerTemplateName:null,sortExpression:null,allowSort:false,width:"auto",itemCallback:null};var b=$.extend({},a,c);ko.mapping.fromJS(b,{},this);if(c.textFormat&&c.textFormat.type==="CIV.Global.Format"){d.textFormat=c.textFormat}}),Mapping:{create:function(a){return new CIV.Grid.ColumnDefinition.Model(a.data)}}};CIV.Grid.Cell={Model:CIV.Class.Create(function(a){console.assert(typeof a.grid!="undefined","options.grid not set!");console.assert(typeof a.columnDefinition!="undefined","options.columnDefinition not set!");this.grid=a.grid;this.columnDefinition=a.columnDefinition;this.text=function(){throw"GridCell.text is not implemented"};this.title=function(){throw"GridCell.title is not implemented"};this.templateName=function(){throw"GridCell.templateName is not implemented"}})};CIV.Grid.ContentCell={Model:CIV.Grid.Cell.Model.Extend(function(a){this._super(a);var b=this;console.assert(typeof a.item!="undefined","options.item not set!");this.item=a.item;if($.unwrap(this.columnDefinition.itemCallback)){this.item=$.unwrap(this.columnDefinition.itemCallback)(this.columnDefinition,a.item)}this.text=ko.dependentObservable({read:function(){var d=$.unwrap($.evaluate($.unwrap(this.columnDefinition.text),this.item));var c=$.unwrap(this.columnDefinition.textFormat);if(c!=null){if(c.type==="CIV.Global.Format"){return CIV.Global.Format.toString(d,c.options)}else{return $.global.format(d,c)}}return d},owner:this,deferEvaluation:true});this.textClass=ko.dependentObservable({read:function(){return $.unwrap(b.columnDefinition.textClass)}});this.title=ko.dependentObservable({read:function(){var d=$.unwrap($.evaluate($.unwrap(this.columnDefinition.title),this.item));var c=$.unwrap(this.columnDefinition.titleFormat);if(c!=null){return $.global.format(d,c)}return d},owner:this,deferEvaluation:true});this.templateName=ko.dependentObservable({read:function(){var c=$.unwrap(b.columnDefinition.templateName);if(c!=null){return c}return"gridTableCellContent"}})})};CIV.Grid.HeaderCell={Model:CIV.Grid.Cell.Model.Extend(function(a){this._super(a);var b=this;b.isLast=ko.dependentObservable(function(){var c=b.grid.headerCells();var d=ko.utils.arrayIndexOf(c,b);return d===c.length-1},this,{deferEvaluation:true});this.sortOrder=ko.dependentObservable({read:function(){if(this.columnDefinition.allowSort()&&this.columnDefinition.sortExpression()==this.grid.dataSource.sort().expression){return this.grid.dataSource.sort().order}return null},owner:this});this.text=ko.dependentObservable({read:function(){return $.unwrap(this.columnDefinition.headerText)},owner:this});this.title=ko.dependentObservable({read:function(){return $.unwrap(this.columnDefinition.headerTitle)},owner:this});this.templateName=ko.dependentObservable({read:function(){var c=$.unwrap(b.columnDefinition.headerTemplateName);if(c!=null){return c}return"gridTableHeaderCellContent"}});this.allowSort=ko.dependentObservable({read:function(){return b.columnDefinition.allowSort()}});this.toggleSortOrder=function(){if(!b.columnDefinition.allowSort()){return}b.grid.dataSource.sort({expression:b.columnDefinition.sortExpression(),order:b.sortOrder()=="ASC"?"DESC":"ASC"});if(b.grid.pager){b.grid.pager.currentPageIndex(1)}}})};CIV.Grid.Row={Model:CIV.Class.Create(function(a){var b=this;console.assert(typeof a.item!="undefined","options.item not set!");console.assert(typeof a.itemIndex!="undefined","options.itemIndex not set!");console.assert(typeof a.grid!="undefined","options.grid not set!");b.grid=a.grid;b.item=a.item;b.itemIndex=a.itemIndex;b.cells=ko.dependentObservable({read:function(){var c=[];$.each(b.grid.columns(),function(e,d){c.push(new CIV.Grid.ContentCell.Model({columnDefinition:d,item:b.item,grid:b.grid}))});return c}});b.isSelected=ko.dependentObservable(function(){return b.item==b.grid.selectedItem()});this.isOdd=ko.dependentObservable(function(){return b.itemIndex%2==1});this.select=function(){b.grid.selectedItem(b.item)}})};CIV.DataSource=CIV.Class.Create(function(c){console.assert(typeof c.itemMap!="undefined","options.itemMap not set!");var e=this;var a=ko.mapping.fromJS({sortExpression:c.sortExpression||null,sortOrder:c.sortOrder||"ASC",searchString:null,filters:c.filters||[],startIndex:null,count:null},{});e.enabled=ko.observable(true);var d=$.extend({},c.mapping,{items:c.itemMap});var b=$.extend({},c.data,{items:[],totalItemCount:null,itemStart:null,itemEnd:null,errorMessage:null,isLoading:false,loaded:false,allowSearch:false,supportsAutoUpdate:false,supportsUpdate:false});ko.mapping.fromJS(b,d,e);e.notification=c.notification||CIV.Model.Notification;e._load=function(f,g){throw"DataSource._load not implemented"};e.refresh=function(f){e._load(a,f)};e.search=ko.dependentObservable({read:function(){return a.searchString()},write:function(f){a.searchString(f)}});e.page=ko.dependentObservable({read:function(){return{startIndex:a.startIndex(),count:a.count()}},write:function(f){if(a.startIndex()!=f.startIndex||a.count()!=f.count){a.startIndex(f.startIndex);a.count(f.count)}}});e.filter=ko.dependentObservable({read:function(){return ko.toJS(a.filters)},write:function(f){ko.mapping.fromJS({filters:f},a)}});e.sortOrder=a.sortOrder;e.sortExpression=a.sortExpression;e.sort=ko.dependentObservable({read:function(){return{expression:a.sortExpression(),order:a.sortOrder()==null?"ASC":a.sortOrder()}},write:function(f){if(a.sortExpression()!=f.expression||a.sortOrder()!=f.order){a.sortExpression(f.expression);a.sortOrder(f.order)}}});e.criteriaChanged=ko.dependentObservable(function(){return{sort:e.sort(),page:e.page(),filter:e.filter(),search:e.search()}}).extend({throttle:0});e.criteriaChanged.subscribe(function(f){e._load(a,false)})});CIV.CometDataSource=CIV.DataSource.Extend(function(a){a.data=$.extend({},{autoUpdateInterval:0},a.data);this._super(a);var d=this;console.assert(typeof a.channel!="undefined","options.channel not set!");var f=null;d.supportsAutoUpdate(true);d.supportsUpdate(true);d.autoUpdateInterval.subscribe(function(){if(f){window.clearInterval(f)}if(d.autoUpdateInterval()){f=window.setInterval(g,d.autoUpdateInterval())}});d.autoUpdateIntervals=[{description:"Never",value:0},{description:"Every 5 seconds",value:5000}];d.autoUpdateIntervalSelection=ko.dependentObservable({read:function(){return ko.utils.arrayFirst(d.autoUpdateIntervals,function(i){if(i.value==d.autoUpdateInterval()){return i}})},write:function(i){d.autoUpdateInterval(i.value)}});function g(){if(c==null){return}c.echo++;CIV.Global.Comet.publish({channel:e,data:c,success:b,error:h})}var c={echo:0};var e=a.channel;var b=function(i){if(i.data!=null){if(d.notification){d.notification.clear()}ko.mapping.fromJS(i.data,d);d.loaded(true);if(c.echo==i.data.echo){d.isLoading(false)}}};var h=function(i){if(d.notification){d.notification.fromJS(i)}ko.mapping.fromJS({totalItemCount:null,itemStart:null,itemEnd:null,items:[],errorMessage:i.statusMessage},d);d.loaded(true);d.isLoading(false)};if(a.asyncResponse){CIV.Global.Comet.subscribe({channel:e,success:b,error:h})}d.enabled.subscribe(function(){if(d.enabled()){d.refresh()}});this._load=function(i,j){if(!d.enabled()){return}d.isLoading(true);var k={start:i.startIndex(),count:i.count(),filters:ko.mapping.toJS(i.filters),sortExpression:i.sortExpression(),sortOrder:i.sortOrder()=="ASC"?"Ascending":"Descending",echo:c.echo};if(j===false){if($.equals(k,c)){return}}k.echo++;c=k;CIV.Global.Comet.publish({channel:e,data:k,success:b,error:h})}});CIV.Filter=CIV.Filter||{};CIV.Filter.ViewModel=CIV.Class.Create(function(b){var c=this;var a=$.extend({},{bundle:null},b.data||{});ko.mapping.fromJS(a,{ignore:"partialParameters.items"},c);c.active=ko.observable(false);c.enabled=ko.dependentObservable(function(){if(c.active()){return false}var d=true;ko.utils.arrayFirst(b.parent(),function(e){if(e!=c&&e.bundle()==c.bundle()&&e.bundle()!=null&&e.active()){d=false}});return d});c.canActivate=function(){return true};c.beforeActivate=function(){};c.beforeDeactivate=function(){};c.activate=function(){if(c.enabled()&&c.canActivate()){c.beforeActivate();c.active(true)}};c.deactivate=function(){c.beforeDeactivate();c.active(false)};c.remove=function(){b.parent.destroy(c)};c.description=ko.dependentObservable(function(){return c.title()});c.templateName=ko.dependentObservable(function(){if(c.partial()==null){return"DefaultFilterTemplate"}return c.partial()+"Template"})});CIV.Filter.Boolean=CIV.Filter.Boolean||{};CIV.Filter.Boolean.ViewModel=CIV.Filter.ViewModel.Extend(function(a){var b=this;this._super(a);b.value=ko.observable(false).extend({address:"filter-"+b.id()});b.value.subscribe(function(c){if(!c){b.deactivate()}else{b.activate()}});b.value.valueHasMutated();b.beforeActivate=function(){b.value(true)};b.beforeDeactivate=function(){b.value(false)};b.filterValue=ko.dependentObservable({read:function(){return{key:b.id(),type:"Boolean",value:b.value()}},write:function(c){b.value(c)}})});CIV.Filter.Input=CIV.Filter.Input||{};CIV.Filter.Input.ViewModel=CIV.Filter.ViewModel.Extend(function(b){var c=this;this._super(b);var a=c.partialParameters.transformPrefix();if(a){a+=": "}c.input=ko.observable(null);c.canActivate=function(){return c.input()};c.description=ko.dependentObservable(function(){return a+c.input()});c.value=ko.dependentObservable({read:function(){if(!c.active()){return}return c.input()},write:function(d){if(!d){return}c.input(d);c.activate()}}).extend({address:"filter-"+c.id()});c.filterValue=ko.dependentObservable({read:function(){return{key:c.id(),type:"Input",input:c.input()}},write:function(d){c.input(d.input)}})});CIV.Filter.DateRange=CIV.Filter.DateRange||{};CIV.Filter.DateRange.ViewModel=CIV.Filter.ViewModel.Extend(function(d){var g=this;this._super(d);var a=g.partialParameters.transformPrefix();g.description=ko.dependentObservable(function(){var h=g.dateStart(),i=g.dateStop();if(h!=null){h=$.global.format(h,"d")}if(i!=null){i=$.global.format(i,"d")}if(h==null){return a+" until "+i}if(i==null){return a+" from "+h+" onwards"}return a+" from "+h+" until "+i});g.canActivate=function(){return !(g.dateStart()==null&&g.dateStop()==null)};var e=ko.observable(false);var f=ko.observable(new Date(0));var b=ko.observable(false);var c=ko.observable(new Date(0));g.languageCode=g.partialParameters.languageCode;g.watermarkStartDate=ko.dependentObservable(function(){if(g.dateStart()==null){return g.partialParameters.watermarkStartDate()}return null});g.watermarkStopDate=ko.dependentObservable(function(){if(g.dateStop()==null){return g.partialParameters.watermarkStopDate()}return null});g.dateStart=ko.dependentObservable({read:function(){if(!e()){return null}return f()},write:function(h){if(h!=null){f().setUTCFullYear(h.getFullYear(),h.getMonth(),h.getDate())}e(h!=null);f(f())}});g.dateStop=ko.dependentObservable({read:function(){if(!b()){return null}return c()},write:function(h){if(h!=null){c().setUTCFullYear(h.getFullYear(),h.getMonth(),h.getDate())}b(h!=null);c(c())}});g.filterValue=ko.dependentObservable({read:function(){return{key:g.id(),type:"DateRange",dateStart:$.global.format(g.dateStart(),"d","en"),dateStop:$.global.format(g.dateStop(),"d","en")}},write:function(h){g.dateStart($.global.parseDate(h.dateStart,"d","en"));g.dateStop($.global.parseDate(h.dateStop,"d","en"))}});g.value=ko.dependentObservable({read:function(){if(!g.active()){return}return g.filterValue().dateStart+"."+g.filterValue().dateStop},write:function(i){if(!i){g.deactivate();return}var h=i.split(".");g.filterValue({dateStart:h[0],dateStop:h[1]});g.activate()}}).extend({address:"filter-"+g.id()})});CIV.Filter.DateTimeRange=CIV.Filter.DateTimeRange||{};CIV.Filter.DateTimeRange.ViewModel=CIV.Filter.ViewModel.Extend(function(a){var f=this;this._super(a);var e=f.partialParameters.transformPrefix();var c=ko.observable(new Date(0));var b=ko.observable(false);var h=ko.observable(new Date(0));var d=ko.observable(false);f.canLocalTime=ko.observable(f.partialParameters.canLocalTime()||false);f.localTime=ko.observable(false);f.description=ko.dependentObservable(function(){var j=b()?c():null,k=d()?h():null;var i=f.localTime()?" (local time)":"";if(j!=null){j=$.global.format(j,"f")}if(k!=null){k=$.global.format(k,"f")}if(j==null){return e+" until "+k+i}if(k==null){return e+" from "+j+" onwards"+i}return e+" from "+j+" until "+k+i});f.canActivate=function(){return !(f.dateStart()==null&&f.dateStop()==null)};f.hours=[];for(var g=0;g<24;g++){f.hours.push({text:("0"+g.toString()).substr(-2),value:g})}f.minutes=[];for(var g=0;g<60;g++){f.minutes.push({text:("0"+g.toString()).substr(-2),value:g})}f.dateStart=ko.dependentObservable({read:function(){if(!b()){return null}console.log("read dateStart");return c()},write:function(i){if(i!=null){c().setUTCFullYear(i.getFullYear(),i.getMonth(),i.getDate())}b(i!=null);c(c())}});f.dateStartHour=ko.dependentObservable({read:function(){return c().getUTCHours()},write:function(i){if(c().getUTCHours()==i){return}c().setUTCHours(i);c(c())}});f.dateStartMinute=ko.dependentObservable({read:function(){return c().getUTCMinutes()},write:function(i){if(c().getUTCMinutes()==i){return}c().setUTCMinutes(i);c(c())}});f.dateStop=ko.dependentObservable({read:function(){if(!d()){return null}return h()},write:function(i){if(i!=null){h().setUTCFullYear(i.getFullYear(),i.getMonth(),i.getDate())}d(i!=null)}});f.dateStopHour=ko.dependentObservable({read:function(){return h().getUTCHours()},write:function(i){if(h().getUTCHours()==i){return}h().setUTCHours(i);h(h())}});f.dateStopMinute=ko.dependentObservable({read:function(){return h().getUTCMinutes()},write:function(i){if(h().getUTCMinutes()==i){return}h().setUTCMinutes(i);h(h())}});f.languageCode=f.partialParameters.languageCode;f.watermarkStartDate=ko.dependentObservable(function(){if(f.dateStart()==null){return f.partialParameters.watermarkStartDate()}return null});f.watermarkStopDate=ko.dependentObservable(function(){if(f.dateStop()==null){return f.partialParameters.watermarkStopDate()}return null});f.filterValue=ko.dependentObservable({read:function(){return{key:f.id(),type:"DateTimeRange",dateStart:b()?$.global.format(c(),"S","en"):null,dateStop:d()?$.global.format(h(),"S","en"):null,localTime:f.localTime()}},write:function(l){console.log("restore filterValue");var k=$.global.parseDate(l.dateStart,"S","en");var i=k||new Date(0);c(i);b(k!=null);var j=$.global.parseDate(l.dateStop,"S","en");i=j||new Date(0);h(i);d(j!=null);f.localTime(Boolean(l.localTime))}});f.value=ko.dependentObservable({read:function(){if(!f.active()){return}return f.filterValue().dateStart+"."+f.filterValue().dateStop+"."+f.localTime()},write:function(j){if(!j){f.deactivate();return}var i=j.split(".");f.filterValue({dateStart:i[0],dateStop:i[1],localTime:Boolean(i[2])});f.activate()}}).extend({address:"filter-"+f.id()})});CIV.Filter.Dropdown=CIV.Filter.Dropdown||{};CIV.Filter.Dropdown.ViewModel=CIV.Filter.ViewModel.Extend(function(c){var d=this;this._super(c);var a=d.partialParameters.transformPrefix();if(a){a+=": "}d.items=ko.observableArray([]);var b=[];$.each(c.data.partialParameters.items,function(f,e){b.push({key:e.key,value:e.value})});d.items(b);d.selectedItem=ko.observable();d.description=ko.dependentObservable(function(){return a+ko.utils.unwrapObservable(ko.utils.unwrapObservable(d.selectedItem).value)});d.selectedItemKey=ko.dependentObservable(function(){if(!ko.utils.unwrapObservable(d.selectedItem)){return""}return ko.utils.unwrapObservable(ko.utils.unwrapObservable(d.selectedItem).key)});d.canActivate=function(){return ko.utils.unwrapObservable(d.selectedItemKey).length>0};d.value=ko.dependentObservable({read:function(){if(d.selectedItem()&&d.active()){return d.selectedItemKey()}return null},write:function(f){if(!f){return}var e=false;$.each(d.items(),function(h,g){if(g.key==f){d.selectedItem(g);d.activate();e=true;return false}});if(!e){throw"Invalid key in filter dropdown: "+f}}}).extend({address:"filter-"+d.id()});d.filterValue=ko.dependentObservable({read:function(){return{key:d.id(),type:"Dropdown",input:d.selectedItemKey()}},write:function(e){d.value(e)}})});CIV.Filter.CascadingDropdown=CIV.Filter.CascadingDropdown||{};CIV.Filter.CascadingDropdown.ViewModel=CIV.Filter.ViewModel.Extend(function(c){var d=this;this._super(c);var a=d.partialParameters.transformPrefix();if(a){a+=": "}d.cascadingLabel=ko.observable();d.cascadingLabel(d.partialParameters.cascadingDropdownLabel());d.items=ko.observableArray([]);var b=[];$.each(c.data.partialParameters.items,function(f,e){b.push({key:e.key,value:e.value,items:e.items})});d.items(b);d.selectedItem=ko.observable();d.selectedSubItem=ko.observable();d.subItems=ko.observableArray([]);d.selectedItem.subscribe(function(){if(d.selectedItem()){var e=[];$.each(d.selectedItem().items,function(g,f){e.push({key:f.key,value:f.value});d.subItems(e)})}});d.description=ko.dependentObservable(function(){var f=ko.utils.unwrapObservable(ko.utils.unwrapObservable(d.selectedItem).value);if(!d.selectedSubItem()){return a+f}var e=d.selectedSubItem().value;return a+f+" - "+e});d.selectedItemKey=ko.dependentObservable(function(){if(!ko.utils.unwrapObservable(d.selectedItem)){return""}return ko.utils.unwrapObservable(ko.utils.unwrapObservable(d.selectedItem).key)});d.selectedSubItemKey=ko.dependentObservable(function(){if(!ko.utils.unwrapObservable(d.selectedSubItem)){return""}return ko.utils.unwrapObservable(ko.utils.unwrapObservable(d.selectedSubItem).key)});d.value=ko.dependentObservable({read:function(){if(d.selectedItem()&&d.active()){var e=d.selectedItemKey();if(d.selectedSubItemKey().length){e+="."+d.selectedSubItemKey()}return e}return null},write:function(g){if(!g){return}var e=false;var f=g.split(".");$.each(d.items(),function(i,h){if(h.key==f[0]){d.activate();d.selectedItem(h);e=true}});if(f.length==2){$.each(d.subItems(),function(i,h){if(h.key==f[1]){d.selectedSubItem(h)}})}if(e){return false}if(!e){throw"Invalid key in filter dropdown: "+g}}}).extend({address:"filter-"+d.id()});d.filterValue=ko.dependentObservable({read:function(){return{key:d.id(),type:"CascadingDropdown",input:d.selectedItemKey(),cascadingInput:d.selectedSubItemKey()}},write:function(e){d.value(e)}})});CIV.Filter.DropdownInput=CIV.Filter.DropdownInput||{};CIV.Filter.DropdownInput.ViewModel=CIV.Filter.ViewModel.Extend(function(b){var c=this;this._super(b);var a=c.partialParameters.transformPrefix();if(a){a+=" "}c.canActivate=function(){return c.selectedItemKey()&&c.input()};c.input=ko.observable(null);c.items=ko.observableArray([]);$.each(b.data.partialParameters.items,function(e,d){c.items.push({key:d.key,value:d.value})});c.selectedItem=ko.observable();c.description=ko.dependentObservable(function(){return a+ko.utils.unwrapObservable(ko.utils.unwrapObservable(c.selectedItem).value)+" "+ko.utils.unwrapObservable(c.input)+" seconds"});c.selectedItemKey=ko.dependentObservable(function(){if(!ko.utils.unwrapObservable(c.selectedItem)){return""}return ko.utils.unwrapObservable(ko.utils.unwrapObservable(c.selectedItem).key)});c.value=ko.dependentObservable({read:function(){if(c.selectedItem()&&c.active()){var d=c.selectedItemKey();var e=c.input();if(e){d+="."+e}return d}return null},write:function(f){if(!f){return}var e=f.split(".");var d=false;$.each(c.items(),function(h,g){if(g.key==e[0]){c.selectedItem(g);d=true}});if(e.length==2){c.input(e[1])}if(d){c.activate()}return false;if(!d){throw"Invalid key in filter dropdown: "+f}}}).extend({address:"filter-"+c.id()});c.filterValue=ko.dependentObservable({read:function(){return{key:c.id(),type:"DropdownInput",filter:c.selectedItemKey(),input:c.input()}},write:function(d){c.value(d)}})});CIV.Filter.DropdownMultiSelect=CIV.Filter.DropdownMultiSelect||{};CIV.Filter.DropdownMultiSelect.ViewModel=CIV.Filter.ViewModel.Extend(function(c){var d=this;this._super(c);var a=d.partialParameters.transformPrefix();if(a){a+=": "}d.items=ko.observableArray([]);var b=[];$.each(c.data.partialParameters.items,function(f,e){b.push({key:e.key,value:e.value})});d.items(b);d.selectedItem=ko.observable();d.selectedItems=ko.observableArray([]);d.description=ko.dependentObservable(function(){var e="";ko.utils.arrayForEach(d.selectedItems(),function(f){e+=f.value+", "});return a+e.substr(0,e.length-2)});d.selectedItemKey=ko.dependentObservable(function(){if(!ko.utils.unwrapObservable(d.selectedItem)){return""}return ko.utils.unwrapObservable(ko.utils.unwrapObservable(d.selectedItem).key)});d.canActivate=function(){return d.selectedItems().length>0};d.add=function(){var e=ko.utils.arrayFirst(d.selectedItems(),function(f){if(f.key==d.selectedItem().key){return f}return null});if(e){return}d.selectedItems.push(ko.utils.unwrapObservable(d.selectedItem))};d.clear=function(){d.selectedItems([])};d.getKeys=function(){var e="";ko.utils.arrayForEach(d.selectedItems(),function(f){e+=f.key+","});return e.substr(0,e.length-1)};d.value=ko.dependentObservable({read:function(){if(d.selectedItems().length&&d.active()){return d.getKeys()}return null},write:function(g){if(!g){return}var f=g.split(",");var e=false;$.each(d.items(),function(i,h){$.each(f,function(j,k){if(h.key==k){d.selectedItems.push({key:h.key,value:h.value});d.activate();e=true;return false}})});if(!e){throw"Invalid key in filter dropdown: "+g}}}).extend({address:"filter-"+d.id()});d.filterValue=ko.dependentObservable({read:function(){return{key:d.id(),type:"DropdownMultiSelect",input:d.getKeys()}},write:function(e){d.value(e)}})});CIV.Filter.Mapping={create:function(a){if(a.data.partial=="FilterDateRange"){return new CIV.Filter.DateRange.ViewModel(a)}if(a.data.partial=="FilterDateTimeRange"){return new CIV.Filter.DateTimeRange.ViewModel(a)}if(a.data.partial=="FilterInput"){return new CIV.Filter.Input.ViewModel(a)}if(a.data.partial=="FilterDropdown"){return new CIV.Filter.Dropdown.ViewModel(a)}if(a.data.partial=="FilterCascadingDropdown"){return new CIV.Filter.CascadingDropdown.ViewModel(a)}if(a.data.partial=="FilterDropdownInput"){return new CIV.Filter.DropdownInput.ViewModel(a)}if(a.data.partial=="FilterDropdownMultiSelect"){return new CIV.Filter.DropdownMultiSelect.ViewModel(a)}return new CIV.Filter.Boolean.ViewModel(a)},key:function(a){return $.unwrap(a.id)}};CIV.Pager={Model:CIV.Class.Create(function(c){var d=this;var a={pageSize:10,currentPageIndex:1,numberOfPagesVisible:5,totalItemCount:null};var b=$.extend({},a,c.data);ko.mapping.fromJS(b,{},this);this.currentPageIndex.equalityComparer=null;this.pageCount=ko.dependentObservable({read:function(){return d.totalItemCount()==null||d.pageSize()==null?null:Math.ceil(d.totalItemCount()/d.pageSize())}});d.pageSizeString=ko.dependentObservable({read:function(){return d.pageSize().toString()},write:function(e){d.pageSize(parseInt(e));if(d.currentPageIndex()>d.pageCount()){d.currentPageIndex(d.pageCount())}}});d.numberStart=ko.dependentObservable(function(){if(d.pageCount()==null){return null}if(d.pageCount()<=d.numberOfPagesVisible()){return 1}var e=d.currentPageIndex()-Math.floor((d.numberOfPagesVisible()-1)/2);if(e<1){e=1}if((e+d.numberOfPagesVisible())>(d.pageCount())){e=d.pageCount()-d.numberOfPagesVisible()+1}return e});d.numberStop=ko.dependentObservable(function(){if(d.pageCount()<=d.numberOfPagesVisible()){return d.pageCount()}return d.numberStart()+d.numberOfPagesVisible()-1});d.pageItems=ko.dependentObservable(function(){return{start:(d.currentPageIndex()-1)*d.pageSize(),count:d.pageSize()}})})};ko.bindingHandlers.grid={init:function(a,b){ko.dependentObservable(function(){var d=$.unwrap(b());if(!d){return}var c=d.template()||"gridTemplate";ko.renderTemplate(c,d,{},a)})}};
