var __extends,apiphany;(function(n){var t;(function(n){var t;(function(n){var t=function(){function n(){this.defaultTemplateName="simpleValidationSummaryItemTemplate";this.issues=ko.observableArray([]);this.hasIssues=ko.computed(function(){return this.issues().length>0},this);this.warnings=ko.observableArray([]);this.hasWarnings=ko.computed(function(){return this.warnings().length>0},this);this.notifications=ko.observableArray([]);this.hasNotifications=ko.computed(function(){return this.notifications().length>0},this);this.hasAnything=ko.computed(function(){return this.hasIssues()||this.hasWarnings()||this.hasNotifications()},this);this.hasNotifications=this.hasNotifications.bind(this);this.hasWarnings=this.hasWarnings.bind(this);this.hasIssues=this.hasIssues.bind(this);this.hasAnything=this.hasAnything.bind(this)}return n.prototype.takeIssue=function(n){this.addErrorMessage(n.message)},n.prototype.takeWarning=function(n){this.addWarningMessage(n.message)},n.prototype.takeNotification=function(n){this.addNotificationMessage(n.message)},n.prototype.addTemplatedWarningMessage=function(n,t){var i={template:n,templateData:t};this.warnings.push(i)},n.prototype.addTemplatedErrorMessage=function(n,t){var i={template:n,templateData:t};this.issues.push(i)},n.prototype.addErrorMessage=function(n){var t={template:this.defaultTemplateName,templateData:n};this.issues.push(t)},n.prototype.addErrorMessages=function(){for(var t=this,i=[],n=0;n<arguments.length;n++)i[n]=arguments[n];i.forEach(function(n){var i={template:t.defaultTemplateName,templateData:n};t.issues.push(i)})},n.prototype.addWarningMessage=function(n){var t={template:this.defaultTemplateName,templateData:n};this.warnings.push(t)},n.prototype.addNotificationMessage=function(n){var t={template:this.defaultTemplateName,templateData:n};this.notifications.push(t)},n.prototype.takeAllIssues=function(n){var t=this;this.clearAllIssues();n.forEach(function(n){return t.addErrorMessage(n.message)})},n.prototype.takeAllNotifications=function(n){var t=this;this.clearAllNotifications();n.forEach(function(n){return t.addNotificationMessage(n.message)})},n.prototype.clearAllMessages=function(){this.issues.removeAll();this.notifications.removeAll();this.warnings.removeAll()},n.prototype.clearAllIssues=function(){this.issues.removeAll()},n.prototype.clearAllNotifications=function(){this.notifications.removeAll()},n}();n.ValidationSummary=t})(t=n.UI||(n.UI={}))})(t=n.Core||(n.Core={}))})(apiphany||(apiphany={}));__extends=this&&this.__extends||function(){var n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])};return function(t,i){function r(){this.constructor=t}n(t,i);t.prototype=i===null?Object.create(i):(r.prototype=i.prototype,new r)}}(),function(n){var t;(function(n){var t;(function(n){var t=function(){function n(){this.message=ko.observable("");this.shownCount=0;this.visible=ko.observable(!1)}return n.prototype.show=function(n){n===void 0&&(n=null);this.shownCount<=0&&(this.visible(!0),n==null&&(n="Working..."),this.message(n));this.shownCount++},n.prototype.hide=function(){this.shownCount--;this.shownCount<=0&&(this.visible(!1),this.message(null))},n.prototype.isShown=function(){return this.visible()},n}(),i,r,u;n.CurtainBase=t;i=function(n){function t(){return n!==null&&n.apply(this,arguments)||this}return __extends(t,n),t.prototype.progress=function(){},t}(t);n.Curtain=i;r=function(n){function t(t){t===void 0&&(t=ko.observable(0));var i=n.call(this)||this;return i.progress=t,i}return __extends(t,n),t}(t);n.ProgressCurtain=r;u=function(){function n(n){n===void 0&&(n=[]);this.curtains=n}return n.prototype.registerCurtain=function(n){if(n==null)throw new Error("Curtain is not specified.");this.curtains.push(n)},n.prototype.show=function(){for(var t=this.curtains,n=0,i=t.length;n<i;n++)t[n].show()},n.prototype.hide=function(){for(var t=this.curtains,n=0,i=t.length;n<i;n++)t[n].hide()},n.prototype.isShown=function(){for(var t=this.curtains,n=0,i=t.length;n<i;n++)if(t[n].isShown())return!0;return!1},n.prototype.progress=function(n){for(var i=this.curtains,t=0,r=i.length;t<r;t++)i[t].progress(n)},n}();n.CompoundCurtain=u})(t=n.UI||(n.UI={}))})(t=n.Core||(n.Core={}))}(apiphany||(apiphany={})),function(n){var t;(function(n){var t;(function(t){var i=function(){function n(n,t,i){this.name=n;this.handler=t;this.isDefault=i}return n}(),r,u;t.DialogButton=i;r=function(){function t(t,i,r){r===void 0&&(r=new n.UI.Curtain);var u=this;this.validationSummary=i;this.curtain=r;this.buttons=this.createButtons(t.buttons);this.tobeClosed=new ko.subscribable;this.content=t.content;$(document).keyup(function(n){n.keyCode==27&&u.close()})}return t.prototype.createButtons=function(n){for(var u=[],t=0,f=n.length;t<f;t++){var r=n[t],e=this.startExecutingButtonHandler.bind(this,r.handler),o=new i(r.name,e,r.isDefault);u.push(o)}return u},t.prototype.startExecutingButtonHandler=function(n){var t=n(),i;if(t==null)throw new Error("Dialog button handler didn't return anything.");return i=new u(this),t.accept(i),!1},t.prototype.finishExecutingSyncButtonHandler=function(n){if(n.canCloseDialog===!0)this.close();else if(n.canCloseDialog===!1)this.stayOpen();else throw new Error("Unexpected type of dialog button result: "+typeof n.canCloseDialog+".");},t.prototype.finishExecutingAsyncButtonHandler=function(n){var t=this,i=n.canCloseDialogPromise,r;i&&(r=n.curtainMessageOpt,this.curtain.show(r),i.then(function(n){return t.curtain.hide(),t.close(),n},function(n){return t.curtain.hide(),t.takeErrors(n)}))},t.prototype.close=function(){this.tobeClosed.notifySubscribers(this)},t.prototype.takeErrors=function(n){return n},t.prototype.stayOpen=function(){},t.prototype.dispose=function(){},t.createSyncButton=function(n,i,r){var u=function(){var n=i();return t.createSyncDialogButtonResult(n)};return{name:n,handler:u,isDefault:r}},t.createAsyncButton=function(n,t,i,r){var e=this,u,f;return r===void 0&&(r=null),u=function(){var n=t();return e.createAsyncDialogButtonResult(n,r)},f={name:n,handler:u,isDefault:i},f},t.createSyncDialogButtonResult=function(n){return{canCloseDialog:n,accept:function(n){n.resolveSyncButtonResult(this)}}},t.createAsyncDialogButtonResult=function(n,t){t===void 0&&(t=null);return{canCloseDialogPromise:n,curtainMessageOpt:t,accept:function(n){n.resolveAsyncButtonResult(this)}}},t}();t.Dialog=r;u=function(){function n(n){this.dialog=n}return n.prototype.resolveSyncButtonResult=function(n){this.dialog.finishExecutingSyncButtonHandler(n)},n.prototype.resolveAsyncButtonResult=function(n){this.dialog.finishExecutingAsyncButtonHandler(n)},n}()})(t=n.UI||(n.UI={}))})(t=n.Core||(n.Core={}))}(apiphany||(apiphany={})),function(n){var t;(function(n){var t;(function(t){var i=function(){function t(n,t,i){this.fetcher=n;this.curtain=t;this.issueConsumer=i;this.sendingRequest=ko.observable(!1)}return t.prototype.request=function(t,i,r){var f=this,u;return this.sendingRequest(!0),this.curtain!=null&&this.curtain.show(),this.issueConsumer!=null&&this.issueConsumer.clearAllIssues(),u=this.fetcher.request(t,i,r),this.curtain!=null&&u.always(function(){f.curtain.hide();f.sendingRequest(!1)}),this.issueConsumer!=null&&u.fail(function(t){var i=n.stringsToMessages(t);f.issueConsumer.takeAllIssues(i)}),u},t}();t.UIFetcher=i})(t=n.UI||(n.UI={}))})(t=n.Core||(n.Core={}))}(apiphany||(apiphany={})),function(n){var t;(function(n){var t;(function(t){var i=function(){function t(){this.current=ko.observable(null)}return t.prototype.showDialog=function(t){var u=new n.UI.ValidationSummary,i=new n.UI.Dialog(t,u),r=new n.Disposables,f=t.issuesNotifierOpt,e;return f!=null&&r.register(f.registerIssueConsumer(u)),e={dialog:i,templateName:t.templateName},r.register(i),r.register(i.tobeClosed.subscribe(this.closeDialog.bind(this,r))),this.current(e),jQuery("body").css("overflow","hidden"),i},t.prototype.closeDialog=function(n){n.dispose();n=null;this.current(null);jQuery("body").css("overflow","auto")},t}();t.DialogManager=i})(t=n.UI||(n.UI={}))})(t=n.Core||(n.Core={}))}(apiphany||(apiphany={})),function(n){var t;(function(n){var t;(function(t){var i=function(){function t(n,t){this.dialogManager=n;this.issuePublisher=t}return t.prototype.show=function(t,i,r,u,f){var e=this;f===void 0&&(f=null);var o=n.UI.Dialog.createAsyncButton(r,function(){return e.executeAction(t)},!0,f),s=n.UI.Dialog.createSyncButton(u,function(){return!0},!1),h={content:i,buttons:[o,s],templateName:"simpleMessageDialogTemplate",issuesNotifierOpt:this.issuePublisher};return this.dialogManager.showDialog(h)},t.prototype.executeAction=function(t){var u=this,r=jQuery.Deferred(),i=jQuery.Deferred();return t(r),r.promise().then(function(){i.resolve()},function(t){u.issuePublisher.reportAllIssues(n.stringsToMessages(t));i.reject()}),i.promise()},t}();t.ConfirmAjaxActionDialog=i})(t=n.UI||(n.UI={}))})(t=n.Core||(n.Core={}))}(apiphany||(apiphany={}))