{ "version": 3, "sources": [ "../config-wrap-start-default.js", "../scripts/durandal/system.js", "../scripts/durandal/viewEngine.js", "../scripts/durandal/viewLocator.js", "../scripts/durandal/binder.js", "../scripts/durandal/activator.js", "../scripts/durandal/composition.js", "../scripts/durandal/events.js", "../scripts/durandal/app.js", "models/portal.js", "services/jsonconverter.js", "services/httpclient.js", "services/trace.js", "common/string.js", "../scripts/durandal/plugins/dialog.js", "models/socialnetwork.js", "common/constants.js", "services/applicationstorage.js", "common/guid.js", "services/taskmanager.js", "../scripts/durandal/plugins/history.js", "../scripts/durandal/plugins/router.js", "common/viewmodelbase.js", "areas/home/commands/logoutcommand.js", "areas/account/viewmodels/login.js", "services/oneclickusermanager.js", "services/aaausermanager.js", "services/simpleusermanager.js", "models/environment.js", "services/settings.js", "models/account.js", "bootstrapper.js", "main.js", "areas/aaaprovisioning/viewmodels/index.js", "areas/activityfeed/models/bindable.js", "areas/activityfeed/models/dto.js", "common/tuple.js", "common/parts.js", "areas/activityfeed/parts/createcpmsession.js", "areas/activityfeed/parts/getcpmactivities.js", "areas/activityfeed/parts/getcpmclient.js", "areas/activityfeed/parts/getcpmoffice.js", "areas/activityfeed/parts/getcpmtoken.js", "areas/activityfeed/service/activityfeed-service.js", "areas/activityfeed/viewmodels/index.js", "areas/activityfeedconfigurator/models/bindable.js", "areas/activityfeedconfigurator/models/dto.js", "areas/activityfeedconfigurator/service/activityfeedconfigurator-service.js", "areas/activityfeedconfigurator/service/billingemail-service.js", "areas/activityfeedconfigurator/viewmodels/index.js", "areas/autologout/viewmodels/autologout.js", "services/navigator.js", "areas/baseconeproduct/viewmodels/index.js", "areas/cchgdprcompliance/viewmodels/index.js", "areas/clientteam/models/bindable.js", "areas/clientteam/parts/getclientteammembers.js", "areas/clientteam/viewmodels/index.js", "areas/digitaltaxdownload/viewmodels/index.js", "areas/gomobiledownload/viewmodels/index.js", "areas/home/commands/aaaswitchercommand.js", "areas/home/commands/changecolorcommand.js", "areas/home/commands/logincommand.js", "areas/home/commands/navigatecommand.js", "areas/home/commands/showhelpcommand.js", "areas/home/model/dto.js", "areas/home/model/livetilecacheitem.js", "areas/home/model/livetilerequest.js", "areas/home/model/panels.js", "areas/home/model/sidebaritem.js", "areas/home/model/sidebar.js", "areas/home/parts/loadmymodules.js", "areas/home/parts/loadnavigation.js", "areas/home/parts/mapmodulestorouter.js", "common/triple.js", "areas/home/services/livetilecache.js", "areas/home/viewmodels/datatile.js", "areas/home/parts/maptonavigationmodel.js", "areas/home/viewmodels/container.js", "areas/home/viewmodels/dashboard.js", "areas/home/viewmodels/help.js", "areas/home/viewmodels/home.js", "areas/home/viewmodels/placeholder.js", "areas/home/viewmodels/shellextender.js", "areas/widgetmanager/viewmodels/index.js", "areas/home/viewmodels/shell.js", "areas/home/workers/sampleworker.js", "areas/iServe/viewmodels/index.js", "areas/informationrequest/models/bindable.js", "areas/informationrequest/service/dataCollectionClient.js", "areas/informationrequest/service/informationrequest-service.js", "areas/informationrequest/service/sectionapimappings.js", "areas/informationrequest/service/toastDCService.js", "areas/informationrequest/viewmodels/DTAInformationDialog.js", "areas/informationrequest/viewmodels/PartnerInformation.js", "areas/informationrequest/viewmodels/hmrcAPIInfo.js", "areas/informationrequest/viewmodels/clientDetails.js", "areas/informationrequest/viewmodels/hmrcInfoDetails.js", "areas/informationrequest/viewmodels/index.js", "areas/informationrequest/viewmodels/spousePartnerInfo.js", "areas/informationrequest/viewmodels/viewattachments.js", "areas/kb/viewmodels/index.js", "areas/logout/viewmodels/index.js", "areas/navigationmanager/commands/creategroupcommand.js", "areas/navigationmanager/commands/createnavigationnodecommand.js", "areas/navigationmanager/commands/movenavigationnodecommand.js", "areas/navigationmanager/commands/removegroupcommand.js", "areas/navigationmanager/commands/removenavigationnodecommand.js", "areas/navigationmanager/commands/savenavigationmodelcommand.js", "areas/navigationmanager/models/bindable.js", "areas/navigationmanager/models/dto.js", "areas/navigationmanager/services/mappings.js", "areas/navigationmanager/parts/creategroup.js", "areas/navigationmanager/parts/createnavigationnode.js", "areas/navigationmanager/parts/loadclient.js", "areas/navigationmanager/parts/loadmodulelocks.js", "areas/navigationmanager/parts/loadmodules.js", "areas/navigationmanager/parts/loadnavigation.js", "areas/navigationmanager/parts/movenavigationnode.js", "areas/navigationmanager/parts/removegroup.js", "areas/navigationmanager/parts/removenavigationnode.js", "models/event.js", "models/controller.js", "models/breeze.js", "areas/navigationmanager/services/navigationrepository.js", "areas/navigationmanager/parts/savemodulelocks.js", "areas/navigationmanager/parts/savenavigationmodel.js", "areas/navigationmanager/services/iconlist.js", "common/commands.js", "areas/navigationmanager/viewmodels/index.js", "areas/navigationmanager/viewmodels/memberconfigurator.js", "areas/organizationmanager/commands/createinfrastructurecommand.js", "areas/organizationmanager/commands/directloginmembercommand.js", "areas/organizationmanager/commands/directloginorgcommand.js", "areas/organizationmanager/commands/downloadmemberpdfcommand.js", "areas/organizationmanager/commands/downloadorgpdfcommand.js", "areas/organizationmanager/commands/resendactivationcommand.js", "areas/organizationmanager/commands/showuserdatacommand.js", "areas/organizationmanager/models/bindable.js", "areas/organizationmanager/models/dto.js", "areas/organizationmanager/models/organizationbase.js", "areas/organizationmanager/services/mappings.js", "areas/organizationmanager/services/networkmemberrepository.js", "areas/organizationmanager/services/organizationsrepository.js", "areas/organizationmanager/viewmodels/changeurl.js", "areas/organizationmanager/viewmodels/index.js", "areas/organizationmanager/viewmodels/networkmembers.js", "areas/organizationmanager/viewmodels/userdata.js", "areas/payescapeproduct/viewmodels/index.js", "areas/shopitemtemplate/commands/createshopitemscommand.js", "areas/shopitemtemplate/commands/editshopitemtemplatecommand.js", "areas/shopitemtemplate/commands/writeshopitemtemplatecommand.js", "areas/shopitemtemplate/models/bindable.js", "areas/shopitemtemplate/models/dto.js", "areas/shopitemtemplate/services/mappings.js", "areas/shopitemtemplate/services/shopitemtemplaterepository.js", "areas/shopitemtemplate/parts/loadshopitemtemplate.js", "areas/shopitemtemplate/viewmodels/createshopitems.js", "areas/shopitemtemplate/viewmodels/edit.js", "areas/shopitemtemplate/viewmodels/index.js", "areas/shopitemtemplate/viewmodels/write.js", "areas/tools/models/bindable.js", "areas/tools/viewmodels/index.js", "areas/tutorial/viewmodels/startuptutorial.js", "areas/tutorialpopup/viewmodels/index.js", "areas/tutorials/viewmodels/index.js", "areas/twinfieldproduct/viewmodels/index.js", "areas/wkappstore/viewmodels/index.js", "common/dateUtil.js", "common/singletonviewmodel.js", "common/unit.js", "models/disposable.js", "services/avatarService.js", "services/azurestorage.js", "services/iusermanager.js", "services/portalstorage.js", "widgets/dataGrid/model.js", "../scripts/durandal/plugins/widget.js", "widgets/dataGrid/viewmodel.js", "widgets/dataList/model.js", "widgets/dataList/viewmodel.js", "widgets/pagedView/viewmodel.js", "widgets/simpleView/viewmodel.js", "../scripts/durandal/plugins/http.js", "../scripts/durandal/plugins/observable.js", "../scripts/durandal/plugins/serializer.js", "../scripts/durandal/transitions/entrance.js", "../scripts/text.js", "areas/aaaprovisioning/views/index.html!text", "areas/account/views/login.html!text", "areas/activityfeed/views/index.html!text", "areas/activityfeedconfigurator/views/index.html!text", "areas/autologout/views/autologout.html!text", "areas/baseconeproduct/views/index.html!text", "areas/cchgdprcompliance/views/index.html!text", "areas/clientteam/views/index.html!text", "areas/digitaltaxdownload/views/index.html!text", "areas/gomobiledownload/views/index.html!text", "areas/home/views/breadcrumbbar.html!text", "areas/home/views/container.html!text", "areas/home/views/dashboard.html!text", "areas/home/views/footer.html!text", "text!areas/home/views/hamburger-menu.html", "areas/home/views/headline.html!text", "areas/home/views/help.html!text", "areas/home/views/home.html!text", "areas/home/views/navigation.html!text", "areas/home/views/newspanel.html!text", "areas/home/views/placeholder.html!text", "areas/home/views/searchresult.html!text", "areas/home/views/shell.html!text", "areas/home/views/shortcuts.html!text", "areas/home/views/sidebar.html!text", "areas/home/views/tiles/2x1.template.html!text", "areas/home/views/tiles/3x1.template.html!text", "areas/home/views/tiles/badge.template.html!text", "text!areas/home/views/tiles/chart-small.template.html", "text!areas/home/views/tiles/chart-wide.template.html", "text!areas/home/views/tiles/default-uk.template.html", "areas/home/views/tiles/default.template.html!text", "text!areas/home/views/tiles/mobile-app.template.html", "text!areas/home/views/tiles/part-1x1-book-amount.template.html", "text!areas/home/views/tiles/part-1x1-book-info.template.html", "text!areas/home/views/tiles/part-1x1-icon.template.html", "text!areas/home/views/tiles/part-1x1-info.template.html", "text!areas/home/views/tiles/part-1x1-links.template.html", "text!areas/home/views/tiles/part-1x1-nodata.template.html", "text!areas/home/views/tiles/part-1x1-report-amount.template.html", "text!areas/home/views/tiles/part-1x1-report-info.template.html", "text!areas/home/views/tiles/part-1x1-uploads.template.html", "text!areas/home/views/tiles/part-2x1-book-amount.template.html", "text!areas/home/views/tiles/part-2x1-book-info.template.html", "text!areas/home/views/tiles/part-2x1-icon.template.html", "text!areas/home/views/tiles/part-2x1-info.template.html", "text!areas/home/views/tiles/part-2x1-links.template.html", "text!areas/home/views/tiles/part-2x1-nodata.template.html", "text!areas/home/views/tiles/part-2x1-report-amount.template.html", "text!areas/home/views/tiles/part-2x1-report-info.template.html", "text!areas/home/views/tiles/part-2x1-uploads.template.html", "text!areas/home/views/tiles/part-3x1-icon.template.html", "text!areas/home/views/tiles/part-3x1-info.template.html", "text!areas/home/views/tiles/part-3x1-links.template.html", "text!areas/home/views/tiles/part-3x1-nodata.template.html", "text!areas/home/views/tiles/part-3x1-uploads.template.html", "areas/home/views/tiles/tutorial.template.html!text", "text!areas/home/views/tiles/uk-2x1.template.html", "areas/home/views/ukrightpanel.html!text", "areas/iServe/views/index.html!text", "areas/informationrequest/views/DTAInformationDialog.html!text", "areas/informationrequest/views/PartnerInformation.html!text", "areas/informationrequest/views/clientDetails.html!text", "areas/informationrequest/views/hmrcAPIInfo.html!text", "areas/informationrequest/views/hmrcInfoDetails.html!text", "areas/informationrequest/views/index.html!text", "areas/informationrequest/views/spousePartnerInfo.html!text", "areas/informationrequest/views/viewattachments.html!text", "areas/kb/views/index.html!text", "areas/logout/views/index.html!text", "areas/navigationmanager/views/editor.html!text", "areas/navigationmanager/views/index.html!text", "areas/navigationmanager/views/memberconfigurator.html!text", "areas/organizationmanager/views/changeurl.html!text", "areas/organizationmanager/views/index.html!text", "areas/organizationmanager/views/networkmembers.html!text", "areas/organizationmanager/views/userdata.html!text", "areas/payescapeproduct/views/index.html!text", "areas/shopitemtemplate/views/createshopitems.html!text", "areas/shopitemtemplate/views/edit.html!text", "areas/shopitemtemplate/views/index.html!text", "areas/shopitemtemplate/views/write.html!text", "areas/tools/views/index.html!text", "areas/tutorial/views/startuptutorial.html!text", "areas/tutorialpopup/views/index.html!text", "areas/tutorials/views/index.html!text", "areas/twinfieldproduct/views/index.html!text", "areas/widgetmanager/views/index.html!text", "areas/wkappstore/views/index.html!text", "widgets/dataGrid/view.html!text", "widgets/dataList/view.html!text", "widgets/pagedView/view.html!text", "widgets/simpleView/view.html!text", "../../../../../../../../module-insertRequire.js", "../config-wrap-end-default.js" ], "names": [], "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACluBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5WA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9dA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1bA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACt/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACttBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACZA;AACA;AACA;AACA;AACA,ACJA;AACA;AACA;AACA;AACA,ACJA;AACA;AACA;AACA;AACA,ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjDA;AACA;AACA;AACA;AACA,ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACpMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AChaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrXA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA;AACA,ACHA;AACA;AACA,ACFA;AACA", "file": "main.build.js", "sourcesContent": [ "(function() {\n/**\r\n * almond 0.2.6 Copyright (c) 2011-2012, The Dojo Foundation All Rights Reserved.\r\n * Available via the MIT or new BSD license.\r\n * see: http://github.com/jrburke/almond for details\r\n */\r\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\r\n//be followed.\r\n/*jslint sloppy: true */\r\n/*global setTimeout: false */\r\n\r\nvar requirejs, require, define;\r\n(function (undef) {\r\n var main, req, makeMap, handlers,\r\n defined = {},\r\n waiting = {},\r\n config = {},\r\n defining = {},\r\n hasOwn = Object.prototype.hasOwnProperty,\r\n aps = [].slice;\r\n\r\n function hasProp(obj, prop) {\r\n return hasOwn.call(obj, prop);\r\n }\r\n\r\n /**\r\n * Given a relative module name, like ./something, normalize it to\r\n * a real name that can be mapped to a path.\r\n * @param {String} name the relative name\r\n * @param {String} baseName a real name that the name arg is relative\r\n * to.\r\n * @returns {String} normalized name\r\n */\r\n function normalize(name, baseName) {\r\n var nameParts, nameSegment, mapValue, foundMap,\r\n foundI, foundStarMap, starI, i, j, part,\r\n baseParts = baseName && baseName.split(\"/\"),\r\n map = config.map,\r\n starMap = (map && map['*']) || {};\r\n\r\n //Adjust any relative paths.\r\n if (name && name.charAt(0) === \".\") {\r\n //If have a base name, try to normalize against it,\r\n //otherwise, assume it is a top-level require that will\r\n //be relative to baseUrl in the end.\r\n if (baseName) {\r\n //Convert baseName to array, and lop off the last part,\r\n //so that . matches that \"directory\" and not name of the baseName's\r\n //module. For instance, baseName of \"one/two/three\", maps to\r\n //\"one/two/three.js\", but we want the directory, \"one/two\" for\r\n //this normalization.\r\n baseParts = baseParts.slice(0, baseParts.length - 1);\r\n\r\n name = baseParts.concat(name.split(\"/\"));\r\n\r\n //start trimDots\r\n for (i = 0; i < name.length; i += 1) {\r\n part = name[i];\r\n if (part === \".\") {\r\n name.splice(i, 1);\r\n i -= 1;\r\n } else if (part === \"..\") {\r\n if (i === 1 && (name[2] === '..' || name[0] === '..')) {\r\n //End of the line. Keep at least one non-dot\r\n //path segment at the front so it can be mapped\r\n //correctly to disk. Otherwise, there is likely\r\n //no path mapping for a path starting with '..'.\r\n //This can still fail, but catches the most reasonable\r\n //uses of ..\r\n break;\r\n } else if (i > 0) {\r\n name.splice(i - 1, 2);\r\n i -= 2;\r\n }\r\n }\r\n }\r\n //end trimDots\r\n\r\n name = name.join(\"/\");\r\n } else if (name.indexOf('./') === 0) {\r\n // No baseName, so this is ID is resolved relative\r\n // to baseUrl, pull off the leading dot.\r\n name = name.substring(2);\r\n }\r\n }\r\n\r\n //Apply map config if available.\r\n if ((baseParts || starMap) && map) {\r\n nameParts = name.split('/');\r\n\r\n for (i = nameParts.length; i > 0; i -= 1) {\r\n nameSegment = nameParts.slice(0, i).join(\"/\");\r\n\r\n if (baseParts) {\r\n //Find the longest baseName segment match in the config.\r\n //So, do joins on the biggest to smallest lengths of baseParts.\r\n for (j = baseParts.length; j > 0; j -= 1) {\r\n mapValue = map[baseParts.slice(0, j).join('/')];\r\n\r\n //baseName segment has config, find if it has one for\r\n //this name.\r\n if (mapValue) {\r\n mapValue = mapValue[nameSegment];\r\n if (mapValue) {\r\n //Match, update name to the new value.\r\n foundMap = mapValue;\r\n foundI = i;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (foundMap) {\r\n break;\r\n }\r\n\r\n //Check for a star map match, but just hold on to it,\r\n //if there is a shorter segment match later in a matching\r\n //config, then favor over this star map.\r\n if (!foundStarMap && starMap && starMap[nameSegment]) {\r\n foundStarMap = starMap[nameSegment];\r\n starI = i;\r\n }\r\n }\r\n\r\n if (!foundMap && foundStarMap) {\r\n foundMap = foundStarMap;\r\n foundI = starI;\r\n }\r\n\r\n if (foundMap) {\r\n nameParts.splice(0, foundI, foundMap);\r\n name = nameParts.join('/');\r\n }\r\n }\r\n\r\n return name;\r\n }\r\n\r\n function makeRequire(relName, forceSync) {\r\n return function () {\r\n //A version of a require function that passes a moduleName\r\n //value for items that may need to\r\n //look up paths relative to the moduleName\r\n return req.apply(undef, aps.call(arguments, 0).concat([relName, forceSync]));\r\n };\r\n }\r\n\r\n function makeNormalize(relName) {\r\n return function (name) {\r\n return normalize(name, relName);\r\n };\r\n }\r\n\r\n function makeLoad(depName) {\r\n return function (value) {\r\n defined[depName] = value;\r\n };\r\n }\r\n\r\n function callDep(name) {\r\n if (hasProp(waiting, name)) {\r\n var args = waiting[name];\r\n delete waiting[name];\r\n defining[name] = true;\r\n main.apply(undef, args);\r\n }\r\n\r\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\r\n throw new Error('No ' + name);\r\n }\r\n return defined[name];\r\n }\r\n\r\n //Turns a plugin!resource to [plugin, resource]\r\n //with the plugin being undefined if the name\r\n //did not have a plugin prefix.\r\n function splitPrefix(name) {\r\n var prefix,\r\n index = name ? name.indexOf('!') : -1;\r\n if (index > -1) {\r\n prefix = name.substring(0, index);\r\n name = name.substring(index + 1, name.length);\r\n }\r\n return [prefix, name];\r\n }\r\n\r\n function onResourceLoad(name, defined, deps){\r\n if(requirejs.onResourceLoad && name){\r\n requirejs.onResourceLoad({defined:defined}, {id:name}, deps);\r\n }\r\n }\r\n\r\n /**\r\n * Makes a name map, normalizing the name, and using a plugin\r\n * for normalization if necessary. Grabs a ref to plugin\r\n * too, as an optimization.\r\n */\r\n makeMap = function (name, relName) {\r\n var plugin,\r\n parts = splitPrefix(name),\r\n prefix = parts[0];\r\n\r\n name = parts[1];\r\n\r\n if (prefix) {\r\n prefix = normalize(prefix, relName);\r\n plugin = callDep(prefix);\r\n }\r\n\r\n //Normalize according\r\n if (prefix) {\r\n if (plugin && plugin.normalize) {\r\n name = plugin.normalize(name, makeNormalize(relName));\r\n } else {\r\n name = normalize(name, relName);\r\n }\r\n } else {\r\n name = normalize(name, relName);\r\n parts = splitPrefix(name);\r\n prefix = parts[0];\r\n name = parts[1];\r\n if (prefix) {\r\n plugin = callDep(prefix);\r\n }\r\n }\r\n\r\n //Using ridiculous property names for space reasons\r\n return {\r\n f: prefix ? prefix + '!' + name : name, //fullName\r\n n: name,\r\n pr: prefix,\r\n p: plugin\r\n };\r\n };\r\n\r\n function makeConfig(name) {\r\n return function () {\r\n return (config && config.config && config.config[name]) || {};\r\n };\r\n }\r\n\r\n handlers = {\r\n require: function (name) {\r\n return makeRequire(name);\r\n },\r\n exports: function (name) {\r\n var e = defined[name];\r\n if (typeof e !== 'undefined') {\r\n return e;\r\n } else {\r\n return (defined[name] = {});\r\n }\r\n },\r\n module: function (name) {\r\n return {\r\n id: name,\r\n uri: '',\r\n exports: defined[name],\r\n config: makeConfig(name)\r\n };\r\n }\r\n };\r\n\r\n main = function (name, deps, callback, relName) {\r\n var cjsModule, depName, ret, map, i,\r\n args = [],\r\n usingExports;\r\n\r\n //Use name if no relName\r\n relName = relName || name;\r\n\r\n //Call the callback to define the module, if necessary.\r\n if (typeof callback === 'function') {\r\n\r\n //Pull out the defined dependencies and pass the ordered\r\n //values to the callback.\r\n //Default to [require, exports, module] if no deps\r\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\r\n for (i = 0; i < deps.length; i += 1) {\r\n map = makeMap(deps[i], relName);\r\n depName = map.f;\r\n\r\n //Fast path CommonJS standard dependencies.\r\n if (depName === \"require\") {\r\n args[i] = handlers.require(name);\r\n } else if (depName === \"exports\") {\r\n //CommonJS module spec 1.1\r\n args[i] = handlers.exports(name);\r\n usingExports = true;\r\n } else if (depName === \"module\") {\r\n //CommonJS module spec 1.1\r\n cjsModule = args[i] = handlers.module(name);\r\n } else if (hasProp(defined, depName) ||\r\n hasProp(waiting, depName) ||\r\n hasProp(defining, depName)) {\r\n args[i] = callDep(depName);\r\n } else if (map.p) {\r\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\r\n args[i] = defined[depName];\r\n } else {\r\n throw new Error(name + ' missing ' + depName);\r\n }\r\n }\r\n\r\n ret = callback.apply(defined[name], args);\r\n\r\n if (name) {\r\n //If setting exports via \"module\" is in play,\r\n //favor that over return value and exports. After that,\r\n //favor a non-undefined return value over exports use.\r\n if (cjsModule && cjsModule.exports !== undef &&\r\n cjsModule.exports !== defined[name]) {\r\n defined[name] = cjsModule.exports;\r\n } else if (ret !== undef || !usingExports) {\r\n //Use the return value from the function.\r\n defined[name] = ret;\r\n }\r\n }\r\n } else if (name) {\r\n //May just be an object definition for the module. Only\r\n //worry about defining if have a module name.\r\n defined[name] = callback;\r\n }\r\n\r\n onResourceLoad(name, defined, args);\r\n };\r\n\r\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\r\n if (typeof deps === \"string\") {\r\n if (handlers[deps]) {\r\n //callback in this case is really relName\r\n return handlers[deps](callback);\r\n }\r\n //Just return the module wanted. In this scenario, the\r\n //deps arg is the module name, and second arg (if passed)\r\n //is just the relName.\r\n //Normalize module name, if it contains . or ..\r\n return callDep(makeMap(deps, callback).f);\r\n } else if (!deps.splice) {\r\n //deps is a config object, not an array.\r\n config = deps;\r\n if (callback.splice) {\r\n //callback is an array, which means it is a dependency list.\r\n //Adjust args if there are dependencies\r\n deps = callback;\r\n callback = relName;\r\n relName = null;\r\n } else {\r\n deps = undef;\r\n }\r\n }\r\n\r\n //Support require(['a'])\r\n callback = callback || function () {};\r\n\r\n //If relName is a function, it is an errback handler,\r\n //so remove it.\r\n if (typeof relName === 'function') {\r\n relName = forceSync;\r\n forceSync = alt;\r\n }\r\n\r\n //Simulate async callback;\r\n if (forceSync) {\r\n main(undef, deps, callback, relName);\r\n } else {\r\n //Using a non-zero value because of concern for what old browsers\r\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\r\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\r\n //If want a value immediately, use require('id') instead -- something\r\n //that works in almond on the global level, but not guaranteed and\r\n //unlikely to work in other AMD implementations.\r\n setTimeout(function () {\r\n main(undef, deps, callback, relName);\r\n }, 4);\r\n }\r\n\r\n return req;\r\n };\r\n\r\n /**\r\n * Just drops the config on the floor, but returns req in case\r\n * the config return value is used.\r\n */\r\n req.config = function (cfg) {\r\n config = cfg;\r\n if (config.deps) {\r\n req(config.deps, config.callback);\r\n }\r\n return req;\r\n };\r\n\r\n /**\r\n * Expose module registry for debugging and tooling\r\n */\r\n requirejs._defined = defined;\r\n\r\n define = function (name, deps, callback) {\r\n\r\n //This module may not have dependencies\r\n if (!deps.splice) {\r\n //deps is not an array, so probably means\r\n //an object literal or factory function for\r\n //the value. Adjust args.\r\n callback = deps;\r\n deps = [];\r\n }\r\n\r\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\r\n waiting[name] = [name, deps, callback];\r\n }\r\n };\r\n\r\n define.amd = {\r\n jQuery: true\r\n };\r\n}());\n", "/**\r\n * Durandal 2.2.0 Copyright (c) 2010-2016 Blue Spire Consulting, Inc. All Rights Reserved.\r\n * Available via the MIT license.\r\n * see: http://durandaljs.com or https://github.com/BlueSpire/Durandal for details.\r\n */\r\n/**\r\n * The system module encapsulates the most basic features used by other modules.\r\n * @module system\r\n * @requires require\r\n * @requires jquery\r\n */\r\ndefine('durandal/system',['require', 'jquery'], function(require, $) {\r\n var isDebugging = false,\r\n nativeKeys = Object.keys,\r\n hasOwnProperty = Object.prototype.hasOwnProperty,\r\n toString = Object.prototype.toString,\r\n system,\r\n treatAsIE8 = false,\r\n nativeIsArray = Array.isArray,\r\n slice = Array.prototype.slice;\r\n\r\n //polyfill from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim\r\n if (!String.prototype.trim) {\r\n String.prototype.trim = function () {\r\n return this.replace(/^\\s+|\\s+$/g, '');\r\n };\r\n }\r\n\r\n //see http://patik.com/blog/complete-cross-browser-console-log/\r\n // Tell IE9 to use its built-in console\r\n if (Function.prototype.bind && (typeof console === 'object' || typeof console === 'function') && typeof console.log == 'object') {\r\n try {\r\n ['log', 'info', 'warn', 'error', 'assert', 'dir', 'clear', 'profile', 'profileEnd']\r\n .forEach(function(method) {\r\n console[method] = this.call(console[method], console);\r\n }, Function.prototype.bind);\r\n } catch (ex) {\r\n treatAsIE8 = true;\r\n }\r\n }\r\n\r\n // callback for dojo's loader\r\n // note: if you wish to use Durandal with dojo's AMD loader,\r\n // currently you must fork the dojo source with the following\r\n // dojo/dojo.js, line 1187, the last line of the finishExec() function:\r\n // (add) signal(\"moduleLoaded\", [module.result, module.mid]);\r\n // an enhancement request has been submitted to dojo to make this\r\n // a permanent change. To view the status of this request, visit:\r\n // http://bugs.dojotoolkit.org/ticket/16727\r\n\r\n if (require.on) {\r\n require.on(\"moduleLoaded\", function(module, mid) {\r\n system.setModuleId(module, mid);\r\n });\r\n }\r\n\r\n // callback for require.js loader\r\n if (typeof requirejs !== 'undefined') {\r\n requirejs.onResourceLoad = function(context, map, depArray) {\r\n system.setModuleId(context.defined[map.id], map.id);\r\n };\r\n }\r\n\r\n var noop = function() { };\r\n\r\n var log = function() {\r\n try {\r\n // Modern browsers\r\n if (typeof console != 'undefined' && typeof console.log == 'function') {\r\n // Opera 11\r\n if (window.opera) {\r\n var i = 0;\r\n while (i < arguments.length) {\r\n console.log('Item ' + (i + 1) + ': ' + arguments[i]);\r\n i++;\r\n }\r\n }\r\n // All other modern browsers\r\n else if ((slice.call(arguments)).length == 1 && typeof slice.call(arguments)[0] == 'string') {\r\n console.log((slice.call(arguments)).toString());\r\n } else {\r\n console.log.apply(console, slice.call(arguments));\r\n }\r\n }\r\n // IE8\r\n else if ((!Function.prototype.bind || treatAsIE8) && typeof console != 'undefined' && typeof console.log == 'object') {\r\n Function.prototype.call.call(console.log, console, slice.call(arguments));\r\n }\r\n\r\n // IE7 and lower, and other old browsers\r\n } catch (ignore) { }\r\n };\r\n\r\n var logError = function(error, err) {\r\n var exception;\r\n\r\n if(error instanceof Error){\r\n exception = error;\r\n } else {\r\n exception = new Error(error);\r\n }\r\n\r\n exception.innerError = err;\r\n\r\n //Report the error as an error, not as a log\r\n try {\r\n // Modern browsers (it's only a single item, no need for argument splitting as in log() above)\r\n if (typeof console != 'undefined' && typeof console.error == 'function') {\r\n console.error(exception);\r\n }\r\n // IE8\r\n else if ((!Function.prototype.bind || treatAsIE8) && typeof console != 'undefined' && typeof console.error == 'object') {\r\n Function.prototype.call.call(console.error, console, exception);\r\n }\r\n // IE7 and lower, and other old browsers\r\n } catch (ignore) { }\r\n\r\n throw exception;\r\n };\r\n\r\n /**\r\n * @class SystemModule\r\n * @static\r\n */\r\n system = {\r\n /**\r\n * Durandal's version.\r\n * @property {string} version\r\n */\r\n version: \"2.2.0\",\r\n /**\r\n * A noop function.\r\n * @method noop\r\n */\r\n noop: noop,\r\n /**\r\n * Gets the module id for the specified object.\r\n * @method getModuleId\r\n * @param {object} obj The object whose module id you wish to determine.\r\n * @return {string} The module id.\r\n */\r\n getModuleId: function(obj) {\r\n if (!obj) {\r\n return null;\r\n }\r\n\r\n if (typeof obj == 'function' && obj.prototype) {\r\n return obj.prototype.__moduleId__;\r\n }\r\n\r\n if (typeof obj == 'string') {\r\n return null;\r\n }\r\n\r\n return obj.__moduleId__;\r\n },\r\n /**\r\n * Sets the module id for the specified object.\r\n * @method setModuleId\r\n * @param {object} obj The object whose module id you wish to set.\r\n * @param {string} id The id to set for the specified object.\r\n */\r\n setModuleId: function(obj, id) {\r\n if (!obj) {\r\n return;\r\n }\r\n\r\n if (typeof obj == 'function' && obj.prototype) {\r\n obj.prototype.__moduleId__ = id;\r\n return;\r\n }\r\n\r\n if (typeof obj == 'string') {\r\n return;\r\n }\r\n\r\n obj.__moduleId__ = id;\r\n },\r\n /**\r\n * Resolves the default object instance for a module. If the module is an object, the module is returned. If the module is a function, that function is called with `new` and it's result is returned.\r\n * @method resolveObject\r\n * @param {object} module The module to use to get/create the default object for.\r\n * @return {object} The default object for the module.\r\n */\r\n resolveObject: function(module) {\r\n if (system.isFunction(module)) {\r\n return new module();\r\n } else {\r\n return module;\r\n }\r\n },\r\n /**\r\n * Gets/Sets whether or not Durandal is in debug mode.\r\n * @method debug\r\n * @param {boolean} [enable] Turns on/off debugging.\r\n * @return {boolean} Whether or not Durandal is current debugging.\r\n */\r\n debug: function(enable) {\r\n if (arguments.length == 1) {\r\n isDebugging = enable;\r\n if (isDebugging) {\r\n this.log = log;\r\n this.error = logError;\r\n this.log('Debug:Enabled');\r\n } else {\r\n this.log('Debug:Disabled');\r\n this.log = noop;\r\n this.error = noop;\r\n }\r\n }\r\n\r\n return isDebugging;\r\n },\r\n /**\r\n * Logs data to the console. Pass any number of parameters to be logged. Log output is not processed if the framework is not running in debug mode.\r\n * @method log\r\n * @param {object} info* The objects to log.\r\n */\r\n log: noop,\r\n /**\r\n * Logs an error.\r\n * @method error\r\n * @param {string|Error} obj The error to report.\r\n */\r\n error: noop,\r\n /**\r\n * Asserts a condition by throwing an error if the condition fails.\r\n * @method assert\r\n * @param {boolean} condition The condition to check.\r\n * @param {string} message The message to report in the error if the condition check fails.\r\n */\r\n assert: function (condition, message) {\r\n if (!condition) {\r\n system.error(new Error(message || 'Assert:Failed'));\r\n }\r\n },\r\n /**\r\n * Creates a deferred object which can be used to create a promise. Optionally pass a function action to perform which will be passed an object used in resolving the promise.\r\n * @method defer\r\n * @param {function} [action] The action to defer. You will be passed the deferred object as a paramter.\r\n * @return {Deferred} The deferred object.\r\n */\r\n defer: function(action) {\r\n return $.Deferred(action);\r\n },\r\n /**\r\n * Creates a simple V4 UUID. This should not be used as a PK in your database. It can be used to generate internal, unique ids. For a more robust solution see [node-uuid](https://github.com/broofa/node-uuid).\r\n * @method guid\r\n * @return {string} The guid.\r\n */\r\n guid: function() {\r\n var d = new Date().getTime();\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d/16);\r\n return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16);\r\n });\r\n },\r\n /**\r\n * Uses require.js to obtain a module. This function returns a promise which resolves with the module instance. You can pass more than one module id to this function or an array of ids. If more than one or an array is passed, then the promise will resolve with an array of module instances.\r\n * @method acquire\r\n * @param {string|string[]} moduleId The id(s) of the modules to load.\r\n * @return {Promise} A promise for the loaded module(s).\r\n */\r\n acquire: function() {\r\n var modules,\r\n first = arguments[0],\r\n arrayRequest = false;\r\n\r\n if(system.isArray(first)){\r\n modules = first;\r\n arrayRequest = true;\r\n }else{\r\n modules = slice.call(arguments, 0);\r\n }\r\n\r\n return this.defer(function(dfd) {\r\n require(modules, function() {\r\n var args = arguments;\r\n setTimeout(function() {\r\n if(args.length > 1 || arrayRequest){\r\n dfd.resolve(slice.call(args, 0));\r\n }else{\r\n dfd.resolve(args[0]);\r\n }\r\n }, 1);\r\n }, function(err){\r\n dfd.reject(err);\r\n });\r\n }).promise();\r\n },\r\n /**\r\n * Extends the first object with the properties of the following objects.\r\n * @method extend\r\n * @param {object} obj The target object to extend.\r\n * @param {object} extension* Uses to extend the target object.\r\n */\r\n extend: function(obj) {\r\n var rest = slice.call(arguments, 1);\r\n\r\n for (var i = 0; i < rest.length; i++) {\r\n var source = rest[i];\r\n\r\n if (source) {\r\n for (var prop in source) {\r\n obj[prop] = source[prop];\r\n }\r\n }\r\n }\r\n\r\n return obj;\r\n },\r\n /**\r\n * Uses a setTimeout to wait the specified milliseconds.\r\n * @method wait\r\n * @param {number} milliseconds The number of milliseconds to wait.\r\n * @return {Promise}\r\n */\r\n wait: function(milliseconds) {\r\n return system.defer(function(dfd) {\r\n setTimeout(dfd.resolve, milliseconds);\r\n }).promise();\r\n }\r\n };\r\n\r\n /**\r\n * Gets all the owned keys of the specified object.\r\n * @method keys\r\n * @param {object} object The object whose owned keys should be returned.\r\n * @return {string[]} The keys.\r\n */\r\n system.keys = nativeKeys || function(obj) {\r\n if (obj !== Object(obj)) {\r\n throw new TypeError('Invalid object');\r\n }\r\n\r\n var keys = [];\r\n\r\n for (var key in obj) {\r\n if (hasOwnProperty.call(obj, key)) {\r\n keys[keys.length] = key;\r\n }\r\n }\r\n\r\n return keys;\r\n };\r\n\r\n /**\r\n * Determines if the specified object is an html element.\r\n * @method isElement\r\n * @param {object} object The object to check.\r\n * @return {boolean} True if matches the type, false otherwise.\r\n */\r\n system.isElement = function(obj) {\r\n return !!(obj && obj.nodeType === 1);\r\n };\r\n\r\n /**\r\n * Determines if the specified object is an array.\r\n * @method isArray\r\n * @param {object} object The object to check.\r\n * @return {boolean} True if matches the type, false otherwise.\r\n */\r\n system.isArray = nativeIsArray || function(obj) {\r\n return toString.call(obj) == '[object Array]';\r\n };\r\n\r\n /**\r\n * Determines if the specified object is...an object. ie. Not an array, string, etc.\r\n * @method isObject\r\n * @param {object} object The object to check.\r\n * @return {boolean} True if matches the type, false otherwise.\r\n */\r\n system.isObject = function(obj) {\r\n return obj === Object(obj);\r\n };\r\n\r\n /**\r\n * Determines if the specified object is a boolean.\r\n * @method isBoolean\r\n * @param {object} object The object to check.\r\n * @return {boolean} True if matches the type, false otherwise.\r\n */\r\n system.isBoolean = function(obj) {\r\n return typeof(obj) === \"boolean\";\r\n };\r\n\r\n /**\r\n * Determines if the specified object is a promise.\r\n * @method isPromise\r\n * @param {object} object The object to check.\r\n * @return {boolean} True if matches the type, false otherwise.\r\n */\r\n system.isPromise = function(obj) {\r\n return obj && system.isFunction(obj.then);\r\n };\r\n\r\n /**\r\n * Determines if the specified object is a function arguments object.\r\n * @method isArguments\r\n * @param {object} object The object to check.\r\n * @return {boolean} True if matches the type, false otherwise.\r\n */\r\n\r\n /**\r\n * Determines if the specified object is a function.\r\n * @method isFunction\r\n * @param {object} object The object to check.\r\n * @return {boolean} True if matches the type, false otherwise.\r\n */\r\n\r\n /**\r\n * Determines if the specified object is a string.\r\n * @method isString\r\n * @param {object} object The object to check.\r\n * @return {boolean} True if matches the type, false otherwise.\r\n */\r\n\r\n /**\r\n * Determines if the specified object is a number.\r\n * @method isNumber\r\n * @param {object} object The object to check.\r\n * @return {boolean} True if matches the type, false otherwise.\r\n */\r\n\r\n /**\r\n * Determines if the specified object is a date.\r\n * @method isDate\r\n * @param {object} object The object to check.\r\n * @return {boolean} True if matches the type, false otherwise.\r\n */\r\n\r\n /**\r\n * Determines if the specified object is a boolean.\r\n * @method isBoolean\r\n * @param {object} object The object to check.\r\n * @return {boolean} True if matches the type, false otherwise.\r\n */\r\n\r\n //isArguments, isFunction, isString, isNumber, isDate, isRegExp.\r\n var isChecks = ['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp'];\r\n\r\n function makeIsFunction(name) {\r\n var value = '[object ' + name + ']';\r\n system['is' + name] = function(obj) {\r\n return toString.call(obj) == value;\r\n };\r\n }\r\n\r\n for (var i = 0; i < isChecks.length; i++) {\r\n makeIsFunction(isChecks[i]);\r\n }\r\n\r\n return system;\r\n});\r\n\n", "/**\r\n * Durandal 2.2.0 Copyright (c) 2010-2016 Blue Spire Consulting, Inc. All Rights Reserved.\r\n * Available via the MIT license.\r\n * see: http://durandaljs.com or https://github.com/BlueSpire/Durandal for details.\r\n */\r\n/**\r\n * The viewEngine module provides information to the viewLocator module which is used to locate the view's source file. The viewEngine also transforms a view id into a view instance.\r\n * @module viewEngine\r\n * @requires system\r\n * @requires jquery\r\n */\r\ndefine('durandal/viewEngine',['durandal/system', 'jquery'], function (system, $) {\r\n var parseMarkup;\r\n\r\n if ($.parseHTML) {\r\n parseMarkup = function (html) {\r\n return $.parseHTML(html);\r\n };\r\n } else {\r\n parseMarkup = function (html) {\r\n return $(html).get();\r\n };\r\n }\r\n\r\n /**\r\n * @class ViewEngineModule\r\n * @static\r\n */\r\n return {\r\n cache:{},\r\n /**\r\n * The file extension that view source files are expected to have.\r\n * @property {string} viewExtension\r\n * @default .html\r\n */\r\n viewExtension: '.html',\r\n /**\r\n * The name of the RequireJS loader plugin used by the viewLocator to obtain the view source. (Use requirejs to map the plugin's full path).\r\n * @property {string} viewPlugin\r\n * @default text\r\n */\r\n viewPlugin: 'text',\r\n /**\r\n * Parameters passed to the RequireJS loader plugin used by the viewLocator to obtain the view source.\r\n * @property {string} viewPluginParameters\r\n * @default The empty string by default.\r\n */\r\n viewPluginParameters: '',\r\n /**\r\n * Determines if the url is a url for a view, according to the view engine.\r\n * @method isViewUrl\r\n * @param {string} url The potential view url.\r\n * @return {boolean} True if the url is a view url, false otherwise.\r\n */\r\n isViewUrl: function (url) {\r\n return url.indexOf(this.viewExtension, url.length - this.viewExtension.length) !== -1;\r\n },\r\n /**\r\n * Converts a view url into a view id.\r\n * @method convertViewUrlToViewId\r\n * @param {string} url The url to convert.\r\n * @return {string} The view id.\r\n */\r\n convertViewUrlToViewId: function (url) {\r\n return url.substring(0, url.length - this.viewExtension.length);\r\n },\r\n /**\r\n * Converts a view id into a full RequireJS path.\r\n * @method convertViewIdToRequirePath\r\n * @param {string} viewId The view id to convert.\r\n * @return {string} The require path.\r\n */\r\n convertViewIdToRequirePath: function (viewId) {\r\n var plugin = this.viewPlugin ? this.viewPlugin + '!' : '';\r\n return plugin + viewId + this.viewExtension + this.viewPluginParameters;\r\n },\r\n /**\r\n * Parses the view engine recognized markup and returns DOM elements.\r\n * @method parseMarkup\r\n * @param {string} markup The markup to parse.\r\n * @return {DOMElement[]} The elements.\r\n */\r\n parseMarkup: parseMarkup,\r\n /**\r\n * Calls `parseMarkup` and then pipes the results through `ensureSingleElement`.\r\n * @method processMarkup\r\n * @param {string} markup The markup to process.\r\n * @return {DOMElement} The view.\r\n */\r\n processMarkup: function (markup) {\r\n var allElements = this.parseMarkup(markup);\r\n return this.ensureSingleElement(allElements);\r\n },\r\n /**\r\n * Converts an array of elements into a single element. White space and comments are removed. If a single element does not remain, then the elements are wrapped.\r\n * @method ensureSingleElement\r\n * @param {DOMElement[]} allElements The elements.\r\n * @return {DOMElement} A single element.\r\n */\r\n ensureSingleElement:function(allElements){\r\n if (!allElements) { \r\n $('<div></div>')[0];\r\n } else if (allElements.length == 1) {\r\n return allElements[0];\r\n }\r\n\r\n var withoutCommentsOrEmptyText = [];\r\n\r\n for (var i = 0; i < allElements.length; i++) {\r\n var current = allElements[i];\r\n if (current.nodeType != 8) {\r\n if (current.nodeType == 3) {\r\n var result = /\\S/.test(current.nodeValue);\r\n if (!result) {\r\n continue;\r\n }\r\n }\r\n\r\n withoutCommentsOrEmptyText.push(current);\r\n }\r\n }\r\n\r\n if (withoutCommentsOrEmptyText.length > 1) {\r\n return $(withoutCommentsOrEmptyText).wrapAll('<div class=\"durandal-wrapper\"></div>').parent().get(0);\r\n }\r\n\r\n return withoutCommentsOrEmptyText[0];\r\n },\r\n /**\r\n * Gets the view associated with the id from the cache of parsed views.\r\n * @method tryGetViewFromCache\r\n * @param {string} id The view id to lookup in the cache.\r\n * @return {DOMElement|null} The cached view or null if it's not in the cache.\r\n */\r\n tryGetViewFromCache:function(id) {\r\n return this.cache[id];\r\n },\r\n /**\r\n * Puts the view associated with the id into the cache of parsed views.\r\n * @method putViewInCache\r\n * @param {string} id The view id whose view should be cached.\r\n * @param {DOMElement} view The view to cache.\r\n */\r\n putViewInCache: function (id, view) {\r\n this.cache[id] = view;\r\n },\r\n /**\r\n * Creates the view associated with the view id.\r\n * @method createView\r\n * @param {string} viewId The view id whose view should be created.\r\n * @return {Promise} A promise of the view.\r\n */\r\n createView: function(viewId) {\r\n var that = this;\r\n var requirePath = this.convertViewIdToRequirePath(viewId);\r\n var existing = this.tryGetViewFromCache(requirePath);\r\n\r\n if (existing) {\r\n return system.defer(function(dfd) {\r\n dfd.resolve(existing.cloneNode(true));\r\n }).promise();\r\n }\r\n\r\n return system.defer(function(dfd) {\r\n system.acquire(requirePath).then(function(markup) {\r\n var element = that.processMarkup(markup);\r\n element.setAttribute('data-view', viewId);\r\n that.putViewInCache(requirePath, element);\r\n dfd.resolve(element.cloneNode(true));\r\n }).fail(function(err) {\r\n that.createFallbackView(viewId, requirePath, err).then(function(element) {\r\n element.setAttribute('data-view', viewId);\r\n that.cache[requirePath] = element;\r\n dfd.resolve(element.cloneNode(true));\r\n });\r\n });\r\n }).promise();\r\n },\r\n /**\r\n * Called when a view cannot be found to provide the opportunity to locate or generate a fallback view. Mainly used to ease development.\r\n * @method createFallbackView\r\n * @param {string} viewId The view id whose view should be created.\r\n * @param {string} requirePath The require path that was attempted.\r\n * @param {Error} requirePath The error that was returned from the attempt to locate the default view.\r\n * @return {Promise} A promise for the fallback view.\r\n */\r\n createFallbackView: function (viewId, requirePath, err) {\r\n var that = this,\r\n message = 'View Not Found. Searched for \"' + viewId + '\" via path \"' + requirePath + '\".';\r\n\r\n return system.defer(function(dfd) {\r\n dfd.resolve(that.processMarkup('<div class=\"durandal-view-404\">' + message + '</div>'));\r\n }).promise();\r\n }\r\n };\r\n});\r\n\n", "/**\r\n * Durandal 2.2.0 Copyright (c) 2010-2016 Blue Spire Consulting, Inc. All Rights Reserved.\r\n * Available via the MIT license.\r\n * see: http://durandaljs.com or https://github.com/BlueSpire/Durandal for details.\r\n */\r\n/**\r\n * The viewLocator module collaborates with the viewEngine module to provide views (literally dom sub-trees) to other parts of the framework as needed. The primary consumer of the viewLocator is the composition module.\r\n * @module viewLocator\r\n * @requires system\r\n * @requires viewEngine\r\n */\r\ndefine('durandal/viewLocator',['durandal/system', 'durandal/viewEngine'], function (system, viewEngine) {\r\n function findInElements(nodes, url) {\r\n for (var i = 0; i < nodes.length; i++) {\r\n var current = nodes[i];\r\n var existingUrl = current.getAttribute('data-view');\r\n if (existingUrl == url) {\r\n return current;\r\n }\r\n }\r\n }\r\n \r\n function escape(str) {\r\n return (str + '').replace(/([\\\\\\.\\+\\*\\?\\[\\^\\]\\$\\(\\)\\{\\}\\=\\!\\<\\>\\|\\:])/g, \"\\\\$1\");\r\n }\r\n\r\n /**\r\n * @class ViewLocatorModule\r\n * @static\r\n */\r\n return {\r\n /**\r\n * Allows you to set up a convention for mapping module folders to view folders. It is a convenience method that customizes `convertModuleIdToViewId` and `translateViewIdToArea` under the covers.\r\n * @method useConvention\r\n * @param {string} [modulesPath] A string to match in the path and replace with the viewsPath. If not specified, the match is 'viewmodels'.\r\n * @param {string} [viewsPath] The replacement for the modulesPath. If not specified, the replacement is 'views'.\r\n * @param {string} [areasPath] Partial views are mapped to the \"views\" folder if not specified. Use this parameter to change their location.\r\n */\r\n useConvention: function(modulesPath, viewsPath, areasPath) {\r\n modulesPath = modulesPath || 'viewmodels';\r\n viewsPath = viewsPath || 'views';\r\n areasPath = areasPath || viewsPath;\r\n\r\n var reg = new RegExp(escape(modulesPath), 'gi');\r\n\r\n this.convertModuleIdToViewId = function (moduleId) {\r\n return moduleId.replace(reg, viewsPath);\r\n };\r\n\r\n this.translateViewIdToArea = function (viewId, area) {\r\n if (!area || area == 'partial') {\r\n return areasPath + '/' + viewId;\r\n }\r\n \r\n return areasPath + '/' + area + '/' + viewId;\r\n };\r\n },\r\n /**\r\n * Maps an object instance to a view instance.\r\n * @method locateViewForObject\r\n * @param {object} obj The object to locate the view for.\r\n * @param {string} [area] The area to translate the view to.\r\n * @param {DOMElement[]} [elementsToSearch] An existing set of elements to search first.\r\n * @return {Promise} A promise of the view.\r\n */\r\n locateViewForObject: function(obj, area, elementsToSearch) {\r\n var view;\r\n\r\n if (obj.getView) {\r\n view = obj.getView();\r\n if (view) {\r\n return this.locateView(view, area, elementsToSearch);\r\n }\r\n }\r\n\r\n if (obj.viewUrl) {\r\n return this.locateView(obj.viewUrl, area, elementsToSearch);\r\n }\r\n\r\n var id = system.getModuleId(obj);\r\n if (id) {\r\n return this.locateView(this.convertModuleIdToViewId(id), area, elementsToSearch);\r\n }\r\n\r\n return this.locateView(this.determineFallbackViewId(obj), area, elementsToSearch);\r\n },\r\n /**\r\n * Converts a module id into a view id. By default the ids are the same.\r\n * @method convertModuleIdToViewId\r\n * @param {string} moduleId The module id.\r\n * @return {string} The view id.\r\n */\r\n convertModuleIdToViewId: function(moduleId) {\r\n return moduleId;\r\n },\r\n /**\r\n * If no view id can be determined, this function is called to genreate one. By default it attempts to determine the object's type and use that.\r\n * @method determineFallbackViewId\r\n * @param {object} obj The object to determine the fallback id for.\r\n * @return {string} The view id.\r\n */\r\n determineFallbackViewId: function (obj) {\r\n var funcNameRegex = /function (.{1,})\\(/;\r\n var results = (funcNameRegex).exec((obj).constructor.toString());\r\n var typeName = (results && results.length > 1) ? results[1] : \"\";\r\n typeName = typeName.trim();\r\n return 'views/' + typeName;\r\n },\r\n /**\r\n * Takes a view id and translates it into a particular area. By default, no translation occurs.\r\n * @method translateViewIdToArea\r\n * @param {string} viewId The view id.\r\n * @param {string} area The area to translate the view to.\r\n * @return {string} The translated view id.\r\n */\r\n translateViewIdToArea: function (viewId, area) {\r\n return viewId;\r\n },\r\n /**\r\n * Locates the specified view.\r\n * @method locateView\r\n * @param {string|DOMElement} viewOrUrlOrId A view, view url or view id to locate.\r\n * @param {string} [area] The area to translate the view to.\r\n * @param {DOMElement[]} [elementsToSearch] An existing set of elements to search first.\r\n * @return {Promise} A promise of the view.\r\n */\r\n locateView: function(viewOrUrlOrId, area, elementsToSearch) {\r\n if (typeof viewOrUrlOrId === 'string') {\r\n var viewId;\r\n\r\n if (viewEngine.isViewUrl(viewOrUrlOrId)) {\r\n viewId = viewEngine.convertViewUrlToViewId(viewOrUrlOrId);\r\n } else {\r\n viewId = viewOrUrlOrId;\r\n }\r\n\r\n if (area) {\r\n viewId = this.translateViewIdToArea(viewId, area);\r\n }\r\n\r\n if (elementsToSearch) {\r\n var existing = findInElements(elementsToSearch, viewId);\r\n if (existing) {\r\n return system.defer(function(dfd) {\r\n dfd.resolve(existing);\r\n }).promise();\r\n }\r\n }\r\n\r\n return viewEngine.createView(viewId);\r\n }\r\n\r\n return system.defer(function(dfd) {\r\n dfd.resolve(viewOrUrlOrId);\r\n }).promise();\r\n }\r\n };\r\n});\r\n\n", "/**\r\n * Durandal 2.2.0 Copyright (c) 2010-2016 Blue Spire Consulting, Inc. All Rights Reserved.\r\n * Available via the MIT license.\r\n * see: http://durandaljs.com or https://github.com/BlueSpire/Durandal for details.\r\n */\r\n/**\r\n * The binder joins an object instance and a DOM element tree by applying databinding and/or invoking binding lifecycle callbacks (binding and bindingComplete).\r\n * @module binder\r\n * @requires system\r\n * @requires knockout\r\n */\r\ndefine('durandal/binder',['durandal/system', 'knockout'], function (system, ko) {\r\n var binder,\r\n insufficientInfoMessage = 'Insufficient Information to Bind',\r\n unexpectedViewMessage = 'Unexpected View Type',\r\n bindingInstructionKey = 'durandal-binding-instruction',\r\n koBindingContextKey = '__ko_bindingContext__';\r\n\r\n function normalizeBindingInstruction(result){\r\n if(result === undefined){\r\n return { applyBindings: true };\r\n }\r\n\r\n if(system.isBoolean(result)){\r\n return { applyBindings:result };\r\n }\r\n\r\n if(result.applyBindings === undefined){\r\n result.applyBindings = true;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n function doBind(obj, view, bindingTarget, data){\r\n if (!view || !bindingTarget) {\r\n if (binder.throwOnErrors) {\r\n system.error(insufficientInfoMessage);\r\n } else {\r\n system.log(insufficientInfoMessage, view, data);\r\n }\r\n return;\r\n }\r\n\r\n if (!view.getAttribute) {\r\n if (binder.throwOnErrors) {\r\n system.error(unexpectedViewMessage);\r\n } else {\r\n system.log(unexpectedViewMessage, view, data);\r\n }\r\n return;\r\n }\r\n\r\n var viewName = view.getAttribute('data-view');\r\n\r\n try {\r\n var instruction;\r\n\r\n if (obj && obj.binding) {\r\n instruction = obj.binding(view);\r\n }\r\n\r\n instruction = normalizeBindingInstruction(instruction);\r\n binder.binding(data, view, instruction);\r\n\r\n if(instruction.applyBindings){\r\n system.log('Binding', viewName, data);\r\n ko.applyBindings(bindingTarget, view);\r\n }else if(obj){\r\n ko.utils.domData.set(view, koBindingContextKey, { $data:obj });\r\n }\r\n\r\n binder.bindingComplete(data, view, instruction);\r\n\r\n if (obj && obj.bindingComplete) {\r\n obj.bindingComplete(view);\r\n }\r\n\r\n ko.utils.domData.set(view, bindingInstructionKey, instruction);\r\n return instruction;\r\n } catch (e) {\r\n e.message = e.message + ';\\nView: ' + viewName + \";\\nModuleId: \" + system.getModuleId(data);\r\n if (binder.throwOnErrors) {\r\n system.error(e);\r\n } else {\r\n system.log(e.message);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @class BinderModule\r\n * @static\r\n */\r\n return binder = {\r\n /**\r\n * Called before every binding operation. Does nothing by default.\r\n * @method binding\r\n * @param {object} data The data that is about to be bound.\r\n * @param {DOMElement} view The view that is about to be bound.\r\n * @param {object} instruction The object that carries the binding instructions.\r\n */\r\n binding: system.noop,\r\n /**\r\n * Called after every binding operation. Does nothing by default.\r\n * @method bindingComplete\r\n * @param {object} data The data that has just been bound.\r\n * @param {DOMElement} view The view that has just been bound.\r\n * @param {object} instruction The object that carries the binding instructions.\r\n */\r\n bindingComplete: system.noop,\r\n /**\r\n * Indicates whether or not the binding system should throw errors or not.\r\n * @property {boolean} throwOnErrors\r\n * @default false The binding system will not throw errors by default. Instead it will log them.\r\n */\r\n throwOnErrors: false,\r\n /**\r\n * Gets the binding instruction that was associated with a view when it was bound.\r\n * @method getBindingInstruction\r\n * @param {DOMElement} view The view that was previously bound.\r\n * @return {object} The object that carries the binding instructions.\r\n */\r\n getBindingInstruction:function(view){\r\n return ko.utils.domData.get(view, bindingInstructionKey);\r\n },\r\n /**\r\n * Binds the view, preserving the existing binding context. Optionally, a new context can be created, parented to the previous context.\r\n * @method bindContext\r\n * @param {KnockoutBindingContext} bindingContext The current binding context.\r\n * @param {DOMElement} view The view to bind.\r\n * @param {object} [obj] The data to bind to, causing the creation of a child binding context if present.\r\n * @param {string} [dataAlias] An alias for $data if present.\r\n */\r\n bindContext: function(bindingContext, view, obj, dataAlias) {\r\n if (obj && bindingContext) {\r\n bindingContext = bindingContext.createChildContext(obj, typeof(dataAlias) === 'string' ? dataAlias : null);\r\n }\r\n\r\n return doBind(obj, view, bindingContext, obj || (bindingContext ? bindingContext.$data : null));\r\n },\r\n /**\r\n * Binds the view, preserving the existing binding context. Optionally, a new context can be created, parented to the previous context.\r\n * @method bind\r\n * @param {object} obj The data to bind to.\r\n * @param {DOMElement} view The view to bind.\r\n */\r\n bind: function(obj, view) {\r\n return doBind(obj, view, obj, obj);\r\n }\r\n };\r\n});\r\n\n", "/**\r\n * Durandal 2.2.0 Copyright (c) 2010-2016 Blue Spire Consulting, Inc. All Rights Reserved.\r\n * Available via the MIT license.\r\n * see: http://durandaljs.com or https://github.com/BlueSpire/Durandal for details.\r\n */\r\n/**\r\n * The activator module encapsulates all logic related to screen/component activation.\r\n * An activator is essentially an asynchronous state machine that understands a particular state transition protocol.\r\n * The protocol ensures that the following series of events always occur: `canDeactivate` (previous state), `canActivate` (new state), `deactivate` (previous state), `activate` (new state).\r\n * Each of the _can_ callbacks may return a boolean, affirmative value or promise for one of those. If either of the _can_ functions yields a false result, then activation halts.\r\n * @module activator\r\n * @requires system\r\n * @requires knockout\r\n */\r\ndefine('durandal/activator',['durandal/system', 'knockout'], function (system, ko) {\r\n var activator;\r\n var defaultOptions = {\r\n canDeactivate:true\r\n };\r\n\r\n function ensureSettings(settings) {\r\n if (settings == undefined) {\r\n settings = {};\r\n }\r\n\r\n if (!system.isBoolean(settings.closeOnDeactivate)) {\r\n settings.closeOnDeactivate = activator.defaults.closeOnDeactivate;\r\n }\r\n\r\n if (!settings.beforeActivate) {\r\n settings.beforeActivate = activator.defaults.beforeActivate;\r\n }\r\n\r\n if (!settings.afterDeactivate) {\r\n settings.afterDeactivate = activator.defaults.afterDeactivate;\r\n }\r\n\r\n if(!settings.affirmations){\r\n settings.affirmations = activator.defaults.affirmations;\r\n }\r\n\r\n if (!settings.interpretResponse) {\r\n settings.interpretResponse = activator.defaults.interpretResponse;\r\n }\r\n\r\n if (!settings.areSameItem) {\r\n settings.areSameItem = activator.defaults.areSameItem;\r\n }\r\n\r\n if (!settings.findChildActivator) {\r\n settings.findChildActivator = activator.defaults.findChildActivator;\r\n }\r\n\r\n return settings;\r\n }\r\n\r\n function invoke(target, method, data) {\r\n if (system.isArray(data)) {\r\n return target[method].apply(target, data);\r\n }\r\n\r\n return target[method](data);\r\n }\r\n\r\n function deactivate(item, close, settings, dfd, setter) {\r\n if (item && item.deactivate) {\r\n system.log('Deactivating', item);\r\n\r\n var result;\r\n try {\r\n result = item.deactivate(close);\r\n } catch(error) {\r\n system.log('ERROR: ' + error.message, error);\r\n dfd.resolve(false);\r\n return;\r\n }\r\n\r\n if (result && result.then) {\r\n result.then(function() {\r\n settings.afterDeactivate(item, close, setter);\r\n dfd.resolve(true);\r\n }, function(reason) {\r\n if (reason) {\r\n system.log(reason);\r\n }\r\n\r\n dfd.resolve(false);\r\n });\r\n } else {\r\n settings.afterDeactivate(item, close, setter);\r\n dfd.resolve(true);\r\n }\r\n } else {\r\n if (item) {\r\n settings.afterDeactivate(item, close, setter);\r\n }\r\n\r\n dfd.resolve(true);\r\n }\r\n }\r\n\r\n function activate(newItem, activeItem, callback, activationData) {\r\n var result;\r\n\r\n if(newItem && newItem.activate) {\r\n system.log('Activating', newItem);\r\n\r\n try {\r\n result = invoke(newItem, 'activate', activationData);\r\n } catch (error) {\r\n system.log('ERROR: ' + error.message, error);\r\n callback(false);\r\n return;\r\n }\r\n }\r\n\r\n if(result && result.then) {\r\n result.then(function() {\r\n activeItem(newItem);\r\n callback(true);\r\n }, function (reason) {\r\n if (reason) {\r\n system.log('ERROR: ' + reason.message, reason);\r\n }\r\n\r\n callback(false);\r\n });\r\n } else {\r\n activeItem(newItem);\r\n callback(true);\r\n }\r\n }\r\n\r\n function canDeactivateItem(item, close, settings, options) {\r\n options = system.extend({}, defaultOptions, options);\r\n settings.lifecycleData = null;\r\n\r\n return system.defer(function (dfd) {\r\n function continueCanDeactivate() {\r\n if (item && item.canDeactivate && options.canDeactivate) {\r\n var resultOrPromise;\r\n try {\r\n resultOrPromise = item.canDeactivate(close);\r\n } catch (error) {\r\n system.log('ERROR: ' + error.message, error);\r\n dfd.resolve(false);\r\n return;\r\n }\r\n\r\n if (resultOrPromise.then) {\r\n resultOrPromise.then(function (result) {\r\n settings.lifecycleData = result;\r\n dfd.resolve(settings.interpretResponse(result));\r\n }, function (reason) {\r\n if (reason) {\r\n system.log('ERROR: ' + reason.message, reason);\r\n }\r\n\r\n dfd.resolve(false);\r\n });\r\n } else {\r\n settings.lifecycleData = resultOrPromise;\r\n dfd.resolve(settings.interpretResponse(resultOrPromise));\r\n }\r\n } else {\r\n dfd.resolve(true);\r\n }\r\n }\r\n\r\n var childActivator = settings.findChildActivator(item);\r\n if (childActivator) {\r\n childActivator.canDeactivate().then(function(result) {\r\n if (result) {\r\n continueCanDeactivate();\r\n } else {\r\n dfd.resolve(false);\r\n }\r\n });\r\n } else {\r\n continueCanDeactivate();\r\n }\r\n }).promise();\r\n };\r\n\r\n function canActivateItem(newItem, activeItem, settings, activeData, newActivationData) {\r\n settings.lifecycleData = null;\r\n\r\n return system.defer(function (dfd) {\r\n if (settings.areSameItem(activeItem(), newItem, activeData, newActivationData)) {\r\n dfd.resolve(true);\r\n return;\r\n }\r\n\r\n if (newItem && newItem.canActivate) {\r\n var resultOrPromise;\r\n try {\r\n resultOrPromise = invoke(newItem, 'canActivate', newActivationData);\r\n } catch (error) {\r\n system.log('ERROR: ' + error.message, error);\r\n dfd.resolve(false);\r\n return;\r\n }\r\n\r\n if (resultOrPromise.then) {\r\n resultOrPromise.then(function(result) {\r\n settings.lifecycleData = result;\r\n dfd.resolve(settings.interpretResponse(result));\r\n }, function(reason) {\r\n if (reason) {\r\n system.log('ERROR: ' + reason.message, reason);\r\n }\r\n\r\n dfd.resolve(false);\r\n });\r\n } else {\r\n settings.lifecycleData = resultOrPromise;\r\n dfd.resolve(settings.interpretResponse(resultOrPromise));\r\n }\r\n } else {\r\n dfd.resolve(true);\r\n }\r\n }).promise();\r\n };\r\n\r\n /**\r\n * An activator is a read/write computed observable that enforces the activation lifecycle whenever changing values.\r\n * @class Activator\r\n */\r\n function createActivator(initialActiveItem, settings) {\r\n var activeItem = ko.observable(null);\r\n var activeData;\r\n\r\n settings = ensureSettings(settings);\r\n\r\n var computed = ko.computed({\r\n read: function () {\r\n return activeItem();\r\n },\r\n write: function (newValue) {\r\n computed.viaSetter = true;\r\n computed.activateItem(newValue);\r\n }\r\n });\r\n\r\n computed.__activator__ = true;\r\n\r\n /**\r\n * The settings for this activator.\r\n * @property {ActivatorSettings} settings\r\n */\r\n computed.settings = settings;\r\n settings.activator = computed;\r\n\r\n /**\r\n * An observable which indicates whether or not the activator is currently in the process of activating an instance.\r\n * @method isActivating\r\n * @return {boolean}\r\n */\r\n computed.isActivating = ko.observable(false);\r\n\r\n computed.forceActiveItem = function (item) {\r\n activeItem(item);\r\n };\r\n\r\n /**\r\n * Determines whether or not the specified item can be deactivated.\r\n * @method canDeactivateItem\r\n * @param {object} item The item to check.\r\n * @param {boolean} close Whether or not to check if close is possible.\r\n * @param {object} options Options for controlling the activation process.\r\n * @return {promise}\r\n */\r\n computed.canDeactivateItem = function (item, close, options) {\r\n return canDeactivateItem(item, close, settings, options);\r\n };\r\n\r\n /**\r\n * Deactivates the specified item.\r\n * @method deactivateItem\r\n * @param {object} item The item to deactivate.\r\n * @param {boolean} close Whether or not to close the item.\r\n * @return {promise}\r\n */\r\n computed.deactivateItem = function (item, close) {\r\n return system.defer(function(dfd) {\r\n computed.canDeactivateItem(item, close).then(function(canDeactivate) {\r\n if (canDeactivate) {\r\n deactivate(item, close, settings, dfd, activeItem);\r\n } else {\r\n computed.notifySubscribers();\r\n dfd.resolve(false);\r\n }\r\n });\r\n }).promise();\r\n };\r\n\r\n /**\r\n * Determines whether or not the specified item can be activated.\r\n * @method canActivateItem\r\n * @param {object} item The item to check.\r\n * @param {object} activationData Data associated with the activation.\r\n * @return {promise}\r\n */\r\n computed.canActivateItem = function (newItem, activationData) {\r\n return canActivateItem(newItem, activeItem, settings, activeData, activationData);\r\n };\r\n\r\n /**\r\n * Activates the specified item.\r\n * @method activateItem\r\n * @param {object} newItem The item to activate.\r\n * @param {object} newActivationData Data associated with the activation.\r\n * @param {object} options Options for controlling the activation process.\r\n * @return {promise}\r\n */\r\n computed.activateItem = function (newItem, newActivationData, options) {\r\n var viaSetter = computed.viaSetter;\r\n computed.viaSetter = false;\r\n\r\n return system.defer(function (dfd) {\r\n if (computed.isActivating()) {\r\n dfd.resolve(false);\r\n return;\r\n }\r\n\r\n computed.isActivating(true);\r\n\r\n var currentItem = activeItem();\r\n if (settings.areSameItem(currentItem, newItem, activeData, newActivationData)) {\r\n computed.isActivating(false);\r\n dfd.resolve(true);\r\n return;\r\n }\r\n\r\n computed.canDeactivateItem(currentItem, settings.closeOnDeactivate, options).then(function (canDeactivate) {\r\n if (canDeactivate) {\r\n computed.canActivateItem(newItem, newActivationData).then(function (canActivate) {\r\n if (canActivate) {\r\n system.defer(function (dfd2) {\r\n deactivate(currentItem, settings.closeOnDeactivate, settings, dfd2);\r\n }).promise().then(function () {\r\n newItem = settings.beforeActivate(newItem, newActivationData);\r\n activate(newItem, activeItem, function (result) {\r\n activeData = newActivationData;\r\n computed.isActivating(false);\r\n dfd.resolve(result);\r\n }, newActivationData);\r\n });\r\n } else {\r\n if (viaSetter) {\r\n computed.notifySubscribers();\r\n }\r\n\r\n computed.isActivating(false);\r\n dfd.resolve(false);\r\n }\r\n });\r\n } else {\r\n if (viaSetter) {\r\n computed.notifySubscribers();\r\n }\r\n\r\n computed.isActivating(false);\r\n dfd.resolve(false);\r\n }\r\n });\r\n }).promise();\r\n };\r\n\r\n /**\r\n * Determines whether or not the activator, in its current state, can be activated.\r\n * @method canActivate\r\n * @return {promise}\r\n */\r\n computed.canActivate = function () {\r\n var toCheck;\r\n\r\n if (initialActiveItem) {\r\n toCheck = initialActiveItem;\r\n initialActiveItem = false;\r\n } else {\r\n toCheck = computed();\r\n }\r\n\r\n return computed.canActivateItem(toCheck);\r\n };\r\n\r\n /**\r\n * Activates the activator, in its current state.\r\n * @method activate\r\n * @return {promise}\r\n */\r\n computed.activate = function () {\r\n var toActivate;\r\n\r\n if (initialActiveItem) {\r\n toActivate = initialActiveItem;\r\n initialActiveItem = false;\r\n } else {\r\n toActivate = computed();\r\n }\r\n\r\n return computed.activateItem(toActivate);\r\n };\r\n\r\n /**\r\n * Determines whether or not the activator, in its current state, can be deactivated.\r\n * @method canDeactivate\r\n * @return {promise}\r\n */\r\n computed.canDeactivate = function (close) {\r\n return computed.canDeactivateItem(computed(), close);\r\n };\r\n\r\n /**\r\n * Deactivates the activator, in its current state.\r\n * @method deactivate\r\n * @return {promise}\r\n */\r\n computed.deactivate = function (close) {\r\n return computed.deactivateItem(computed(), close);\r\n };\r\n\r\n computed.includeIn = function (includeIn) {\r\n includeIn.canActivate = function () {\r\n return computed.canActivate();\r\n };\r\n\r\n includeIn.activate = function () {\r\n return computed.activate();\r\n };\r\n\r\n includeIn.canDeactivate = function (close) {\r\n return computed.canDeactivate(close);\r\n };\r\n\r\n includeIn.deactivate = function (close) {\r\n return computed.deactivate(close);\r\n };\r\n };\r\n\r\n if (settings.includeIn) {\r\n computed.includeIn(settings.includeIn);\r\n } else if (initialActiveItem) {\r\n computed.activate();\r\n }\r\n\r\n computed.forItems = function (items) {\r\n settings.closeOnDeactivate = false;\r\n\r\n settings.determineNextItemToActivate = function (list, lastIndex) {\r\n var toRemoveAt = lastIndex - 1;\r\n\r\n if (toRemoveAt == -1 && list.length > 1) {\r\n return list[1];\r\n }\r\n\r\n if (toRemoveAt > -1 && toRemoveAt < list.length - 1) {\r\n return list[toRemoveAt];\r\n }\r\n\r\n return null;\r\n };\r\n\r\n settings.beforeActivate = function (newItem) {\r\n var currentItem = computed();\r\n\r\n if (!newItem) {\r\n newItem = settings.determineNextItemToActivate(items, currentItem ? items.indexOf(currentItem) : 0);\r\n } else {\r\n var index = items.indexOf(newItem);\r\n\r\n if (index == -1) {\r\n items.push(newItem);\r\n } else {\r\n newItem = items()[index];\r\n }\r\n }\r\n\r\n return newItem;\r\n };\r\n\r\n settings.afterDeactivate = function (oldItem, close) {\r\n if (close) {\r\n items.remove(oldItem);\r\n }\r\n };\r\n\r\n var originalCanDeactivate = computed.canDeactivate;\r\n computed.canDeactivate = function (close) {\r\n if (close) {\r\n return system.defer(function (dfd) {\r\n var list = items();\r\n var results = [];\r\n\r\n function finish() {\r\n for (var j = 0; j < results.length; j++) {\r\n if (!results[j]) {\r\n dfd.resolve(false);\r\n return;\r\n }\r\n }\r\n\r\n dfd.resolve(true);\r\n }\r\n\r\n for (var i = 0; i < list.length; i++) {\r\n computed.canDeactivateItem(list[i], close).then(function (result) {\r\n results.push(result);\r\n if (results.length == list.length) {\r\n finish();\r\n }\r\n });\r\n }\r\n }).promise();\r\n } else {\r\n return originalCanDeactivate();\r\n }\r\n };\r\n\r\n var originalDeactivate = computed.deactivate;\r\n computed.deactivate = function (close) {\r\n if (close) {\r\n return system.defer(function (dfd) {\r\n var list = items();\r\n var results = 0;\r\n var listLength = list.length;\r\n\r\n function doDeactivate(item) {\r\n setTimeout(function () {\r\n computed.deactivateItem(item, close).then(function () {\r\n results++;\r\n items.remove(item);\r\n if (results == listLength) {\r\n dfd.resolve();\r\n }\r\n });\r\n }, 1);\r\n }\r\n\r\n for (var i = 0; i < listLength; i++) {\r\n doDeactivate(list[i]);\r\n }\r\n }).promise();\r\n } else {\r\n return originalDeactivate();\r\n }\r\n };\r\n\r\n return computed;\r\n };\r\n\r\n return computed;\r\n }\r\n\r\n /**\r\n * @class ActivatorSettings\r\n * @static\r\n */\r\n var activatorSettings = {\r\n /**\r\n * The default value passed to an object's deactivate function as its close parameter.\r\n * @property {boolean} closeOnDeactivate\r\n * @default true\r\n */\r\n closeOnDeactivate: true,\r\n /**\r\n * Lower-cased words which represent a truthy value.\r\n * @property {string[]} affirmations\r\n * @default ['yes', 'ok', 'true']\r\n */\r\n affirmations: ['yes', 'ok', 'true'],\r\n /**\r\n * Interprets the response of a `canActivate` or `canDeactivate` call using the known affirmative values in the `affirmations` array.\r\n * @method interpretResponse\r\n * @param {object} value\r\n * @return {boolean}\r\n */\r\n interpretResponse: function(value) {\r\n if(system.isObject(value)) {\r\n value = value.can || false;\r\n }\r\n\r\n if(system.isString(value)) {\r\n return ko.utils.arrayIndexOf(this.affirmations, value.toLowerCase()) !== -1;\r\n }\r\n\r\n return value;\r\n },\r\n /**\r\n * Determines whether or not the current item and the new item are the same.\r\n * @method areSameItem\r\n * @param {object} currentItem\r\n * @param {object} newItem\r\n * @param {object} currentActivationData\r\n * @param {object} newActivationData\r\n * @return {boolean}\r\n */\r\n areSameItem: function(currentItem, newItem, currentActivationData, newActivationData) {\r\n return currentItem == newItem;\r\n },\r\n /**\r\n * Called immediately before the new item is activated.\r\n * @method beforeActivate\r\n * @param {object} newItem\r\n */\r\n beforeActivate: function(newItem) {\r\n return newItem;\r\n },\r\n /**\r\n * Called immediately after the old item is deactivated.\r\n * @method afterDeactivate\r\n * @param {object} oldItem The previous item.\r\n * @param {boolean} close Whether or not the previous item was closed.\r\n * @param {function} setter The activate item setter function.\r\n */\r\n afterDeactivate: function(oldItem, close, setter) {\r\n if(close && setter) {\r\n setter(null);\r\n }\r\n },\r\n findChildActivator: function(item){\r\n return null;\r\n }\r\n };\r\n\r\n /**\r\n * @class ActivatorModule\r\n * @static\r\n */\r\n activator = {\r\n /**\r\n * The default settings used by activators.\r\n * @property {ActivatorSettings} defaults\r\n */\r\n defaults: activatorSettings,\r\n /**\r\n * Creates a new activator.\r\n * @method create\r\n * @param {object} [initialActiveItem] The item which should be immediately activated upon creation of the ativator.\r\n * @param {ActivatorSettings} [settings] Per activator overrides of the default activator settings.\r\n * @return {Activator} The created activator.\r\n */\r\n create: createActivator,\r\n /**\r\n * Determines whether or not the provided object is an activator or not.\r\n * @method isActivator\r\n * @param {object} object Any object you wish to verify as an activator or not.\r\n * @return {boolean} True if the object is an activator; false otherwise.\r\n */\r\n isActivator:function(object){\r\n return object && object.__activator__;\r\n }\r\n };\r\n\r\n return activator;\r\n});\r\n\n", "/**\r\n * Durandal 2.2.0 Copyright (c) 2010-2016 Blue Spire Consulting, Inc. All Rights Reserved.\r\n * Available via the MIT license.\r\n * see: http://durandaljs.com or https://github.com/BlueSpire/Durandal for details.\r\n */\r\n/**\r\n * The composition module encapsulates all functionality related to visual composition.\r\n * @module composition\r\n * @requires system\r\n * @requires viewLocator\r\n * @requires binder\r\n * @requires viewEngine\r\n * @requires activator\r\n * @requires jquery\r\n * @requires knockout\r\n */\r\ndefine('durandal/composition',['durandal/system', 'durandal/viewLocator', 'durandal/binder', 'durandal/viewEngine', 'durandal/activator', 'jquery', 'knockout'], function (system, viewLocator, binder, viewEngine, activator, $, ko) {\r\n var dummyModel = {},\r\n activeViewAttributeName = 'data-active-view',\r\n composition,\r\n compositionCompleteCallbacks = [],\r\n compositionCount = 0,\r\n compositionDataKey = 'durandal-composition-data',\r\n partAttributeName = 'data-part',\r\n bindableSettings = ['model', 'view', 'transition', 'area', 'strategy', 'activationData', 'onError'],\r\n visibilityKey = \"durandal-visibility-data\",\r\n composeBindings = ['compose:'];\r\n \r\n function onError(context, error, element) {\r\n try {\r\n if (context.onError) {\r\n try {\r\n context.onError(error, element);\r\n } catch (e) {\r\n system.error(e);\r\n }\r\n } else {\r\n system.error(error);\r\n }\r\n } finally {\r\n endComposition(context, element, true);\r\n }\r\n }\r\n\r\n function getHostState(parent) {\r\n var elements = [];\r\n var state = {\r\n childElements: elements,\r\n activeView: null\r\n };\r\n\r\n var child = ko.virtualElements.firstChild(parent);\r\n\r\n while (child) {\r\n if (child.nodeType == 1) {\r\n elements.push(child);\r\n if (child.getAttribute(activeViewAttributeName)) {\r\n state.activeView = child;\r\n }\r\n }\r\n\r\n child = ko.virtualElements.nextSibling(child);\r\n }\r\n\r\n if(!state.activeView){\r\n state.activeView = elements[0];\r\n }\r\n\r\n return state;\r\n }\r\n\r\n function endComposition(context, element, error) {\r\n compositionCount--;\r\n\r\n if(compositionCount === 0) {\r\n var callBacks = compositionCompleteCallbacks;\r\n compositionCompleteCallbacks = [];\r\n \r\n if (!error) {\r\n setTimeout(function () {\r\n var i = callBacks.length;\r\n\r\n while (i--) {\r\n try {\r\n callBacks[i]();\r\n } catch (e) {\r\n onError(context, e, element);\r\n }\r\n }\r\n }, 1);\r\n }\r\n }\r\n\r\n cleanUp(context);\r\n }\r\n\r\n function cleanUp(context){\r\n delete context.activeView;\r\n delete context.viewElements;\r\n }\r\n\r\n function tryActivate(context, successCallback, skipActivation, element) {\r\n if(skipActivation){\r\n successCallback();\r\n } else if (context.activate && context.model && context.model.activate) {\r\n var result;\r\n\r\n try{\r\n if(system.isArray(context.activationData)) {\r\n result = context.model.activate.apply(context.model, context.activationData);\r\n } else {\r\n result = context.model.activate(context.activationData);\r\n }\r\n\r\n if(result && result.then) {\r\n result.then(successCallback, function(reason) {\r\n onError(context, reason, element);\r\n successCallback();\r\n });\r\n } else if(result || result === undefined) {\r\n successCallback();\r\n } else {\r\n endComposition(context, element);\r\n }\r\n }\r\n catch(e){\r\n onError(context, e, element);\r\n }\r\n } else {\r\n successCallback();\r\n }\r\n }\r\n\r\n function triggerAttach(context, element) {\r\n var context = this;\r\n\r\n if (context.activeView) {\r\n context.activeView.removeAttribute(activeViewAttributeName);\r\n }\r\n\r\n if (context.child) {\r\n try{\r\n if (context.model && context.model.attached) {\r\n if (context.composingNewView || context.alwaysTriggerAttach) {\r\n context.model.attached(context.child, context.parent, context);\r\n }\r\n }\r\n\r\n if (context.attached) {\r\n context.attached(context.child, context.parent, context);\r\n }\r\n\r\n context.child.setAttribute(activeViewAttributeName, true);\r\n\r\n if (context.composingNewView && context.model && context.model.detached) {\r\n ko.utils.domNodeDisposal.addDisposeCallback(context.child, function () {\r\n try{\r\n context.model.detached(context.child, context.parent, context);\r\n }catch(e2){\r\n onError(context, e2, element);\r\n }\r\n });\r\n }\r\n }catch(e){\r\n onError(context, e, element);\r\n }\r\n }\r\n\r\n context.triggerAttach = system.noop;\r\n }\r\n\r\n function shouldTransition(context) {\r\n if (system.isString(context.transition)) {\r\n if (context.activeView) {\r\n if (context.activeView == context.child) {\r\n return false;\r\n }\r\n\r\n if (!context.child) {\r\n return true;\r\n }\r\n\r\n if (context.skipTransitionOnSameViewId) {\r\n var currentViewId = context.activeView.getAttribute('data-view');\r\n var newViewId = context.child.getAttribute('data-view');\r\n return currentViewId != newViewId;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function cloneNodes(nodesArray) {\r\n for (var i = 0, j = nodesArray.length, newNodesArray = []; i < j; i++) {\r\n var clonedNode = nodesArray[i].cloneNode(true);\r\n newNodesArray.push(clonedNode);\r\n }\r\n return newNodesArray;\r\n }\r\n\r\n function replaceParts(context){\r\n var parts = cloneNodes(context.parts);\r\n var replacementParts = composition.getParts(parts);\r\n var standardParts = composition.getParts(context.child);\r\n\r\n for (var partId in replacementParts) {\r\n var toReplace = standardParts[partId];\r\n if (!toReplace) {\r\n toReplace = $('[data-part=\"' + partId + '\"]', context.child).get(0);\r\n if (!toReplace) {\r\n system.log('Could not find part to override: ' + partId);\r\n continue;\r\n }\r\n }\r\n\r\n toReplace.parentNode.replaceChild(replacementParts[partId], toReplace);\r\n }\r\n }\r\n\r\n function removePreviousView(context){\r\n var children = ko.virtualElements.childNodes(context.parent), i, len;\r\n\r\n if(!system.isArray(children)){\r\n var arrayChildren = [];\r\n for(i = 0, len = children.length; i < len; i++){\r\n arrayChildren[i] = children[i];\r\n }\r\n children = arrayChildren;\r\n }\r\n\r\n for(i = 1,len = children.length; i < len; i++){\r\n ko.removeNode(children[i]);\r\n }\r\n }\r\n\r\n function hide(view) {\r\n ko.utils.domData.set(view, visibilityKey, view.style.display);\r\n view.style.display = 'none';\r\n }\r\n\r\n function show(view) {\r\n var displayStyle = ko.utils.domData.get(view, visibilityKey);\r\n view.style.display = displayStyle === 'none' ? 'block' : displayStyle;\r\n }\r\n\r\n function hasComposition(element){\r\n var dataBind = element.getAttribute('data-bind');\r\n if(!dataBind){\r\n return false;\r\n }\r\n\r\n for(var i = 0, length = composeBindings.length; i < length; i++){\r\n if(dataBind.indexOf(composeBindings[i]) > -1){\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * @class CompositionTransaction\r\n * @static\r\n */\r\n var compositionTransaction = {\r\n /**\r\n * Registers a callback which will be invoked when the current composition transaction has completed. The transaction includes all parent and children compositions.\r\n * @method complete\r\n * @param {function} callback The callback to be invoked when composition is complete.\r\n */\r\n complete: function (callback) {\r\n compositionCompleteCallbacks.push(callback);\r\n }\r\n };\r\n\r\n /**\r\n * @class CompositionModule\r\n * @static\r\n */\r\n composition = {\r\n /**\r\n * An array of all the binding handler names (includeing :) that trigger a composition.\r\n * @property {string} composeBindings\r\n * @default ['compose:']\r\n */\r\n composeBindings:composeBindings,\r\n /**\r\n * Converts a transition name to its moduleId.\r\n * @method convertTransitionToModuleId\r\n * @param {string} name The name of the transtion.\r\n * @return {string} The moduleId.\r\n */\r\n convertTransitionToModuleId: function (name) {\r\n return 'transitions/' + name;\r\n },\r\n /**\r\n * The name of the transition to use in all compositions.\r\n * @property {string} defaultTransitionName\r\n * @default null\r\n */\r\n defaultTransitionName: null,\r\n /**\r\n * Represents the currently executing composition transaction.\r\n * @property {CompositionTransaction} current\r\n */\r\n current: compositionTransaction,\r\n /**\r\n * Registers a binding handler that will be invoked when the current composition transaction is complete.\r\n * @method addBindingHandler\r\n * @param {string} name The name of the binding handler.\r\n * @param {object} [config] The binding handler instance. If none is provided, the name will be used to look up an existing handler which will then be converted to a composition handler.\r\n * @param {function} [initOptionsFactory] If the registered binding needs to return options from its init call back to knockout, this function will server as a factory for those options. It will receive the same parameters that the init function does.\r\n */\r\n addBindingHandler:function(name, config, initOptionsFactory){\r\n var key,\r\n dataKey = 'composition-handler-' + name,\r\n handler;\r\n\r\n config = config || ko.bindingHandlers[name];\r\n initOptionsFactory = initOptionsFactory || function(){ return undefined; };\r\n\r\n handler = ko.bindingHandlers[name] = {\r\n init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\r\n if(compositionCount > 0){\r\n var data = {\r\n trigger:ko.observable(null)\r\n };\r\n\r\n composition.current.complete(function(){\r\n if(config.init){\r\n config.init(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext);\r\n }\r\n\r\n if(config.update){\r\n ko.utils.domData.set(element, dataKey, config);\r\n data.trigger('trigger');\r\n }\r\n });\r\n\r\n ko.utils.domData.set(element, dataKey, data);\r\n }else{\r\n ko.utils.domData.set(element, dataKey, config);\r\n\r\n if(config.init){\r\n config.init(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext);\r\n }\r\n }\r\n\r\n return initOptionsFactory(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext);\r\n },\r\n update: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\r\n var data = ko.utils.domData.get(element, dataKey);\r\n\r\n if(data.update){\r\n return data.update(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext);\r\n }\r\n\r\n if(data.trigger){\r\n data.trigger();\r\n }\r\n }\r\n };\r\n\r\n for (key in config) {\r\n if (key !== \"init\" && key !== \"update\") {\r\n handler[key] = config[key];\r\n }\r\n }\r\n },\r\n /**\r\n * Gets an object keyed with all the elements that are replacable parts, found within the supplied elements. The key will be the part name and the value will be the element itself.\r\n * @method getParts\r\n * @param {DOMElement\\DOMElement[]} elements The element(s) to search for parts.\r\n * @return {object} An object keyed by part.\r\n */\r\n getParts: function(elements, parts) {\r\n parts = parts || {};\r\n\r\n if (!elements) {\r\n return parts;\r\n }\r\n\r\n if (elements.length === undefined) {\r\n elements = [elements];\r\n }\r\n\r\n for (var i = 0, length = elements.length; i < length; i++) {\r\n var element = elements[i],\r\n id;\r\n\r\n if (element.getAttribute) {\r\n id = element.getAttribute(partAttributeName);\r\n if (id) {\r\n parts[id] = element;\r\n }\r\n\r\n if (element.hasChildNodes() && !hasComposition(element)) {\r\n composition.getParts(element.childNodes, parts);\r\n }\r\n }\r\n }\r\n\r\n return parts;\r\n },\r\n cloneNodes:cloneNodes,\r\n finalize: function (context, element) {\r\n if(context.transition === undefined) {\r\n context.transition = this.defaultTransitionName;\r\n }\r\n\r\n if(!context.child && !context.activeView){\r\n if (!context.cacheViews) {\r\n ko.virtualElements.emptyNode(context.parent);\r\n }\r\n\r\n context.triggerAttach(context, element);\r\n endComposition(context, element);\r\n } else if (shouldTransition(context)) {\r\n var transitionModuleId = this.convertTransitionToModuleId(context.transition);\r\n\r\n system.acquire(transitionModuleId).then(function (transition) {\r\n context.transition = transition;\r\n\r\n transition(context).then(function () {\r\n if (!context.cacheViews) {\r\n if(!context.child){\r\n ko.virtualElements.emptyNode(context.parent);\r\n }else{\r\n removePreviousView(context);\r\n }\r\n }else if(context.activeView){\r\n var instruction = binder.getBindingInstruction(context.activeView);\r\n if(instruction && instruction.cacheViews != undefined && !instruction.cacheViews){\r\n ko.removeNode(context.activeView);\r\n }else{\r\n hide(context.activeView);\r\n }\r\n }\r\n\r\n if (context.child) {\r\n show(context.child);\r\n }\r\n\r\n context.triggerAttach(context, element);\r\n endComposition(context, element);\r\n });\r\n }).fail(function(err){\r\n onError(context, 'Failed to load transition (' + transitionModuleId + '). Details: ' + err.message, element);\r\n });\r\n } else {\r\n if (context.child != context.activeView) {\r\n if (context.cacheViews && context.activeView) {\r\n var instruction = binder.getBindingInstruction(context.activeView);\r\n if(!instruction || (instruction.cacheViews != undefined && !instruction.cacheViews)){\r\n ko.removeNode(context.activeView);\r\n }else{\r\n hide(context.activeView);\r\n }\r\n }\r\n\r\n if (!context.child) {\r\n if (!context.cacheViews) {\r\n ko.virtualElements.emptyNode(context.parent);\r\n }\r\n } else {\r\n if (!context.cacheViews) {\r\n removePreviousView(context);\r\n }\r\n\r\n show(context.child);\r\n }\r\n }\r\n\r\n context.triggerAttach(context, element);\r\n endComposition(context, element);\r\n }\r\n },\r\n bindAndShow: function (child, element, context, skipActivation) {\r\n context.child = child;\r\n context.parent.__composition_context = context;\r\n\r\n if (context.cacheViews) {\r\n context.composingNewView = (ko.utils.arrayIndexOf(context.viewElements, child) == -1);\r\n } else {\r\n context.composingNewView = true;\r\n }\r\n\r\n tryActivate(context, function () {\r\n if (context.parent.__composition_context == context) {\r\n try {\r\n delete context.parent.__composition_context;\r\n }\r\n catch(e) {\r\n context.parent.__composition_context = undefined;\r\n }\r\n\r\n if (context.binding) {\r\n context.binding(context.child, context.parent, context);\r\n }\r\n\r\n if (context.preserveContext && context.bindingContext) {\r\n if (context.composingNewView) {\r\n if(context.parts){\r\n replaceParts(context);\r\n }\r\n\r\n hide(child);\r\n ko.virtualElements.prepend(context.parent, child);\r\n\r\n binder.bindContext(context.bindingContext, child, context.model, context.as);\r\n }\r\n } else if (child) {\r\n var modelToBind = context.model || dummyModel;\r\n var currentModel = ko.dataFor(child);\r\n\r\n if (currentModel != modelToBind) {\r\n if (!context.composingNewView) {\r\n ko.removeNode(child);\r\n viewEngine.createView(child.getAttribute('data-view')).then(function(recreatedView) {\r\n composition.bindAndShow(recreatedView, element, context, true);\r\n });\r\n return;\r\n }\r\n\r\n if(context.parts){\r\n replaceParts(context);\r\n }\r\n\r\n hide(child);\r\n ko.virtualElements.prepend(context.parent, child);\r\n\r\n binder.bind(modelToBind, child);\r\n }\r\n }\r\n\r\n composition.finalize(context, element);\r\n } else {\r\n endComposition(context, element);\r\n }\r\n }, skipActivation, element);\r\n },\r\n /**\r\n * Eecutes the default view location strategy.\r\n * @method defaultStrategy\r\n * @param {object} context The composition context containing the model and possibly existing viewElements.\r\n * @return {promise} A promise for the view.\r\n */\r\n defaultStrategy: function (context) {\r\n return viewLocator.locateViewForObject(context.model, context.area, context.viewElements);\r\n },\r\n getSettings: function (valueAccessor, element) {\r\n var value = valueAccessor(),\r\n settings = ko.utils.unwrapObservable(value) || {},\r\n activatorPresent = activator.isActivator(value),\r\n moduleId;\r\n\r\n if (system.isString(settings)) {\r\n if (viewEngine.isViewUrl(settings)) {\r\n settings = {\r\n view: settings\r\n };\r\n } else {\r\n settings = {\r\n model: settings,\r\n activate: !activatorPresent\r\n };\r\n }\r\n\r\n return settings;\r\n }\r\n\r\n moduleId = system.getModuleId(settings);\r\n if (moduleId) {\r\n settings = {\r\n model: settings,\r\n activate: !activatorPresent\r\n };\r\n\r\n return settings;\r\n }\r\n\r\n if(!activatorPresent && settings.model) {\r\n activatorPresent = activator.isActivator(settings.model);\r\n }\r\n\r\n for (var attrName in settings) {\r\n if (ko.utils.arrayIndexOf(bindableSettings, attrName) != -1) {\r\n settings[attrName] = ko.utils.unwrapObservable(settings[attrName]);\r\n } else {\r\n settings[attrName] = settings[attrName];\r\n }\r\n }\r\n\r\n if (activatorPresent) {\r\n settings.activate = false;\r\n } else if (settings.activate === undefined) {\r\n settings.activate = true;\r\n }\r\n\r\n return settings;\r\n },\r\n executeStrategy: function (context, element) {\r\n context.strategy(context).then(function (child) {\r\n composition.bindAndShow(child, element, context);\r\n });\r\n },\r\n inject: function (context, element) {\r\n if (!context.model) {\r\n this.bindAndShow(null, element, context);\r\n return;\r\n }\r\n\r\n if (context.view) {\r\n viewLocator.locateView(context.view, context.area, context.viewElements).then(function (child) {\r\n composition.bindAndShow(child, element, context);\r\n });\r\n return;\r\n }\r\n\r\n if (!context.strategy) {\r\n context.strategy = this.defaultStrategy;\r\n }\r\n\r\n if (system.isString(context.strategy)) {\r\n system.acquire(context.strategy).then(function (strategy) {\r\n context.strategy = strategy;\r\n composition.executeStrategy(context, element);\r\n }).fail(function (err) {\r\n onError(context, 'Failed to load view strategy (' + context.strategy + '). Details: ' + err.message, element);\r\n });\r\n } else {\r\n this.executeStrategy(context, element);\r\n }\r\n },\r\n /**\r\n * Initiates a composition.\r\n * @method compose\r\n * @param {DOMElement} element The DOMElement or knockout virtual element that serves as the parent for the composition.\r\n * @param {object} settings The composition settings.\r\n * @param {object} [bindingContext] The current binding context.\r\n */\r\n compose: function (element, settings, bindingContext, fromBinding) {\r\n compositionCount++;\r\n\r\n if(!fromBinding){\r\n settings = composition.getSettings(function() { return settings; }, element);\r\n }\r\n\r\n if (settings.compositionComplete) {\r\n compositionCompleteCallbacks.push(function () {\r\n settings.compositionComplete(settings.child, settings.parent, settings);\r\n });\r\n }\r\n\r\n compositionCompleteCallbacks.push(function () {\r\n if(settings.composingNewView && settings.model && settings.model.compositionComplete){\r\n settings.model.compositionComplete(settings.child, settings.parent, settings);\r\n }\r\n });\r\n\r\n var hostState = getHostState(element);\r\n\r\n settings.activeView = hostState.activeView;\r\n settings.parent = element;\r\n settings.triggerAttach = triggerAttach;\r\n settings.bindingContext = bindingContext;\r\n\r\n if (settings.cacheViews && !settings.viewElements) {\r\n settings.viewElements = hostState.childElements;\r\n }\r\n\r\n if (!settings.model) {\r\n if (!settings.view) {\r\n this.bindAndShow(null, element, settings);\r\n } else {\r\n settings.area = settings.area || 'partial';\r\n settings.preserveContext = true;\r\n\r\n viewLocator.locateView(settings.view, settings.area, settings.viewElements).then(function (child) {\r\n composition.bindAndShow(child, element, settings);\r\n });\r\n }\r\n } else if (system.isString(settings.model)) {\r\n system.acquire(settings.model).then(function (module) {\r\n settings.model = system.resolveObject(module);\r\n composition.inject(settings, element);\r\n }).fail(function (err) {\r\n onError(settings, 'Failed to load composed module (' + settings.model + '). Details: ' + err.message, element);\r\n });\r\n } else {\r\n composition.inject(settings, element);\r\n }\r\n }\r\n };\r\n\r\n ko.bindingHandlers.compose = {\r\n init: function() {\r\n return { controlsDescendantBindings: true };\r\n },\r\n update: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\r\n var settings = composition.getSettings(valueAccessor, element);\r\n if(settings.mode){\r\n var data = ko.utils.domData.get(element, compositionDataKey);\r\n if(!data){\r\n var childNodes = ko.virtualElements.childNodes(element);\r\n data = {};\r\n\r\n if(settings.mode === 'inline'){\r\n data.view = viewEngine.ensureSingleElement(childNodes);\r\n }else if(settings.mode === 'templated'){\r\n data.parts = cloneNodes(childNodes);\r\n }\r\n\r\n ko.virtualElements.emptyNode(element);\r\n ko.utils.domData.set(element, compositionDataKey, data);\r\n }\r\n\r\n if(settings.mode === 'inline'){\r\n settings.view = data.view.cloneNode(true);\r\n }else if(settings.mode === 'templated'){\r\n settings.parts = data.parts;\r\n }\r\n\r\n settings.preserveContext = true;\r\n }\r\n\r\n composition.compose(element, settings, bindingContext, true);\r\n }\r\n };\r\n\r\n ko.virtualElements.allowedBindings.compose = true;\r\n\r\n return composition;\r\n});\r\n\n", "/**\r\n * Durandal 2.2.0 Copyright (c) 2010-2016 Blue Spire Consulting, Inc. All Rights Reserved.\r\n * Available via the MIT license.\r\n * see: http://durandaljs.com or https://github.com/BlueSpire/Durandal for details.\r\n */\r\n/**\r\n * Durandal events originate from backbone.js but also combine some ideas from signals.js as well as some additional improvements.\r\n * Events can be installed into any object and are installed into the `app` module by default for convenient app-wide eventing.\r\n * @module events\r\n * @requires system\r\n */\r\ndefine('durandal/events',['durandal/system'], function (system) {\r\n var eventSplitter = /\\s+/;\r\n var Events = function() { };\r\n\r\n /**\r\n * Represents an event subscription.\r\n * @class Subscription\r\n */\r\n var Subscription = function(owner, events) {\r\n this.owner = owner;\r\n this.events = events;\r\n };\r\n\r\n /**\r\n * Attaches a callback to the event subscription.\r\n * @method then\r\n * @param {function} callback The callback function to invoke when the event is triggered.\r\n * @param {object} [context] An object to use as `this` when invoking the `callback`.\r\n * @chainable\r\n */\r\n Subscription.prototype.then = function (callback, context) {\r\n this.callback = callback || this.callback;\r\n this.context = context || this.context;\r\n \r\n if (!this.callback) {\r\n return this;\r\n }\r\n\r\n this.owner.on(this.events, this.callback, this.context);\r\n return this;\r\n };\r\n\r\n /**\r\n * Attaches a callback to the event subscription.\r\n * @method on\r\n * @param {function} [callback] The callback function to invoke when the event is triggered. If `callback` is not provided, the previous callback will be re-activated.\r\n * @param {object} [context] An object to use as `this` when invoking the `callback`.\r\n * @chainable\r\n */\r\n Subscription.prototype.on = Subscription.prototype.then;\r\n\r\n /**\r\n * Cancels the subscription.\r\n * @method off\r\n * @chainable\r\n */\r\n Subscription.prototype.off = function () {\r\n this.owner.off(this.events, this.callback, this.context);\r\n return this;\r\n };\r\n\r\n /**\r\n * Creates an object with eventing capabilities.\r\n * @class Events\r\n */\r\n\r\n /**\r\n * Creates a subscription or registers a callback for the specified event.\r\n * @method on\r\n * @param {string} events One or more events, separated by white space.\r\n * @param {function} [callback] The callback function to invoke when the event is triggered. If `callback` is not provided, a subscription instance is returned.\r\n * @param {object} [context] An object to use as `this` when invoking the `callback`.\r\n * @return {Subscription|Events} A subscription is returned if no callback is supplied, otherwise the events object is returned for chaining.\r\n */\r\n Events.prototype.on = function(events, callback, context) {\r\n var calls, event, list;\r\n\r\n if (!callback) {\r\n return new Subscription(this, events);\r\n } else {\r\n calls = this.callbacks || (this.callbacks = {});\r\n events = events.split(eventSplitter);\r\n\r\n while (event = events.shift()) {\r\n list = calls[event] || (calls[event] = []);\r\n list.push(callback, context);\r\n }\r\n\r\n return this;\r\n }\r\n };\r\n\r\n /**\r\n * Removes the callbacks for the specified events.\r\n * @method off\r\n * @param {string} [events] One or more events, separated by white space to turn off. If no events are specified, then the callbacks will be removed.\r\n * @param {function} [callback] The callback function to remove. If `callback` is not provided, all callbacks for the specified events will be removed.\r\n * @param {object} [context] The object that was used as `this`. Callbacks with this context will be removed.\r\n * @chainable\r\n */\r\n Events.prototype.off = function(events, callback, context) {\r\n var event, calls, list, i;\r\n\r\n // No events\r\n if (!(calls = this.callbacks)) {\r\n return this;\r\n }\r\n\r\n //removing all\r\n if (!(events || callback || context)) {\r\n delete this.callbacks;\r\n return this;\r\n }\r\n\r\n events = events ? events.split(eventSplitter) : system.keys(calls);\r\n\r\n // Loop through the callback list, splicing where appropriate.\r\n while (event = events.shift()) {\r\n if (!(list = calls[event]) || !(callback || context)) {\r\n delete calls[event];\r\n continue;\r\n }\r\n\r\n for (i = list.length - 2; i >= 0; i -= 2) {\r\n if (!(callback && list[i] !== callback || context && list[i + 1] !== context)) {\r\n list.splice(i, 2);\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Triggers the specified events.\r\n * @method trigger\r\n * @param {string} [events] One or more events, separated by white space to trigger.\r\n * @chainable\r\n */\r\n Events.prototype.trigger = function(events) {\r\n var event, calls, list, i, length, args, all, rest;\r\n if (!(calls = this.callbacks)) {\r\n return this;\r\n }\r\n\r\n rest = [];\r\n events = events.split(eventSplitter);\r\n for (i = 1, length = arguments.length; i < length; i++) {\r\n rest[i - 1] = arguments[i];\r\n }\r\n\r\n // For each event, walk through the list of callbacks twice, first to\r\n // trigger the event, then to trigger any `\"all\"` callbacks.\r\n while (event = events.shift()) {\r\n // Copy callback lists to prevent modification.\r\n if (all = calls.all) {\r\n all = all.slice();\r\n }\r\n\r\n if (list = calls[event]) {\r\n list = list.slice();\r\n }\r\n\r\n // Execute event callbacks.\r\n if (list) {\r\n for (i = 0, length = list.length; i < length; i += 2) {\r\n list[i].apply(list[i + 1] || this, rest);\r\n }\r\n }\r\n\r\n // Execute \"all\" callbacks.\r\n if (all) {\r\n args = [event].concat(rest);\r\n for (i = 0, length = all.length; i < length; i += 2) {\r\n all[i].apply(all[i + 1] || this, args);\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Creates a function that will trigger the specified events when called. Simplifies proxying jQuery (or other) events through to the events object.\r\n * @method proxy\r\n * @param {string} events One or more events, separated by white space to trigger by invoking the returned function.\r\n * @return {function} Calling the function will invoke the previously specified events on the events object.\r\n */\r\n Events.prototype.proxy = function(events) {\r\n var that = this;\r\n return (function(arg) {\r\n that.trigger(events, arg);\r\n });\r\n };\r\n\r\n /**\r\n * Creates an object with eventing capabilities.\r\n * @class EventsModule\r\n * @static\r\n */\r\n\r\n /**\r\n * Adds eventing capabilities to the specified object.\r\n * @method includeIn\r\n * @param {object} targetObject The object to add eventing capabilities to.\r\n */\r\n Events.includeIn = function(targetObject) {\r\n targetObject.on = Events.prototype.on;\r\n targetObject.off = Events.prototype.off;\r\n targetObject.trigger = Events.prototype.trigger;\r\n targetObject.proxy = Events.prototype.proxy;\r\n };\r\n\r\n return Events;\r\n});\r\n\n", "/**\r\n * Durandal 2.2.0 Copyright (c) 2010-2016 Blue Spire Consulting, Inc. All Rights Reserved.\r\n * Available via the MIT license.\r\n * see: http://durandaljs.com or https://github.com/BlueSpire/Durandal for details.\r\n */\r\n/**\r\n * The app module controls app startup, plugin loading/configuration and root visual display.\r\n * @module app\r\n * @requires system\r\n * @requires viewEngine\r\n * @requires composition\r\n * @requires events\r\n * @requires jquery\r\n */\r\ndefine('durandal/app',['durandal/system', 'durandal/viewEngine', 'durandal/composition', 'durandal/events', 'jquery'], function(system, viewEngine, composition, Events, $) {\r\n var app,\r\n allPluginIds = [],\r\n allPluginConfigs = [];\r\n\r\n function loadPlugins(){\r\n return system.defer(function(dfd){\r\n if(allPluginIds.length == 0){\r\n dfd.resolve();\r\n return;\r\n }\r\n\r\n system.acquire(allPluginIds).then(function(loaded){\r\n for(var i = 0; i < loaded.length; i++){\r\n var currentModule = loaded[i];\r\n\r\n if(currentModule.install){\r\n var config = allPluginConfigs[i];\r\n if(!system.isObject(config)){\r\n config = {};\r\n }\r\n\r\n currentModule.install(config);\r\n system.log('Plugin:Installed ' + allPluginIds[i]);\r\n }else{\r\n system.log('Plugin:Loaded ' + allPluginIds[i]);\r\n }\r\n }\r\n\r\n dfd.resolve();\r\n }).fail(function(err){\r\n system.error('Failed to load plugin(s). Details: ' + err.message);\r\n });\r\n }).promise();\r\n }\r\n\r\n /**\r\n * @class AppModule\r\n * @static\r\n * @uses Events\r\n */\r\n app = {\r\n /**\r\n * The title of your application.\r\n * @property {string} title\r\n */\r\n title: 'Application',\r\n /**\r\n * Configures one or more plugins to be loaded and installed into the application.\r\n * @method configurePlugins\r\n * @param {object} config Keys are plugin names. Values can be truthy, to simply install the plugin, or a configuration object to pass to the plugin.\r\n * @param {string} [baseUrl] The base url to load the plugins from.\r\n */\r\n configurePlugins:function(config, baseUrl){\r\n var pluginIds = system.keys(config);\r\n baseUrl = baseUrl || 'plugins/';\r\n\r\n if(baseUrl.indexOf('/', baseUrl.length - 1) === -1){\r\n baseUrl += '/';\r\n }\r\n\r\n for(var i = 0; i < pluginIds.length; i++){\r\n var key = pluginIds[i];\r\n allPluginIds.push(baseUrl + key);\r\n allPluginConfigs.push(config[key]);\r\n }\r\n },\r\n /**\r\n * Starts the application.\r\n * @method start\r\n * @return {promise}\r\n */\r\n start: function() {\r\n system.log('Application:Starting');\r\n\r\n if (this.title) {\r\n document.title = this.title;\r\n }\r\n\r\n return system.defer(function (dfd) {\r\n $(function() {\r\n loadPlugins().then(function(){\r\n dfd.resolve();\r\n system.log('Application:Started');\r\n });\r\n });\r\n }).promise();\r\n },\r\n /**\r\n * Sets the root module/view for the application.\r\n * @method setRoot\r\n * @param {string} root The root view or module.\r\n * @param {string} [transition] The transition to use from the previous root (or splash screen) into the new root.\r\n * @param {string} [applicationHost] The application host element or id. By default the id 'applicationHost' will be used.\r\n */\r\n setRoot: function(root, transition, applicationHost) {\r\n var hostElement, settings = { activate:true, transition: transition };\r\n\r\n if (!applicationHost || system.isString(applicationHost)) {\r\n hostElement = document.getElementById(applicationHost || 'applicationHost');\r\n } else {\r\n hostElement = applicationHost;\r\n }\r\n\r\n if (system.isString(root)) {\r\n if (viewEngine.isViewUrl(root)) {\r\n settings.view = root;\r\n } else {\r\n settings.model = root;\r\n }\r\n } else {\r\n settings.model = root;\r\n }\r\n\r\n function finishComposition() {\r\n if(settings.model) {\r\n if (settings.model.canActivate) {\r\n try {\r\n var result = settings.model.canActivate();\r\n if (result && result.then) {\r\n result.then(function (actualResult) {\r\n if (actualResult) {\r\n composition.compose(hostElement, settings);\r\n }\r\n }).fail(function (err) {\r\n system.error(err);\r\n });\r\n } else if (result) {\r\n composition.compose(hostElement, settings);\r\n }\r\n } catch (er) {\r\n system.error(er);\r\n }\r\n } else {\r\n composition.compose(hostElement, settings);\r\n }\r\n } else {\r\n composition.compose(hostElement, settings);\r\n }\r\n }\r\n\r\n if(system.isString(settings.model)) {\r\n system.acquire(settings.model).then(function(module) {\r\n settings.model = system.resolveObject(module);\r\n finishComposition();\r\n }).fail(function(err) {\r\n system.error('Failed to load root module (' + settings.model + '). Details: ' + err.message);\r\n });\r\n } else {\r\n finishComposition();\r\n }\r\n }\r\n };\r\n\r\n Events.includeIn(app);\r\n\r\n return app;\r\n});\r\n\n", "define('models/portal',[\"require\", \"exports\", \"models/account\"], function (require, exports, Account) {\n \"use strict\";\n var Context = (function () {\n function Context() {\n }\n Object.defineProperty(Context, \"shell\", {\n get: function () {\n return Context._shell;\n },\n set: function (instance) {\n Context._shell = instance;\n },\n enumerable: true,\n configurable: true\n });\n return Context;\n }());\n exports.Context = Context;\n var ContentDialog = (function () {\n function ContentDialog() {\n }\n return ContentDialog;\n }());\n exports.ContentDialog = ContentDialog;\n // #region breadcrumb\n var BreadCrumbItem = (function () {\n // #region creation\n function BreadCrumbItem() {\n this.items = [];\n ko.track(this, [\"name\", \"icon\", \"items\"]);\n }\n BreadCrumbItem.from = function (name, icon, thumbnail, source, clickAction) {\n if (icon === void 0) { icon = null; }\n if (thumbnail === void 0) { thumbnail = null; }\n if (source === void 0) { source = null; }\n if (clickAction === void 0) { clickAction = null; }\n var item = new BreadCrumbItem();\n item.name = name;\n item.icon = icon;\n item.thumbnail = thumbnail;\n item.clickAction = clickAction;\n item.source = source;\n return item;\n };\n // #endregion\n BreadCrumbItem.prototype.execute = function () {\n if (this.clickAction == null)\n return;\n this.clickAction(this);\n };\n return BreadCrumbItem;\n }());\n exports.BreadCrumbItem = BreadCrumbItem;\n var ModuleBreadCrumbItemHolder = (function () {\n function ModuleBreadCrumbItemHolder() {\n this.rootChilds = [];\n this.items = [];\n ko.track(this, [\"rootChilds\", \"items\"]);\n }\n return ModuleBreadCrumbItemHolder;\n }());\n exports.ModuleBreadCrumbItemHolder = ModuleBreadCrumbItemHolder;\n // #endregion\n // #region modules\n var Application = (function () {\n function Application() {\n }\n Application.from = function (data) {\n var result = new Application();\n result.id = data.id;\n result.name = data.name;\n result.settingsXml = data.settingsXml;\n result.target = data.target;\n return result;\n };\n return Application;\n }());\n exports.Application = Application;\n var ApplicationContext = (function () {\n function ApplicationContext(path, settings, queryString, parameters) {\n this.path = path;\n this.settings = settings;\n this.queryString = queryString;\n this.callingParameters = parameters;\n }\n return ApplicationContext;\n }());\n exports.ApplicationContext = ApplicationContext;\n var ParameterList = (function () {\n function ParameterList() {\n this._parameters = new Array();\n }\n ParameterList.prototype.add = function (key, value) {\n this._parameters[key] = value;\n };\n ParameterList.prototype.get = function (key) {\n return this._parameters[key];\n };\n return ParameterList;\n }());\n exports.ParameterList = ParameterList;\n var ModuleRouteConfiguration = (function () {\n function ModuleRouteConfiguration() {\n }\n return ModuleRouteConfiguration;\n }());\n exports.ModuleRouteConfiguration = ModuleRouteConfiguration;\n var ChildRouteConfiguration = (function () {\n function ChildRouteConfiguration() {\n }\n return ChildRouteConfiguration;\n }());\n exports.ChildRouteConfiguration = ChildRouteConfiguration;\n var ModuleInfo = (function () {\n function ModuleInfo() {\n }\n ModuleInfo.from = function (data) {\n var result = new ModuleInfo();\n result.id = data.id;\n result.memberType = data.memberType;\n result.name = data.name;\n result.originalName = data.originalName;\n result.imagePath = data.imagePath;\n result.category = data.category;\n result.description = data.description;\n result.settingsXml = data.settingsXml;\n result.visibilityRulesXml = data.visibilityRulesXml;\n result.isDisabled = data.isDisabled;\n result.isMainApplication = data.isMainApplication;\n result.isDeleted = data.isDeleted;\n result.isCustomApplication = data.isCustomApplication;\n result.applicationFlags = data.applicationFlags;\n result.guiltyFrom = data.guiltyFrom;\n result.guiltyTo = data.guiltyTo;\n result.createdOn = data.createdOn;\n result.updatedOn = data.updatedOn;\n result.templateId = data.templateId;\n result.tileId = data.rowKey;\n result.uniqueItemId = data.templateId;\n result.template = Application.from(data);\n return result;\n };\n Object.defineProperty(ModuleInfo.prototype, \"configuration\", {\n get: function () {\n if (this._routeConfiguration == null) {\n this.readRouteConfiguration();\n }\n return this._routeConfiguration;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModuleInfo.prototype, \"isHtmlApp\", {\n get: function () {\n return this.area != null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModuleInfo.prototype, \"isExternalApp\", {\n get: function () {\n return this.link != null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModuleInfo.prototype, \"embedApp\", {\n get: function () {\n if (this.isExternalApp) {\n var xml = jQuery.parseXML(this.template.settingsXml);\n var elements = xml.getElementsByTagName(\"html\");\n if (elements.length == 0)\n return false;\n var html = elements.item(0);\n if (html.hasChildNodes()) {\n for (var i = 0; i < html.childNodes.length; i++) {\n var node = html.childNodes.item(i);\n if (node.nodeName === \"embed\") {\n return node.textContent === \"true\" ? true : false;\n }\n }\n }\n }\n return true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModuleInfo.prototype, \"area\", {\n get: function () {\n var xml = jQuery.parseXML(this.template.settingsXml);\n var elements = xml.getElementsByTagName(\"html\");\n if (elements.length == 0)\n return null;\n var html = elements.item(0);\n if (html.hasChildNodes()) {\n for (var i = 0; i < html.childNodes.length; i++) {\n var node = html.childNodes.item(i);\n if (node.nodeName == \"area\")\n return node.textContent;\n }\n }\n return null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ModuleInfo.prototype, \"link\", {\n get: function () {\n var xml = jQuery.parseXML(this.template.settingsXml);\n var url = this.template.target;\n // prüfen ob es ein externer Aufruf ist\n var type = this.getXmlTextContent(xml, \"typename\");\n if (type != null)\n return null;\n return this.appendUrl(url);\n },\n enumerable: true,\n configurable: true\n });\n // #region url manipulation\n ModuleInfo.prototype.appendUrl = function (url) {\n var xml = jQuery.parseXML(this.template.settingsXml);\n // prüfen ob das token anzuhängen ist\n var appendToken = this.getXmlTextContent(xml, \"appendtokenid\");\n if (appendToken != null && appendToken == \"true\") {\n url = this.appendToken(url);\n }\n // prüfen ob die orgid anzuhängen ist\n var appendOrgId = this.getXmlTextContent(xml, \"appendorgid\");\n if (appendOrgId != null && appendOrgId == \"true\") {\n url = this.appendOrganizationId(url);\n }\n // prüfen ob die orgid anzuhängen ist\n var appendsubdomain = this.getXmlTextContent(xml, \"appendsubdomain\");\n if (appendsubdomain != null && appendsubdomain == \"true\") {\n url = this.appendsubdomain(url);\n }\n // Adding IdToken & AccessToken to url\n var appendTokens = this.getXmlTextContent(xml, \"appendTokens\");\n if (appendTokens != null && appendTokens == \"true\") {\n url = this.appendBothToken(url);\n }\n return url;\n };\n ModuleInfo.prototype.appendToken = function (url) {\n var tokenId = jQuery.base64.encode(Account.Session.getSessionId(), true);\n var appendee = url.indexOf(\"?\") > -1 ? \"&\" : \"?\";\n return url + appendee + \"tokenId=\" + tokenId;\n };\n ModuleInfo.prototype.appendOrganizationId = function (url) {\n var orgId = jQuery.base64.encode(Account.Principal.current.organizationId, true);\n var appendee = url.indexOf(\"?\") > -1 ? \"&\" : \"?\";\n return url + appendee + \"orgId=\" + orgId;\n };\n ModuleInfo.prototype.appendsubdomain = function (url) {\n var subdomain = window.location.hostname.substring(0, window.location.hostname.indexOf(\".\"));\n var updatedUrl = url.replace(\"practicesubdomain\", subdomain);\n return updatedUrl;\n };\n ModuleInfo.prototype.appendBothToken = function (url) {\n var appendee = url.substr(-1) == \"/\" ? \"\" : \"/\";\n var idToken = localStorage.getItem('idToken');\n var accessToken = sessionStorage.getItem(\"accessToken\");\n return url + appendee + \"#id_token=\" + idToken + \"&access_token=\" + accessToken;\n };\n // #endregion\n // #region tools\n ModuleInfo.prototype.readRouteConfiguration = function () {\n this._routeConfiguration = this.getHtmlConfiguration();\n this._routeConfiguration.title = this.name;\n //this._routeConfiguration.isNavigationVisible = this.isMainApplication;\n this._routeConfiguration.isNavigationVisible = false;\n // set route data\n //var name: string = this.originalName.replace(/ /g, \"\").replace(/\\//g, \"\").toLowerCase();\n var name = this.name.replace(/ /g, \"\").replace(/\\//g, \"\").toLowerCase();\n if (this._routeConfiguration.area == null) {\n this._routeConfiguration.route = \"silverlight/\" + name;\n this._routeConfiguration.moduleId = \"appcenter/viewmodels/silverlight\";\n }\n else if (this._routeConfiguration.isNavigationVisible) {\n this._routeConfiguration.route = name;\n this._routeConfiguration.moduleId = this._routeConfiguration.area + \"/viewmodels/\" + this._routeConfiguration.viewModel;\n }\n else {\n this._routeConfiguration.route = \"meineapps/\" + name;\n this._routeConfiguration.moduleId = this._routeConfiguration.area + \"/viewmodels/\" + this._routeConfiguration.viewModel;\n }\n };\n ModuleInfo.prototype.getHtmlConfiguration = function () {\n var xml = jQuery.parseXML(this.template.settingsXml);\n var configuration = new ModuleRouteConfiguration();\n var elements = xml.getElementsByTagName(\"html\");\n if (elements.length === 0)\n return configuration;\n var html = elements.item(0);\n if (html.hasChildNodes()) {\n for (var i = 0; i < html.childNodes.length; i++) {\n var node = html.childNodes.item(i);\n if (node.nodeName === \"area\") {\n configuration.area = node.textContent;\n if (configuration.viewModel == null)\n configuration.viewModel = \"index\";\n }\n if (node.nodeName === \"viewModel\")\n configuration.viewModel = node.textContent;\n if (node.nodeName === \"deepLinks\") {\n configuration.deepLinks = new Array();\n for (var n = 0; n < node.childNodes.length; n++) {\n var routeNode = node.childNodes.item(n);\n var route = new ChildRouteConfiguration();\n for (var x = 0; x < routeNode.childNodes.length; x++) {\n var temp = routeNode.childNodes.item(x);\n if (temp.nodeName === \"path\") {\n route.path = temp.textContent;\n }\n if (temp.nodeName === \"module\") {\n route.module = temp.textContent;\n }\n }\n configuration.deepLinks.push(route);\n }\n }\n }\n }\n return configuration;\n };\n ModuleInfo.prototype.getXmlTextContent = function (xml, symbol) {\n var elements = xml.getElementsByTagName(symbol);\n if (elements.length !== 0) {\n var type = elements.item(0);\n if (type.textContent !== \"\")\n return type.textContent;\n }\n return null;\n };\n return ModuleInfo;\n }());\n exports.ModuleInfo = ModuleInfo;\n var PortalUri = (function () {\n function PortalUri() {\n }\n PortalUri.mapToUniqueItemId = function (uri) {\n var source = decodeURI(uri).toLowerCase().replace(\"+\", \" \");\n if (source.indexOf(\"portal://auswertung online\") >= 0) {\n return \"080F72D5-8A6A-4C54-B10D-5648B6F093E2\";\n }\n else if (source.indexOf(\"portal://benutzerdaten verwalten\") >= 0) {\n return \"BB0BD3A1-8F77-4775-95E8-4A9A36855EEE\";\n }\n else if (source.indexOf(\"portal://postfach\") >= 0) {\n return \"1E08B4CF-3BAA-49E9-B266-AD8A8AA984DC\";\n }\n else if (source.indexOf(\"portal://portal individualisierung\") >= 0) {\n return \"E1439353-11EA-4820-85DE-7B2FFFD93753\";\n }\n return null;\n };\n return PortalUri;\n }());\n exports.PortalUri = PortalUri;\n});\n// #endregion \n;\n", "define('services/jsonconverter',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var JsonConverter = (function () {\n function JsonConverter() {\n }\n JsonConverter.prototype.convertPropertyNamesToCamelCase = function (item) {\n var _this = this;\n if (item == null)\n return item;\n if (item instanceof Array) {\n item.forEach(function (i) {\n _this.convertPropertyNamesToCamelCase(i);\n });\n return item;\n }\n if (typeof item != \"object\")\n return item;\n var properties = Object.getOwnPropertyNames(item);\n properties.forEach(function (property) {\n var firstSign = property.substring(0, 1).toLowerCase();\n var propertyName = firstSign + property.substring(1, property.length);\n if (propertyName != property) {\n var value = item[property];\n if (value != null && typeof value == \"object\") {\n value = _this.convertPropertyNamesToCamelCase(value);\n }\n Object.defineProperty(item, propertyName, {\n configurable: true,\n enumerable: true,\n get: function () { return value; },\n set: function (data) { value = data; }\n });\n // remove old property\n delete item[property];\n }\n });\n return item;\n };\n JsonConverter.prototype.convertPropertyNamesToPascalCase = function (item) {\n var _this = this;\n if (item == null)\n return item;\n if (item instanceof Array) {\n item.forEach(function (i) {\n _this.convertPropertyNamesToPascalCase(i);\n });\n return item;\n }\n if (typeof item != \"object\")\n return item;\n var properties = Object.getOwnPropertyNames(item);\n properties.forEach(function (property) {\n var firstSign = property.substring(0, 1).toUpperCase();\n var propertyName = firstSign + property.substring(1, property.length);\n if (propertyName != property) {\n var value = item[property];\n if (value != null && typeof value == \"object\") {\n value = _this.convertPropertyNamesToPascalCase(value);\n }\n Object.defineProperty(item, propertyName, {\n configurable: true,\n enumerable: true,\n get: function () { return value; },\n set: function (data) { value = data; }\n });\n // remove old property\n delete item[property];\n }\n });\n return item;\n };\n // extends 'from' object with members from 'to'. If 'to' is null, a deep clone of 'from' is returned\n JsonConverter.prototype.extend = function (from, to) {\n if (from == null || typeof from != \"object\")\n return from;\n // if (from.constructor != Object && from.constructor != Array) return from;\n if (from.constructor == Date || from.constructor == RegExp || from.constructor == Function ||\n from.constructor == String || from.constructor == Number || from.constructor == Boolean)\n return new from.constructor(from);\n if (from._isAMomentObject != null) {\n return moment(from);\n }\n to = to || new from.constructor();\n for (var name in from) {\n to[name] = typeof to[name] == \"undefined\" ? this.extend(from[name], null) : from[name];\n }\n return to;\n };\n return JsonConverter;\n }());\n return JsonConverter;\n});\n\n", "/// <reference path=\"../../Scripts/typings/jquery/jquery.d.ts\" />\n/// <reference path=\"../../Scripts/typings/q/Q.d.ts\" />\ndefine('services/httpclient',[\"require\", \"exports\", \"models/account\", \"services/jsonconverter\", \"services/settings\"], function (require, exports, Account, JsonConverter, configuration) {\n \"use strict\";\n (function (ServiceTarget) {\n ServiceTarget[ServiceTarget[\"local\"] = 0] = \"local\";\n ServiceTarget[ServiceTarget[\"portalApi\"] = 1] = \"portalApi\";\n ServiceTarget[ServiceTarget[\"chat\"] = 2] = \"chat\";\n ServiceTarget[ServiceTarget[\"publicApi\"] = 3] = \"publicApi\";\n ServiceTarget[ServiceTarget[\"oneClickServiceApi\"] = 4] = \"oneClickServiceApi\";\n ServiceTarget[ServiceTarget[\"clientPortalApi\"] = 5] = \"clientPortalApi\";\n })(exports.ServiceTarget || (exports.ServiceTarget = {}));\n var ServiceTarget = exports.ServiceTarget;\n var Channel = (function () {\n function Channel(convertToCamelCase) {\n if (convertToCamelCase === void 0) { convertToCamelCase = true; }\n this._convertToCamelCase = convertToCamelCase;\n }\n Channel.prototype.getData = function (url, location) {\n return this.send(url, location, \"GET\", null, false);\n };\n Channel.prototype.getDataAsync = function (url, location) {\n return Q(this.send(url, location, \"GET\", null, true));\n };\n Channel.prototype.postData = function (url, location, data) {\n return this.send(url, location, \"POST\", data, false);\n };\n Channel.prototype.postDataAsync = function (url, location, data) {\n return Q(this.send(url, location, \"POST\", data, true));\n };\n Channel.prototype.postFileAsync = function (url, location, data) {\n var target = this.extendUrl(url, location);\n var result = jQuery.ajax({\n url: target,\n cache: false,\n contentType: false,\n processData: false,\n async: true,\n data: data,\n type: 'POST',\n beforeSend: function (req) {\n if (Account.Session.isAuthenticated) {\n req.setRequestHeader(\"Authorization\", Account.Session.getAuthorizationHeader());\n }\n }\n });\n return Q(result);\n };\n Channel.prototype.putData = function (url, location, data) {\n return this.send(url, location, \"PUT\", data, false);\n };\n Channel.prototype.putDataAsync = function (url, location, data) {\n return Q(this.send(url, location, \"PUT\", data, true));\n };\n Channel.prototype.deleteData = function (url, location, data) {\n return this.send(url, location, \"DELETE\", data, false);\n };\n Channel.prototype.deleteDataAsync = function (url, location, data) {\n return Q(this.send(url, location, \"DELETE\", data, true));\n };\n Channel.prototype.send = function (url, location, type, data, async) {\n var converter = new JsonConverter();\n var target = this.extendUrl(url, location);\n var content = converter.extend(data, null);\n content = converter.convertPropertyNamesToPascalCase(content);\n var options = this.getAjaxOptions(type, content, async);\n var response = jQuery.ajax(target, options);\n if (this._convertToCamelCase) {\n response.then(function (result) {\n new JsonConverter().convertPropertyNamesToCamelCase(result);\n });\n }\n return response;\n };\n Channel.prototype.getAjaxOptions = function (type, data, async) {\n var contentType = 'application/json';\n if (data != null && typeof data == \"string\") {\n contentType = 'text/plain';\n }\n var options = {\n async: async,\n context: this,\n type: type,\n contentType: contentType,\n beforeSend: function (req) {\n //req.setRequestHeader(\"Origin\", configuration.Settings.getScope());\n if (Account.Session.isAuthenticated) {\n req.setRequestHeader(\"Authorization\", Account.Session.getAuthorizationHeader());\n }\n }\n };\n if (data != null) {\n if (typeof data == \"string\") {\n options.data = data;\n }\n else {\n options.data = JSON.stringify(data);\n }\n }\n return options;\n };\n Channel.prototype.extendUrl = function (url, location) {\n switch (location) {\n case ServiceTarget.local:\n return this.makeLocalUrl(url);\n case ServiceTarget.portalApi:\n return this.makeServiceUrl(url);\n case ServiceTarget.chat:\n return this.makeChatUrl(url);\n case ServiceTarget.publicApi:\n return this.makePublicApiUrl(url);\n case ServiceTarget.oneClickServiceApi:\n return this.makeOneClickServicesApiUrl(url);\n case ServiceTarget.clientPortalApi:\n return this.makeClientPortalApiUrl(url);\n //return this.makeServiceUrl(url);\n default:\n return url;\n }\n };\n Channel.prototype.makeLocalUrl = function (url) {\n return configuration.Settings.getLocalPath() + url;\n };\n Channel.prototype.makeServiceUrl = function (path) {\n return configuration.Settings.getApiFor(path);\n };\n Channel.prototype.makeChatUrl = function (url) {\n return configuration.Settings.getApiForChat() + url;\n };\n Channel.prototype.makePublicApiUrl = function (path) {\n return configuration.Settings.getPublicApiFor(path);\n };\n Channel.prototype.makeOneClickServicesApiUrl = function (url) {\n return configuration.Settings.getOneClickServicesApi(url);\n };\n Channel.prototype.makeClientPortalApiUrl = function (url) {\n return configuration.Settings.getClientPortalApi(url);\n };\n return Channel;\n }());\n exports.Channel = Channel;\n});\n\n", "define('services/trace',[\"require\", \"exports\", \"durandal/system\"], function (require, exports, system) {\n \"use strict\";\n function trace(message, data, source, showToast) {\n write(message, data, source, showToast, 'info');\n }\n exports.trace = trace;\n function traceInformation(message) {\n write(message, null, null, true, 'info');\n }\n exports.traceInformation = traceInformation;\n function traceWarning(message) {\n write(message, null, null, true, 'warning');\n }\n exports.traceWarning = traceWarning;\n function traceError(message, data, source, showToast) {\n if (data === void 0) { data = null; }\n if (source === void 0) { source = null; }\n if (showToast === void 0) { showToast = true; }\n write(message, data, source, showToast, 'error');\n }\n exports.traceError = traceError;\n function write(message, data, source, showToast, toastType) {\n source = source ? '[' + source + '] ' : '';\n if (data) {\n system.log(source, message, data);\n }\n else {\n system.log(source, message);\n }\n if (showToast) {\n if (toastType === 'error') {\n toastr.error(message);\n }\n else {\n toastr.info(message);\n }\n }\n }\n});\n\n", "define('common/string',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var String;\n (function (String) {\n function contains(source, symbol) {\n if (source == null || symbol == null)\n return false;\n return source.indexOf(symbol) > -1;\n }\n String.contains = contains;\n function startsWith(sourceString, startWith) {\n var result;\n if (sourceString != null && startWith != null && sourceString.length >= startWith.length) {\n if (sourceString.indexOf(startWith) == 0) {\n result = true;\n }\n else {\n result = false;\n }\n }\n else {\n result = false;\n }\n return result;\n }\n String.startsWith = startsWith;\n function endsWith(sourceString, endWith) {\n var result;\n if (sourceString != null && endWith != null && sourceString.length >= endWith.length) {\n var startIndexOfPossibleFound = sourceString.length - endWith.length;\n if (sourceString.lastIndexOf(endWith) == startIndexOfPossibleFound) {\n result = true;\n }\n else {\n result = false;\n }\n }\n else {\n result = false;\n }\n return result;\n }\n String.endsWith = endsWith;\n function isNullOrEmpty(sourceString) {\n if (sourceString == null || sourceString == undefined || sourceString.length === 0) {\n return true;\n }\n return false;\n }\n String.isNullOrEmpty = isNullOrEmpty;\n function htmlEscape(value) {\n return value\n .replace(/&/g, '')\n .replace(/%/g, '')\n .replace(/#/g, '')\n .replace(/:/g, '')\n .replace(/\"/g, '')\n .replace(/'/g, '')\n .replace(/</g, '')\n .replace(/\\+/g, '')\n .replace(/>/g, '');\n }\n String.htmlEscape = htmlEscape;\n function removeEmptyCharactersFromBeginningOfString(value) {\n if (String.isNullOrEmpty(value))\n return \"\";\n while (value.indexOf(\" \") === 0) {\n value = value.substring(1, value.length);\n }\n return value;\n }\n String.removeEmptyCharactersFromBeginningOfString = removeEmptyCharactersFromBeginningOfString;\n function getAnyCharactersButExcludeExpressions(value, expressions) {\n if (expressions == null || expressions.length == 0)\n return \"\";\n expressions.forEach(function (expression) {\n if (expression.test(value)) {\n var res = expression.exec(value)[0];\n value = value.replace(res, \"\");\n }\n });\n return value;\n }\n String.getAnyCharactersButExcludeExpressions = getAnyCharactersButExcludeExpressions;\n function getValueFromExpression(value, expression) {\n var result = \"\";\n if (expression.test(value)) {\n result = expression.exec(value)[1];\n }\n return result;\n }\n String.getValueFromExpression = getValueFromExpression;\n function getExtensionFromFileName(name) {\n var fileParts = name.split(\".\") || \"\";\n var fileExtension = fileParts[fileParts.length - 1];\n return fileExtension;\n }\n String.getExtensionFromFileName = getExtensionFromFileName;\n })(String || (String = {}));\n return String;\n});\n\n", "/**\r\n * Durandal 2.2.0 Copyright (c) 2010-2016 Blue Spire Consulting, Inc. All Rights Reserved.\r\n * Available via the MIT license.\r\n * see: http://durandaljs.com or https://github.com/BlueSpire/Durandal for details.\r\n */\r\n/**\r\n * The dialog module enables the display of message boxes, custom modal dialogs and other overlays or slide-out UI abstractions. Dialogs are constructed by the composition system which interacts with a user defined dialog context. The dialog module enforced the activator lifecycle.\r\n * @module dialog\r\n * @requires system\r\n * @requires app\r\n * @requires composition\r\n * @requires activator\r\n * @requires viewEngine\r\n * @requires jquery\r\n * @requires knockout\r\n */\r\ndefine('plugins/dialog',['durandal/system', 'durandal/app', 'durandal/composition', 'durandal/activator', 'durandal/viewEngine', 'jquery', 'knockout'], function (system, app, composition, activator, viewEngine, $, ko) {\r\n var contexts = {},\r\n dialogCount = ko.observable(0),\r\n dialog;\r\n\r\n /**\r\n * Models a message box's message, title and options.\r\n * @class MessageBox\r\n */\r\n var MessageBox = function (message, title, options, autoclose, settings) {\r\n this.message = message;\r\n this.title = title || MessageBox.defaultTitle;\r\n this.options = options || MessageBox.defaultOptions;\r\n this.autoclose = autoclose || false;\r\n this.settings = $.extend({}, MessageBox.defaultSettings, settings);\r\n };\r\n\r\n /**\r\n * Selects an option and closes the message box, returning the selected option through the dialog system's promise.\r\n * @method selectOption\r\n * @param {string} dialogResult The result to select.\r\n */\r\n MessageBox.prototype.selectOption = function (dialogResult) {\r\n dialog.close(this, dialogResult);\r\n };\r\n\r\n /**\r\n * Provides the view to the composition system.\r\n * @method getView\r\n * @return {DOMElement} The view of the message box.\r\n */\r\n MessageBox.prototype.getView = function () {\r\n return viewEngine.processMarkup(MessageBox.defaultViewMarkup);\r\n };\r\n\r\n /**\r\n * Configures a custom view to use when displaying message boxes.\r\n * @method setViewUrl\r\n * @param {string} viewUrl The view url relative to the base url which the view locator will use to find the message box's view.\r\n * @static\r\n */\r\n MessageBox.setViewUrl = function (viewUrl) {\r\n delete MessageBox.prototype.getView;\r\n MessageBox.prototype.viewUrl = viewUrl;\r\n };\r\n\r\n /**\r\n * The title to be used for the message box if one is not provided.\r\n * @property {string} defaultTitle\r\n * @default Application\r\n * @static\r\n */\r\n MessageBox.defaultTitle = app.title || 'Application';\r\n\r\n /**\r\n * The options to display in the message box if none are specified.\r\n * @property {string[]} defaultOptions\r\n * @default ['Ok']\r\n * @static\r\n */\r\n MessageBox.defaultOptions = ['Ok'];\r\n\r\n \r\n MessageBox.defaultSettings = { buttonClass: \"btn btn-default\", primaryButtonClass: \"btn-primary autofocus\", secondaryButtonClass: \"\", \"class\": \"modal-content messageBox\", style: null };\r\n\r\n /**\r\n * Sets the classes and styles used throughout the message box markup.\r\n * @method setDefaults\r\n * @param {object} settings A settings object containing the following optional properties: buttonClass, primaryButtonClass, secondaryButtonClass, class, style.\r\n */\r\n MessageBox.setDefaults = function (settings) {\r\n $.extend(MessageBox.defaultSettings, settings);\r\n };\r\n\r\n MessageBox.prototype.getButtonClass = function ($index) {\r\n var c = \"\";\r\n if (this.settings) {\r\n if (this.settings.buttonClass) {\r\n c = this.settings.buttonClass;\r\n }\r\n if ($index() === 0 && this.settings.primaryButtonClass) {\r\n if (c.length > 0) {\r\n c += \" \";\r\n }\r\n c += this.settings.primaryButtonClass;\r\n }\r\n if ($index() > 0 && this.settings.secondaryButtonClass) {\r\n if (c.length > 0) {\r\n c += \" \";\r\n }\r\n c += this.settings.secondaryButtonClass;\r\n }\r\n }\r\n return c;\r\n };\r\n\r\n MessageBox.prototype.getClass = function () {\r\n if (this.settings) {\r\n return this.settings[\"class\"];\r\n }\r\n return \"messageBox\";\r\n };\r\n\r\n MessageBox.prototype.getStyle = function () {\r\n if (this.settings) {\r\n return this.settings.style;\r\n }\r\n return null;\r\n };\r\n\r\n MessageBox.prototype.getButtonText = function (stringOrObject) {\r\n var t = $.type(stringOrObject);\r\n if (t === \"string\") {\r\n return stringOrObject;\r\n }\r\n else if (t === \"object\") {\r\n if ($.type(stringOrObject.text) === \"string\") {\r\n return stringOrObject.text;\r\n } else {\r\n system.error('The object for a MessageBox button does not have a text property that is a string.');\r\n return null;\r\n }\r\n }\r\n system.error('Object for a MessageBox button is not a string or object but ' + t + '.');\r\n return null;\r\n };\r\n\r\n MessageBox.prototype.getButtonValue = function (stringOrObject) {\r\n var t = $.type(stringOrObject);\r\n if (t === \"string\") {\r\n return stringOrObject;\r\n }\r\n else if (t === \"object\") {\r\n if ($.type(stringOrObject.value) === \"undefined\") {\r\n system.error('The object for a MessageBox button does not have a value property defined.');\r\n return null;\r\n } else {\r\n return stringOrObject.value;\r\n }\r\n }\r\n system.error('Object for a MessageBox button is not a string or object but ' + t + '.');\r\n return null;\r\n };\r\n\r\n /**\r\n * The markup for the message box's view.\r\n * @property {string} defaultViewMarkup\r\n * @static\r\n */\r\n MessageBox.defaultViewMarkup = [\r\n '<div data-view=\"plugins/messageBox\" data-bind=\"css: getClass(), style: getStyle()\">',\r\n '<div class=\"modal-header\">',\r\n '<h3 data-bind=\"html: title\"></h3>',\r\n '</div>',\r\n '<div class=\"modal-body\">',\r\n '<p class=\"message\" data-bind=\"html: message\"></p>',\r\n '</div>',\r\n '<div class=\"modal-footer\">',\r\n '<!-- ko foreach: options -->',\r\n '<button data-bind=\"click: function () { $parent.selectOption($parent.getButtonValue($data)); }, text: $parent.getButtonText($data), css: $parent.getButtonClass($index)\"></button>',\r\n '<!-- /ko -->',\r\n '<div style=\"clear:both;\"></div>',\r\n '</div>',\r\n '</div>'\r\n ].join('\\n');\r\n\r\n function ensureDialogInstance(objOrModuleId) {\r\n return system.defer(function (dfd) {\r\n if (system.isString(objOrModuleId)) {\r\n system.acquire(objOrModuleId).then(function (module) {\r\n dfd.resolve(system.resolveObject(module));\r\n }).fail(function (err) {\r\n system.error('Failed to load dialog module (' + objOrModuleId + '). Details: ' + err.message);\r\n });\r\n } else {\r\n dfd.resolve(objOrModuleId);\r\n }\r\n }).promise();\r\n }\r\n\r\n /**\r\n * @class DialogModule\r\n * @static\r\n */\r\n dialog = {\r\n /**\r\n * The constructor function used to create message boxes.\r\n * @property {MessageBox} MessageBox\r\n */\r\n MessageBox: MessageBox,\r\n /**\r\n * The css zIndex that the last dialog was displayed at.\r\n * @property {number} currentZIndex\r\n */\r\n currentZIndex: 1050,\r\n /**\r\n * Gets the next css zIndex at which a dialog should be displayed.\r\n * @method getNextZIndex\r\n * @return {number} The next usable zIndex.\r\n */\r\n getNextZIndex: function () {\r\n return ++this.currentZIndex;\r\n },\r\n /**\r\n * Determines whether or not there are any dialogs open.\r\n * @method isOpen\r\n * @return {boolean} True if a dialog is open. false otherwise.\r\n */\r\n isOpen: ko.computed(function() {\r\n return dialogCount() > 0;\r\n }),\r\n /**\r\n * Gets the dialog context by name or returns the default context if no name is specified.\r\n * @method getContext\r\n * @param {string} [name] The name of the context to retrieve.\r\n * @return {DialogContext} True context.\r\n */\r\n getContext: function (name) {\r\n return contexts[name || 'default'];\r\n },\r\n /**\r\n * Adds (or replaces) a dialog context.\r\n * @method addContext\r\n * @param {string} name The name of the context to add.\r\n * @param {DialogContext} dialogContext The context to add.\r\n */\r\n addContext: function (name, dialogContext) {\r\n dialogContext.name = name;\r\n contexts[name] = dialogContext;\r\n\r\n var helperName = 'show' + name.substr(0, 1).toUpperCase() + name.substr(1);\r\n this[helperName] = function (obj, activationData) {\r\n return this.show(obj, activationData, name);\r\n };\r\n },\r\n createCompositionSettings: function (obj, dialogContext) {\r\n var settings = {\r\n model: obj,\r\n activate: false,\r\n transition: false\r\n };\r\n\r\n if (dialogContext.binding) {\r\n settings.binding = dialogContext.binding;\r\n }\r\n\r\n if (dialogContext.attached) {\r\n settings.attached = dialogContext.attached;\r\n }\r\n\r\n if (dialogContext.compositionComplete) {\r\n settings.compositionComplete = dialogContext.compositionComplete;\r\n }\r\n\r\n return settings;\r\n },\r\n /**\r\n * Gets the dialog model that is associated with the specified object.\r\n * @method getDialog\r\n * @param {object} obj The object for whom to retrieve the dialog.\r\n * @return {Dialog} The dialog model.\r\n */\r\n getDialog: function (obj) {\r\n if (obj) {\r\n return obj.__dialog__;\r\n }\r\n\r\n return undefined;\r\n },\r\n /**\r\n * Closes the dialog associated with the specified object.\r\n * @method close\r\n * @param {object} obj The object whose dialog should be closed.\r\n * @param {object} results* The results to return back to the dialog caller after closing.\r\n */\r\n close: function (obj) {\r\n var theDialog = this.getDialog(obj);\r\n if (theDialog) {\r\n var rest = Array.prototype.slice.call(arguments, 1);\r\n theDialog.close.apply(theDialog, rest);\r\n }\r\n },\r\n /**\r\n * Shows a dialog.\r\n * @method show\r\n * @param {object|string} obj The object (or moduleId) to display as a dialog.\r\n * @param {object} [activationData] The data that should be passed to the object upon activation.\r\n * @param {string} [context] The name of the dialog context to use. Uses the default context if none is specified.\r\n * @return {Promise} A promise that resolves when the dialog is closed and returns any data passed at the time of closing.\r\n */\r\n show: function (obj, activationData, context) {\r\n var that = this;\r\n var dialogContext = contexts[context || 'default'];\r\n\r\n return system.defer(function (dfd) {\r\n ensureDialogInstance(obj).then(function (instance) {\r\n var dialogActivator = activator.create();\r\n\r\n dialogActivator.activateItem(instance, activationData).then(function (success) {\r\n if (success) {\r\n var theDialog = instance.__dialog__ = {\r\n owner: instance,\r\n context: dialogContext,\r\n activator: dialogActivator,\r\n close: function () {\r\n var args = arguments;\r\n dialogActivator.deactivateItem(instance, true).then(function (closeSuccess) {\r\n if (closeSuccess) {\r\n dialogCount(dialogCount() - 1);\r\n dialogContext.removeHost(theDialog);\r\n delete instance.__dialog__;\r\n\r\n if (args.length === 0) {\r\n dfd.resolve();\r\n } else if (args.length === 1) {\r\n dfd.resolve(args[0]);\r\n } else {\r\n dfd.resolve.apply(dfd, args);\r\n }\r\n }\r\n });\r\n }\r\n };\r\n\r\n theDialog.settings = that.createCompositionSettings(instance, dialogContext);\r\n dialogContext.addHost(theDialog);\r\n\r\n dialogCount(dialogCount() + 1);\r\n composition.compose(theDialog.host, theDialog.settings);\r\n } else {\r\n dfd.resolve(false);\r\n }\r\n });\r\n });\r\n }).promise();\r\n },\r\n /**\r\n * Shows a message box.\r\n * @method showMessage\r\n * @param {string} message The message to display in the dialog.\r\n * @param {string} [title] The title message.\r\n * @param {string[]} [options] The options to provide to the user.\r\n * @param {boolean} [autoclose] Automatically close the the message box when clicking outside?\r\n * @param {Object} [settings] Custom settings for this instance of the messsage box, used to change classes and styles.\r\n * @return {Promise} A promise that resolves when the message box is closed and returns the selected option.\r\n */\r\n showMessage: function (message, title, options, autoclose, settings) {\r\n if (system.isString(this.MessageBox)) {\r\n return dialog.show(this.MessageBox, [\r\n message,\r\n title || MessageBox.defaultTitle,\r\n options || MessageBox.defaultOptions,\r\n autoclose || false,\r\n settings || {}\r\n ]);\r\n }\r\n\r\n return dialog.show(new this.MessageBox(message, title, options, autoclose, settings));\r\n },\r\n /**\r\n * Installs this module into Durandal; called by the framework. Adds `app.showDialog` and `app.showMessage` convenience methods.\r\n * @method install\r\n * @param {object} [config] Add a `messageBox` property to supply a custom message box constructor. Add a `messageBoxView` property to supply custom view markup for the built-in message box. You can also use messageBoxViewUrl to specify the view url.\r\n */\r\n install: function (config) {\r\n app.showDialog = function (obj, activationData, context) {\r\n return dialog.show(obj, activationData, context);\r\n };\r\n\r\n app.closeDialog = function () {\r\n return dialog.close.apply(dialog, arguments);\r\n };\r\n\r\n app.showMessage = function (message, title, options, autoclose, settings) {\r\n return dialog.showMessage(message, title, options, autoclose, settings);\r\n };\r\n\r\n if (config.messageBox) {\r\n dialog.MessageBox = config.messageBox;\r\n }\r\n\r\n if (config.messageBoxView) {\r\n dialog.MessageBox.prototype.getView = function () {\r\n return viewEngine.processMarkup(config.messageBoxView);\r\n };\r\n }\r\n\r\n if (config.messageBoxViewUrl) {\r\n dialog.MessageBox.setViewUrl(config.messageBoxViewUrl);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * @class DialogContext\r\n */\r\n dialog.addContext('default', {\r\n blockoutOpacity: 0.2,\r\n removeDelay: 200,\r\n minYMargin: 5,\r\n minXMargin: 5,\r\n /**\r\n * In this function, you are expected to add a DOM element to the tree which will serve as the \"host\" for the modal's composed view. You must add a property called host to the modalWindow object which references the dom element. It is this host which is passed to the composition module.\r\n * @method addHost\r\n * @param {Dialog} theDialog The dialog model.\r\n */\r\n addHost: function (theDialog) {\r\n var body = $('body');\r\n var blockout = $('<div class=\"modalBlockout\"></div>')\r\n .css({ 'z-index': dialog.getNextZIndex(), 'opacity': this.blockoutOpacity })\r\n .appendTo(body);\r\n\r\n var host = $('<div class=\"modalHost\"></div>')\r\n .css({ 'z-index': dialog.getNextZIndex() })\r\n .appendTo(body);\r\n\r\n theDialog.host = host.get(0);\r\n theDialog.blockout = blockout.get(0);\r\n\r\n if (!dialog.isOpen()) {\r\n theDialog.oldBodyMarginRight = body.css(\"margin-right\");\r\n theDialog.oldInlineMarginRight = body.get(0).style.marginRight;\r\n\r\n var html = $(\"html\");\r\n var oldBodyOuterWidth = body.outerWidth(true);\r\n var oldScrollTop = html.scrollTop();\r\n $(\"html\").css(\"overflow-y\", \"hidden\");\r\n var newBodyOuterWidth = $(\"body\").outerWidth(true);\r\n body.css(\"margin-right\", (newBodyOuterWidth - oldBodyOuterWidth + parseInt(theDialog.oldBodyMarginRight, 10)) + \"px\");\r\n html.scrollTop(oldScrollTop); // necessary for Firefox\r\n }\r\n },\r\n /**\r\n * This function is expected to remove any DOM machinery associated with the specified dialog and do any other necessary cleanup.\r\n * @method removeHost\r\n * @param {Dialog} theDialog The dialog model.\r\n */\r\n removeHost: function (theDialog) {\r\n $(theDialog.host).css('opacity', 0);\r\n $(theDialog.blockout).css('opacity', 0);\r\n\r\n setTimeout(function () {\r\n ko.removeNode(theDialog.host);\r\n ko.removeNode(theDialog.blockout);\r\n }, this.removeDelay);\r\n\r\n if (!dialog.isOpen()) {\r\n var html = $(\"html\");\r\n var oldScrollTop = html.scrollTop(); // necessary for Firefox.\r\n html.css(\"overflow-y\", \"\").scrollTop(oldScrollTop);\r\n\r\n if (theDialog.oldInlineMarginRight) {\r\n $(\"body\").css(\"margin-right\", theDialog.oldBodyMarginRight);\r\n } else {\r\n $(\"body\").css(\"margin-right\", '');\r\n }\r\n }\r\n },\r\n attached: function (view) {\r\n //To prevent flickering in IE8, we set visibility to hidden first, and later restore it\r\n $(view).css(\"visibility\", \"hidden\");\r\n },\r\n /**\r\n * This function is called after the modal is fully composed into the DOM, allowing your implementation to do any final modifications, such as positioning or animation. You can obtain the original dialog object by using `getDialog` on context.model.\r\n * @method compositionComplete\r\n * @param {DOMElement} child The dialog view.\r\n * @param {DOMElement} parent The parent view.\r\n * @param {object} context The composition context.\r\n */\r\n compositionComplete: function (child, parent, context) {\r\n var theDialog = dialog.getDialog(context.model);\r\n var $child = $(child);\r\n var loadables = $child.find(\"img\").filter(function () {\r\n //Remove images with known width and height\r\n var $this = $(this);\r\n return !(this.style.width && this.style.height) && !($this.attr(\"width\") && $this.attr(\"height\"));\r\n });\r\n\r\n $child.data(\"predefinedWidth\", $child.get(0).style.width);\r\n\r\n var setDialogPosition = function (childView, objDialog) {\r\n //Setting a short timeout is need in IE8, otherwise we could do this straight away\r\n setTimeout(function () {\r\n var $childView = $(childView);\r\n\r\n objDialog.context.reposition(childView);\r\n\r\n $(objDialog.host).css('opacity', 1);\r\n $childView.css(\"visibility\", \"visible\");\r\n\r\n $childView.find('.autofocus').first().focus();\r\n }, 1);\r\n };\r\n\r\n setDialogPosition(child, theDialog);\r\n loadables.load(function () {\r\n setDialogPosition(child, theDialog);\r\n });\r\n\r\n if ($child.hasClass('autoclose') || context.model.autoclose) {\r\n $(theDialog.blockout).click(function () {\r\n theDialog.close();\r\n });\r\n }\r\n },\r\n /**\r\n * This function is called to reposition the model view.\r\n * @method reposition\r\n * @param {DOMElement} view The dialog view.\r\n */\r\n reposition: function (view) {\r\n var $view = $(view),\r\n $window = $(window);\r\n\r\n //We will clear and then set width for dialogs without width set \r\n if (!$view.data(\"predefinedWidth\")) {\r\n $view.css({ width: '' }); //Reset width\r\n }\r\n\t\t\t\r\n\t\t\t// clear the height\r\n $view.css({ height: '' });\r\n\r\n var width = $view.outerWidth(false),\r\n height = $view.outerHeight(false),\r\n windowHeight = $window.height() - 2 * this.minYMargin, //leave at least some pixels free\r\n windowWidth = $window.width() - 2 * this.minXMargin, //leave at least some pixels free\r\n constrainedHeight = Math.min(height, windowHeight),\r\n constrainedWidth = Math.min(width, windowWidth);\r\n\r\n $view.css({\r\n 'margin-top': (-constrainedHeight / 2).toString() + 'px',\r\n 'margin-left': (-constrainedWidth / 2).toString() + 'px'\r\n });\r\n\r\n if (height > windowHeight) {\r\n $view.css(\"overflow-y\", \"auto\").outerHeight(windowHeight);\r\n } else {\r\n $view.css({\r\n \"overflow-y\": \"\",\r\n \"height\": \"\"\r\n });\r\n }\r\n\r\n if (width > windowWidth) {\r\n $view.css(\"overflow-x\", \"auto\").outerWidth(windowWidth);\r\n } else {\r\n $view.css(\"overflow-x\", \"\");\r\n\r\n if (!$view.data(\"predefinedWidth\")) {\r\n //Ensure the correct width after margin-left has been set\r\n $view.outerWidth(constrainedWidth);\r\n } else {\r\n $view.css(\"width\", $view.data(\"predefinedWidth\"));\r\n }\r\n }\r\n }\r\n });\r\n\r\n return dialog;\r\n});\r\n\n", "/// <reference path=\"../../Scripts/typings/knockout/knockout.d.ts\" />\ndefine('models/socialnetwork',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var NetworkMember = (function () {\n function NetworkMember() {\n }\n return NetworkMember;\n }());\n exports.NetworkMember = NetworkMember;\n var Contact = (function () {\n function Contact() {\n }\n return Contact;\n }());\n exports.Contact = Contact;\n var Organization = (function () {\n function Organization() {\n }\n return Organization;\n }());\n exports.Organization = Organization;\n});\n\n", "define('common/constants',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var NetworkMemberTypes = (function () {\n function NetworkMemberTypes() {\n }\n NetworkMemberTypes.getSelectableNetworkMemberTypes = function () {\n var resultList = [NetworkMemberTypes.PortalAdmin, NetworkMemberTypes.PortalGateway, NetworkMemberTypes.PortalOperator, NetworkMemberTypes.PortalServiceOperator,\n NetworkMemberTypes.ClientAdmin, NetworkMemberTypes.ClientEmployee, NetworkMemberTypes.ClientClerk,\n NetworkMemberTypes.StbAdmin, NetworkMemberTypes.StbEmployee, NetworkMemberTypes.StbGateway, NetworkMemberTypes.StbServiceLogin];\n return resultList;\n };\n NetworkMemberTypes.getNetworkMemberTypesByOrganizationType = function (organizationtype) {\n var resultList = [];\n switch (organizationtype) {\n case OrganizationTypes.Addison:\n resultList.push(NetworkMemberTypes.PortalAdmin);\n //resultList.push(NetworkMemberTypes.PortalEmployee);\n resultList.push(NetworkMemberTypes.PortalGateway);\n resultList.push(NetworkMemberTypes.PortalOperator);\n resultList.push(NetworkMemberTypes.PortalServiceOperator);\n break;\n case OrganizationTypes.Stb:\n resultList.push(NetworkMemberTypes.StbAdmin);\n resultList.push(NetworkMemberTypes.StbEmployee);\n resultList.push(NetworkMemberTypes.StbGateway);\n resultList.push(NetworkMemberTypes.StbServiceLogin);\n break;\n case OrganizationTypes.Client:\n resultList.push(NetworkMemberTypes.ClientAdmin);\n resultList.push(NetworkMemberTypes.ClientEmployee);\n resultList.push(NetworkMemberTypes.ClientClerk);\n break;\n }\n return resultList;\n };\n NetworkMemberTypes.getDisplayNameForGivenMemberType = function (memberType) {\n var result = \"\";\n switch (memberType) {\n case NetworkMemberTypes.PortalAdmin:\n result = $.t(\"app:modules.common.constant_administrator\", { ifMissing: \"ADDISON Administrator\" });\n break;\n //case NetworkMemberTypes.PortalEmployee:\n //result = \"Addison Mitarbeiter\";\n //break;\n case NetworkMemberTypes.PortalGateway:\n result = $.t(\"app:modules.common.constant_gateway\", { ifMissing: \"ADDISON Gateway\" });\n break;\n case NetworkMemberTypes.PortalOperator:\n result = $.t(\"app:modules.common.constant_portalOperator\", { ifMissing: \"ADDISON Portalsachbearbeiter\" });\n break;\n case NetworkMemberTypes.PortalPostmaster:\n result = $.t(\"app:modules.common.constant_postmaster\", { ifMissing: \"ADDISON\" });\n break;\n case NetworkMemberTypes.PortalServiceOperator:\n result = $.t(\"app:modules.common.constant_portalSupport\", { ifMissing: \"ADDISON Portalsupport\" });\n break;\n case NetworkMemberTypes.StbEmployee:\n result = $.t(\"app:modules.common.constant_employee\", { ifMissing: \"Kanzlei Arbeitnehmer\" });\n break;\n case NetworkMemberTypes.StbAdmin:\n result = $.t(\"app:modules.common.constant_stbAdmin\", { ifMissing: \"Kanzlei Administrator\" });\n break;\n case NetworkMemberTypes.StbGateway:\n result = $.t(\"app:modules.common.constant_stbGateway\", { ifMissing: \"Kanzlei Gateway\" });\n break;\n case NetworkMemberTypes.StbServiceLogin:\n result = $.t(\"app:modules.common.constant_stbServiceLogin\", { ifMissing: \"Kanzlei Support\" });\n break;\n case NetworkMemberTypes.StbPostmaster:\n result = $.t(\"app:modules.common.constant_stbPostmaster\", { ifMissing: \"Kanzlei\" });\n break;\n case NetworkMemberTypes.ClientAdmin:\n result = $.t(\"app:modules.common.constant_clientAdmin\", { ifMissing: \"Mandant Administrator\" });\n break;\n case NetworkMemberTypes.ClientPostmaster:\n result = $.t(\"app:modules.common.constant_clientPostmaster\", { ifMissing: \"Mandant\" });\n break;\n case NetworkMemberTypes.ClientEmployee:\n result = $.t(\"app:modules.common.constant_clientEmployee\", { ifMissing: \"Mandant Arbeitnehmer\" });\n break;\n case NetworkMemberTypes.ClientClerk:\n result = $.t(\"app:modules.common.constant_clientClerk\", { ifMissing: \"Mandant Portalbenutzer\" });\n break;\n }\n return result;\n };\n NetworkMemberTypes.PortalAdmin = \"add_admin\";\n NetworkMemberTypes.PortalEmployee = \"add_employee\";\n NetworkMemberTypes.PortalGateway = \"add_gateway\";\n NetworkMemberTypes.PortalPostmaster = \"add_postmaster\";\n NetworkMemberTypes.PortalOperator = \"add_operator\";\n NetworkMemberTypes.PortalServiceOperator = \"add_service\";\n NetworkMemberTypes.StbEmployee = \"stb_employee\";\n NetworkMemberTypes.StbAdmin = \"stb_admin\";\n NetworkMemberTypes.StbGateway = \"stb_gateway\";\n NetworkMemberTypes.StbServiceLogin = \"stb_servicelogin\";\n NetworkMemberTypes.StbPostmaster = \"stb_postmaster\";\n NetworkMemberTypes.ClientAdmin = \"client_admin\";\n NetworkMemberTypes.ClientPostmaster = \"client_postmaster\";\n NetworkMemberTypes.ClientEmployee = \"client_employee\";\n NetworkMemberTypes.ClientClerk = \"client_clerk\";\n return NetworkMemberTypes;\n }());\n exports.NetworkMemberTypes = NetworkMemberTypes;\n var OrganizationTypes = (function () {\n function OrganizationTypes() {\n }\n OrganizationTypes.getDisplayNameForGivenOrganizationType = function (organizationType) {\n var result = \"\";\n switch (organizationType) {\n case OrganizationTypes.Stb:\n result = $.t(\"app:modules.common.constant_taxAdvisor\", { ifMissing: \"Steuerberater\" });\n break;\n case OrganizationTypes.Client:\n result = $.t(\"app:modules.common.constant_client\", { ifMissing: \"Client\" });\n break;\n }\n return result;\n };\n OrganizationTypes.Addison = \"ADDISON\";\n OrganizationTypes.Client = \"Client\";\n OrganizationTypes.Stb = \"Stb\";\n return OrganizationTypes;\n }());\n exports.OrganizationTypes = OrganizationTypes;\n var OrganizationTypeCodes = (function () {\n function OrganizationTypeCodes() {\n }\n OrganizationTypeCodes.Addison = \"add\";\n OrganizationTypeCodes.Client = \"client\";\n OrganizationTypeCodes.Stb = \"stb\";\n return OrganizationTypeCodes;\n }());\n exports.OrganizationTypeCodes = OrganizationTypeCodes;\n var QueryString = (function () {\n function QueryString() {\n }\n QueryString.getValueByParameterName = function (name, url) {\n if (!url)\n url = window.location.href;\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\n var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url);\n if (!results)\n return null;\n if (!results[2])\n return '';\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n };\n return QueryString;\n }());\n exports.QueryString = QueryString;\n exports.ALPHABET = \"abcdefghijklmnopqrstuvwxyz\";\n exports.CONTACT_GROUP_TOP_OFFSET = 30;\n exports.ENTER_KEY_CODE = 13;\n exports.BYTE_UNITS = [' kB', ' MB', ' GB', ' TB', 'PB', 'EB', 'ZB', 'YB'];\n exports.MAIL_RECIPIENTS_CIRCLE_TEMPLATE_ID = \"e9c896f1-1804-4cf8-af94-bf067b5a3cb4\";\n exports.DEFAULT_AVATAR_PATH = \"/html/content/images/avatar.png\";\n});\n\n", "/// <reference path=\"../../Scripts/typings/jquery/jquery.d.ts\" />\n/// <reference path=\"../../Scripts/typings/q/Q.d.ts\" />\n/// <reference path=\"../../Scripts/typings/linq/linq.d.ts\" />\n/// <reference path=\"../../Scripts/typings/jquery.base64/jquery.base64.d.ts\" />\ndefine('services/applicationstorage',[\"require\", \"exports\", \"models/portal\", \"models/account\", \"common/constants\", \"services/httpclient\"], function (require, exports, Portal, Account, constants, http) {\n \"use strict\";\n var ApplicationStorage = (function () {\n function ApplicationStorage() {\n }\n ApplicationStorage.prototype.readMine = function () {\n var service = new http.Channel();\n if (ApplicationStorage._items != null) {\n return Promise.resolve(ApplicationStorage._items);\n }\n return new Promise(function (resolve, reject) {\n Q(service.getData(\"/activation/api/shop-item\", http.ServiceTarget.oneClickServiceApi))\n .then(function (data) {\n var source = Enumerable.From(data)\n .Select(function (itm) { return Portal.ModuleInfo.from(itm); })\n .ToArray();\n // TODO: nur so lange SL und HTML parallel verwendet werden !!!#\n var user = Account.Principal.current;\n if (user.memberType != constants.NetworkMemberTypes.PortalAdmin) {\n source = Enumerable.From(source)\n .Where(function (app) { return app.configuration.area != null || app.template.target.indexOf(\"Addison\") !== 0; })\n .ToArray();\n }\n ApplicationStorage._items = source;\n resolve(source);\n })\n .catch(function (error) { return reject(error); });\n });\n };\n ApplicationStorage.prototype.clear = function () {\n ApplicationStorage._items = null;\n };\n ApplicationStorage.prototype.getSettings = function (moduleName) {\n if (ApplicationStorage._items == undefined)\n return null;\n if (moduleName === \"\")\n return null;\n var item = Enumerable.From(ApplicationStorage._items)\n .Where(function (i) { return i.name.replace(/ /g, \"\").replace(/\\//g, \"\").toLowerCase() === moduleName; })\n .FirstOrDefault(null);\n if (item != null) {\n return item.settingsXml;\n }\n return null;\n };\n return ApplicationStorage;\n }());\n return ApplicationStorage;\n});\n\n", "define('common/guid',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var Guid;\n (function (Guid) {\n //Use this only at the client - never for DB PK insterts (replace at server side)\n function generate() {\n var d = new Date().getTime();\n var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = (d + Math.random() * 16) % 16 | 0;\n d = Math.floor(d / 16);\n return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16);\n });\n return uuid;\n }\n Guid.generate = generate;\n })(Guid || (Guid = {}));\n return Guid;\n});\n\n", "define('services/taskmanager',[\"require\", \"exports\", \"common/guid\"], function (require, exports, Guid) {\n \"use strict\";\n var Task = (function () {\n function Task(title, isBlockingTask, status) {\n this.id = Guid.generate();\n this.title = title;\n this.status = status;\n this.isBlockingTask = isBlockingTask;\n ko.track(this, [\"title\", \"status\"]);\n }\n return Task;\n }());\n exports.Task = Task;\n var Manager = (function () {\n function Manager() {\n var _this = this;\n this.hasRunningTasks = ko.computed(function () {\n return _this.tasks().length > 0;\n }, this);\n }\n Object.defineProperty(Manager.prototype, \"tasks\", {\n get: function () {\n return Manager._tasks;\n },\n enumerable: true,\n configurable: true\n });\n Manager.prototype.add = function (title, isBlockingTask, status) {\n if (isBlockingTask === void 0) { isBlockingTask = true; }\n if (status === void 0) { status = \"\"; }\n var task = new Task(title, isBlockingTask, status);\n this.tasks.push(task);\n return task.id;\n };\n Manager.prototype.startAsync = function (title, action) {\n var _this = this;\n var id = this.add(title);\n return action().finally(function () {\n _this.remove(id);\n });\n };\n Manager.prototype.start = function (title, action) {\n var id = this.add(title);\n action();\n this.remove(id);\n };\n Manager.prototype.startWithStatus = function (title, status) {\n var id = this.add(title, true, status);\n return id;\n };\n Manager.prototype.updateLoaderStatus = function (id, newStatus) {\n var task = ko.utils.arrayFirst(this.tasks(), function (task) {\n return task.id === id;\n });\n task.status = newStatus;\n };\n Manager.prototype.remove = function (id) {\n this.tasks.remove(function (t) { return t.id == id; });\n };\n Manager._tasks = ko.observableArray();\n return Manager;\n }());\n exports.Manager = Manager;\n});\n\n", "/**\r\n * Durandal 2.2.0 Copyright (c) 2010-2016 Blue Spire Consulting, Inc. All Rights Reserved.\r\n * Available via the MIT license.\r\n * see: http://durandaljs.com or https://github.com/BlueSpire/Durandal for details.\r\n */\r\n/**\r\n * This module is based on Backbone's core history support. It abstracts away the low level details of working with browser history and url changes in order to provide a solid foundation for a router.\r\n * @module history\r\n * @requires system\r\n * @requires jquery\r\n */\r\ndefine('plugins/history',['durandal/system', 'jquery'], function (system, $) {\r\n // Cached regex for stripping a leading hash/slash and trailing space.\r\n var routeStripper = /^[#\\/]|\\s+$/g;\r\n\r\n // Cached regex for stripping leading and trailing slashes.\r\n var rootStripper = /^\\/+|\\/+$/g;\r\n\r\n // Cached regex for detecting MSIE.\r\n var isExplorer = /msie [\\w.]+/;\r\n\r\n // Cached regex for removing a trailing slash.\r\n var trailingSlash = /\\/$/;\r\n\r\n // Update the hash location, either replacing the current entry, or adding\r\n // a new one to the browser history.\r\n function updateHash(location, fragment, replace) {\r\n if (replace) {\r\n var href = location.href.replace(/(javascript:|#).*$/, '');\r\n\r\n if (history.history.replaceState) {\r\n history.history.replaceState({}, document.title, href + '#' + fragment); // using history.replaceState instead of location.replace to work around chrom bug\r\n } else {\r\n location.replace(href + '#' + fragment);\r\n }\r\n } else {\r\n // Some browsers require that `hash` contains a leading #.\r\n location.hash = '#' + fragment;\r\n }\r\n };\r\n\r\n /**\r\n * @class HistoryModule\r\n * @static\r\n */\r\n var history = {\r\n /**\r\n * The setTimeout interval used when the browser does not support hash change events.\r\n * @property {string} interval\r\n * @default 50\r\n */\r\n interval: 50,\r\n /**\r\n * Indicates whether or not the history module is actively tracking history.\r\n * @property {string} active\r\n */\r\n active: false\r\n };\r\n \r\n // Ensure that `History` can be used outside of the browser.\r\n if (typeof window !== 'undefined') {\r\n history.location = window.location;\r\n history.history = window.history;\r\n }\r\n\r\n /**\r\n * Gets the true hash value. Cannot use location.hash directly due to a bug in Firefox where location.hash will always be decoded.\r\n * @method getHash\r\n * @param {string} [window] The optional window instance\r\n * @return {string} The hash.\r\n */\r\n history.getHash = function(window) {\r\n var match = (window || history).location.href.match(/#(.*)$/);\r\n return match ? match[1] : '';\r\n };\r\n \r\n /**\r\n * Get the cross-browser normalized URL fragment, either from the URL, the hash, or the override.\r\n * @method getFragment\r\n * @param {string} fragment The fragment.\r\n * @param {boolean} forcePushState Should we force push state?\r\n * @return {string} he fragment.\r\n */\r\n history.getFragment = function(fragment, forcePushState) {\r\n if (fragment == null) {\r\n if (history._hasPushState || !history._wantsHashChange || forcePushState) {\r\n fragment = history.location.pathname + history.location.search;\r\n var root = history.root.replace(trailingSlash, '');\r\n if (!fragment.indexOf(root)) {\r\n fragment = fragment.substr(root.length);\r\n }\r\n } else {\r\n fragment = history.getHash();\r\n }\r\n }\r\n \r\n return fragment.replace(routeStripper, '');\r\n };\r\n\r\n /**\r\n * Activate the hash change handling, returning `true` if the current URL matches an existing route, and `false` otherwise.\r\n * @method activate\r\n * @param {HistoryOptions} options.\r\n * @return {boolean|undefined} Returns true/false from loading the url unless the silent option was selected.\r\n */\r\n history.activate = function(options) {\r\n if (history.active) {\r\n system.error(\"History has already been activated.\");\r\n }\r\n\r\n history.active = true;\r\n\r\n // Figure out the initial configuration. Do we need an iframe?\r\n // Is pushState desired ... is it available?\r\n history.options = system.extend({}, { root: '/' }, history.options, options);\r\n history.root = history.options.root;\r\n history._wantsHashChange = history.options.hashChange !== false;\r\n history._wantsPushState = !!history.options.pushState;\r\n history._hasPushState = !!(history.options.pushState && history.history && history.history.pushState);\r\n\r\n var fragment = history.getFragment();\r\n var docMode = document.documentMode;\r\n var oldIE = (isExplorer.exec(navigator.userAgent.toLowerCase()) && (!docMode || docMode <= 7));\r\n\r\n // Normalize root to always include a leading and trailing slash.\r\n history.root = ('/' + history.root + '/').replace(rootStripper, '/');\r\n\r\n if (oldIE && history._wantsHashChange) {\r\n history.iframe = $('<iframe src=\"javascript:0\" tabindex=\"-1\" />').hide().appendTo('body')[0].contentWindow;\r\n history.navigate(fragment, false);\r\n }\r\n\r\n // Depending on whether we're using pushState or hashes, and whether\r\n // 'onhashchange' is supported, determine how we check the URL state.\r\n if (history._hasPushState) {\r\n $(window).on('popstate', history.checkUrl);\r\n } else if (history._wantsHashChange && ('onhashchange' in window) && !oldIE) {\r\n $(window).on('hashchange', history.checkUrl);\r\n } else if (history._wantsHashChange) {\r\n history._checkUrlInterval = setInterval(history.checkUrl, history.interval);\r\n }\r\n\r\n // Determine if we need to change the base url, for a pushState link\r\n // opened by a non-pushState browser.\r\n history.fragment = fragment;\r\n var loc = history.location;\r\n var atRoot = loc.pathname.replace(/[^\\/]$/, '$&/') === history.root;\r\n\r\n // Transition from hashChange to pushState or vice versa if both are requested.\r\n if (history._wantsHashChange && history._wantsPushState) {\r\n // If we've started off with a route from a `pushState`-enabled\r\n // browser, but we're currently in a browser that doesn't support it...\r\n if (!history._hasPushState && !atRoot) {\r\n history.fragment = history.getFragment(null, true);\r\n history.location.replace(history.root + history.location.search + '#' + history.fragment);\r\n // Return immediately as browser will do redirect to new url\r\n return true;\r\n\r\n // Or if we've started out with a hash-based route, but we're currently\r\n // in a browser where it could be `pushState`-based instead...\r\n } else if (history._hasPushState && atRoot && loc.hash) {\r\n this.fragment = history.getHash().replace(routeStripper, '');\r\n this.history.replaceState({}, document.title, history.root + history.fragment + loc.search);\r\n }\r\n }\r\n\r\n if (!history.options.silent) {\r\n return history.loadUrl(options.startRoute);\r\n }\r\n };\r\n\r\n /**\r\n * Disable history, perhaps temporarily. Not useful in a real app, but possibly useful for unit testing Routers.\r\n * @method deactivate\r\n */\r\n history.deactivate = function() {\r\n $(window).off('popstate', history.checkUrl).off('hashchange', history.checkUrl);\r\n clearInterval(history._checkUrlInterval);\r\n history.active = false;\r\n };\r\n\r\n /**\r\n * Checks the current URL to see if it has changed, and if it has, calls `loadUrl`, normalizing across the hidden iframe.\r\n * @method checkUrl\r\n * @return {boolean} Returns true/false from loading the url.\r\n */\r\n history.checkUrl = function() {\r\n var current = history.getFragment();\r\n if (current === history.fragment && history.iframe) {\r\n current = history.getFragment(history.getHash(history.iframe));\r\n }\r\n\r\n if (current === history.fragment) {\r\n return false;\r\n }\r\n\r\n if (history.iframe) {\r\n history.navigate(current, false);\r\n }\r\n \r\n history.loadUrl();\r\n };\r\n \r\n /**\r\n * Attempts to load the current URL fragment. A pass-through to options.routeHandler.\r\n * @method loadUrl\r\n * @return {boolean} Returns true/false from the route handler.\r\n */\r\n history.loadUrl = function(fragmentOverride) {\r\n var fragment = history.fragment = history.getFragment(fragmentOverride);\r\n\r\n return history.options.routeHandler ?\r\n history.options.routeHandler(fragment) :\r\n false;\r\n };\r\n\r\n /**\r\n * Save a fragment into the hash history, or replace the URL state if the\r\n * 'replace' option is passed. You are responsible for properly URL-encoding\r\n * the fragment in advance.\r\n * The options object can contain `trigger: false` if you wish to not have the\r\n * route callback be fired, or `replace: true`, if\r\n * you wish to modify the current URL without adding an entry to the history.\r\n * @method navigate\r\n * @param {string} fragment The url fragment to navigate to.\r\n * @param {object|boolean} options An options object with optional trigger and replace flags. You can also pass a boolean directly to set the trigger option. Trigger is `true` by default.\r\n * @return {boolean} Returns true/false from loading the url.\r\n */\r\n history.navigate = function(fragment, options) {\r\n if (!history.active) {\r\n return false;\r\n }\r\n\r\n if(options === undefined) {\r\n options = {\r\n trigger: true\r\n };\r\n }else if(system.isBoolean(options)) {\r\n options = {\r\n trigger: options\r\n };\r\n }\r\n\r\n fragment = history.getFragment(fragment || '');\r\n\r\n if (history.fragment === fragment) {\r\n return;\r\n }\r\n\r\n history.fragment = fragment;\r\n\r\n var url = history.root + fragment;\r\n\r\n // Don't include a trailing slash on the root.\r\n if(fragment === '' && url !== '/') {\r\n url = url.slice(0, -1);\r\n }\r\n\r\n // If pushState is available, we use it to set the fragment as a real URL.\r\n if (history._hasPushState) {\r\n history.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, url);\r\n\r\n // If hash changes haven't been explicitly disabled, update the hash\r\n // fragment to store history.\r\n } else if (history._wantsHashChange) {\r\n updateHash(history.location, fragment, options.replace);\r\n \r\n if (history.iframe && (fragment !== history.getFragment(history.getHash(history.iframe)))) {\r\n // Opening and closing the iframe tricks IE7 and earlier to push a\r\n // history entry on hash-tag change. When replace is true, we don't\r\n // want history.\r\n if (!options.replace) {\r\n history.iframe.document.open().close();\r\n }\r\n \r\n updateHash(history.iframe.location, fragment, options.replace);\r\n }\r\n\r\n // If you've told us that you explicitly don't want fallback hashchange-\r\n // based history, then `navigate` becomes a page refresh.\r\n } else {\r\n return history.location.assign(url);\r\n }\r\n\r\n if (options.trigger) {\r\n return history.loadUrl(fragment);\r\n }\r\n };\r\n\r\n /**\r\n * Navigates back in the browser history.\r\n * @method navigateBack\r\n */\r\n history.navigateBack = function() {\r\n history.history.back();\r\n };\r\n\r\n /**\r\n * @class HistoryOptions\r\n * @static\r\n */\r\n\r\n /**\r\n * The function that will be called back when the fragment changes.\r\n * @property {function} routeHandler\r\n */\r\n\r\n /**\r\n * The url root used to extract the fragment when using push state.\r\n * @property {string} root\r\n */\r\n\r\n /**\r\n * Use hash change when present.\r\n * @property {boolean} hashChange\r\n * @default true\r\n */\r\n\r\n /**\r\n * Use push state when present.\r\n * @property {boolean} pushState\r\n * @default false\r\n */\r\n\r\n /**\r\n * Prevents loading of the current url when activating history.\r\n * @property {boolean} silent\r\n * @default false\r\n */\r\n\r\n return history;\r\n});\r\n\n", "/**\r\n * Durandal 2.2.0 Copyright (c) 2010-2016 Blue Spire Consulting, Inc. All Rights Reserved.\r\n * Available via the MIT license.\r\n * see: http://durandaljs.com or https://github.com/BlueSpire/Durandal for details.\r\n */\r\n/**\r\n * Connects the history module's url and history tracking support to Durandal's activation and composition engine allowing you to easily build navigation-style applications.\r\n * @module router\r\n * @requires system\r\n * @requires app\r\n * @requires activator\r\n * @requires events\r\n * @requires composition\r\n * @requires history\r\n * @requires knockout\r\n * @requires jquery\r\n */\r\ndefine('plugins/router',['durandal/system', 'durandal/app', 'durandal/activator', 'durandal/events', 'durandal/composition', 'plugins/history', 'knockout', 'jquery'], function(system, app, activator, events, composition, history, ko, $) {\r\n var optionalParam = /\\((.*?)\\)/g;\r\n var namedParam = /(\\(\\?)?:\\w+/g;\r\n var splatParam = /\\*\\w+/g;\r\n var escapeRegExp = /[\\-{}\\[\\]+?.,\\\\\\^$|#\\s]/g;\r\n var startDeferred, rootRouter;\r\n var trailingSlash = /\\/$/;\r\n var routesAreCaseSensitive = false;\r\n var lastUrl = '/', lastTryUrl = '/';\r\n\r\n function routeStringToRegExp(routeString) {\r\n routeString = routeString.replace(escapeRegExp, '\\\\$&')\r\n .replace(optionalParam, '(?:$1)?')\r\n .replace(namedParam, function(match, optional) {\r\n return optional ? match : '([^\\/]+)';\r\n })\r\n .replace(splatParam, '(.*?)');\r\n\r\n return new RegExp('^' + routeString + '$', routesAreCaseSensitive ? undefined : 'i');\r\n }\r\n\r\n function stripParametersFromRoute(route) {\r\n var colonIndex = route.indexOf(':');\r\n var length = colonIndex > 0 ? colonIndex - 1 : route.length;\r\n return route.substring(0, length);\r\n }\r\n\r\n function endsWith(str, suffix) {\r\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\r\n }\r\n\r\n function compareArrays(first, second) {\r\n if (!first || !second){\r\n return false;\r\n }\r\n\r\n if (first.length != second.length) {\r\n return false;\r\n }\r\n\r\n for (var i = 0, len = first.length; i < len; i++) {\r\n if (first[i] != second[i]) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function reconstructUrl(instruction){\r\n if(!instruction.queryString){\r\n return instruction.fragment;\r\n }\r\n\r\n return instruction.fragment + '?' + instruction.queryString;\r\n }\r\n\r\n /**\r\n * @class Router\r\n * @uses Events\r\n */\r\n\r\n /**\r\n * Triggered when the navigation logic has completed.\r\n * @event router:navigation:complete\r\n * @param {object} instance The activated instance.\r\n * @param {object} instruction The routing instruction.\r\n * @param {Router} router The router.\r\n */\r\n\r\n /**\r\n * Triggered when the navigation has been cancelled.\r\n * @event router:navigation:cancelled\r\n * @param {object} instance The activated instance.\r\n * @param {object} instruction The routing instruction.\r\n * @param {Router} router The router.\r\n */\r\n\r\n /**\r\n * Triggered when navigation begins.\r\n * @event router:navigation:processing\r\n * @param {object} instruction The routing instruction.\r\n * @param {Router} router The router.\r\n */\r\n\r\n /**\r\n * Triggered right before a route is activated.\r\n * @event router:route:activating\r\n * @param {object} instance The activated instance.\r\n * @param {object} instruction The routing instruction.\r\n * @param {Router} router The router.\r\n */\r\n\r\n /**\r\n * Triggered right before a route is configured.\r\n * @event router:route:before-config\r\n * @param {object} config The route config.\r\n * @param {Router} router The router.\r\n */\r\n\r\n /**\r\n * Triggered just after a route is configured.\r\n * @event router:route:after-config\r\n * @param {object} config The route config.\r\n * @param {Router} router The router.\r\n */\r\n\r\n /**\r\n * Triggered when the view for the activated instance is attached.\r\n * @event router:navigation:attached\r\n * @param {object} instance The activated instance.\r\n * @param {object} instruction The routing instruction.\r\n * @param {Router} router The router.\r\n */\r\n\r\n /**\r\n * Triggered when the composition that the activated instance participates in is complete.\r\n * @event router:navigation:composition-complete\r\n * @param {object} instance The activated instance.\r\n * @param {object} instruction The routing instruction.\r\n * @param {Router} router The router.\r\n */\r\n\r\n /**\r\n * Triggered when the router does not find a matching route.\r\n * @event router:route:not-found\r\n * @param {string} fragment The url fragment.\r\n * @param {Router} router The router.\r\n */\r\n\r\n var createRouter = function() {\r\n var queue = [],\r\n isProcessing = ko.observable(false),\r\n currentActivation,\r\n currentInstruction,\r\n activeItem = activator.create();\r\n\r\n var router = {\r\n /**\r\n * The route handlers that are registered. Each handler consists of a `routePattern` and a `callback`.\r\n * @property {object[]} handlers\r\n */\r\n handlers: [],\r\n /**\r\n * The route configs that are registered.\r\n * @property {object[]} routes\r\n */\r\n routes: [],\r\n /**\r\n * The route configurations that have been designated as displayable in a nav ui (nav:true).\r\n * @property {KnockoutObservableArray} navigationModel\r\n */\r\n navigationModel: ko.observableArray([]),\r\n /**\r\n * The active item/screen based on the current navigation state.\r\n * @property {Activator} activeItem\r\n */\r\n activeItem: activeItem,\r\n /**\r\n * Indicates that the router (or a child router) is currently in the process of navigating.\r\n * @property {KnockoutComputed} isNavigating\r\n */\r\n isNavigating: ko.computed(function() {\r\n var current = activeItem();\r\n var processing = isProcessing();\r\n var currentRouterIsProcesing = current\r\n && current.router\r\n && current.router != router\r\n && current.router.isNavigating() ? true : false;\r\n return processing || currentRouterIsProcesing;\r\n }),\r\n /**\r\n * An observable surfacing the active routing instruction that is currently being processed or has recently finished processing.\r\n * The instruction object has `config`, `fragment`, `queryString`, `params` and `queryParams` properties.\r\n * @property {KnockoutObservable} activeInstruction\r\n */\r\n activeInstruction:ko.observable(null),\r\n __router__:true\r\n };\r\n\r\n events.includeIn(router);\r\n\r\n activeItem.settings.areSameItem = function (currentItem, newItem, currentActivationData, newActivationData) {\r\n if (currentItem == newItem) {\r\n return compareArrays(currentActivationData, newActivationData);\r\n }\r\n\r\n return false;\r\n };\r\n\r\n activeItem.settings.findChildActivator = function(item) {\r\n if (item && item.router && item.router.parent == router) {\r\n return item.router.activeItem;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n function hasChildRouter(instance, parentRouter) {\r\n return instance.router && instance.router.parent == parentRouter;\r\n }\r\n\r\n function setCurrentInstructionRouteIsActive(flag) {\r\n if (currentInstruction && currentInstruction.config.isActive) {\r\n currentInstruction.config.isActive(flag);\r\n }\r\n }\r\n\r\n function completeNavigation(instance, instruction, mode) {\r\n system.log('Navigation Complete', instance, instruction);\r\n\r\n var fromModuleId = system.getModuleId(currentActivation);\r\n if (fromModuleId) {\r\n router.trigger('router:navigation:from:' + fromModuleId);\r\n }\r\n\r\n currentActivation = instance;\r\n\r\n setCurrentInstructionRouteIsActive(false);\r\n currentInstruction = instruction;\r\n setCurrentInstructionRouteIsActive(true);\r\n\r\n var toModuleId = system.getModuleId(currentActivation);\r\n if (toModuleId) {\r\n router.trigger('router:navigation:to:' + toModuleId);\r\n }\r\n\r\n if (!hasChildRouter(instance, router)) {\r\n router.updateDocumentTitle(instance, instruction);\r\n }\r\n\r\n switch (mode) {\r\n case 'rootRouter':\r\n lastUrl = reconstructUrl(currentInstruction);\r\n break;\r\n case 'rootRouterWithChild':\r\n lastTryUrl = reconstructUrl(currentInstruction);\r\n break;\r\n case 'lastChildRouter':\r\n lastUrl = lastTryUrl;\r\n break;\r\n }\r\n\r\n rootRouter.explicitNavigation = false;\r\n rootRouter.navigatingBack = false;\r\n\r\n router.trigger('router:navigation:complete', instance, instruction, router);\r\n }\r\n\r\n function cancelNavigation(instance, instruction) {\r\n system.log('Navigation Cancelled');\r\n\r\n router.activeInstruction(currentInstruction);\r\n\r\n router.navigate(lastUrl, false);\r\n\r\n isProcessing(false);\r\n rootRouter.explicitNavigation = false;\r\n rootRouter.navigatingBack = false;\r\n router.trigger('router:navigation:cancelled', instance, instruction, router);\r\n }\r\n\r\n function redirect(url) {\r\n system.log('Navigation Redirecting');\r\n\r\n isProcessing(false);\r\n rootRouter.explicitNavigation = false;\r\n rootRouter.navigatingBack = false;\r\n router.navigate(url, { trigger: true, replace: true });\r\n }\r\n\r\n function activateRoute(activator, instance, instruction) {\r\n rootRouter.navigatingBack = !rootRouter.explicitNavigation && currentActivation != instruction.fragment;\r\n router.trigger('router:route:activating', instance, instruction, router);\r\n\r\n var options = {\r\n canDeactivate: !router.parent\r\n };\r\n\r\n activator.activateItem(instance, instruction.params, options).then(function(succeeded) {\r\n if (succeeded) {\r\n var previousActivation = currentActivation;\r\n var withChild = hasChildRouter(instance, router);\r\n var mode = '';\r\n\r\n if (router.parent) {\r\n if(!withChild) {\r\n mode = 'lastChildRouter';\r\n }\r\n } else {\r\n if (withChild) {\r\n mode = 'rootRouterWithChild';\r\n } else {\r\n mode = 'rootRouter';\r\n }\r\n }\r\n\r\n completeNavigation(instance, instruction, mode);\r\n\r\n if (withChild) {\r\n instance.router.trigger('router:route:before-child-routes', instance, instruction, router);\r\n\r\n var fullFragment = instruction.fragment;\r\n if (instruction.queryString) {\r\n fullFragment += \"?\" + instruction.queryString;\r\n }\r\n\r\n instance.router.loadUrl(fullFragment);\r\n }\r\n\r\n if (previousActivation == instance) {\r\n router.attached();\r\n router.compositionComplete();\r\n }\r\n } else if(activator.settings.lifecycleData && activator.settings.lifecycleData.redirect){\r\n redirect(activator.settings.lifecycleData.redirect);\r\n }else{\r\n cancelNavigation(instance, instruction);\r\n }\r\n\r\n if (startDeferred) {\r\n startDeferred.resolve();\r\n startDeferred = null;\r\n }\r\n }).fail(function(err){\r\n system.error(err);\r\n });\r\n }\r\n\r\n /**\r\n * Inspects routes and modules before activation. Can be used to protect access by cancelling navigation or redirecting.\r\n * @method guardRoute\r\n * @param {object} instance The module instance that is about to be activated by the router.\r\n * @param {object} instruction The route instruction. The instruction object has config, fragment, queryString, params and queryParams properties.\r\n * @return {Promise|Boolean|String} If a boolean, determines whether or not the route should activate or be cancelled. If a string, causes a redirect to the specified route. Can also be a promise for either of these value types.\r\n */\r\n function handleGuardedRoute(activator, instance, instruction) {\r\n var resultOrPromise = router.guardRoute(instance, instruction);\r\n if (resultOrPromise || resultOrPromise === '') {\r\n if (resultOrPromise.then) {\r\n resultOrPromise.then(function(result) {\r\n if (result) {\r\n if (system.isString(result)) {\r\n redirect(result);\r\n } else {\r\n activateRoute(activator, instance, instruction);\r\n }\r\n } else {\r\n cancelNavigation(instance, instruction);\r\n }\r\n });\r\n } else {\r\n if (system.isString(resultOrPromise)) {\r\n redirect(resultOrPromise);\r\n } else {\r\n activateRoute(activator, instance, instruction);\r\n }\r\n }\r\n } else {\r\n cancelNavigation(instance, instruction);\r\n }\r\n }\r\n\r\n function ensureActivation(activator, instance, instruction) {\r\n if (router.guardRoute) {\r\n handleGuardedRoute(activator, instance, instruction);\r\n } else {\r\n activateRoute(activator, instance, instruction);\r\n }\r\n }\r\n\r\n function canReuseCurrentActivation(instruction) {\r\n return currentInstruction\r\n && currentInstruction.config.moduleId == instruction.config.moduleId\r\n && currentActivation\r\n && ((currentActivation.canReuseForRoute && currentActivation.canReuseForRoute.apply(currentActivation, instruction.params))\r\n || (!currentActivation.canReuseForRoute && currentActivation.router && currentActivation.router.loadUrl));\r\n }\r\n\r\n function dequeueInstruction() {\r\n if (isProcessing()) {\r\n return;\r\n }\r\n\r\n var instruction = queue.shift();\r\n queue = [];\r\n\r\n if (!instruction) {\r\n return;\r\n }\r\n\r\n isProcessing(true);\r\n router.activeInstruction(instruction);\r\n router.trigger('router:navigation:processing', instruction, router);\r\n\r\n if (canReuseCurrentActivation(instruction)) {\r\n var tempActivator = activator.create();\r\n tempActivator.forceActiveItem(currentActivation); //enforce lifecycle without re-compose\r\n tempActivator.settings.areSameItem = activeItem.settings.areSameItem;\r\n tempActivator.settings.findChildActivator = activeItem.settings.findChildActivator;\r\n ensureActivation(tempActivator, currentActivation, instruction);\r\n } else if(!instruction.config.moduleId) {\r\n ensureActivation(activeItem, {\r\n viewUrl:instruction.config.viewUrl,\r\n canReuseForRoute:function() {\r\n return true;\r\n }\r\n }, instruction);\r\n } else {\r\n system.acquire(instruction.config.moduleId).then(function(m) {\r\n var instance = system.resolveObject(m);\r\n\r\n if(instruction.config.viewUrl) {\r\n instance.viewUrl = instruction.config.viewUrl;\r\n }\r\n\r\n ensureActivation(activeItem, instance, instruction);\r\n }).fail(function(err) {\r\n cancelNavigation(null, instruction);\r\n system.error('Failed to load routed module (' + instruction.config.moduleId + '). Details: ' + err.message, err);\r\n });\r\n }\r\n }\r\n\r\n function queueInstruction(instruction) {\r\n queue.unshift(instruction);\r\n dequeueInstruction();\r\n }\r\n\r\n // Given a route, and a URL fragment that it matches, return the array of\r\n // extracted decoded parameters. Empty or unmatched parameters will be\r\n // treated as `null` to normalize cross-browser behavior.\r\n function createParams(routePattern, fragment, queryString) {\r\n var params = routePattern.exec(fragment).slice(1);\r\n\r\n for (var i = 0; i < params.length; i++) {\r\n var current = params[i];\r\n params[i] = current ? decodeURIComponent(current) : null;\r\n }\r\n\r\n var queryParams = router.parseQueryString(queryString);\r\n if (queryParams) {\r\n params.push(queryParams);\r\n }\r\n\r\n return {\r\n params:params,\r\n queryParams:queryParams\r\n };\r\n }\r\n\r\n function configureRoute(config){\r\n router.trigger('router:route:before-config', config, router);\r\n\r\n if (!system.isRegExp(config.route)) {\r\n config.title = config.title || router.convertRouteToTitle(config.route);\r\n\r\n if (!config.viewUrl) {\r\n config.moduleId = config.moduleId || router.convertRouteToModuleId(config.route);\r\n }\r\n\r\n config.hash = config.hash || router.convertRouteToHash(config.route);\r\n\r\n if (config.hasChildRoutes) {\r\n config.route = config.route + '*childRoutes';\r\n }\r\n\r\n config.routePattern = routeStringToRegExp(config.route);\r\n }else{\r\n config.routePattern = config.route;\r\n }\r\n\r\n config.isActive = config.isActive || ko.observable(false);\r\n router.trigger('router:route:after-config', config, router);\r\n router.routes.push(config);\r\n\r\n router.route(config.routePattern, function(fragment, queryString) {\r\n var paramInfo = createParams(config.routePattern, fragment, queryString);\r\n queueInstruction({\r\n fragment: fragment,\r\n queryString:queryString,\r\n config: config,\r\n params: paramInfo.params,\r\n queryParams:paramInfo.queryParams\r\n });\r\n });\r\n };\r\n\r\n function mapRoute(config) {\r\n if(system.isArray(config.route)){\r\n var isActive = config.isActive || ko.observable(false);\r\n\r\n for(var i = 0, length = config.route.length; i < length; i++){\r\n var current = system.extend({}, config);\r\n\r\n current.route = config.route[i];\r\n current.isActive = isActive;\r\n\r\n if(i > 0){\r\n delete current.nav;\r\n }\r\n\r\n configureRoute(current);\r\n }\r\n }else{\r\n configureRoute(config);\r\n }\r\n\r\n return router;\r\n }\r\n\r\n /**\r\n * Parses a query string into an object.\r\n * @method parseQueryString\r\n * @param {string} queryString The query string to parse.\r\n * @return {object} An object keyed according to the query string parameters.\r\n */\r\n router.parseQueryString = function (queryString) {\r\n var queryObject, pairs;\r\n\r\n if (!queryString) {\r\n return null;\r\n }\r\n\r\n pairs = queryString.split('&');\r\n\r\n if (pairs.length == 0) {\r\n return null;\r\n }\r\n\r\n queryObject = {};\r\n\r\n for (var i = 0; i < pairs.length; i++) {\r\n var pair = pairs[i];\r\n if (pair === '') {\r\n continue;\r\n }\r\n\r\n var sp = pair.indexOf(\"=\"),\r\n key = sp === -1 ? pair : pair.substr(0, sp),\r\n value = sp === -1 ? null : decodeURIComponent(pair.substr(sp + 1).replace(/\\+/g, ' '));\r\n\r\n var existing = queryObject[key];\r\n\r\n if (existing) {\r\n if (system.isArray(existing)) {\r\n existing.push(value);\r\n } else {\r\n queryObject[key] = [existing, value];\r\n }\r\n }\r\n else {\r\n queryObject[key] = value;\r\n }\r\n }\r\n\r\n return queryObject;\r\n };\r\n\r\n /**\r\n * Add a route to be tested when the url fragment changes.\r\n * @method route\r\n * @param {RegEx} routePattern The route pattern to test against.\r\n * @param {function} callback The callback to execute when the route pattern is matched.\r\n */\r\n router.route = function(routePattern, callback) {\r\n router.handlers.push({ routePattern: routePattern, callback: callback });\r\n };\r\n\r\n /**\r\n * Attempt to load the specified URL fragment. If a route succeeds with a match, returns `true`. If no defined routes matches the fragment, returns `false`.\r\n * @method loadUrl\r\n * @param {string} fragment The URL fragment to find a match for.\r\n * @return {boolean} True if a match was found, false otherwise.\r\n */\r\n router.loadUrl = function(fragment) {\r\n var handlers = router.handlers,\r\n queryString = null,\r\n coreFragment = fragment,\r\n queryIndex = fragment.indexOf('?');\r\n\r\n if (queryIndex != -1) {\r\n coreFragment = fragment.substring(0, queryIndex);\r\n queryString = fragment.substr(queryIndex + 1);\r\n }\r\n\r\n if(router.relativeToParentRouter){\r\n var instruction = this.parent.activeInstruction();\r\n\t\t\t\tcoreFragment = queryIndex == -1 ? instruction.params.join('/') : instruction.params.slice(0, -1).join('/');\r\n\r\n if(coreFragment && coreFragment.charAt(0) == '/'){\r\n coreFragment = coreFragment.substr(1);\r\n }\r\n\r\n if(!coreFragment){\r\n coreFragment = '';\r\n }\r\n\r\n coreFragment = coreFragment.replace('//', '/').replace('//', '/');\r\n }\r\n\r\n coreFragment = coreFragment.replace(trailingSlash, '');\r\n\r\n for (var i = 0; i < handlers.length; i++) {\r\n var current = handlers[i];\r\n if (current.routePattern.test(coreFragment)) {\r\n current.callback(coreFragment, queryString);\r\n return true;\r\n }\r\n }\r\n\r\n system.log('Route Not Found', fragment, currentInstruction);\r\n router.trigger('router:route:not-found', fragment, router);\r\n\r\n if (router.parent) {\r\n lastUrl = lastTryUrl;\r\n }\r\n\r\n history.navigate(lastUrl, { trigger:false, replace:true });\r\n\r\n rootRouter.explicitNavigation = false;\r\n rootRouter.navigatingBack = false;\r\n\r\n return false;\r\n };\r\n\r\n var titleSubscription;\r\n function setTitle(value) {\r\n var appTitle = ko.unwrap(app.title);\r\n\r\n if (appTitle) {\r\n document.title = value + \" | \" + appTitle;\r\n } else {\r\n document.title = value;\r\n }\r\n }\r\n\r\n // Allow observable to be used for app.title\r\n if(ko.isObservable(app.title)) {\r\n app.title.subscribe(function () {\r\n var instruction = router.activeInstruction();\r\n var title = instruction != null ? ko.unwrap(instruction.config.title) : '';\r\n setTitle(title);\r\n });\r\n }\r\n\r\n /**\r\n * Updates the document title based on the activated module instance, the routing instruction and the app.title.\r\n * @method updateDocumentTitle\r\n * @param {object} instance The activated module.\r\n * @param {object} instruction The routing instruction associated with the action. It has a `config` property that references the original route mapping config.\r\n */\r\n router.updateDocumentTitle = function (instance, instruction) {\r\n var appTitle = ko.unwrap(app.title),\r\n title = instruction.config.title;\r\n\r\n if (titleSubscription) {\r\n titleSubscription.dispose();\r\n }\r\n\r\n if (title) {\r\n if (ko.isObservable(title)) {\r\n titleSubscription = title.subscribe(setTitle);\r\n setTitle(title());\r\n } else {\r\n setTitle(title);\r\n }\r\n } else if (appTitle) {\r\n document.title = appTitle;\r\n }\r\n };\r\n\r\n /**\r\n * Save a fragment into the hash history, or replace the URL state if the\r\n * 'replace' option is passed. You are responsible for properly URL-encoding\r\n * the fragment in advance.\r\n * The options object can contain `trigger: false` if you wish to not have the\r\n * route callback be fired, or `replace: true`, if\r\n * you wish to modify the current URL without adding an entry to the history.\r\n * @method navigate\r\n * @param {string} fragment The url fragment to navigate to.\r\n * @param {object|boolean} options An options object with optional trigger and replace flags. You can also pass a boolean directly to set the trigger option. Trigger is `true` by default.\r\n * @return {boolean} Returns true/false from loading the url.\r\n */\r\n router.navigate = function(fragment, options) {\r\n if(fragment && fragment.indexOf('://') != -1) {\r\n window.location.href = fragment;\r\n return true;\r\n }\r\n\r\n if(options === undefined || (system.isBoolean(options) && options) || (system.isObject(options) && options.trigger)) {\r\n rootRouter.explicitNavigation = true;\r\n }\r\n\r\n if ((system.isBoolean(options) && !options) || (options && options.trigger != undefined && !options.trigger)) {\r\n lastUrl = fragment;\r\n }\r\n\r\n return history.navigate(fragment, options);\r\n };\r\n\r\n /**\r\n * Navigates back in the browser history.\r\n * @method navigateBack\r\n */\r\n router.navigateBack = function() {\r\n history.navigateBack();\r\n };\r\n\r\n router.attached = function() {\r\n router.trigger('router:navigation:attached', currentActivation, currentInstruction, router);\r\n };\r\n\r\n router.compositionComplete = function(){\r\n isProcessing(false);\r\n router.trigger('router:navigation:composition-complete', currentActivation, currentInstruction, router);\r\n dequeueInstruction();\r\n };\r\n\r\n /**\r\n * Converts a route to a hash suitable for binding to a link's href.\r\n * @method convertRouteToHash\r\n * @param {string} route\r\n * @return {string} The hash.\r\n */\r\n router.convertRouteToHash = function(route) {\r\n route = route.replace(/\\*.*$/, '');\r\n\r\n if(router.relativeToParentRouter){\r\n var instruction = router.parent.activeInstruction(),\r\n hash = route ? instruction.config.hash + '/' + route : instruction.config.hash;\r\n\r\n if(history._hasPushState){\r\n hash = '/' + hash;\r\n }\r\n\r\n hash = hash.replace('//', '/').replace('//', '/');\r\n return hash;\r\n }\r\n\r\n if(history._hasPushState){\r\n return route;\r\n }\r\n\r\n return \"#\" + route;\r\n };\r\n\r\n /**\r\n * Converts a route to a module id. This is only called if no module id is supplied as part of the route mapping.\r\n * @method convertRouteToModuleId\r\n * @param {string} route\r\n * @return {string} The module id.\r\n */\r\n router.convertRouteToModuleId = function(route) {\r\n return stripParametersFromRoute(route);\r\n };\r\n\r\n /**\r\n * Converts a route to a displayable title. This is only called if no title is specified as part of the route mapping.\r\n * @method convertRouteToTitle\r\n * @param {string} route\r\n * @return {string} The title.\r\n */\r\n router.convertRouteToTitle = function(route) {\r\n var value = stripParametersFromRoute(route);\r\n return value.substring(0, 1).toUpperCase() + value.substring(1);\r\n };\r\n\r\n /**\r\n * Maps route patterns to modules.\r\n * @method map\r\n * @param {string|object|object[]} route A route, config or array of configs.\r\n * @param {object} [config] The config for the specified route.\r\n * @chainable\r\n * @example\r\n router.map([\r\n { route: '', title:'Home', moduleId: 'homeScreen', nav: true },\r\n { route: 'customer/:id', moduleId: 'customerDetails'}\r\n ]);\r\n */\r\n router.map = function(route, config) {\r\n if (system.isArray(route)) {\r\n for (var i = 0; i < route.length; i++) {\r\n router.map(route[i]);\r\n }\r\n\r\n return router;\r\n }\r\n\r\n if (system.isString(route) || system.isRegExp(route)) {\r\n if (!config) {\r\n config = {};\r\n } else if (system.isString(config)) {\r\n config = { moduleId: config };\r\n }\r\n\r\n config.route = route;\r\n } else {\r\n config = route;\r\n }\r\n\r\n return mapRoute(config);\r\n };\r\n\r\n /**\r\n * Builds an observable array designed to bind a navigation UI to. The model will exist in the `navigationModel` property.\r\n * @method buildNavigationModel\r\n * @param {number} defaultOrder The default order to use for navigation visible routes that don't specify an order. The default is 100 and each successive route will be one more than that.\r\n * @chainable\r\n */\r\n router.buildNavigationModel = function(defaultOrder) {\r\n var nav = [], routes = router.routes;\r\n var fallbackOrder = defaultOrder || 100;\r\n\r\n for (var i = 0; i < routes.length; i++) {\r\n var current = routes[i];\r\n\r\n if (current.nav) {\r\n if (!system.isNumber(current.nav)) {\r\n current.nav = ++fallbackOrder;\r\n }\r\n\r\n nav.push(current);\r\n }\r\n }\r\n\r\n nav.sort(function(a, b) { return a.nav - b.nav; });\r\n router.navigationModel(nav);\r\n\r\n return router;\r\n };\r\n\r\n /**\r\n * Configures how the router will handle unknown routes.\r\n * @method mapUnknownRoutes\r\n * @param {string|function} [config] If not supplied, then the router will map routes to modules with the same name.\r\n * If a string is supplied, it represents the module id to route all unknown routes to.\r\n * Finally, if config is a function, it will be called back with the route instruction containing the route info. The function can then modify the instruction by adding a moduleId and the router will take over from there.\r\n * @param {string} [replaceRoute] If config is a module id, then you can optionally provide a route to replace the url with.\r\n * @chainable\r\n */\r\n router.mapUnknownRoutes = function(config, replaceRoute) {\r\n var catchAllRoute = \"*catchall\";\r\n var catchAllPattern = routeStringToRegExp(catchAllRoute);\r\n\r\n router.route(catchAllPattern, function (fragment, queryString) {\r\n var paramInfo = createParams(catchAllPattern, fragment, queryString);\r\n var instruction = {\r\n fragment: fragment,\r\n queryString: queryString,\r\n config: {\r\n route: catchAllRoute,\r\n routePattern: catchAllPattern\r\n },\r\n params: paramInfo.params,\r\n queryParams: paramInfo.queryParams\r\n };\r\n\r\n if (!config) {\r\n instruction.config.moduleId = fragment;\r\n } else if (system.isString(config)) {\r\n instruction.config.moduleId = config;\r\n if(replaceRoute){\r\n history.navigate(replaceRoute, { trigger:false, replace:true });\r\n }\r\n } else if (system.isFunction(config)) {\r\n var result = config(instruction);\r\n if (result && result.then) {\r\n result.then(function() {\r\n router.trigger('router:route:before-config', instruction.config, router);\r\n router.trigger('router:route:after-config', instruction.config, router);\r\n queueInstruction(instruction);\r\n });\r\n return;\r\n }\r\n } else {\r\n instruction.config = config;\r\n instruction.config.route = catchAllRoute;\r\n instruction.config.routePattern = catchAllPattern;\r\n }\r\n\r\n router.trigger('router:route:before-config', instruction.config, router);\r\n router.trigger('router:route:after-config', instruction.config, router);\r\n queueInstruction(instruction);\r\n });\r\n\r\n return router;\r\n };\r\n\r\n /**\r\n * Resets the router by removing handlers, routes, event handlers and previously configured options.\r\n * @method reset\r\n * @chainable\r\n */\r\n router.reset = function() {\r\n currentInstruction = currentActivation = undefined;\r\n router.handlers = [];\r\n router.routes = [];\r\n router.off();\r\n delete router.options;\r\n return router;\r\n };\r\n\r\n /**\r\n * Makes all configured routes and/or module ids relative to a certain base url.\r\n * @method makeRelative\r\n * @param {string|object} settings If string, the value is used as the base for routes and module ids. If an object, you can specify `route` and `moduleId` separately. In place of specifying route, you can set `fromParent:true` to make routes automatically relative to the parent router's active route.\r\n * @chainable\r\n */\r\n router.makeRelative = function(settings){\r\n if(system.isString(settings)){\r\n settings = {\r\n moduleId:settings,\r\n route:settings\r\n };\r\n }\r\n\r\n if(settings.moduleId && !endsWith(settings.moduleId, '/')){\r\n settings.moduleId += '/';\r\n }\r\n\r\n if(settings.route && !endsWith(settings.route, '/')){\r\n settings.route += '/';\r\n }\r\n\r\n if(settings.fromParent){\r\n router.relativeToParentRouter = true;\r\n }\r\n\r\n router.on('router:route:before-config').then(function(config){\r\n if(settings.moduleId){\r\n config.moduleId = settings.moduleId + config.moduleId;\r\n }\r\n\r\n if(settings.route){\r\n if(config.route === ''){\r\n config.route = settings.route.substring(0, settings.route.length - 1);\r\n }else{\r\n config.route = settings.route + config.route;\r\n }\r\n }\r\n });\r\n\r\n if (settings.dynamicHash) {\r\n router.on('router:route:after-config').then(function (config) {\r\n config.routePattern = routeStringToRegExp(config.route ? settings.dynamicHash + '/' + config.route : settings.dynamicHash);\r\n config.dynamicHash = config.dynamicHash || ko.observable(config.hash);\r\n });\r\n\r\n router.on('router:route:before-child-routes').then(function(instance, instruction, parentRouter) {\r\n var childRouter = instance.router;\r\n\r\n for(var i = 0; i < childRouter.routes.length; i++) {\r\n var route = childRouter.routes[i];\r\n var params = instruction.params.slice(0);\r\n\r\n route.hash = childRouter.convertRouteToHash(route.route)\r\n .replace(namedParam, function(match) {\r\n return params.length > 0 ? params.shift() : match;\r\n });\r\n\r\n route.dynamicHash(route.hash);\r\n }\r\n });\r\n }\r\n\r\n return router;\r\n };\r\n\r\n /**\r\n * Creates a child router.\r\n * @method createChildRouter\r\n * @return {Router} The child router.\r\n */\r\n router.createChildRouter = function() {\r\n var childRouter = createRouter();\r\n childRouter.parent = router;\r\n return childRouter;\r\n };\r\n\r\n return router;\r\n };\r\n\r\n /**\r\n * @class RouterModule\r\n * @extends Router\r\n * @static\r\n */\r\n rootRouter = createRouter();\r\n rootRouter.explicitNavigation = false;\r\n rootRouter.navigatingBack = false;\r\n\r\n /**\r\n * Makes the RegExp generated for routes case sensitive, rather than the default of case insensitive.\r\n * @method makeRoutesCaseSensitive\r\n */\r\n rootRouter.makeRoutesCaseSensitive = function(){\r\n routesAreCaseSensitive = true;\r\n };\r\n\r\n /**\r\n * Verify that the target is the current window\r\n * @method targetIsThisWindow\r\n * @return {boolean} True if the event's target is the current window, false otherwise.\r\n */\r\n rootRouter.targetIsThisWindow = function(event) {\r\n var targetWindow = $(event.target).attr('target');\r\n\r\n if (!targetWindow ||\r\n targetWindow === window.name ||\r\n targetWindow === '_self' ||\r\n (targetWindow === 'top' && window === window.top)) { return true; }\r\n\r\n return false;\r\n };\r\n\r\n /**\r\n * Activates the router and the underlying history tracking mechanism.\r\n * @method activate\r\n * @return {Promise} A promise that resolves when the router is ready.\r\n */\r\n rootRouter.activate = function(options) {\r\n return system.defer(function(dfd) {\r\n startDeferred = dfd;\r\n rootRouter.options = system.extend({ routeHandler: rootRouter.loadUrl }, rootRouter.options, options);\r\n\r\n history.activate(rootRouter.options);\r\n\r\n if(history._hasPushState){\r\n var routes = rootRouter.routes,\r\n i = routes.length;\r\n\r\n while(i--){\r\n var current = routes[i];\r\n current.hash = current.hash.replace('#', '/');\r\n }\r\n }\r\n\r\n var rootStripper = rootRouter.options.root && new RegExp(\"^\" + rootRouter.options.root + \"/\");\r\n\r\n $(document).delegate(\"a\", 'click', function(evt){\r\n \r\n // ignore default prevented since these are not supposed to behave like links anyway\r\n if(evt.isDefaultPrevented()){\r\n return;\r\n }\r\n\r\n if(history._hasPushState){\r\n if(!evt.altKey && !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && rootRouter.targetIsThisWindow(evt)){\r\n var href = $(this).attr(\"href\");\r\n\r\n // Ensure the protocol is not part of URL, meaning its relative.\r\n // Stop the event bubbling to ensure the link will not cause a page refresh.\r\n if (href != null && !(href.charAt(0) === \"#\" || /^[a-z]+:/i.test(href))) {\r\n rootRouter.explicitNavigation = true;\r\n evt.preventDefault();\r\n\r\n if (rootStripper) {\r\n href = href.replace(rootStripper, \"\");\r\n }\r\n\r\n history.navigate(href);\r\n }\r\n }\r\n }else{\r\n rootRouter.explicitNavigation = true;\r\n }\r\n });\r\n\r\n if(history.options.silent && startDeferred){\r\n startDeferred.resolve();\r\n startDeferred = null;\r\n }\r\n }).promise();\r\n };\r\n\r\n /**\r\n * Deactivate current items and turn history listening off.\r\n * @method deactivate\r\n */\r\n rootRouter.deactivate = function() {\r\n rootRouter.activeItem(null);\r\n history.deactivate();\r\n };\r\n\r\n /**\r\n * Installs the router's custom ko binding handler.\r\n * @method install\r\n */\r\n rootRouter.install = function(){\r\n ko.bindingHandlers.router = {\r\n init: function() {\r\n return { controlsDescendantBindings: true };\r\n },\r\n update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\r\n var settings = ko.utils.unwrapObservable(valueAccessor()) || {};\r\n\r\n if (settings.__router__) {\r\n settings = {\r\n model:settings.activeItem(),\r\n attached:settings.attached,\r\n compositionComplete:settings.compositionComplete,\r\n activate: false\r\n };\r\n } else {\r\n var theRouter = ko.utils.unwrapObservable(settings.router || viewModel.router) || rootRouter;\r\n settings.model = theRouter.activeItem();\r\n settings.attached = theRouter.attached;\r\n settings.compositionComplete = theRouter.compositionComplete;\r\n settings.activate = false;\r\n }\r\n\r\n composition.compose(element, settings, bindingContext);\r\n }\r\n };\r\n\r\n ko.virtualElements.allowedBindings.router = true;\r\n };\r\n\r\n return rootRouter;\r\n});\r\n\n", "/// <reference path=\"../../Scripts/typings/jquery/jquery.d.ts\" />\n/// <reference path=\"../../Scripts/typings/toastr/toastr.d.ts\" />\n/// <reference path=\"../../Scripts/typings/knockout/knockout.d.ts\" />\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('common/viewmodelbase',[\"require\", \"exports\", \"durandal/app\", \"models/portal\", \"models/account\", \"models/socialnetwork\", \"services/applicationstorage\", \"services/taskmanager\", \"plugins/router\"], function (require, exports, App, Portal, Account, Socialnetwork, Applications, Tasks, router) {\n \"use strict\";\n var ViewModelBase = (function () {\n function ViewModelBase() {\n this.taskManager = new Tasks.Manager();\n this.applications = new Applications();\n //for (var method in this) {\n //\tif (typeof this[method] == \"function\") {\n //\t\tthis[method] = this[method].bind(this);\n //\t}\n //}\n }\n // #region override\n ViewModelBase.prototype.activate = function (routeData) {\n var settings = null;\n var path = null;\n var queryString = null;\n var parameters = null;\n // Aufrufparameter auswerten\n if (routeData instanceof Portal.ParameterList) {\n parameters = routeData;\n }\n else {\n parameters = new Portal.ParameterList();\n parameters.add(\"unknown\", routeData);\n }\n // application settings aus DB laden\n var instruction = router.activeInstruction();\n if (instruction != null) {\n path = instruction.fragment.substring(instruction.fragment.indexOf(\"/\") + 1); //instruction.params[0];\n queryString = router.parseQueryString(instruction.queryString);\n var node = null;\n // child-routes\n if (path.indexOf(\"/\") > 0) {\n var modulePath = path.substring(path.indexOf(\"/\") + 1);\n var query = { fragment: modulePath };\n node = Portal.Context.shell.findNodeFor(query);\n }\n else {\n node = Portal.Context.shell.findNodeFor(instruction);\n }\n if (node != null && node.application != null) {\n settings = node.application.settingsXml;\n }\n else if (path !== \"\") {\n settings = this.applications.getSettings(path);\n }\n }\n // context zusammensetzen und übergeben\n this._context = new Portal.ApplicationContext(path, settings, queryString, parameters);\n return this.onActivated(this._context);\n };\n ViewModelBase.prototype.canDeactivate = function () {\n var path = null;\n var instruction = router.activeInstruction();\n if (instruction != null) {\n path = instruction.fragment.substring(instruction.fragment.indexOf(\"/\") + 1); //instruction.params[0];\n }\n return this.onBeforeClosing(path);\n };\n ViewModelBase.prototype.deactivate = function (close) {\n this.onClosed();\n };\n // #endregion\n // #region base functionality to override from childs\n ViewModelBase.prototype.onActivated = function (context) {\n };\n ViewModelBase.prototype.onBeforeClosing = function (path) {\n return true;\n };\n ViewModelBase.prototype.onClosed = function () {\n };\n Object.defineProperty(ViewModelBase.prototype, \"activeOrganization\", {\n // #endregion\n get: function () {\n var organization;\n App.trigger(\"currentSelectedClient\", function (client) { return organization = client; });\n if (organization == null) {\n var organization = new Socialnetwork.Organization();\n organization.organizationId = Account.Session.principal.organizationId;\n organization.name = Account.Session.principal.organizationName;\n }\n return organization;\n },\n enumerable: true,\n configurable: true\n });\n ViewModelBase.prototype.getContentHeight = function () {\n var hoehe = 800;\n if (window.innerHeight) {\n hoehe = self.innerHeight;\n }\n else if (document.documentElement && document.documentElement.clientHeight) {\n hoehe = document.documentElement.clientHeight;\n }\n else if (document.body) {\n hoehe = document.body.clientHeight;\n }\n return hoehe - 135;\n };\n ViewModelBase.prototype.getSettingsPropertyValueFor = function (propertyName) {\n var settingsxml = jQuery.parseXML(this._context.settings);\n if (settingsxml != null) {\n var properties = settingsxml.getElementsByTagName(\"property\");\n for (var i in properties) {\n var property = properties[i];\n if (property.attributes.getNamedItem(\"name\").nodeValue === propertyName) {\n return property.attributes.getNamedItem(\"value\").nodeValue;\n }\n }\n }\n return null;\n };\n ViewModelBase.prototype.getTranslation = function (key) {\n return $.t(key);\n };\n return ViewModelBase;\n }());\n exports.ViewModelBase = ViewModelBase;\n var ListViewModelBase = (function (_super) {\n __extends(ListViewModelBase, _super);\n function ListViewModelBase() {\n _super.call(this);\n this.selectedItems = ko.observableArray();\n }\n return ListViewModelBase;\n }(ViewModelBase));\n exports.ListViewModelBase = ListViewModelBase;\n});\n\n", "define('areas/home/commands/logoutcommand',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var LogoutCommand = (function () {\n function LogoutCommand(router, usermanager, applications) {\n this._router = router;\n this._userManager = usermanager;\n this._applications = applications;\n }\n LogoutCommand.prototype.execute = function (unit) {\n this._applications.clear();\n this._userManager.signOut();\n };\n return LogoutCommand;\n }());\n return LogoutCommand;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/account/viewmodels/login',[\"require\", \"exports\", \"models/portal\", \"durandal/app\", \"plugins/dialog\", \"models/account\", \"common/string\", \"common/viewmodelbase\", \"services/trace\", \"services/settings\", \"services/httpclient\", \"areas/home/commands/logoutcommand\", \"plugins/router\"], function (require, exports, Portal, app, dialog, Account, Strings, vm, trace, configuration, http, LogoutCommand, Router) {\n \"use strict\";\n var LoginViewModel = (function (_super) {\n __extends(LoginViewModel, _super);\n // Usermanagement-End\n function LoginViewModel() {\n _super.call(this);\n this.isDialog = false;\n this.isAuthenticating = false;\n this.clientNumber = \"\";\n this.username = \"\";\n this.password = \"\";\n this.keepSignedIn = false;\n this.shouldChangePassword = false;\n this.validEmail = false;\n this.shouldInputEmail = false;\n this.shouldConfirmEmail = false;\n this.showClientNumber = true;\n this.isClient = false;\n // Usermanagement-Start\n this.router = Router;\n this.logoutCommand = new LogoutCommand(this.router, Portal.Context.shell.userManager, this.applications);\n this.hiddenFlagEmail = \"hidden\";\n this.userEmail = \"xxx@yyy.de\";\n this.userPassword = \"\";\n this.userPasswordState = 0;\n this.userPasswordRepetition = \"\";\n this._hash = null;\n this.title = \"Login\";\n this.isDialog = dialog.getDialog(this) != null;\n ko.track(this, [\"isAuthenticating\", \"clientNumber\", \"username\", \"password\", \"keepSignedIn\", \"shouldChangePassword\", \"shouldInputEmail\", \"shouldConfirmEmail\", \"userEmail\", \"userPasswordRepetition\", \"userPassword\", \"passwordRulesMessage\"]);\n }\n LoginViewModel.prototype.onActivated = function (context) {\n var _this = this;\n document.addEventListener(\"keydown\", this.disableF5);\n var input = context.queryString;\n if (input != null) {\n this._hash = input.reqinput;\n if (this._hash.trim().length > 10) {\n // needed for passwordchangerequest\n if (input.state == '1' || input.state == '2') {\n this.confirmOrAbuseEmail(input.reqinput, input.state);\n }\n }\n }\n // direkte eingaben\n var search = window.location.search;\n var parameters = search.split(\"&\");\n Enumerable.From(parameters).ForEach(function (x) {\n if (Strings.contains(x, \"no=\")) {\n _this.clientNumber = x.split(\"=\")[1];\n }\n if (Strings.contains(x, \"user=\")) {\n _this.username = x.split(\"=\")[1];\n }\n if (Strings.contains(x, \"pass=\")) {\n _this.password = x.split(\"=\")[1];\n }\n });\n };\n LoginViewModel.prototype.isValid = function () {\n var isValid = this.username && this.password;\n if (!isValid) {\n var messageEnterAccountData = $.t(\"app:modules.account.message_enterAccountData\", { ifMissing: \"Bitte geben Sie mindestens Benutzername und Kennwort ein.\" });\n trace.traceInformation(messageEnterAccountData);\n }\n return isValid;\n };\n LoginViewModel.prototype.isValidPasswordRepetition = function () {\n var isValid = this.userPassword == this.userPasswordRepetition && this.userPassword !== \"\";\n this.hiddenFlagEmail = \"hidden\";\n //// first regex check\n //var regex: string = '^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{10,}$';\n //var regexp = new RegExp(regex);\n //isValid = regexp.test(this.userPassword);\n // than confirmation-check\n if (isValid) {\n isValid = this.userPassword == this.userPasswordRepetition;\n this.hiddenFlagEmail = \"\";\n }\n return isValid;\n };\n LoginViewModel.prototype.cancel = function () {\n app.trigger(\"authentication\", Account.Session.isAuthenticated);\n dialog.close(this); // falls als Dialog gestartet.\n };\n LoginViewModel.prototype.login = function () {\n var _this = this;\n var that = this;\n if (!this.isValid())\n return null;\n that.isAuthenticating = true;\n var request = new Account.Requests.LoginRequest(configuration.Settings.getPortalDomain(), this.username, this.password, this.clientNumber, this.keepSignedIn);\n return Portal.Context.shell.userManager.signIn(request)\n .then(function (data) {\n that.isAuthenticating = false;\n that.isClient = Account.Principal.current.memberType.toLowerCase() === 'client_postmaster';\n that.shouldChangePassword = !(Strings.contains(window.location.search, \"nid=\")) && Account.Principal.current.shouldChangePassword;\n that.shouldInputEmail = Strings.isNullOrEmpty(Account.Principal.current.email);\n that.userEmail = Account.Principal.current.email;\n that.shouldConfirmEmail = Account.Principal.current.shouldConfirmEmail;\n //that.shouldChangePassword = true;\n if (!that.shouldChangePassword && !that.shouldInputEmail && !that.shouldConfirmEmail) {\n app.trigger(\"authentication\", Account.Session.isAuthenticated);\n dialog.close(_this); // falls als Dialog gestartet.\n document.removeEventListener(\"keydown\", _this.disableF5);\n }\n else {\n }\n if (that.shouldChangePassword) {\n if (that.isClient) {\n var resetPasswordUrl = configuration.Settings.environment.getCustomValue(\"ClientResetPasswordPage\").replace('{0}', configuration.Settings.getPortalDomain());\n window.location.href = resetPasswordUrl + jQuery.base64.encode(Account.Session.getSessionId(), true);\n }\n else {\n that.getPasswordRulesMessage();\n }\n }\n })\n .fail(function (reason) {\n var messageLoginError = $.t(\"app:modules.account.message_loginError\", { ifMissing: \"Es ist ein Fehler bei der Anmeldung aufgetreten. Bitte prüfen Sie Ihre Zugangsdaten.\" });\n var messageLogin = $.t(\"app:modules.account.message_login\", { ifMissing: \"Anmeldung\" });\n trace.traceError(reason, null, messageLogin, true);\n that.isAuthenticating = false;\n });\n };\n LoginViewModel.prototype.resetPassword = function () {\n if (!(this.username.trim().length > 0)) {\n var messageResetPasswordEmptyUsernameError = $.t(\"app:modules.account.message_resetPasswordEmptyUsernameError\", { ifMissing: \"Bitte geben Sie die E-Mail ein, um Ihr Kennwort zu ändern.\" });\n var messageLogin = $.t(\"app:modules.account.message_login\", { ifMissing: \"Anmeldung\" });\n trace.traceError(messageResetPasswordEmptyUsernameError, null, messageLogin, true);\n return;\n }\n var request = new Account.Requests.LoginRequest(configuration.Settings.getPortalDomain(), this.username, \"\", this.clientNumber);\n return Portal.Context.shell.userManager.resetPassword(request)\n .then(function (data) {\n alert(data);\n })\n .fail(function (result) {\n var messageResetPasswordError = $.t(\"app:modules.account.message_resetPasswordError\", { ifMissing: \"Es ist ein Fehler bei der Anmeldung aufgetreten. Bitte prüfen Sie Ihre Zugangsdaten.\" });\n var messageLogin = $.t(\"app:modules.account.message_login\", { ifMissing: \"Anmeldung\" });\n trace.traceError(messageResetPasswordError + result.responseText, null, messageLogin, true);\n });\n };\n LoginViewModel.prototype.saveCredentials = function () {\n var _this = this;\n var service = new http.Channel();\n var that = this;\n // Update Email\n if ((that.shouldInputEmail || that.shouldConfirmEmail)) {\n service.putData(\"/api/account/me/mail?portalUserId=\" + Account.Principal.current.id + \"&email=\" + that.userEmail, http.ServiceTarget.portalApi, null).\n then(function (data) {\n var messageUpdateEmailSuccess = $.t(\"app:modules.account.message_updateEmailSuccess\", { ifMissing: 'Ihre E-Mail Adresse wurde erfolgreich aktualisiert. Wenn Sie sich per E-Mail über neue Eingänge informieren lassen möchten, wählen Sie die entsprechende Option in der App \"Benutzereinstellungen\".' });\n trace.trace(messageUpdateEmailSuccess, null, \"msg:index\", true);\n app.trigger(\"authentication\", Account.Session.isAuthenticated);\n dialog.close(_this); // falls als Dialog gestartet.\n document.removeEventListener(\"keydown\", _this.disableF5);\n }).fail(function (exception) {\n trace.traceError(exception.responseJSON.Message, null, \"usermangement\", true);\n });\n }\n ;\n // Update Password\n if (that.shouldChangePassword) {\n var request = new Account.Model.Password(this.userPassword, this.userPasswordRepetition);\n var userManager = Portal.Context.shell.userManager;\n var instance = this._hash != null ? userManager.changePassword(Account.Principal.current.id, this._hash, request) : userManager.setPasswordFor(Account.Principal.current.identityId, Account.Principal.current.id, request);\n instance.\n then(function (data) {\n var messageUpdatePasswordSuccess = $.t(\"app:modules.account.message_updatePasswordSuccess\", { ifMissing: 'Ihr Kennwort wurde erfolgreich aktualisiert.' });\n trace.trace(messageUpdatePasswordSuccess, null, \"msg:index\", true);\n app.trigger(\"authentication\", Account.Session.isAuthenticated);\n dialog.close(_this); // falls als Dialog gestartet.\n document.removeEventListener(\"keydown\", _this.disableF5);\n }).fail(function (exception) {\n var messageUpdatePasswordError = $.t(\"app:modules.account.message_updatePasswordError\", { ifMissing: \"Fehler bei der Kennwortaktualisierung: \" });\n trace.traceError(messageUpdatePasswordError + exception.responseText, null, \"usermangement\", true);\n });\n }\n ;\n };\n LoginViewModel.prototype.savePasswordOnly = function () {\n var _this = this;\n var service = new http.Channel();\n var that = this;\n // Update Password\n if (that.shouldChangePassword) {\n var request = new Account.Model.Password(this.userPassword, this.userPasswordRepetition);\n var userManager = Portal.Context.shell.userManager;\n var instance = this._hash != null ? userManager.changePassword(Account.Principal.current.id, this._hash, request) : userManager.setPasswordFor(Account.Principal.current.identityId, Account.Principal.current.id, request);\n instance.\n then(function (data) {\n var messageUpdatePasswordSuccess = $.t(\"app:modules.account.message_updatePasswordSuccess\", { ifMissing: 'Ihr Kennwort wurde erfolgreich aktualisiert.' });\n trace.trace(messageUpdatePasswordSuccess, null, \"msg:index\", true);\n app.trigger(\"authentication\", Account.Session.isAuthenticated);\n dialog.close(_this); // falls als Dialog gestartet.\n document.removeEventListener(\"keydown\", _this.disableF5);\n }).fail(function (exception) {\n var messageUpdatePasswordError = $.t(\"app:modules.account.message_updatePasswordError\", { ifMissing: \"Fehler bei der Kennwortaktualisierung: \" });\n trace.traceError(messageUpdatePasswordError + exception.responseJSON.Message, null, \"usermangement\", true);\n });\n }\n ;\n };\n LoginViewModel.prototype.confirmOrAbuseEmail = function (hash, state) {\n var _this = this;\n var service = new http.Channel();\n var that = this;\n that.userPasswordState = state;\n service.putData(\"/api/account/me/confirmemail?requestHash=\" + hash + \"&state=\" + state, http.ServiceTarget.portalApi, null).\n then(function (data) {\n if (that.userPasswordState == 1) {\n var messageEmailConfirmation = $.t(\"app:modules.account.message_eMailConfirmation\", { ifMissing: 'Ihre E-Mail-Adresse wurde bestätigt. Wenn Sie sich per E-Mail über neue Eingänge informieren lassen möchten, wählen Sie die entsprechende Option in der App Benachrichtigungen.' });\n trace.trace(messageEmailConfirmation, null, \"msg:index\", true);\n _this.logoutCommand.execute(_this);\n }\n if (that.userPasswordState == 2) {\n var messageEmailAbuse = $.t(\"app:modules.account.message_eMailAbuse\", { ifMissing: \"Ihre E-Mail wurde erfolgreich deaktiviert. Um eine neue E-Mail-Adresse zu hinterlegen, melden Sie sich bitte mit Ihren Zugangsdaten an und erfassen Sie nachfolgend die entsprechende E-Mail-Adresse.\" });\n trace.trace(messageEmailAbuse, null, \"msg:index\", true);\n _this.logoutCommand.execute(_this);\n }\n if (that.userPasswordState == 0 || that.userPasswordState > 2) {\n var messageInvalidEmailState = $.t(\"app:modules.account.message_invalidEmailState\", { ifMissing: \"Ungültiger Password-Status\" });\n trace.traceError(messageInvalidEmailState, null, \"msg:index\", true);\n _this.logoutCommand.execute(_this);\n }\n }).fail(function (exception) {\n var messageEmailConfirmError = $.t(\"app:modules.account.message_eMailConfirmError\", { ifMissing: \"Fehler bei der E-Mail Bestätigung\" });\n trace.traceError(messageEmailConfirmError + exception.responseJSON.Message, null, \"usermangement\", true);\n });\n };\n LoginViewModel.prototype.getPasswordRulesMessage = function () {\n var self = this;\n var organizationId = Account.Principal.current.organizationId;\n var channel = new http.Channel();\n var result = channel.getData(\"/api/network/organizations/\" + organizationId + \"/passwordrule/message\", http.ServiceTarget.publicApi)\n .then(function (message) {\n self.passwordRulesMessage = message;\n })\n .fail(function (reason) {\n var getPasswordRulesErrorMessage = $.t(\"app:modules.account.message_passwordRulesMessageError\", { ifMissing: \"Fehler beim Laden der Password-Regel\" });\n trace.traceError(getPasswordRulesErrorMessage, null, \"usermangement\", true);\n });\n };\n LoginViewModel.prototype.readExceptionMessage = function (reason) {\n try {\n var message = reason.responseJSON.Message;\n return message;\n }\n catch (exception) {\n return JSON.stringify(reason);\n }\n };\n LoginViewModel.prototype.guardChangedPassword = function () {\n //var showChangePasswordDialog = !(Strings.contains(window.location.search, \"nid=\")) && Account.Principal.current.shouldChangePassword;\n //if (showChangePasswordDialog) {\n //\tApp.showDialog(\"areas/account/viewmodels/changePassword\", Account.Principal.current.id);\n //}\n };\n LoginViewModel.prototype.disableF5 = function (e) {\n if ((e.which || e.keyCode) == 116)\n e.preventDefault();\n };\n ;\n return LoginViewModel;\n }(vm.ViewModelBase));\n return LoginViewModel;\n});\n\n", "/// <reference path=\"../../scripts/typings/i18next/i18next.d.ts\" />\n/// <reference path=\"../../scripts/typings/jquery/jquery.d.ts\" />\ndefine('services/oneclickusermanager',[\"require\", \"exports\", \"durandal/app\", \"models/portal\", \"services/trace\", \"models/account\", \"services/httpclient\", \"common/string\", \"services/settings\", \"areas/account/viewmodels/login\"], function (require, exports, App, Portal, Trace, Account, Http, Strings, Configuration, Login) {\n \"use strict\";\n var CODEFLOW = \"authorizationcode\";\n var AUTHORIZE_ENDPOINT = \"/auth/core/connect/authorize\";\n var SCOPE = \"openid WK.UK.OneClick IdentityPersonalData\";\n var OneClickUserManager = (function () {\n function OneClickUserManager() {\n this._flow = CODEFLOW;\n this._shell = Portal.Context.shell;\n this._taskManager = this._shell.taskManager;\n this._flow = Configuration.Settings.environment.userManager.flow || CODEFLOW;\n this._serverUrl = Configuration.Settings.environment.userManager.serverUrl + AUTHORIZE_ENDPOINT;\n this._redirectUrl = Configuration.Settings.getTokenExchangeEndpoint();\n this._postLogoutUrl = window.location.protocol + \"//\" + window.location.hostname + \"/html\";\n App.off(\"authentication\", this.onAuthenticationChanged, this);\n App.on(\"authentication\", this.onAuthenticationChanged, this);\n }\n OneClickUserManager.prototype.switchUserAccount = function () {\n var switcherurl = \"\";\n Account.Session.clear();\n var responseType = (this._flow === CODEFLOW) ? \"code\" : \"id_token\";\n var aaaConfigurationData = Configuration.Settings.environment.userManager.aaaConfiguration;\n this._clientId = aaaConfigurationData.isMFAEnabled ? 'WK.UK.OneClick.MFA' : 'WK.UK.OneClick';\n var state = jQuery.base64.encode(window.location.protocol + \"//\" + window.location.hostname + \"/html\" + \";\" + this._redirectUrl + \";\" + aaaConfigurationData.isMFAEnabled + \";\" + aaaConfigurationData.practiceGuid);\n var nonce = Math.random().toString();\n var prompt = aaaConfigurationData.isSSOEnabled ? \"prompt=login&\" : \"\";\n var acrValues = aaaConfigurationData.isAAAEnabled ? \"acr_values=\" : \"\";\n acrValues += !aaaConfigurationData.isSSOEnabled ? \"wkBranding:\" + aaaConfigurationData.organizationalUnitId + \" wkFilterByBrandingId:true\" : \"\";\n acrValues += aaaConfigurationData.isSSOEnabled ? \"idp:\" + aaaConfigurationData.ssoIdentityProvider + \" wkBranding:\" + aaaConfigurationData.organizationalUnitId + \" wkFilterByBrandingId:true wkContextManager:noCompanySession\" : \"\";\n switcherurl = this._serverUrl + \"?\" +\n \"client_id=\" + encodeURI(this._clientId) + \"&\" +\n \"redirect_uri=\" + encodeURI(this._redirectUrl) + \"&\" +\n \"nocompanysession\" + \"&\" +\n \"response_type=\" + encodeURI(responseType) + \"&\" +\n \"scope=\" + encodeURI(SCOPE) + \"&\" +\n \"state=\" + state + \"&\" +\n \"nonce=\" + encodeURI(nonce) + \"&\" +\n prompt +\n acrValues;\n console.log(\"OneClick UserManager switchUserAccount executed : \" + switcherurl);\n window.location.assign(switcherurl);\n };\n OneClickUserManager.prototype.getSwitchUserAccountUrl = function () {\n throw new Error('Method not implemented.');\n };\n OneClickUserManager.prototype.showDialog = function () {\n var login = new Login();\n var dialog = new Portal.ContentDialog();\n dialog.path = \"areas/account/views/login\";\n dialog.model = login;\n this._shell.showDialog(dialog);\n };\n OneClickUserManager.prototype.signIn = function (login) {\n return this.authenticate(login);\n };\n OneClickUserManager.prototype.signInFromNid = function (symbol) {\n var _this = this;\n return this._taskManager.startAsync(\"Benutzerdaten werden geprüft...\", function () {\n return _this.authenticateFrom(symbol)\n .then(function (data) {\n App.trigger(\"authentication\", true);\n })\n .fail(function (reason) {\n var message = \"Direkte Anmeldung fehlgeschlagen: \" + reason;\n Trace.traceError(message, null, \"Anmeldung\", true);\n _this.showDialog();\n });\n });\n };\n OneClickUserManager.prototype.signInFromSecret = function (symbol) {\n var _this = this;\n var secret = this.getStringValue(symbol, \"secret\");\n var application = this.getStringValue(symbol, \"application\") || \"dWtjbGllbnRwb3J0YWwNCg==\";\n var request = new Account.Requests.LoginRequest(null, \"Secret:\" + secret, application, null, false);\n return this._taskManager.startAsync(\"Benutzerdaten werden geprüft...\", function () {\n return _this.authenticate(request)\n .then(function (data) {\n App.trigger(\"authentication\", true);\n })\n .fail(function (reason) {\n var message = \"Direkte Anmeldung fehlgeschlagen: \" + reason;\n Trace.traceError(message, null, \"Anmeldung\", true);\n _this.showDialog();\n });\n });\n };\n OneClickUserManager.prototype.signInFromSessionId = function (symbol) {\n var _this = this;\n var sessionId = this.getStringValue(symbol, \"session\");\n var request = new Account.Requests.LoginRequest(null, \"SessionId:\" + sessionId, \"null\", null, false);\n return this._taskManager.startAsync(\"Benutzerdaten werden geprüft...\", function () {\n return _this.authenticate(request)\n .then(function (data) {\n App.trigger(\"authentication\", true);\n })\n .fail(function (reason) {\n var message = \"Direkte Anmeldung fehlgeschlagen: \" + reason;\n Trace.traceError(message, null, \"Anmeldung\", true);\n _this.showDialog();\n });\n });\n };\n OneClickUserManager.prototype.signInFromRefreshToken = function () {\n var _this = this;\n return this._taskManager.startAsync(\"Benutzerdaten werden geprüft...\", function () {\n return _this.authenticateWithRefreshToken()\n .then(function (data) {\n App.trigger(\"authentication\", true);\n })\n .fail(function (reason) {\n var message = \"Automatische Anmeldung fehlgeschlagen: \" + reason;\n Trace.traceError(message, null, \"Anmeldung\", true);\n _this.showDialog();\n });\n });\n };\n OneClickUserManager.prototype.signInFromSsoHash = function (hash) { throw new Error(\"Not implemented\"); };\n OneClickUserManager.prototype.signInFromIdToken = function (hash) {\n throw new Error(\"Method not implemented.\");\n };\n OneClickUserManager.prototype.signInFromAccessToken = function (hash) {\n throw new Error(\"Method not implemented.\");\n };\n OneClickUserManager.prototype.signInFromAuthorizationCode = function (hash) {\n throw new Error(\"Method not implemented.\");\n };\n OneClickUserManager.prototype.signOutSwitchUser = function () {\n throw new Error(\"Method not implemented.\");\n };\n OneClickUserManager.prototype.getChangePasswordUrl = function () {\n throw new Error(\"Method not implemented.\");\n };\n //signOut(): void {\n //\t// send to server\n //\tvar channel = new Http.Channel();\n //\tchannel.postDataAsync(\"/api/account/logout\", Http.ServiceTarget.portalApi, null);\n //\t// in jedem Fall\n //\tAccount.Session.clear();\n //}\n OneClickUserManager.prototype.endSession = function () {\n // send to server\n var channel = new Http.Channel();\n channel.postDataAsync(\"/api/account/logout\", Http.ServiceTarget.portalApi, null);\n // in jedem Fall\n Account.Session.clear();\n };\n OneClickUserManager.prototype.signOut = function () {\n this.endSession();\n var postLogoutUrl = this._postLogoutUrl + \"/?logout=true\";\n var aaaConfigurationData = Configuration.Settings.environment.userManager.aaaConfiguration;\n var clientId = aaaConfigurationData.isMFAEnabled ? 'WK.UK.OneClick.MFA' : 'WK.UK.OneClick';\n var url = Configuration.Settings.environment.getCustomValue(\"LogoutUrl\") + \"?clientid=\" + clientId + \"&redirecturl=\" + encodeURI(postLogoutUrl);\n localStorage.removeItem('deepLink');\n window.location.assign(url);\n };\n OneClickUserManager.prototype.getSettings = function (key) {\n var that = this;\n var channel = new Http.Channel();\n var settingsUrl = \"/api/Account/me/settings/\" + key;\n return channel.getDataAsync(settingsUrl, Http.ServiceTarget.portalApi);\n };\n OneClickUserManager.prototype.saveSettings = function (key, settings) {\n var that = this;\n var channel = new Http.Channel();\n var settingsUrl = \"/api/Account/me/settings/\" + key;\n return channel.postDataAsync(settingsUrl, Http.ServiceTarget.portalApi, settings);\n };\n OneClickUserManager.prototype.changePassword = function (memberId, hash, password) {\n var channel = new Http.Channel();\n return channel.putDataAsync(\"/api/network/members/\" + memberId + \"/password/changerequests/\" + hash, Http.ServiceTarget.publicApi, password);\n };\n OneClickUserManager.prototype.setPasswordFor = function (userId, memberId, password) {\n var channel = new Http.Channel();\n if (userId === null)\n return channel.putDataAsync(\"/api/network/members/\" + memberId + \"/password\", Http.ServiceTarget.publicApi, password);\n else\n return channel.putDataAsync(\"/api/network/useridentities/\" + userId + \"/password\", Http.ServiceTarget.publicApi, password);\n };\n OneClickUserManager.prototype.resetPassword = function (login) {\n var channel = new Http.Channel();\n var parameters = \"&domain=\" + login.domain + \"&clientNumber=\" + login.clientNumber + \"&username=\" + login.username;\n return channel.postDataAsync(\"/api/password/resetpassword\" + \"?\" + parameters, Http.ServiceTarget.portalApi, null);\n };\n //#region event handling\n OneClickUserManager.prototype.onAuthenticationChanged = function () {\n this._shell.hideDialog();\n };\n //#endregion\n //#region helpers\n OneClickUserManager.prototype.getPrincipal = function () {\n var that = this;\n var channel = new Http.Channel();\n var principal = null;\n channel.getData(\"/api/Account/Principal\", Http.ServiceTarget.portalApi)\n .then(function (result) {\n principal = Account.Principal.from(result, i18n.lng());\n if (Strings.contains(Account.Principal.current.memberType, \"_gateway\")) {\n that.signOut();\n throw \"Dieser Benutzer dient dem Datenaustausch mit externen Systemen, eine direkte Anmeldung ist mit ihm nicht möglich.\";\n }\n })\n .fail(function (reason) {\n Trace.traceError(\"Fehler bei der Anmeldung: \" + reason, null, \"Anmeldung\", true);\n });\n return principal;\n };\n OneClickUserManager.prototype.authenticate = function (login) {\n var _this = this;\n var currentSystemLanguage = i18n.lng();\n var defer = Q.defer();\n var data = login.toJson();\n this.sendOAuthRequest(data, login.authenticationHeader)\n .then(function (data) {\n Account.Session.clear();\n Account.Session.setAuthentication(data.access_token, data.expires_in);\n if (login.keepSignedIn) {\n Account.Session.refreshToken = data.refresh_token;\n }\n var principal = _this.getPrincipal();\n Account.Principal.current = principal;\n Account.Session.loginName = principal.loginName;\n defer.resolve(principal);\n })\n .fail(function (reason) {\n defer.reject(_this.readAuthenticationError(reason));\n });\n return defer.promise;\n };\n OneClickUserManager.prototype.authenticateWithRefreshToken = function () {\n var _this = this;\n var defer = Q.defer();\n var data = {\n grant_type: \"refresh_token\",\n refresh_token: Account.Session.refreshToken\n };\n this.sendOAuthRequest(data, Account.Requests.PortalBasicAuthenticationHeader)\n .then(function (data) {\n Account.Session.clear();\n Account.Session.setAuthentication(data.access_token, data.expires_in);\n Account.Session.refreshToken = data.refresh_token;\n Account.Principal.current = _this.getPrincipal();\n Account.Session.loginName = Account.Principal.current.loginName;\n defer.resolve(Account.Principal.current);\n })\n .fail(function (reason) {\n defer.reject(_this.readAuthenticationError(reason));\n });\n return defer.promise;\n };\n OneClickUserManager.prototype.authenticateFrom = function (symbol) {\n var _this = this;\n var defer = Q.defer();\n var channel = new Http.Channel();\n channel.postDataAsync(\"/api/account/login\", Http.ServiceTarget.portalApi, symbol)\n .then(function (data) {\n Account.Session.clear();\n Account.Session.setAuthentication(data.access_token, data.expires_in);\n Account.Principal.current = _this.getPrincipal();\n Account.Session.loginName = Account.Principal.current.loginName;\n defer.resolve(Account.Principal.current);\n })\n .fail(function (reason) {\n defer.reject(_this.readAuthenticationError(reason));\n });\n return defer.promise;\n };\n OneClickUserManager.prototype.sendOAuthRequest = function (data, authHeader) {\n var endpoint = \"connect/token\";\n var service = \"authority\";\n var tokenServer = Configuration.Settings.getServiceFor(service, endpoint, null);\n return Q(jQuery.ajax(tokenServer, {\n type: \"POST\",\n async: false,\n beforeSend: function (xhr, settings) {\n xhr.setRequestHeader(\"Authorization\", authHeader);\n },\n contentType: \"application/x-www-form-urlencoded\",\n //mimeType: \"application/json\",\n data: data\n }));\n };\n OneClickUserManager.prototype.readAuthenticationError = function (reason) {\n try {\n if (typeof (reason) == \"string\")\n return reason;\n var message = JSON.parse(reason.responseText);\n var result = message.error;\n var detail = message.error_description;\n if (result === \"invalid_grant\") {\n result = $.t(\"app:modules.account.message_loginError\", { ifMissing: \"Es ist ein Fehler bei der Anmeldung aufgetreten. Bitte prüfen Sie Ihre Zugangsdaten.\" });\n if (detail.indexOf(5002) > 0) {\n result = $.t(\"app:modules.account.message_memberDisabled\", { ifMissing: \"Der Zugang wurde gesperrt!\" });\n }\n }\n return result;\n }\n catch (exception) {\n return JSON.stringify(reason);\n }\n };\n OneClickUserManager.prototype.getStringValue = function (url, field) {\n var href = url ? url : window.location.href;\n var reg = new RegExp('[?&]' + field + '=([^&#]*)', 'i');\n var string = reg.exec(href);\n return string ? string[1] : null;\n };\n ;\n return OneClickUserManager;\n }());\n return OneClickUserManager;\n});\n\n", "define('services/aaausermanager',[\"require\", \"exports\", \"durandal/app\", \"models/account\", \"models/portal\", \"services/httpclient\", \"services/settings\", \"services/oneclickusermanager\", \"common/string\", \"services/trace\"], function (require, exports, App, Account, Portal, Http, Configuration, OneClickUserManager, Strings, Trace) {\n \"use strict\";\n var AUTHORIZE_ENDPOINT = \"/auth/core/connect/authorize\";\n var END_SESSION_ENDPOINT = \"/auth/core/connect/endsession\";\n var TOKEN_ENDPOINT = \"/auth/core/connect/token\";\n var CHANGEPASSWORD_ENDPOINT = \"/extern/security\";\n var SECRET = \"oneclick.secret\";\n var SCOPE = \"openid WK.UK.OneClick IdentityPersonalData\";\n var CODEFLOW = \"authorizationcode\";\n var IMPLICITFLOW = \"implicit\";\n var openIntegrationUrl = \"/open-integration\";\n var messagesDocumentsUrl = \"/messages-documents\";\n var mtdfvUrl = \"/mtdfv\";\n var redirectCookieName = \"redirectOneClickModule\";\n var employeeMemberType = \"stb_postmaster\";\n var clientMemberType = \"client_postmaster\";\n var AAAUserManager = (function () {\n function AAAUserManager(clientId, leadingApplication) {\n this._flow = CODEFLOW;\n this._location = null;\n this._shell = Portal.Context.shell;\n this._taskManager = this._shell.taskManager;\n this._location = window.location;\n this._clientSecret = Strings.isNullOrEmpty(Configuration.Settings.environment.userManager.clientSecret)\n ? SECRET\n : jQuery.base64.decode(Configuration.Settings.environment.userManager.clientSecret);\n this._leadingApplication = leadingApplication || \"oneclick\";\n this._flow = Configuration.Settings.environment.userManager.flow || CODEFLOW;\n this._serverUrl = Configuration.Settings.environment.userManager.serverUrl + AUTHORIZE_ENDPOINT;\n this._changePasswordUrl = Configuration.Settings.environment.userManager.serverUrl + CHANGEPASSWORD_ENDPOINT;\n this._oneclickUserManager = new OneClickUserManager();\n this._redirectUrl = Configuration.Settings.getTokenExchangeEndpoint();\n this._postLogoutUrl = window.location.protocol + \"//\" + window.location.hostname + \"/html\";\n }\n AAAUserManager.prototype.showDialog = function () {\n var deeplinkModule = \"\";\n if (document.cookie.indexOf(redirectCookieName) >= 0) {\n var redirectCookieValue = this.getCookie(redirectCookieName);\n console.log(\"Cookie value : \" + redirectCookieValue.toLowerCase());\n if (redirectCookieValue !== \"\" && redirectCookieValue.toLowerCase() == openIntegrationUrl.toLowerCase()) {\n console.log(\"entered : \" + openIntegrationUrl.toLowerCase());\n deeplinkModule = openIntegrationUrl.toLowerCase();\n // Removing cookie so that it won't be used next time\n var expirationTime = new Date(new Date().getTime());\n document.cookie = redirectCookieName + \"=\" + redirectCookieValue.toLowerCase() + \";expires=\" + expirationTime.toUTCString() + \";path=/;\";\n }\n else if (redirectCookieValue !== \"\" && redirectCookieValue.toLowerCase() == messagesDocumentsUrl.toLowerCase()) {\n console.log(\"entered : \" + messagesDocumentsUrl.toLowerCase());\n deeplinkModule = messagesDocumentsUrl.toLowerCase();\n // Removing cookie so that it won't be used next time\n var expirationTime = new Date(new Date().getTime());\n document.cookie = redirectCookieName + \"=\" + redirectCookieValue.toLowerCase() + \";expires=\" + expirationTime.toUTCString() + \";path=/;\";\n }\n else if (redirectCookieValue !== \"\" && redirectCookieValue.toLowerCase() == mtdfvUrl.toLowerCase()) {\n console.log(\"entered : \" + mtdfvUrl.toLowerCase());\n deeplinkModule = mtdfvUrl.toLowerCase();\n // Removing cookie so that it won't be used next time\n var expirationTime = new Date(new Date().getTime());\n document.cookie = redirectCookieName + \"=\" + redirectCookieValue.toLowerCase() + \";expires=\" + expirationTime.toUTCString() + \";path=/;\";\n }\n }\n var responseType = (this._flow === CODEFLOW) ? \"code\" : \"id_token\";\n var hash = window.location.hash;\n var search = window.location.search;\n if (hash === \"\")\n hash = \"#home\";\n var aaaConfigurationData = Configuration.Settings.environment.userManager.aaaConfiguration;\n var state = jQuery.base64.encode(window.location.protocol + \"//\" + window.location.hostname + \"/html\" + \";\" + this._redirectUrl + \";\" + aaaConfigurationData.isMFAEnabled + \";\" + aaaConfigurationData.practiceGuid + ((deeplinkModule != \"\") ? \";\" + deeplinkModule : \"\")); //jQuery.base64.encode(hash + search, true);\n var nonce = Math.random().toString(); //rand();\n var url = \"\";\n this._clientId = aaaConfigurationData.isMFAEnabled ? 'WK.UK.OneClick.MFA' : 'WK.UK.OneClick';\n var prompt = aaaConfigurationData.isSSOEnabled ? \"prompt=login&\" : \"\";\n var acrValues = aaaConfigurationData.isAAAEnabled ? \"acr_values=\" : \"\";\n acrValues += !aaaConfigurationData.isSSOEnabled ? \"wkBranding:\" + aaaConfigurationData.organizationalUnitId + \" wkFilterByBrandingId:true\" : \"\";\n acrValues += aaaConfigurationData.isSSOEnabled ? \"idp:\" + aaaConfigurationData.ssoIdentityProvider + \" wkBranding:\" + aaaConfigurationData.organizationalUnitId + \" wkFilterByBrandingId:true\" : \"\";\n if (window.location.search === '?logout=true' || (window.location.href === window.location.protocol + \"//\" + window.location.hostname + \"/html/#logout\")) {\n if (localStorage['idToken'] != undefined && localStorage['idToken'] != \"null\") {\n url = Configuration.Settings.environment.userManager.serverUrl + END_SESSION_ENDPOINT\n + \"?id_token_hint=\" + localStorage['idToken']\n + \"&post_logout_redirect_uri=\" + encodeURI(this._postLogoutUrl);\n localStorage.removeItem('idToken');\n localStorage.removeItem('deepLink');\n }\n else {\n url = window.location.protocol + \"//\" + window.location.hostname + \"/html\";\n }\n }\n else {\n url = this._serverUrl + \"?\" +\n \"client_id=\" + encodeURI(this._clientId) + \"&\" +\n \"redirect_uri=\" + encodeURI(this._redirectUrl) + \"&\" +\n \"nocompanysession\" + \"&\" +\n \"response_type=\" + encodeURI(responseType) + \"&\" +\n \"scope=\" + encodeURI(SCOPE) + \"&\" +\n \"state=\" + state + \"&\" +\n \"nonce=\" + encodeURI(nonce) + \"&\" +\n prompt +\n acrValues;\n }\n console.log(\"AAA UserManager showDialog executed : \" + url);\n window.location.assign(url);\n };\n AAAUserManager.prototype.getPrincipal = function () {\n var that = this;\n var channel = new Http.Channel();\n var currentSystemLanguage = i18n.lng();\n return channel.getData(\"/api/Account/Principal\", Http.ServiceTarget.portalApi)\n .then(function (result) {\n var principal = Account.Principal.from(result, currentSystemLanguage);\n if (Strings.contains(Account.Principal.current.memberType, \"_gateway\")) {\n that.signOut();\n throw \"Dieser Benutzer dient dem Datenaustausch mit externen Systemen, eine direkte Anmeldung ist mit ihm nicht möglich.\";\n }\n return principal;\n })\n .fail(function (reason) {\n Trace.traceError(\"Fehler bei der Anmeldung: \" + reason, null, \"Anmeldung\", true);\n return $.Deferred().reject(reason).promise();\n });\n };\n // #region get cookie by name\n AAAUserManager.prototype.getCookie = function (cname) {\n var name = cname + \"=\";\n var decodedCookie = decodeURIComponent(document.cookie);\n var ca = decodedCookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return \"\";\n };\n // #endregion\n AAAUserManager.prototype.signInFromSecret = function (symbol) {\n // delegate it\n return this._oneclickUserManager.signInFromSecret(symbol);\n };\n AAAUserManager.prototype.signInFromSessionId = function (symbol) {\n // delegate it\n return this._oneclickUserManager.signInFromSessionId(symbol);\n };\n AAAUserManager.prototype.signIn = function (login) {\n // delegate it - this is used for account switching for contacts linked to multiple clients\n return this._oneclickUserManager.signIn(login);\n };\n AAAUserManager.prototype.signInFromNid = function (symbol) {\n throw new Error('Method not implemented.');\n };\n AAAUserManager.prototype.signInFromRefreshToken = function () {\n throw new Error('Method not implemented.');\n };\n AAAUserManager.prototype.signInFromAccessToken = function (hash) {\n throw new Error('Method not implemented.');\n };\n AAAUserManager.prototype.signInFromAuthorizationCode = function (hash) {\n throw new Error('Method not implemented.');\n };\n AAAUserManager.prototype.redirectdeeplink = function (deeplink, sessionId, memberType) {\n var url = \"\";\n if (deeplink === messagesDocumentsUrl.toLowerCase()) {\n url = window.location.protocol + \"//\" + window.location.hostname + \"/messages/OneClickAccount/Token?tokenId=\" + sessionId + \"&deepLink=true\";\n window.location.assign(url);\n }\n else if (deeplink === openIntegrationUrl.toLowerCase()) {\n url = window.location.protocol + \"//\" + window.location.hostname + \"/dw/#/default/businesses/business-list/list?tokenId=\" + sessionId + \"&fromfinsit=true\";\n window.location.assign(url);\n }\n else if (deeplink === mtdfvUrl.toLowerCase()) {\n if (memberType === clientMemberType.toLocaleLowerCase()) {\n url = window.location.protocol + \"//\" + window.location.hostname + \"/compliance/#/?tokenId=\" + sessionId;\n }\n else {\n url = window.location.protocol + \"//\" + window.location.hostname + \"/compliance/#/default/clients/select-client/list?tokenId=\" + sessionId;\n }\n window.location.assign(url);\n }\n };\n AAAUserManager.prototype.signInFromIdToken = function (hash) {\n var hashValues = this.convertHash(hash);\n Account.Session.clear();\n localStorage['idToken'] = hashValues.id_token;\n var principal;\n var deeplink = hashValues.deepLink;\n var sessionId = hashValues.session;\n var memberType = hashValues.memberType;\n if (deeplink !== \"null\" && deeplink !== \"\" && deeplink !== undefined &&\n sessionId !== \"null\" && sessionId !== \"\" && sessionId !== undefined &&\n memberType !== \"null\" && memberType !== \"\" && memberType !== undefined &&\n (memberType.toLowerCase() === employeeMemberType.toLowerCase() || memberType.toLowerCase() === clientMemberType.toLowerCase()) &&\n (deeplink.toLowerCase() === messagesDocumentsUrl.toLowerCase() || deeplink.toLowerCase() === mtdfvUrl.toLowerCase() || deeplink.toLowerCase() === openIntegrationUrl.toLowerCase())) {\n if (memberType.toLowerCase() === clientMemberType.toLowerCase()) {\n var aaaConfigurationData = Configuration.Settings.environment.userManager.aaaConfiguration;\n var url = this.getSwitchUserAccountUrl();\n var objDeepLink = {\n deepLink: true,\n organizationalUnitId: aaaConfigurationData.organizationalUnitId,\n switchAccountUrl: url\n };\n localStorage.setItem('deepLink', JSON.stringify(objDeepLink));\n }\n this.redirectdeeplink(deeplink.toLowerCase(), sessionId, memberType.toLowerCase());\n return Q.resolve(null); // No principal to return, so resolve with null\n }\n else {\n Account.Session.setAuthentication(hashValues.access_token, hashValues.expires);\n // Convert jQueryPromise to Q.Promise\n return Q(this.getPrincipal())\n .then(function (resolvedPrincipal) {\n principal = resolvedPrincipal;\n Account.Principal.current = principal;\n Account.Session.loginName = principal.loginName; // Use the loginName from the principal object\n App.trigger(\"authentication\", true);\n return principal; // Return the principal as the resolved value\n })\n .catch(function (reason) {\n console.error(\"Failed to get principal:\", reason);\n // Handle the error, possibly by rejecting the promise\n return Q.reject(reason);\n });\n }\n };\n AAAUserManager.prototype.signInFromSsoHash = function (hash) {\n throw new Error(\"Method not implemented.\");\n };\n AAAUserManager.prototype.signOutSwitchUser = function () {\n this.endSession();\n };\n AAAUserManager.prototype.switchUserAccount = function () {\n var switcherurl = \"\";\n Account.Session.clear();\n var responseType = (this._flow === CODEFLOW) ? \"code\" : \"id_token\";\n var aaaConfigurationData = Configuration.Settings.environment.userManager.aaaConfiguration;\n this._clientId = aaaConfigurationData.isMFAEnabled ? 'WK.UK.OneClick.MFA' : 'WK.UK.OneClick';\n var state = jQuery.base64.encode(window.location.protocol + \"//\" + window.location.hostname + \"/html\" + \";\" + this._redirectUrl + \";\" + aaaConfigurationData.isMFAEnabled + \";\" + aaaConfigurationData.practiceGuid); //jQuery.base64.encode(hash + search, true);\n var nonce = Math.random().toString();\n var prompt = aaaConfigurationData.isSSOEnabled ? \"prompt=login&\" : \"\";\n var acrValues = aaaConfigurationData.isAAAEnabled ? \"acr_values=\" : \"\";\n acrValues += !aaaConfigurationData.isSSOEnabled ? \"wkBranding:\" + aaaConfigurationData.organizationalUnitId + \" wkFilterByBrandingId:true\" : \"\";\n acrValues += aaaConfigurationData.isSSOEnabled ? \"idp:\" + aaaConfigurationData.ssoIdentityProvider + \" wkBranding:\" + aaaConfigurationData.organizationalUnitId + \" wkFilterByBrandingId:true wkContextManager:noCompanySession\" : \"\";\n switcherurl = this._serverUrl + \"?\" +\n \"client_id=\" + encodeURI(this._clientId) + \"&\" +\n \"redirect_uri=\" + encodeURI(this._redirectUrl) + \"&\" +\n \"nocompanysession\" + \"&\" +\n \"response_type=\" + encodeURI(responseType) + \"&\" +\n \"scope=\" + encodeURI(SCOPE) + \"&\" +\n \"state=\" + state + \"&\" +\n \"nonce=\" + encodeURI(nonce) + \"&\" +\n prompt +\n acrValues;\n console.log(\"AAA UserManager switchUserAccount executed : \" + switcherurl);\n window.location.assign(switcherurl);\n };\n AAAUserManager.prototype.getSwitchUserAccountUrl = function () {\n var switcherurl = \"\";\n var responseType = (this._flow === CODEFLOW) ? \"code\" : \"id_token\";\n var aaaConfigurationData = Configuration.Settings.environment.userManager.aaaConfiguration;\n this._clientId = aaaConfigurationData.isMFAEnabled ? 'WK.UK.OneClick.MFA' : 'WK.UK.OneClick';\n var state = jQuery.base64.encode(window.location.protocol + \"//\" + window.location.hostname + \"/html\" + \";\" + this._redirectUrl + \";\" + aaaConfigurationData.isMFAEnabled + \";\" + aaaConfigurationData.practiceGuid + \";\" + messagesDocumentsUrl); //jQuery.base64.encode(hash + search, true);\n var nonce = Math.random().toString();\n var prompt = aaaConfigurationData.isSSOEnabled ? \"prompt=login&\" : \"\";\n var acrValues = aaaConfigurationData.isAAAEnabled ? \"acr_values=\" : \"\";\n acrValues += !aaaConfigurationData.isSSOEnabled ? \"wkBranding:\" + aaaConfigurationData.organizationalUnitId + \" wkFilterByBrandingId:true\" : \"\";\n acrValues += aaaConfigurationData.isSSOEnabled ? \"idp:\" + aaaConfigurationData.ssoIdentityProvider + \" wkBranding:\" + aaaConfigurationData.organizationalUnitId + \" wkFilterByBrandingId:true wkContextManager:noCompanySession\" : \"\";\n switcherurl = this._serverUrl + \"?\" +\n \"client_id=\" + encodeURI(this._clientId) + \"&\" +\n \"redirect_uri=\" + encodeURI(this._redirectUrl) + \"&\" +\n \"nocompanysession\" + \"&\" +\n \"response_type=\" + encodeURI(responseType) + \"&\" +\n \"scope=\" + encodeURI(SCOPE) + \"&\" +\n \"state=\" + state + \"&\" +\n \"nonce=\" + encodeURI(nonce) + \"&\" +\n prompt +\n acrValues;\n console.log(\"AAA UserManager getSwitchUserAccountUrl executed : \" + switcherurl);\n return switcherurl;\n };\n AAAUserManager.prototype.endSession = function () {\n // send to server\n var channel = new Http.Channel();\n channel.postDataAsync(\"/api/account/logout\", Http.ServiceTarget.portalApi, null);\n // in jedem Fall\n Account.Session.clear();\n };\n AAAUserManager.prototype.signOut = function () {\n this.endSession();\n var postLogoutUrl = this._postLogoutUrl + \"/?logout=true\";\n var aaaConfigurationData = Configuration.Settings.environment.userManager.aaaConfiguration;\n var clientId = aaaConfigurationData.isMFAEnabled ? 'WK.UK.OneClick.MFA' : 'WK.UK.OneClick';\n var url = Configuration.Settings.environment.getCustomValue(\"LogoutUrl\") + \"?clientid=\" + clientId + \"&redirecturl=\" + encodeURI(postLogoutUrl);\n localStorage.removeItem('deepLink');\n window.location.assign(url);\n };\n AAAUserManager.prototype.getSettings = function (key) {\n var that = this;\n var channel = new Http.Channel();\n var settingsUrl = \"/api/Account/me/settings/\" + key;\n return channel.getDataAsync(settingsUrl, Http.ServiceTarget.portalApi);\n };\n AAAUserManager.prototype.saveSettings = function (key, settings) {\n var that = this;\n var channel = new Http.Channel();\n var settingsUrl = \"/api/Account/me/settings/\" + key;\n return channel.postDataAsync(settingsUrl, Http.ServiceTarget.portalApi, settings);\n };\n AAAUserManager.prototype.changePassword = function (memberId, hash, password) {\n // delegate it\n return this._oneclickUserManager.changePassword(memberId, hash, password);\n };\n AAAUserManager.prototype.setPasswordFor = function (userId, memberId, password) {\n // delegate it\n return this._oneclickUserManager.setPasswordFor(userId, memberId, password);\n };\n AAAUserManager.prototype.resetPassword = function (login) {\n // delegate it\n return this._oneclickUserManager.resetPassword(login);\n };\n AAAUserManager.prototype.getChangePasswordUrl = function () {\n return this._changePasswordUrl;\n };\n AAAUserManager.prototype.convertHash = function (hash) {\n var response = hash.substr(1);\n return response.split(\"&\")\n .reduce(function (result, item) {\n var parts = item.split(\"=\");\n result[parts[0]] = parts[1];\n return result;\n }, {});\n };\n return AAAUserManager;\n }());\n return AAAUserManager;\n});\n\n", "/// <reference path=\"../../scripts/typings/i18next/i18next.d.ts\" />\n/// <reference path=\"../../scripts/typings/jquery/jquery.d.ts\" />\ndefine('services/simpleusermanager',[\"require\", \"exports\", \"durandal/app\", \"models/portal\", \"services/trace\", \"models/account\", \"services/httpclient\", \"common/string\", \"services/settings\", \"areas/account/viewmodels/login\"], function (require, exports, App, Portal, Trace, Account, Http, Strings, Configuration, Login) {\n \"use strict\";\n var CODEFLOW = \"authorizationcode\";\n var AUTHORIZE_ENDPOINT = \"/auth/core/connect/authorize\";\n var SCOPE = \"openid WK.UK.OneClick IdentityPersonalData\";\n var SimpleUserManager = (function () {\n function SimpleUserManager() {\n this._flow = CODEFLOW;\n this._shell = Portal.Context.shell;\n this._taskManager = this._shell.taskManager;\n this._flow = Configuration.Settings.environment.userManager.flow || CODEFLOW;\n this._serverUrl = Configuration.Settings.environment.userManager.serverUrl + AUTHORIZE_ENDPOINT;\n this._redirectUrl = Configuration.Settings.getTokenExchangeEndpoint();\n this._postLogoutUrl = window.location.protocol + \"//\" + window.location.hostname + \"/html\";\n App.off(\"authentication\", this.onAuthenticationChanged, this);\n App.on(\"authentication\", this.onAuthenticationChanged, this);\n }\n SimpleUserManager.prototype.switchUserAccount = function () {\n var switcherurl = \"\";\n Account.Session.clear();\n var responseType = (this._flow === CODEFLOW) ? \"code\" : \"id_token\";\n var aaaConfigurationData = Configuration.Settings.environment.userManager.aaaConfiguration;\n this._clientId = aaaConfigurationData.isMFAEnabled ? 'WK.UK.OneClick.MFA' : 'WK.UK.OneClick';\n var state = jQuery.base64.encode(window.location.protocol + \"//\" + window.location.hostname + \"/html\" + \";\" + this._redirectUrl + \";\" + aaaConfigurationData.isMFAEnabled + \";\" + aaaConfigurationData.practiceGuid);\n var nonce = Math.random().toString();\n var prompt = aaaConfigurationData.isSSOEnabled ? \"prompt=login&\" : \"\";\n var acrValues = aaaConfigurationData.isAAAEnabled ? \"acr_values=\" : \"\";\n acrValues += !aaaConfigurationData.isSSOEnabled ? \"wkBranding:\" + aaaConfigurationData.organizationalUnitId + \" wkFilterByBrandingId:true\" : \"\";\n acrValues += aaaConfigurationData.isSSOEnabled ? \"idp:\" + aaaConfigurationData.ssoIdentityProvider + \" wkBranding:\" + aaaConfigurationData.organizationalUnitId + \" wkFilterByBrandingId:true wkContextManager:noCompanySession\" : \"\";\n switcherurl = this._serverUrl + \"?\" +\n \"client_id=\" + encodeURI(this._clientId) + \"&\" +\n \"redirect_uri=\" + encodeURI(this._redirectUrl) + \"&\" +\n \"nocompanysession\" + \"&\" +\n \"response_type=\" + encodeURI(responseType) + \"&\" +\n \"scope=\" + encodeURI(SCOPE) + \"&\" +\n \"state=\" + state + \"&\" +\n \"nonce=\" + encodeURI(nonce) + \"&\" +\n prompt +\n acrValues;\n console.log(\"Simple UserManager switchUserAccount executed : \" + switcherurl);\n window.location.assign(switcherurl);\n };\n SimpleUserManager.prototype.getSwitchUserAccountUrl = function () {\n throw new Error('Method not implemented.');\n };\n SimpleUserManager.prototype.showDialog = function () {\n var login = new Login();\n login.showClientNumber = false;\n var dialog = new Portal.ContentDialog();\n dialog.path = \"areas/account/views/login\";\n dialog.model = login;\n this._shell.showDialog(dialog);\n };\n SimpleUserManager.prototype.signIn = function (login) {\n return this.authenticate(login);\n };\n SimpleUserManager.prototype.signInFromNid = function (symbol) {\n var _this = this;\n return this._taskManager.startAsync(\"Benutzerdaten werden geprüft...\", function () {\n return _this.authenticateFrom(symbol)\n .then(function (data) {\n App.trigger(\"authentication\", true);\n })\n .fail(function (reason) {\n var message = \"Direkte Anmeldung fehlgeschlagen: \" + reason;\n Trace.traceError(message, null, \"Anmeldung\", true);\n _this.showDialog();\n });\n });\n };\n SimpleUserManager.prototype.signInFromSecret = function (symbol) {\n var _this = this;\n var secret = this.getStringValue(symbol, \"secret\");\n var application = this.getStringValue(symbol, \"application\") || \"dWtjbGllbnRwb3J0YWwNCg==\";\n var request = new Account.Requests.LoginRequest(null, \"Secret:\" + secret, application, null, false);\n return this._taskManager.startAsync(\"Benutzerdaten werden geprüft...\", function () {\n return _this.authenticate(request)\n .then(function (data) {\n App.trigger(\"authentication\", true);\n })\n .fail(function (reason) {\n var message = \"Direkte Anmeldung fehlgeschlagen: \" + reason;\n Trace.traceError(message, null, \"Anmeldung\", true);\n _this.showDialog();\n });\n });\n };\n SimpleUserManager.prototype.signInFromSessionId = function (symbol) {\n var _this = this;\n var sessionId = this.getStringValue(symbol, \"session\");\n var request = new Account.Requests.LoginRequest(null, \"SessionId:\" + sessionId, \"null\", null, false);\n // Convert jQueryPromise to Q.Promise\n return Q(this._taskManager.startAsync(\"Benutzerdaten werden geprüft...\", function () {\n return _this.authenticate(request)\n .then(function (data) {\n App.trigger(\"authentication\", true);\n return data; // Returning data if needed\n })\n .fail(function (reason) {\n var message = \"Direkte Anmeldung fehlgeschlagen: \" + reason;\n Trace.traceError(message, null, \"Anmeldung\", true);\n _this.showDialog();\n return $.Deferred().reject(reason).promise(); // Reject the promise with the reason\n });\n }));\n };\n SimpleUserManager.prototype.signInFromRefreshToken = function () {\n var _this = this;\n return this._taskManager.startAsync(\"Benutzerdaten werden geprüft...\", function () {\n return _this.authenticateWithRefreshToken()\n .then(function (data) {\n App.trigger(\"authentication\", true);\n })\n .fail(function (reason) {\n var message = \"Automatische Anmeldung fehlgeschlagen: \" + reason;\n Trace.traceError(message, null, \"Anmeldung\", true);\n _this.showDialog();\n });\n });\n };\n SimpleUserManager.prototype.signInFromSsoHash = function (hash) { throw new Error(\"Not implemented\"); };\n SimpleUserManager.prototype.signInFromIdToken = function (hash) {\n throw new Error(\"Method not implemented.\");\n };\n SimpleUserManager.prototype.signInFromAccessToken = function (hash) {\n throw new Error(\"Method not implemented.\");\n };\n SimpleUserManager.prototype.signInFromAuthorizationCode = function (hash) {\n this.signOut();\n return Q(true);\n };\n SimpleUserManager.prototype.signOutSwitchUser = function () {\n var channel = new Http.Channel();\n channel.postDataAsync(\"/api/account/logout\", Http.ServiceTarget.portalApi, null);\n // in jedem Fall\n Account.Session.clear();\n this._shell.router.navigate(\"#\");\n App.trigger(\"authentication\", true);\n };\n SimpleUserManager.prototype.getChangePasswordUrl = function () {\n throw new Error(\"Method not implemented.\");\n };\n //signOut(): void {\n // // send to server\n // var channel = new Http.Channel();\n // channel.postDataAsync(\"/api/account/logout\", Http.ServiceTarget.portalApi, null);\n // // in jedem Fall\n // Account.Session.clear();\n // // redirect\n // this._shell.router = null;\n // App.trigger(\"authentication\", true);\n // window.location.href = window.location.origin + \"/html\";\n //}\n SimpleUserManager.prototype.endSession = function () {\n // send to server\n var channel = new Http.Channel();\n channel.postDataAsync(\"/api/account/logout\", Http.ServiceTarget.portalApi, null);\n // in jedem Fall\n Account.Session.clear();\n };\n SimpleUserManager.prototype.signOut = function () {\n this.endSession();\n var postLogoutUrl = this._postLogoutUrl + \"/?logout=true\";\n var aaaConfigurationData = Configuration.Settings.environment.userManager.aaaConfiguration;\n var clientId = aaaConfigurationData.isMFAEnabled ? 'WK.UK.OneClick.MFA' : 'WK.UK.OneClick';\n var url = Configuration.Settings.environment.getCustomValue(\"LogoutUrl\") + \"?clientid=\" + clientId + \"&redirecturl=\" + encodeURI(postLogoutUrl);\n localStorage.removeItem('deepLink');\n window.location.assign(url);\n };\n SimpleUserManager.prototype.getSettings = function (key) {\n var that = this;\n var channel = new Http.Channel();\n var settingsUrl = \"/api/Account/me/settings/\" + key;\n return channel.getDataAsync(settingsUrl, Http.ServiceTarget.portalApi);\n };\n SimpleUserManager.prototype.saveSettings = function (key, settings) {\n var that = this;\n var channel = new Http.Channel();\n var settingsUrl = \"/api/Account/me/settings/\" + key;\n return channel.postDataAsync(settingsUrl, Http.ServiceTarget.portalApi, settings);\n };\n SimpleUserManager.prototype.changePassword = function (memberId, hash, password) {\n var channel = new Http.Channel();\n return channel.putDataAsync(\"/api/network/members/\" + memberId + \"/password/changerequests/\" + hash, Http.ServiceTarget.publicApi, password);\n };\n SimpleUserManager.prototype.setPasswordFor = function (userId, memberId, password) {\n var channel = new Http.Channel();\n if (userId === null)\n return channel.putDataAsync(\"/api/network/members/\" + memberId + \"/password\", Http.ServiceTarget.publicApi, password);\n else\n return channel.putDataAsync(\"/api/network/useridentities/\" + userId + \"/password\", Http.ServiceTarget.publicApi, password);\n };\n SimpleUserManager.prototype.resetPassword = function (login) {\n var url = Configuration.Settings.environment.getCustomValue(\"ResetPasswordEndpoint\");\n if (url) {\n return this.resetPasswordWithConfiguration(login, url);\n }\n else {\n return this.resetPasswordWithoutConfiguration(login);\n }\n };\n //#region event handling\n SimpleUserManager.prototype.onAuthenticationChanged = function () {\n this._shell.hideDialog();\n };\n //#endregion\n //#region helpers\n SimpleUserManager.prototype.getPrincipal = function () {\n var that = this;\n var channel = new Http.Channel();\n var currentSystemLanguage = i18n.lng();\n return channel.getData(\"/api/Account/Principal\", Http.ServiceTarget.portalApi)\n .then(function (result) {\n var principal = Account.Principal.from(result, currentSystemLanguage);\n if (Strings.contains(Account.Principal.current.memberType, \"_gateway\")) {\n that.signOut();\n throw \"Dieser Benutzer dient dem Datenaustausch mit externen Systemen, eine direkte Anmeldung ist mit ihm nicht möglich.\";\n }\n return principal;\n })\n .fail(function (reason) {\n Trace.traceError(\"Fehler bei der Anmeldung: \" + reason, null, \"Anmeldung\", true);\n return $.Deferred().reject(reason).promise();\n });\n };\n SimpleUserManager.prototype.authenticate = function (login) {\n var _this = this;\n var currentSystemLanguage = i18n.lng();\n var defer = Q.defer();\n var data = login.toJson();\n this.sendOAuthRequest(data, login.authenticationHeader)\n .then(function (data) {\n Account.Session.clear();\n Account.Session.setAuthentication(data.access_token, data.expires_in);\n if (login.keepSignedIn) {\n Account.Session.refreshToken = data.refresh_token;\n }\n // Handle the asynchronous `getPrincipal` method\n return Q(_this.getPrincipal()); // Convert the JQueryPromise to Q.Promise\n })\n .then(function (principal) {\n Account.Principal.current = principal;\n Account.Session.loginName = principal.loginName;\n defer.resolve(principal); // Resolve with the retrieved principal\n })\n .fail(function (reason) {\n defer.reject(_this.readAuthenticationError(reason)); // Reject with the error reason\n });\n return defer.promise;\n };\n SimpleUserManager.prototype.authenticateWithRefreshToken = function () {\n var _this = this;\n var defer = Q.defer();\n var data = {\n grant_type: \"refresh_token\",\n refresh_token: Account.Session.refreshToken\n };\n this.sendOAuthRequest(data, Account.Requests.PortalBasicAuthenticationHeader)\n .then(function (data) {\n Account.Session.clear();\n Account.Session.setAuthentication(data.access_token, data.expires_in);\n Account.Session.refreshToken = data.refresh_token;\n // Handle the asynchronous `getPrincipal` method\n return Q(_this.getPrincipal()); // Convert the JQueryPromise to Q.Promise\n })\n .then(function (principal) {\n Account.Principal.current = principal;\n Account.Session.loginName = principal.loginName;\n defer.resolve(principal); // Resolve with the retrieved principal\n })\n .fail(function (reason) {\n defer.reject(_this.readAuthenticationError(reason)); // Reject with the error reason\n });\n return defer.promise;\n };\n SimpleUserManager.prototype.authenticateFrom = function (symbol) {\n var _this = this;\n var defer = Q.defer();\n var channel = new Http.Channel();\n channel.postDataAsync(\"/api/account/login\", Http.ServiceTarget.portalApi, symbol)\n .then(function (data) {\n Account.Session.clear();\n Account.Session.setAuthentication(data.access_token, data.expires_in);\n // Handle the asynchronous `getPrincipal` method\n return Q(_this.getPrincipal()); // Convert the JQueryPromise to Q.Promise\n })\n .then(function (principal) {\n Account.Principal.current = principal;\n Account.Session.loginName = principal.loginName;\n defer.resolve(principal); // Resolve with the retrieved principal\n })\n .fail(function (reason) {\n defer.reject(_this.readAuthenticationError(reason)); // Reject with the error reason\n });\n return defer.promise;\n };\n SimpleUserManager.prototype.resetPasswordWithConfiguration = function (login, url) {\n url = url.replace('{0}', login.domain);\n url += \"/api/password/resetpassword\";\n var data = {\n userName: login.username\n };\n var response = $.ajax({\n url: url,\n type: \"POST\",\n contentType: \"application/json\",\n data: JSON.stringify(data),\n crossDomain: true,\n async: true,\n beforeSend: function (req) {\n if (Account.Session.isAuthenticated) {\n req.setRequestHeader(\"Authorization\", Account.Session.getAuthorizationHeader());\n }\n }\n });\n return Q(response);\n };\n SimpleUserManager.prototype.resetPasswordWithoutConfiguration = function (login) {\n var channel = new Http.Channel();\n var parameters = \"&domain=\" + login.domain + \"&clientNumber=\" + login.clientNumber + \"&username=\" + login.username;\n return channel.postDataAsync(\"/api/password/resetpassword\" + \"?\" + parameters, Http.ServiceTarget.portalApi, null);\n };\n SimpleUserManager.prototype.sendOAuthRequest = function (data, authHeader) {\n var endpoint = \"connect/token\";\n var service = \"authority\";\n var tokenServer = Configuration.Settings.getServiceFor(service, endpoint, null);\n return Q(jQuery.ajax(tokenServer, {\n type: \"POST\",\n async: false,\n beforeSend: function (xhr, settings) {\n xhr.setRequestHeader(\"Authorization\", authHeader);\n },\n contentType: \"application/x-www-form-urlencoded\",\n //mimeType: \"application/json\",\n data: data\n }));\n };\n SimpleUserManager.prototype.readAuthenticationError = function (reason) {\n try {\n if (typeof (reason) == \"string\")\n return reason;\n var message = JSON.parse(reason.responseText);\n var result = message.error;\n var detail = message.error_description;\n if (result === \"invalid_grant\") {\n result = $.t(\"app:modules.account.message_loginError\", { ifMissing: \"Es ist ein Fehler bei der Anmeldung aufgetreten. Bitte prüfen Sie Ihre Zugangsdaten.\" });\n if (detail.indexOf(5002) > 0) {\n result = $.t(\"app:modules.account.message_memberDisabled\", { ifMissing: \"Der Zugang wurde gesperrt!\" });\n }\n }\n return result;\n }\n catch (exception) {\n return JSON.stringify(reason);\n }\n };\n SimpleUserManager.prototype.getStringValue = function (url, field) {\n var href = url ? url : window.location.href;\n var reg = new RegExp('[?&]' + field + '=([^&#]*)', 'i');\n var string = reg.exec(href);\n return string ? string[1] : null;\n };\n ;\n return SimpleUserManager;\n }());\n return SimpleUserManager;\n});\n\n", "define('models/environment',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var Configuration = (function () {\n function Configuration(data) {\n this._data = data;\n }\n Object.defineProperty(Configuration.prototype, \"userManager\", {\n get: function () {\n return this._data.userManager;\n },\n enumerable: true,\n configurable: true\n });\n ;\n Object.defineProperty(Configuration.prototype, \"chat\", {\n get: function () {\n return this._data.chat;\n },\n enumerable: true,\n configurable: true\n });\n ;\n Object.defineProperty(Configuration.prototype, \"leftPanels\", {\n get: function () {\n return this._data.leftPanels;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"rightPanels\", {\n get: function () {\n return this._data.rightPanels;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Configuration.prototype, \"initializers\", {\n get: function () {\n return this._data.initializers;\n },\n enumerable: true,\n configurable: true\n });\n Configuration.prototype.getCustomValue = function (key, defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n var keyValue = null;\n if (Array.isArray(this._data.custom)) {\n var foundKeys = this._data.custom.filter(function (param) { return param.key === key; });\n if (foundKeys.length === 1) {\n keyValue = foundKeys[0].value;\n }\n else\n keyValue = defaultValue;\n }\n return keyValue;\n };\n return Configuration;\n }());\n exports.Configuration = Configuration;\n var UserManager = (function () {\n function UserManager() {\n }\n return UserManager;\n }());\n exports.UserManager = UserManager;\n var Chat = (function () {\n function Chat() {\n }\n return Chat;\n }());\n exports.Chat = Chat;\n var ExtenderPanel = (function () {\n function ExtenderPanel() {\n }\n return ExtenderPanel;\n }());\n exports.ExtenderPanel = ExtenderPanel;\n var Initializer = (function () {\n function Initializer() {\n }\n return Initializer;\n }());\n exports.Initializer = Initializer;\n var KeyValuePair = (function () {\n function KeyValuePair() {\n }\n return KeyValuePair;\n }());\n exports.KeyValuePair = KeyValuePair;\n});\n\n", "define('services/settings',[\"require\", \"exports\", \"services/aaausermanager\", \"services/simpleusermanager\", \"models/environment\", \"common/string\", \"services/settings\"], function (require, exports, AAAUserManager, SimpleUserManager, Environment, Strings, Configuration) {\n \"use strict\";\n var Settings = (function () {\n function Settings() {\n }\n //#region environment settings\n Settings.initialize = function () {\n // adding custom theme.\n $('head').append('<link rel=\"stylesheet\" href=\"' + this.getPublicApiFor(\"api/configuration/subdomains/\" + this.getPortalDomain() + \"/theme/css?v=\" + Date.now()) + '\" />');\n var domain = window.location.host.substring(window.location.host.indexOf(\".\") + 1);\n var subdomain = window.location.host.split('.')[0];\n // check if features/aaa flags are cached in session storage to prevent re-loading after authentication redirect.\n var featuresJson = sessionStorage.getItem('featuresJson');\n if (!featuresJson) {\n var aaaFlagsRelativeUrl = \"/activation/api/aaamigration/aaaflags/subdomain/\" + subdomain;\n var aaaFlagsUrl = \"https://\" + subdomain + \".\" + domain + aaaFlagsRelativeUrl;\n if (window.location.host.indexOf(\"addison51.de\") > -1)\n aaaFlagsUrl = \"http://localhost:8013\" + aaaFlagsRelativeUrl;\n var requests = [];\n requests.push($.ajax({\n url: '/html/config/features.json',\n context: document.body\n }));\n requests.push($.ajax({\n url: aaaFlagsUrl,\n context: document.body,\n crossDomain: true\n }));\n // run requests in parallel then this function\n return Q.all(requests).then(function (results) {\n var features = results[0];\n var aaaConfigurationData = results[1];\n features.userManager.aaaConfiguration = aaaConfigurationData;\n features.userManager.type = aaaConfigurationData.isAAAEnabled ? \"trippleA\" : \"simple\";\n if (aaaConfigurationData.isSSOEnabled) {\n localStorage.setItem('federation', 'true');\n }\n else {\n localStorage.setItem('federation', 'false');\n }\n // store the features in session storage to prevent them being reloaded after a redirect following oidc auth.\n sessionStorage.setItem('featuresJson', JSON.stringify(features));\n Settings.completeSetup(features, subdomain);\n });\n }\n else {\n // parse the features from the cached version and complete setup.\n var features = JSON.parse(featuresJson);\n Settings.completeSetup(features, subdomain);\n return Q.resolve(true);\n }\n };\n Settings.completeSetup = function (features, subdomain) {\n Settings.environmentSettings = new Environment.Configuration(features);\n // If the practice is not found then redirect to a 404 page.\n if (features.userManager.aaaConfiguration.practiceGuid == \"00000000-0000-0000-0000-000000000000\" && subdomain != \"addison\") {\n window.location.assign(\"/html/static/404.html\");\n }\n };\n Object.defineProperty(Settings, \"environment\", {\n get: function () {\n return this.environmentSettings;\n },\n enumerable: true,\n configurable: true\n });\n Settings.createUserManager = function () {\n var type = this.getParam(\"uam\") || this.environment.userManager.type;\n if (this.environment.userManager.aaaConfiguration) {\n type = this.environment.userManager.aaaConfiguration.isAAAEnabled ? \"trippleA\" : \"simple\";\n }\n var clientId = this.getParam(\"clientId\") || this.environment.userManager.clientId;\n var leadingApp = this.getParam(\"leadingApp\") || this.environment.userManager.leadingApplication;\n var locationSearch = window.location.search;\n var isDirectLogin = Strings.contains(locationSearch, \"nid=\") ||\n Strings.contains(locationSearch, \"session=\") ||\n Strings.contains(locationSearch, \"secret=\");\n if (isDirectLogin) {\n return new SimpleUserManager();\n }\n // normal evaluation\n switch (type) {\n case \"trippleA\":\n return new AAAUserManager(clientId, leadingApp);\n default:\n return new SimpleUserManager();\n }\n };\n Object.defineProperty(Settings, \"useHelpSystem\", {\n get: function () {\n var value = this.environment.getCustomValue(\"UseHelpSystem\");\n return value === undefined || value == null || value.toLowerCase() === \"true\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Settings, \"mainLogoPath\", {\n //#endregion\n get: function () {\n var customLogoSetting = this.environment.getCustomValue(\"CustomLogo\");\n var allowCustomLogo = customLogoSetting && customLogoSetting.toLowerCase() === \"true\";\n if (allowCustomLogo) {\n return this.getApiFor(\"api/logo/\" + this.getPortalDomain());\n }\n else {\n return Configuration.Settings.environment.getCustomValue(\"CdnEndPoint\") + \"content/images/addison_logo.png\";\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Settings, \"isProductiveSystem\", {\n get: function () {\n return this.serverUrl === \"portalbereich.de\" || this.serverUrl === \"one-click.de\";\n },\n enumerable: true,\n configurable: true\n });\n Settings.getPortalDomain = function () {\n var hostname = window.location.hostname;\n if (this.isLocalSystem())\n return \"addison\";\n var domain = hostname.substring(0, hostname.indexOf(\".\"));\n return domain;\n };\n Settings.getHost = function () {\n if (this.isLocalSystem())\n return \"https://addison.addison51.de\";\n return this.getUrlScheme() + \"://\" + window.location.hostname;\n };\n Settings.getLocalPath = function () {\n return \"/html\";\n };\n Settings.getApiFor = function (path) {\n return this.getServiceFor(\"aip\", path, null);\n };\n Settings.getApiForChat = function () {\n return this.environmentSettings.chat.serviceurl;\n };\n Settings.getPublicApiFor = function (path) {\n return this.getServiceFor(\"oneclick\", path, null);\n };\n Settings.getOneClickServicesApi = function (path) {\n if (window.location.origin.indexOf(\"addison51.de\") > -1)\n return \"http://localhost:8013\" + path;\n return window.location.origin + path;\n };\n Settings.getClientPortalApi = function (path) {\n var subdomain = window.location.host.split('.')[0];\n if (window.location.origin.indexOf(\"addison51.de\") > -1)\n return \"https://\" + subdomain + \".accountantspace-dev.co.uk/messages/\" + path;\n return window.location.origin + \"/messages/\" + path;\n };\n Settings.getPracticePortalApi = function (path) {\n var subdomain = window.location.host.split('.')[0];\n if (window.location.origin.indexOf(\"addison51.de\") > -1)\n return \"https://\" + subdomain + \".accountantspace-dev.co.uk/practice-portal/\" + path;\n return window.location.origin + \"/practice-portal/\" + path;\n };\n Settings.getServiceFor = function (serviceName, path, query) {\n if (path.substring(0, 1) != \"/\") {\n path = \"/\" + path;\n }\n var uri = this.getUrlScheme() + \"://\" + window.location.hostname + \"/servicehosts/\" + serviceName + path;\n if (query != null && query != \"\")\n uri += query;\n return uri;\n };\n Settings.getTokenType = function () {\n return \"Bearer \";\n };\n Settings.getScope = function () {\n return this.getUrlScheme() + \"://\" + \"addison.\" + this.serverUrl;\n };\n Object.defineProperty(Settings, \"serverUrl\", {\n get: function () {\n if (this.isLocalSystem())\n return \"addison51.de\";\n var hostname = window.location.hostname;\n var domain = hostname.substring(hostname.indexOf(\".\") + 1);\n switch (domain) {\n case 'one-click.de':\n domain = 'portalbereich.de';\n break;\n }\n if (window.location.port !== \"443\" && window.location.port !== \"\")\n domain += \":\" + window.location.port;\n return domain;\n },\n enumerable: true,\n configurable: true\n });\n Settings.getUrlScheme = function () {\n return this.useSsl ? \"https\" : \"http\";\n };\n Settings.getTokenExchangeEndpoint = function () {\n var domain = window.location.host.substring(window.location.host.indexOf(\".\") + 1);\n var subdomain = window.location.host.split('.')[0];\n var relativeUrl = \"/tokenexchange/api/auth\";\n var url = \"https://\" + subdomain + \".\" + domain + relativeUrl;\n if (window.location.host.indexOf(\"addison51.de\") > -1)\n url = \"http://localhost:8027\" + relativeUrl;\n return url;\n };\n Settings.isLocalSystem = function () {\n return window.location.hostname === \"localhost\";\n };\n Settings.isLocalSystemExtended = function () {\n return window.location.hostname === \"tes66\";\n };\n Settings.getParam = function (variable) {\n var query = window.location.search.substring(1);\n var vars = query.split(\"&\");\n for (var i_1 = 0; i_1 < vars.length; i_1++) {\n var pair = vars[i_1].split(\"=\");\n if (pair[0] === variable) {\n return pair[1];\n }\n }\n return null;\n };\n Settings.useSsl = true;\n Settings.environmentSettings = null;\n return Settings;\n }());\n exports.Settings = Settings;\n});\n\n", "define('models/account',[\"require\", \"exports\", \"services/settings\", \"durandal/app\", \"common/string\"], function (require, exports, configuration, app, String) {\n \"use strict\";\n var refreshTokenKey = \"refreshToken\";\n var accessTokenKey = \"accessToken\";\n var principalKey = \"principal\";\n var userNameKey = \"userName\";\n var employeeFilterKey = \"employeeName\";\n var requestStatusFilterKey = \"requestStatusId\";\n var expirationKey = \"expiration\";\n var applicationInitializedKey = \"isinitialized\";\n var rowCountKey = \"rowcount\";\n var Actor = (function () {\n function Actor() {\n }\n return Actor;\n }());\n exports.Actor = Actor;\n var Principal = (function () {\n function Principal() {\n this.organizationName = \"ADDISON\";\n }\n Principal.from = function (data, currentSystemLanguage) {\n var instance = new Principal();\n instance.id = data.id;\n instance.identityId = data.identityId;\n instance.identityName = data.identityName;\n instance.loginName = data.loginName;\n instance.email = data.email;\n instance.sessionId = data.sessionId;\n instance.organizationId = data.organizationId;\n instance.organizationName = data.organizationName;\n instance.taxAdvisorId = data.taxAdvisorId;\n instance.taxAdvisorName = data.taxAdvisorName;\n instance.memberType = data.memberType;\n instance.shouldChangePassword = data.shouldChangePassword;\n instance.shouldConfirmEmail = data.shouldConfirmEmail;\n instance.allowedFileTypes = data.allowedFileTypes;\n instance.sdnEnvironmentUrl = data.sdnEnvironmentUrl;\n instance.memberAccessList = data.memberAccessList;\n instance.hasAvatar = data.hasAvatar;\n instance.avatar = data.hasAvatar\n ? configuration.Settings.getServiceFor(\"portalstorage\", \"download/avatar/UserIdentity\", \"?disposition=online&avatarId=\" + instance.identityId + \"&sessionId=\" + jQuery.base64.encode(instance.sessionId, true))\n : \"/html/content/images/avatar.png\";\n if (data.actor != null) {\n instance.actor = new Actor();\n instance.actor.name = data.actor.name;\n }\n instance.culture = this.GetUserOrDefaultCulture(data.culture, currentSystemLanguage);\n instance.organizationCountry = this.GetOrganizationOrDefaultCountry(data.organizationCountry, currentSystemLanguage);\n return instance;\n };\n Object.defineProperty(Principal, \"current\", {\n get: function () {\n var data = Session.principal;\n if (data == null)\n return new Principal();\n return data;\n },\n set: function (data) {\n Session.principal = data;\n },\n enumerable: true,\n configurable: true\n });\n Principal.updateAvatar = function () {\n var user = this.current;\n user.avatar = configuration.Settings.getServiceFor(\"portalstorage\", \"download/avatar/NetworkMember\", \"?disposition=online&avatarId=\" + user.id + \"&sessionId=\" + jQuery.base64.encode(user.sessionId, true)) + '&date=' + Date.now();\n this.current = user;\n };\n Principal.GetUserOrDefaultCulture = function (userDefinedCulture, currentSystemLanguage) {\n var culture = 'de-DE';\n if (!String.isNullOrEmpty(userDefinedCulture)) {\n culture = userDefinedCulture;\n }\n else {\n if (!String.isNullOrEmpty(currentSystemLanguage)) {\n culture = currentSystemLanguage;\n }\n }\n return culture;\n };\n Principal.GetOrganizationOrDefaultCountry = function (userDefinedOrganizationCountry, currentSystemLanguage) {\n var country = 'DE';\n if (!String.isNullOrEmpty(userDefinedOrganizationCountry)) {\n country = userDefinedOrganizationCountry;\n }\n else {\n if (!String.isNullOrEmpty(currentSystemLanguage)) {\n var options = currentSystemLanguage.split('-');\n if (options != null && options.length > 1) {\n country = options[1];\n }\n }\n }\n return country;\n };\n return Principal;\n }());\n exports.Principal = Principal;\n var MemoryStorage = (function () {\n function MemoryStorage() {\n this._items = [];\n }\n MemoryStorage.prototype.setItem = function (key, data) {\n this._items[key] = data;\n };\n MemoryStorage.prototype.getItem = function (key) {\n return this._items[key];\n };\n MemoryStorage.prototype.clear = function () {\n this._items.length = 0;\n };\n return MemoryStorage;\n }());\n exports.MemoryStorage = MemoryStorage;\n var Session = (function () {\n function Session() {\n }\n Session.useMemoryStorage = function () {\n Session._storage = new MemoryStorage();\n };\n Session.setAuthentication = function (token, expiresIn) {\n Session._storage.setItem(accessTokenKey, token);\n var now = moment();\n var expiresOn = now.add(expiresIn, 'seconds');\n Session._storage.setItem(expirationKey, expiresOn);\n // raus springen\n window.setTimeout(function () { app.trigger(\"tokenTimeOut\"); }, expiresIn * 1000);\n };\n Session.setupAppInsights = function () {\n // parse access token\n var token = this.accessToken;\n var base64Url = token.split('.')[1];\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n var jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n var jwt = JSON.parse(jsonPayload);\n var memberGuid = \"http://claims.addison.de/memberguid\";\n var memberFlags = \"http://claims.addison.de/memberflags\";\n var orgGuid = \"http://claims.addison.de/organizationguid\";\n var parentGuid = \"http://claims.addison.de/parentorganizationguid\";\n var orgType = \"http://claims.addison.de/organizationtype\";\n var orgName = \"http://claims.addison.de/organizationname\";\n var memberType = \"http://claims.addison.de/membertype\";\n var userId = \"http://claims.addison.de/identityguid\";\n var isAAAEnabled = jwt[\"http://claims.addison.de/aaamemberid\"] ? true : false;\n var organizationID = \"http://claims.addison.de/organizationguid\";\n var sessionId = \"http://claims.addison.de/SessionId\";\n // Set up application insights telemetry to include user and organisation properties\n var appInsights = window.appInsights;\n try {\n if (appInsights) {\n if (appInsights.addTelemetryInitializer) {\n appInsights.addTelemetryInitializer(function (envelope) {\n var t = envelope.baseData;\n t.properties = t.properties || {};\n t.properties[\"auth_time\"] = jwt[\"auth_time\"];\n t.properties[\"idp\"] = jwt[\"idp\"];\n t.properties[memberGuid] = jwt[memberGuid];\n t.properties[memberFlags] = jwt[memberFlags];\n t.properties[orgGuid] = jwt[orgGuid];\n t.properties[parentGuid] = jwt[parentGuid];\n t.properties[\"OrganizationType\"] = jwt[orgType];\n t.properties[\"OrganizationName\"] = jwt[orgName];\n t.properties[memberType] = jwt[memberType];\n t.properties[\"UserId\"] = jwt[userId];\n t.properties[\"exp\"] = jwt[\"exp\"];\n t.properties[\"TokenSessionId\"] = jwt[\"jti\"];\n t.properties[\"IsAAAEnabled\"] = isAAAEnabled;\n t.properties[\"PracticeName\"] = jwt[orgType].toLowerCase() == \"stb\" ? jwt[orgName] : window.location.host.split('.')[0];\n t.properties[\"URL\"] = window.location.host !== null ? window.location.host : \"\";\n t.properties[\"OrganizationID\"] = jwt[organizationID] !== null ? jwt[organizationID] : \"\";\n t.properties[\"SessionId\"] = jwt[sessionId] !== null ? jwt[sessionId] : \"\";\n t.properties[\"ProductName\"] = \"OneClick DashBoard\";\n t.properties[\"LoggingType\"] = \"WKUserPageView\";\n if (typeof screen !== \"undefined\") {\n t.properties[\"ai.device.screenResolution\"] = screen.width + \"X\" + screen.height;\n t.properties[\"ai.device.locale\"] = navigator.language || \"unknown\";\n }\n if (t.name == \"Information Request Response Viewer | OneClick\") {\n t.name = \"Data Collection\";\n t.properties[\"ProductName\"] = \"DC\";\n t.properties[\"User\"] = jwt[\"name\"];\n }\n });\n appInsights.setAuthenticatedUserContext(jwt.identityId);\n appInsights.trackTrace({ message: 'OneClick User Telemetry Information' });\n }\n else {\n console.log(\"From setupAppInsights: TelemetryInitializer not initialized\");\n }\n }\n else {\n console.log(\"From setupAppInsights: Application Insights SDK not found\");\n }\n }\n catch (err) {\n // Mask any app insights initialisation failures to prevent bubbling up\n console.log(\"From setupAppInsights: Exception occured\");\n console.log(err);\n }\n };\n Session.guardUserActivity = function () {\n this.startActivityMonitoring();\n };\n Object.defineProperty(Session, \"isAuthenticated\", {\n get: function () {\n return this.accessToken != null;\n },\n enumerable: true,\n configurable: true\n });\n Session.hasRefreshToken = function () {\n var token = this.refreshToken;\n return token != null;\n };\n Session.getAuthorizationHeader = function () {\n return configuration.Settings.getTokenType() + this.accessToken;\n };\n Session.getSessionId = function () {\n return Principal.current.sessionId;\n };\n Session.getTimestampedSessionId = function () {\n var now = new Date();\n var epochTicks = 621355968000000000;\n var ticksPerMillisecond = 10000;\n var ticks = epochTicks + (now.getTime() * ticksPerMillisecond);\n var sessionId = this.getSessionId();\n var result = sessionId + \"_\" + ticks;\n return jQuery.base64.encode(result, true);\n };\n Object.defineProperty(Session, \"accessToken\", {\n get: function () {\n return Session._storage.getItem(accessTokenKey);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Session, \"expiresAt\", {\n get: function () {\n return moment(Session._storage.getItem(expirationKey));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Session, \"isExpired\", {\n get: function () {\n var expiration = this.expiresAt;\n var now = moment();\n return now > expiration;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Session, \"loginName\", {\n get: function () {\n return Session._storage.getItem(userNameKey);\n },\n set: function (data) {\n Session._storage.setItem(userNameKey, data);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Session, \"principal\", {\n get: function () {\n var data = Session._storage.getItem(principalKey);\n if (data == null)\n return null;\n return JSON.parse(data);\n },\n set: function (data) {\n Session._storage.setItem(principalKey, JSON.stringify(data));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Session, \"rowCount\", {\n get: function () {\n var rowCount = $.jStorage.get(rowCountKey);\n if (!rowCount || rowCount == 0)\n rowCount = 25;\n return rowCount;\n },\n set: function (data) {\n $.jStorage.set(rowCountKey, data);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Session, \"refreshToken\", {\n get: function () {\n return $.jStorage.get(refreshTokenKey);\n },\n set: function (data) {\n $.jStorage.set(refreshTokenKey, data);\n },\n enumerable: true,\n configurable: true\n });\n Session.clear = function () {\n var rowCount = this.rowCount;\n Session._storage.clear();\n if (Session.localStorageEnabled())\n $.jStorage.flush();\n this.rowCount = rowCount;\n // remove dom events\n if (this._intervalID !== 0) {\n this.stopActivityMonitoring();\n }\n };\n Session.localStorageEnabled = function () {\n try {\n return window.localStorage !== null;\n }\n catch (error) {\n return false;\n }\n };\n Session.stopActivityMonitoring = function () {\n document.removeEventListener(\"mousedown\", this.onMouseDown);\n window.clearInterval(this._intervalID);\n this._intervalID = 0;\n this._lastUserAction = moment();\n };\n Session.startActivityMonitoring = function () {\n this.stopActivityMonitoring();\n document.addEventListener(\"mousedown\", this.onMouseDown.bind(this));\n this._intervalID = window.setInterval(this.handleInterval.bind(this), 60000);\n };\n Session.handleInterval = function () {\n var diff = moment().diff(this._lastUserAction);\n if (moment.duration(diff).asMinutes() > 19) {\n this.stopActivityMonitoring();\n app.trigger(\"activityTimeOut\");\n }\n };\n Object.defineProperty(Session, \"employeeFilter\", {\n get: function () {\n return Session._storage.getItem(employeeFilterKey);\n },\n set: function (data) {\n Session._storage.setItem(employeeFilterKey, data);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Session, \"requestStatusFilter\", {\n get: function () {\n return Session._storage.getItem(requestStatusFilterKey);\n },\n set: function (data) {\n Session._storage.setItem(requestStatusFilterKey, data);\n },\n enumerable: true,\n configurable: true\n });\n Session.onMouseDown = function (e) {\n this._lastUserAction = moment();\n };\n Session._storage = sessionStorage; // => nur für ADDISON-Kanzleisoftware anhand von NID ??? new MemoryStorage();\n Session._intervalID = 0;\n Session._lastUserAction = moment();\n return Session;\n }());\n exports.Session = Session;\n var Model;\n (function (Model) {\n var Password = (function () {\n function Password(value, repetition) {\n this.value = value;\n this.repetition = repetition;\n }\n return Password;\n }());\n Model.Password = Password;\n var MemberAccessControlItem = (function () {\n function MemberAccessControlItem() {\n }\n return MemberAccessControlItem;\n }());\n Model.MemberAccessControlItem = MemberAccessControlItem;\n var PasswordUpdate = (function () {\n function PasswordUpdate(currentPassword, value, repetition) {\n this.currentPassword = currentPassword;\n this.value = value;\n this.repetition = repetition;\n }\n return PasswordUpdate;\n }());\n Model.PasswordUpdate = PasswordUpdate;\n })(Model = exports.Model || (exports.Model = {}));\n var Requests;\n (function (Requests) {\n Requests.PortalBasicAuthenticationHeader = \"Basic cG9ydGFsOmFpcF9zZWNyZXQ=\"; //portal:aip_secret\n Requests.IdentityPortalBasicAuthenticationHeader = \"Basic Y3VzdG9tcG9ydGFsOmFpcF9zZWNyZXQ=\"; //customportal:aip_secret\n Requests.CodeBasicAuthenticationHeader = \"Basic aW1wbGljaXRwb3J0YWw6YWlwX3NlY3JldA==\"; //implicitportal:aip_secret\n var ProfileLoginRequest = (function () {\n function ProfileLoginRequest(domain, username, userId, profileId) {\n this.authenticationHeader = Requests.IdentityPortalBasicAuthenticationHeader;\n this.keepSignedIn = false;\n this.domain = domain;\n this.username = username;\n this.userId = userId;\n this.profileId = profileId;\n }\n ProfileLoginRequest.prototype.toJson = function () {\n var data = {\n grant_type: \"identityprofile\",\n url: this.domain,\n username: this.username,\n profileid: this.profileId,\n userid: this.userId,\n scope: \"oneclick\"\n };\n return data;\n };\n return ProfileLoginRequest;\n }());\n Requests.ProfileLoginRequest = ProfileLoginRequest;\n var LoginRequest = (function () {\n function LoginRequest(domain, username, password, clientNumber, keepSignedIn) {\n if (keepSignedIn === void 0) { keepSignedIn = false; }\n this.authenticationHeader = Requests.PortalBasicAuthenticationHeader;\n this.domain = domain;\n this.username = username;\n this.password = password;\n this.clientNumber = clientNumber;\n this.keepSignedIn = keepSignedIn;\n if (typeof (this.clientNumber) === \"undefined\")\n this.clientNumber = \"\";\n }\n LoginRequest.prototype.buildLoginName = function () {\n if (this.username.indexOf(\"Secret:\") >= 0) {\n return this.username;\n }\n if (this.username.indexOf(\"SessionId:\") >= 0) {\n return this.username;\n }\n var loginName = this.domain;\n if (this.clientNumber !== \"\")\n loginName += \"\\\\\" + this.clientNumber;\n loginName += \"\\\\\" + this.username;\n return loginName;\n };\n LoginRequest.prototype.toJson = function () {\n var data = {\n grant_type: \"password\",\n username: this.buildLoginName(),\n password: this.password,\n scope: \"oneclick\" + (this.keepSignedIn ? \" offline_access\" : \"\")\n };\n return data;\n };\n return LoginRequest;\n }());\n Requests.LoginRequest = LoginRequest;\n var CodeLoginRequest = (function () {\n function CodeLoginRequest(code, redirectUri) {\n this.authenticationHeader = Requests.CodeBasicAuthenticationHeader;\n this.code = code;\n this.redirectUri = redirectUri;\n }\n CodeLoginRequest.prototype.toJson = function () {\n var data = {\n grant_type: \"authorization_code\",\n code: this.code,\n redirect_uri: this.redirectUri\n };\n return data;\n };\n return CodeLoginRequest;\n }());\n Requests.CodeLoginRequest = CodeLoginRequest;\n })(Requests = exports.Requests || (exports.Requests = {}));\n});\n\n", "define('bootstrapper',[\"require\", \"exports\", \"durandal/app\", \"durandal/viewLocator\", \"durandal/system\", \"durandal/binder\", \"./models/account\"], function (require, exports, App, ViewLocator, System, Binder, Account) {\n \"use strict\";\n var BootStrapper;\n (function (BootStrapper) {\n function run(kendo) {\n this.configure(System, Account, ko.amdTemplateEngine);\n this.start(App, ViewLocator, Binder, i18n, kendo);\n }\n BootStrapper.run = run;\n function configure(system, account, amdTemplateEngine) {\n system.debug(false);\n system.defer = function (action) {\n var deferred = Q.defer();\n action.call(deferred, deferred);\n var promise = deferred.promise;\n deferred.promise = function () { return promise; };\n return deferred;\n };\n toastr.options.positionClass = \"toast-bottom-right\";\n toastr.options.backgroundpositionClass = \"toast-bottom-right\";\n amdTemplateEngine.defaultPath = \"\";\n amdTemplateEngine.defaultSuffix = \".template.html\";\n amdTemplateEngine.defaultRequireTextPluginName = \"text\";\n // breeze\n var ajaxAdapter = breeze.config.getAdapterInstance(\"ajax\");\n ajaxAdapter.defaultSettings = {\n beforeSend: function (xhr, settings) {\n xhr.setRequestHeader(\"Authorization\", account.Session.getAuthorizationHeader());\n }\n };\n $.support.cors = true;\n }\n BootStrapper.configure = configure;\n function start(app, viewLocator, binder, i18next, kendo) {\n var _this = this;\n app.configurePlugins({\n router: true,\n dialog: true,\n widget: {\n kinds: [\"dataList\", \"dataGrid\", \"simpleView\", \"pagedView\"]\n }\n });\n app.start()\n .then(function () {\n viewLocator.useConvention(\"viewmodels\", \"views\", \"areas\");\n kendo.ns = \"kendo-\";\n binder.beforeBind = function (obj, view) {\n kendo.bind(view, obj.viewModel);\n };\n //Call localization on view before binding...\n binder.bindingComplete = function (obj, view) {\n $(view).i18n();\n };\n var options = _this.getI18NOptions();\n moment.locale(options.lng);\n i18next.init(options, function () {\n // start the app\n app.setRoot(\"areas/home/viewmodels/shell\");\n });\n });\n }\n BootStrapper.start = start;\n function getI18NOptions() {\n // needed for FF. no userLanguage exists\n var language = \"en\";\n var fallbackLanguage = \"en\";\n var i18NOptions = {\n detectFromHeaders: false,\n lng: language,\n fallbackLng: fallbackLanguage,\n ns: \"app\",\n resGetPath: \"locales/__lng__/__ns__.json\",\n useCookie: false\n };\n return i18NOptions;\n }\n BootStrapper.getI18NOptions = getI18NOptions;\n })(BootStrapper || (BootStrapper = {}));\n return BootStrapper;\n});\n\n", "require.config({\r\n baseUrl: 'App',\r\n paths: {\r\n 'text': '../scripts/text',\r\n 'durandal': '../scripts/durandal',\r\n 'plugins': '../scripts/durandal/plugins',\r\n 'transitions': '../scripts/durandal/transitions',\r\n 'i18next': '../scripts/i18next-1.8.0',\r\n 'knockout': '../scripts/knockout-3.4.2',\r\n 'bootstrap': '//cdn.jsdelivr.net/npm/bootstrap@3.4.1/dist/js/bootstrap.min',\r\n 'jquery': '//cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min'\r\n },\r\n shim: {\r\n 'bootstrap': {\r\n deps: ['jquery'],\r\n exports: 'jQuery'\r\n }\r\n }\r\n});\r\n\r\ndefine('jquery', [],function () { return jQuery; });\r\ndefine('knockout', ko);\r\ndefine('kendo', kendo);\r\n\r\nrequire([\"bootstrapper\"], function (bootstrapper) {\r\n bootstrapper.run(kendo);\r\n\r\n $.material.init();\r\n});\r\n\ndefine(\"main\", function(){});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/aaaprovisioning/viewmodels/index',[\"require\", \"exports\", \"common/viewmodelbase\", \"services/settings\"], function (require, exports, Common, Settings) {\n \"use strict\";\n var AAAProvisioningViewModel = (function (_super) {\n __extends(AAAProvisioningViewModel, _super);\n function AAAProvisioningViewModel() {\n _super.call(this);\n }\n AAAProvisioningViewModel.prototype.onActivated = function (context) {\n var aaaOrganizationalUnitId = Settings.Settings.environment.userManager.aaaConfiguration.organizationalUnitId;\n this.aaaProvisioningUrl = Settings.Settings.environment.userManager.serverUrl + '/selfservice/extern/security?s=pm&brandingId=' + aaaOrganizationalUnitId + '&returnUrl=' + window.location.origin + \"&plainUrl=true\";\n window.location.assign(this.aaaProvisioningUrl);\n };\n return AAAProvisioningViewModel;\n }(Common.ViewModelBase));\n var instance = new AAAProvisioningViewModel();\n return instance;\n});\n\n", "define('areas/activityfeed/models/bindable',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var ActivityVM = (function () {\n function ActivityVM() {\n }\n return ActivityVM;\n }());\n exports.ActivityVM = ActivityVM;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/activityfeed/models/dto',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var TokenRequest = (function () {\n function TokenRequest() {\n }\n return TokenRequest;\n }());\n exports.TokenRequest = TokenRequest;\n var Token = (function () {\n function Token() {\n }\n return Token;\n }());\n exports.Token = Token;\n var TokenResponse = (function () {\n function TokenResponse() {\n this.token = new Token();\n }\n return TokenResponse;\n }());\n exports.TokenResponse = TokenResponse;\n var SessionResponse = (function (_super) {\n __extends(SessionResponse, _super);\n function SessionResponse() {\n _super.apply(this, arguments);\n }\n return SessionResponse;\n }(TokenResponse));\n exports.SessionResponse = SessionResponse;\n var OfficeResponse = (function (_super) {\n __extends(OfficeResponse, _super);\n function OfficeResponse() {\n _super.apply(this, arguments);\n }\n return OfficeResponse;\n }(SessionResponse));\n exports.OfficeResponse = OfficeResponse;\n var ClientResponse = (function (_super) {\n __extends(ClientResponse, _super);\n function ClientResponse() {\n _super.apply(this, arguments);\n }\n return ClientResponse;\n }(OfficeResponse));\n exports.ClientResponse = ClientResponse;\n var ActivitiesResponse = (function (_super) {\n __extends(ActivitiesResponse, _super);\n function ActivitiesResponse() {\n _super.apply(this, arguments);\n }\n return ActivitiesResponse;\n }(ClientResponse));\n exports.ActivitiesResponse = ActivitiesResponse;\n var ActivityFeedServiceModel = (function () {\n function ActivityFeedServiceModel() {\n }\n return ActivityFeedServiceModel;\n }());\n exports.ActivityFeedServiceModel = ActivityFeedServiceModel;\n});\n\n", "define('common/tuple',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var Tuple = (function () {\n function Tuple(item1, item2) {\n this.item1 = item1;\n this.item2 = item2;\n }\n return Tuple;\n }());\n return Tuple;\n});\n\n", "define('common/parts',[\"require\", \"exports\", \"services/trace\", \"common/tuple\"], function (require, exports, Trace, Tuple) {\n \"use strict\";\n var Subscriber = (function () {\n function Subscriber(target, context) {\n this.target = target;\n this.context = context;\n }\n return Subscriber;\n }());\n var Pin = (function () {\n function Pin() {\n this._subscribers = [];\n }\n Pin.prototype.connect = function (subscriber, context) {\n this._subscribers.push(new Subscriber(subscriber, context));\n };\n Pin.prototype.call = function (message) {\n for (var i = 0; i < this._subscribers.length; i++) {\n if (this._subscribers) {\n var subscriber = this._subscribers[i];\n if (subscriber.context == null) {\n subscriber.target(message);\n }\n else {\n subscriber.target.call(subscriber.context, message);\n }\n }\n }\n };\n return Pin;\n }());\n exports.Pin = Pin;\n var Part = (function () {\n function Part() {\n this.output = new Pin();\n this.error = new Pin();\n }\n Part.prototype.process = function (memberType, symbol) {\n };\n return Part;\n }());\n exports.Part = Part;\n var PartBinder = (function () {\n function PartBinder() {\n }\n PartBinder.bind = function (source, target, error) {\n source.output.connect(target);\n if (error == null) {\n error = function (msg) { return Trace.traceError(msg, null, \"\", true); };\n }\n source.error.connect(error);\n return source;\n };\n return PartBinder;\n }());\n exports.PartBinder = PartBinder;\n var Join = (function () {\n function Join() {\n this._messages = [];\n this._isSet1 = false;\n this._isSet2 = false;\n this.output = new Pin();\n this.error = new Pin();\n }\n Join.prototype.first = function (symbol) {\n this._messages[0] = symbol;\n this._isSet1 = true;\n this.raise();\n };\n Join.prototype.second = function (symbol) {\n this._messages[1] = symbol;\n this._isSet2 = true;\n this.raise();\n };\n Join.prototype.raise = function () {\n if (this._isSet1 && this._isSet2) {\n var result = new Tuple(this._messages[0], this._messages[1]);\n this.output.call(result);\n this.reset();\n }\n };\n Join.prototype.reset = function () {\n this._isSet1 = false;\n this._isSet2 = false;\n this._messages.length = 0;\n };\n return Join;\n }());\n exports.Join = Join;\n var Split = (function () {\n function Split() {\n this.output = new Pin();\n this.outputtwo = new Pin();\n this.error = new Pin();\n }\n Split.prototype.process = function (symbol) {\n try {\n this.output.call(symbol);\n this.outputtwo.call(symbol);\n }\n catch (exception) {\n this.error.call(exception);\n }\n };\n return Split;\n }());\n exports.Split = Split;\n var Throttle = (function () {\n function Throttle(delay) {\n this.output = new Pin();\n this.error = new Pin();\n this._delay = delay;\n }\n Throttle.prototype.process = function (symbol) {\n var that = this;\n setTimeout(function () {\n that.output.call(symbol);\n }, that._delay);\n };\n return Throttle;\n }());\n exports.Throttle = Throttle;\n var Progress = (function () {\n function Progress(taskManager) {\n this.output = new Pin();\n this.error = new Pin();\n this._taskManager = taskManager;\n this._defer = Q.defer();\n }\n Object.defineProperty(Progress.prototype, \"deferred\", {\n get: function () {\n return this._defer;\n },\n enumerable: true,\n configurable: true\n });\n Progress.prototype.start = function (message, delegate) {\n if (this._taskManager !== null)\n this._taskId = this._taskManager.add(message);\n delegate.apply(this);\n };\n Progress.prototype.process = function (symbol) {\n try {\n this.output.call(symbol);\n }\n catch (exception) {\n this.error.call(exception);\n }\n this._defer.resolve(true);\n if (this._taskManager !== null)\n this._taskManager.remove(this._taskId);\n };\n return Progress;\n }());\n exports.Progress = Progress;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/activityfeed/parts/createcpmsession',[\"require\", \"exports\", \"common/parts\", \"areas/activityfeed/models/dto\"], function (require, exports, Parts, Dto) {\n \"use strict\";\n var CreateCPMSession = (function (_super) {\n __extends(CreateCPMSession, _super);\n function CreateCPMSession(baseUrl) {\n _super.call(this);\n this._baseUrl = baseUrl;\n }\n CreateCPMSession.prototype.process = function (symbol) {\n var _this = this;\n try {\n var url = this._baseUrl + \"/sdn/rest/directory/CreateSession?locale=en&session=&organization=\";\n Q(jQuery.ajax(url, {\n type: \"GET\",\n async: true,\n beforeSend: function (xhr, settings) {\n xhr.setRequestHeader(\"Authorization\", \"Bearer \" + symbol.token.access_token);\n },\n contentType: \"application/json\"\n }))\n .then(function (response) {\n var result = new Dto.SessionResponse();\n result.token = symbol.token;\n result.sessionId = response.id;\n result.organizationId = response.organization;\n _this.output.call(result);\n });\n }\n catch (error) {\n this.error.call(error);\n }\n };\n return CreateCPMSession;\n }(Parts.Part));\n return CreateCPMSession;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/activityfeed/parts/getcpmactivities',[\"require\", \"exports\", \"common/parts\", \"areas/activityfeed/models/dto\"], function (require, exports, Parts, Dto) {\n \"use strict\";\n var GetCPMActivities = (function (_super) {\n __extends(GetCPMActivities, _super);\n function GetCPMActivities(baseUrl) {\n _super.call(this);\n this._baseUrl = baseUrl;\n }\n GetCPMActivities.prototype.process = function (symbol) {\n var _this = this;\n try {\n var url = this._baseUrl + \"/sdn/rest/api/cpm/activitiesapicontract/\" + symbol.clientId + \"?organization=\" + symbol.officeId + \"&session=\" + symbol.sessionId;\n Q(jQuery.ajax(url, {\n type: \"GET\",\n async: true,\n beforeSend: function (xhr, settings) {\n xhr.setRequestHeader(\"Authorization\", \"Bearer \" + symbol.token.access_token);\n },\n contentType: \"application/json\"\n }))\n .then(function (response) {\n var activities = response.activities;\n var result = new Dto.ActivitiesResponse();\n result.token = symbol.token;\n result.sessionId = symbol.sessionId;\n result.organizationId = symbol.organizationId;\n result.officeId = symbol.officeId;\n result.clientId = symbol.clientId;\n result.activities = Enumerable.From(activities).Where(function (x) { return x.firmIsResponsible === false; }).ToArray();\n _this.output.call(result);\n });\n }\n catch (error) {\n this.error.call(error);\n }\n };\n return GetCPMActivities;\n }(Parts.Part));\n return GetCPMActivities;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/activityfeed/parts/getcpmclient',[\"require\", \"exports\", \"common/parts\", \"areas/activityfeed/models/dto\"], function (require, exports, Parts, Dto) {\n \"use strict\";\n var GetCPMClient = (function (_super) {\n __extends(GetCPMClient, _super);\n function GetCPMClient(baseUrl) {\n _super.call(this);\n this._baseUrl = baseUrl;\n }\n GetCPMClient.prototype.process = function (symbol) {\n var _this = this;\n try {\n var url = this._baseUrl + \"/sdn/rest/api/cpm/clientapicontract?organization=\" + symbol.officeId + \"&session=\" + symbol.sessionId;\n Q(jQuery.ajax(url, {\n type: \"GET\",\n async: true,\n beforeSend: function (xhr, settings) {\n xhr.setRequestHeader(\"Authorization\", \"Bearer \" + symbol.token.access_token);\n },\n contentType: \"application/json\"\n }))\n .then(function (response) {\n var client = Enumerable.From(response.data)\n .FirstOrDefault(null, function (x) { return x.id === \"1d6526c1-4b54-421d-a38f-5730639d2d92\"; }); // TODO: ACHTUNG Hier muss der richtige rein!\n var result = new Dto.ClientResponse();\n result.token = symbol.token;\n result.sessionId = symbol.sessionId;\n result.organizationId = symbol.organizationId;\n result.officeId = symbol.officeId;\n result.clientId = client.id;\n _this.output.call(result);\n });\n }\n catch (error) {\n this.error.call(error);\n }\n };\n return GetCPMClient;\n }(Parts.Part));\n return GetCPMClient;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/activityfeed/parts/getcpmoffice',[\"require\", \"exports\", \"common/parts\", \"areas/activityfeed/models/dto\"], function (require, exports, Parts, Dto) {\n \"use strict\";\n var GetCPMOffice = (function (_super) {\n __extends(GetCPMOffice, _super);\n function GetCPMOffice(baseUrl) {\n _super.call(this);\n this._baseUrl = baseUrl;\n }\n GetCPMOffice.prototype.process = function (symbol) {\n var _this = this;\n try {\n var url = this._baseUrl + \"/sdn/rest/api/directory/organizationapicontract?where=OrganizationData.type==Kanzlei&session=\" + symbol.sessionId + \"&organization=\" + symbol.organizationId;\n Q(jQuery.ajax(url, {\n type: \"GET\",\n async: true,\n beforeSend: function (xhr, settings) {\n xhr.setRequestHeader(\"Authorization\", \"Bearer \" + symbol.token.access_token);\n },\n contentType: \"application/json\"\n }))\n .then(function (response) {\n var office = Enumerable.From(response.data)\n .FirstOrDefault(null);\n var result = new Dto.OfficeResponse();\n result.token = symbol.token;\n result.sessionId = symbol.sessionId;\n result.organizationId = symbol.organizationId;\n result.officeId = office.id;\n _this.output.call(result);\n });\n }\n catch (error) {\n this.error.call(error);\n }\n };\n return GetCPMOffice;\n }(Parts.Part));\n return GetCPMOffice;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/activityfeed/parts/getcpmtoken',[\"require\", \"exports\", \"common/parts\", \"areas/activityfeed/models/dto\"], function (require, exports, Parts, Dto) {\n \"use strict\";\n var GetCPMToken = (function (_super) {\n __extends(GetCPMToken, _super);\n function GetCPMToken(baseUrl) {\n _super.call(this);\n this._baseUrl = baseUrl;\n }\n GetCPMToken.prototype.process = function (symbol) {\n var _this = this;\n try {\n var url = this._baseUrl + \"/sdn/oauth/token?response_type=code&grant_type=password\";\n var data = { clientnumber: symbol.clientnumber, username: symbol.username, password: symbol.password };\n Q(jQuery.ajax(url, {\n type: \"POST\",\n async: true,\n contentType: \"application/x-www-form-urlencoded\",\n data: data\n }))\n .then(function (response) {\n var result = new Dto.TokenResponse();\n result.token.access_token = response.access_token;\n result.token.refresh_token = response.refresh_token;\n _this.output.call(result);\n });\n }\n catch (error) {\n this.error.call(error);\n }\n };\n return GetCPMToken;\n }(Parts.Part));\n return GetCPMToken;\n});\n\n", "define('areas/activityfeed/service/activityfeed-service',[\"require\", \"exports\", \"services/httpclient\", \"areas/activityfeed/models/bindable\", \"areas/activityfeed/models/dto\", \"models/account\"], function (require, exports, HttpClient, VM, Dto, Account) {\n \"use strict\";\n var ActivityFeedService = (function () {\n function ActivityFeedService() {\n }\n ActivityFeedService.prototype.getActivityFeedItems = function () {\n var _this = this;\n var service = new HttpClient.Channel();\n var requestUrl = \"/api/activityfeed/\" + Account.Principal.current.organizationId + \"/\" + Account.Principal.current.identityId;\n return service.getDataAsync(requestUrl, HttpClient.ServiceTarget.portalApi)\n .then(function (response) {\n var activityfeeditems = new Dto.ActivityFeedServiceModel();\n activityfeeditems.activityVM = new Array();\n if (response.activityFeedList.length != 0) {\n for (var i = 0; i < response.activityFeedList.length; i++) {\n var activityfeeditem = new VM.ActivityVM();\n activityfeeditem.screenName = response.activityFeedList[i].ScreenName;\n activityfeeditem.text = response.activityFeedList[i].Text.replace(/&/g, \"&\");\n activityfeeditem.logoImage = response.activityFeedList[i].ImageUrl;\n activityfeeditem.type = response.activityFeedList[i].Type;\n activityfeeditem.urls = [];\n switch (activityfeeditem.type) {\n case \"cch\":\n activityfeeditem.timelineIcon = \"cchdaily\";\n activityfeeditem.url = response.activityFeedList[i].Urls[0];\n break;\n case \"twitter\":\n activityfeeditem.author = response.activityFeedList[i].Author;\n activityfeeditem.timelineIcon = \"fab fa-twitter iconblue activity-feed-twitter\";\n activityfeeditem.urls = response.activityFeedList[i].Urls;\n activityfeeditem.url = response.activityFeedList[i].TweetUrl;\n break;\n case \"portal\":\n activityfeeditem.text = activityfeeditem.text;\n activityfeeditem.timelineIcon = \"central\";\n activityfeeditem.category = response.activityFeedList[i].Content;\n activityfeeditem.screenName = \"Messages & Documents\";\n activityfeeditem.logoImage = response.activityFeedList[i].ImageUrl;\n break;\n case \"datacollection\":\n activityfeeditem.text = activityfeeditem.text;\n activityfeeditem.timelineIcon = \"datacollection\";\n activityfeeditem.category = response.activityFeedList[i].Content;\n activityfeeditem.screenName = \"Digital Data Request\";\n activityfeeditem.logoImage = response.activityFeedList[i].ImageUrl;\n break;\n }\n activityfeeditem = _this.calculatingTimeDifference(response, activityfeeditem, i);\n activityfeeditems.activityVM.push(activityfeeditem);\n }\n }\n activityfeeditems.exceptions = response.exceptions;\n return activityfeeditems;\n })\n .fail(function (error) {\n console.log(error);\n return null;\n });\n };\n // calculating time difference for activities\n ActivityFeedService.prototype.calculatingTimeDifference = function (response, activityfeeditem, position) {\n var date = new Date();\n var localTimeNow = moment(date.toString());\n var activityTime = moment.utc(response.activityFeedList[position].Date.toString()).toDate();\n var activityLocalTime = moment(activityTime).local();\n var minuteDifferenceForActivities = Math.abs(Math.ceil(moment.duration(localTimeNow.diff(activityLocalTime)).asMinutes()));\n if (minuteDifferenceForActivities < 60) {\n activityfeeditem.publishDate = minuteDifferenceForActivities + \" min\";\n }\n else if (minuteDifferenceForActivities < 2 * 60) {\n activityfeeditem.publishDate = \"1 hour\";\n }\n else if (minuteDifferenceForActivities < 24 * 60) {\n activityfeeditem.publishDate = Math.floor(minuteDifferenceForActivities / 60) + \" hours\";\n }\n else {\n activityfeeditem.publishDate = moment(response.activityFeedList[position].Date).format(\"DD/MM/YY\");\n }\n return activityfeeditem;\n };\n return ActivityFeedService;\n }());\n exports.ActivityFeedService = ActivityFeedService;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/activityfeed/viewmodels/index',[\"require\", \"exports\", \"models/account\", \"common/viewmodelbase\", \"areas/activityfeed/models/bindable\", \"services/trace\", \"areas/activityfeed/service/activityfeed-service\"], function (require, exports, Account, Common, VM, traceSvc, service) {\n \"use strict\";\n var IndexViewModel = (function (_super) {\n __extends(IndexViewModel, _super);\n // #region ctor\n function IndexViewModel() {\n _super.call(this);\n this.activities = new Array();\n this.exceptionsMessage = \"\";\n this.hasActivities = false;\n this.calculatedTimelineBottom = false;\n this.title = \"Activity feed\";\n ko.track(this, [\"activities\", \"url\"]);\n this.url = \"#/settings?source=1\";\n this.activityfeedservice = new service.ActivityFeedService();\n }\n // #endregion\n // #region overrides\n IndexViewModel.prototype.onActivated = function (context) {\n //if (!this._initialized) {\n // this._initialized = true;\n // window.setTimeout(() => { this.loadData(); }, 200);\n //} \n this.showCog = Account.Principal.current.memberType === 'client_postmaster';\n if (this.activities.length === 0) {\n this.loadData();\n }\n };\n // #endregion\n IndexViewModel.prototype.loadData = function () {\n var _this = this;\n this.activities = [];\n var self = this;\n this.activityfeedservice.getActivityFeedItems()\n .then(function (activityfeeditems) {\n activityfeeditems.activityVM.length != 0 ? _this.hasActivities = true : _this.hasActivities = false;\n if (_this.hasActivities) {\n _this.activities = activityfeeditems.activityVM;\n }\n else {\n _this.activities.removeAll(); // use-case: if the user press the refresh button many times quickly\n var activityfeeditem = new VM.ActivityVM();\n activityfeeditem.logoImage = \"url('content/images/activity_feed_zero_state.png')\";\n activityfeeditem.timelineIcon = \"fa fa-bell icon-blue activity-feed-bell\";\n _this.activities.push(activityfeeditem);\n }\n if (activityfeeditems.exceptions.length != 0) {\n _this.exceptionsMessage = \"\"; // for page reload, this message will be cached\n for (var i = 0; i < activityfeeditems.exceptions.length; i++) {\n _this.exceptionsMessage = _this.exceptionsMessage + \"\\n\" + activityfeeditems.exceptions[i];\n }\n traceSvc.traceInformation(_this.exceptionsMessage);\n }\n });\n };\n IndexViewModel.prototype.lengthenTimeline = function () {\n if (!this.calculatedTimelineBottom) {\n var timeline = document.getElementById(\"activity-feed-timeline\");\n $('body').append('<style>.activity-feed-timeline:before{top:0;bottom:-' + (timeline.scrollHeight - timeline.clientHeight) +\n 'px;position:absolute;content:\" \";width:1px;background-color:#ccc;left:30px}</style>');\n this.calculatedTimelineBottom = true;\n }\n };\n return IndexViewModel;\n }(Common.ListViewModelBase));\n var instance = new IndexViewModel();\n return instance;\n});\n\n", "define('areas/activityfeedconfigurator/models/bindable',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var ActivityFeedConfiguratorVM = (function () {\n function ActivityFeedConfiguratorVM() {\n }\n return ActivityFeedConfiguratorVM;\n }());\n exports.ActivityFeedConfiguratorVM = ActivityFeedConfiguratorVM;\n});\n\n", "define('areas/activityfeedconfigurator/models/dto',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var SocialMediaOptions = (function () {\n function SocialMediaOptions() {\n }\n return SocialMediaOptions;\n }());\n exports.SocialMediaOptions = SocialMediaOptions;\n var CchDailyOptions = (function () {\n function CchDailyOptions() {\n }\n return CchDailyOptions;\n }());\n exports.CchDailyOptions = CchDailyOptions;\n var SettingsGenericEntity = (function () {\n function SettingsGenericEntity() {\n }\n return SettingsGenericEntity;\n }());\n exports.SettingsGenericEntity = SettingsGenericEntity;\n var ActivityFeedServiceModel = (function () {\n function ActivityFeedServiceModel() {\n }\n return ActivityFeedServiceModel;\n }());\n exports.ActivityFeedServiceModel = ActivityFeedServiceModel;\n var BillingEmailEntity = (function () {\n function BillingEmailEntity(address, sendInvoice) {\n if (address === void 0) { address = null; }\n if (sendInvoice === void 0) { sendInvoice = true; }\n this.EmailAddress = address;\n this.SendInvoice = sendInvoice;\n }\n return BillingEmailEntity;\n }());\n exports.BillingEmailEntity = BillingEmailEntity;\n});\n\n", "define('areas/activityfeedconfigurator/service/activityfeedconfigurator-service',[\"require\", \"exports\", \"services/httpclient\", \"areas/activityfeedconfigurator/models/dto\", \"models/portal\"], function (require, exports, HttpClient, dto, Portal) {\n \"use strict\";\n var ActivityFeedConfiguratorService = (function () {\n function ActivityFeedConfiguratorService() {\n // create the requests url\n // var serviceUrl: string = configuration.Settings.getApiFor(\"/breeze/mail\");\n }\n ActivityFeedConfiguratorService.prototype.find = function (settings, key) {\n for (var _i = 0, settings_1 = settings; _i < settings_1.length; _i++) {\n var setting = settings_1[_i];\n if (setting.Key === key)\n return setting;\n }\n return null;\n };\n ActivityFeedConfiguratorService.prototype.getUserOptions = function () {\n var _this = this;\n var that = this;\n return Portal.Context.shell.userManager.getSettings(\"activity-feed\")\n .then(function (response) {\n var activityFeedServiceModel = new dto.ActivityFeedServiceModel();\n activityFeedServiceModel.SocialMediaOptions = new dto.SocialMediaOptions();\n activityFeedServiceModel.SocialMediaOptions.Hashtags = [];\n activityFeedServiceModel.SocialMediaOptions.Profiles = [\"https://twitter.com/CCHvoice\"];\n activityFeedServiceModel.PortalOptions = [\n { Key: \"Activation\", Label: \"Contact activates OneClick\", Selected: true },\n { Key: \"Message\", Label: \"Contact sends a message\", Selected: true },\n { Key: \"Document\", Label: \"Document is approved/rejected\", Selected: true },\n { Key: \"MarkedAllAsCompleteSection\", Label: \"Contact marks all sources as complete in Digital Data Request\", Selected: true },\n { Key: \"CompleteSection\", Label: \"Contact has updated a source in Digital Data Request\", Selected: true },\n { Key: \"LimitDDRNotification\", Label: \"Please check if 1 email notification is to be received per client per day\", Selected: false },\n { Key: \"CreateSection\", Label: \"Contact adds a new source of income in Digital Data Request\", Selected: true }];\n activityFeedServiceModel.CchDailyOptions = [\n { Key: \"Tax\", Label: \"Tax\", Selected: true },\n { Key: \"Accounting\", Label: \"Accounting\", Selected: true },\n { Key: \"Audit\", Label: \"Audit\", Selected: true },\n { Key: \"Insight\", Label: \"Insight\", Selected: true },\n { Key: \"Practice Development\", Label: \"Practice Development\", Selected: true },\n { Key: \"Professional Development\", Label: \"Professional Development\", Selected: true }];\n if (response.toString() != \"\" && response != null) {\n var settings = JSON.parse(response.toString());\n for (var _i = 0, _a = activityFeedServiceModel.PortalOptions; _i < _a.length; _i++) {\n var portalOption = _a[_i];\n var option = _this.find(settings.PortalOptions, portalOption.Key);\n if (option != null) {\n portalOption.Selected = option.Selected;\n }\n }\n for (var _b = 0, _c = activityFeedServiceModel.CchDailyOptions; _b < _c.length; _b++) {\n var cchDailyOption = _c[_b];\n var option = _this.find(settings.CchDailyOptions, cchDailyOption.Key);\n if (option != null) {\n cchDailyOption.Selected = option.Selected;\n }\n }\n activityFeedServiceModel.SocialMediaOptions.Hashtags = settings.SocialMediaOptions.Hashtags;\n activityFeedServiceModel.SocialMediaOptions.Profiles = settings.SocialMediaOptions.Profiles;\n }\n return activityFeedServiceModel;\n })\n .fail(function (error) {\n console.log(error);\n return null;\n });\n };\n ActivityFeedConfiguratorService.prototype.setUserOptions = function (data) {\n var service = new HttpClient.Channel();\n return service.postDataAsync(\"/api/activityfeedsettings/SaveUserActivityFeedOptions\", HttpClient.ServiceTarget.portalApi, data);\n };\n return ActivityFeedConfiguratorService;\n }());\n exports.ActivityFeedConfiguratorService = ActivityFeedConfiguratorService;\n});\n\n", "define('areas/activityfeedconfigurator/service/billingemail-service',[\"require\", \"exports\", \"services/httpclient\"], function (require, exports, HttpClient) {\n \"use strict\";\n var BillingService = (function () {\n function BillingService() {\n }\n BillingService.prototype.get = function (organizationId) {\n var service = new HttpClient.Channel();\n return service.getDataAsync(\"/activation/api/billingemail/getbillingemails/\" + organizationId, HttpClient.ServiceTarget.oneClickServiceApi)\n .then(function (data) {\n return data;\n })\n .fail(function (error) {\n console.log(error);\n return error;\n });\n };\n BillingService.prototype.post = function (organizationId, data) {\n var service = new HttpClient.Channel();\n return service.postDataAsync(\"/activation/api/billingemail/postbillingemails/\" + organizationId, HttpClient.ServiceTarget.oneClickServiceApi, data);\n };\n return BillingService;\n }());\n exports.BillingService = BillingService;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/activityfeedconfigurator/viewmodels/index',[\"require\", \"exports\", \"models/portal\", \"services/trace\", \"common/viewmodelbase\", \"areas/activityfeedconfigurator/service/activityfeedconfigurator-service\", \"areas/activityfeedconfigurator/service/billingemail-service\", \"areas/activityfeedconfigurator/models/bindable\", \"areas/activityfeedconfigurator/models/dto\", \"models/account\"], function (require, exports, Portal, traceSvc, common, service, billingService, model, dto, Account) {\n \"use strict\";\n var ActivityFeedConfiguratorViewModel = (function (_super) {\n __extends(ActivityFeedConfiguratorViewModel, _super);\n function ActivityFeedConfiguratorViewModel() {\n var _this = this;\n _super.call(this);\n this.portalOptions = new Array();\n this.cchDailyOptions = new Array();\n this.toggleAddProfiles = false;\n this.toggleAddEmails = false;\n this.toggleAddHashtags = false;\n this.profileInput = \"\";\n this.hashtagInput = \"\";\n this.emailInput = \"\";\n this.profileList = [];\n this.hashtagList = [];\n this.emailList = [];\n this.settingsVisibility = false;\n this.emailVisibility = false;\n this.option = \"\";\n this.emptyArray = false;\n this.dialogMessage = \"\";\n this.zeroState = true;\n this.isAdmin = false;\n this.primaryEmail = \"\";\n this.screenWidth = $(window).width();\n this.$window = $(window);\n this.toggleProfiles = function () {\n _this.toggleAddProfiles = !_this.toggleAddProfiles;\n };\n this.toggleHashtags = function () {\n _this.toggleAddHashtags = !_this.toggleAddHashtags;\n };\n this.toggleEmails = function () {\n if (_this.emailList.length >= 6) {\n _this.showDialog('You have reached the maximum number of email addresses. Please delete another email address before adding a new one.');\n }\n else {\n _this.toggleAddEmails = !_this.toggleAddEmails;\n if (_this.emailList.length === 0)\n _this.zeroState = false;\n }\n };\n this.addProfiles = function (profileInput) {\n if (profileInput !== \"\") {\n if (!(_this.profileList.indexOf(profileInput) > -1)) {\n _this.profileList.push(profileInput);\n }\n else {\n traceSvc.traceInformation(\"Profile: \" + profileInput + \" already exists.\");\n }\n }\n _this.toggleAddProfiles = false;\n _this.profileInput = \"\";\n };\n this.removeProfiles = function (profile) {\n var index = _this.profileList.indexOf(profile, 0);\n if (index > -1) {\n _this.profileList.splice(index, 1);\n }\n };\n this.addHashtags = function (hashtagInput) {\n if (hashtagInput !== \"\") {\n if (!(_this.hashtagList.indexOf(hashtagInput) > -1)) {\n _this.hashtagList.push(hashtagInput);\n }\n else {\n traceSvc.traceInformation(\"Hashtag: \" + hashtagInput + \" already exists.\");\n }\n }\n _this.toggleAddHashtags = false;\n _this.hashtagInput = \"\";\n };\n this.removeHashtags = function (hashtag) {\n var index = _this.hashtagList.indexOf(hashtag, 0);\n if (index > -1) {\n _this.hashtagList.splice(index, 1);\n }\n };\n this.addEmails = function (emailInput) {\n if (emailInput !== \"\") {\n if (!(_this.emailList.indexOf(emailInput) > -1)) {\n if (_this.emailList.length === 0)\n _this.primaryEmail = emailInput;\n var email = new dto.BillingEmailEntity(emailInput, _this.emailList.length === 0);\n _this.emailList.push(email);\n }\n else {\n traceSvc.traceInformation(\"Email: \" + emailInput + \" already exists.\");\n }\n }\n _this.toggleAddEmails = false;\n _this.emailInput = \"\";\n if (_this.emailList.length === 0)\n _this.zeroState = true;\n };\n this.enterAddEmail = function (d, e) {\n e.keyCode === 13 && _this.enterExecution();\n return true;\n };\n this.enterExecution = function () {\n if (_this.toggleAddEmails && _this.emailInput !== \"\" && _this.validateEmail(_this.emailInput))\n _this.addEmails(_this.emailInput);\n };\n this.removeEmail = function (emailToDelete) {\n if (emailToDelete.EmailAddress !== _this.primaryEmail) {\n _this.emailList.remove(emailToDelete);\n if (_this.emailList.length === 0)\n _this.zeroState = true;\n }\n else {\n _this.showDialog('This email address is the primary email address for your practice. Please select another primary email address before deleting this one.');\n }\n };\n this.changePrimary = function (index) {\n if (_this.primaryEmail === _this.emailList[index].EmailAddress) {\n var aux = new dto.BillingEmailEntity(_this.emailList[index].EmailAddress);\n _this.emailList.splice(index, 1, aux);\n }\n };\n this.validateEmail = function (email) {\n var re = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(email);\n };\n ko.track(this, [\"portalOptions\", \"cchDailyOptions\", \"toggleAddHashtags\", \"toggleAddProfiles\",\n \"profileList\", \"hashtagList\", \"profileInput\", \"hashtagInput\", \"settingsVisibility\",\n \"emailList\", \"option\", \"toggleAddEmails\", \"emailInput\", \"emailVisibility\", \"dialogMessage\", \"zeroState\", \"primaryEmail\", \"isAdmin\", \"screenWidth\"]);\n this.configuratorService = new service.ActivityFeedConfiguratorService();\n this.billingService = new billingService.BillingService();\n var self = this;\n this.$window.resize(function () {\n self.screenWidth = self.$window.width();\n });\n }\n ActivityFeedConfiguratorViewModel.prototype.onActivated = function (context) {\n //if (!this._initialized) {\n // this._initialized = true;\n // window.setTimeout(() => { this.loadData(); }, 200);\n //}\n this.loadData();\n };\n ActivityFeedConfiguratorViewModel.prototype.loadData = function () {\n this.pageRefresh();\n this.getUserOptions();\n this.getBillingDetails();\n this.getSourcePage(window.location.href);\n this.userIsAdmin();\n };\n ActivityFeedConfiguratorViewModel.prototype.getSourcePage = function (url) {\n var sourceString = url.substring(url.indexOf('?') + 1);\n var id = sourceString.substring(sourceString.lastIndexOf('=') + 1);\n this.sourcePage = id;\n if (id == \"1\")\n this.settingsVisibility = true;\n else {\n this.settingsVisibility = false;\n }\n };\n ActivityFeedConfiguratorViewModel.prototype.userIsAdmin = function () {\n if (Account.Principal.current.memberType === 'stb_admin') {\n this.isAdmin = true;\n }\n };\n ActivityFeedConfiguratorViewModel.prototype.getUserOptions = function () {\n var _this = this;\n this.configuratorService.getUserOptions()\n .then(function (activityFeedServiceModel) {\n //this.hashtagList = activityFeedServiceModel.SocialMediaOptions.Hashtags;\n for (var i = 0; i < activityFeedServiceModel.SocialMediaOptions.Hashtags.length; i++) {\n if (activityFeedServiceModel.SocialMediaOptions.Hashtags[i] != \"\") {\n _this.hashtagList.push(activityFeedServiceModel.SocialMediaOptions.Hashtags[i]);\n }\n }\n //this.profileList = activityFeedServiceModel.SocialMediaOptions.Profiles;\n for (var i = 0; i < activityFeedServiceModel.SocialMediaOptions.Profiles.length; i++) {\n if (activityFeedServiceModel.SocialMediaOptions.Profiles[i] != \"\") {\n _this.profileList.push(activityFeedServiceModel.SocialMediaOptions.Profiles[i]);\n }\n }\n for (var i = 0; i < activityFeedServiceModel.PortalOptions.length; i++) {\n var item = _this.createSettingsGenericEntity(activityFeedServiceModel.PortalOptions[i]);\n _this.portalOptions.push(item);\n }\n for (var i = 0; i < activityFeedServiceModel.CchDailyOptions.length; i++) {\n var item = _this.createSettingsGenericEntity(activityFeedServiceModel.CchDailyOptions[i]);\n _this.cchDailyOptions.push(item);\n }\n });\n };\n ActivityFeedConfiguratorViewModel.prototype.createSettingsGenericEntity = function (entity) {\n var item = new dto.SettingsGenericEntity();\n item.Label = entity.Label;\n item.Selected = entity.Selected;\n item.Key = entity.Key;\n return item;\n };\n ActivityFeedConfiguratorViewModel.prototype.setUserOptions = function () {\n if (this.settingsVisibility) {\n var data = new model.ActivityFeedConfiguratorVM();\n // social media\n data.socialMediaOptions = new dto.SocialMediaOptions();\n data.socialMediaOptions.Hashtags = this.hashtagList;\n data.socialMediaOptions.Profiles = this.profileList;\n // portal options\n data.portalOptions = this.portalOptions;\n // cch daily options\n data.cchDailyOptions = this.cchDailyOptions;\n this.taskManager.startAsync(\"Saving activity feed settings...\", function () {\n return Portal.Context.shell.userManager.saveSettings(\"activity-feed\", data);\n });\n traceSvc.traceInformation(\"Activity feed settings has been successfully saved.\");\n }\n if (this.emailVisibility) {\n this.postBillingDetails();\n }\n };\n ActivityFeedConfiguratorViewModel.prototype.getBillingDetails = function () {\n var _this = this;\n var organizationId = this.activeOrganization.organizationId;\n this.primaryEmail = \"\";\n this.emailInput = \"\";\n this.toggleAddEmails = false;\n this.billingService.get(organizationId).then(function (response) {\n _this.emailList = response.map(function (e) {\n if (e.primaryEmail) {\n _this.primaryEmail = e.emailAddress;\n return null;\n }\n return new dto.BillingEmailEntity(e.emailAddress, e.sendInvoices);\n }).filter(function (e) { return e !== null; });\n _this.zeroState = true;\n if (_this.emailList.length > 0 || _this.primaryEmail !== \"\") {\n _this.zeroState = false;\n _this.emailList.unshift(new dto.BillingEmailEntity(_this.primaryEmail));\n }\n });\n };\n ActivityFeedConfiguratorViewModel.prototype.postBillingDetails = function () {\n var _this = this;\n var organizationId = this.activeOrganization.organizationId;\n var emails = this.emailList.filter(function (e) { return e.EmailAddress !== _this.primaryEmail; });\n emails.unshift(new dto.BillingEmailEntity(this.primaryEmail));\n this.billingService.post(organizationId, emails)\n .then(function (data) {\n traceSvc.traceInformation(\"Charging and billing notifications settings has been successfully saved.\");\n })\n .fail(function (error) {\n traceSvc.traceError(error.responseText);\n console.log(error.responseText);\n });\n };\n ActivityFeedConfiguratorViewModel.prototype.revertChanges = function () {\n this.portalOptions = [];\n this.cchDailyOptions = [];\n this.hashtagList = [];\n this.profileList = [];\n this.emailList = [];\n this.getUserOptions();\n this.getBillingDetails();\n };\n ActivityFeedConfiguratorViewModel.prototype.changeSettingsVisibility = function (param) {\n if (param == \"activityFeed\") {\n this.settingsVisibility = !this.settingsVisibility;\n }\n else if (param == \"billingEmail\") {\n this.emailVisibility = !this.emailVisibility;\n }\n };\n ActivityFeedConfiguratorViewModel.prototype.pageRefresh = function () {\n this.portalOptions = [];\n this.cchDailyOptions = [];\n this.profileInput = \"\";\n this.hashtagInput = \"\";\n this.emailInput = \"\";\n this.profileList = [];\n this.hashtagList = [];\n this.emailList = [];\n };\n ActivityFeedConfiguratorViewModel.prototype.showDialog = function (message) {\n this.dialogMessage = message;\n document.getElementById(\"emailmodal\").style.display = \"block\";\n };\n ActivityFeedConfiguratorViewModel.prototype.closeDialog = function () {\n document.getElementById(\"emailmodal\").style.display = \"none\";\n };\n return ActivityFeedConfiguratorViewModel;\n }(common.ListViewModelBase));\n var instance = new ActivityFeedConfiguratorViewModel();\n return instance;\n});\n\n", "define('areas/autologout/viewmodels/autologout',[\"require\", \"exports\", \"plugins/dialog\", \"models/account\", \"models/portal\"], function (require, exports, dialog, Account, Portal) {\n \"use strict\";\n var AutoLogoutViewModel = (function () {\n function AutoLogoutViewModel() {\n this.remainingSeconds = 60;\n ko.track(this);\n var self = this;\n var shell = Portal.Context.shell;\n this.timer = setInterval(function () {\n self.remainingSeconds--;\n if (self.remainingSeconds == 0) {\n self.clearInterval();\n shell.triggerActivityTimeOut();\n }\n }, 1000);\n var setCss = setInterval(function () {\n var modalHost = document.getElementsByClassName('modalHost');\n modalHost[0].setAttribute(\"style\", \"display: block !important; z-index: 1052; opacity: 1\");\n clearInterval(setCss);\n }, 1000);\n }\n AutoLogoutViewModel.prototype.abortLogout = function () {\n dialog.close(this);\n clearInterval(this.timer);\n Account.Session.guardUserActivity();\n };\n AutoLogoutViewModel.prototype.clearInterval = function () {\n clearInterval(this.timer);\n };\n return AutoLogoutViewModel;\n }());\n return AutoLogoutViewModel;\n});\n\n", "define('services/navigator',[\"require\", \"exports\", \"plugins/router\"], function (require, exports, router) {\n \"use strict\";\n function activeRoute() {\n var segments = router.activeInstruction().fragment.split(\"/\");\n var route = segments[0];\n var path = segments[1];\n var area = router.activeInstruction().config.moduleId.split(\"/\")[1];\n return new Route(route, path, area);\n }\n exports.activeRoute = activeRoute;\n function navigateTo(area, viewModel, route, param, query, title) {\n if (title === void 0) { title = null; }\n if (route != null) {\n if (route.indexOf(\"https\") == -1 && route.indexOf(\"#\") == -1) {\n var path = window.location.hash;\n if (path.indexOf(\"?\") > -1) {\n path = path.substr(0, path.indexOf(\"?\"));\n }\n route = path + route;\n }\n }\n query = query || [];\n var schema = Tools.buildSchema(area, viewModel, route, param);\n var url = Tools.buildUrl(area, viewModel, route, param, query);\n if (!Tools.routeExists(schema)) {\n router.map([\n { route: schema, moduleId: area + \"/viewmodels/\" + viewModel, title: title || viewModel, nav: false }\n ]);\n }\n router.navigate(url);\n }\n exports.navigateTo = navigateTo;\n function navigateToUrl(url) {\n router.navigate(url);\n }\n exports.navigateToUrl = navigateToUrl;\n function goBack() {\n router.navigateBack();\n }\n exports.goBack = goBack;\n function navigateHome() {\n router.navigate(\"\");\n }\n exports.navigateHome = navigateHome;\n var Tools = (function () {\n function Tools() {\n }\n Tools.routeExists = function (schema) {\n for (var index in router.routes) {\n var route = router.routes[index];\n if (route.route == schema) {\n return true;\n }\n }\n ;\n return false;\n };\n Tools.buildSchema = function (area, viewModel, route, param) {\n var schema = route == null ? area + \"/\" + viewModel : route;\n if (param != null) {\n schema += \"/\" + param; // \"/:path\"; => reworked, now directlinks to apps are possible\n }\n if (schema.indexOf(\"#\") > -1)\n schema = schema.replace(\"#\", \"\");\n return schema;\n };\n Tools.buildUrl = function (area, viewModel, route, param, query) {\n var url = route == null ? area + \"/\" + viewModel : route;\n if (param != null) {\n url += \"/\" + param;\n }\n if (query.length > 0) {\n url += \"?\";\n query.forEach(function (param) {\n url += \"&\" + param.key + \"=\" + param.value;\n });\n }\n return url.replace(\"?&\", \"?\");\n };\n return Tools;\n }());\n var NavigationParameter = (function () {\n function NavigationParameter(key, value) {\n this.key = key;\n this.value = value;\n }\n return NavigationParameter;\n }());\n exports.NavigationParameter = NavigationParameter;\n var Route = (function () {\n function Route(route, path, area) {\n this.route = route;\n this.path = path;\n this.area = area;\n }\n return Route;\n }());\n exports.Route = Route;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/baseconeproduct/viewmodels/index',[\"require\", \"exports\", \"common/viewmodelbase\", \"models/portal\", \"services/navigator\", \"services/settings\"], function (require, exports, Common, Portal, Navigator, Configuration) {\n \"use strict\";\n var BaseconeProductViewModel = (function (_super) {\n __extends(BaseconeProductViewModel, _super);\n function BaseconeProductViewModel() {\n _super.call(this);\n this.breadCrumb = new Portal.ModuleBreadCrumbItemHolder();\n this.cdnEndPoint = Configuration.Settings.environment.getCustomValue(\"CdnEndPoint\");\n this.testimonials = [];\n this.toolkits = [];\n this.informationToSendToClient = [];\n this.initializeTestimonials();\n this.initializeToolkits();\n this.initializeInformationToSendToClient();\n this.title = \"BaseconeProduct\";\n ko.track(this, [\"tabSelected\", \"testimonials\"]);\n }\n BaseconeProductViewModel.prototype.onActivated = function (context) {\n this.tabSelected = 0;\n this.shopId = context.queryString.shopId;\n var parameter = context.path.split('/');\n var calledFromTools = parameter[1] != null ? JSON.parse(parameter[1]) : null;\n this.createBaseconeCrumb();\n this.spliceLastBreadcrumbs(context, calledFromTools);\n this.getBaseconeProductDetails();\n this.createBaseconeProductDetailsCrumb();\n };\n BaseconeProductViewModel.prototype.initializeTestimonials = function () {\n var testimonial1 = {\n image: this.cdnEndPoint + \"content/images/4pointzero_logo.jpg\",\n text: '\"Basecone is a key part of our online solution and has helped us and our clients to become completely paperless in our accounting and advisory processes. We have worked with Basecone since 2014 and during this time we have been continually impressed by their ability to innovate and improve the efficiency of our relationship with our clients and how we handle their documents securely.\"',\n name: \"Jamie Allen, Managing Partner, 4PointZero\",\n link: \"\",\n customCss: \"basecone-product-testimonial-logo-image-large\"\n };\n var testimonial2 = {\n image: this.cdnEndPoint + \"content/images/TangmereLogo.png\",\n text: '“We were looking for document management with a simple approval process for people in different locations, wanting to do things at different times of the day, and Basecone was perfect for that. Basecone flux enables me to approve all my purchase invoices and be productive in places and periods where I would otherwise not have been productive – such as when travelling to meetings. And for other users who are deskbound, the online portal works really well. The training required to get up and running was minimal. Within five minutes you are an expert. When you are dealing with non-Accountant type users, the user experience is especially important and Basecone just makes it as simple as possible.â€',\n name: \"Robert Searle, Finance Director, Tangmere Airfield Nurseries\",\n link: \"\",\n customCss: \"basecone-product-testimonial-logo-image-large\"\n };\n var testimonial3 = {\n image: this.cdnEndPoint + \"content/images/JKSLogo.png\",\n text: '“Basecone is such a helpful tool for us to manage all our invoices, statements & supplier correspondence in one place. The authorisation process is simple and suited to multi-site businesses allowing us to get approval even when approvers are not in the office. The link to Twinfield speeds up our internal processes greatly.â€',\n name: \"Amy Lye, Group Financial Controller, JKS Restaurants\",\n link: \"\",\n customCss: \"basecone-product-testimonial-logo-image-small\"\n };\n var testimonial4 = {\n image: this.cdnEndPoint + \"content/images/agsLogo.jpg\",\n text: '\"Having the Basecone scanned images available in Twinfield enables both us, and the clients who have direct access to Twinfield, to quickly and easily drill down from reports directly to the source documents underlying any value in any report. This feature increases the efficiency and effectiveness of communication with our clients and is therefore a key a benefit to us.\"',\n name: \"Steve Aston FCCA, Director, ags accountants and business advisors ltd\",\n link: \"\",\n customCss: \"basecone-product-testimonial-logo-image-large\"\n };\n this.testimonials.push(testimonial1);\n this.testimonials.push(testimonial2);\n this.testimonials.push(testimonial3);\n this.testimonials.push(testimonial4);\n };\n BaseconeProductViewModel.prototype.initializeToolkits = function () {\n var toolkit1 = {\n url: \"https://www.basecone.com/en/\",\n text: 'Basecone for accountants ›',\n icon: \"fa-external-link\"\n };\n var toolkit2 = {\n url: \"https://www.basecone.com/en/spenser/\",\n text: 'Claim your expenses on the go! Basecone SPENSER ›',\n icon: \"fa-external-link\"\n };\n var toolkit3 = {\n url: \"https://www.basecone.com/en/flux/\",\n text: 'Authorise documents with just one swipe! Basecone FLUX ›',\n icon: \"fa-external-link\"\n };\n var toolkit4 = {\n url: \"https://www.basecone.com/en/pricing/\",\n text: 'Pricing information ›',\n icon: \"fa-external-link\"\n };\n this.toolkits.push(toolkit1);\n this.toolkits.push(toolkit2);\n this.toolkits.push(toolkit3);\n this.toolkits.push(toolkit4);\n };\n BaseconeProductViewModel.prototype.initializeInformationToSendToClient = function () {\n var informationToSendToClient1 = {\n url: \"https://ocuksbstatic.blob.core.windows.net/iserve/WK-Basecone-Brochure-SMEs.pdf\",\n text: \"WK Basecone Brochure SME's\",\n icon: \"fa-file-text-o\"\n };\n this.informationToSendToClient.push(informationToSendToClient1);\n };\n BaseconeProductViewModel.prototype.createBaseconeCrumb = function () {\n // initial add of Basecone breadcrumb\n if (this.breadCrumb.items.length === 0) {\n this.addBaseconeCrumbToBreadcrumbItems();\n }\n };\n BaseconeProductViewModel.prototype.spliceLastBreadcrumbs = function (context, calledFromTools) {\n // calledFromTools - flag to see where BaseconeProduct is called from (null - called from Dashboard, not null - called from Tools)\n if (this.breadCrumb.items.length > 1) {\n // for the Basecone page in Tools\n if (calledFromTools == true) {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 1, 1);\n }\n else {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 2, 2);\n }\n }\n else {\n // for the Basecone page in Tools\n if (calledFromTools == true) {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 1, 1);\n this.addBaseconeCrumbToBreadcrumbItems();\n }\n else {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 1, 1);\n }\n }\n };\n BaseconeProductViewModel.prototype.addBaseconeCrumbToBreadcrumbItems = function () {\n var crumb = Portal.BreadCrumbItem.from(\"i-Serve\");\n crumb.clickAction = function () { Navigator.navigateTo(\"iServe\", \"index\", \"/iServe\", null); };\n this.breadCrumb.items.push(crumb);\n };\n BaseconeProductViewModel.prototype.getBaseconeProductDetails = function () {\n this.node = Portal.Context.shell.findNodeByUID(this.shopId);\n };\n BaseconeProductViewModel.prototype.createBaseconeProductDetailsCrumb = function () {\n var crumb = Portal.BreadCrumbItem.from(this.node.name);\n this.breadCrumb.items.push(crumb);\n };\n BaseconeProductViewModel.prototype.selectTab = function (index) {\n this.tabSelected = index;\n };\n return BaseconeProductViewModel;\n }(Common.ViewModelBase));\n var instance = new BaseconeProductViewModel();\n return instance;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/cchgdprcompliance/viewmodels/index',[\"require\", \"exports\", \"common/viewmodelbase\", \"models/portal\", \"services/navigator\", \"services/settings\"], function (require, exports, Common, Portal, Navigator, Configuration) {\n \"use strict\";\n var CchGDPRComplianceViewModel = (function (_super) {\n __extends(CchGDPRComplianceViewModel, _super);\n function CchGDPRComplianceViewModel() {\n _super.call(this);\n this.breadCrumb = new Portal.ModuleBreadCrumbItemHolder();\n this.cdnEndPoint = Configuration.Settings.environment.getCustomValue(\"CdnEndPoint\");\n this.productImage = this.cdnEndPoint + \"content/images/logo.png\";\n this.productTitle = \"CCH GDPR Compliance\";\n this.testimonials = [];\n this.toolkits = [];\n this.informationToSendToClient = [];\n this.initializeTestimonials();\n this.initializeToolkits();\n this.initializeInformationToSendToClient();\n this.title = \"CchGDPRCompliance\";\n ko.track(this, [\"tabSelected\", \"testimonials\"]);\n }\n CchGDPRComplianceViewModel.prototype.onActivated = function (context) {\n this.tabSelected = 0;\n this.shopId = context.queryString.shopId;\n var parameter = context.path.split('/');\n var calledFromTools = parameter[1] != null ? JSON.parse(parameter[1]) : null;\n this.createCchGDPRComplianceCrumb();\n this.spliceLastBreadcrumbs(context, calledFromTools);\n this.getCchGDPRComplianceDetails();\n this.createCchGDPRComplianceDetailsCrumb();\n };\n CchGDPRComplianceViewModel.prototype.initializeTestimonials = function () {\n var testimonial1 = {\n image: this.cdnEndPoint + \"content/images/French_Duncan_logo.png\",\n text: '\"Organisations that are well prepared for GDPR have a distinct competitive advantage over those that are not. If clients ask us about GDPR, we want to be able to show that we understand the issues involved and that we’re taking all reasonable steps to comply.\"<br /><br />\"GDPR introduces a new principle of accountability - it\\'s not enough to just comply with the regulations, you have to be able to demonstrate compliance and prove the governance measures you’ve put in place.The GDPR compliance software makes this much easier to do, which is just one of the ways in which it helps us.\"',\n name: \"<br />Andrew Guy, IT Director, French Duncan\",\n link: \"\",\n customCss: \"cch-gdpr-product-testimonial-logo-image-large\"\n };\n this.testimonials.push(testimonial1);\n };\n CchGDPRComplianceViewModel.prototype.initializeToolkits = function () {\n var toolkit1 = {\n url: \"https://ocuksbstatic.blob.core.windows.net/iserve/FAQ-CCH-GDPR-Compliance.pdf\",\n text: 'FAQ - CCH GDPR Compliance',\n icon: \"fa-file-text-o\"\n };\n var toolkit2 = {\n url: \"https://ocuksbstatic.blob.core.windows.net/iserve/Product-information-CCH-GDPR-Compliance.pdf\",\n text: 'Product information - CCH GDPR Compliance',\n icon: \"fa-file-text-o\"\n };\n this.toolkits.push(toolkit1);\n this.toolkits.push(toolkit2);\n };\n CchGDPRComplianceViewModel.prototype.initializeInformationToSendToClient = function () {\n var informationToSendToClient1 = {\n url: \"https://ocuksbstatic.blob.core.windows.net/iserve/GDPR-Guide-for-SMEs.docx\",\n text: \"GDPR Guide for SMEs (sales)\",\n icon: \"fa-file-text-o\"\n };\n var informationToSendToClient2 = {\n url: \"https://ocuksbstatic.blob.core.windows.net/iserve/GDPR-Guide-for-SMEs-Referral.docx\",\n text: \"GDPR Guide for SMEs (referrals)\",\n icon: \"fa-file-text-o\"\n };\n this.informationToSendToClient.push(informationToSendToClient1);\n this.informationToSendToClient.push(informationToSendToClient2);\n };\n CchGDPRComplianceViewModel.prototype.createCchGDPRComplianceCrumb = function () {\n // initial add of CchGDPRCompliance breadcrumb\n if (this.breadCrumb.items.length === 0) {\n this.addCchGDPRComplianceCrumbToBreadcrumbItems();\n }\n };\n CchGDPRComplianceViewModel.prototype.spliceLastBreadcrumbs = function (context, calledFromTools) {\n // calledFromTools - flag to see where CchGDPRCompliance is called from (null - called from Dashboard, not null - called from Tools)\n if (this.breadCrumb.items.length > 1) {\n // for the CchGDPRCompliance page in Tools\n if (calledFromTools == true) {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 1, 1);\n }\n else {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 2, 2);\n }\n }\n else {\n // for the CchGDPRCompliance page in Tools\n if (calledFromTools == true) {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 1, 1);\n this.addCchGDPRComplianceCrumbToBreadcrumbItems();\n }\n else {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 1, 1);\n }\n }\n };\n CchGDPRComplianceViewModel.prototype.addCchGDPRComplianceCrumbToBreadcrumbItems = function () {\n var crumb = Portal.BreadCrumbItem.from(\"i-Serve\");\n crumb.clickAction = function () { Navigator.navigateTo(\"iServe\", \"index\", \"/iServe\", null); };\n this.breadCrumb.items.push(crumb);\n };\n CchGDPRComplianceViewModel.prototype.getCchGDPRComplianceDetails = function () {\n this.node = Portal.Context.shell.findNodeByUID(this.shopId);\n };\n CchGDPRComplianceViewModel.prototype.createCchGDPRComplianceDetailsCrumb = function () {\n var crumb = Portal.BreadCrumbItem.from(this.node.name);\n this.breadCrumb.items.push(crumb);\n };\n CchGDPRComplianceViewModel.prototype.selectTab = function (index) {\n this.tabSelected = index;\n };\n return CchGDPRComplianceViewModel;\n }(Common.ViewModelBase));\n var instance = new CchGDPRComplianceViewModel();\n return instance;\n});\n\n", "define('areas/clientteam/models/bindable',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var Members = (function () {\n function Members() {\n }\n return Members;\n }());\n exports.Members = Members;\n});\n\n", "define('areas/clientteam/parts/getclientteammembers',[\"require\", \"exports\", \"models/account\", \"services/jsonconverter\", \"services/settings\"], function (require, exports, Account, JsonConverter, Configuration) {\n \"use strict\";\n var GetClientTeamMembers = (function () {\n function GetClientTeamMembers() {\n }\n GetClientTeamMembers.prototype.get = function () {\n var clientGuid = Account.Session.principal.organizationId;\n var url = \"api/PracticePortal/clients/\" + clientGuid + \"/client-team-members\";\n var target = Configuration.Settings.getPracticePortalApi(url);\n var options = this.getAjaxOptions('GET', null, true);\n var response = jQuery.ajax(target, options);\n response.then(function (result) {\n new JsonConverter().convertPropertyNamesToCamelCase(result);\n });\n return response;\n };\n GetClientTeamMembers.prototype.getAjaxOptions = function (type, data, async) {\n var contentType = 'application/json';\n if (data != null && typeof data == \"string\") {\n contentType = 'text/plain';\n }\n var options = {\n async: async,\n context: this,\n type: type,\n contentType: contentType,\n beforeSend: function (req) {\n //req.setRequestHeader(\"Origin\", configuration.Settings.getScope());\n if (Account.Session.isAuthenticated) {\n req.setRequestHeader(\"Authorization\", Account.Session.getAuthorizationHeader());\n }\n }\n };\n if (data != null) {\n if (typeof data == \"string\") {\n options.data = data;\n }\n else {\n options.data = JSON.stringify(data);\n }\n }\n return options;\n };\n return GetClientTeamMembers;\n }());\n return GetClientTeamMembers;\n});\n\n", "/// <reference path=\"../../activityfeed/models/bindable.ts\" />\n/// <reference path=\"../../../../Scripts/typings/toastr/toastr.d.ts\" />\n/// <reference path=\"../../../../Scripts/typings/knockout.es5/knockout.es5.d.ts\" />\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/clientteam/viewmodels/index',[\"require\", \"exports\", \"common/viewmodelbase\", \"services/navigator\", \"areas/clientteam/models/bindable\", \"areas/clientteam/parts/getclientteammembers\"], function (require, exports, common, navigator, BindableModel, GetClientTeamMembers) {\n \"use strict\";\n var NewsViewModel = (function (_super) {\n __extends(NewsViewModel, _super);\n function NewsViewModel() {\n _super.call(this);\n this.getclientteammembers = new GetClientTeamMembers();\n this.newVersion = false;\n this.members = new Array();\n this.title = \"News\";\n ko.track(this, [\"members\", \"newVersion\"]);\n }\n NewsViewModel.prototype.onActivated = function (context) {\n this.getClientTeamMembers();\n };\n NewsViewModel.prototype.showFullNewsList = function () {\n navigator.navigateTo(\"account\", \"news\", \"news\");\n };\n NewsViewModel.prototype.showLegalNotice = function () {\n navigator.navigateTo(\"account\", \"legalnotice\", \"legalnotice\");\n };\n NewsViewModel.prototype.showPrivacyStatement = function () {\n navigator.navigateTo(\"account\", \"privacystatement\", \"privacystatement\");\n };\n NewsViewModel.prototype.getClientTeamMembers = function () {\n var _this = this;\n return this.getclientteammembers.get()\n .then(function (response) {\n if (response != null) {\n if (response.length > 0 && response[0].isOneClickActivated)\n _this.newVersion = true;\n for (var i = 0; i < response.length; i++) {\n var member = new BindableModel.Members();\n if (response[i].imageUri != \"\") {\n member.logo = response[i].imageUri;\n }\n else {\n member.logo = '/html/content/images/employee-icon.png';\n }\n member.name = response[i].fName + \" \" + response[i].lName;\n member.memberType = response[i].role;\n member.roleSelected = response[i].roleSelected;\n member.hideRole = response[i].hideRole;\n _this.members.push(member);\n }\n }\n });\n };\n return NewsViewModel;\n }(common.ViewModelBase));\n return NewsViewModel;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/digitaltaxdownload/viewmodels/index',[\"require\", \"exports\", \"common/viewmodelbase\"], function (require, exports, Common) {\n \"use strict\";\n var DTDownloadViewModel = (function (_super) {\n __extends(DTDownloadViewModel, _super);\n //public breadCrumb: Portal.ModuleBreadCrumbItemHolder = new Portal.ModuleBreadCrumbItemHolder();\n function DTDownloadViewModel() {\n _super.call(this);\n this.title = \"Digital Tax\";\n //ko.track(this, [\"\"]); \n }\n return DTDownloadViewModel;\n }(Common.ViewModelBase));\n var instance = new DTDownloadViewModel();\n return instance;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/gomobiledownload/viewmodels/index',[\"require\", \"exports\", \"common/viewmodelbase\"], function (require, exports, Common) {\n \"use strict\";\n var GoMobileDownloadViewModel = (function (_super) {\n __extends(GoMobileDownloadViewModel, _super);\n //public breadCrumb: Portal.ModuleBreadCrumbItemHolder = new Portal.ModuleBreadCrumbItemHolder();\n function GoMobileDownloadViewModel() {\n _super.call(this);\n this.title = \"Go Mobile\";\n //ko.track(this, [\"\"]); \n }\n return GoMobileDownloadViewModel;\n }(Common.ViewModelBase));\n var instance = new GoMobileDownloadViewModel();\n return instance;\n});\n\n", "define('areas/home/commands/aaaswitchercommand',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var AAASwitchCommand = (function () {\n function AAASwitchCommand(router, usermanager, applications) {\n this._router = router;\n this._userManager = usermanager;\n this._applications = applications;\n }\n AAASwitchCommand.prototype.execute = function (unit) {\n this._userManager.switchUserAccount();\n };\n return AAASwitchCommand;\n }());\n return AAASwitchCommand;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/less/less.d.ts\" />\ndefine('areas/home/commands/changecolorcommand',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var ChangeColorCommand = (function () {\n function ChangeColorCommand() {\n }\n ChangeColorCommand.prototype.execute = function (symbol) {\n less.modifyVars({ \"main-blue\": symbol, \"blue\": symbol, \"brand-primary\": symbol, \"btn-primary-bg\": symbol });\n };\n return ChangeColorCommand;\n }());\n return ChangeColorCommand;\n});\n\n", "define('areas/home/commands/logincommand',[\"require\", \"exports\", \"plugins/router\"], function (require, exports, Router) {\n \"use strict\";\n var LoginCommand = (function () {\n function LoginCommand() {\n }\n LoginCommand.prototype.execute = function (unit) {\n Router.navigate(\"login\");\n //App.showDialog(\"areas/account/viewmodels/login\");\n };\n return LoginCommand;\n }());\n return LoginCommand;\n});\n\n", "define('areas/home/commands/navigatecommand',[\"require\", \"exports\", \"durandal/app\", \"plugins/router\", \"models/account\"], function (require, exports, App, Router, Account) {\n \"use strict\";\n var NavigateCommand = (function () {\n function NavigateCommand(router, usermanager, applications) {\n this._router = router;\n this._userManager = usermanager;\n this._applications = applications;\n }\n NavigateCommand.prototype.execute = function (symbol) {\n if (Account.Session.isExpired) {\n this.signOutAndReset();\n return;\n }\n this.run(symbol);\n };\n NavigateCommand.prototype.executeTwoParam = function (symbol, queryString) {\n if (Account.Session.isExpired) {\n this.signOutAndReset();\n return;\n }\n this.run(symbol, queryString);\n };\n NavigateCommand.prototype.signOutAndReset = function () {\n var alertMessage = $.t(\"app:modules.home.message_sessionExpired\", { ifMissing: \"Ihre Sitzung ist leider abgelaufen. Bitte melden Sie sich erneut an.\" });\n alert(alertMessage);\n this._userManager.signOut();\n this._applications.clear();\n this._router.navigate(\"#\");\n App.trigger(\"authentication\", true);\n window.location.reload();\n };\n NavigateCommand.prototype.run = function (symbol, queryString) {\n try {\n var absoluteUri = symbol.uri.absolute;\n if (queryString !== undefined && queryString !== null && queryString !== '') {\n absoluteUri = absoluteUri + queryString;\n }\n if (symbol.type === \"Application\") {\n if (symbol.children.length === 0) {\n if (this.loadModule(symbol))\n return;\n }\n else if (symbol.disableNavigateToFirstChild) {\n Router.navigate(absoluteUri);\n }\n else {\n var targetAbsoluteUri = symbol.children[0].uri.absolute;\n if (queryString !== undefined && queryString !== null && queryString !== '') {\n targetAbsoluteUri = targetAbsoluteUri + queryString;\n }\n Router.navigate(absoluteUri);\n Router.navigate(targetAbsoluteUri);\n return;\n }\n }\n else if (symbol.type === \"ApplicationLink\") {\n if (this.embedModule(symbol))\n return;\n }\n Router.navigate(absoluteUri);\n }\n catch (ex) {\n alert(ex);\n }\n };\n NavigateCommand.prototype.loadModule = function (item) {\n var app = item.application;\n if (item.openInDialog) {\n // Send node to handle as needed\n App.showDialog('areas/' + app.configuration.moduleId, item);\n return true;\n }\n if (app != null && !app.embedApp) {\n var externalLink = app.link;\n if (externalLink != null) {\n if (!item.openLinkInCurrentTab)\n window.open(externalLink, \"_blank\");\n else\n window.open(externalLink, \"_self\");\n return true;\n }\n }\n return false;\n };\n NavigateCommand.prototype.embedModule = function (item) {\n //if (app != null) {\n ////\tvar applications = new Applications();\n ////\tvar externalLink = applications.getExternalLink(app);\n //\tvar options = { replace: false, trigger: true };\n //\tvar url = item.uri.absolute + \"?url=\" + app.link;\n //\tvar childRouter = Router.createChildRouter();\n //\tchildRouter.navigate(url, options);\n //\t//\tRouter.navigate(\"home/viewmodels/placeholder\" + \"?url=\" + )\n //\t//\tif (externalLink != null) {\n //\t//\t\twindow.open(externalLink, \"_blank\");\n //\t//\t\treturn true;\n //\t//\t}\n //\treturn true;\n //}\n return false;\n };\n return NavigateCommand;\n }());\n return NavigateCommand;\n});\n\n", "define('areas/home/commands/showhelpcommand',[\"require\", \"exports\", \"services/settings\", \"common/string\", \"models/account\"], function (require, exports, Configuration, StringExtensions, Account) {\n \"use strict\";\n var ShowHelpCommand = (function () {\n function ShowHelpCommand() {\n }\n ShowHelpCommand.prototype.execute = function (unit) {\n var isTenant = StringExtensions.contains(Account.Principal.current.memberType, \"stb_\");\n var url = Configuration.Settings.getUrlScheme() + (isTenant ? \"://help.one-click.de/OneClickHelpAdvisor/en/Startseite\" : \"://help.one-Click.de/OneClickHelp/en/Startseite\");\n window.open(url, \"_blank\");\n };\n return ShowHelpCommand;\n }());\n return ShowHelpCommand;\n});\n\n", "define('areas/home/model/dto',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var NavigationNode = (function () {\n function NavigationNode() {\n this.defaultData = new DefaultData();\n this.toggleDescription = false;\n this.uri = new Uri();\n this.groups = [];\n this.children = [];\n this.useImage = false;\n this.isHidden = false;\n ko.track(this, [\"type\", \"name\", \"template\", \"datakey\", \"index\", \"icon\", \"color\", \"useImage\", \"imagePath\", \"groupId\", \"shopId\", \"isHidden\", \"addWidgetBack\", \"thumbnail\", \"toggleDescription\", \"imagePathSearchbar\", \"permissionId\"]);\n }\n return NavigationNode;\n }());\n exports.NavigationNode = NavigationNode;\n var NavigationGroup = (function () {\n function NavigationGroup() {\n }\n return NavigationGroup;\n }());\n exports.NavigationGroup = NavigationGroup;\n var Uri = (function () {\n function Uri() {\n }\n Object.defineProperty(Uri.prototype, \"absolute\", {\n get: function () {\n if (this.path == \"\" && this.fragment == \"\")\n return \"\";\n return (this.path == \"\")\n ? this.fragment\n : this.path + \"/\" + this.fragment;\n },\n enumerable: true,\n configurable: true\n });\n return Uri;\n }());\n exports.Uri = Uri;\n var DefaultData = (function () {\n function DefaultData() {\n }\n return DefaultData;\n }());\n exports.DefaultData = DefaultData;\n});\n\n", "define('areas/home/model/livetilecacheitem',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var LiveTileCacheItem = (function () {\n function LiveTileCacheItem() {\n this.isInvalidated = false;\n }\n return LiveTileCacheItem;\n }());\n return LiveTileCacheItem;\n});\n\n", "define('areas/home/model/livetilerequest',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var LiveTileRequest = (function () {\n function LiveTileRequest() {\n }\n return LiveTileRequest;\n }());\n return LiveTileRequest;\n});\n\n", "define('areas/home/model/panels',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n (function (PanelType) {\n PanelType[PanelType[\"ComposedView\"] = 1] = \"ComposedView\";\n PanelType[PanelType[\"Module\"] = 2] = \"Module\";\n })(exports.PanelType || (exports.PanelType = {}));\n var PanelType = exports.PanelType;\n var ShellPanel = (function () {\n function ShellPanel(type, path, visible) {\n if (visible === void 0) { visible = true; }\n this.type = type;\n this.path = path;\n this.visible = visible;\n ko.track(this, [\"type\", \"path\", \"visible\"]);\n }\n return ShellPanel;\n }());\n exports.ShellPanel = ShellPanel;\n});\n\n", "define('areas/home/model/sidebaritem',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var SidebarItem = (function () {\n function SidebarItem(group, items) {\n var _this = this;\n this.data = null;\n this._group = group;\n this._items = items;\n ko.track(this, [\"data\"]);\n // init data\n if (this._items.length === 1) {\n var handler = this._items[0].liveTileHandler;\n handler.onRendered(null);\n ko.getObservable(handler, \"data\").subscribe(function (x) {\n _this.data = x;\n }, this);\n this.data = handler.data;\n }\n }\n Object.defineProperty(SidebarItem.prototype, \"group\", {\n get: function () {\n return this._group;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SidebarItem.prototype, \"title\", {\n get: function () {\n return this._group.title;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SidebarItem.prototype, \"embedApp\", {\n get: function () {\n if (this._items.length === 1)\n return this._items[0].application.embedApp || this.alwaysShowTiles;\n return true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SidebarItem.prototype, \"isExternal\", {\n get: function () {\n if (this._items.length === 1)\n return this._items[0].application.isExternalApp;\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SidebarItem.prototype, \"childs\", {\n get: function () {\n return this._items;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SidebarItem.prototype, \"index\", {\n get: function () {\n return this._group.index;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SidebarItem.prototype, \"appendSeparator\", {\n get: function () {\n return this.title === \"Personal\" ||\n this.title === \"Personal und Zeiten\" ||\n this.title === \"Postfach\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SidebarItem.prototype, \"prependSeparator\", {\n get: function () {\n return this.title === \"Einstellungen\";\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SidebarItem.prototype, \"icon\", {\n get: function () {\n return this._group.icon;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SidebarItem.prototype, \"useImage\", {\n get: function () {\n return this._group.useImage || false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SidebarItem.prototype, \"imagePath\", {\n get: function () {\n return this._group.imagePath;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SidebarItem.prototype, \"hideFromSidenav\", {\n get: function () {\n return this._group.hideFromSidenav || false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SidebarItem.prototype, \"alwaysShowTiles\", {\n get: function () {\n return this._group.alwaysShowTiles || false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(SidebarItem.prototype, \"showOnMobile\", {\n get: function () {\n return this._group.showOnMobile || false;\n },\n enumerable: true,\n configurable: true\n });\n return SidebarItem;\n }());\n return SidebarItem;\n});\n\n", "define('areas/home/model/sidebar',[\"require\", \"exports\", \"areas/home/model/sidebaritem\", \"common/string\", \"services/navigator\"], function (require, exports, SidebarItem, Strings, Navigator) {\n \"use strict\";\n var Sidebar = (function () {\n function Sidebar(navigateCommand) {\n this.isExpanded = false;\n this.items = [];\n this.current = \"\";\n this.groups = [];\n this.isInEditMode = false;\n this._navigateCommand = navigateCommand;\n ko.track(this, [\"items\", \"isExpanded\", \"current\", \"isInEditMode\"]);\n }\n Sidebar.prototype.buildUp = function (node, currentNode) {\n var _this = this;\n this.groups = node.groups;\n var items = [];\n this.items = [];\n Enumerable.From(node.children)\n .OrderBy(function (x) { return x.groupId; })\n .GroupBy(function (x) { return x.groupId; })\n .ForEach(function (gr) {\n var parentGroup = Enumerable.From(_this.groups).FirstOrDefault(null, function (x) { return x.key === gr.Key(); });\n items.push(new SidebarItem(parentGroup, gr.ToArray()));\n });\n this.items = Enumerable.From(items).OrderBy(function (x) { return x.index; }).ToArray();\n if (this.shouldSelectFirstItem())\n this.selectFirstItem();\n if (currentNode != null) {\n this.setCurrentNode(currentNode);\n }\n };\n Sidebar.prototype.execute = function (item) {\n var _this = this;\n if (item.alwaysShowTiles) {\n this.current = item.title;\n var currentRoute = Navigator.activeRoute();\n if (currentRoute.route !== \"\" && currentRoute.route !== \"home\") {\n Navigator.navigateHome();\n }\n }\n else {\n if (item.title === this.current && item.childs.length === 1)\n return;\n if (item.childs.length === 1) {\n this._navigateCommand.execute(item.childs[0]);\n setTimeout(function () {\n _this.current = item.title;\n }, 100);\n }\n else {\n this.current = item.title;\n var currentRoute = Navigator.activeRoute();\n if (currentRoute.route !== \"\" && currentRoute.route !== \"home\") {\n Navigator.navigateHome();\n }\n }\n }\n };\n Sidebar.prototype.setCurrentNode = function (node) {\n if (node.groupId != null) {\n var group = Enumerable.From(this.groups)\n .FirstOrDefault(null, function (g) { return g.key === node.groupId; });\n if (group != null) {\n this.current = group.title;\n }\n }\n };\n Sidebar.prototype.selectFirstItem = function () {\n var groups = [];\n Enumerable.From(this.items)\n .ForEach(function (x) {\n groups.push(x.group);\n });\n var group = Enumerable.From(groups)\n .Where(function (x) { return x.autoSelectIndex > -1; })\n .OrderBy(function (x) { return x.autoSelectIndex; })\n .FirstOrDefault(null);\n if (group == null) {\n group = Enumerable.From(groups)\n .OrderBy(function (x) { return x.index; })\n .FirstOrDefault(null);\n }\n if (group != null) {\n var item = Enumerable.From(this.items)\n .FirstOrDefault(null, function (x) { return x.title === group.title; });\n this.execute(item);\n }\n };\n Sidebar.prototype.shouldSelectFirstItem = function () {\n if (Strings.contains(window.location.search, \"uri=\")) {\n return false;\n }\n if (!Strings.isNullOrEmpty(window.location.hash) && window.location.hash !== \"#\") {\n return false;\n }\n return true;\n };\n return Sidebar;\n }());\n return Sidebar;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/home/parts/loadmymodules',[\"require\", \"exports\", \"common/parts\"], function (require, exports, Parts) {\n \"use strict\";\n var LoadMyModules = (function (_super) {\n __extends(LoadMyModules, _super);\n function LoadMyModules(applications) {\n _super.call(this);\n this._applications = applications;\n }\n LoadMyModules.prototype.process = function (symbol) {\n var _this = this;\n try {\n Q.when(this._applications.readMine())\n .then(function (data) {\n _this.output.call(data);\n });\n }\n catch (error) {\n this.error.call(error);\n }\n };\n return LoadMyModules;\n }(Parts.Part));\n return LoadMyModules;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/home/parts/loadnavigation',[\"require\", \"exports\", \"common/parts\", \"services/httpclient\", \"services/settings\"], function (require, exports, Parts, Http, Settings) {\n \"use strict\";\n var LoadNavigation = (function (_super) {\n __extends(LoadNavigation, _super);\n function LoadNavigation() {\n _super.apply(this, arguments);\n }\n LoadNavigation.prototype.process = function (symbol) {\n var _this = this;\n var service = new Http.Channel();\n service.getDataAsync(\"/activation/api/configuration/navigation/mine?showAAATile=\" +\n (Settings.Settings.environment.userManager.aaaConfiguration.isAAAEnabled && !Settings.Settings.environment.userManager.aaaConfiguration.isSSOEnabled), Http.ServiceTarget.oneClickServiceApi)\n .then(function (response) {\n _this.output.call(response);\n })\n .fail(function (error) {\n _this.error.call(error);\n });\n };\n return LoadNavigation;\n }(Parts.Part));\n return LoadNavigation;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/home/parts/mapmodulestorouter',[\"require\", \"exports\", \"common/parts\"], function (require, exports, Parts) {\n \"use strict\";\n var MapModulesToRouter = (function (_super) {\n __extends(MapModulesToRouter, _super);\n function MapModulesToRouter(router) {\n _super.call(this);\n this._router = router;\n }\n MapModulesToRouter.prototype.process = function (symbol) {\n var _this = this;\n var navigation = symbol.item3;\n Enumerable.From(navigation.children)\n .ForEach(function (n) { return _this.map(n); });\n this.output.call(symbol);\n };\n MapModulesToRouter.prototype.map = function (node) {\n var _this = this;\n var moduleId = \"home/viewmodels/placeholder\";\n var navigation = false;\n var title = node.name;\n if (node.type == \"Application\" && (node.children.length === 0 || node.disableNavigateToFirstChild)) {\n if (node.application != null) {\n moduleId = node.application.isExternalApp ? \"home/viewmodels/container\" : node.application.configuration.moduleId;\n title = node.application.name;\n }\n navigation = true;\n }\n else if (node.type == \"ApplicationLink\") {\n if (node.raw.data.route.indexOf(\"local://\") >= 0) {\n moduleId = \"home/viewmodels/help\"; //TODO: Sub auswerten\n }\n else if (node.parent.application.isExternalApp) {\n moduleId = \"home/viewmodels/container\";\n }\n navigation = true;\n }\n this._router.map({ route: node.uri.absolute, moduleId: moduleId, title: title, nav: navigation });\n // child routing\n if (node.application != null && node.application.configuration.deepLinks != null) {\n Enumerable.From(node.application.configuration.deepLinks)\n .ForEach(function (x) {\n var route = node.uri.absolute + \"/\" + x.path;\n var module = node.application.configuration.area + \"/viewmodels/\" + x.module;\n _this._router.map({ route: route, moduleId: module, title: title, nav: false });\n });\n }\n // childs durchgehen\n Enumerable.From(node.children)\n .ForEach(function (n) { return _this.map(n); });\n };\n return MapModulesToRouter;\n }(Parts.Part));\n return MapModulesToRouter;\n});\n\n", "define('common/triple',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var Triple = (function () {\n function Triple(item1, item2, item3) {\n this.item1 = item1;\n this.item2 = item2;\n this.item3 = item3;\n }\n return Triple;\n }());\n return Triple;\n});\n\n", "define('areas/home/services/livetilecache',[\"require\", \"exports\", \"durandal/app\", \"services/httpclient\", \"services/trace\", \"areas/home/model/livetilecacheitem\", \"areas/home/model/livetilerequest\"], function (require, exports, App, Http, Trace, LiveTileCacheItem, LiveTileRequest) {\n \"use strict\";\n var LiveTileCache = (function () {\n function LiveTileCache() {\n var _this = this;\n App.on(\"refreshTileData\", (function (x) { return _this.updateTileData(x); }), this);\n this.runAutoUpdate();\n }\n LiveTileCache.prototype.request = function (dataKey, handler) {\n var _this = this;\n var request = new LiveTileRequest();\n request.key = dataKey;\n request.handler = handler;\n // unnötige Calls verhindern\n var cachedItem = this.findCacheItem(request.key);\n if (cachedItem !== null && !cachedItem.isInvalidated)\n return;\n // in die Task-Kette legen\n LiveTileCache._requests.push(request);\n if (LiveTileCache._requests.length === 1) {\n window.setTimeout(function () { _this.fetchTileData(); }, 0);\n }\n };\n LiveTileCache.prototype.updateTileData = function (dataKey) {\n var cachedItem = this.findCacheItem(dataKey);\n if (cachedItem !== null) {\n cachedItem.isInvalidated = true;\n this.request(dataKey, cachedItem.handler);\n }\n };\n LiveTileCache.prototype.fetchTileData = function () {\n var channel = new Http.Channel();\n while (LiveTileCache._requests.length > 0) {\n var request = LiveTileCache._requests.pop();\n var cachedItem = this.findCacheItem(request.key);\n if (cachedItem == null || cachedItem.isInvalidated) {\n channel.getData(\"/api/tiles/\" + request.key, Http.ServiceTarget.portalApi)\n .then(function (result) {\n if (cachedItem == null) {\n cachedItem = new LiveTileCacheItem();\n cachedItem.key = request.key;\n cachedItem.handler = request.handler; // TODO: Muss das evtl. eine Auflistung sein?\n LiveTileCache._items.push(cachedItem);\n }\n cachedItem.isInvalidated = false;\n cachedItem.data = result;\n })\n .fail(function (reason) {\n var alertMessage = $.t(\"app:modules.home.message_loadDetailsFailed\", { ifMissing: \"Fehler beim Laden der Detaildaten: \" });\n Trace.traceError(alertMessage + reason, null, request.key, true);\n });\n }\n if (cachedItem !== null)\n cachedItem.handler(cachedItem.data);\n }\n };\n LiveTileCache.prototype.findCacheItem = function (dataKey) {\n return Enumerable.From(LiveTileCache._items)\n .FirstOrDefault(null, function (x) { return x.key === dataKey; });\n };\n LiveTileCache.prototype.runAutoUpdate = function () {\n var _this = this;\n if (LiveTileCache._autoUpdateIsRunning === false) {\n LiveTileCache._autoUpdateIsRunning = true;\n Enumerable.From(LiveTileCache._items)\n .ForEach(function (x) { return _this.updateTileData(x.key); });\n setTimeout(function () { _this.runAutoUpdate(); }, 5 * 60000); // alle 5min\n }\n };\n LiveTileCache._invalid = true;\n LiveTileCache._items = [];\n LiveTileCache._requests = [];\n LiveTileCache._autoUpdateIsRunning = false;\n return LiveTileCache;\n }());\n return LiveTileCache;\n});\n\n", "define('areas/home/viewmodels/datatile',[\"require\", \"exports\", \"plugins/router\", \"areas/home/services/livetilecache\"], function (require, exports, Router, Cache) {\n \"use strict\";\n var DataTileViewModel = (function () {\n //#region ctor\n function DataTileViewModel(node) {\n this.data = null;\n this._node = node;\n this.title = this._node.name;\n this.color = this._node.color || null;\n this.data = this.getLoadingStatusData();\n ko.track(this, [\"title\", \"data\", \"color\"]);\n }\n //#endregion\n DataTileViewModel.prototype.onRendered = function (elements) {\n var _this = this;\n if (this._node.datakey == null || this._node.datakey.length === 0)\n return;\n var cache = new Cache();\n cache.request(this._node.datakey, function (data) { return _this.parseData(data); });\n };\n //#endregion\n DataTileViewModel.prototype.execute = function (data) {\n var app = this._node.application;\n if (!app.embedApp) {\n var externalLink = app.link;\n if (externalLink != null) {\n window.open(externalLink, \"_blank\");\n }\n }\n else {\n if (this._node.children.length > 0)\n Router.navigate(this._node.uri.absolute);\n Router.navigate(data.url);\n }\n };\n DataTileViewModel.prototype.parseData = function (data) {\n this._item = data;\n if (this._item != null)\n this.data = JSON.parse(this._item.jsonContent);\n if (this._item == null)\n this.data = this.getDefaultData();\n };\n //private loadData(datakey: string): void {\n //\tvar that = this;\n //\tvar channel = new Http.Channel();\n //\tchannel.getData(\"/api/tiles/\" + datakey, Http.ServiceTarget.portalApi)\n //\t\t.then((result) => {\n //\t\t\tthat._item = result;\n //\t\t\tif (that._item != null) that.data = JSON.parse(that._item.jsonContent);\n //\t\t\tif (that._item == null) that.data = that.getDefaultData();\n //\t\t})\n //\t\t.fail((reason: any) => {\n //\t\t\tTrace.traceError(\"Fehler beim Laden der Detaildaten: \" + reason, null, datakey, true);\n //\t\t});\n //}\n DataTileViewModel.prototype.getDefaultData = function () {\n var tileMessage = $.t(\"app:modules.home.tiledata_noData\", { ifMissing: \"Keine Daten\" });\n return {\n showTitle: false,\n parts: [\n {\n type: \"icon\"\n },\n {\n type: \"nodata\",\n data: {\n message: tileMessage,\n icon: \"fa-truck\"\n }\n }\n ]\n };\n };\n DataTileViewModel.prototype.getLoadingStatusData = function () {\n return {\n showTitle: false,\n parts: [\n {\n type: \"icon\"\n },\n {\n type: \"nodata\",\n data: {\n message: \"Lade...\",\n icon: \"commenting-o\"\n }\n }\n ]\n };\n };\n DataTileViewModel.prototype.runWorker = function () {\n var _this = this;\n if (typeof (Worker) !== \"undefined\") {\n var w = new Worker(\"app/areas/home/workers/sampleworker.js\");\n w.onmessage = function (ev) {\n _this.data = ev.data;\n w.terminate();\n };\n w.postMessage(\"loadData\");\n }\n };\n return DataTileViewModel;\n }());\n return DataTileViewModel;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/home/parts/maptonavigationmodel',[\"require\", \"exports\", \"common/parts\", \"common/triple\", \"common/string\", \"areas/home/model/dto\", \"areas/home/viewmodels/datatile\", \"services/settings\"], function (require, exports, Parts, Triple, Strings, Model, Tile, Configuration) {\n \"use strict\";\n var MapToNavigationModel = (function (_super) {\n __extends(MapToNavigationModel, _super);\n function MapToNavigationModel() {\n _super.apply(this, arguments);\n this.cdnEndPoint = Configuration.Settings.environment.getCustomValue(\"CdnEndPoint\");\n }\n MapToNavigationModel.prototype.process = function (symbol) {\n var modules = symbol.item1;\n var root = symbol.item2;\n var result = this.map(null, root, modules);\n this.output.call(new Triple(root, modules, result));\n };\n MapToNavigationModel.prototype.map = function (root, node, modules) {\n var _this = this;\n var imagePath = \"\";\n var imagePathSearchbar = \"\";\n if (node.data.imagePath) {\n imagePath = node.data.imagePath.indexOf(\"/\") === 0 ? node.data.imagePath.substring(1) : node.data.imagePath;\n imagePath = this.cdnEndPoint + imagePath.replace(\"html/content/images/\", \"content/images/\");\n }\n if (node.data.imagePathSearchbar) {\n imagePathSearchbar = node.data.imagePathSearchbar.indexOf(\"/\") === 0 ? node.data.imagePathSearchbar.substring(1) : node.data.imagePathSearchbar;\n imagePathSearchbar = this.cdnEndPoint + imagePathSearchbar.replace(\"html/content/images/\", \"content/images/\");\n }\n var result = new Model.NavigationNode();\n result.type = node.data.type;\n result.name = node.data.name.replace(/&/g, '&');\n result.isHidden = node.data.isHidden || false;\n result.icon = node.data.icon || null;\n result.color = node.data.color || null;\n result.openInDialog = node.data.openInDialog || false;\n result.openLinkInCurrentTab = node.data.openLinkInCurrentTab || false;\n result.disableNavigateToFirstChild = node.data.disableNavigateToFirstChild || false;\n result.key = node.data.key || null;\n result.showOnMobile = node.data.showOnMobile || false;\n result.useImage = node.data.useImage || false;\n result.imagePath = imagePath;\n result.imagePathSearchbar = imagePathSearchbar;\n result.permissionId = node.data.permissionId || null;\n result.template = Strings.isNullOrEmpty(node.data.template) ? \"default\" : node.data.template;\n result.datakey = node.data.datakey;\n result.groupId = node.data.groupId == null ? \"\" : node.data.groupId.toString();\n result.groups = this.mapGroups(node.groups);\n result.index = parseInt(node.data.index);\n result.parent = root;\n if (node.data.defaultData != null && node.data.defaultData != \"\" && this.isJson(node.data.defaultData)) {\n result.defaultData = JSON.parse(node.data.defaultData);\n }\n result.raw = node;\n result.application = result.type !== \"Application\"\n ? null\n : Enumerable.From(modules).FirstOrDefault(null, function (m) { return m.templateId.toLocaleLowerCase() == node.data.uID.toLocaleLowerCase(); });\n result.uri.fragment = this.buildFragment(result);\n result.uri.path = (root == null ? \"\" : root.uri.absolute);\n result.thumbnail = this.buildThumbnailPath(result);\n // Counters tile navigation parameters\n if (result.name === \"Digital Data Review\") {\n result.firstCounterQueryString = \"?status=All\";\n result.secondCounterQueryString = \"?status=Client completed\";\n }\n if (result.type === \"Application\")\n result.shopId = node.data.uID;\n else\n result.shopId = null;\n // live data handling\n result.liveTileHandler = new Tile(result);\n // childs\n var childs = new Array();\n Enumerable.From(node.children)\n .ForEach(function (child) {\n var item = _this.map(result, child, modules);\n if (item != null)\n childs.push(item);\n });\n result.children = Enumerable.From(childs).OrderBy(function (x) { return x.index; }).ToArray();\n return result;\n };\n MapToNavigationModel.prototype.mapGroups = function (source) {\n var result = new Array();\n Enumerable.From(source)\n .ForEach(function (gr) {\n var group = new Model.NavigationGroup();\n group.key = gr.key;\n group.title = gr.title;\n group.description = gr.description;\n group.index = gr.index;\n group.autoSelectIndex = gr.autoSelectIndex;\n group.icon = gr.icon;\n group.useImage = gr.useImage;\n group.imagePath = gr.imagePath;\n group.showAddWidgets = gr.showAddWidgets;\n group.hideFromSidenav = gr.hideFromSidenav;\n group.showOnMobile = gr.showOnMobile;\n group.alwaysShowTiles = gr.alwaysShowTiles;\n result.push(group);\n });\n return result;\n };\n MapToNavigationModel.prototype.isJson = function (json) {\n try {\n JSON.parse(json);\n }\n catch (e) {\n return false;\n }\n return true;\n };\n MapToNavigationModel.prototype.buildFragment = function (node) {\n var segment = node.type == \"UserType\" ? \"\" : node.name;\n //TODO: testweise entfernt: Damit wird immer der Name aus dem Nav-Baum genommen und nicht der der App.\n //if (node.type == \"Application\" && node.raw.children.length == 0) {\n //\tvar app = node.application;\n //\tif (app != null) segment = app.name;\n //}\n return segment.replace(/ /g, \"\").replace(/\\//g, \"\").toLowerCase();\n };\n MapToNavigationModel.prototype.buildThumbnailPath = function (node) {\n var path = \"/thumbnails/performance_monitor.png\";\n if (node.type == \"Application\") {\n var app = node.application;\n if (app != null)\n path = app.imagePath;\n }\n return path;\n };\n return MapToNavigationModel;\n }(Parts.Part));\n return MapToNavigationModel;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/jquery/jquery.d.ts\" />\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/home/viewmodels/container',[\"require\", \"exports\", \"durandal/app\", \"common/viewmodelbase\", \"services/settings\", \"common/string\"], function (require, exports, App, ViewModel, Configuration, StringExtensions) {\n \"use strict\";\n var ContainerViewModel = (function (_super) {\n __extends(ContainerViewModel, _super);\n //#region ctor\n function ContainerViewModel() {\n _super.call(this);\n //#endregion\n this.uri = \"\";\n this.showHost = false;\n this.isloading = true;\n this.title = $.t(\"app:modules.home.headline_title\", { ifMissing: \"home\" });\n ko.track(this, [\"uri\", \"showHost\", \"isloading\"]);\n }\n ContainerViewModel.prototype.onActivated = function (context) {\n return Q(true);\n };\n ContainerViewModel.prototype.attached = function () {\n var _this = this;\n App.trigger(\"pushCurrentNode\", function (node) { return _this.embed(node); });\n // resizing\n this.showHost = true;\n };\n ContainerViewModel.prototype.onBeforeClosing = function (path) {\n if (!close)\n return;\n this.showHost = false;\n return true;\n };\n ContainerViewModel.prototype.embed = function (item) {\n var that = this;\n var link = this.buildLink(item);\n // remap\n var url = link.indexOf(\"https\") >= 0\n ? link\n : Configuration.Settings.getHost() + link;\n //\n this.isloading = true;\n jQuery(\"#slhost\").load(function () {\n that.isloading = false;\n });\n //pdfs machen Ärger...\n window.setTimeout(function () { return that.isloading = false; }, 1500);\n this.uri = url;\n };\n ContainerViewModel.prototype.buildLink = function (item) {\n var link = \"\";\n if (item.type === \"ApplicationLink\" && item.raw.data.route != null) {\n link = item.parent.application.appendUrl(item.raw.data.route);\n }\n else {\n var app = item.type === \"Application\"\n ? item.application\n : item.parent.application;\n link = app.link;\n }\n var externalParameters = this.getExternalParameters();\n if (externalParameters !== \"\" && link.indexOf(\"?\") < 0) {\n externalParameters = \"?\" + externalParameters;\n externalParameters = externalParameters.replace(\"?&\", \"?\");\n }\n var url = link + externalParameters;\n return url;\n };\n ContainerViewModel.prototype.getExternalParameters = function () {\n var search = window.location.search;\n var result = \"\";\n if (search !== null && search !== \"\") {\n search = search.replace(\"?\", \"&\");\n var parameters = search.split(\"&\");\n parameters.forEach(function (x) {\n if (x !== \"\" &&\n !StringExtensions.contains(x, \"nid\") &&\n !StringExtensions.contains(x, \"token\") &&\n !StringExtensions.contains(x, \"ext\") &&\n !StringExtensions.contains(x, \"actas\")) {\n result += \"&\" + x;\n }\n });\n }\n return result;\n };\n return ContainerViewModel;\n }(ViewModel.ViewModelBase));\n return ContainerViewModel;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/home/viewmodels/dashboard',[\"require\", \"exports\", \"durandal/app\", \"models/account\", \"common/viewmodelbase\"], function (require, exports, App, Account, ViewModel) {\n \"use strict\";\n var IndexViewModel = (function (_super) {\n __extends(IndexViewModel, _super);\n //#region ctor\n function IndexViewModel() {\n _super.call(this);\n //#endregion\n this.isAuthenticated = Account.Session.isAuthenticated;\n this.title = \"home\";\n ko.track(this, [\"isAuthenticated\"]);\n if (!Account.Session.isAuthenticated) {\n App.on('authentication', this.onAuthenticationChanged, this);\n }\n }\n IndexViewModel.prototype.onActivated = function (context) {\n this.isAuthenticated = Account.Session.isAuthenticated;\n return Q(true);\n };\n IndexViewModel.prototype.onAuthenticationChanged = function (value) {\n this.isAuthenticated = Account.Session.isAuthenticated;\n };\n return IndexViewModel;\n }(ViewModel.ViewModelBase));\n var instance = new IndexViewModel();\n return instance;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/jquery/jquery.d.ts\" />\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/home/viewmodels/help',[\"require\", \"exports\", \"durandal/app\", \"common/string\", \"common/viewmodelbase\", \"services/settings\"], function (require, exports, App, StringExtensions, ViewModel, Configuration) {\n \"use strict\";\n var HelpViewModel = (function (_super) {\n __extends(HelpViewModel, _super);\n //#region ctor\n function HelpViewModel() {\n _super.call(this);\n //#endregion\n this.showHost = false;\n this.isloading = true;\n this.title = $.t(\"app:modules.home.headline_title\", { ifMissing: \"home\" });\n ko.track(this, [\"uri\", \"showHost\", \"isloading\"]);\n }\n HelpViewModel.prototype.onActivated = function (context) {\n return Q(true);\n };\n HelpViewModel.prototype.attached = function () {\n var _this = this;\n App.trigger(\"pushCurrentNode\", function (node) { return _this.embed(node); });\n };\n HelpViewModel.prototype.embed = function (item) {\n var isTenant = StringExtensions.contains(\"Account.Principal.current.memberType\", \"stb_\");\n var link = this.buildLink(item);\n var url = Configuration.Settings.getUrlScheme() + (isTenant ? \"://help.one-click.de/OneClickHelpAdvisor/en/\" : \"://help.one-Click.de/OneClickHelp/en/\");\n link = link.replace(\"local://help?url=\", url);\n window.open(link, \"_blank\");\n };\n HelpViewModel.prototype.buildLink = function (item) {\n if (item.type === \"ApplicationLink\" && item.raw.data.route != null) {\n return item.raw.data.route;\n }\n var app = item.type === \"Application\"\n ? item.application\n : item.parent.application;\n return app.link;\n };\n return HelpViewModel;\n }(ViewModel.ViewModelBase));\n return HelpViewModel;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/home/viewmodels/home',[\"require\", \"exports\", \"durandal/app\", \"models/account\", \"common/viewmodelbase\"], function (require, exports, App, Account, ViewModel) {\n \"use strict\";\n var HomeViewModel = (function (_super) {\n __extends(HomeViewModel, _super);\n //#region ctor\n function HomeViewModel() {\n _super.call(this);\n //#endregion\n this.isAuthenticated = Account.Session.isAuthenticated;\n this.title = $.t(\"app:modules.home.headline_title\", { ifMissing: \"home\" });\n ko.track(this, [\"isAuthenticated\"]);\n if (!Account.Session.isAuthenticated) {\n App.on('authentication', this.onAuthenticationChanged, this);\n }\n }\n HomeViewModel.prototype.onActivated = function (context) {\n this.isAuthenticated = Account.Session.isAuthenticated;\n return Q(true);\n };\n HomeViewModel.prototype.onAuthenticationChanged = function (value) {\n this.isAuthenticated = Account.Session.isAuthenticated;\n };\n return HomeViewModel;\n }(ViewModel.ViewModelBase));\n var instance = new HomeViewModel();\n return instance;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/home/viewmodels/placeholder',[\"require\", \"exports\", \"common/viewmodelbase\"], function (require, exports, ViewModel) {\n \"use strict\";\n var PlaceholderViewModel = (function (_super) {\n __extends(PlaceholderViewModel, _super);\n //#region ctor\n function PlaceholderViewModel() {\n _super.call(this);\n this.knowledgeBaseUrl = 'https://www.cch.co.uk/softwaresupport/2015/resources/knowledgebase.asp';\n this.title = $.t(\"app:modules.home.headline_title\", { ifMissing: \"home\" });\n }\n //#endregion\n PlaceholderViewModel.prototype.onActivated = function (context) {\n return Q(true);\n };\n return PlaceholderViewModel;\n }(ViewModel.ViewModelBase));\n var instance = new PlaceholderViewModel();\n return instance;\n});\n\n", "define('areas/home/viewmodels/shellextender',[\"require\", \"exports\", \"areas/home/model/panels\", \"services/settings\", \"durandal/app\", \"models/account\", \"services/httpclient\"], function (require, exports, Panels, Configuration, App, Account, HttpClient) {\n \"use strict\";\n var ShellExtender = (function () {\n function ShellExtender(shell) {\n var that = this;\n this._shell = shell;\n App.off(\"authentication\", that.onAuthenticationChanged, that);\n App.on(\"authentication\", that.onAuthenticationChanged, that);\n App.on(\"appcues\", that.startAppcues, that);\n App.on(\"customcss\", that.getCustomCss, that);\n }\n ShellExtender.prototype.initialize = function () {\n var _this = this;\n var leftPanels = Enumerable.From(Configuration.Settings.environment.leftPanels);\n leftPanels.ForEach(function (pnl) {\n _this._shell.leftPanels.push(new Panels.ShellPanel(Panels.PanelType.ComposedView, pnl.path, pnl.isVisible != null ? pnl.isVisible : true));\n });\n var rightPanels = Enumerable.From(Configuration.Settings.environment.rightPanels);\n rightPanels.ForEach(function (pnl) {\n _this._shell.rightPanels.push(new Panels.ShellPanel(Panels.PanelType.ComposedView, pnl.path));\n });\n if (rightPanels.Count() > 0)\n ko.getObservable(this._shell, \"viewType\").subscribe(this.onViewTypeChanged, this);\n /*route maps*/\n this._shell.router.map({ route: \"logout\", moduleId: \"logout/viewmodels/index\", title: \"Logout\", nav: false });\n this._shell.router.map({ route: \"informationrequest/clientDetails\", moduleId: \"informationrequest/viewmodels/clientDetails\", title: \"Details\", nav: false });\n this._shell.router.map({ route: \"digitaldatareview/clientDetails\", moduleId: \"informationrequest/viewmodels/clientDetails\", title: \"Details\", nav: false });\n this._shell.router.map({ route: \"digitaltax/clientDetails\", moduleId: \"informationrequest/viewmodels/clientDetails\", title: \"Details\", nav: false });\n this._shell.router.map({ route: \"informationrequest/hmrcInfoDetails\", moduleId: \"informationrequest/viewmodels/hmrcInfoDetails\", title: \"Details\", nav: false });\n this._shell.router.map({ route: \"digitaltax/hmrcInfoDetails\", moduleId: \"informationrequest/viewmodels/hmrcInfoDetails\", title: \"Details\", nav: false });\n this._shell.router.map({ route: \"tools/wkappstore\", moduleId: \"wkappstore/viewmodels/index\", title: \"WKAppStore\", nav: false });\n this._shell.router.map({ route: \"i-Serve\", moduleId: \"iServe/viewmodels/index\", title: \"i-Serve\", nav: false });\n this._shell.router.map({ route: \"tools/i-Serve/true\", moduleId: \"iServe/viewmodels/index\", title: \"i-Serve\", nav: false });\n this._shell.router.map({ route: \"open-integration\", moduleId: \"wkappstore/viewmodels/index\", title: \"open-integration\", nav: false });\n this._shell.router.map({ route: \"messages-documents\", moduleId: \"wkappstore/viewmodels/index\", title: \"messages-documents\", nav: false });\n };\n ShellExtender.prototype.onViewTypeChanged = function (newValue) {\n switch (newValue) {\n case \"UserType\":\n this._shell.rightPanels[0].visible = true;\n break;\n default:\n this._shell.rightPanels[0].visible = false;\n break;\n }\n };\n ShellExtender.prototype.onAuthenticationChanged = function () {\n var _this = this;\n if (Account.Session.isAuthenticated) {\n var initializers = Configuration.Settings.environment.initializers;\n if (initializers != null) {\n Enumerable.From(initializers).ForEach(function (initializer) {\n if (initializer.memberType == null || initializer.memberType === Account.Session.principal.memberType) {\n switch (initializer.type) {\n case \"Dialog\":\n {\n if (initializer.oneTimeOnly === false)\n App.showDialog(initializer.path);\n else {\n _this._shell.userManager.getSettings(initializer.key)\n .then(function (data) {\n if (data === \"\") {\n App.showDialog(initializer.path);\n }\n });\n }\n break;\n }\n case \"Notification\":\n {\n if (initializer.oneTimeOnly && Configuration.Settings.environment.userManager.type === 'trippleA') {\n _this._shell.userManager.getSettings(initializer.key)\n .then(function (data) {\n if (data === \"\") {\n _this.getAAAFlags()\n .then(function (aaaConfiguration) {\n if (aaaConfiguration.isAAAEnabled) {\n _this.createClientPortalNotification(Account.Session.principal.identityId)\n .then(function (data) {\n _this._shell.userManager.saveSettings(initializer.key, { executed: true });\n })\n .fail(function (error) {\n console.log(error.responseText);\n });\n }\n });\n }\n });\n }\n break;\n }\n }\n }\n });\n }\n }\n };\n ShellExtender.prototype.startAppcues = function () {\n if (Appcues && (Account.Principal.current.memberType === 'stb_postmaster' || Account.Principal.current.memberType === 'stb_admin' || Account.Principal.current.memberType === 'client_postmaster')) {\n this._widget = null;\n Appcues.identify(Account.Principal.current.identityId, {\n userType: Account.Principal.current.memberType\n });\n }\n };\n ShellExtender.prototype.getCustomCss = function () {\n if (Account.Principal.current.memberType === \"client_postmaster\")\n // adding custom theme\n $('head').append('<link rel=\"stylesheet\" href=\"' + Configuration.Settings.getPublicApiFor(\"api/configuration/subdomains/\" + Configuration.Settings.getPortalDomain() + \"/theme/css\") + '\" />');\n };\n ShellExtender.prototype.startAppcuesWidget = function () {\n if (this._widget == null) {\n this._widget = AppcuesWidget(Appcues.user());\n this._widget.init(\"#ac-widget\", {\n position: \"left\"\n });\n }\n };\n ShellExtender.prototype.createClientPortalNotification = function (userIdentityId) {\n var service = new HttpClient.Channel();\n return service.postDataAsync(\"users/\" + userIdentityId + \"/activationcompleted\", HttpClient.ServiceTarget.clientPortalApi, null);\n };\n ShellExtender.prototype.getAAAFlags = function () {\n var service = new HttpClient.Channel();\n return service.getDataAsync(\"/activation/api/aaamigration/aaaflags/subdomain/\" + Configuration.Settings.getPortalDomain(), HttpClient.ServiceTarget.oneClickServiceApi)\n .then(function (data) {\n return data;\n })\n .fail(function (error) {\n return error;\n });\n ;\n };\n return ShellExtender;\n }());\n return ShellExtender;\n});\n\n", "define('areas/widgetmanager/viewmodels/index',[\"require\", \"exports\", 'durandal/app', \"services/settings\"], function (require, exports, app, Configuration) {\n \"use strict\";\n var AddWidgetVM = (function () {\n function AddWidgetVM() {\n this.widgetList = [];\n this.zeroState = false;\n }\n AddWidgetVM.prototype.showAddWidgetsPopUp = function (_shell) {\n this._shell = _shell;\n app.showDialog(this); // locate html file through durandal dialog mechanism\n for (var i = 0; i < _shell.groupedNavigationItems.length; i++) {\n if (_shell.groupedNavigationItems[i].key === _shell.sidebar.current) {\n for (var j = 0; j < _shell.groupedNavigationItems[i].list.length; j++) {\n if (_shell.groupedNavigationItems[i].list[j].isHidden) {\n _shell.groupedNavigationItems[i].list[j].addWidgetBack = false;\n _shell.groupedNavigationItems[i].list[j].toggleDescription = false;\n this.widgetList.push(_shell.groupedNavigationItems[i].list[j]);\n }\n }\n break;\n }\n }\n if (this.widgetList.length == 0) {\n this.zeroStateImagePath = Configuration.Settings.environment.getCustomValue(\"CdnEndPoint\") + \"content/images/add-widgets-zero-state.png\";\n this.zeroState = true;\n }\n ko.track(this, [\"widgetList\", \"_shell\", \"zeroState\", \"zeroStateImagePath\"]);\n };\n AddWidgetVM.prototype.closeAddWidgetsPopUp = function () {\n app.closeDialog(this);\n };\n AddWidgetVM.prototype.saveChanges = function () {\n for (var i = 0; i < this.widgetList.length; i++) {\n this.widgetList[i].isHidden = !this.widgetList[i].addWidgetBack;\n }\n this._shell.saveUserSettingsChanges();\n this.closeAddWidgetsPopUp();\n };\n return AddWidgetVM;\n }());\n return AddWidgetVM;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/durandal/durandal.d.ts\" />\n/// <reference path=\"../../../../Scripts/typings/toastr/toastr.d.ts\" />\n/// <reference path=\"../../../../Scripts/typings/q/Q.d.ts\" />\n/// <reference path=\"../../../../Scripts/typings/linq/linq.d.ts\" />\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments)).next());\n });\n};\ndefine('areas/home/viewmodels/shell',[\"require\", \"exports\", \"durandal/app\", \"plugins/router\", \"models/portal\", \"models/account\", \"services/trace\", \"services/settings\", \"services/httpclient\", \"common/viewmodelbase\", \"areas/home/model/dto\", \"common/string\", \"areas/home/model/sidebar\", \"areas/home/viewmodels/shellextender\", \"common/parts\", \"areas/home/parts/loadmymodules\", \"areas/home/parts/loadnavigation\", \"areas/home/parts/mapmodulestorouter\", \"areas/home/parts/maptonavigationmodel\", \"areas/home/commands/logincommand\", \"areas/home/commands/logoutcommand\", \"areas/home/commands/changecolorcommand\", \"areas/home/commands/navigatecommand\", \"areas/home/commands/showhelpcommand\", \"areas/widgetmanager/viewmodels/index\"], function (require, exports, App, Router, Portal, Account, Trace, Configuration, Http, ViewModel, Model, Strings, Sidebar, ShellExtender, Parts, LoadMyModules, LoadNavigation, MapModulesToRouter, MapToNavigationModel, LoginCommand, LogoutCommand, ChangeColorCommand, NavigateCommand, ShowHelpCommand, WidgetManager) {\n \"use strict\";\n var ShellViewModel = (function (_super) {\n __extends(ShellViewModel, _super);\n //#region ctor\n function ShellViewModel() {\n var _this = this;\n _super.call(this);\n this._moduleMainChildCrumbItemsSubscription = null;\n this._moduleCrumbItemsSubscription = null;\n this._isInitialized = false;\n this._unauthorizedRoutes = [\"changepassword\", \"login\"];\n this._deepLink = null;\n this.user = Account.Principal.current;\n this.isAuthenticated = Account.Session.isAuthenticated;\n this.isRouterActivated = false;\n this.crumbs = [];\n this.navigationTree = [];\n this.groupedNavigationItems = [];\n this.shortCuts = [];\n this.searchResult = [];\n this.viewType = 'UserType';\n this.allowCustomization = false;\n this.mailbox = null;\n this.usermanagement = null;\n this.officeNewsIsActivated = false;\n this.taxLawNewsIsActivated = false;\n this.activitiesAreActivated = false;\n this.isClientUser = false;\n this.notifications = 0;\n this.loginCommand = new LoginCommand();\n this.changeColorCommand = new ChangeColorCommand();\n this.showHelpCommand = null;\n this.leftPanels = [];\n this.rightPanels = [];\n this.showCopyrightLogo = true;\n this.ssoEnabled = false;\n this.openIntegrationUrl = \"/open-integration\";\n this.messagesDocumentsUrl = \"/messages-documents\";\n this.mtdfvUrl = \"/mtdfv\";\n this.redirectCookieName = \"redirectOneClickModule\";\n App.title = $.t(\"app:modules.common.app_name\", { ifMissing: \"AOC\" });\n Portal.Context.shell = this;\n this.router = Router;\n this.title = \"Shell\";\n this.router.makeRelative({ moduleId: 'areas' });\n ko.track(this, [\"logoUrl\", \"user\", \"isAuthenticated\", \"isRouterActivated\", \"crumbs\", \"navigationTree\", \"shortCuts\", \"viewType\", \"searchSymbol\", \"searchResult\", \"groupedNavigationItems\",\n \"currentNode\", \"mailbox\", \"usermanagement\", \"officeNewsIsActivated\", \"taxLawNewsIsActivated\", \"notifications\", \"activitiesAreActivated\", \"isClientUser\", \"showLoginDialog\",\n \"leftPanels\", \"rightPanels\", \"allowCustomization\", \"contentDialog\", \"showCopyrightLogo\"\n ]);\n this.extender = new ShellExtender(this);\n App.on(\"pushCurrentNode\", (function (x) { return x(_this.currentNode); }), this);\n App.on(\"pushNotifications\", (function (x) { return _this.notifications = x; }), this);\n App.on(\"tokenTimeOut\", this.onTokenTimeOut, this);\n App.on(\"activityTimeOut\", this.onActivityTimeOut, this);\n App.on('changeAvatar', function () { return _this.updateAvatar(); });\n }\n //#endregion\n ShellViewModel.prototype.onActivated = function (context) {\n return __awaiter(this, void 0, Promise, function* () {\n yield Configuration.Settings.initialize();\n this.userManager = Configuration.Settings.createUserManager();\n this.practiceName = Configuration.Settings.environment.userManager.aaaConfiguration.practiceName;\n this.ssoEnabled = Configuration.Settings.environment.userManager.aaaConfiguration.isSSOEnabled;\n this.AAAuserCheck = Configuration.Settings.environment.userManager.type === \"trippleA\";\n if (Configuration.Settings.useHelpSystem) {\n this.showHelpCommand = new ShowHelpCommand();\n }\n this.showCopyrightLogo = Configuration.Settings.environment.getCustomValue(\"ShowCopyrightLogo\", true) === \"true\";\n this.logoutCommand = new LogoutCommand(this.router, this.userManager, this.applications);\n this.navigateCommand = new NavigateCommand(this.router, this.userManager, this.applications);\n this.sidebar = new Sidebar(this.navigateCommand);\n this.extender.initialize();\n this.logoUrl = Configuration.Settings.mainLogoPath;\n this.logoHeight = Configuration.Settings.environment.getCustomValue(\"BannerLogoHeight\", 20);\n if (!Account.Session.isAuthenticated && window.location.hash.indexOf(\"#id_token\") < 0) {\n if (window.location.hash !== \"\") {\n if (!Enumerable.From(this._unauthorizedRoutes).Any(function (x) { return window.location.hash.indexOf(x) > 0; })) {\n this._deepLink = window.location.hash.replace(\"#\", \"\");\n window.location.hash = \"\";\n var expirationTime = new Date(new Date().getTime() + 120000);\n if (this._deepLink.toLowerCase() === this.openIntegrationUrl.toLowerCase() ||\n this._deepLink.toLowerCase() === this.messagesDocumentsUrl ||\n this._deepLink.toLowerCase() === this.mtdfvUrl.toLowerCase()) {\n document.cookie = this.redirectCookieName + \"=\" + this._deepLink.toLowerCase() + \";expires=\" + expirationTime.toUTCString() + \";path=/;\";\n }\n }\n }\n }\n this.activitiesAreActivated = Account.Principal.current.memberType === \"client_postmaster\";\n this.isClientUser = Account.Principal.current.memberType === \"client_postmaster\";\n var LIGHT_FOREGROUND = \"#ffffff\";\n var DARK_FOREGROUND = \"#474747\"; // DARK_FOREGROUND used to be #000000 but was changed following a request of the UX team\n try {\n var channel = new Http.Channel();\n var message = yield channel.getData(\"/api/configuration/subdomains/\" + Configuration.Settings.getPortalDomain() + \"/theme/css\", Http.ServiceTarget.publicApi);\n var backgroundColor = message.split(';')[3].split(':')[1];\n var rgbColor = this.colorNameToRGB(backgroundColor);\n var sep = rgbColor.indexOf(\",\") > -1 ? \",\" : \" \";\n var rgb = rgbColor.substr(4).split(\")\")[0].split(sep);\n var rgbBackground = {\n r: parseInt(rgb[0]),\n g: parseInt(rgb[1]),\n b: parseInt(rgb[2])\n };\n var luminance = (rgbBackground.r * 299 + rgbBackground.g * 587 + rgbBackground.b * 114) / 1000;\n this.contrastForeground = luminance > 125 ? DARK_FOREGROUND : LIGHT_FOREGROUND;\n }\n catch (reason) {\n this.contrastForeground = LIGHT_FOREGROUND;\n }\n return this.initialize();\n });\n };\n ShellViewModel.prototype.colorNameToRGB = function (color) {\n var d = document.createElement(\"div\");\n d.style.color = color;\n document.body.appendChild(d);\n //Color in RGB \n var rgbColor = window.getComputedStyle(d).color;\n document.body.removeChild(d);\n return rgbColor;\n };\n //#region event handling\n ShellViewModel.prototype.onTokenTimeOut = function () {\n if (Account.Session.isExpired) {\n var alertMessage = $.t(\"app:modules.home.message_sessionExpired\", { ifMissing: \"Ihre Sitzung ist leider abgelaufen. Bitte melden Sie sich erneut an.\" });\n alert(alertMessage);\n this.userManager.signOut();\n this.applications.clear();\n this.router.navigate(\"#\");\n this.reset();\n App.trigger(\"authentication\", true);\n window.location.reload();\n }\n };\n ShellViewModel.prototype.onActivityTimeOut = function () {\n App.showDialog(\"areas/autologout/viewmodels/autologout\", this);\n };\n ShellViewModel.prototype.triggerActivityTimeOut = function () {\n Account.Session.clear();\n this.userManager.signOut();\n this.applications.clear();\n this.reset();\n };\n ShellViewModel.prototype.onAuthenticationChanged = function () {\n var that = this;\n this.reset();\n if (Account.Session.isAuthenticated) {\n that.startPortalContext()\n .then(function (x) {\n var link = that.convertPortalUri(that._deepLink);\n if (link != null)\n that.router.navigate(link, true);\n that._deepLink = null;\n });\n }\n };\n ShellViewModel.prototype.onSearchExecuted = function (symbol) {\n var _this = this;\n this.searchResult.removeAll();\n if (symbol == null || symbol.length == 0)\n return;\n var func = function (n) {\n if (n.type === \"Application\" && n.name.toLowerCase().indexOf(symbol.toLowerCase()) > -1) {\n _this.searchResult.push(n);\n }\n // childs\n Enumerable.From(n.children)\n .ForEach(function (child) { return func(child); });\n };\n func(this._navigation);\n };\n ShellViewModel.prototype.onRouteChanged = function (instruction) {\n try {\n // clear last view.\n jQuery(\"#moduleContent\").children().children().remove();\n this.searchSymbol = \"\";\n // handle normal process\n var segments = instruction.fragment == \"\" ? [] : instruction.fragment.split(\"/\");\n var node = this.findNodeFor(instruction);\n if (node == null)\n return;\n if (node.uri.fragment == \"\" && segments.length > 0) {\n this.clearNavigationUI();\n this.viewType = \"Unknown\";\n return;\n }\n // build navigation ui\n this.setCurrentNode(node);\n }\n catch (err) {\n alert(err);\n }\n };\n //#endregion\n ShellViewModel.prototype.switchUser = function (item) {\n var _this = this;\n var identityId = Account.Principal.current.identityId;\n var userName = Account.Principal.current.identityName;\n if (item != null) {\n this.userManager.signOutSwitchUser();\n this.applications.clear();\n var request = new Account.Requests.ProfileLoginRequest(Configuration.Settings.getPortalDomain(), userName, identityId, item.networkMemberId);\n this.userManager.signIn(request)\n .then(function (x) {\n _this.reset();\n _this.router.navigate(\"#\");\n App.trigger(\"authentication\", true);\n location.reload();\n });\n }\n };\n ShellViewModel.prototype.switchUserAccount = function () {\n this.userManager.switchUserAccount();\n };\n //#region tools\n ShellViewModel.prototype.initialize = function () {\n return __awaiter(this, void 0, Promise, function* () {\n this.attach();\n this.mapDefaultRoutes();\n // alte session weg, bei DirektLogin => wichtig, ADDISON\n var locationSearch = window.location.search;\n var isDirectLogin = [\"nid=\", \"session=\", \"secret=\", \"showembedded=\"].some(function (param) { return locationSearch.includes(param); });\n if (isDirectLogin && Account.Session.isAuthenticated) {\n Account.Session.clear();\n this.applications.clear();\n this.reset();\n }\n // anmeldevorgang\n if (Account.Session.isAuthenticated) {\n if (Account.Principal.current.shouldChangePassword && Configuration.Settings.environment.userManager.type === 'simple') {\n yield this.logoutCommand.execute(null);\n }\n else {\n return this.startPortalContext();\n }\n }\n // deep link portal\n if (Strings.contains(window.location.search, \"uri=\") && this._deepLink == null) {\n this._deepLink = locationSearch.replace(\"?\", \"\");\n }\n var hashValue = window.location.hash;\n if (hashValue.indexOf(\"_token\") >= 0) {\n window.location.hash = \"\";\n }\n try {\n yield this.activateRouter();\n if (hashValue.indexOf(\"#id_token\") >= 0) {\n yield this.userManager.signInFromIdToken(hashValue);\n }\n else if (hashValue.indexOf(\"#access_token\") >= 0) {\n yield this.userManager.signInFromAccessToken(hashValue);\n }\n else if (window.location.search.indexOf(\"code\") >= 0) {\n yield this.userManager.signInFromAuthorizationCode(locationSearch);\n }\n else if (Account.Session.hasRefreshToken()) {\n yield this.userManager.signInFromRefreshToken();\n }\n else if (Strings.contains(window.location.search, \"nid=\")) {\n yield this.userManager.signInFromNid(locationSearch);\n }\n else if (Strings.contains(window.location.search, \"secret=\")) {\n yield this.userManager.signInFromSecret(locationSearch);\n }\n else if (Strings.contains(window.location.search, \"session=\")) {\n yield this.userManager.signInFromSessionId(locationSearch);\n }\n else if (!hashValue || hashValue === \"#\") {\n this.userManager.showDialog();\n }\n if (locationSearch !== \"\") {\n var url = window.location.protocol + \"//\" + window.location.hostname + window.location.pathname;\n if (window.location.hash !== \"\") {\n url += window.location.hash;\n }\n history.replaceState(\"\", \"\", url);\n }\n }\n catch (error) {\n Trace.traceError(error, null, \"\", true);\n }\n });\n };\n ShellViewModel.prototype.startPortalContext = function () {\n return __awaiter(this, void 0, Promise, function* () {\n Account.Session.guardUserActivity();\n Account.Session.setupAppInsights();\n var progress = new Parts.Progress(this.taskManager);\n var mapModulesToRouter = Parts.PartBinder.bind(new MapModulesToRouter(this.router), progress.process.bind(progress));\n var mapToNavigationModel = Parts.PartBinder.bind(new MapToNavigationModel(), mapModulesToRouter.process.bind(mapModulesToRouter));\n var join = Parts.PartBinder.bind(new Parts.Join(), mapToNavigationModel.process.bind(mapToNavigationModel));\n var loadMyModules = Parts.PartBinder.bind(new LoadMyModules(this.applications), join.first.bind(join));\n var loadNavigation = Parts.PartBinder.bind(new LoadNavigation(), join.second.bind(join));\n var workStatus = $.t(\"app:modules.home.message_oneclickInit\", { ifMissing: \"ADDISON OneClick wird initialisiert.\" });\n // Start the progress\n progress.start(workStatus, function () {\n loadMyModules.process({});\n loadNavigation.process({});\n });\n try {\n // Wait for the progress output to finish\n var data = yield new Promise(function (resolve) {\n progress.output.connect(function (data) { return resolve(data); });\n });\n // Process the result\n this._navigation = data.item3;\n this._modules = data.item2;\n this.setHomeApps(this._modules);\n this.setCurrentNode(this._navigation);\n yield this.activateRouter();\n this.sidebar.buildUp(this._navigation, this.currentNode);\n App.trigger(\"appcues\", true);\n App.trigger(\"customcss\", true);\n return true;\n }\n catch (error) {\n console.error('Error in startPortalContext:', error);\n throw error;\n }\n });\n };\n ShellViewModel.prototype.activateRouter = function () {\n return __awaiter(this, void 0, Promise, function* () {\n this.router.buildNavigationModel();\n // .mapUnknownRoutes((instruction) => {\n // alert(\"Shell: not found: \" + instruction.fragment);\n // });\n if (!this.isRouterActivated) {\n this.isRouterActivated = true;\n try {\n // Await the activation of the router\n var result = yield this.router.activate();\n return result; // Return the result of the activation\n }\n catch (error) {\n console.error('Error activating router:', error);\n throw error; // Rethrow the error for further handling\n }\n }\n return true; // Return true if the router was already activated\n });\n };\n ShellViewModel.prototype.setHomeApps = function (modules) {\n var mailBoxItemId = \"1e08b4cf-3baa-49e9-b266-ad8a8aa984dc\";\n this.mailbox = this.findNodeForApp(this._navigation, mailBoxItemId);\n var usermanagementItemId = \"bb0bd3a1-8f77-4775-95e8-4a9a36855eee\";\n this.usermanagement = this.findNodeForApp(this._navigation, usermanagementItemId);\n var officeNewsItemId = \"e19e6da9-3135-4b67-8188-f75cc1e22617\";\n this.officeNewsIsActivated = this.findApp(officeNewsItemId) != null;\n var taxNewsItemId = \"4ab21477-fab0-494b-b7a4-91d2025d4c77\";\n this.taxLawNewsIsActivated = this.findApp(taxNewsItemId) != null;\n //var activitiesItemId = \"72D92CC2-473F-4563-9EC4-84F3F6108852\";\n this.activitiesAreActivated = Account.Principal.current.memberType === 'client_postmaster'\n || Account.Principal.current.memberType === 'client_clerk';\n this.isClientUser = Account.Principal.current.memberType === \"client_postmaster\";\n };\n ShellViewModel.prototype.setCurrentNode = function (node) {\n var _this = this;\n this.currentNode = node;\n this.viewType = this.currentNode.type;\n if (this.currentNode.type !== \"ApplicationLink\") {\n this.clearNavigationUI();\n var nodeType = this.currentNode.type;\n var children = this.currentNode.type == \"ApplicationLink\" ? this.currentNode.parent.children : this.currentNode.children;\n var list = nodeType == \"Application\" || nodeType === \"ApplicationLink\" ? this.shortCuts : this.navigationTree;\n Enumerable.From(children)\n .ForEach(function (child) {\n list.push(child);\n });\n // gruppierung\n Enumerable.From(list)\n .GroupBy(function (x) { return x.groupId; })\n .ForEach(function (group) {\n if (_this.currentNode.groups) {\n for (var i = 0; i < _this.currentNode.groups.length; i++) {\n if (_this.currentNode.groups[i].key === group.Key()) {\n var itm = {\n showAddWidgets: _this.currentNode.groups[i].showAddWidgets,\n key: group.Key(),\n list: group.ToArray()\n };\n }\n }\n }\n _this.groupedNavigationItems.push(itm);\n });\n }\n if (this.sidebar.items.length > 0)\n this.sidebar.setCurrentNode(node);\n this.buildCrumbs(this.currentNode);\n };\n ShellViewModel.prototype.buildCrumbs = function (node) {\n var _this = this;\n var crumbs = [];\n var iterator = node;\n while (iterator.parent != null) {\n crumbs.push(Portal.BreadCrumbItem.from(iterator.name, iterator.icon, iterator.thumbnail, iterator, function (item) { return _this.navigateCommand.execute(item.source); }));\n iterator = iterator.parent;\n }\n this.crumbs.removeAll();\n Enumerable.From(crumbs)\n .Reverse()\n .ForEach(function (x) {\n _this.crumbs.push(x);\n });\n };\n ShellViewModel.prototype.clearNavigationUI = function () {\n this.crumbs.removeAll();\n this.groupedNavigationItems.removeAll();\n this.searchResult.removeAll();\n this.shortCuts.removeAll();\n this.navigationTree.removeAll();\n };\n ShellViewModel.prototype.convertPortalUri = function (source) {\n if (source == null || source.indexOf(\"portal://\") < 0)\n return source;\n var uniqueItemId = Portal.PortalUri.mapToUniqueItemId(source);\n if (uniqueItemId != null) {\n var node = this.findNodeForApp(this._navigation, uniqueItemId.toLowerCase());\n if (node != null)\n return node.uri.absolute;\n }\n return null;\n };\n ShellViewModel.prototype.reset = function () {\n this.isAuthenticated = Account.Principal.current !== null;\n this.user = Account.Principal.current;\n this.clearNavigationUI();\n this._navigation = null;\n this.currentNode = null;\n };\n ShellViewModel.prototype.attach = function () {\n var that = this;\n if (that._searchSubscription != null)\n that._searchSubscription.dispose();\n if (that._routerItemSubscription != null)\n that._routerItemSubscription.dispose();\n App.off(\"authentication\", that.onAuthenticationChanged, that);\n App.on(\"authentication\", that.onAuthenticationChanged, that);\n // Track page navigation events in app insights\n if (window.appInsights) {\n that.router.on('router:navigation:processing', function (instruction) {\n that._routerInstructionModule = instruction.config.moduleId;\n window.appInsights.startTrackPage(that._routerInstructionModule);\n });\n that.router.on('router:navigation:complete', function () {\n window.appInsights.stopTrackPage(that._routerInstructionModule);\n });\n }\n else {\n console.log(\"Shell Attach: Application Insights SDK not found\");\n }\n that._searchSubscription = ko.getObservable(that, \"searchSymbol\").subscribe(that.onSearchExecuted, that);\n that._routerItemSubscription = that.router.activeItem.subscribe(function (item) {\n that.onRouteChanged(that.router.activeInstruction());\n that.bindModuleBreadCrumbItems(item);\n }, that);\n };\n ShellViewModel.prototype.mapDefaultRoutes = function () {\n this.router.map([\n { route: \"\", moduleId: \"home/viewmodels/home\", title: \"Home\", nav: false },\n { route: \"home\", moduleId: \"home/viewmodels/home\", title: \"Home\", nav: true },\n { route: \"changePassword\", moduleId: \"account/viewmodels/changepassword\", title: \"ChangePassword\", nav: false },\n { route: \"login\", moduleId: \"account/viewmodels/login\", title: \"Login\", nav: false },\n ]);\n };\n ShellViewModel.prototype.saveUserSettingsChanges = function () {\n var userTailsSettings = [];\n Enumerable.From(this.navigationTree).ForEach(function (node) {\n userTailsSettings.push({\n groupUID: node.groupId,\n tileUID: node.shopId,\n isHidden: node.isHidden\n });\n });\n this.userManager.saveSettings(\"tile-visibility\", { userTailsSettings: userTailsSettings });\n };\n ShellViewModel.prototype.findNodeForApp = function (node, uniqueId) {\n if (node.application != null && node.application.uniqueItemId == uniqueId)\n return node;\n if (node.children.length > 0) {\n for (var n in node.children) {\n var tmp = node.children[n];\n var item = this.findNodeForApp(tmp, uniqueId);\n if (item != null)\n return item;\n }\n }\n return null;\n };\n ShellViewModel.prototype.findApp = function (uniqueItemId) {\n var item = Enumerable.From(this._modules)\n .FirstOrDefault(null, function (m) { return m.uniqueItemId == uniqueItemId; });\n return item;\n };\n ShellViewModel.prototype.updateAvatar = function () {\n jQuery(\"#avatar\").css('background-image', 'url(' + Account.Principal.current.avatar + ')');\n };\n //#endregion\n //#region module bread crumb\n ShellViewModel.prototype.bindModuleBreadCrumbItems = function (item) {\n if (this._moduleMainChildCrumbItemsSubscription != null)\n this._moduleMainChildCrumbItemsSubscription.dispose();\n if (this._moduleCrumbItemsSubscription != null)\n this._moduleCrumbItemsSubscription.dispose();\n // bind\n if (item.breadCrumb != null) {\n this.bindModuleMainChildCrumbItems(item);\n this.bindModuleCrumbItems(item);\n }\n };\n ShellViewModel.prototype.bindModuleMainChildCrumbItems = function (item) {\n // add new\n var moduleItem = Enumerable.From(this.crumbs).Last();\n Enumerable.From(item.breadCrumb.rootChilds)\n .ForEach(function (x) { return moduleItem.items.push(x); });\n // subscribe to changes\n this._moduleMainChildCrumbItemsSubscription = ko.getObservable(item.breadCrumb, \"rootChilds\").subscribe(function (e) {\n moduleItem.items.removeAll();\n Enumerable.From(item.breadCrumb.rootChilds)\n .ForEach(function (x) { return moduleItem.items.push(x); });\n });\n };\n ShellViewModel.prototype.bindModuleCrumbItems = function (item) {\n var _this = this;\n // add new\n Enumerable.From(item.breadCrumb.items)\n .ForEach(function (x) { return _this.crumbs.push(x); });\n // subscribe changes\n this._moduleCrumbItemsSubscription = ko.getObservable(item.breadCrumb, \"items\").subscribe(function (e) {\n Enumerable.From(_this.crumbs)\n .ForEach(function (i) {\n if (i.source == null || i.source.constructor != Model.NavigationNode) {\n _this.crumbs.remove(i);\n }\n });\n Enumerable.From(item.breadCrumb.items)\n .ForEach(function (x) { return _this.crumbs.push(x); });\n });\n };\n //#endregion\n // #region ishell\n ShellViewModel.prototype.findNodeFor = function (symbol) {\n var node = this._navigation;\n if (node == null)\n return;\n var segments = symbol.fragment === \"\" ? [] : symbol.fragment.split(\"/\");\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (node.children != null) {\n var item = Enumerable.From(node.children)\n .FirstOrDefault(null, function (n) { return n.uri.fragment === segment; });\n if (item != null)\n node = item;\n }\n }\n return node;\n };\n ShellViewModel.prototype.findNodeByUID = function (symbol) {\n return this.findNodeForApp(this._navigation, symbol);\n };\n ShellViewModel.prototype.navigateTo = function (symbol) {\n this.navigateCommand.execute(symbol);\n };\n ShellViewModel.prototype.showDialog = function (dialog) {\n this.contentDialog = dialog;\n };\n ShellViewModel.prototype.hideDialog = function () {\n this.contentDialog = null;\n };\n //#endregion\n // #region add-widgets uk\n ShellViewModel.prototype.showAddWidgets = function () {\n this._widgetManager = new WidgetManager();\n this._widgetManager.showAddWidgetsPopUp(this);\n };\n ShellViewModel.prototype.checkShowAddWidgetsCondition = function () {\n for (var i = 0; i < this.groupedNavigationItems.length; i++) {\n if (this.sidebar.current === this.groupedNavigationItems[i].key) {\n return this.groupedNavigationItems[i].showAddWidgets;\n }\n }\n };\n // #endregion\n // #region get cookie by name\n ShellViewModel.prototype.getCookie = function (cname) {\n var name = cname + \"=\";\n var decodedCookie = decodeURIComponent(document.cookie);\n var ca = decodedCookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return \"\";\n };\n return ShellViewModel;\n }(ViewModel.ViewModelBase));\n var instance = new ShellViewModel();\n return instance;\n});\n//export = ShellViewModel \n;\n", "var i = 0;\nfunction timedCount() {\n i = i + 1;\n postMessage(i, null, null);\n setTimeout(\"timedCount()\", 5000);\n}\nfunction loadData() {\n var data = [\n {\n value: 300,\n color: \"#F7464A\",\n highlight: \"#FF5A5E\",\n label: \"Red\"\n },\n {\n value: 50,\n color: \"#46BFBD\",\n highlight: \"#5AD3D1\",\n label: \"Green\"\n },\n {\n value: 100,\n color: \"#FDB45C\",\n highlight: \"#FFC870\",\n label: \"Yellow\"\n }\n ];\n postMessage(data, null, null);\n}\nfunction initialize() {\n self.onmessage = function (e) {\n var data = e.data;\n switch (data) {\n case \"loadData\":\n setTimeout(\"loadData()\", 2500);\n break;\n }\n };\n}\ninitialize();\n\ndefine(\"areas/home/workers/sampleworker\", function(){});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/iServe/viewmodels/index',[\"require\", \"exports\", \"common/viewmodelbase\", \"services/navigator\", \"models/portal\"], function (require, exports, Common, Navigator, Portal) {\n \"use strict\";\n var iServeViewModel = (function (_super) {\n __extends(iServeViewModel, _super);\n function iServeViewModel() {\n _super.call(this);\n this.mobileApps = [];\n this.breadCrumb = new Portal.ModuleBreadCrumbItemHolder();\n this.title = \"iServe\";\n ko.track(this, [\"mobileApps\"]);\n }\n iServeViewModel.prototype.onActivated = function (context) {\n this._symbol = {\n config: \"\",\n fragment: \"tools\",\n params: null,\n queryParams: null,\n queryString: null\n };\n this._currentNode = Portal.Context.shell.findNodeFor(this._symbol);\n this.getiServeTiles();\n this.createiServeCrumb(context);\n };\n iServeViewModel.prototype.createiServeCrumb = function (context) {\n for (var i = 0; i < this.breadCrumb.items.length; i++) {\n if (this.breadCrumb.items[i].name === \"i-Serve\") {\n this.breadCrumb.items.remove(this.breadCrumb.items[i]);\n }\n }\n var parameter = context.path.split('/');\n var calledFromTools = parameter[1] != null ? JSON.parse(parameter[1]) : null;\n // calledFromTools - flag to see where iServe is called from (false - called from Dashboard, true - called from Tools)\n if (this.breadCrumb.items.length === 0) {\n if (calledFromTools == true) {\n var crumb = Portal.BreadCrumbItem.from(\"i-Serve\");\n this.breadCrumb.items.push(crumb);\n }\n }\n };\n iServeViewModel.prototype.iServeProductClick = function (node) {\n var calledFromTools = false;\n var params = [];\n // enter if statement only if iServeProduct is called from Tools > iServe\n if (this.breadCrumb.items.length === 1) {\n calledFromTools = true;\n }\n params.push(new Navigator.NavigationParameter(\"shopId\", node.shopId));\n switch (node.name.toLowerCase()) {\n case \"payescape\":\n Navigator.navigateTo(\"payescapeproduct\", \"index\", \"/payescapeproduct\", JSON.stringify(calledFromTools), params);\n break;\n case \"twinfield\":\n Navigator.navigateTo(\"twinfieldproduct\", \"index\", \"/twinfieldproduct\", JSON.stringify(calledFromTools), params);\n break;\n case \"basecone\":\n Navigator.navigateTo(\"baseconeproduct\", \"index\", \"/baseconeproduct\", JSON.stringify(calledFromTools), params);\n break;\n case \"cch gdpr compliance\":\n Navigator.navigateTo(\"cchgdprcompliance\", \"index\", \"/cchgdprcompliance\", JSON.stringify(calledFromTools), params);\n break;\n }\n };\n iServeViewModel.prototype.getiServeTiles = function () {\n var _this = this;\n if (this._currentNode.children != null) {\n var items = Enumerable.From(this._currentNode.children)\n .Where(function (n) { return n.groupId === _this.title; });\n this.mobileApps = items.ToArray();\n }\n };\n return iServeViewModel;\n }(Common.ViewModelBase));\n var instance = new iServeViewModel();\n return instance;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/informationrequest/models/bindable',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var BaseSectionVM = (function () {\n function BaseSectionVM() {\n this.isChecked = ko.observable(false);\n this.viewBreakdown = ko.observable(false);\n this.isFromHmrc = ko.observable(false);\n this.children = [];\n this.comments = [];\n //public attachments: Array<Attachment> = [];\n this.seeMore = ko.observable(false);\n this.expanded = ko.observable(false);\n this.mouseOver = ko.observable(false);\n this.enclosedPressed = ko.observable(false);\n this.commentsCount = ko.observable(0);\n this.attachmentsCount = ko.observable(0);\n //public hasWarningSpouse = ko.observable(true);\n this.hasWarningInvalidFname = ko.observable(false);\n this.hasWarningInvalidSurname = ko.observable(false);\n this.hasWarningInvalidNINO = ko.observable(false);\n this.hasWarningInvalidDom = ko.observable(false);\n this.hasWarningInvalidDob = ko.observable(false);\n this.hasWarningMissingFName = ko.observable(true);\n this.hasWarningMissingSurName = ko.observable(true);\n this.hasWarningMissingNINO = ko.observable(true);\n this.hasWarningMissingdom = ko.observable(true);\n this.hasWarningMissingdob = ko.observable(true);\n this.completeFromWeb = ko.observable(true);\n this.hasNotification = ko.observable(false);\n this.hasClientNotification = false;\n this.hasHMRCAPIError = ko.observable(false);\n this.hasHMRCAPI404Error = ko.observable(false);\n this.beforeUnloadPrompt = ko.observable(\"You forgot to save your work\");\n this.isJointlyOwned = ko.observable(false);\n this.jointShare = ko.observable('100%');\n this.committed_Date = ko.observable(\"\");\n this.foreignCurrency = ko.observable(\"\");\n this.foreignCountry = ko.observable(\"\");\n this.RentalIncome = ko.observable(\"\");\n this.OtherIncome = ko.observable(\"\");\n this.PrevRentalIncome = ko.observable(\"\");\n this.PrevOtherIncome = ko.observable(\"\");\n this.SumIncomeFromProperty = ko.computed(function () {\n var otherIncome = this.OtherIncome() != null ? this.OtherIncome().toString().replace(/,|£| /g, '') : \"\";\n var rentalIncome = this.RentalIncome() != null ? this.RentalIncome().toString().replace(/,|£| /g, '') : \"\";\n if (this.extrafields != null && this.extrafields.keyValueStore != null) {\n if (this.PrevOtherIncome() !== otherIncome) {\n this.PrevOtherIncome(this.extrafields.keyValueStore.otherIncome);\n this.extrafields.keyValueStore.otherIncome = otherIncome;\n }\n if (this.PrevRentalIncome() !== rentalIncome) {\n this.PrevRentalIncome(this.extrafields.keyValueStore.rentalIncome);\n this.extrafields.keyValueStore.rentalIncome = rentalIncome;\n }\n }\n otherIncome = isNaN(Number(otherIncome)) ? 0 : otherIncome;\n rentalIncome = isNaN(Number(rentalIncome)) ? 0 : rentalIncome;\n return (Number(otherIncome) + Number(rentalIncome)).toFixed(2);\n }, this);\n this.CouncilTax = ko.observable(\"\");\n this.Repairs = ko.observable(\"\");\n this.WaterRates = ko.observable(\"\");\n this.Insurance = ko.observable(\"\");\n this.GroundRent = ko.observable(\"\");\n this.CostsOfServicesProvided = ko.observable(\"\");\n this.Wages = ko.observable(\"\");\n this.MortgageInterest = ko.observable(\"\");\n this.LegalFees = ko.observable(\"\");\n this.ManagementFees = ko.observable(\"\");\n this.OtherPropertyExpenses = ko.observable(\"\");\n this.OtherProfessionalCosts = ko.observable(\"\");\n this.OtherFinancialCosts = ko.observable(\"\");\n this.PrevCouncilTax = ko.observable(\"\");\n this.PrevRepairs = ko.observable(\"\");\n this.PrevWaterRates = ko.observable(\"\");\n this.PrevInsurance = ko.observable(\"\");\n this.PrevGroundRent = ko.observable(\"\");\n this.PrevCostsOfServicesProvided = ko.observable(\"\");\n this.PrevWages = ko.observable(\"\");\n this.PrevMortgageInterest = ko.observable(\"\");\n this.PrevLegalFees = ko.observable(\"\");\n this.PrevManagementFees = ko.observable(\"\");\n this.PrevOtherPropertyExpenses = ko.observable(\"\");\n this.PrevOtherProfessionalCosts = ko.observable(\"\");\n this.PrevOtherFinancialCosts = ko.observable(\"\");\n this.SumExpensesFromProperty = ko.computed(function () {\n var councilTax = this.CouncilTax() != null ? this.CouncilTax().toString().replace(/,|£| /g, '') : \"\";\n var repairs = this.Repairs() != null ? this.Repairs().toString().replace(/,|£| /g, '') : \"\";\n var waterRates = this.WaterRates() != null ? this.WaterRates().toString().replace(/,|£| /g, '') : \"\";\n var insurance = this.Insurance() != null ? this.Insurance().toString().replace(/,|£| /g, '') : \"\";\n var groundRent = this.GroundRent() != null ? this.GroundRent().toString().replace(/,|£| /g, '') : \"\";\n var costsOfServicesProvided = this.CostsOfServicesProvided() != null ? this.CostsOfServicesProvided().toString().replace(/,|£| /g, '') : \"\";\n var wages = this.Wages() != null ? this.Wages().toString().replace(/,|£| /g, '') : \"\";\n var legalFees = this.LegalFees() != null ? this.LegalFees().toString().replace(/,|£| /g, '') : \"\";\n var managementFees = this.ManagementFees() != null ? this.ManagementFees().toString().replace(/,|£| /g, '') : \"\";\n var mortgageInterest = this.MortgageInterest() != null ? this.MortgageInterest().toString().replace(/,|£| /g, '') : \"\";\n var otherPropertyExpenses = this.OtherPropertyExpenses() != null ? this.OtherPropertyExpenses().toString().replace(/,|£| /g, '') : \"\";\n var otherProfessionalCosts = this.OtherProfessionalCosts() != null ? this.OtherProfessionalCosts().toString().replace(/,|£| /g, '') : \"\";\n var otherFinancialCosts = this.OtherFinancialCosts() != null ? this.OtherFinancialCosts().toString().replace(/,|£| /g, '') : \"\";\n if (this.extrafields != null && this.extrafields.keyValueStore != null) {\n if (this.PrevCouncilTax() !== councilTax) {\n this.PrevCouncilTax(this.extrafields.keyValueStore.councilTax);\n this.extrafields.keyValueStore.councilTax = councilTax;\n }\n if (this.PrevRepairs() !== repairs) {\n this.PrevRepairs(this.extrafields.keyValueStore.repairs);\n this.extrafields.keyValueStore.repairs = repairs;\n }\n if (this.PrevWaterRates() !== waterRates) {\n this.PrevWaterRates(this.extrafields.keyValueStore.waterRates);\n this.extrafields.keyValueStore.waterRates = waterRates;\n }\n if (this.PrevInsurance() !== insurance) {\n this.PrevInsurance(this.extrafields.keyValueStore.insurance);\n this.extrafields.keyValueStore.insurance = insurance;\n }\n if (this.PrevGroundRent() !== groundRent) {\n this.PrevGroundRent(this.extrafields.keyValueStore.groundRent);\n this.extrafields.keyValueStore.groundRent = groundRent;\n }\n if (this.PrevCostsOfServicesProvided() !== costsOfServicesProvided) {\n this.PrevCostsOfServicesProvided(this.extrafields.keyValueStore.costsOfServicesProvided);\n this.extrafields.keyValueStore.costsOfServicesProvided = costsOfServicesProvided;\n }\n if (this.PrevWages() !== wages) {\n this.PrevWages(this.extrafields.keyValueStore.wages);\n this.extrafields.keyValueStore.wages = wages;\n }\n if (this.PrevLegalFees() !== legalFees) {\n this.PrevLegalFees(this.extrafields.keyValueStore.legalFees);\n this.extrafields.keyValueStore.legalFees = legalFees;\n }\n if (this.PrevManagementFees() !== managementFees) {\n this.PrevManagementFees(this.extrafields.keyValueStore.managementFees);\n this.extrafields.keyValueStore.managementFees = managementFees;\n }\n if (this.PrevMortgageInterest() !== mortgageInterest) {\n this.PrevMortgageInterest(this.extrafields.keyValueStore.mortgageInterest);\n this.extrafields.keyValueStore.mortgageInterest = mortgageInterest;\n }\n if (this.PrevOtherPropertyExpenses() !== otherPropertyExpenses) {\n this.PrevOtherPropertyExpenses(this.extrafields.keyValueStore.otherPropertyExpenses);\n this.extrafields.keyValueStore.otherPropertyExpenses = otherPropertyExpenses;\n }\n if (this.PrevOtherProfessionalCosts() !== otherProfessionalCosts) {\n this.PrevOtherProfessionalCosts(this.extrafields.keyValueStore.otherProfessionalCosts);\n this.extrafields.keyValueStore.otherProfessionalCosts = otherProfessionalCosts;\n }\n if (this.PrevOtherFinancialCosts() !== otherFinancialCosts) {\n this.PrevOtherFinancialCosts(this.extrafields.keyValueStore.otherFinancialCosts);\n this.extrafields.keyValueStore.otherFinancialCosts = otherFinancialCosts;\n }\n }\n councilTax = isNaN(Number(councilTax)) ? 0 : councilTax;\n repairs = isNaN(Number(repairs)) ? 0 : repairs;\n waterRates = isNaN(Number(waterRates)) ? 0 : waterRates;\n insurance = isNaN(Number(insurance)) ? 0 : insurance;\n groundRent = isNaN(Number(groundRent)) ? 0 : groundRent;\n costsOfServicesProvided = isNaN(Number(costsOfServicesProvided)) ? 0 : costsOfServicesProvided;\n wages = isNaN(Number(wages)) ? 0 : wages;\n legalFees = isNaN(Number(legalFees)) ? 0 : legalFees;\n managementFees = isNaN(Number(managementFees)) ? 0 : managementFees;\n mortgageInterest = isNaN(Number(mortgageInterest)) ? 0 : mortgageInterest;\n otherPropertyExpenses = isNaN(Number(otherPropertyExpenses)) ? 0 : otherPropertyExpenses;\n otherProfessionalCosts = isNaN(Number(otherProfessionalCosts)) ? 0 : otherProfessionalCosts;\n otherFinancialCosts = isNaN(Number(otherFinancialCosts)) ? 0 : otherFinancialCosts;\n //User Story 187538: [Advisor] Update the calculations to NOT included \"Mortgage Interest\" amount\n mortgageInterest = this.taxYear >= 2021 ? 0 : mortgageInterest;\n return (Number(councilTax) + Number(repairs) + Number(waterRates) + Number(insurance) + Number(groundRent) + Number(costsOfServicesProvided)\n + Number(wages) + Number(mortgageInterest) + Number(otherPropertyExpenses) + Number(otherProfessionalCosts) + Number(otherFinancialCosts)\n + Number(managementFees) + Number(legalFees)).toFixed(2);\n }, this);\n this.SumNetIncome = ko.computed(function () {\n var totalSumIncomeFromProperty = isNaN(Number(this.SumIncomeFromProperty())) ? 0 : Number(this.SumIncomeFromProperty());\n var totalSumExpensesFromProperty = isNaN(Number(this.SumExpensesFromProperty())) ? 0 : Number(this.SumExpensesFromProperty());\n return (totalSumIncomeFromProperty - totalSumExpensesFromProperty).toFixed(2);\n }, this);\n this.beforeUnloadText = ko.bindingHandlers.beforeUnloadText = {\n init: function (element, valueAccessor, allBindingsAccessor, viewModel) {\n if (window.onbeforeunload == null) {\n window.onbeforeunload = function () {\n var value = valueAccessor();\n var promptText = ko.utils.unwrapObservable(value);\n if (typeof promptText == \"undefined\" || promptText == null) {\n }\n else {\n if (promptText != null && typeof promptText != \"string\") {\n var err = \"Error: beforeUnloadText binding must be \" +\n \"against a string or string observable. \" +\n \"Binding was done against a \" + typeof promptText;\n console.log(err);\n console.log(promptText);\n // By returning the error string, it will display in the\n // onbeforeunload dialog box to the user. We could throw an\n // exception here, but the page would unload and the\n // exception would be lost.\n return err;\n }\n return promptText;\n }\n };\n }\n else {\n var err = \"onbeforeupload has already been set\";\n throw new Error(err);\n }\n }\n };\n this.checkboxVisible = false;\n this.shortDetails = \"\";\n this.togleDetails = false;\n this.hasSpouse = false;\n this.hasLastYearValue = false;\n this.isTaxDeductionVisible = false;\n }\n BaseSectionVM.prototype.UnmaskAmount = function () {\n if (this.extrafields.alias == \"DefaultExtraFields\" || this.extrafields.alias == \"Employment\" ||\n this.extrafields.alias == \"ForeignIncome\" ||\n this.extrafields.alias == \"JointlyOwned\" || this.extrafields.alias == \"JointlyOwnedForeignIncome\") {\n this.extrafields.keyValueStore.currentYear = this.extrafields.keyValueStore.currentYear != null ? this.extrafields.keyValueStore.currentYear.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.taxDeducted = this.extrafields.keyValueStore.taxDeducted != null ? this.extrafields.keyValueStore.taxDeducted.toString().replace(/,|£| /g, '') : null;\n }\n if (this.extrafields.alias == \"ChildBenefit\") {\n this.extrafields.keyValueStore.currentYear = this.extrafields.keyValueStore.currentYear != null ? this.extrafields.keyValueStore.currentYear.toString().replace(/,|£| /g, '') : null;\n }\n if (this.extrafields.alias == \"LandAndProperty\") {\n this.extrafields.keyValueStore.currentYear = this.extrafields.keyValueStore.currentYear != null ? this.extrafields.keyValueStore.currentYear.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.taxDeducted = this.extrafields.keyValueStore.taxDeducted != null ? this.extrafields.keyValueStore.taxDeducted.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.jointlyOwnedShare = this.extrafields.keyValueStore.jointlyOwnedShare != null ? this.extrafields.keyValueStore.jointlyOwnedShare.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.clientCategory = this.extrafields.keyValueStore.clientCategory != null ? this.extrafields.keyValueStore.clientCategory.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.rentalIncome = this.extrafields.keyValueStore.rentalIncome != null ? this.extrafields.keyValueStore.rentalIncome.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.otherIncome = this.extrafields.keyValueStore.otherIncome != null ? this.extrafields.keyValueStore.otherIncome.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.councilTax = this.extrafields.keyValueStore.councilTax != null ? this.extrafields.keyValueStore.councilTax.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.waterRates = this.extrafields.keyValueStore.waterRates != null ? this.extrafields.keyValueStore.waterRates.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.insurance = this.extrafields.keyValueStore.insurance != null ? this.extrafields.keyValueStore.insurance.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.groundRent = this.extrafields.keyValueStore.groundRent != null ? this.extrafields.keyValueStore.groundRent.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.repairs = this.extrafields.keyValueStore.repairs != null ? this.extrafields.keyValueStore.repairs.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.mortgageInterest = this.extrafields.keyValueStore.mortgageInterest != null ? this.extrafields.keyValueStore.mortgageInterest.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.otherFinancialCosts = this.extrafields.keyValueStore.otherFinancialCosts != null ? this.extrafields.keyValueStore.otherFinancialCosts.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.legalFees = this.extrafields.keyValueStore.legalFees != null ? this.extrafields.keyValueStore.legalFees.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.managementFees = this.extrafields.keyValueStore.managementFees != null ? this.extrafields.keyValueStore.managementFees.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.otherProfessionalCosts = this.extrafields.keyValueStore.otherProfessionalCosts != null ? this.extrafields.keyValueStore.otherProfessionalCosts.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.costsOfServicesProvided = this.extrafields.keyValueStore.costsOfServicesProvided != null ? this.extrafields.keyValueStore.costsOfServicesProvided.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.wages = this.extrafields.keyValueStore.wages != null ? this.extrafields.keyValueStore.wages.toString().replace(/,|£| /g, '') : null;\n this.extrafields.keyValueStore.otherPropertyExpenses = this.extrafields.keyValueStore.otherPropertyExpenses != null ? this.extrafields.keyValueStore.otherPropertyExpenses.toString().replace(/,|£| /g, '') : null;\n }\n };\n return BaseSectionVM;\n }());\n exports.BaseSectionVM = BaseSectionVM;\n var SectionVM = (function (_super) {\n __extends(SectionVM, _super);\n function SectionVM() {\n _super.call(this);\n }\n return SectionVM;\n }(BaseSectionVM));\n exports.SectionVM = SectionVM;\n var HmrcSectionVM = (function (_super) {\n __extends(HmrcSectionVM, _super);\n function HmrcSectionVM() {\n _super.call(this);\n this.isVisible = ko.observable(true);\n this.showChevron = ko.observable(true);\n this.lasthmrcvalue = ko.observable();\n this.hashmrcvalue = ko.computed(function () {\n return this.lasthmrcvalue() != null && this.lasthmrcvalue() != \"\" && this.lasthmrcvalue() != \"Details missing\";\n }, this);\n this.isAmountNic = false;\n this.isHipperLink = false;\n this.hasHmrcIcon = false;\n }\n return HmrcSectionVM;\n }(BaseSectionVM));\n exports.HmrcSectionVM = HmrcSectionVM;\n var Client = (function () {\n function Client() {\n this.mouseOver = ko.observable(false);\n this.index = ko.observable(0);\n this.latestComments = \"\";\n }\n Client.prototype.setRequestStatusIconPath = function (requestStatusId) {\n if (requestStatusId === void 0) { requestStatusId = this.requestStatusId; }\n var path = \"/html/content/images/inforeq-requeststatus-\";\n switch (requestStatusId) {\n case 0:\n path += \"requestsent.svg\";\n break;\n case 1:\n path += \"clientviewed.svg\";\n break;\n case 2:\n path += \"clientupdated.svg\";\n break;\n case 3:\n path += \"readyforreview.svg\";\n break;\n case 4:\n path += \"requestcompleted.svg\";\n break;\n }\n this.requestStatusIconPath = path;\n };\n return Client;\n }());\n exports.Client = Client;\n var InformationRequest = (function () {\n function InformationRequest() {\n this.Sections = [];\n }\n return InformationRequest;\n }());\n exports.InformationRequest = InformationRequest;\n var Comment = (function () {\n function Comment() {\n }\n return Comment;\n }());\n exports.Comment = Comment;\n var Attachment = (function () {\n function Attachment() {\n }\n return Attachment;\n }());\n exports.Attachment = Attachment;\n var SpouseInfo = (function () {\n function SpouseInfo() {\n }\n SpouseInfo.prototype.IsEqual = function (spouse) {\n if (spouse == null)\n return false;\n return this.spouseFName == spouse.spouseFName &&\n this.spouseDOB == spouse.spouseDOB &&\n this.spouseSurname == spouse.spouseSurname &&\n this.spouseNINO == spouse.spouseNINO &&\n this.dom == spouse.dom;\n };\n SpouseInfo.prototype.getModelForExport = function () {\n var model = new SpouseInfo();\n model.spouseFName = this.spouseFName;\n model.spouseSurname = this.spouseSurname;\n model.spouseNINO = this.spouseNINO;\n model.spouseDOB = this.getFullDateString(this.spouseDOB);\n model.dom = this.getFullDateString(this.dom);\n return model;\n };\n SpouseInfo.isEmpty = function (spouseInfo) {\n if (spouseInfo == null)\n return true;\n return (spouseInfo.spouseFName == null || spouseInfo.spouseFName == \"\") &&\n (spouseInfo.spouseSurname == null || spouseInfo.spouseSurname == \"\") &&\n (spouseInfo.spouseNINO == null || spouseInfo.spouseNINO == \"\") &&\n (spouseInfo.spouseDOB == null || spouseInfo.spouseDOB == \"\") &&\n (spouseInfo.dom == null || spouseInfo.dom == \"\");\n };\n SpouseInfo.prototype.getFullDateString = function (date) {\n if (date == null || date == \"\" || date == \"-\")\n return \"\";\n return moment(date, 'DD/MM/YYYY').format('YYYY-MM-DD');\n };\n SpouseInfo.loadFromInfoRequest = function (spouseInfo) {\n var spObj = new SpouseInfo;\n if (spouseInfo == null)\n return spObj;\n var dobDate = new Date(spouseInfo.spouseDOB);\n var domDate = new Date(spouseInfo.dom);\n if (spouseInfo.spouseDOB == \"\" || dobDate.getFullYear() <= 1900)\n spObj.spouseDOB = \"-\";\n else {\n var date = new Date(Date.parse(spouseInfo.spouseDOB.toString()));\n spObj.spouseDOB = date.toLocaleDateString('en-GB');\n }\n if (spouseInfo.dom == null || spouseInfo.dom == \"\" || domDate.getFullYear() <= 1900)\n spObj.dom = \"-\";\n else {\n var date = new Date(Date.parse(spouseInfo.dom.toString()));\n spObj.dom = date.toLocaleDateString('en-GB');\n }\n if (spouseInfo.spouseNINO == \"\")\n spObj.spouseNINO = \"-\";\n else {\n spObj.spouseNINO = spouseInfo.spouseNINO;\n }\n if (spouseInfo.spouseFName == \"\")\n spObj.spouseFName = \"-\";\n else {\n spObj.spouseFName = spouseInfo.spouseFName;\n }\n if (spouseInfo.spouseSurname == \"\")\n spObj.spouseSurname = \"-\";\n else {\n spObj.spouseSurname = spouseInfo.spouseSurname;\n }\n return spObj;\n };\n return SpouseInfo;\n }());\n exports.SpouseInfo = SpouseInfo;\n var FilterTaxYear = (function () {\n function FilterTaxYear() {\n this.isDisabled = ko.observable(false);\n }\n return FilterTaxYear;\n }());\n exports.FilterTaxYear = FilterTaxYear;\n var RequestStatus = (function () {\n function RequestStatus() {\n }\n return RequestStatus;\n }());\n exports.RequestStatus = RequestStatus;\n var Guid = (function () {\n function Guid() {\n }\n Guid.newGuid = function () {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n };\n return Guid;\n }());\n exports.Guid = Guid;\n var Employee = (function () {\n function Employee() {\n }\n return Employee;\n }());\n exports.Employee = Employee;\n var TaxYearParameters = (function () {\n function TaxYearParameters() {\n }\n return TaxYearParameters;\n }());\n exports.TaxYearParameters = TaxYearParameters;\n});\n\n", "/// <reference path=\"../../../../scripts/typings/jquery/jquery.d.ts\" />\n/// <reference path=\"../../../../scripts/typings/q/q.d.ts\" />\ndefine('areas/informationrequest/service/dataCollectionClient',[\"require\", \"exports\", \"models/account\", \"services/jsonconverter\", \"services/settings\"], function (require, exports, Account, JsonConverter, configuration) {\n \"use strict\";\n var Channel = (function () {\n function Channel(convertToCamelCase) {\n if (convertToCamelCase === void 0) { convertToCamelCase = true; }\n this._convertToCamelCase = convertToCamelCase;\n }\n Channel.prototype.getData = function (url) {\n return this.send(url, \"GET\", null, false);\n };\n Channel.prototype.getDataAsync = function (url) {\n return Q(this.send(url, \"GET\", null, true));\n };\n Channel.prototype.postData = function (url, data) {\n return this.send(url, \"POST\", data, false);\n };\n Channel.prototype.postDataAsync = function (url, data, customBaseUrl) {\n return Q(this.send(url, \"POST\", data, true, customBaseUrl));\n };\n Channel.prototype.putData = function (url, data) {\n return this.send(url, \"PUT\", data, false);\n };\n Channel.prototype.putDataAsync = function (url, data) {\n return Q(this.send(url, \"PUT\", data, true));\n };\n Channel.prototype.deleteData = function (url, data) {\n return this.send(url, \"DELETE\", data, false);\n };\n Channel.prototype.deleteDataAsync = function (url, data) {\n return Q(this.send(url, \"DELETE\", data, true));\n };\n Channel.prototype.getAjaxOptions = function (type, data, async) {\n var contentType = 'application/json';\n if (data != null && typeof data == \"string\") {\n contentType = 'text/plain';\n }\n var options = {\n async: async,\n context: this,\n type: type,\n accept: contentType,\n contentType: contentType,\n beforeSend: function (req) {\n if (Account.Session.isAuthenticated) {\n req.setRequestHeader(\"Authorization\", Account.Session.getAuthorizationHeader());\n }\n }\n };\n if (data != null) {\n if (typeof data == \"string\") {\n options.data = data;\n }\n else {\n if (typeof data.name == \"string\") {\n var formData = new FormData();\n formData.append(\"file\", data);\n options.data = formData;\n options.processData = false;\n options.contentType = false;\n options.contentDisposition = \"form-data; filename='\" + data.name + \"'\";\n }\n else {\n options.data = JSON.stringify(data);\n }\n }\n }\n return options;\n };\n Channel.prototype.send = function (url, type, data, async, customBaseUrl) {\n var converter = new JsonConverter();\n var target = this.makeUrl(url, customBaseUrl);\n //var content = converter.extend(data, null);\n //content = converter.convertPropertyNamesToPascalCase(content);\n var options = this.getAjaxOptions(type, data, async);\n var response = jQuery.ajax(target, options);\n response.then(function (result) {\n return result;\n });\n return response;\n };\n Channel.prototype.makeUrl = function (url, customBaseUrl) {\n var baseApiUrl;\n if (customBaseUrl) {\n baseApiUrl = configuration.Settings.environment.getCustomValue(customBaseUrl);\n }\n else {\n baseApiUrl = configuration.Settings.environment.getCustomValue(\"CCHDataCollection\");\n }\n var domain = configuration.Settings.getPortalDomain();\n return baseApiUrl.replace(\"api\", domain) + url;\n };\n return Channel;\n }());\n exports.Channel = Channel;\n});\n\n", "define('areas/informationrequest/service/informationrequest-service',[\"require\", \"exports\", \"areas/informationrequest/models/bindable\", \"./dataCollectionClient\"], function (require, exports, VM, DCHttpClient) {\n \"use strict\";\n var InformationRequestService = (function () {\n function InformationRequestService() {\n this.saveCommentLink = \"api/comment/create/\";\n this.saveClientDetailsLink = \"api/inforequest/Put\";\n this.getClientsLink = \"api/inforequest/Get/\";\n this.getTaxYearListLink = \"api/taxyear/Get/\";\n this.checkHmrcTokenLink = \"api/hmrc/hasValidUserToken/\";\n this.postHmrcDataLink = \"api/HmrcData/Refresh/\";\n this.getAttachmentLink = \"api/attachment/Get/\";\n this.getCommentsLink = \"api/comment/get/\";\n this.clearNotificationLink = \"api/section/clear-notification/\";\n this.saveSpouseInfoLink = \"api/inforequest/PutSpouse/\";\n this.commitToTaxLink = \"api/commit/get/\";\n this.uploadAttachmentLink = \"api/attachment/\";\n this.deleteAttachmentLink = \"api/attachment/Delete/\";\n this.getEmployeesListLink = \"api/employee/Get/\";\n this.getRequestStatusesLink = \"api/requeststatus/Get/\";\n this.postClientsFilteredByUserListLink = \"api/taxyear/Post/\";\n this.getReturnStatusLink = \"api/inforequest/Get/\";\n this.getRefreshInfoRequestLink = \"api/inforequest/\";\n this.getExportToPdf = \"api/inforequest/exporttopdf/\";\n this.postClientsFilteredByUser = \"api/taxyear/exporttoexcel\";\n }\n InformationRequestService.prototype.GetEmployeeById = function (id) {\n var service = new DCHttpClient.Channel();\n var url = id;\n return service.getDataAsync(this.getEmployeesListLink + url)\n .then(function (response) {\n return response;\n })\n .fail(function (error) {\n console.log(error);\n return null;\n });\n };\n InformationRequestService.prototype.GetEmployeesFiltered = function (skipCount, takeCount, searchInput) {\n var service = new DCHttpClient.Channel();\n var url = searchInput != \"\" ? skipCount + \"/\" + takeCount + \"/\" + searchInput : skipCount + \"/\" + takeCount + \"/\";\n return service.getDataAsync(this.getEmployeesListLink + url)\n .then(function (response) {\n return response;\n })\n .fail(function (error) {\n console.log(error);\n return null;\n });\n };\n InformationRequestService.prototype.GetAllRequestStauses = function () {\n var service = new DCHttpClient.Channel();\n return service.getDataAsync(this.getRequestStatusesLink)\n .then(function (response) {\n return response;\n })\n .fail(function (error) {\n console.log(error);\n return null;\n });\n };\n InformationRequestService.prototype.GetClientForUser = function (id, filterYears) {\n var service = new DCHttpClient.Channel();\n var url = id + \"/\" + filterYears;\n return service.getDataAsync(this.getTaxYearListLink + url)\n .then(function (response) {\n return response;\n })\n .fail(function (error) {\n console.log(error);\n return null;\n });\n };\n InformationRequestService.prototype.GetClients = function (skipCount, takeCount) {\n var service = new DCHttpClient.Channel();\n return service.getDataAsync(this.getTaxYearListLink + skipCount + \"/\" + takeCount)\n .then(function (response) {\n return response;\n })\n .fail(function (error) {\n console.log(error);\n return null;\n });\n };\n InformationRequestService.prototype.GetClientsSorted = function (skipCount, takeCount, sortColumn, sortCriteria, searchInput, filterYears) {\n var service = new DCHttpClient.Channel();\n var url = searchInput != \"\" ? skipCount + \"/\" + takeCount + \"/\" + sortColumn + \"/\" + sortCriteria + \"/\" + filterYears + \"/\" + searchInput : skipCount + \"/\" + takeCount + \"/\" + sortColumn + \"/\" + sortCriteria + \"/\" + filterYears;\n return service.getDataAsync(this.getTaxYearListLink + url)\n .then(function (response) {\n return response;\n })\n .fail(function (error) {\n console.log(error);\n return null;\n });\n };\n InformationRequestService.prototype.GetClientsSortedByUser = function (id, skipCount, takeCount, sortColumn, sortCriteria, searchInput, filterYears, selectedStatusId) {\n var url;\n var data = new VM.TaxYearParameters();\n data.skip = skipCount;\n data.take = takeCount;\n data.sortColumn = sortColumn;\n data.sortCriteria = sortCriteria;\n data.searchInput = searchInput;\n data.filterYears = filterYears;\n data.employeeFilter = id;\n data.requestStatusFilter = selectedStatusId;\n var service = new DCHttpClient.Channel();\n return service.postDataAsync(this.postClientsFilteredByUserListLink, data)\n .then(function (response) {\n return response;\n })\n .fail(function (error) {\n console.log(error);\n return null;\n });\n };\n InformationRequestService.prototype.CheckHmrcToken = function (clientGuid) {\n var service = new DCHttpClient.Channel();\n return service.getDataAsync(this.checkHmrcTokenLink + clientGuid)\n .then(function (response) {\n return response;\n })\n .fail(function (error) {\n console.log(error);\n return null;\n });\n };\n InformationRequestService.prototype.ExportToPdf = function (clientGuid, taxYear) {\n var service = new DCHttpClient.Channel();\n return service.getDataAsync(this.getExportToPdf + clientGuid + \"/\" + taxYear)\n .then(function (response) {\n return response;\n })\n .fail(function (error) {\n console.log(error);\n return null;\n });\n };\n InformationRequestService.prototype.ExportToExcel = function (id, skipCount, takeCount, sortColumn, sortCriteria, searchInput, filterYears, selectedStatusId) {\n var data = new VM.TaxYearParameters();\n data.skip = skipCount;\n data.take = takeCount;\n data.sortColumn = sortColumn;\n data.sortCriteria = sortCriteria;\n data.searchInput = searchInput;\n data.filterYears = filterYears;\n data.employeeFilter = id;\n data.requestStatusFilter = selectedStatusId;\n var service = new DCHttpClient.Channel();\n return service.postDataAsync(this.postClientsFilteredByUser, data)\n .then(function (response) {\n return response;\n })\n .fail(function (error) {\n console.log(error);\n return null;\n });\n };\n InformationRequestService.prototype.GetClientDetails = function (id, taxYear) {\n var service = new DCHttpClient.Channel();\n var path = this.getClientsLink + id + \"/\" + taxYear;\n return service.getDataAsync(path)\n .then(function (response) {\n return response;\n })\n .fail(function (error) {\n console.log(error);\n return null;\n });\n };\n InformationRequestService.prototype.GetReturnStatus = function (id, taxYear) {\n var service = new DCHttpClient.Channel();\n var path = this.getReturnStatusLink + id + \"/\" + taxYear + \"/returnstatus\";\n return service.getDataAsync(path);\n };\n InformationRequestService.prototype.SaveCommentAync = function (id, taxYear, comment) {\n var service = new DCHttpClient.Channel();\n var path = this.saveCommentLink + id + \"/\" + taxYear;\n return service.postDataAsync(path, (comment));\n };\n InformationRequestService.prototype.Refresh = function (clientGuid, utr, taxYear, spouseInfo) {\n var service = new DCHttpClient.Channel();\n var path = this.postHmrcDataLink + utr + \"/\" + taxYear + \"/\" + clientGuid;\n return service.postDataAsync(path, (spouseInfo), \"CCHMakingTaxDigital\");\n };\n InformationRequestService.prototype.SaveClientDetails = function (infoRequest) {\n var service = new DCHttpClient.Channel();\n return service.putDataAsync(this.saveClientDetailsLink, infoRequest);\n };\n InformationRequestService.prototype.CommitToTax = function (clientGuid, taxYear, sectionGuids, showNotification) {\n var service = new DCHttpClient.Channel();\n var path = this.commitToTaxLink + clientGuid + \"/\" + taxYear + \"/\";\n return service.postDataAsync(path, sectionGuids);\n };\n InformationRequestService.prototype.putDataAsync = function (link, infoRequest) {\n var service = new DCHttpClient.Channel();\n service.putDataAsync(link, (infoRequest));\n };\n InformationRequestService.prototype.getAttachment = function (guid) {\n var service = new DCHttpClient.Channel();\n return service.getDataAsync(this.getAttachmentLink + guid)\n .then(function (response) {\n return response;\n })\n .fail(function (error) {\n console.log(error);\n return null;\n });\n };\n InformationRequestService.prototype.uploadAttachment = function (file, clientGuid, taxYear, sectionGuid, blocksCount, blockId) {\n var service = new DCHttpClient.Channel();\n var path = this.uploadAttachmentLink + clientGuid + \"/\" + taxYear + \"/\" + sectionGuid + \"/\" + blocksCount + \"/\" + blockId;\n return service.postDataAsync(path, file);\n };\n InformationRequestService.prototype.deleteAttachment = function (attachmentGuid, taxYear, clientGuid, fileName, sectionGuid) {\n var service = new DCHttpClient.Channel();\n var path = this.deleteAttachmentLink + attachmentGuid + \"/\" + taxYear + \"/\" + clientGuid + \"/\" + fileName + \"/\" + sectionGuid;\n return service.deleteDataAsync(path);\n };\n InformationRequestService.prototype.getComments = function (guid) {\n var service = new DCHttpClient.Channel();\n return service.getDataAsync(this.getCommentsLink + guid)\n .then(function (response) {\n return response;\n })\n .fail(function (error) {\n return null;\n });\n };\n InformationRequestService.prototype.clearNotification = function (clientGuid, taxYear, sectionGuid) {\n var service = new DCHttpClient.Channel();\n var link = this.clearNotificationLink + clientGuid + '/' + taxYear + '/' + sectionGuid;\n return service.putDataAsync(link, null);\n };\n return InformationRequestService;\n }());\n exports.InformationRequestService = InformationRequestService;\n});\n\n", "define('areas/informationrequest/service/sectionapimappings',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var SectionAPIMapping = (function () {\n function SectionAPIMapping() {\n }\n SectionAPIMapping.GetHMRCAPIType = function (sectionName) {\n if (sectionName == SectionAPIMapping.MASectionName)\n return \"marriageAllowance\";\n if (sectionName == SectionAPIMapping.NICSectionName)\n return \"nic\";\n if (sectionName = SectionAPIMapping.EmploymentSectionName)\n return \"employment\";\n if (sectionName = SectionAPIMapping.PensionsAnnuities)\n return \"pensionsAnnuities\";\n };\n SectionAPIMapping.MASectionName = \"Marriage Allowance\";\n SectionAPIMapping.NICSectionName = \"National Insurance Contributions\";\n SectionAPIMapping.EmploymentSectionName = \"Employment Income\";\n SectionAPIMapping.PensionsAnnuities = \"Pensions, Annuities and Other State Benefits\";\n return SectionAPIMapping;\n }());\n exports.SectionAPIMapping = SectionAPIMapping;\n});\n\n", "define('areas/informationrequest/service/toastDCService',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var ToastDCService = (function () {\n function ToastDCService() {\n }\n ToastDCService.prototype.constructDCToast = function (type, text) {\n var toastIcon = '';\n switch (type) {\n case 'info': {\n toastIcon = '<i class=\"fas fa-info-circle\" > </i>';\n break;\n }\n case 'success': {\n toastIcon = '<i class=\"far fa-check-circle\"></i>';\n break;\n }\n case 'fail': {\n toastIcon = '<i class=\"far fa-times-circle\"></i>';\n break;\n }\n }\n var toast1 = \"<div class=\\\"toast-container1 \" + type + \"\\\">\\n <div class=\\\"toast-icon \" + type + \"\\\">\\n <span class=\\\"icon-span\\\">\\n \" + toastIcon + \"\\n </span>\\n\\n </div>\\n <div>\\n <div class=\\\"toast-text-col\\\">\\n <div class=\\\"toast-close-btn\\\">\\n <i class=\\\"fas fa-times\\\"></i>\\n </div>\\n <div class=\\\"toast-text-row\\\">\\n <span>\" + text + \"</span>\\n </div>\\n </div>\\n </div>\\n </div>\";\n var toastOptions = {\n timeOut: 0,\n extendedTimeOut: 0,\n positionClass: \"toast-top-center\",\n tapToDismiss: true,\n allowHtml: true,\n iconClass: 'toast'\n };\n toastr.info(toast1, '', toastOptions);\n };\n return ToastDCService;\n }());\n exports.ToastDCService = ToastDCService;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/informationrequest/viewmodels/DTAInformationDialog',[\"require\", \"exports\", \"common/viewmodelbase\", \"plugins/dialog\", \"models/portal\"], function (require, exports, common, dialog, Portal) {\n \"use strict\";\n var DTAInformationViewModel = (function (_super) {\n __extends(DTAInformationViewModel, _super);\n function DTAInformationViewModel() {\n _super.call(this);\n }\n DTAInformationViewModel.prototype.onActivated = function (context) {\n this.dontShow = false;\n };\n // #endregion ctor\n DTAInformationViewModel.prototype.closeDialog = function () {\n var userManager = Portal.Context.shell.userManager;\n userManager.saveSettings(\"showDTA\", { 'ShowDTA': !this.dontShow });\n dialog.close(this);\n };\n return DTAInformationViewModel;\n }(common.ListViewModelBase));\n var instance = new DTAInformationViewModel();\n return instance;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/informationrequest/viewmodels/PartnerInformation',[\"require\", \"exports\", \"common/viewmodelbase\", \"plugins/dialog\"], function (require, exports, common, dialog) {\n \"use strict\";\n var PartnerInformationViewModel = (function (_super) {\n __extends(PartnerInformationViewModel, _super);\n function PartnerInformationViewModel() {\n _super.call(this);\n }\n PartnerInformationViewModel.prototype.onActivated = function (context) {\n this.dontShow = false;\n };\n // #endregion ctor\n PartnerInformationViewModel.prototype.closeDialog = function () {\n dialog.close(this);\n };\n return PartnerInformationViewModel;\n }(common.ListViewModelBase));\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/informationrequest/viewmodels/hmrcAPIInfo',[\"require\", \"exports\", \"common/viewmodelbase\", \"plugins/dialog\", 'durandal/app', \"areas/informationrequest/models/bindable\", \"areas/informationrequest/service/sectionapimappings\", \"areas/informationrequest/service/informationrequest-service\", \"areas/informationrequest/service/toastDCService\"], function (require, exports, common, dialog, app, VM, sectionapimappings, service, toastService) {\n \"use strict\";\n var hmrcAPIInfoViewModel = (function (_super) {\n __extends(hmrcAPIInfoViewModel, _super);\n function hmrcAPIInfoViewModel() {\n _super.call(this);\n this.sections = new Array();\n this.spouseInfo = new VM.SpouseInfo();\n this.showMaImages = ko.observable(false);\n this.showNicImages = ko.observable(false);\n this.hasHmrcAuthorisation = ko.observable(false);\n ko.track(this, [\"sections\", \"informationText\", \"infoStep\", \"newSpouseInfo\"]);\n this.toastDCService = new toastService.ToastDCService();\n // this.index = 0;\n this.yesTag = 'Yes';\n this.noTag = 'No';\n this.informationrequestService = new service.InformationRequestService();\n }\n hmrcAPIInfoViewModel.prototype.onActivated = function (context) {\n };\n hmrcAPIInfoViewModel.prototype.Load = function (hmrcInfo, spouseInfoFromPT, spouseInfo, yearToDisplay) {\n this.hmrcInformation = hmrcInfo;\n this.sections = new Array();\n this.currentYearHeader = yearToDisplay;\n var section = new VM.HmrcSectionVM();\n section.extraFieldsType = \"MarriageAllowance\";\n section.name = sectionapimappings.SectionAPIMapping.MASectionName;\n section.nameId = section.name.replace(/ /g, '');\n if (this.hmrcInformation.apiErrors != null &&\n this.hmrcInformation.apiErrors[sectionapimappings.SectionAPIMapping.GetHMRCAPIType(sectionapimappings.SectionAPIMapping.MASectionName)]) {\n var error = this.hmrcInformation.apiErrors[sectionapimappings.SectionAPIMapping.GetHMRCAPIType(sectionapimappings.SectionAPIMapping.MASectionName)][0];\n if (error.statusCode == 404) {\n section.hasHMRCAPI404Error(true);\n section.showChevron(true);\n }\n else {\n section.hasHMRCAPIError(true);\n }\n }\n var childSection = new VM.HmrcSectionVM;\n childSection.name = hmrcAPIInfoViewModel.maStatusDesc;\n if (hmrcInfo.marriageAllowanceStatus != null) {\n childSection.thisyear = this.getReadableValue(hmrcInfo.marriageAllowanceStatus.status);\n childSection.hasHmrcIcon = true;\n }\n else {\n childSection.thisyear = '';\n childSection.isVisible(false);\n }\n section.children.push(childSection);\n childSection = new VM.HmrcSectionVM;\n childSection.name = hmrcAPIInfoViewModel.maDeceasedDesc;\n if (hmrcInfo.marriageAllowanceStatus != null) {\n childSection.thisyear = this.getReadableValue(hmrcInfo.marriageAllowanceStatus.deceased);\n childSection.hasHmrcIcon = true;\n }\n else {\n childSection.thisyear = '';\n childSection.isVisible(false);\n }\n section.children.push(childSection);\n childSection = new VM.HmrcSectionVM();\n childSection.name = hmrcAPIInfoViewModel.maEligible;\n if (hmrcInfo.marriageAllowanceEligibility != null) {\n childSection.thisyear = this.getReadableValue(hmrcInfo.marriageAllowanceEligibility.eligible);\n childSection.hasHmrcIcon = true;\n childSection.isVisible(false);\n }\n else {\n this.errorMesage = \"Details missing\";\n childSection.hasHmrcIcon = false;\n childSection.thisyear = this.errorMesage;\n childSection.isVisible(false);\n }\n childSection.spouseInfo = VM.SpouseInfo.loadFromInfoRequest(spouseInfoFromPT);\n childSection.newSpouseInfo = VM.SpouseInfo.loadFromInfoRequest(spouseInfo);\n //childSection.hasSpouse = true;\n this.setSpouseWarnings(childSection);\n this.hasInvalidForenameWarning(childSection, true);\n this.hasInvalidSurnameWarning(childSection, true);\n this.hasInvalidNINoWarning(childSection, true);\n this.hasInvalidDobWarning(childSection, true);\n this.hasInvalidDomWarning(childSection, true);\n section.children.push(childSection);\n this.LoadPensions(hmrcInfo);\n this.sections.push(section);\n this.LoadNic(hmrcInfo);\n };\n hmrcAPIInfoViewModel.prototype.setSpouseWarnings = function (childSection) {\n if (childSection.newSpouseInfo == null)\n return;\n if (childSection.newSpouseInfo.spouseFName != \"-\")\n childSection.hasWarningMissingFName(false);\n else\n childSection.newSpouseInfo.spouseFName = \"\";\n if (childSection.newSpouseInfo.spouseSurname != \"-\")\n childSection.hasWarningMissingSurName(false);\n else\n childSection.newSpouseInfo.spouseSurname = \"\";\n if (childSection.newSpouseInfo.spouseNINO != \"-\")\n childSection.hasWarningMissingNINO(false);\n else\n childSection.newSpouseInfo.spouseNINO = \"\";\n if (childSection.newSpouseInfo.spouseDOB != \"-\")\n childSection.hasWarningMissingdob(false);\n else\n childSection.newSpouseInfo.spouseDOB = \"\";\n // we don't have missing DOM date warning\n childSection.hasWarningMissingdom(false);\n if (childSection.newSpouseInfo.dom == \"-\")\n childSection.newSpouseInfo.dom = \"\";\n };\n hmrcAPIInfoViewModel.prototype.LoadHmrcValues = function (hmrcInfo) {\n this.latestHmrcInformation = hmrcInfo;\n if (this.sections != null) {\n for (var _i = 0, _a = this.sections; _i < _a.length; _i++) {\n var section = _a[_i];\n switch (section.name) {\n case sectionapimappings.SectionAPIMapping.MASectionName:\n this.LoadMAHmrcValues(hmrcInfo, section);\n this.setErrorFlags(hmrcInfo, section);\n section.showChevron(true);\n break;\n case sectionapimappings.SectionAPIMapping.NICSectionName:\n this.LoadNICHmrcValues(hmrcInfo, section);\n var hasError = this.setErrorFlags(hmrcInfo, section);\n section.showChevron(!hasError);\n break;\n case sectionapimappings.SectionAPIMapping.PensionsAnnuities:\n this.LoadPensionsHmrcValues(hmrcInfo, section);\n var hasError = this.setErrorFlags(hmrcInfo, section);\n section.showChevron(!hasError);\n break;\n }\n }\n }\n };\n hmrcAPIInfoViewModel.prototype.showDetails = function (section, event) {\n app.showDialog(\"areas/informationrequest/viewmodels/spousePartnerInfo\", section.spousePartnerInfo);\n };\n hmrcAPIInfoViewModel.prototype.LoadMAHmrcValues = function (hmrcInfo, section) {\n for (var _i = 0, _a = section.children; _i < _a.length; _i++) {\n var childSectionVM = _a[_i];\n if (childSectionVM instanceof VM.HmrcSectionVM) {\n var childSection = childSectionVM;\n switch (childSection.name) {\n case hmrcAPIInfoViewModel.maStatusDesc:\n if (hmrcInfo.marriageAllowanceStatus != null) {\n childSection.lasthmrcvalue(this.getReadableValue(hmrcInfo.marriageAllowanceStatus.status));\n childSection.hasHmrcIcon = true;\n childSection.isVisible(true);\n section.isFromHmrc(true);\n }\n else {\n childSection.lasthmrcvalue(\"\");\n childSection.hasHmrcIcon = false;\n }\n break;\n case hmrcAPIInfoViewModel.maDeceasedDesc:\n if (hmrcInfo.marriageAllowanceStatus != null) {\n childSection.lasthmrcvalue(this.getReadableValue(hmrcInfo.marriageAllowanceStatus.deceased));\n childSection.hasHmrcIcon = true;\n childSection.isVisible(true);\n section.isFromHmrc(true);\n }\n else {\n childSection.lasthmrcvalue(\"\");\n childSection.hasHmrcIcon = false;\n }\n break;\n case hmrcAPIInfoViewModel.maEligible:\n childSection.isVisible(false);\n break;\n }\n }\n }\n };\n hmrcAPIInfoViewModel.prototype.LoadNICHmrcValues = function (hmrcInfo, section) {\n for (var _i = 0, _a = section.children; _i < _a.length; _i++) {\n var childSectionVM = _a[_i];\n if (childSectionVM instanceof VM.HmrcSectionVM) {\n var childSection = childSectionVM;\n switch (childSection.name) {\n case hmrcAPIInfoViewModel.nicTotalNiCableEarnings:\n if (hmrcInfo.nationalInsurance == null) {\n childSection.lasthmrcvalue(\"\");\n childSection.isAmountNic = false;\n childSection.hasHmrcIcon = false;\n }\n else {\n childSection.lasthmrcvalue(\"£ \" + this.getReadableValue(hmrcInfo.nationalInsurance.class1.totalNiCableEarnings).toFixed(2));\n childSection.isAmountNic = true;\n childSection.hasHmrcIcon = true;\n childSection.isVisible(true);\n section.isFromHmrc(true);\n }\n break;\n case hmrcAPIInfoViewModel.nicTotalDue:\n if (hmrcInfo.nationalInsurance == null) {\n childSection.lasthmrcvalue(\"\");\n childSection.isAmountNic = false;\n childSection.hasHmrcIcon = false;\n }\n else {\n childSection.lasthmrcvalue(\"£ \" + this.getReadableValue(hmrcInfo.nationalInsurance.class2.totalDue).toFixed(2));\n childSection.isAmountNic = true;\n childSection.hasHmrcIcon = true;\n childSection.isVisible(true);\n section.isFromHmrc(true);\n }\n break;\n case hmrcAPIInfoViewModel.nicMaxNiCsReached:\n if (hmrcInfo.nationalInsurance == null) {\n childSection.lasthmrcvalue(\"\");\n childSection.hasHmrcIcon = false;\n }\n else {\n childSection.lasthmrcvalue(this.getReadableValue(hmrcInfo.nationalInsurance.maxNiCsReached));\n childSection.hasHmrcIcon = true;\n childSection.isVisible(true);\n section.isFromHmrc(true);\n }\n break;\n }\n }\n }\n };\n hmrcAPIInfoViewModel.prototype.LoadPensionsHmrcValues = function (hmrcInfo, section) {\n for (var _i = 0, _a = section.children; _i < _a.length; _i++) {\n var childSectionVM = _a[_i];\n if (childSectionVM instanceof VM.HmrcSectionVM) {\n var childSection = childSectionVM;\n switch (childSection.name) {\n case hmrcAPIInfoViewModel.pensionsIncomeOtherPensions:\n if (hmrcInfo.nationalInsurance == null) {\n childSection.lasthmrcvalue(\"\");\n childSection.hasHmrcIcon = false;\n }\n else {\n var lastHmrcValue = \"\";\n if (hmrcInfo.individualIncome && hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits && hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits.otherPensionsAndRetirementAnnuities)\n lastHmrcValue = \"£ \" + hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits.otherPensionsAndRetirementAnnuities.toFixed(2);\n childSection.lasthmrcvalue(lastHmrcValue);\n childSection.hasHmrcIcon = true;\n childSection.isVisible(true);\n section.isFromHmrc(true);\n }\n break;\n case hmrcAPIInfoViewModel.pensionsIncomeJobseekersAllowance:\n if (hmrcInfo.nationalInsurance == null) {\n childSection.lasthmrcvalue(\"\");\n childSection.hasHmrcIcon = false;\n }\n else {\n var lastHmrcValue = \"\";\n if (hmrcInfo.individualIncome && hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits && hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits.jobseekersAllowance)\n lastHmrcValue = \"£ \" + hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits.jobseekersAllowance.toFixed(2);\n childSection.lasthmrcvalue(lastHmrcValue);\n childSection.hasHmrcIcon = true;\n childSection.isVisible(true);\n section.isFromHmrc(true);\n }\n break;\n case hmrcAPIInfoViewModel.pensionsIncomeIncapacityBenefit:\n if (hmrcInfo.nationalInsurance == null) {\n childSection.lasthmrcvalue(\"\");\n childSection.hasHmrcIcon = false;\n }\n else {\n var lastHmrcValue = \"\";\n if (hmrcInfo.individualIncome && hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits && hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits.incapacityBenefit)\n lastHmrcValue = \"£ \" + hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits.incapacityBenefit.toFixed(2);\n childSection.lasthmrcvalue(lastHmrcValue);\n childSection.hasHmrcIcon = true;\n childSection.isVisible(true);\n section.isFromHmrc(true);\n }\n break;\n case hmrcAPIInfoViewModel.pensionsTaxOtherPensions:\n if (hmrcInfo.nationalInsurance == null) {\n childSection.lasthmrcvalue(\"\");\n childSection.hasHmrcIcon = false;\n }\n else {\n var lastHmrcValue = \"\";\n if (hmrcInfo.individualTax && hmrcInfo.individualTax.pensionsAnnuitiesAndOtherStateBenefits && hmrcInfo.individualTax.pensionsAnnuitiesAndOtherStateBenefits.otherPensionsAndRetirementAnnuities)\n lastHmrcValue = \"£ \" + hmrcInfo.individualTax.pensionsAnnuitiesAndOtherStateBenefits.otherPensionsAndRetirementAnnuities.toFixed(2);\n childSection.lasthmrcvalue(lastHmrcValue);\n childSection.hasHmrcIcon = true;\n childSection.isVisible(true);\n section.isFromHmrc(true);\n }\n break;\n case hmrcAPIInfoViewModel.pensionsTaxIncapacityBenefit:\n if (hmrcInfo.nationalInsurance == null) {\n childSection.lasthmrcvalue(\"\");\n childSection.hasHmrcIcon = false;\n }\n else {\n var lastHmrcValue = \"\";\n if (hmrcInfo.individualTax && hmrcInfo.individualTax.pensionsAnnuitiesAndOtherStateBenefits && hmrcInfo.individualTax.pensionsAnnuitiesAndOtherStateBenefits.incapacityBenefit)\n lastHmrcValue = \"£ \" + hmrcInfo.individualTax.pensionsAnnuitiesAndOtherStateBenefits.incapacityBenefit.toFixed(2);\n childSection.lasthmrcvalue(lastHmrcValue);\n childSection.hasHmrcIcon = true;\n childSection.isVisible(true);\n section.isFromHmrc(true);\n }\n break;\n }\n }\n }\n };\n hmrcAPIInfoViewModel.prototype.LoadPensions = function (hmrcInfo) {\n var section = new VM.HmrcSectionVM();\n section.name = sectionapimappings.SectionAPIMapping.PensionsAnnuities;\n section.nameId = section.name.replace(/ /g, '');\n section.extraFieldsType = \"NationalInsuranceContributions\";\n var childSection = new VM.HmrcSectionVM;\n childSection.name = hmrcAPIInfoViewModel.pensionsIncomeOtherPensions;\n if (hmrcInfo.individualIncome != null && hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits != null\n && hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits.otherPensionsAndRetirementAnnuities != null) {\n childSection.thisyear = this.getReadableValue(hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits.otherPensionsAndRetirementAnnuities).toFixed(2);\n childSection.isAmountNic = true;\n childSection.hasHmrcIcon = true;\n section.isFromHmrc(true);\n }\n else {\n childSection.thisyear = '';\n childSection.isVisible(false);\n }\n section.children.push(childSection);\n var childSection = new VM.HmrcSectionVM;\n childSection.name = hmrcAPIInfoViewModel.pensionsTaxOtherPensions;\n if (hmrcInfo.individualTax != null && hmrcInfo.individualTax.pensionsAnnuitiesAndOtherStateBenefits != null\n && hmrcInfo.individualTax.pensionsAnnuitiesAndOtherStateBenefits.otherPensionsAndRetirementAnnuities != null) {\n childSection.thisyear = this.getReadableValue(hmrcInfo.individualTax.pensionsAnnuitiesAndOtherStateBenefits.otherPensionsAndRetirementAnnuities).toFixed(2);\n childSection.isAmountNic = true;\n childSection.hasHmrcIcon = true;\n section.isFromHmrc(true);\n }\n else {\n childSection.thisyear = '';\n childSection.isVisible(false);\n }\n section.children.push(childSection);\n var childSection = new VM.HmrcSectionVM;\n childSection.name = hmrcAPIInfoViewModel.pensionsIncomeIncapacityBenefit;\n if (hmrcInfo.individualIncome != null && hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits != null\n && hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits.incapacityBenefit != null) {\n childSection.thisyear = this.getReadableValue(hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits.incapacityBenefit).toFixed(2);\n childSection.isAmountNic = true;\n childSection.hasHmrcIcon = true;\n section.isFromHmrc(true);\n }\n else {\n childSection.thisyear = '';\n childSection.isVisible(false);\n }\n section.children.push(childSection);\n var childSection = new VM.HmrcSectionVM;\n childSection.name = hmrcAPIInfoViewModel.pensionsTaxIncapacityBenefit;\n if (hmrcInfo.individualTax != null && hmrcInfo.individualTax.pensionsAnnuitiesAndOtherStateBenefits != null\n && hmrcInfo.individualTax.pensionsAnnuitiesAndOtherStateBenefits.incapacityBenefit != null) {\n childSection.thisyear = this.getReadableValue(hmrcInfo.individualTax.pensionsAnnuitiesAndOtherStateBenefits.incapacityBenefit).toFixed(2);\n childSection.isAmountNic = true;\n childSection.hasHmrcIcon = true;\n section.isFromHmrc(true);\n }\n else {\n childSection.thisyear = '';\n childSection.isVisible(false);\n }\n section.children.push(childSection);\n var childSection = new VM.HmrcSectionVM;\n childSection.name = hmrcAPIInfoViewModel.pensionsIncomeJobseekersAllowance;\n if (hmrcInfo.individualIncome != null && hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits != null\n && hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits.jobseekersAllowance != null) {\n childSection.thisyear = this.getReadableValue(hmrcInfo.individualIncome.pensionsAnnuitiesAndOtherStateBenefits.jobseekersAllowance).toFixed(2);\n childSection.isAmountNic = true;\n childSection.hasHmrcIcon = true;\n section.isFromHmrc(true);\n }\n else {\n childSection.thisyear = '';\n childSection.isVisible(false);\n }\n section.children.push(childSection);\n section.showChevron(true);\n if (this.hmrcInformation.apiErrors != null &&\n this.hmrcInformation.apiErrors[sectionapimappings.SectionAPIMapping.GetHMRCAPIType(sectionapimappings.SectionAPIMapping.PensionsAnnuities)]) {\n var error = this.hmrcInformation.apiErrors[sectionapimappings.SectionAPIMapping.GetHMRCAPIType(sectionapimappings.SectionAPIMapping.PensionsAnnuities)][0];\n if (error.statusCode == 404) {\n section.hasHMRCAPI404Error(true);\n }\n else {\n section.hasHMRCAPIError(false);\n }\n }\n this.sections.push(section);\n };\n hmrcAPIInfoViewModel.prototype.LoadNic = function (hmrcInfo) {\n var section = new VM.HmrcSectionVM();\n section.name = sectionapimappings.SectionAPIMapping.NICSectionName;\n section.nameId = section.name.replace(/ /g, '');\n section.extraFieldsType = \"NationalInsuranceContributions\";\n var childSection = new VM.HmrcSectionVM;\n childSection.name = hmrcAPIInfoViewModel.nicTotalNiCableEarnings;\n if (hmrcInfo.nationalInsurance != null) {\n childSection.thisyear = this.getReadableValue(hmrcInfo.nationalInsurance.class1.totalNiCableEarnings).toFixed(2);\n childSection.isAmountNic = true;\n childSection.hasHmrcIcon = true;\n }\n else {\n childSection.thisyear = '';\n childSection.isVisible(false);\n }\n section.children.push(childSection);\n childSection = new VM.HmrcSectionVM;\n childSection.name = hmrcAPIInfoViewModel.nicTotalDue;\n if (hmrcInfo.nationalInsurance != null) {\n childSection.thisyear = this.getReadableValue(hmrcInfo.nationalInsurance.class2.totalDue).toFixed(2);\n childSection.isAmountNic = true;\n childSection.hasHmrcIcon = true;\n }\n else {\n childSection.thisyear = '';\n childSection.isVisible(false);\n }\n section.children.push(childSection);\n childSection = new VM.HmrcSectionVM;\n childSection.name = hmrcAPIInfoViewModel.nicMaxNiCsReached;\n if (hmrcInfo.nationalInsurance != null) {\n childSection.thisyear = this.getReadableValue(hmrcInfo.nationalInsurance.maxNiCsReached);\n childSection.hasHmrcIcon = true;\n }\n else {\n childSection.thisyear = '';\n childSection.isVisible(false);\n }\n section.children.push(childSection);\n if (this.hmrcInformation.apiErrors != null &&\n this.hmrcInformation.apiErrors[sectionapimappings.SectionAPIMapping.GetHMRCAPIType(sectionapimappings.SectionAPIMapping.NICSectionName)]) {\n var error = this.hmrcInformation.apiErrors[sectionapimappings.SectionAPIMapping.GetHMRCAPIType(sectionapimappings.SectionAPIMapping.NICSectionName)][0];\n if (error.statusCode == 404) {\n section.hasHMRCAPI404Error(true);\n section.showChevron(false);\n }\n else {\n section.hasHMRCAPIError(true);\n }\n }\n this.sections.push(section);\n };\n hmrcAPIInfoViewModel.prototype.setErrorFlags = function (hmrcInfo, section) {\n section.hasHMRCAPI404Error(false);\n section.hasHMRCAPIError(false);\n if (hmrcInfo.apiErrors == null) {\n return false;\n }\n if (hmrcInfo.apiErrors[sectionapimappings.SectionAPIMapping.GetHMRCAPIType(section.name)]) {\n for (var _i = 0, _a = hmrcInfo.apiErrors[sectionapimappings.SectionAPIMapping.GetHMRCAPIType(section.name)]; _i < _a.length; _i++) {\n var error = _a[_i];\n if (error.statusCode == 404) {\n section.hasHMRCAPI404Error(true);\n }\n else {\n section.hasHMRCAPIError(true);\n }\n }\n return true;\n }\n return false;\n };\n hmrcAPIInfoViewModel.prototype.closeDialog = function (section, event) {\n dialog.close(this);\n };\n hmrcAPIInfoViewModel.prototype.rootClicked = function (section) {\n if (section.children.length > 0 && section.showChevron())\n section.expanded(!section.expanded());\n };\n hmrcAPIInfoViewModel.prototype.errorClicked = function (section) {\n var self = this;\n self.selectedSectionName = section.name;\n self.showErrors();\n };\n hmrcAPIInfoViewModel.prototype.showErrors = function () {\n var hmrcInfo = this.latestHmrcInformation;\n if (this.latestHmrcInformation == null)\n hmrcInfo = this.hmrcInformation;\n if (hmrcInfo.apiErrors[sectionapimappings.SectionAPIMapping.GetHMRCAPIType(this.selectedSectionName)]) {\n var error404Description = this.selectedSectionName;\n var has500Error = false;\n var has404Error = false;\n for (var i = 0; i < hmrcInfo.apiErrors[sectionapimappings.SectionAPIMapping.GetHMRCAPIType(this.selectedSectionName)].length; i++) {\n var error = hmrcInfo.apiErrors[sectionapimappings.SectionAPIMapping.GetHMRCAPIType(this.selectedSectionName)][i];\n var toastMessage = this.ConstructToastMessage(error);\n if (error.statusCode == 400 || error.statusCode == 401)\n this.toastDCService.constructDCToast('fail', toastMessage);\n if (error.statusCode == 404) {\n if (error.aPIName != null)\n error404Description = error404Description + \" <br> - \" + error.aPIName;\n else\n error404Description = error404Description;\n has404Error = true;\n }\n if (error.statusCode == 500) {\n has500Error = true;\n }\n }\n if (has404Error)\n this.toastDCService.constructDCToast('success', \"Sorry! No data currently held by HMRC : <br>\" + error404Description);\n if (has500Error)\n this.toastDCService.constructDCToast('fail', \"Server Error : Internal server error\");\n }\n };\n hmrcAPIInfoViewModel.prototype.ConstructToastMessage = function (error) {\n var errorMessage = \"\";\n if (error.aPIName != null && error.aPIName.length > 0) {\n this.errorMesage = this.selectedSectionName + \" : \" + error.aPIName + \" - \" + error.reasonPhrase + \" : \" + error.errorDescription;\n }\n else {\n this.errorMesage = this.selectedSectionName + \" : \" + error.reasonPhrase + \" - \" + error.errorDescription;\n }\n return this.errorMesage;\n };\n hmrcAPIInfoViewModel.prototype.getReadableValue = function (anyValue) {\n if (anyValue === true)\n return this.yesTag;\n else if (anyValue === false)\n return this.noTag;\n else\n return anyValue;\n };\n hmrcAPIInfoViewModel.prototype.showInformation = function (section, event) {\n var self = this;\n if (section.extraFieldsType == \"MarriageAllowance\") {\n self.showMaImages(true);\n self.showNicImages(false);\n }\n else if (section.extraFieldsType == \"NationalInsuranceContributions\") {\n self.showNicImages(true);\n self.showMaImages(false);\n }\n self.informationText = \" This column is a snapshot of the data held by HMRC when the Digital Tax request was created for your client. \" +\n \"It is what your client sees where the information is relevant to the collection of their data.\";\n self.infoStep = \"1\";\n $(\"#dialogInfoId\").modal(\"show\");\n };\n hmrcAPIInfoViewModel.prototype.doNext = function () {\n var self = this;\n self.infoStep = \"2\";\n self.informationText = \" This column provides an up-to-date view of the information HMRC currently holds for your client.\";\n };\n hmrcAPIInfoViewModel.prototype.doPrevious = function () {\n var self = this;\n self.informationText = \" This column is a snapshot of the data held by HMRC when the Digital Tax request was created for your client. \" +\n \"It is what your client sees where the information is relevant to the collection of their data.\";\n self.infoStep = \"1\";\n };\n hmrcAPIInfoViewModel.prototype.closeInfoDialog = function () {\n var self = this;\n self.showMaImages(false);\n self.showNicImages(false);\n $(\"#dialogInfoId\").modal(\"hide\");\n };\n hmrcAPIInfoViewModel.prototype.togleWarningFname = function (section, event) {\n section.hasWarningMissingFName(false);\n section.hasWarningInvalidFname(false);\n };\n hmrcAPIInfoViewModel.prototype.togleWarningSurNme = function (section, event) {\n section.hasWarningMissingSurName(false);\n section.hasWarningInvalidSurname(false);\n };\n hmrcAPIInfoViewModel.prototype.togleWarningNINO = function (section, event) {\n section.hasWarningMissingNINO(false);\n section.hasWarningInvalidNINO(false);\n };\n hmrcAPIInfoViewModel.prototype.togleWarningdob = function (section, event) {\n section.hasWarningMissingdob(false);\n section.hasWarningInvalidDob(false);\n $(\"#spouseDob\").datepicker({ format: \"DD/MM/YYYY\" });\n };\n hmrcAPIInfoViewModel.prototype.togleWarningdom = function (section, event) {\n section.hasWarningMissingdom(false);\n section.hasWarningInvalidDom(false);\n $(\"#spouseDom\").datepicker({ format: \"DD/MM/YYYY\" });\n };\n hmrcAPIInfoViewModel.prototype.hasInvalidSpouseFields = function () {\n var section = this.findMAEligibilitySection();\n if (section != null && !VM.SpouseInfo.isEmpty(section.newSpouseInfo))\n return this.hasInvalidFields(section);\n return false;\n };\n hmrcAPIInfoViewModel.prototype.hasChangedSpouseInfo = function (spInfo) {\n var section = this.findMAEligibilitySection();\n if (section != null) {\n var newValue = section.newSpouseInfo == null ? null : section.newSpouseInfo.getModelForExport();\n var originalValue = VM.SpouseInfo.loadFromInfoRequest(spInfo);\n if (originalValue != null)\n originalValue = originalValue.getModelForExport();\n if (newValue == null && originalValue != null ||\n newValue != null && !newValue.IsEqual(originalValue))\n return true;\n }\n return false;\n };\n hmrcAPIInfoViewModel.prototype.getHmrcSpouseInfo = function () {\n var section = this.findMAEligibilitySection();\n if (section != null) {\n return section.newSpouseInfo.getModelForExport();\n }\n return null;\n };\n hmrcAPIInfoViewModel.prototype.getParrentSection = function (childParrentGuid) {\n for (var _i = 0, _a = this.sections; _i < _a.length; _i++) {\n var section = _a[_i];\n switch (section.parentGuid) {\n case childParrentGuid:\n return section;\n }\n }\n };\n hmrcAPIInfoViewModel.prototype.findMAEligibilitySection = function () {\n if (this.sections != null) {\n for (var _i = 0, _a = this.sections; _i < _a.length; _i++) {\n var section = _a[_i];\n switch (section.name) {\n case sectionapimappings.SectionAPIMapping.MASectionName:\n return this.findMAEligibilityChildSection(section);\n }\n }\n }\n return null;\n };\n hmrcAPIInfoViewModel.prototype.findMAEligibilityChildSection = function (maSection) {\n if (maSection == null)\n return null;\n for (var _i = 0, _a = maSection.children; _i < _a.length; _i++) {\n var section = _a[_i];\n switch (section.name) {\n case hmrcAPIInfoViewModel.maEligible:\n return section;\n }\n }\n };\n hmrcAPIInfoViewModel.prototype.getSpouseInfoFromEncodedString = function (spouseInformationString) {\n var spInfo = null;\n if (spouseInformationString != null) {\n var tempSpouse = atob(spouseInformationString);\n tempSpouse = tempSpouse.replace(/\"([^\"]+)\":/g, function ($0, $1) { return ('\"' + $1[0].toLowerCase() + $1.slice(1) + '\":'); });\n spInfo = JSON.parse(tempSpouse);\n }\n return spInfo;\n };\n hmrcAPIInfoViewModel.prototype.getEncodedSpouseInfo = function (spInfo) {\n if (spInfo == null || VM.SpouseInfo.isEmpty(spInfo)) {\n return null;\n }\n return btoa(JSON.stringify(spInfo));\n };\n hmrcAPIInfoViewModel.prototype.validateSpouseForname = function (section, event) {\n section.hasWarningMissingFName(false);\n section.hasWarningInvalidFname(false);\n this.hasInvalidForenameWarning(section, false);\n };\n hmrcAPIInfoViewModel.prototype.hasInvalidForenameWarning = function (childSection, firstEntry) {\n if (childSection.newSpouseInfo.spouseFName == null || childSection.newSpouseInfo.spouseFName == \"\") {\n childSection.hasWarningMissingFName(true);\n if (!firstEntry)\n this.toastDCService.constructDCToast('fail', \"Forename is missing\");\n return true;\n }\n else if (this.containsNumber(childSection.newSpouseInfo.spouseFName)) {\n childSection.hasWarningInvalidFname(true);\n if (!firstEntry)\n this.toastDCService.constructDCToast('fail', \"Forename entered is invalid\");\n return true;\n }\n return false;\n };\n hmrcAPIInfoViewModel.prototype.validateSpouseSurname = function (section, event) {\n section.hasWarningMissingSurName(false);\n section.hasWarningInvalidSurname(false);\n this.hasInvalidSurnameWarning(section, false);\n };\n hmrcAPIInfoViewModel.prototype.hasInvalidSurnameWarning = function (childSection, firstEntry) {\n if (childSection.newSpouseInfo.spouseSurname == null || childSection.newSpouseInfo.spouseSurname == \"\") {\n childSection.hasWarningMissingSurName(true);\n if (!firstEntry)\n this.toastDCService.constructDCToast('fail', \"Surname is missing\");\n return true;\n }\n else if (this.containsNumber(childSection.newSpouseInfo.spouseSurname)) {\n childSection.hasWarningInvalidSurname(true);\n if (!firstEntry)\n this.toastDCService.constructDCToast('fail', \"Surname entered is invalid\");\n return true;\n }\n return false;\n };\n hmrcAPIInfoViewModel.prototype.validateSpouseNINO = function (section, event) {\n this.hasInvalidNINoWarning(section, false);\n };\n hmrcAPIInfoViewModel.prototype.hasInvalidNINoWarning = function (childSection, firstEntry) {\n if (childSection.newSpouseInfo.spouseNINO == null || childSection.newSpouseInfo.spouseNINO == \"\") {\n childSection.hasWarningMissingNINO(true);\n if (!firstEntry)\n this.toastDCService.constructDCToast('fail', \"NI No. is missing\");\n return true;\n }\n return false;\n };\n hmrcAPIInfoViewModel.prototype.validateSpouseDob = function (section, event) {\n section.hasWarningMissingdob(false);\n section.hasWarningInvalidDob(false);\n this.hasInvalidDobWarning(section, false);\n };\n hmrcAPIInfoViewModel.prototype.validateSpouseDom = function (section, event) {\n this.hasInvalidDomWarning(section, false);\n };\n hmrcAPIInfoViewModel.prototype.hasInvalidDobWarning = function (childSection, firstEntry) {\n if (childSection.newSpouseInfo.spouseDOB == null || childSection.newSpouseInfo.spouseDOB == \"\") {\n childSection.hasWarningMissingdob(true);\n if (!firstEntry)\n this.toastDCService.constructDCToast('fail', \"Date of birth is missing\");\n return true;\n }\n else {\n var tempDate = childSection.newSpouseInfo.spouseDOB.split('/');\n var dobDate = new Date(tempDate[2], tempDate[1] - 1, tempDate[0]);\n var dateNow = new Date();\n if (dobDate > dateNow) {\n childSection.hasWarningInvalidDob(true);\n childSection.hasWarningMissingdob(false);\n if (!firstEntry)\n this.toastDCService.constructDCToast('fail', \"Date of birth entered is invalid\");\n return true;\n }\n }\n this.hasInvalidDomWarning(childSection, firstEntry);\n return false;\n };\n hmrcAPIInfoViewModel.prototype.hasInvalidDomWarning = function (childSection, firstEntry) {\n if (childSection.newSpouseInfo.spouseDOB != null && childSection.newSpouseInfo.spouseDOB != \"\" &&\n childSection.newSpouseInfo.dom != null && childSection.newSpouseInfo.dom != \"\") {\n var tempDomDate = childSection.newSpouseInfo.dom.split('/');\n var tempDobDate = childSection.newSpouseInfo.spouseDOB.split('/');\n var domDate = new Date(tempDomDate[2], tempDomDate[1] - 1, tempDomDate[0]);\n var dobDate = new Date(tempDobDate[2], tempDobDate[1] - 1, tempDobDate[0]);\n if (dobDate > domDate) {\n childSection.hasWarningInvalidDom(true);\n childSection.hasWarningMissingdom(false);\n if (!firstEntry)\n this.toastDCService.constructDCToast('fail', \"Date of marriage entered is invalid\");\n return true;\n }\n else\n childSection.hasWarningMissingdom(false);\n }\n return false;\n };\n hmrcAPIInfoViewModel.prototype.hasInvalidFields = function (section) {\n if (!this.hasInvalidForenameWarning(section, true) && !this.hasInvalidSurnameWarning(section, true) && !this.hasInvalidNINoWarning(section, true) && !this.hasInvalidDobWarning(section, true) && !this.hasInvalidDomWarning(section, true)) {\n return false;\n }\n return true;\n };\n hmrcAPIInfoViewModel.prototype.containsNumber = function (dateString) {\n return /\\d/.test(dateString);\n };\n hmrcAPIInfoViewModel.maStatusDesc = \"Taxpayer's existing status\";\n hmrcAPIInfoViewModel.maDeceasedDesc = \"Is taxpayer deceased?\";\n hmrcAPIInfoViewModel.maEligible = \"Is taxpayer's spouse/civil partner eligible?\";\n hmrcAPIInfoViewModel.nicTotalNiCableEarnings = \"Total earnings liable to Class 1 NIC above PT and up to UEL\";\n hmrcAPIInfoViewModel.nicTotalDue = \"Class 2 NIC total due\";\n hmrcAPIInfoViewModel.nicMaxNiCsReached = \"Have maximum NI contributions been reached?\";\n hmrcAPIInfoViewModel.pensionsIncomeOtherPensions = \"Total pay from all pensions & retirement annuities (excluding State Pension)\";\n hmrcAPIInfoViewModel.pensionsIncomeIncapacityBenefit = \"Incapacity Benefits payments received\";\n hmrcAPIInfoViewModel.pensionsIncomeJobseekersAllowance = \"Jobseeker's Allowance payments received\";\n hmrcAPIInfoViewModel.pensionsTaxOtherPensions = \"Total tax deducted from all pensions & retirement annuities\";\n hmrcAPIInfoViewModel.pensionsTaxIncapacityBenefit = \"Total tax deducted from Incapacity Benefits\";\n return hmrcAPIInfoViewModel;\n }(common.ListViewModelBase));\n exports.hmrcAPIInfoViewModel = hmrcAPIInfoViewModel;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/informationrequest/viewmodels/clientDetails',[\"require\", \"exports\", \"common/viewmodelbase\", \"models/portal\", \"areas/informationrequest/models/bindable\", \"models/account\", 'durandal/app', \"areas/informationrequest/service/informationrequest-service\", \"areas/informationrequest/viewmodels/hmrcAPIInfo\", \"services/navigator\", \"areas/informationrequest/service/sectionapimappings\", \"areas/informationrequest/service/toastDCService\", \"common/string\"], function (require, exports, common, Portal, VM, Account, app, service, hmrcAPI, Navigator, sectionapimappings, toastService, String) {\n \"use strict\";\n var InformationRequestViewModel1 = (function (_super) {\n __extends(InformationRequestViewModel1, _super);\n // #region ctor\n function InformationRequestViewModel1() {\n _super.call(this);\n this.sections = new Array();\n this.statuses = new Array();\n this.clientInfo = new VM.InformationRequest();\n this.sectionComments = new Array();\n this.selectedSection = new VM.BaseSectionVM();\n this.hasInformationReq = ko.observable(false);\n this.hasHmrcAuthorisation = ko.observable(false);\n this.displayOverlay = ko.observable(false);\n this.displayLoading = ko.observable(false);\n this.displayProcessOverlay = ko.observable(false);\n this.useCloudEvents = ko.observable(false);\n this.displayCommitStatus = ko.observable(true);\n this.displayMessageFeatureInDDR = ko.observable(false);\n this.breadCrumb = new Portal.ModuleBreadCrumbItemHolder();\n this.lastUpdatedHmrcInfo = ko.observable(\"\");\n this.lastReturnModifiedDate = ko.observable(\"\");\n this.commitStatus = ko.observable(\"\");\n this.commitToTaxToastMessage = ko.observable(\"\");\n this.commitState = ko.observable(\"\");\n this.checkedSources = ko.observable(0);\n this.enableCommitToTaxButton = ko.observable(false);\n this.statuses = [];\n this.statuses.push(\"\");\n this.statuses.push(\"Approved\");\n this.statuses.push(\"Incomplete\");\n this.statuses.push(\"Not Applicable\");\n ko.track(this, [\"sections\", \"statuses\", \"clientInfo\", \"clientGuid\", \"sectionComments\", \"newMessage\", \"dtaInfo\", \"hmrcInformation\", \"currentYearHeader\"]);\n this.informationrequestService = new service.InformationRequestService();\n this.hmrcInfoModel = new hmrcAPI.hmrcAPIInfoViewModel();\n this.toastDCService = new toastService.ToastDCService();\n this.noValueLabel = \"N/A\";\n this.exceptionsMessage = \"\";\n this.displayLoading(false);\n this.enableCommitToTaxButton(false);\n window.onbeforeunload = function (e) {\n console.log('da');\n };\n }\n // #endregion ctor\n InformationRequestViewModel1.prototype.onActivated = function (context) {\n this.clientGuid = context.queryString.clientGuid;\n this.taxYear = context.queryString.taxYear;\n var parameter = context.path.split('/');\n var calledFromTools = parameter[1] != null ? JSON.parse(parameter[1]) : null;\n this.isMortgageRepostion = this.taxYear >= 2021;\n this.loadData();\n this.spliceLastBreadcrumbs(context, calledFromTools);\n };\n InformationRequestViewModel1.prototype.createiServeCrumb = function () {\n if (this.breadCrumb.items.length === 0) {\n this.addiServeCrumbToBreadcrumbItems();\n }\n };\n InformationRequestViewModel1.prototype.addiServeCrumbToBreadcrumbItems = function () {\n var crumb = Portal.BreadCrumbItem.from(this.clientInfo.ClientName);\n //crumb.clickAction = this.onBeforelaod();\n this.breadCrumb.items.push(crumb);\n };\n InformationRequestViewModel1.prototype.spliceLastBreadcrumbs = function (context, calledFromTools) {\n if (this.breadCrumb.items.length > 1) {\n if (calledFromTools == true) {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 1, 1);\n }\n else {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 2, 2);\n }\n }\n else {\n if (calledFromTools == true) {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 1, 1);\n this.addiServeCrumbToBreadcrumbItems();\n }\n else {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 1, 1);\n }\n }\n };\n InformationRequestViewModel1.prototype.rootClicked = function (section, vm) {\n if (section.children.length > 0) {\n section.expanded(!section.expanded());\n if (section.expanded() && section.hasNotification())\n this.informationrequestService.clearNotification(section.clientGuid, section.taxYear, section.sectionGuid).then(function (response) {\n section.hasNotification(false);\n });\n }\n $('#childBenefitDateCeased').kendoDatePicker({ format: 'dd/MM/yyyy' });\n };\n InformationRequestViewModel1.prototype.mouseOverRoot = function (section) {\n section.mouseOver(true);\n };\n InformationRequestViewModel1.prototype.mouseOutRoot = function (section) {\n section.mouseOver(false);\n };\n InformationRequestViewModel1.prototype.enclosedClick = function (section, event) {\n section.enclosedPressed(!section.enclosedPressed());\n };\n InformationRequestViewModel1.prototype.geTime = function (date) {\n return date != null ? date.getTime() : 0;\n };\n InformationRequestViewModel1.prototype.hasChanges = function () {\n console.log(\"Da\");\n Navigator.navigateTo(\"digitalTax\", \"digitalTax\", \"/digitalTax\", null);\n };\n InformationRequestViewModel1.prototype.showComments = function (section, event) {\n var _this = this;\n this.sectionComments.removeAll();\n var sectionGuid = section.sectionGuid;\n this.informationrequestService.getComments(sectionGuid).then(function (response) {\n for (var i = 0; i < response.length; i++) {\n var comment = response[i];\n _this.sectionComments.push(comment);\n }\n section.commentsCount(_this.sectionComments.length);\n var objDiv = document.getElementById(\"bodyDivId\");\n objDiv.scrollTop = objDiv.scrollHeight;\n }).fail(function (error) { return console.log(error); });\n var self = this;\n self.newMessage = '';\n $(\"#messagesModalId\").modal(\"show\");\n self.selectedSection = section;\n };\n InformationRequestViewModel1.prototype.showAttachments = function (section, event) {\n var self = this;\n self.selectedSection = section;\n app.showDialog(\"areas/informationrequest/viewmodels/viewattachments\", self);\n };\n InformationRequestViewModel1.prototype.showOkDialog = function (message) {\n $(\"#messageDialogOkId\").text(message);\n $(\"#dialogOkId\").modal(\"show\");\n };\n InformationRequestViewModel1.prototype.showCommitDialog = function () {\n if (this.commitStatus() == \"Sending in progress\") {\n this.toastDCService.constructDCToast('fail', \"An earlier sending of data to CCH Central is in progress. Please wait for this to complete before trying again.\");\n }\n else if (!this.enableCommitToTaxButton()) {\n this.toastDCService.constructDCToast('fail', \"Please select some data to use in the tax return.\");\n }\n else if (this.commitStatus() == \"Retrieving tax data\") {\n this.toastDCService.constructDCToast('fail', \"We are in the process of retrieving this year's Tax Return data from CCH Central which may take some time. Please try again later.\");\n }\n else {\n $(\"#dialogConfirmCommitId\").modal(\"show\");\n }\n };\n InformationRequestViewModel1.prototype.closeDetails = function (section, event) {\n $(\"#detailModalId\").modal(\"hide\");\n };\n InformationRequestViewModel1.prototype.sendMessage = function (section, event) {\n var self = this;\n if ($.trim(self.newMessage).length > 0) {\n var newComment = new VM.Comment();\n newComment.message = self.newMessage;\n newComment.date = new Date(Date.now());\n newComment.userName = Account.Principal.current.loginName;\n newComment.sectionGuid = section.selectedSection.sectionGuid;\n newComment.commentGuid = VM.Guid.newGuid();\n }\n self.sectionComments.push(newComment);\n self.newMessage = '';\n section.selectedSection.commentsCount(section.selectedSection.commentsCount() + 1);\n var bodyDivElement = document.getElementById('bodyDivId');\n bodyDivElement.scrollTop = bodyDivElement.scrollHeight;\n self.saveComment(newComment);\n };\n InformationRequestViewModel1.prototype.saveComment = function (newComment) {\n var self = this;\n var id = self.clientGuid;\n var taxYear = self.taxYear;\n this.informationrequestService.SaveCommentAync(id, taxYear, newComment);\n };\n InformationRequestViewModel1.prototype.closeMessages = function (section, event) {\n var self = this;\n if (self.newMessage != '')\n $(\"#dialogConfirmId\").modal(\"show\");\n else\n $(\"#messagesModalId\").modal(\"hide\");\n };\n InformationRequestViewModel1.prototype.closeDialog = function () {\n $(\"#dialogConfirmId\").modal(\"hide\");\n $(\"#messagesModalId\").modal(\"hide\");\n $(\"#dialogOkId\").modal(\"hide\");\n $('#dialogConfirmSaveId').modal(\"hide\");\n $(\"#dialogConfirmCommitId\").modal(\"hide\");\n };\n InformationRequestViewModel1.prototype.keepOpen = function (event) {\n $(\"#dialogConfirmId\").modal(\"hide\");\n };\n InformationRequestViewModel1.prototype.saveChangesWithToast = function () {\n this.saveChanges(true);\n };\n InformationRequestViewModel1.prototype.saveChanges = function (silent) {\n var _this = this;\n if (!this.displayLoading())\n this.displayOverlay(true);\n //User Story 190929:: commenting due to ui no and NI number check is not required\n //if (this.hmrcInfoModel.hasInvalidSpouseFields()) {\n // this.showOkDialog(\"Invalid or missing the spouse/civil partner details. Please review the data and try again.\");\n // this.displayOverlay(false);\n // return;\n //}\n var sendRequest = false;\n var hasChangedSpouse = false;\n if (silent)\n sendRequest = true;\n var self = this;\n if (this.hmrcInfoModel.hasChangedSpouseInfo(this.clientInfo.Spouse)) {\n sendRequest = true;\n self.clientInfo.Spouse = this.hmrcInfoModel.getHmrcSpouseInfo();\n hasChangedSpouse = true;\n }\n var infoRequest = new VM.InformationRequest();\n infoRequest = ko.toJS(self.clientInfo);\n infoRequest.Sections = [];\n var infoRequest2 = new VM.InformationRequest();\n infoRequest.Sections = this.constructInfoRequestSections(self.clientInfo.Sections, sendRequest);\n infoRequest.Spouse = infoRequest.SpouseFromPT;\n self.clientInfo.Sections = infoRequest.Sections;\n if (sendRequest) {\n this.informationrequestService.SaveClientDetails(infoRequest).then(function () {\n self.displayOverlay(false);\n _this.toastDCService.constructDCToast('success', \"Saved\");\n _this.removeClientNotifications(self.clientInfo.Sections);\n var old = Object.create(self.clientInfo.Sections);\n self.oldSections = ko.toJS(old);\n }).fail(function () {\n _this.toastDCService.constructDCToast('fail', \"Error, not saved\");\n });\n }\n else {\n self.displayOverlay(false);\n }\n };\n InformationRequestViewModel1.prototype.removeClientNotifications = function (infoRequestSections) {\n if (infoRequestSections.length > 0)\n for (var i = 0; i < infoRequestSections.length; i++) {\n var childSection = infoRequestSections[i].hasClientNotification = false;\n this.removeClientNotifications(infoRequestSections[i].children);\n }\n };\n InformationRequestViewModel1.prototype.constructInfoRequestSections = function (infoRequestSections, sendRequest) {\n var sections = [];\n if (infoRequestSections.length > 0) {\n for (var i = 0; i < infoRequestSections.length; i++) {\n var childSection = this.evaluateStatus(infoRequestSections[i]);\n childSection.UnmaskAmount();\n if (this.sectionChanged(childSection)) {\n if (childSection.children.length == 0)\n childSection.hasClientNotification = true;\n sendRequest = true;\n }\n var children = this.constructInfoRequestSections(childSection.children, sendRequest);\n childSection.children = children;\n //check if all levels of sections are approved \n if (childSection.children != null && childSection.children.length > 0) {\n var approvedChildSections = childSection.children.filter(function (e) {\n return e.status == \"Approved\";\n });\n var notApplicableChildSections = childSection.children.filter(function (e) {\n return e.status == \"Not Applicable\";\n });\n var childSectionsCount = childSection.children.length;\n var approvedChildSectionsCount = approvedChildSections.length;\n var notApplicableChildSectionsCount = notApplicableChildSections.length;\n if (approvedChildSectionsCount == childSectionsCount || (approvedChildSectionsCount + notApplicableChildSectionsCount == childSectionsCount)) {\n if (notApplicableChildSectionsCount == childSectionsCount) {\n childSection.approved = 3;\n childSection.completeFromWeb(false);\n childSection.status = \"\";\n }\n else {\n childSection.approved = 1;\n childSection.completeFromWeb(true);\n childSection.status = \"Approved\";\n }\n }\n else {\n childSection.approved = 2;\n childSection.completeFromWeb(false);\n childSection.status = \"\";\n }\n }\n sections.push(childSection);\n }\n }\n return sections;\n };\n InformationRequestViewModel1.prototype.evaluateStatus = function (sectionToEvaluate) {\n if (sectionToEvaluate.status == \"\") {\n sectionToEvaluate.approved = 0;\n sectionToEvaluate.completeFromWeb(false);\n }\n else if (sectionToEvaluate.status == \"Approved\") {\n sectionToEvaluate.approved = 1;\n sectionToEvaluate.completeFromWeb(true);\n sectionToEvaluate.complete = true;\n }\n else if (sectionToEvaluate.status == \"Incomplete\") {\n sectionToEvaluate.approved = 2;\n sectionToEvaluate.completeFromWeb(false);\n }\n else if (sectionToEvaluate.status == \"Not Applicable\") {\n sectionToEvaluate.approved = 3;\n sectionToEvaluate.completeFromWeb(false);\n }\n return sectionToEvaluate;\n };\n InformationRequestViewModel1.prototype.sectionChanged = function (section) {\n var oldSection;\n for (var i = 0; i < this.oldSections.length; i++) {\n oldSection = this.getSection(this.oldSections[i], section.sectionGuid);\n if (oldSection != null)\n break;\n }\n if (section != null && oldSection != null)\n if ((JSON.stringify(section.extrafields) != JSON.stringify(oldSection.extrafields)) ||\n (JSON.stringify(section.status) != JSON.stringify(oldSection.status))) {\n return true;\n }\n return false;\n };\n InformationRequestViewModel1.prototype.getSection = function (section, sectionGuid) {\n if (section.sectionGuid == sectionGuid)\n return section;\n else if (section.children != null) {\n var result = null;\n for (var i = 0; result == null && i < section.children.length; i++) {\n result = this.getSection(section.children[i], sectionGuid);\n }\n return result;\n }\n return null;\n };\n InformationRequestViewModel1.prototype.revertChanges = function () {\n this.loadData();\n };\n InformationRequestViewModel1.prototype.refreshAPIs = function () {\n //User Story 190929:: commenting due to ui no and NI number check is not required\n //if (this.hmrcInfoModel.hasInvalidSpouseFields()) {\n // this.showOkDialog(\"Invalid or missing the spouse/civil partner details. Please review the data and try again.\");\n //}\n //else\n if (this.hmrcInfoModel.hasChangedSpouseInfo(this.clientInfo.Spouse)) {\n $(\"#dialogConfirmSaveId\").modal(\"show\");\n }\n else {\n this.checkHmrcData(this.clientGuid);\n }\n };\n InformationRequestViewModel1.prototype.exportToPdf = function () {\n var _this = this;\n var self = this;\n var clientCode = self.clientInfo.ClientCode;\n var clientGuid = self.clientGuid;\n var taxYear = self.taxYear;\n var downloadFileName = clientCode + \"_\" + taxYear + \".pdf\";\n if (!this.displayLoading())\n this.displayLoading(true);\n this.informationrequestService.ExportToPdf(clientGuid, taxYear)\n .then(function (response) {\n if (response) {\n var baseobject = _this.base64ToBlob(response, \"application/octet-stream\", 512);\n var url = window.URL.createObjectURL(baseobject);\n var a = document.createElement('a');\n a.style.display = 'none';\n a.href = url;\n a.download = downloadFileName;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(url);\n _this.displayLoading(false);\n }\n else {\n _this.showOkDialog(\"Error while generating Pdf.\");\n _this.displayLoading(false);\n }\n })\n .fail(function (reason) {\n _this.showOkDialog(\"Error while generating Pdf.\");\n _this.displayLoading(false);\n });\n };\n InformationRequestViewModel1.prototype.base64ToBlob = function (base64, mimetype, slicesize) {\n mimetype = mimetype || '';\n slicesize = slicesize || 512;\n var bytechars = atob(base64);\n var bytearrays = [];\n for (var offset = 0; offset < bytechars.length; offset += slicesize) {\n var slice = bytechars.slice(offset, offset + slicesize);\n var bytenums = new Array(slice.length);\n for (var i = 0; i < slice.length; i++) {\n bytenums[i] = slice.charCodeAt(i);\n }\n var bytearray = new Uint8Array(bytenums);\n bytearrays[bytearrays.length] = bytearray;\n }\n return new Blob(bytearrays, { type: mimetype });\n };\n InformationRequestViewModel1.prototype.commitToTax = function () {\n var _this = this;\n var self = this;\n var clientGuid = self.clientGuid;\n var taxYear = self.taxYear;\n var sectionsToCommit = [];\n sectionsToCommit = this.extractCheckedSection();\n if (sectionsToCommit.length > 0) {\n this.displayProcessOverlay(true);\n this.informationrequestService.CommitToTax(clientGuid, taxYear, sectionsToCommit, true).then(function (response) {\n self.displayProcessOverlay(false);\n if (!_this.useCloudEvents()) {\n _this.toastDCService.constructDCToast('success', \"Commit successful\");\n }\n else {\n _this.toastDCService.constructDCToast('info', \"Sending data to Tax Return<br><br>The selected data is being sent to CCH Central to use in the Tax Return. This may take some time to complete. Please refresh to check for updates.\");\n }\n _this.loadData();\n }).fail(function (error) {\n var parsedError = JSON.parse(error.responseText);\n var severity = parsedError.ExceptionMessage.includes(\"Tax Return is in use\") || parsedError.Severity !== 1 ? 'fail' : 'info';\n _this.toastDCService.constructDCToast(severity, \"Commit failed: \" + parsedError.ExceptionMessage);\n self.displayProcessOverlay(false);\n });\n this.closeDialog();\n }\n else {\n this.toastDCService.constructDCToast('info', \"Please select some data to use in the tax return.\");\n }\n };\n InformationRequestViewModel1.prototype.extractCheckedSection = function () {\n var allSections = this.sections;\n var checkedSection = [];\n for (var i = 0; i < allSections.length; i++) {\n if (allSections[i].children.length > 0) {\n for (var j = 0; j < allSections[i].children.length; j++) {\n if (allSections[i].children[j].isChecked()) {\n checkedSection.push(allSections[i].children[j].sectionGuid);\n }\n if (allSections[i].children[j].children.length > 0)\n for (var k = 0; k < allSections[i].children[j].children.length; k++) {\n if (allSections[i].children[j].children[k].isChecked()) {\n checkedSection.push(allSections[i].children[j].children[k].sectionGuid);\n }\n }\n }\n }\n }\n return checkedSection;\n };\n InformationRequestViewModel1.prototype.sourceSelected = function (data, checkedSources, enableCommitToTaxButton) {\n if (data.isChecked())\n checkedSources(checkedSources() + 1);\n else if (checkedSources() > 0)\n checkedSources(checkedSources() - 1);\n if (checkedSources() > 0)\n enableCommitToTaxButton(true);\n else\n enableCommitToTaxButton(false);\n return true;\n };\n InformationRequestViewModel1.prototype.saveAndCheckHmrcData = function () {\n this.displayLoading(true);\n this.saveChanges(false);\n this.checkHmrcData(this.clientGuid);\n this.closeDialog();\n };\n InformationRequestViewModel1.prototype.checkHmrcData = function (clientGuid) {\n var _this = this;\n if (!this.displayLoading())\n this.displayLoading(true);\n this.informationrequestService.CheckHmrcToken(clientGuid)\n .then(function (response) {\n if (response) {\n _this.hasHmrcAuthorisation(true);\n _this.getDataFromHmrc();\n }\n else {\n _this.showOkDialog(\"To access Digital Tax Account information the authorisation process must be completed for the HMRC credentials associated with this client.\");\n _this.displayLoading(false);\n }\n })\n .fail(function (reason) {\n _this.toastDCService.constructDCToast('info', reason.toString());\n });\n };\n InformationRequestViewModel1.prototype.getDataFromHmrc = function () {\n var _this = this;\n var self = this;\n var id = self.clientGuid;\n var taxYear = self.taxYear;\n if (!this.displayLoading())\n this.displayLoading(true);\n this.informationrequestService.Refresh(this.clientGuid, this.clientInfo.UTR, this.clientInfo.TaxYear, this.hmrcInfoModel.getEncodedSpouseInfo(this.clientInfo.Spouse))\n .then(function (response) {\n if (response != null) {\n if (!_this.displayLoading())\n _this.displayLoading(true);\n _this.clientInfo.LatestHmrcData = response;\n _this.clientInfo.LatestHmrcDataUpdated = new Date(Date.now());\n _this.lastUpdatedHmrcInfo(_this.clientInfo.LatestHmrcDataUpdated.toLocaleString('en-GB'));\n _this.hmrcInfoModel.LoadHmrcValues(response);\n document.getElementById(\"info-request-hmrc-button\").style.background = '#01C3C3';\n _this.saveChanges(true);\n }\n })\n .fail(function (reason) {\n })\n .done(function () {\n _this.displayLoading(false);\n });\n };\n InformationRequestViewModel1.prototype.loadData = function (refreshState) {\n var _this = this;\n this.displayLoading(true);\n var self = this;\n self.sections = [];\n var id = self.clientGuid;\n var taxYear = self.taxYear;\n this.informationrequestService.GetClientDetails(id, taxYear)\n .then(function (response) {\n if (response != null) {\n self.hasInformationReq(true);\n self.useCloudEvents(response.useCloudEvents);\n self.displayMessageFeatureInDDR(response.displayMessageFeatureInDDR);\n _this.parseData(self, response);\n _this.createiServeCrumb();\n _this.hmrcInfoModel.Load(response.hmrcData, response.spouseFromPT, response.spouse, _this.currentYearHeader);\n if (_this.clientInfo.LatestHmrcData != null) {\n _this.hmrcInfoModel.LoadHmrcValues(_this.clientInfo.LatestHmrcData);\n _this.lastUpdatedHmrcInfo(new Date(Date.parse(_this.clientInfo.LatestHmrcDataUpdated.toString())).toLocaleString('en-GB'));\n }\n else if (_this.clientInfo.Received != null) {\n _this.lastUpdatedHmrcInfo(new Date(Date.parse(_this.clientInfo.Received.toString())).toLocaleString('en-GB'));\n }\n _this.applyAmountFormat();\n _this.displayLoading(false);\n if (_this.useCloudEvents()) {\n _this.informationrequestService.GetReturnStatus(id, taxYear)\n .then(function (returnStatus) {\n if (returnStatus != null) {\n _this.lastReturnModifiedDate(new Date(Date.parse(returnStatus.lastModifiedDateString.toString())).toLocaleString('en-GB'));\n _this.commitStatus(returnStatus.statusMessage);\n _this.commitToTaxToastMessage(returnStatus.toastMessage);\n _this.commitState(returnStatus.state);\n if (refreshState && !String.isNullOrEmpty(_this.commitToTaxToastMessage())) {\n _this.toastDCService.constructDCToast(_this.commitState().toLocaleLowerCase(), _this.commitToTaxToastMessage());\n }\n if (String.isNullOrEmpty(_this.commitToTaxToastMessage())) {\n _this.displayCommitStatus(false);\n }\n else {\n _this.displayCommitStatus(true);\n }\n }\n });\n }\n }\n }, function (status) {\n console.log(status);\n });\n this.enableCommitToTaxButton(false);\n };\n InformationRequestViewModel1.prototype.refreshData = function () {\n this.loadData(true);\n };\n InformationRequestViewModel1.prototype.applyAmountFormat = function () {\n $('.currencyAmount').inputmask(\"numeric\", {\n radixPoint: \".\",\n groupSeparator: \",\",\n digits: 2,\n autoGroup: true,\n //prefix: '£ ',\n rightAlign: false,\n undoOnEscape: true,\n integerDigits: 14\n });\n //$('.currencyAmount').attr('maxlength', 20);\n //$('#currencyAmount').on('input', function () {\n // if ($('#currencyAmount').text.toString().indexOf('.') == -1)\n // $('#currencyAmount').attr('maxlength', 20);\n // else\n // $('#currencyAmount').attr('maxlength', 23);\n //});\n };\n InformationRequestViewModel1.prototype.parseData = function (vm, response) {\n this.parseClient(vm, response);\n vm.clientInfo.Sections = this.constructSections(response.sections);\n for (var i = 0; i < vm.clientInfo.Sections.length; i++)\n vm.sections.push(vm.clientInfo.Sections[i]);\n //vm.sections = vm.clientInfo.Sections.slice();\n var old = Object.create(vm.clientInfo.Sections);\n vm.oldSections = ko.toJS(old);\n };\n InformationRequestViewModel1.prototype.shouldShowCheckbox = function (name) {\n switch (name) {\n case 'UK Bank Interest Paid Gross':\n case 'UK Interest':\n case 'Employment Income':\n //case 'Foreign Dividend Income':\n case 'National Savings Interest Paid Gross':\n case 'National Savings Interest':\n //case 'Other UK Interest Paid Gross':\n //case 'UK Unit Trust Interest Paid Gross':\n case 'Pension Income':\n case 'Foreign Pension Income':\n case 'State Benefits Income':\n case 'Foreign State Benefit Income':\n case 'Income from UK Property':\n case 'Income from Foreign Property':\n case 'Child Benefit':\n return true;\n default: return false;\n }\n };\n InformationRequestViewModel1.prototype.taxDeductionVisible = function (name) {\n switch (name) {\n case \"National Savings Interest\":\n case \"Other UK Interest Paid Gross\":\n case \"UK Investment Income\":\n case \"UK Interest\":\n case \"UK Unit Trust Interest Paid Gross\":\n //case 'State Benefits Income': below section are child sections\n case \"Contribution-based Employment & Support Allowance\":\n case \"Industrial Death Benefit\":\n case \"Bereavement Allowance\":\n case \"Statutory Adoption Pay\":\n case \"Statutory Paternity Pay\":\n case \"Statutory Sick Pay\":\n case \"Jobseeker's Allowance\":\n case \"Widowed Parent Allowance\":\n case \"State Retirement Pension\":\n case \"Carer's Allowance\":\n return false;\n default: return true;\n }\n };\n InformationRequestViewModel1.prototype.constructSections = function (responseSections, sourceName) {\n if (sourceName === void 0) { sourceName = null; }\n var sections = new Array();\n if (responseSections.length > 0)\n for (var i = 0; i < responseSections.length; i++) {\n var childSection = new VM.BaseSectionVM();\n childSection = this.parseSection(responseSections[i]);\n if (childSection.parentGuid == null)\n sourceName = childSection.name;\n if (this.shouldShowCheckbox(sourceName))\n childSection.checkboxVisible = true;\n else\n childSection.checkboxVisible = false;\n if (sourceName == \"State Benefits Income\")\n childSection.isTaxDeductionVisible = this.taxDeductionVisible(childSection.name);\n else\n childSection.isTaxDeductionVisible = this.taxDeductionVisible(sourceName);\n childSection.hasWarningMissingFName(true);\n if (childSection.status != undefined && childSection.status != \"Approved\")\n childSection.completeFromWeb(false);\n var children = this.constructSections(responseSections[i].children, sourceName);\n childSection.children = children;\n if (childSection.isParent || childSection.children.length > 0) {\n var approvedChildSections = childSection.children.filter(function (e) {\n return e.status == \"Approved\";\n });\n var notApplicableChildSections = childSection.children.filter(function (e) {\n return e.status == \"Not Applicable\";\n });\n var childSectionsCount = childSection.children.length;\n var approvedChildSectionsCount = approvedChildSections.length;\n var notApplicableChildSectionsCount = notApplicableChildSections.length;\n if (approvedChildSectionsCount == childSectionsCount || (approvedChildSectionsCount + notApplicableChildSectionsCount == childSectionsCount)) {\n if (notApplicableChildSectionsCount == childSectionsCount) {\n childSection.completeFromWeb(false);\n childSection.complete = false;\n }\n else {\n childSection.completeFromWeb(true);\n childSection.complete = true;\n }\n }\n else {\n var anyNotApprove = childSection.children.filter(function (e) {\n return e.status != \"Approved\";\n });\n if (anyNotApprove.length > 0) {\n childSection.completeFromWeb(false);\n }\n }\n }\n sections.push(childSection);\n }\n return sections;\n };\n InformationRequestViewModel1.prototype.parseClient = function (vm, response) {\n var details = new VM.InformationRequest();\n details.ClientName = response.clientName;\n details.UTR = response.utr;\n details.NINO = response.nino;\n details.Received = response.received;\n details.TaxYear = response.taxYear;\n details.LatestComments = response.latestComments;\n details.PeriodEnd = response.periodEnd;\n details.ClientCode = response.clientCode;\n details.PracticeGuid = response.practiceGuid;\n details.ClientGuid = response.clientGuid;\n details.CreatorNetworkMemberId = response.creatorNetworkMemberId;\n details.Spouse = response.spouseFromPT;\n details.SpouseFromPT = response.spouseFromPT;\n details.HmrcData = response.hmrcData;\n details.LatestHmrcData = response.latestHmrcData;\n details.LatestHmrcDataUpdated = response.latestHmrcDataUpdated;\n vm.clientInfo = details;\n this.currentYearHeader = (details.TaxYear - 1).toString() + '/' + details.TaxYear.toString().substring(2, 4);\n };\n InformationRequestViewModel1.prototype.parseSection = function (responseSection) {\n // load sections\n return this.loadSection(responseSection);\n };\n InformationRequestViewModel1.prototype.loadSection = function (responseSection) {\n var section = new VM.SectionVM();\n section.name = responseSection.name;\n section.nameId = section.name.replace(/ /g, '');\n if (responseSection.previousYear == null) {\n section.lastyear = this.noValueLabel;\n section.hasLastYearValue = false;\n }\n else if (responseSection.previousYear == 0) {\n section.lastyear = this.exceptionsMessage;\n }\n else {\n section.lastyear = responseSection.previousYear.toFixed(2);\n section.hasLastYearValue = true;\n }\n section.parentGuid = responseSection.parentGuid;\n section.sectionGuid = responseSection.sectionGuid;\n section.clientGuid = responseSection.clientGuid;\n section.taxYear = responseSection.taxYear;\n if (responseSection.committedDate != null) {\n section.committed_Date(new Date(Date.parse(responseSection.committedDate.toString())).toLocaleDateString('en-GB'));\n }\n section.extrafields = responseSection.extraFields;\n //if (responseSection.extraFields.alias == \"DefaultExtraFields\" || responseSection.extraFields.alias == \"Employment\" ||\n // responseSection.extraFields.alias == \"JointlyOwned\" || responseSection.extraFields.alias == \"JointlyOwnedForeignIncome\"\n // || responseSection.extraFields.alias == \"LandAndProperty\"\n // || responseSection.extraFields.alias == \"ForeignIncome\") {\n // if (section.extrafields.keyValueStore.currentYear != null)\n // section.extrafields.keyValueStore.currentYear = parseFloat(section.extrafields.keyValueStore.currentYear).toFixed(2);\n // if (section.extrafields.keyValueStore.taxDeducted != null)\n // section.extrafields.keyValueStore.taxDeducted = parseFloat(section.extrafields.keyValueStore.taxDeducted).toFixed(2);\n //}\n if (section.extrafields.keyValueStore.currentYear != null)\n section.extrafields.keyValueStore.currentYear = parseFloat(section.extrafields.keyValueStore.currentYear).toFixed(2);\n if (section.extrafields.keyValueStore.taxDeducted != null)\n section.extrafields.keyValueStore.taxDeducted = parseFloat(section.extrafields.keyValueStore.taxDeducted).toFixed(2);\n if (responseSection.extraFields.alias == \"Employment\") {\n if (section.extrafields.keyValueStore.payeReference != null) {\n section.extrafields.keyValueStore.payeReference = section.extrafields.keyValueStore.payeReference.toString();\n }\n if (section.extrafields.keyValueStore.cypayeReference == null)\n section.extrafields.keyValueStore.cypayeReference = section.extrafields.keyValueStore.payeReference != null ? section.extrafields.keyValueStore.payeReference : \"\";\n }\n if (responseSection.extraFields.keyValueStore.templateBody == \"ChildBenefitBody\") {\n if (section.extrafields.keyValueStore.currentYear != null)\n section.extrafields.keyValueStore.currentYear = parseFloat(section.extrafields.keyValueStore.currentYear.toString().replace(/,/g, '')).toFixed(2);\n if (section.extrafields.keyValueStore.numberOfChildren != null)\n section.extrafields.keyValueStore.numberOfChildren = Math.round(parseFloat(section.extrafields.keyValueStore.numberOfChildren));\n if (section.extrafields.keyValueStore.prevYearNumberOfChildren != null)\n section.extrafields.keyValueStore.prevYearNumberOfChildren = Math.round(parseFloat(section.extrafields.keyValueStore.prevYearNumberOfChildren));\n }\n if (responseSection.extraFields.alias == \"JointlyOwned\" || responseSection.extraFields.alias == \"JointlyOwnedForeignIncome\"\n || responseSection.extraFields.alias == \"LandAndProperty\") {\n if (section.extrafields.keyValueStore.jointlyOwnedShare != null && section.extrafields.keyValueStore.jointlyOwnedShare != 0) {\n section.isJointlyOwned(true);\n section.jointShare(section.extrafields.keyValueStore.jointlyOwnedShare + '%');\n }\n }\n if (responseSection.extraFields.alias == \"ForeignIncome\"\n || responseSection.extraFields.alias == \"JointlyOwnedForeignIncome\"\n || responseSection.extraFields.alias == \"LandAndProperty\") {\n if (section.extrafields.keyValueStore.foreignCurrency != null) {\n var length = section.extrafields.keyValueStore.foreignCurrency.toString().length;\n var currency = section.extrafields.keyValueStore.foreignCurrency.toString().substring(length - 4);\n section.foreignCurrency(currency);\n section.foreignCountry(\"Country : \" + section.extrafields.keyValueStore.foreignCurrency.toString().substring(0, length - 6));\n }\n }\n if (responseSection.extraFields.alias == \"LandAndProperty\") {\n if (section.extrafields.keyValueStore.foreignCurrency == null)\n section.extrafields.keyValueStore.foreignCurrency = \"\";\n if (section.extrafields.keyValueStore.clientCategory == null)\n section.extrafields.keyValueStore.clientCategory = \"\";\n if (section.extrafields.keyValueStore.rentalIncome == null || section.extrafields.keyValueStore.rentalIncome == \"\")\n section.extrafields.keyValueStore.rentalIncome = \"\";\n else\n section.extrafields.keyValueStore.rentalIncome = parseFloat(section.extrafields.keyValueStore.rentalIncome).toFixed(2);\n if (section.extrafields.keyValueStore.otherIncome == null || section.extrafields.keyValueStore.otherIncome == \"\")\n section.extrafields.keyValueStore.otherIncome = \"\";\n else\n section.extrafields.keyValueStore.otherIncome = parseFloat(section.extrafields.keyValueStore.otherIncome).toFixed(2);\n if (section.extrafields.keyValueStore.councilTax == null || section.extrafields.keyValueStore.councilTax == \"\")\n section.extrafields.keyValueStore.councilTax = \"\";\n else\n section.extrafields.keyValueStore.councilTax = parseFloat(section.extrafields.keyValueStore.councilTax).toFixed(2);\n if (section.extrafields.keyValueStore.waterRates == null || section.extrafields.keyValueStore.waterRates == \"\")\n section.extrafields.keyValueStore.waterRates = \"\";\n else\n section.extrafields.keyValueStore.waterRates = parseFloat(section.extrafields.keyValueStore.waterRates).toFixed(2);\n if (section.extrafields.keyValueStore.insurance == null || section.extrafields.keyValueStore.insurance == \"\")\n section.extrafields.keyValueStore.insurance = \"\";\n else\n section.extrafields.keyValueStore.insurance = parseFloat(section.extrafields.keyValueStore.insurance).toFixed(2);\n if (section.extrafields.keyValueStore.groundRent == null || section.extrafields.keyValueStore.groundRent == \"\")\n section.extrafields.keyValueStore.groundRent = \"\";\n else\n section.extrafields.keyValueStore.groundRent = parseFloat(section.extrafields.keyValueStore.groundRent).toFixed(2);\n if (section.extrafields.keyValueStore.repairs == null || section.extrafields.keyValueStore.repairs == \"\")\n section.extrafields.keyValueStore.repairs = \"\";\n else\n section.extrafields.keyValueStore.repairs = parseFloat(section.extrafields.keyValueStore.repairs).toFixed(2);\n if (section.extrafields.keyValueStore.mortgageInterest == null || section.extrafields.keyValueStore.mortgageInterest == \"\")\n section.extrafields.keyValueStore.mortgageInterest = \"\";\n else\n section.extrafields.keyValueStore.mortgageInterest = parseFloat(section.extrafields.keyValueStore.mortgageInterest).toFixed(2);\n if (section.extrafields.keyValueStore.otherFinancialCosts == null || section.extrafields.keyValueStore.otherFinancialCosts == \"\")\n section.extrafields.keyValueStore.otherFinancialCosts = \"\";\n else\n section.extrafields.keyValueStore.otherFinancialCosts = parseFloat(section.extrafields.keyValueStore.otherFinancialCosts).toFixed(2);\n if (section.extrafields.keyValueStore.legalFees == null || section.extrafields.keyValueStore.legalFees == \"\")\n section.extrafields.keyValueStore.legalFees = \"\";\n else\n section.extrafields.keyValueStore.legalFees = parseFloat(section.extrafields.keyValueStore.legalFees).toFixed(2);\n if (section.extrafields.keyValueStore.managementFees == null || section.extrafields.keyValueStore.managementFees == \"\")\n section.extrafields.keyValueStore.managementFees = \"\";\n else\n section.extrafields.keyValueStore.managementFees = parseFloat(section.extrafields.keyValueStore.managementFees).toFixed(2);\n if (section.extrafields.keyValueStore.otherProfessionalCosts == null || section.extrafields.keyValueStore.otherProfessionalCosts == \"\")\n section.extrafields.keyValueStore.otherProfessionalCosts = \"\";\n else\n section.extrafields.keyValueStore.otherProfessionalCosts = parseFloat(section.extrafields.keyValueStore.otherProfessionalCosts).toFixed(2);\n if (section.extrafields.keyValueStore.costsOfServicesProvided == null || section.extrafields.keyValueStore.costsOfServicesProvided == \"\")\n section.extrafields.keyValueStore.costsOfServicesProvided = \"\";\n else\n section.extrafields.keyValueStore.costsOfServicesProvided = parseFloat(section.extrafields.keyValueStore.costsOfServicesProvided).toFixed(2);\n if (section.extrafields.keyValueStore.wages == null || section.extrafields.keyValueStore.wages == \"\")\n section.extrafields.keyValueStore.wages = \"\";\n else\n section.extrafields.keyValueStore.wages = parseFloat(section.extrafields.keyValueStore.wages).toFixed(2);\n if (section.extrafields.keyValueStore.otherPropertyExpenses == null || section.extrafields.keyValueStore.otherPropertyExpenses == \"\")\n section.extrafields.keyValueStore.otherPropertyExpenses = \"\";\n else\n section.extrafields.keyValueStore.otherPropertyExpenses = parseFloat(section.extrafields.keyValueStore.otherPropertyExpenses).toFixed(2);\n section.RentalIncome(section.extrafields.keyValueStore.rentalIncome);\n section.OtherIncome(section.extrafields.keyValueStore.otherIncome);\n section.CouncilTax(section.extrafields.keyValueStore.councilTax);\n section.WaterRates(section.extrafields.keyValueStore.waterRates);\n section.Insurance(section.extrafields.keyValueStore.insurance);\n section.GroundRent(section.extrafields.keyValueStore.groundRent);\n section.Repairs(section.extrafields.keyValueStore.repairs);\n section.MortgageInterest(section.extrafields.keyValueStore.mortgageInterest);\n section.OtherFinancialCosts(section.extrafields.keyValueStore.otherFinancialCosts);\n section.LegalFees(section.extrafields.keyValueStore.legalFees);\n section.ManagementFees(section.extrafields.keyValueStore.managementFees);\n section.OtherProfessionalCosts(section.extrafields.keyValueStore.otherProfessionalCosts);\n section.CostsOfServicesProvided(section.extrafields.keyValueStore.costsOfServicesProvided);\n section.Wages(section.extrafields.keyValueStore.wages);\n section.OtherPropertyExpenses(section.extrafields.keyValueStore.otherPropertyExpenses);\n }\n section.complete = responseSection.complete;\n section.templateHeader = responseSection.extraFields.keyValueStore.templateHeader;\n section.templateBody = responseSection.extraFields.keyValueStore.templateBody;\n section.hasNotification(responseSection.hasNotification);\n section.hasClientNotification = responseSection.hasClientNotification;\n section.hasClientNotification = false;\n section.commentsCount(responseSection.commentsCount);\n section.attachmentsCount(responseSection.attachmentsCount);\n section.isParent = responseSection.isParent;\n if (!responseSection.isParent) {\n section.isAllowanceChanged = responseSection.extraFields.keyValueStore.hasChanged;\n if (section.isAllowanceChanged)\n section.isAllowanceChangedDescription = \"Changed\";\n else\n section.isAllowanceChangedDescription = \"No Changes\";\n if (responseSection.latestComment != null) {\n section.latestComment = responseSection.latestComment.message;\n }\n else {\n section.latestComment = \"...\";\n }\n var status = responseSection.approved;\n if (status == 0)\n section.status = \"\";\n else if (status == 1)\n section.status = \"Approved\";\n else if (status == 2)\n section.status = \"Incomplete\";\n else if (status == 3)\n section.status = \"Not Applicable\";\n if (responseSection.extraFields.alias == 'NewSource' && responseSection.extraFields.keyValueStore.details != null) {\n if (responseSection.extraFields.keyValueStore.details.length > 125) {\n section.shortDetails = responseSection.extraFields.keyValueStore.details.slice(0, 125) + \"...\";\n section.togleDetails = true;\n }\n else\n section.shortDetails = responseSection.extraFields.keyValueStore.details;\n }\n }\n else {\n if (responseSection.extraFields.alias == \"Employment\") {\n section.hasHMRCAPI404Error(false);\n section.hasHMRCAPIError(false);\n if (this.clientInfo.HmrcData.apiErrors != null &&\n this.clientInfo.HmrcData.apiErrors[sectionapimappings.SectionAPIMapping.GetHMRCAPIType(sectionapimappings.SectionAPIMapping.EmploymentSectionName)]) {\n var error = this.clientInfo.HmrcData.apiErrors[sectionapimappings.SectionAPIMapping.GetHMRCAPIType(sectionapimappings.SectionAPIMapping.EmploymentSectionName)][0];\n if (error.statusCode == 404) {\n section.hasHMRCAPI404Error(true);\n }\n else {\n section.hasHMRCAPIError(true);\n }\n }\n }\n }\n return section;\n };\n InformationRequestViewModel1.prototype.togleDetailsText = function (section, event) {\n section.seeMore(!section.seeMore());\n };\n InformationRequestViewModel1.prototype.setViewBreakdown = function (section, event) {\n section.viewBreakdown(!section.viewBreakdown());\n };\n InformationRequestViewModel1.prototype.expandAll = function () {\n var self = this;\n for (var i = 0; i < self.clientInfo.Sections.length; i++) {\n if (self.clientInfo.Sections[i].hasNotification()) {\n self.clientInfo.Sections[i].hasNotification(false);\n this.informationrequestService.clearNotification(self.clientInfo.Sections[i].clientGuid, self.clientInfo.Sections[i].taxYear, self.clientInfo.Sections[i].sectionGuid).then(function (response) { });\n }\n self.clientInfo.Sections[i].expanded(true);\n }\n for (var i = 0; i < self.hmrcInfoModel.sections.length; i++)\n if (self.hmrcInfoModel.sections[i].showChevron()) {\n self.hmrcInfoModel.sections[i].expanded(true);\n }\n $('#childBenefitDateCeased').kendoDatePicker({ format: 'dd/MM/yyyy' });\n };\n InformationRequestViewModel1.prototype.collapseAll = function () {\n var self = this;\n for (var i = 0; i < self.clientInfo.Sections.length; i++)\n self.clientInfo.Sections[i].expanded(false);\n for (var i = 0; i < self.hmrcInfoModel.sections.length; i++)\n self.hmrcInfoModel.sections[i].expanded(false);\n };\n InformationRequestViewModel1.prototype.showInformation = function (section, event) {\n console.log(\"show\");\n };\n InformationRequestViewModel1.prototype.showCommitViewMore = function () {\n this.toastDCService.constructDCToast(this.commitState().toLowerCase(), this.commitToTaxToastMessage());\n };\n InformationRequestViewModel1.prototype.errorClicked = function (section) {\n var self = this;\n self.showErrors(section.name);\n };\n InformationRequestViewModel1.prototype.showErrors = function (sectionName) {\n var hmrcInfo = this.clientInfo.HmrcData;\n if (hmrcInfo.apiErrors[sectionapimappings.SectionAPIMapping.GetHMRCAPIType(sectionName)]) {\n var error404Description = sectionName;\n var has500Error = false;\n var has404Error = false;\n for (var i = 0; i < hmrcInfo.apiErrors[sectionapimappings.SectionAPIMapping.GetHMRCAPIType(sectionName)].length; i++) {\n var error = hmrcInfo.apiErrors[sectionapimappings.SectionAPIMapping.GetHMRCAPIType(sectionName)][i];\n var toastMessage = this.ConstructToastMessage(sectionName, error);\n if (error.statusCode == 400 || error.statusCode == 401)\n this.toastDCService.constructDCToast('fail', toastMessage);\n if (error.statusCode == 404) {\n if (error.aPIName != null)\n error404Description = error404Description + \" <br> - \" + error.aPIName;\n else\n error404Description = error404Description;\n has404Error = true;\n }\n if (error.statusCode == 500) {\n has500Error = true;\n }\n }\n if (has404Error)\n this.toastDCService.constructDCToast('success', \"Sorry! No data currently held by HMRC : <br>\" + error404Description);\n if (has500Error)\n this.toastDCService.constructDCToast('fail', \"Server Error : Internal server error\");\n }\n };\n InformationRequestViewModel1.prototype.ConstructToastMessage = function (sectionName, error) {\n var errorMessage = \"\";\n if (error.aPIName != null && error.aPIName.length > 0) {\n errorMessage = sectionName + \" : \" + error.aPIName + \" - \" + error.reasonPhrase + \" : \" + error.errorDescription;\n }\n else {\n errorMessage = sectionName + \" : \" + error.reasonPhrase + \" - \" + error.errorDescription;\n }\n return errorMessage;\n };\n return InformationRequestViewModel1;\n }(common.ListViewModelBase));\n var instance = new InformationRequestViewModel1();\n return instance;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/informationrequest/viewmodels/hmrcInfoDetails',[\"require\", \"exports\", \"common/viewmodelbase\", \"models/portal\", \"areas/informationrequest/models/bindable\", \"services/settings\", 'durandal/app', \"areas/informationrequest/service/informationrequest-service\", \"areas/informationrequest/viewmodels/hmrcAPIInfo\"], function (require, exports, common, Portal, VM, configuration, app, service, hmrcAPI) {\n \"use strict\";\n var hmrcViewModel = (function (_super) {\n __extends(hmrcViewModel, _super);\n // #region ctor\n function hmrcViewModel() {\n _super.call(this);\n this.clientInfo = new VM.InformationRequest();\n this.hasInformationReq = ko.observable(false);\n this.hasHmrcAuthorisation = ko.observable(false);\n this.noDTAInfo = ko.observable(false);\n this.spouseInfo = new VM.SpouseInfo();\n this.dtaInfo = new Array();\n this.exceptionsMessage = \"\";\n ko.track(this, [\"hmrcInfoModel\", \"clientInfo\", \"dtaInfo\"]);\n this.informationrequestService = new service.InformationRequestService();\n this.hmrcInfoModel = new hmrcAPI.hmrcAPIInfoViewModel();\n }\n // #endregion ctor\n hmrcViewModel.prototype.onActivated = function (context) {\n var host = configuration.Settings.getHost();\n this.taxYear = context.queryString.taxYear;\n this.fromPT = context.queryString.fromPT;\n this.clientName = context.queryString.clientName;\n this.clientNino = context.queryString.clientNino;\n this.clientCode = context.queryString.clientCode;\n this.clientGuid = context.queryString.clientGuid;\n this.utr = context.queryString.utr;\n this.spouseInformationString = context.queryString.spouseInformation;\n this.defaultTemplate = \"default-header\";\n this.checkHmrcData(this.clientGuid);\n this.loadData();\n this.showUsefulInformation();\n };\n hmrcViewModel.prototype.rootClicked = function (section) {\n section.expanded(!section.expanded());\n };\n hmrcViewModel.prototype.saveChanges = function () {\n };\n hmrcViewModel.prototype.revertChanges = function () {\n this.loadData();\n };\n hmrcViewModel.prototype.showUsefulInformation = function () {\n if (this.fromPT != null && this.fromPT == \"True\") {\n var showDTAInfoWarning = false;\n var shell = Portal.Context.shell;\n this.userManager = shell.userManager;\n //this.userManager.saveSettings(\"showDTA\", { 'ShowDTA': true });\n // var aaa = this.userManager.getSettings(\"showDTA\");\n this.userManager.getSettings(\"showDTA\").then(function (response) {\n if (response != null && response.toString() != \"\") {\n var settings = JSON.parse(response.toString());\n if (settings.ShowDTA == true) {\n showDTAInfoWarning = true;\n }\n }\n else {\n showDTAInfoWarning = true;\n }\n if (showDTAInfoWarning == true) {\n app.showDialog(\"areas/informationrequest/viewmodels/DTAInformationDialog\"); // locate html file through durandal dialog mechanism\n }\n });\n }\n };\n hmrcViewModel.prototype.loadData = function () {\n var self = this;\n self.clientInfo = new VM.InformationRequest();\n // var taxYear: number = self.taxYear;\n var details = new VM.InformationRequest();\n details.ClientName = self.clientName;\n details.UTR = self.utr;\n details.NINO = self.clientNino;\n details.TaxYear = self.taxYear;\n details.ClientCode = self.clientCode;\n this.currentYearHeader = (details.TaxYear - 1).toString() + '/' + details.TaxYear.toString().substring(2, 4);\n self.clientInfo = details;\n };\n hmrcViewModel.prototype.parseData = function (vm, response) {\n //if (this.spouseInformationString != null) {\n // var tempSpouse = atob(this.spouseInformationString);\n // tempSpouse = tempSpouse.replace(/\"([^\"]+)\":/g, function ($0, $1) { return ('\"' + $1[0].toLowerCase() + $1.slice(1) + '\":'); });\n // this.spouseInfo = JSON.parse(tempSpouse);\n //}\n this.spouseInfo = this.hmrcInfoModel.getSpouseInfoFromEncodedString(this.spouseInformationString);\n this.hmrcInfoModel.Load(response, this.spouseInfo, this.spouseInfo, this.currentYearHeader);\n };\n hmrcViewModel.prototype.checkHmrcData = function (clientGuid) {\n var _this = this;\n this.informationrequestService.CheckHmrcToken(clientGuid)\n .then(function (response) {\n if (response) {\n _this.hasHmrcAuthorisation(true);\n _this.getDataFromHmrc();\n }\n });\n };\n hmrcViewModel.prototype.getDataFromHmrc = function () {\n var _this = this;\n var self = this;\n this.informationrequestService.Refresh(self.clientGuid, self.utr, self.taxYear, self.spouseInformationString)\n .then(function (response) {\n if (response != null) {\n _this.parseData(self, response);\n }\n else {\n self.noDTAInfo(true);\n }\n }).fail(function (reason) {\n });\n };\n hmrcViewModel.prototype.mouseOverRoot = function (section) {\n section.mouseOver(true);\n };\n hmrcViewModel.prototype.mouseOutRoot = function (section) {\n section.mouseOver(false);\n };\n hmrcViewModel.prototype.enclosedClick = function (section, event) {\n section.enclosedPressed(!section.enclosedPressed());\n };\n return hmrcViewModel;\n }(common.ListViewModelBase));\n var instance = new hmrcViewModel();\n return instance;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/informationrequest/viewmodels/index',[\"require\", \"exports\", \"common/viewmodelbase\", \"areas/informationrequest/models/bindable\", \"services/navigator\", \"areas/informationrequest/service/informationrequest-service\", \"models/account\", \"../../../common/string\", \"../../../common/constants\", \"areas/informationrequest/service/toastDCService\"], function (require, exports, common, VM, Navigator, service, Account, String, constants, toastService) {\n \"use strict\";\n var InformationRequestViewModel = (function (_super) {\n __extends(InformationRequestViewModel, _super);\n // #region ctor\n function InformationRequestViewModel() {\n _super.call(this);\n this.clients = new Array();\n this.observableClients = ko.observableArray([]);\n this.originalClients = new Array();\n this.filters = new Array();\n this.selectedFilters = ko.observableArray([]);\n this.paginationText = ko.observable(\"\");\n this.getMoreClients = ko.observable(false);\n this.displayLoading = ko.observable(false);\n this.showClearInput = ko.observable(false);\n this.allClientsRecived = false;\n this.getNextClientsSpiner = ko.observable(false);\n this.showLoadingSpinner = ko.observable(false);\n this.noClientsIcon = ko.observable(false);\n this.isAnyRequestToReview = ko.observable(false);\n this.displayMessageFeatureInDDR = ko.observable(false);\n this.checkAllYears = ko.observable(true);\n this.filterEmployee = ko.observable();\n this.filterStatus = ko.observable();\n this.eeFilterSearch = ko.observable(\"\");\n this.eeFilterShow = ko.observable(false);\n this.requestFilterShow = ko.observable(false);\n this.filteredEmployees = ko.observable();\n this.requestStatuses = ko.observable();\n this.taxYearFilterShow = ko.observable(false);\n this.numberOfItemSelected = ko.observable();\n this.enableExportToExcel = ko.observable(true);\n ko.track(this, [\"clients\", \"filters\"]);\n this.informationrequestService = new service.InformationRequestService();\n this.toastDCService = new toastService.ToastDCService();\n //this.clients.\n //this.clients.extend \n //multi select dropdownlist\n $(document).click(function (e) {\n if (!($(e.target).is(\"#dropdownlist-container\") || $(e.target).closest(\"#dropdownlist-container\").length))\n $(\"#dropdownlist-container-child\").hide();\n });\n }\n // #endregion\n InformationRequestViewModel.prototype.onActivated = function () {\n var _this = this;\n this.sortDirection = ko.observable(\"ASC\");\n this.sortDirectionDate = ko.observable(\"\");\n this.sortDirectionName = ko.observable(\"\");\n this.sortDirectionAdvisorApproved = ko.observable(\"\");\n this.sortDirectionClientProvided = ko.observable(\"\");\n this.sortDirectionRequestStatus = ko.observable(\"\");\n this.sortDirectionClientCode = ko.observable(\"\");\n this.sortDirectionTaxYear = ko.observable(\"\");\n this.sortColumn = \"ClientName\";\n this.loadData();\n this.SelectAll = ko.computed({\n owner: this,\n read: function () { return _this.selectedFilters().length == _this.filters.length; },\n write: function () { return _this.selectedFilters(_this.selectedFilters().length == _this.filters.length ? [] : _this.filters.slice(0)); }\n });\n this.selectedFilters.subscribe(function (newSelectedFilters) {\n _this.filterClients(newSelectedFilters);\n });\n this.observableClients = ko.observableArray(this.clients);\n };\n InformationRequestViewModel.prototype.loadData = function () {\n var _this = this;\n this.eeFilterShow(false);\n this.requestFilterShow(false);\n this.taxYearFilterShow(false);\n this.filterEmployee();\n this.selectedStatusId = \"\";\n this.filterStatus(null);\n this.populateTaxYearFilterList();\n this.sortColumn = \"ClientName\";\n this.sortDirection(\"ASC\");\n this.searchInput = \"\";\n this.resetPagination();\n this.LoadRequestStatusFilter().then(function () {\n if (Account.Session.employeeFilter != null) {\n _this.setFilterOnLastEmployee(Account.Session.employeeFilter);\n }\n else {\n _this.CheckIfUserHasClients();\n }\n });\n this.resetSortDirection();\n this.employeeSearch();\n };\n InformationRequestViewModel.prototype.toggleFilter = function () {\n this.eeFilterShow(!this.eeFilterShow());\n if (this.eeFilterShow()) {\n document.getElementById(\"empsearch\").focus();\n }\n };\n InformationRequestViewModel.prototype.toggleRequestFilter = function () {\n this.requestFilterShow(!this.requestFilterShow());\n };\n InformationRequestViewModel.prototype.showRequestFilter = function () {\n this.requestFilterShow(true);\n };\n InformationRequestViewModel.prototype.showTaxYearFilter = function () {\n this.taxYearFilterShow(true);\n if ($(\"#dropdownlist-container-child\").attr('style')) {\n $(\"#dropdownlist-container-child\").removeAttr(\"style\");\n }\n };\n InformationRequestViewModel.prototype.removeText = function () {\n this.filterEmployee(null);\n this.eeFilterSearch(\"\");\n this.employeeId = \"\";\n this.selectedEmp = \"\";\n this.filteredEmployees(null);\n this.getClients();\n this.showClearInput(false);\n document.getElementById(\"empsearch\").focus();\n };\n InformationRequestViewModel.prototype.ClearFilter = function () {\n this.filterEmployee(null);\n this.eeFilterSearch(\"\");\n this.employeeId = \"\";\n this.filteredEmployees(null);\n this.showClearInput(false);\n this.selectedEmp = \"\";\n Account.Session.employeeFilter = \"\";\n this.getClients();\n };\n InformationRequestViewModel.prototype.ClearRequestFilter = function () {\n this.filterStatus(null);\n this.eeFilterSearch(\"\");\n this.selectedStatusId = \"\";\n Account.Session.requestStatusFilter = \"\";\n this.getClients();\n };\n InformationRequestViewModel.prototype.ClearYearFilter = function () {\n this.checkAllYears(true);\n this.numberOfItemSelected('');\n this.SelectAll(true);\n this.onBlurFuncForTaxYear();\n };\n InformationRequestViewModel.prototype.onBlurFunc = function (data, event) {\n console.log(event);\n var blockToggle = false;\n if (event.relatedTarget && event.relatedTarget.className == \"information-request-eefilter-result\") {\n var itemSelected = event.relatedTarget.innerText;\n var filteredEmpsArray = this.filteredEmployees();\n var selectedEmp = filteredEmpsArray.filter(function (k) { return k.name === itemSelected; })[0];\n this.selectEmployee(selectedEmp, data);\n }\n else if (event.relatedTarget && event.relatedTarget.className == \"information-request-eefilter-clear\") {\n this.removeText();\n }\n else if (this.eeFilterSearch() != this.selectedEmp) {\n this.ClearFilter();\n this.toggleFilter();\n }\n else if (event.relatedTarget && event.relatedTarget.className == \"information-request-cursor-pointer\") {\n this.eeFilterShow(true);\n }\n else\n this.toggleFilter();\n };\n InformationRequestViewModel.prototype.onBlurFuncForStatus = function (data, event) {\n if (!(event.relatedTarget && event.relatedTarget.className == \"information-request-eefilter-result\"))\n this.toggleRequestFilter();\n };\n InformationRequestViewModel.prototype.onBlurFuncForTaxYear = function () {\n this.taxYearFilterShow(false);\n };\n InformationRequestViewModel.prototype.LoadRequestStatusFilter = function () {\n var _this = this;\n var defer = Q.defer();\n this.informationrequestService.GetAllRequestStauses()\n .then(function (response) {\n if (response.length != 0) {\n _this.requestStatuses(response);\n // Check for Request status filter from querystring\n var statusQueryString = constants.QueryString.getValueByParameterName('status');\n if (!String.isNullOrEmpty(statusQueryString)) {\n var requestStatusOption = ko.utils.arrayFirst(_this.requestStatuses(), function (item) {\n return item.statusName === statusQueryString;\n });\n Account.Session.requestStatusFilter = (requestStatusOption !== undefined && requestStatusOption !== null) ? requestStatusOption.id : \"\";\n }\n if (!String.isNullOrEmpty(Account.Session.requestStatusFilter)) {\n var selectedFilter = $.grep(_this.requestStatuses(), function (rs) { return rs.id == Account.Session.requestStatusFilter; });\n if (selectedFilter != null && selectedFilter.length > 0)\n _this.filterStatus(selectedFilter[0]);\n }\n }\n defer.resolve(true);\n })\n .fail(function () {\n defer.reject(false);\n });\n return defer.promise;\n };\n InformationRequestViewModel.prototype.GetUserId = function () {\n var token = Account.Session.accessToken;\n var base64Url = token.split('.')[1];\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n var jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n var jwt = JSON.parse(jsonPayload);\n var userId = \"http://claims.addison.de/identityguid\";\n return jwt[userId];\n };\n InformationRequestViewModel.prototype.CheckIfUserHasClients = function () {\n var _this = this;\n var userId = this.GetUserId();\n this.informationrequestService.GetClientForUser(userId, this.filterYears).then(function (response) {\n if (response.length != 0) {\n _this.informationrequestService.GetEmployeeById(userId)\n .then(function (secondResponse) {\n if (secondResponse != null) {\n var employeeName = secondResponse[0].name;\n _this.filterEmployee(secondResponse[0]);\n _this.eeFilterSearch(employeeName);\n _this.selectedEmp = employeeName;\n _this.filteredEmployees(null);\n if (employeeName.length > 0) {\n _this.showClearInput(true);\n }\n _this.employeeId = userId;\n _this.getClients();\n }\n });\n }\n else {\n _this.employeeId = \"\";\n _this.filterEmployee(null);\n _this.filteredEmployees(null);\n _this.getClients();\n }\n });\n };\n InformationRequestViewModel.prototype.setFilterOnLastEmployee = function (id) {\n var _this = this;\n if (String.isNullOrEmpty(id)) {\n this.employeeId = \"\";\n this.showClearInput(false);\n this.getClients();\n }\n else {\n this.informationrequestService.GetEmployeeById(id)\n .then(function (response) {\n if (response != null) {\n var employeeName = response[0].name;\n _this.filterEmployee(response[0]);\n _this.eeFilterSearch(employeeName);\n _this.selectedEmp = employeeName;\n _this.filteredEmployees(null);\n _this.employeeId = id;\n _this.showClearInput(true);\n _this.getClients();\n _this.employeeSearch(false);\n }\n });\n }\n };\n InformationRequestViewModel.prototype.selectRequestStatus = function (status, parent) {\n this.resetPagination();\n parent.filterStatus(status);\n this.selectedStatusId = status.id;\n Account.Session.requestStatusFilter = status.id;\n parent.requestFilterShow(false);\n this.getClients();\n };\n InformationRequestViewModel.prototype.selectEmployee = function (employee, parent) {\n this.resetPagination();\n parent.filterEmployee(employee);\n this.employeeId = employee.id;\n Account.Session.employeeFilter = this.employeeId;\n parent.eeFilterShow(false);\n this.getClients();\n var name = employee.name;\n parent.eeFilterSearch(name);\n this.selectedEmp = name;\n parent.filteredEmployees(null);\n this.employeeSearch(false);\n };\n InformationRequestViewModel.prototype.employeeSearch = function (showList) {\n var _this = this;\n if (showList === void 0) { showList = true; }\n var filter = this.eeFilterSearch();\n if (filter.length > 0) {\n this.showClearInput(true);\n }\n else {\n this.showClearInput(false);\n }\n if (filter.toString().replace(\" \", \"\").length >= 3) {\n this.informationrequestService.GetEmployeesFiltered(this.skipCount, this.takeCount, filter).then(function (response) {\n if (showList) {\n var removeEmptySpaceEmps = response.map(function (k) {\n if (k.name[0] == \" \") {\n k.name = k.name.trim();\n }\n return k;\n });\n _this.filteredEmployees(removeEmptySpaceEmps);\n }\n else {\n _this.filteredEmployees(null);\n }\n });\n }\n else {\n this.filteredEmployees(null);\n }\n return true;\n };\n InformationRequestViewModel.prototype.getClients = function () {\n var _this = this;\n if (this.filterYears != null && this.filterYears != \"\") {\n if (!String.isNullOrEmpty(Account.Session.requestStatusFilter)) {\n this.selectedStatusId = Account.Session.requestStatusFilter;\n }\n this.informationrequestService.GetClientsSortedByUser(this.employeeId, this.skipCount, this.takeCount, this.sortColumn, this.sortDirection(), this.searchInput, this.filterYears, this.selectedStatusId)\n .then(function (response) {\n if (response != null) {\n _this.clients = [];\n _this.totalRecords = response.totalRecords;\n var start = _this.totalRecords != 0 ? _this.skipCount + 1 : _this.skipCount;\n var end = (_this.skipCount + _this.takeCount) > _this.totalRecords ? _this.totalRecords : (_this.skipCount + _this.takeCount);\n _this.paginationText(start + \" - \" + end + \" / \" + _this.totalRecords);\n for (var k = 0; k < response.records.length; k++) {\n var client1 = new VM.Client();\n client1.clientName = response.records[k].clientName;\n client1.clientCode = response.records[k].clientCode;\n client1.approvedCount = response.records[k].approvedCount;\n client1.unapprovedCount = response.records[k].unapprovedCount;\n client1.clientCompleted = response.records[k].clientCompleted;\n client1.requestStatusId = response.records[k].requestStatusId;\n client1.requestStatusName = response.records[k].requestStatusName;\n client1.latestComments = response.records[k].latestComments;\n client1.index(k + 1);\n client1.clientGuid = response.records[k].clientGuid;\n client1.taxYear = response.records[k].taxYear;\n client1.taxYearDisplay = response.records[k].taxYear - 1 + \"/\" + response.records[k].taxYear;\n client1.dateReceived = response.records[k].received;\n client1.progress = client1.unapprovedCount + \" incomplete \";\n client1.HmrcData = response.records.hmrcData;\n client1.isRead = response.records[k].isRead;\n var date = new Date(Date.parse(response.records[k].received));\n client1.received = date.toLocaleString('en-GB');\n client1.setRequestStatusIconPath();\n _this.clients.push(client1);\n }\n _this.showLoadingSpinner(false);\n if (end == _this.totalRecords)\n _this.allClientsRecived = true;\n else\n _this.allClientsRecived = false;\n if (response.isAnyRequestToReview)\n _this.isAnyRequestToReview(true);\n else\n _this.isAnyRequestToReview(false);\n if (response.displayMessageFeatureInDDR)\n _this.displayMessageFeatureInDDR(true);\n else\n _this.displayMessageFeatureInDDR(false);\n if (_this.clients.length == 0)\n _this.noClientsIcon(true);\n else\n _this.noClientsIcon(false);\n if (_this.clients.length == 0)\n _this.enableExportToExcel(false);\n else\n _this.enableExportToExcel(true);\n }\n }).fail(function (response) {\n _this.noClientsIcon(true);\n });\n }\n else {\n if (this.filterYears == \"\") {\n this.clients = [];\n this.noClientsIcon(true);\n this.enableExportToExcel(false);\n //Added below code for resetting paginationText when no data found \n this.paginationText(0 + \" - \" + 0 + \" / \" + 0);\n }\n }\n };\n InformationRequestViewModel.prototype.exportToExcel = function () {\n var _this = this;\n this.skipCount = 0;\n this.takeCount = 100000;\n var date = new Date();\n var month = date.getUTCMonth() + 1; //months from 1-12\n var day = date.getUTCDate();\n var year = date.getUTCFullYear();\n var newdate = day + \"-\" + month + \"-\" + year;\n var email = Account.Principal.current.loginName;\n var userName = email.substring(0, email.indexOf('@'));\n var downloadFileName = userName + \"_\" + newdate + \".xlsx\";\n if (!this.displayLoading())\n this.displayLoading(true);\n this.informationrequestService.ExportToExcel(this.employeeId, this.skipCount, this.takeCount, this.sortColumn, this.sortDirection(), this.searchInput, this.filterYears, this.selectedStatusId)\n .then(function (response) {\n if (response != null) {\n var baseobject = _this.base64ToBlob(response, \"application/xlsx\", 512);\n var url = window.URL.createObjectURL(baseobject);\n var a = document.createElement('a');\n a.style.display = 'none';\n a.href = url;\n a.download = downloadFileName;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(url);\n _this.displayLoading(false);\n }\n else {\n _this.toastDCService.constructDCToast('fail', \"Error while generating excel.\");\n _this.displayLoading(false);\n }\n }).fail(function (response) {\n _this.toastDCService.constructDCToast('fail', \"Error while generating excel.\");\n _this.displayLoading(false);\n });\n };\n InformationRequestViewModel.prototype.base64ToBlob = function (base64, mimetype, slicesize) {\n mimetype = mimetype || '';\n slicesize = slicesize || 512;\n var bytechars = atob(base64);\n var bytearrays = [];\n for (var offset = 0; offset < bytechars.length; offset += slicesize) {\n var slice = bytechars.slice(offset, offset + slicesize);\n var bytenums = new Array(slice.length);\n for (var i = 0; i < slice.length; i++) {\n bytenums[i] = slice.charCodeAt(i);\n }\n var bytearray = new Uint8Array(bytenums);\n bytearrays[bytearrays.length] = bytearray;\n }\n return new Blob(bytearrays, { type: mimetype });\n };\n // #region sort\n InformationRequestViewModel.prototype.sortOnDate = function () {\n this.sortColumn = \"Received\";\n if (this.sortDirectionDate() == \"desc\") {\n this.sortDirectionDate(\"\");\n return;\n }\n else if (this.sortDirectionDate() == \"\") {\n this.sortDirectionDate(\"asc\");\n }\n else if (this.sortDirectionDate() == \"asc\") {\n this.sortDirectionDate(\"desc\");\n }\n this.sortDirection(this.sortDirectionDate().toUpperCase());\n this.resetPagination();\n this.getClients();\n this.sortDirectionAdvisorApproved(\"\");\n this.sortDirectionClientProvided(\"\");\n this.sortDirectionRequestStatus(\"\");\n this.sortDirectionName(\"\");\n this.sortDirectionClientCode(\"\");\n this.sortDirectionTaxYear(\"\");\n };\n InformationRequestViewModel.prototype.sortOnClientName = function () {\n this.sortColumn = \"ClientName\";\n if (this.sortDirectionName() == \"desc\") {\n this.sortDirectionName(\"\");\n return;\n }\n else if (this.sortDirectionName() == \"\") {\n this.sortDirectionName(\"asc\");\n }\n else if (this.sortDirectionName() == \"asc\") {\n this.sortDirectionName(\"desc\");\n }\n this.sortDirection(this.sortDirectionName().toUpperCase());\n this.resetPagination();\n this.getClients();\n this.sortDirectionDate(\"\");\n this.sortDirectionAdvisorApproved(\"\");\n this.sortDirectionClientProvided(\"\");\n this.sortDirectionRequestStatus(\"\");\n this.sortDirectionClientCode(\"\");\n this.sortDirectionTaxYear(\"\");\n };\n InformationRequestViewModel.prototype.sortOnAdvisorApproved = function () {\n this.sortColumn = \"UnapprovedCount\";\n if (this.sortDirectionAdvisorApproved() == \"desc\") {\n this.sortDirectionAdvisorApproved(\"\");\n return;\n }\n else if (this.sortDirectionAdvisorApproved() == \"\") {\n this.sortDirectionAdvisorApproved(\"asc\");\n }\n else if (this.sortDirectionAdvisorApproved() == \"asc\") {\n this.sortDirectionAdvisorApproved(\"desc\");\n }\n this.sortDirection(this.sortDirectionAdvisorApproved().toUpperCase());\n this.resetPagination();\n this.getClients();\n this.sortDirectionDate(\"\");\n this.sortDirectionName(\"\");\n this.sortDirectionClientCode(\"\");\n this.sortDirectionTaxYear(\"\");\n this.sortDirectionClientProvided(\"\");\n this.sortDirectionRequestStatus(\"\");\n };\n InformationRequestViewModel.prototype.sortOnClientProvided = function () {\n this.sortColumn = \"ClientCompleted\";\n if (this.sortDirectionClientProvided() == \"desc\") {\n this.sortDirectionClientProvided(\"\");\n return;\n }\n else if (this.sortDirectionClientProvided() == \"\") {\n this.sortDirectionClientProvided(\"asc\");\n }\n else if (this.sortDirectionClientProvided() == \"asc\") {\n this.sortDirectionClientProvided(\"desc\");\n }\n this.sortDirection(this.sortDirectionClientProvided().toUpperCase());\n this.resetPagination();\n this.getClients();\n this.sortDirectionDate(\"\");\n this.sortDirectionName(\"\");\n this.sortDirectionClientCode(\"\");\n this.sortDirectionTaxYear(\"\");\n this.sortDirectionAdvisorApproved(\"\");\n this.sortDirectionRequestStatus(\"\");\n };\n InformationRequestViewModel.prototype.sortOnRequestStatus = function () {\n this.sortColumn = \"RequestStatus\";\n if (this.sortDirectionRequestStatus() == \"desc\") {\n this.sortDirectionRequestStatus(\"\");\n return;\n }\n else if (this.sortDirectionRequestStatus() == \"\") {\n this.sortDirectionRequestStatus(\"asc\");\n }\n else if (this.sortDirectionRequestStatus() == \"asc\") {\n this.sortDirectionRequestStatus(\"desc\");\n }\n this.sortDirection(this.sortDirectionRequestStatus().toUpperCase());\n this.resetPagination();\n this.getClients();\n this.sortDirectionDate(\"\");\n this.sortDirectionName(\"\");\n this.sortDirectionClientCode(\"\");\n this.sortDirectionTaxYear(\"\");\n this.sortDirectionAdvisorApproved(\"\");\n this.sortDirectionClientProvided(\"\");\n };\n InformationRequestViewModel.prototype.sortOnClientCode = function () {\n this.sortColumn = \"ClientCode\";\n if (this.sortDirectionClientCode() == \"desc\") {\n this.sortDirectionClientCode(\"\");\n return;\n }\n else if (this.sortDirectionClientCode() == \"\") {\n this.sortDirectionClientCode(\"asc\");\n }\n else if (this.sortDirectionClientCode() == \"asc\") {\n this.sortDirectionClientCode(\"desc\");\n }\n this.sortDirection(this.sortDirectionClientCode().toUpperCase());\n this.resetPagination();\n this.getClients();\n this.sortDirectionDate(\"\");\n this.sortDirectionName(\"\");\n this.sortDirectionAdvisorApproved(\"\");\n this.sortDirectionClientProvided(\"\");\n this.sortDirectionRequestStatus(\"\");\n this.sortDirectionTaxYear(\"\");\n };\n InformationRequestViewModel.prototype.sortOnTaxYear = function () {\n this.sortColumn = \"TaxYear\";\n if (this.sortDirectionTaxYear() == \"desc\") {\n this.sortDirectionTaxYear(\"\");\n return;\n }\n else if (this.sortDirectionTaxYear() == \"\") {\n this.sortDirectionTaxYear(\"asc\");\n }\n else if (this.sortDirectionTaxYear() == \"asc\") {\n this.sortDirectionTaxYear(\"desc\");\n }\n this.sortDirection(this.sortDirectionTaxYear().toUpperCase());\n this.resetPagination();\n this.getClients();\n this.sortDirectionDate(\"\");\n this.sortDirectionName(\"\");\n this.sortDirectionAdvisorApproved(\"\");\n this.sortDirectionClientProvided(\"\");\n this.sortDirectionRequestStatus(\"\");\n this.sortDirectionClientCode(\"\");\n };\n InformationRequestViewModel.prototype.resetSortDirection = function () {\n this.sortDirectionDate(\"\");\n this.sortDirectionName(\"\");\n this.sortDirectionAdvisorApproved(\"\");\n this.sortDirectionClientProvided(\"\");\n this.sortDirectionRequestStatus(\"\");\n this.sortDirectionClientCode(\"\");\n this.sortDirectionTaxYear(\"\");\n };\n // #endregion\n // #region filter\n InformationRequestViewModel.prototype.populateTaxYearFilterList = function () {\n var _this = this;\n var allFilters = new Array();\n this.filters = [];\n this.filterYears = \"\";\n this.selectedFilters.removeAll();\n var date = new Date();\n for (var year = 2018; year <= date.getFullYear() + 2; year++) {\n var filter = new VM.FilterTaxYear();\n filter.text = (year - 1) + \"/\" + year;\n this.filters.push(filter);\n allFilters.push(filter);\n this.filterYears = this.filterYears + year;\n }\n this.filters.sort(function (n1, n2) { return _this.sortArrayDesc(n1, n2); });\n allFilters.sort(function (n1, n2) { return _this.sortArrayDesc(n1, n2); });\n this.selectedFilters = ko.observableArray(allFilters);\n };\n InformationRequestViewModel.prototype.filterClients = function (newSelectedFilters) {\n this.filterYears = \"\";\n if (newSelectedFilters.length > 0)\n this.numberOfItemSelected(newSelectedFilters.length.toString() + \" Year(s)\");\n else\n this.numberOfItemSelected(\"Select Year(s)\");\n for (var i = 0; i < newSelectedFilters.length; i++) {\n this.filterYears = this.filterYears + newSelectedFilters[i].text.substr(5, 4);\n }\n this.resetPagination();\n if (newSelectedFilters.length == 0)\n this.showLoadingSpinner(false);\n this.getClients();\n };\n InformationRequestViewModel.prototype.FilterAllTaxYearsPresent = function () {\n return this.SelectAll();\n };\n InformationRequestViewModel.prototype.togleAllYears = function () {\n if (this.checkAllYears())\n this.SelectAll();\n this.checkAllYears(!this.checkAllYears());\n };\n // #endregion\n // #region search\n InformationRequestViewModel.prototype.searchClients = function () {\n this.resetPagination();\n this.getClients();\n };\n // #endregion\n // #region pagination\n InformationRequestViewModel.prototype.nextPage = function () {\n if (!this.allClientsRecived) {\n this.skipCount = this.skipCount + this.takeCount;\n this.getNextClientsSpiner(true);\n this.getClients();\n }\n this.getNextClientsSpiner(false);\n };\n InformationRequestViewModel.prototype.previousPage = function () {\n if (this.skipCount - this.takeCount >= 0) {\n this.allClientsRecived = false;\n this.skipCount = this.skipCount - this.takeCount;\n this.getNextClientsSpiner(true);\n this.getClients();\n }\n this.getNextClientsSpiner(false);\n };\n InformationRequestViewModel.prototype.firstPage = function () {\n this.resetPagination();\n this.getClients();\n this.getNextClientsSpiner(false);\n this.showLoadingSpinner(false);\n };\n InformationRequestViewModel.prototype.lastPage = function () {\n if (!this.allClientsRecived) {\n this.skipCount = this.totalRecords - (this.totalRecords % this.takeCount);\n this.getNextClientsSpiner(true);\n this.getClients();\n }\n this.getNextClientsSpiner(false);\n };\n InformationRequestViewModel.prototype.resetPagination = function () {\n this.noClientsIcon(false);\n this.showLoadingSpinner(true);\n this.allClientsRecived = false;\n this.skipCount = 0;\n this.takeCount = 100;\n };\n // #endregion\n InformationRequestViewModel.prototype.rowClicked = function (client) {\n var params = [];\n params.push(new Navigator.NavigationParameter(\"clientGuid\", client.clientGuid));\n params.push(new Navigator.NavigationParameter(\"taxYear\", client.taxYear));\n Navigator.navigateTo(\"informationrequest\", \"clientDetails\", \"/clientDetails\", null, params);\n };\n InformationRequestViewModel.prototype.sortArrayDesc = function (n1, n2) {\n if (n1.text > n2.text) {\n return -1;\n }\n if (n1.text < n2.text) {\n return 1;\n }\n return 0;\n };\n InformationRequestViewModel.prototype.mouseOverRoot = function (section) {\n section.mouseOver(true);\n };\n InformationRequestViewModel.prototype.mouseOutRoot = function (section) {\n section.mouseOver(false);\n };\n return InformationRequestViewModel;\n }(common.ListViewModelBase));\n var instance = new InformationRequestViewModel();\n return instance;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/informationrequest/viewmodels/spousePartnerInfo',[\"require\", \"exports\", \"plugins/dialog\", \"common/viewmodelbase\", \"areas/informationrequest/models/bindable\"], function (require, exports, dialog, common, VM) {\n \"use strict\";\n var SpouseInfoViewModel = (function (_super) {\n __extends(SpouseInfoViewModel, _super);\n function SpouseInfoViewModel() {\n _super.call(this);\n this.spouseInfo = new VM.SpouseInfo();\n }\n SpouseInfoViewModel.prototype.onActivated = function (context) {\n this.dontShow = false;\n this.spouseInfo = context.callingParameters.get(\"unknown\");\n if (this.spouseInfo.dom != \"-\") {\n var date = new Date(Date.parse(this.spouseInfo.dom.toString()));\n this.doMString = date.toLocaleDateString('en-GB');\n }\n else\n this.doMString = \"-\";\n if (this.spouseInfo.spouseDOB != \"-\") {\n date = new Date(Date.parse(this.spouseInfo.spouseDOB.toString()));\n this.dobString = date.toLocaleDateString('en-GB');\n }\n else\n this.dobString = \"-\";\n if (this.spouseInfo.spouseNINO != \"-\") {\n this.ninoString = this.spouseInfo.spouseNINO.replace(/(.{2})/g, \"$1 \");\n }\n else\n this.ninoString = \"-\";\n };\n SpouseInfoViewModel.prototype.closeDialog = function () {\n dialog.close(this);\n };\n return SpouseInfoViewModel;\n }(common.ListViewModelBase));\n var instance = new SpouseInfoViewModel();\n return instance;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/informationrequest/viewmodels/viewattachments',[\"require\", \"exports\", \"plugins/dialog\", \"common/viewmodelbase\", \"areas/informationrequest/models/bindable\", \"areas/informationrequest/service/informationrequest-service\", \"services/settings\", \"models/account\", \"areas/informationrequest/service/toastDCService\"], function (require, exports, dialog, common, VM, service, settings, Account, toastService) {\n \"use strict\";\n var ViewAttachmentsViewModel = (function (_super) {\n __extends(ViewAttachmentsViewModel, _super);\n function ViewAttachmentsViewModel() {\n _super.call(this);\n this.attachments = new Array();\n this.selectedAttachments = ko.observableArray([]);\n this.files = new Array();\n this.newAttachments = new Array();\n this.informationrequestService = new service.InformationRequestService();\n this.toastDCService = new toastService.ToastDCService();\n ko.track(this, [\"attachments\", \"files\", \"newAttachments\"]);\n }\n ViewAttachmentsViewModel.prototype.onActivated = function (context) {\n var self = this;\n var parent = context.callingParameters.get(\"unknown\");\n var sectionGuid = parent.selectedSection.sectionGuid;\n self.advisorName = Account.Principal.current.identityName;\n self.organizationID = parent.activeOrganization.organizationId;\n self.attachments.removeAll();\n self.newAttachments.removeAll();\n self.files.removeAll();\n self.displayAttachments(parent, sectionGuid);\n self.onFileSelectedEvent = function (vm, evt) {\n ko.utils.arrayForEach(evt.target.files, function (file) {\n self.informationrequestService.uploadAttachment(file, parent.clientGuid, parent.taxYear, sectionGuid, 1, 0).then(function (response) {\n if (response.statusCode == 400 && response.reasonPhrase == \"Bad Request\") {\n self.toastDCService.constructDCToast('fail', \"Upload failed. Unsupported File Extension.\");\n }\n else if (response.statusCode == 406 && response.reasonPhrase == \"Not Acceptable\") {\n self.toastDCService.constructDCToast('info', \"Our systems has detected that file(s) are harmful and have not been uploaded. Please check and reattach.\");\n }\n else if (response.statusCode == 200 && response.reasonPhrase == \"OK\") {\n self.toastDCService.constructDCToast('success', \"File uploaded.\");\n }\n else if (response.statusCode == 500 && response.reasonPhrase == \"Internal Server Error\") {\n self.toastDCService.constructDCToast('fail', \"File upload failed.\");\n }\n else {\n self.toastDCService.constructDCToast('info', JSON.stringify(response));\n }\n console.log(JSON.stringify(response));\n self.displayAttachments(parent, sectionGuid);\n }).fail(function (reason) {\n if (reason.status == 406 && reason.statusText == \"Not Acceptable\") {\n self.toastDCService.constructDCToast('info', \"Our systems has detected that file(s) are harmful and have not been uploaded. Please check and reattach.\");\n }\n else {\n self.toastDCService.constructDCToast('fail', \"We were unable to upload your file. Your data remains unchanged.\");\n }\n });\n });\n };\n this.deleteAttachment = function () {\n var _this = this;\n for (var i = 0; i < self.attachments.length; i++) {\n if (self.attachments[i].shouldDelete) {\n self.informationrequestService.deleteAttachment(self.attachments[i].attachmentGuid, parent.taxYear, parent.clientGuid, self.attachments[i].fullName, sectionGuid).then(function (response) {\n self.displayAttachments(parent, sectionGuid);\n $(\"#dialogDeleteAttachmentId\").modal(\"hide\");\n }).fail(function (reason) {\n _this.toastDCService.constructDCToast('info', reason.toString());\n });\n }\n }\n };\n };\n ViewAttachmentsViewModel.prototype.DoSomething = function (self, newSelectedFilters) {\n };\n ViewAttachmentsViewModel.prototype.closeDialog = function () {\n dialog.close(this);\n };\n ViewAttachmentsViewModel.prototype.closeDeleteDialog = function () {\n for (var i = 0; i < this.attachments.length; i++) {\n this.attachments[i].shouldDelete = false;\n }\n $(\"#dialogDeleteAttachmentId\").modal(\"hide\");\n };\n ViewAttachmentsViewModel.prototype.showDeleteDialog = function (attachment) {\n attachment.shouldDelete = true;\n ;\n $(\"#dialogDeleteAttachmentId\").modal(\"show\");\n };\n ViewAttachmentsViewModel.prototype.displayAttachments = function (parent, sectionGuid) {\n var _this = this;\n var self = this;\n self.informationrequestService.getAttachment(sectionGuid).then(function (response) {\n self.files.removeAll();\n self.attachments.removeAll();\n for (var i = 0; i < response.length; i++) {\n var attachment = response[i];\n self.files.push(attachment);\n }\n parent.selectedSection.attachmentsCount(self.files.length);\n for (var i = 0; i < self.files.length; i++) {\n var item = new VM.Attachment;\n item.attachmentGuid = self.files[i].attachmentGuid;\n item.shouldDelete = false;\n if (self.files[i].displayName.length > 25) {\n item.displayName = self.files[i].displayName.slice(0, 22) + \"...\";\n item.fullName = self.files[i].displayName;\n }\n else {\n item.displayName = self.files[i].displayName;\n item.fullName = self.files[i].displayName;\n }\n if (self.files[i].userName != null) {\n if (self.files[i].userName.length > 27) {\n item.displayUserName = self.files[i].userName.slice(0, 24) + \"...\";\n item.userName = self.files[i].userName;\n }\n else {\n item.displayUserName = self.files[i].userName;\n item.userName = self.files[i].userName;\n }\n }\n if (self.files[i].dateAdded != null) {\n var date = new Date(self.files[i].dateAdded);\n item.dateAdded = date.toLocaleString(\"en-GB\");\n }\n if (item.userName == self.advisorName)\n item.deleteAttachmentVisible = true;\n else\n item.deleteAttachmentVisible = false;\n var baseUrl = settings.Settings.environment.getCustomValue(\"CCHDataCollection\");\n item.path = baseUrl + \"api/download/Get/DataCollection/\" + parent.clientGuid + \"/\" + sectionGuid + \"/\" + item.fullName + \"/\" + self.organizationID;\n _this.attachments.push(item);\n }\n if (_this.selectedAttachments().length != 0)\n _this.selectedAttachments.removeAll();\n _this.selectedAttachments.subscribe(function (newSelectedFilters) {\n self.DoSomething(self, newSelectedFilters);\n });\n });\n };\n return ViewAttachmentsViewModel;\n }(common.ListViewModelBase));\n var instance = new ViewAttachmentsViewModel();\n return instance;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/kb/viewmodels/index',[\"require\", \"exports\", \"common/viewmodelbase\", \"models/portal\"], function (require, exports, Common, Portal) {\n \"use strict\";\n var KBViewModel = (function (_super) {\n __extends(KBViewModel, _super);\n function KBViewModel() {\n _super.call(this);\n this.breadCrumb = new Portal.ModuleBreadCrumbItemHolder();\n this.knowledgeBaseUrl = 'https://wkuktaa.secure.force.com/knowledgebase/pkb_Home?l=en_US&c=TAA%3ACCH_OneClick';\n this.title = \"knowledgeBase\";\n ko.track(this, [\"knowledgeBaseUrl\"]);\n }\n KBViewModel.prototype.onActivated = function (context) {\n };\n return KBViewModel;\n }(Common.ViewModelBase));\n var instance = new KBViewModel();\n return instance;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/logout/viewmodels/index',[\"require\", \"exports\", \"common/viewmodelbase\", \"models/portal\"], function (require, exports, Common, Portal) {\n \"use strict\";\n var LogoutViewModel = (function (_super) {\n __extends(LogoutViewModel, _super);\n function LogoutViewModel() {\n _super.call(this);\n }\n LogoutViewModel.prototype.onActivated = function (context) {\n var shell = Portal.Context.shell;\n var userManager = shell.userManager;\n userManager.signOut();\n };\n return LogoutViewModel;\n }(Common.ViewModelBase));\n var instance = new LogoutViewModel();\n return instance;\n});\n\n", "define('areas/navigationmanager/commands/creategroupcommand',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var CreateGroupCommand = (function () {\n function CreateGroupCommand(process) {\n this._createGroup = process;\n }\n CreateGroupCommand.prototype.execute = function (symbol) {\n this._createGroup.process(symbol);\n };\n return CreateGroupCommand;\n }());\n return CreateGroupCommand;\n});\n\n", "define('areas/navigationmanager/commands/createnavigationnodecommand',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var CreateNavigationNodeCommand = (function () {\n function CreateNavigationNodeCommand(process) {\n this._createNode = process;\n }\n CreateNavigationNodeCommand.prototype.execute = function (symbol) {\n this._createNode.process(symbol);\n };\n return CreateNavigationNodeCommand;\n }());\n return CreateNavigationNodeCommand;\n});\n\n", "define('areas/navigationmanager/commands/movenavigationnodecommand',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var MoveNavigationNodeCommand = (function () {\n function MoveNavigationNodeCommand(process) {\n this._moveNode = process;\n }\n MoveNavigationNodeCommand.prototype.execute = function (symbol) {\n this._moveNode.process(symbol);\n };\n return MoveNavigationNodeCommand;\n }());\n return MoveNavigationNodeCommand;\n});\n\n", "define('areas/navigationmanager/commands/removegroupcommand',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var RemoveGroupCommand = (function () {\n function RemoveGroupCommand(process) {\n this._removeGroup = process;\n }\n RemoveGroupCommand.prototype.execute = function (symbol) {\n this._removeGroup.process(symbol);\n };\n return RemoveGroupCommand;\n }());\n return RemoveGroupCommand;\n});\n\n", "define('areas/navigationmanager/commands/removenavigationnodecommand',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var RemoveNavigationNodeCommand = (function () {\n function RemoveNavigationNodeCommand(process) {\n this._removeNode = process;\n }\n RemoveNavigationNodeCommand.prototype.execute = function (symbol) {\n this._removeNode.process(symbol);\n };\n return RemoveNavigationNodeCommand;\n }());\n return RemoveNavigationNodeCommand;\n});\n\n", "define('areas/navigationmanager/commands/savenavigationmodelcommand',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var SaveNavigationModelCommand = (function () {\n function SaveNavigationModelCommand(process) {\n this._part = process;\n }\n SaveNavigationModelCommand.prototype.execute = function (symbol) {\n this._part.process(symbol);\n };\n return SaveNavigationModelCommand;\n }());\n return SaveNavigationModelCommand;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/knockout.es5/knockout.es5.d.ts\" />\ndefine('areas/navigationmanager/models/bindable',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var NavigationVM = (function () {\n function NavigationVM() {\n ko.track(this);\n }\n return NavigationVM;\n }());\n exports.NavigationVM = NavigationVM;\n var NavigationNodeVM = (function () {\n function NavigationNodeVM() {\n this.groups = [];\n this.children = [];\n ko.track(this, [\"type\", \"name\", \"template\", \"datakey\", \"index\", \"icon\", \"color\", \"useImage\", \"imagePath\", \"groupId\", \"shopId\", \"children\", \"defaultData\", \"groups\", \"imagePathSearchbar\", \"disableNavigateToFirstChild\", \"key\", \"showOnMobile\", \"openLinkInCurrentTab\", \"openInDialog\", \"permissionId\"]);\n }\n NavigationNodeVM.prototype.getState = function () {\n var errors = new ErrorModel();\n if (!this.groupId)\n errors.addError(\"The 'groupId' is required.\");\n return errors;\n };\n return NavigationNodeVM;\n }());\n exports.NavigationNodeVM = NavigationNodeVM;\n var NavigationGroupVM = (function () {\n function NavigationGroupVM() {\n ko.track(this, [\"key\", \"title\", \"description\", \"index\", \"icon\", \"useImage\", \"imagePath\", \"showAddWidgets\", \"autoSelectIndex\", \"hideFromSidenav\", \"alwaysShowTiles\", \"showOnMobile\"]);\n }\n NavigationGroupVM.createDefaultGroup = function () {\n var group = new NavigationGroupVM();\n group.title = \"Default Group\";\n group.key = \"Default-Key\";\n group.description = \"Group Description...\";\n group.index = -1;\n group.autoSelectIndex = -1;\n group.icon = \"fa-youtube\";\n group.useImage = false;\n group.imagePath = null;\n group.showAddWidgets = false;\n group.hideFromSidenav = false;\n group.alwaysShowTiles = false;\n group.showOnMobile = false;\n return group;\n };\n return NavigationGroupVM;\n }());\n exports.NavigationGroupVM = NavigationGroupVM;\n var ErrorModel = (function () {\n function ErrorModel() {\n this.errorMessages = [];\n }\n ErrorModel.prototype.getNumberOfErrors = function () {\n return this.errorMessages.length;\n };\n ErrorModel.prototype.isValid = function () {\n return this.errorMessages.length == 0;\n };\n ErrorModel.prototype.getErrors = function () {\n var result = \"\";\n this.errorMessages.forEach(function (msg) {\n result += msg;\n });\n return result;\n };\n ErrorModel.prototype.addError = function (messages) {\n messages = messages + \"\\n\";\n this.errorMessages.push(messages);\n };\n ErrorModel.prototype.addErrors = function (messages) {\n var _this = this;\n messages.forEach(function (msg) {\n msg = msg + \"\\n\";\n _this.errorMessages.push(msg);\n });\n };\n return ErrorModel;\n }());\n exports.ErrorModel = ErrorModel;\n});\n\n", "define('areas/navigationmanager/models/dto',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var Navigation = (function () {\n function Navigation() {\n }\n return Navigation;\n }());\n exports.Navigation = Navigation;\n var ModuleInfo = (function () {\n function ModuleInfo() {\n ko.track(this);\n }\n ModuleInfo.from = function (data) {\n var item = new ModuleInfo();\n item.templateId = data.templateId;\n item.uniqueItemId = data.rowKey;\n item.name = data.name;\n item.memberType = data.memberType;\n return item;\n };\n return ModuleInfo;\n }());\n exports.ModuleInfo = ModuleInfo;\n});\n\n", "define('areas/navigationmanager/services/mappings',[\"require\", \"exports\", \"areas/navigationmanager/models/bindable\"], function (require, exports, Model) {\n \"use strict\";\n var Mapper = (function () {\n function Mapper() {\n }\n Mapper.mapNavigationFromDTO = function (data) {\n var instance = new Model.NavigationVM();\n instance.id = data.id;\n instance.networkMemberId = data.networkMemberId;\n instance.organizationId = data.organizationId;\n instance.memberType = data.memberType;\n instance.name = data.name;\n instance.description = data.description;\n instance.tree = data.tree;\n instance.model = this.parseNode(data.tree, null);\n instance.raw = data;\n return instance;\n };\n Mapper.parseNode = function (source, root) {\n var _this = this;\n var node = new Model.NavigationNodeVM();\n node.type = source.data.type;\n node.name = source.data.name;\n node.template = source.data.template;\n node.datakey = source.data.datakey;\n node.index = parseInt(source.data.index);\n node.icon = source.data.icon || null;\n node.color = source.data.color || null;\n node.openInDialog = source.data.openInDialog || false;\n node.openLinkInCurrentTab = source.data.openLinkInCurrentTab || false;\n node.disableNavigateToFirstChild = source.data.disableNavigateToFirstChild || false;\n node.key = source.data.key || null;\n node.showOnMobile = source.data.showOnMobile || false;\n node.useImage = source.data.useImage || false;\n node.imagePath = source.data.imagePath || null;\n node.defaultData = source.data.defaultData || null;\n node.imagePathSearchbar = source.data.imagePathSearchbar || null;\n node.permissionId = source.data.permissionId || null;\n node.groupId = source.data.groupId == null ? \"\" : source.data.groupId.toString();\n node.parent = root;\n node.groups = this.mapGroups(source.groups);\n if (node.type === \"Sachgebiet\")\n node.dependsOn = source.data.dependsOn;\n if (node.type === \"Application\")\n node.shopId = source.data.uID;\n if (node.type === \"ApplicationLink\")\n node.route = source.data.route;\n node.raw = source;\n var childs = new Array();\n Enumerable.From(source.children)\n .ForEach(function (x) {\n childs.push(_this.parseNode(x, node));\n });\n Enumerable.From(childs).OrderBy(function (x) { return x.index; }).ForEach(function (x) { return node.children.push(x); });\n return node;\n };\n Mapper.mapGroups = function (source) {\n var _this = this;\n var result = new Array();\n Enumerable.From(source)\n .ForEach(function (gr) {\n var group = _this.parseGroup(gr);\n result.push(group);\n });\n return result;\n };\n Mapper.parseGroup = function (source) {\n var group = new Model.NavigationGroupVM();\n group.key = source.key;\n group.title = source.title;\n group.description = source.description;\n group.index = source.index;\n group.autoSelectIndex = source.autoSelectIndex;\n group.icon = source.icon || null;\n group.useImage = source.useImage || false;\n group.imagePath = source.imagePath || null;\n group.showAddWidgets = source.showAddWidgets || false;\n group.hideFromSidenav = source.hideFromSidenav || false;\n group.showOnMobile = source.showOnMobile || false;\n group.alwaysShowTiles = source.alwaysShowTiles || false;\n return group;\n };\n return Mapper;\n }());\n return Mapper;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/navigationmanager/parts/creategroup',[\"require\", \"exports\", \"common/parts\", \"areas/navigationmanager/models/bindable\", \"areas/navigationmanager/services/mappings\"], function (require, exports, Parts, Model, Mapping) {\n \"use strict\";\n var CreateGroup = (function (_super) {\n __extends(CreateGroup, _super);\n function CreateGroup(target) {\n _super.call(this);\n this._nodeAccessor = target;\n }\n CreateGroup.prototype.process = function (symbol) {\n try {\n var currentNode = this._nodeAccessor();\n // Create default group\n var defaultGroup = Model.NavigationGroupVM.createDefaultGroup();\n // Check if key of default group exist in current navigation node list\n if (Enumerable.From(currentNode.groups).FirstOrDefault(null, function (_) { return _.key == defaultGroup.key; }) !== null)\n throw new Error(\"Group with key: 'Default-Key' exist into groups list! See list of groups.\");\n // Map default group\n var group = Mapping.parseGroup(defaultGroup);\n currentNode.groups.push(group);\n this.output.call(group);\n }\n catch (error) {\n this.error.call(error);\n }\n };\n return CreateGroup;\n }(Parts.Part));\n return CreateGroup;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/navigationmanager/parts/createnavigationnode',[\"require\", \"exports\", \"common/parts\", \"areas/navigationmanager/models/bindable\", \"areas/navigationmanager/services/mappings\"], function (require, exports, Parts, Model, Mapping) {\n \"use strict\";\n var CreateNavigationNode = (function (_super) {\n __extends(CreateNavigationNode, _super);\n function CreateNavigationNode(target) {\n _super.call(this);\n this._nodeAccessor = target;\n }\n CreateNavigationNode.prototype.process = function (symbol) {\n try {\n var currentNode = this._nodeAccessor();\n // Create default group\n var defaultGroup = Model.NavigationGroupVM.createDefaultGroup();\n // Check if key of default group exist in current navigation node list\n if (Enumerable.From(currentNode.groups).FirstOrDefault(null, function (_) { return _.key == defaultGroup.key; }) == null) {\n // Map default group\n var group = Mapping.parseGroup(defaultGroup);\n currentNode.groups.push(group);\n }\n var rawNode = { data: { type: symbol, name: \"neu\", icon: \"fa-plus\", defaultData: \"\", groupId: defaultGroup.key } };\n currentNode.raw.children.push(rawNode);\n var node = Mapping.parseNode(rawNode, currentNode);\n currentNode.children.push(node);\n this.output.call(node);\n }\n catch (error) {\n this.error.call(error);\n }\n };\n return CreateNavigationNode;\n }(Parts.Part));\n return CreateNavigationNode;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/navigationmanager/parts/loadclient',[\"require\", \"exports\", \"common/parts\", \"models/socialnetwork\", \"services/httpclient\"], function (require, exports, Parts, SocialNetwork, Http) {\n \"use strict\";\n var LoadClient = (function (_super) {\n __extends(LoadClient, _super);\n function LoadClient() {\n _super.apply(this, arguments);\n }\n LoadClient.prototype.process = function (symbol) {\n var _this = this;\n var service = new Http.Channel();\n service.getData(\"/api/contact/\" + symbol, Http.ServiceTarget.portalApi)\n .then(function (data) {\n var contact = new SocialNetwork.Contact();\n contact.networkMemberId = data.networkMemberId;\n contact.organizationId = data.organizationId;\n contact.email = data.email;\n contact.name = data.name;\n contact.company = data.company;\n _this.output.call(contact);\n })\n .fail(function (error) {\n _this.error.call(error);\n });\n };\n return LoadClient;\n }(Parts.Part));\n return LoadClient;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/navigationmanager/parts/loadmodulelocks',[\"require\", \"exports\", \"common/parts\", \"services/httpclient\"], function (require, exports, Parts, Http) {\n \"use strict\";\n var LoadModuleLocks = (function (_super) {\n __extends(LoadModuleLocks, _super);\n function LoadModuleLocks() {\n _super.apply(this, arguments);\n }\n LoadModuleLocks.prototype.process = function (symbol) {\n var _this = this;\n var service = new Http.Channel();\n service.getDataAsync(\"/api/networkmember/{memberId}/locks\".replace(\"{memberId}\", symbol), Http.ServiceTarget.portalApi)\n .then(function (response) {\n _this.output.call(response);\n })\n .fail(function (error) {\n _this.error.call(error);\n });\n };\n return LoadModuleLocks;\n }(Parts.Part));\n return LoadModuleLocks;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/navigationmanager/parts/loadmodules',[\"require\", \"exports\", \"common/parts\", \"services/httpclient\", \"areas/navigationmanager/models/dto\"], function (require, exports, Parts, Http, Dto) {\n \"use strict\";\n var LoadModules = (function (_super) {\n __extends(LoadModules, _super);\n function LoadModules() {\n _super.call(this);\n }\n LoadModules.prototype.process = function (symbol) {\n var _this = this;\n var service = new Http.Channel();\n try {\n //service.getData(\"/api/modules\", Http.ServiceTarget.portalApi)\n //\t.then(data => {\n //\t\tvar result = Enumerable.From(data)\n //\t\t\t.Select(itm => Dto.ModuleInfo.from(itm))\n //\t\t\t.ToArray();\n //\t\tthis.output.call(result);\n // });\n service.getData(\"/activation/api/shop-item/all?$orderby=Name\", Http.ServiceTarget.oneClickServiceApi)\n .then(function (data) {\n var result = Enumerable.From(data)\n .Select(function (itm) { return Dto.ModuleInfo.from(itm); })\n .ToArray();\n _this.output.call(result);\n });\n }\n catch (error) {\n this.error.call(error);\n }\n };\n return LoadModules;\n }(Parts.Part));\n return LoadModules;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/navigationmanager/parts/loadnavigation',[\"require\", \"exports\", \"common/parts\", \"services/httpclient\"], function (require, exports, Parts, Http) {\n \"use strict\";\n var LoadNavigation = (function (_super) {\n __extends(LoadNavigation, _super);\n function LoadNavigation() {\n _super.apply(this, arguments);\n }\n LoadNavigation.prototype.process = function (symbol) {\n var _this = this;\n var service = new Http.Channel();\n service.getDataAsync(\"/api/networkmember/{memberId}/navigation/full\".replace(\"{memberId}\", symbol), Http.ServiceTarget.portalApi)\n .then(function (response) {\n _this.output.call(response);\n })\n .fail(function (error) {\n _this.error.call(error);\n });\n };\n return LoadNavigation;\n }(Parts.Part));\n return LoadNavigation;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/navigationmanager/parts/movenavigationnode',[\"require\", \"exports\", \"common/parts\"], function (require, exports, Parts) {\n \"use strict\";\n var MoveNavigationNode = (function (_super) {\n __extends(MoveNavigationNode, _super);\n function MoveNavigationNode() {\n _super.apply(this, arguments);\n }\n MoveNavigationNode.prototype.process = function (symbol) {\n try {\n var parent = symbol.item1.parent;\n var sourcePosition = parent.raw.children.indexOf(symbol.item1.raw);\n var targetPosition = sourcePosition + symbol.item2;\n this.moveItem(parent.raw.children, sourcePosition, targetPosition);\n this.moveItem(parent.children, sourcePosition, targetPosition);\n this.output.call(symbol.item1);\n }\n catch (error) {\n this.error.call(error);\n }\n };\n MoveNavigationNode.prototype.moveItem = function (source, sourcePosition, targetPosition) {\n var placeholder = {};\n var objectToMove = source.splice(sourcePosition, 1, placeholder)[0];\n source.splice(targetPosition, 0, objectToMove);\n source.splice(source.indexOf(placeholder), 1);\n };\n return MoveNavigationNode;\n }(Parts.Part));\n return MoveNavigationNode;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/navigationmanager/parts/removegroup',[\"require\", \"exports\", \"common/parts\"], function (require, exports, Parts) {\n \"use strict\";\n var RemoveGroup = (function (_super) {\n __extends(RemoveGroup, _super);\n function RemoveGroup(target) {\n _super.call(this);\n this._nodeAccessor = target;\n }\n RemoveGroup.prototype.process = function (symbol) {\n try {\n var currentNode = this._nodeAccessor();\n var tilesInGroup = Enumerable.From(currentNode.children).Where(function (_) { return _.groupId == symbol.key; }).ToArray();\n if (tilesInGroup && tilesInGroup.length > 0)\n throw new Error(\"To be abble to detele group, please delete all tails from this group.\");\n //parent.raw.groups.splice(parent.raw.groups.indexOf(symbol), 1);\n currentNode.groups.remove(symbol);\n this.output.call({});\n }\n catch (error) {\n this.error.call(error);\n }\n };\n return RemoveGroup;\n }(Parts.Part));\n return RemoveGroup;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/navigationmanager/parts/removenavigationnode',[\"require\", \"exports\", \"common/parts\"], function (require, exports, Parts) {\n \"use strict\";\n var RemoveNavigationNode = (function (_super) {\n __extends(RemoveNavigationNode, _super);\n function RemoveNavigationNode() {\n _super.apply(this, arguments);\n }\n RemoveNavigationNode.prototype.process = function (symbol) {\n try {\n var parent = symbol.parent;\n parent.raw.children.splice(parent.raw.children.indexOf(symbol.raw), 1);\n parent.children.remove(symbol);\n this.output.call({});\n }\n catch (error) {\n this.error.call(error);\n }\n };\n return RemoveNavigationNode;\n }(Parts.Part));\n return RemoveNavigationNode;\n});\n\n", "define('models/event',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var EventArgs = (function () {\n function EventArgs() {\n }\n Object.defineProperty(EventArgs, \"empty\", {\n get: function () {\n return new EventArgs();\n },\n enumerable: true,\n configurable: true\n });\n return EventArgs;\n }());\n exports.EventArgs = EventArgs;\n var EventHandler = (function () {\n function EventHandler(handler) {\n this._handler = handler;\n }\n EventHandler.prototype.handle = function (sender, e) {\n this._handler(sender, e);\n };\n return EventHandler;\n }());\n exports.EventHandler = EventHandler;\n var Delegate = (function () {\n function Delegate() {\n this._eventHandlers = new Array();\n }\n Delegate.prototype.add = function (eventHandler) {\n if (this._eventHandlers.indexOf(eventHandler) == -1) {\n this._eventHandlers.push(eventHandler);\n }\n };\n Delegate.prototype.remove = function (eventHandler) {\n var i = this._eventHandlers.indexOf(eventHandler);\n if (i != -1) {\n this._eventHandlers.splice(i, 1);\n }\n };\n Delegate.prototype.raise = function (sender, e) {\n for (var i = 0; i < this._eventHandlers.length; i++) {\n this._eventHandlers[i].handle(sender, e);\n }\n };\n return Delegate;\n }());\n exports.Delegate = Delegate;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('models/controller',[\"require\", \"exports\", \"services/taskmanager\", \"models/event\"], function (require, exports, Tasks, Event) {\n \"use strict\";\n var DataColumn = (function () {\n function DataColumn(column) {\n this.column = column;\n }\n return DataColumn;\n }());\n exports.DataColumn = DataColumn;\n var ColumnFilter = (function (_super) {\n __extends(ColumnFilter, _super);\n function ColumnFilter(column, operator, needle, list) {\n _super.call(this, column);\n this.operator = operator;\n this.needle = needle;\n this.list = list;\n }\n ColumnFilter.prototype.build = function () {\n return '';\n };\n ColumnFilter.prototype.isValid = function () {\n return this.needle !== null && this.needle.toString() != \"''\" && this.needle.toString() !== \"\";\n };\n return ColumnFilter;\n }(DataColumn));\n exports.ColumnFilter = ColumnFilter;\n var ColumnSort = (function (_super) {\n __extends(ColumnSort, _super);\n function ColumnSort(column, operator) {\n _super.call(this, column);\n this.operator = operator;\n }\n ColumnSort.prototype.build = function () {\n return '';\n };\n return ColumnSort;\n }(DataColumn));\n exports.ColumnSort = ColumnSort;\n var ColumnList = (function () {\n function ColumnList() {\n this._definitions = [];\n this._canRaiseEvent = true;\n }\n ColumnList.prototype.raiseEvent = function () {\n if (this._canRaiseEvent) {\n this._subscription();\n }\n };\n ColumnList.prototype._remove = function (column) {\n this._definitions = Enumerable.From(this._definitions)\n .Where(function (f) { return f != null && f.column != column; })\n .ToArray();\n };\n ColumnList.prototype._add = function (definition) {\n this._definitions.push(definition);\n };\n ColumnList.prototype._attach = function (definitions) {\n var _this = this;\n definitions.forEach(function (f) {\n _this._definitions.push(f);\n });\n };\n ColumnList.prototype.modify = function (action) {\n this._canRaiseEvent = false;\n action(this);\n this._canRaiseEvent = true;\n };\n ColumnList.prototype.subscribe = function (action) {\n this._subscription = action;\n };\n ColumnList.prototype.unsubscribe = function () {\n this._subscription = function () { return console.warn(\"filter applied!\"); };\n };\n ColumnList.prototype.forEach = function (action) {\n this._definitions.forEach(action);\n };\n Object.defineProperty(ColumnList.prototype, \"length\", {\n get: function () {\n return this._definitions.length;\n },\n enumerable: true,\n configurable: true\n });\n ColumnList.prototype.add = function (definition) {\n this._add(definition);\n this.raiseEvent();\n };\n ColumnList.prototype.attach = function (definitions) {\n this._attach(definitions);\n this.raiseEvent();\n };\n ColumnList.prototype.remove = function (column) {\n this._remove(column);\n this.raiseEvent();\n };\n ColumnList.prototype.replace = function (definition) {\n this._remove(definition.column);\n this._add(definition);\n this.raiseEvent();\n };\n ColumnList.prototype.reAttach = function (column, definitions) {\n this._remove(column);\n this._attach(definitions);\n this.raiseEvent();\n };\n ColumnList.prototype.clear = function () {\n this._definitions.splice(0, this._definitions.length);\n this.raiseEvent();\n };\n return ColumnList;\n }());\n exports.ColumnList = ColumnList;\n var DataController = (function () {\n function DataController() {\n this._isInConfigurationMode = false;\n this._taskManager = new Tasks.Manager();\n this.onLoaded = new Event.Delegate();\n this.result = ko.observableArray();\n this.itemsCount = ko.observable(0);\n this.isLoading = ko.observable(false);\n }\n DataController.prototype.buildUp = function (action) {\n this._isInConfigurationMode = true;\n action(this);\n this._isInConfigurationMode = false;\n };\n DataController.prototype.load = function () {\n var _this = this;\n if (!this._isInConfigurationMode && !this.isLoading()) {\n this.isLoading(true);\n var workStatus = $.t(\"app:modules.common.message_loadData\", { ifMissing: \"Daten werden geladen...\" });\n this._taskManager.startAsync(workStatus, function () {\n var result = _this.onLoadAsync();\n result.finally(function () {\n _this.isLoading(false);\n _this.onLoaded.raise(_this, null);\n });\n return result;\n });\n }\n };\n DataController.prototype.onLoadAsync = function () {\n alert('not implemented');\n return null;\n };\n return DataController;\n }());\n exports.DataController = DataController;\n var ConfigurableDataController = (function (_super) {\n __extends(ConfigurableDataController, _super);\n function ConfigurableDataController() {\n var _this = this;\n _super.call(this);\n this.sortDefinitions = new ColumnList();\n this.filterDefinitions = new ColumnList();\n this.hideBottomPagination = true;\n this.filterDefinitions.subscribe(function () { return _this.load(); });\n this.sortDefinitions.subscribe(function () { return _this.load(); });\n }\n ConfigurableDataController.prototype.buildFilter = function (column, operator, needle, list) {\n alert('not implemented');\n return null;\n };\n ConfigurableDataController.prototype.buildSort = function (column, operator) {\n alert('not implemented');\n return null;\n };\n return ConfigurableDataController;\n }(DataController));\n exports.ConfigurableDataController = ConfigurableDataController;\n var PageableDataController = (function (_super) {\n __extends(PageableDataController, _super);\n function PageableDataController() {\n _super.apply(this, arguments);\n this.currentPage = ko.observable(1);\n this.pageCount = ko.observable(1);\n this.pageSize = ko.observable(25);\n }\n PageableDataController.prototype.gotoPage = function (page) {\n this.currentPage(page);\n _super.prototype.load.call(this);\n };\n PageableDataController.prototype.load = function () {\n this.currentPage(1);\n _super.prototype.load.call(this);\n };\n return PageableDataController;\n }(ConfigurableDataController));\n exports.PageableDataController = PageableDataController;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('models/breeze',[\"require\", \"exports\", \"models/controller\", \"services/trace\", \"models/account\"], function (require, exports, Controller, Trace, Account) {\n \"use strict\";\n var BreezeManager = (function () {\n function BreezeManager(servicePath) {\n breeze.NamingConvention.camelCase.setAsDefault();\n this._dataService = new breeze.DataService({\n serviceName: servicePath,\n hasServerMetadata: false\n });\n this._entityManager = new breeze.EntityManager({ dataService: this._dataService });\n this._metadataStore = this._entityManager.metadataStore;\n }\n BreezeManager.prototype.getMetadataStore = function () {\n return this._metadataStore;\n };\n BreezeManager.prototype.executeQuery = function (query, fromServer) {\n if (fromServer === void 0) { fromServer = true; }\n var strategy = (fromServer) ? breeze.FetchStrategy.FromServer : breeze.FetchStrategy.FromLocalCache;\n return this._entityManager.executeQuery(query.using(strategy));\n };\n return BreezeManager;\n }());\n exports.BreezeManager = BreezeManager;\n var BreezeRepository = (function () {\n function BreezeRepository(servicePath) {\n this._servicePath = servicePath;\n this._manager = new BreezeManager(servicePath);\n }\n BreezeRepository.prototype.onMetadataRequested = function (store) {\n };\n BreezeRepository.prototype.query = function (actionName, parameters) {\n if (actionName == null)\n actionName = BreezeRepository.DefaultActionName;\n var query = breeze.EntityQuery\n .from(actionName);\n //.inlineCount(true);\n if (parameters != null) {\n query = query.withParameters(parameters);\n }\n return query;\n };\n BreezeRepository.prototype.all = function () {\n var query = breeze.EntityQuery\n .from(BreezeRepository.DefaultActionName);\n //.inlineCount(true);\n return this.execute(query);\n };\n BreezeRepository.prototype.orderedBy = function (propertyPath) {\n var query = breeze.EntityQuery\n .from(BreezeRepository.DefaultActionName)\n .orderBy(propertyPath);\n //.inlineCount(true);\n return this.execute(query);\n };\n BreezeRepository.prototype.execute = function (query, fromServer) {\n if (fromServer === void 0) { fromServer = true; }\n return this._manager.executeQuery(query, fromServer);\n };\n BreezeRepository.DefaultActionName = \"all\";\n return BreezeRepository;\n }());\n exports.BreezeRepository = BreezeRepository;\n var BreezeColumnFilter = (function (_super) {\n __extends(BreezeColumnFilter, _super);\n // #region ctor\n function BreezeColumnFilter(column, operator, needle, list) {\n _super.call(this, column, operator, needle, list);\n this.dataType = typeof (needle);\n }\n // #endregion\n // #region static construction\n BreezeColumnFilter.equals = function (column, needle) {\n return new BreezeColumnFilter(column, \"eq\", needle, null);\n };\n BreezeColumnFilter.contains = function (column, needle) {\n needle = needle.replace(\"'\", \"''''\");\n return new BreezeColumnFilter(column, \"substringof\", needle, null);\n };\n BreezeColumnFilter.newerThan = function (column, date) {\n var filter = new BreezeColumnFilter(column, \"gt\", date, null);\n filter.dataType = \"moment\";\n return filter;\n };\n BreezeColumnFilter.olderThan = function (column, date) {\n var filter = new BreezeColumnFilter(column, \"lt\", date, null);\n filter.dataType = \"moment\";\n return filter;\n };\n BreezeColumnFilter.greaterThan = function (column, needle) {\n var filter = new BreezeColumnFilter(column, \"gt\", needle, null);\n return filter;\n };\n BreezeColumnFilter.lowerThan = function (column, needle) {\n var filter = new BreezeColumnFilter(column, \"lt\", needle, null);\n return filter;\n };\n BreezeColumnFilter.isNull = function (column) {\n var filter = new BreezeColumnFilter(column, \"eq\", \"null\", null);\n filter.dataType = \"string\";\n return filter;\n };\n // #endregion\n BreezeColumnFilter.prototype.setCustomDataType = function (dataType) {\n this.dataType = dataType;\n return this;\n };\n BreezeColumnFilter.prototype.build = function () {\n var filter;\n var needle = this.encapsulateNeedle(this.needle);\n switch (this.operator) {\n case \"substringof\":\n filter = this.operator + \"(\" + needle + \", tolower(\" + this.column + \"))\";\n break;\n case \"eq\":\n filter = this.column + ' ' + this.operator + ' ' + this.encapsulateNeedle(this.needle, false);\n break;\n default:\n filter = this.column + ' ' + this.operator + ' ' + needle;\n break;\n }\n if (this.list != null && this.list != \"\") {\n filter = this.list + \"/any(x: x/\" + filter + \")\";\n }\n return filter;\n };\n BreezeColumnFilter.prototype.encapsulateNeedle = function (needle, lowerCase) {\n if (lowerCase === void 0) { lowerCase = true; }\n if (this.dataType === \"number\" || this.dataType === \"boolean\") {\n return needle;\n }\n if (this.dataType === \"moment\") {\n var date = needle;\n return \"datetime'\" + date.format() + \"'\";\n }\n if (this.dataType === \"guid\") {\n return \"guid'\" + needle + \"'\";\n }\n return lowerCase\n ? '\\'' + needle.toLowerCase() + '\\''\n : '\\'' + needle + '\\'';\n };\n return BreezeColumnFilter;\n }(Controller.ColumnFilter));\n exports.BreezeColumnFilter = BreezeColumnFilter;\n var BreezeDateRangeFilter = (function (_super) {\n __extends(BreezeDateRangeFilter, _super);\n function BreezeDateRangeFilter(key, start, end) {\n _super.call(this, key, null, \"\", null);\n this._start = start;\n this._end = end;\n this.dataType = \"moment\";\n }\n BreezeDateRangeFilter.prototype.isValid = function () {\n return true;\n };\n BreezeDateRangeFilter.prototype.build = function () {\n // 1. TO >= InputFrom and TO <= InputTo\n // 2. FROM >= InputFrom and FROM <= InputTo\n // 3. FROM <= InputFrom and TO >= InputTo\n var columnFrom = this.column + \"From\";\n var columnTo = this.column + \"To\";\n var start = this.encapsulateNeedle(this._start.startOf('day'));\n var end = this.encapsulateNeedle(this._end.endOf('day'));\n var func = columnTo + \" ge \" + start + \" and \" + columnTo + \" le \" + end;\n func = func + \" or \" + columnFrom + \" ge \" + start + \" and \" + columnFrom + \" le \" + end;\n func = func + \" or \" + columnFrom + \" le \" + start + \" and \" + columnTo + \" ge \" + end;\n return func;\n };\n return BreezeDateRangeFilter;\n }(BreezeColumnFilter));\n exports.BreezeDateRangeFilter = BreezeDateRangeFilter;\n var BreezeOrFilter = (function (_super) {\n __extends(BreezeOrFilter, _super);\n function BreezeOrFilter(key) {\n var filters = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n filters[_i - 1] = arguments[_i];\n }\n _super.call(this, key, null, \"\", null);\n this._filters = [];\n this._filters = filters;\n this.dataType = \"\";\n }\n BreezeOrFilter.prototype.setFilters = function (filters) {\n this._filters = filters;\n };\n BreezeOrFilter.prototype.getFilters = function () {\n return this._filters;\n };\n BreezeOrFilter.prototype.isValid = function () {\n return true;\n };\n BreezeOrFilter.prototype.build = function () {\n var query = \"\";\n this._filters.forEach(function (s) {\n query = query + ((query != \"\") ? \" or \" + s.build() : s.build());\n });\n return \"(\" + query + \")\";\n };\n return BreezeOrFilter;\n }(BreezeColumnFilter));\n exports.BreezeOrFilter = BreezeOrFilter;\n var BreezeColumnSort = (function (_super) {\n __extends(BreezeColumnSort, _super);\n function BreezeColumnSort(column, operator) {\n _super.call(this, column, operator);\n }\n BreezeColumnSort.prototype.build = function () {\n return this.column + ' ' + this.operator;\n };\n return BreezeColumnSort;\n }(Controller.ColumnSort));\n exports.BreezeColumnSort = BreezeColumnSort;\n var BreezeDataController = (function (_super) {\n __extends(BreezeDataController, _super);\n // #region ctor\n function BreezeDataController(dataSource, parameters, usePaging) {\n if (usePaging === void 0) { usePaging = true; }\n _super.call(this);\n this._usePaging = true;\n this.pageSize(Account.Session.rowCount);\n this._parameters = parameters;\n this._actionName = BreezeRepository.DefaultActionName;\n this._dataSource = dataSource;\n this._usePaging = usePaging;\n this._map = function (data) { return data; };\n }\n // #endregion\n // #region overrides\n BreezeDataController.prototype.onLoadAsync = function () {\n var that = this;\n that.clearData();\n // create query\n var query = that._dataSource.query(that._actionName, that.parameters);\n if (that._usePaging) {\n query = query.skip(+((that.currentPage() - 1) * that.pageSize())).take(that.pageSize());\n }\n // configure\n if (that.sortDefinitions != null && that.sortDefinitions.length > 0) {\n that.sortDefinitions.forEach(function (s) {\n if (s != null && s.column != null) {\n query = query.orderBy(s.build());\n }\n });\n }\n if (that.filterDefinitions != null && that.filterDefinitions.length > 0) {\n that.filterDefinitions.forEach(function (f) {\n if (f != null && f.isValid()) {\n var predicate = f.build();\n query = query.where(predicate);\n }\n });\n }\n // execute\n return that._dataSource.execute(query, true)\n .then(function (response) {\n //that.pageCount(Math.ceil((response.inlineCount || 1) / that.pageSize()));\n //that.itemsCount(response.inlineCount);\n that.result(that._map(response.results));\n })\n .fail(function (error) {\n Trace.traceError(error, null, \"controller\", true);\n });\n };\n Object.defineProperty(BreezeDataController.prototype, \"parameters\", {\n // #endregion\n // #region properties\n get: function () {\n return this._parameters;\n },\n set: function (value) {\n this._parameters = value;\n },\n enumerable: true,\n configurable: true\n });\n // #endregion\n // #region configuration\n BreezeDataController.prototype.configure = function (map) {\n this._map = map;\n return this;\n };\n // #endregion\n // #region overriding\n BreezeDataController.prototype.override = function (actionName, parameters) {\n if (typeof actionName != \"undefined\") {\n this._actionName = actionName;\n }\n if (parameters != null) {\n this.parameters = parameters;\n }\n return this;\n };\n // #endregion\n // #region build items\n BreezeDataController.prototype.buildFilter = function (column, operator, needle, list) {\n return new BreezeColumnFilter(column, operator, needle, list);\n };\n BreezeDataController.prototype.buildSort = function (column, operator) {\n return new BreezeColumnSort(column, operator);\n };\n // #endregion\n BreezeDataController.prototype.clearData = function () {\n this.result.removeAll();\n this.itemsCount(0);\n };\n return BreezeDataController;\n }(Controller.PageableDataController));\n exports.BreezeDataController = BreezeDataController;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/breeze/breeze.d.ts\" />\n/// <reference path=\"../../../../Scripts/typings/q/q.d.ts\" />\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/navigationmanager/services/navigationrepository',[\"require\", \"exports\", \"models/breeze\", \"services/settings\", \"services/httpclient\"], function (require, exports, Data, Configuration, Http) {\n \"use strict\";\n var NavigationRepository = (function (_super) {\n __extends(NavigationRepository, _super);\n function NavigationRepository() {\n var serviceUrl = Configuration.Settings.getApiFor(\"/breeze/navigation\");\n _super.call(this, serviceUrl);\n }\n NavigationRepository.prototype.onMetadataRequested = function (store) {\n this.addNavigationType(store);\n };\n NavigationRepository.prototype.updateAsync = function (source) {\n var service = new Http.Channel();\n var data = source;\n return service.putDataAsync(\"/api/navigation\", Http.ServiceTarget.portalApi, data);\n };\n NavigationRepository.prototype.updateModuleLocksAsync = function (memberId, source) {\n var service = new Http.Channel();\n var data = [];\n source().forEach(function (m) { return data.push(m); });\n return service.putDataAsync(\"/api/networkmember/{memberId}/locks\".replace(\"{memberId}\", memberId), Http.ServiceTarget.portalApi, data);\n };\n NavigationRepository.prototype.addNavigationType = function (store) {\n var type = new breeze.ComplexType();\n type.shortName = \"Navigation\";\n type.namespace = \"AIP.API.Configuration.Model\";\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"Id\", dataType: breeze.DataType.Guid, isNullable: false, isPartOfKey: true }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"MemberType\", dataType: breeze.DataType.String, isNullable: true }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"OrganizationId\", dataType: breeze.DataType.Guid, isNullable: true }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"NetworkMemberId\", dataType: breeze.DataType.Guid, isNullable: true }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"Tree\", dataType: breeze.DataType.Undefined, isNullable: true }));\n store.addEntityType(type);\n };\n return NavigationRepository;\n }(Data.BreezeRepository));\n exports.NavigationRepository = NavigationRepository;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/navigationmanager/parts/savemodulelocks',[\"require\", \"exports\", \"common/parts\", \"areas/navigationmanager/services/navigationrepository\"], function (require, exports, Parts, Repository) {\n \"use strict\";\n var SaveModuleLocks = (function (_super) {\n __extends(SaveModuleLocks, _super);\n function SaveModuleLocks(taskManager) {\n _super.call(this);\n this._taskManager = taskManager;\n }\n SaveModuleLocks.prototype.process = function (symbol) {\n var _this = this;\n try {\n var repository = new Repository.NavigationRepository();\n this._taskManager.startAsync(\"Sperren werden gespeichert...\", function () {\n return repository.updateModuleLocksAsync(symbol.item1, symbol.item2)\n .then(function (result) {\n _this.output.call({});\n })\n .fail(function (exception) {\n _this.error.call(exception);\n });\n });\n }\n catch (error) {\n this.error.call(error);\n }\n };\n return SaveModuleLocks;\n }(Parts.Part));\n return SaveModuleLocks;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/navigationmanager/parts/savenavigationmodel',[\"require\", \"exports\", \"common/parts\", \"areas/navigationmanager/services/navigationrepository\"], function (require, exports, Parts, Repository) {\n \"use strict\";\n var SaveNavigationModel = (function (_super) {\n __extends(SaveNavigationModel, _super);\n function SaveNavigationModel(taskManager) {\n _super.call(this);\n this._taskManager = taskManager;\n }\n SaveNavigationModel.prototype.process = function (symbol) {\n var _this = this;\n try {\n var repository = new Repository.NavigationRepository();\n this.applyCurrentValues(symbol.model);\n this._taskManager.startAsync(\"Navigation wird gespeichert...\", function () {\n return repository.updateAsync(symbol.raw)\n .then(function (result) {\n _this.output.call({});\n })\n .fail(function (exception) {\n _this.error.call(exception);\n });\n });\n }\n catch (error) {\n this.error.call(error);\n }\n };\n SaveNavigationModel.prototype.applyCurrentValues = function (node) {\n var _this = this;\n node.raw.data.type = node.type;\n node.raw.data.name = node.name;\n node.raw.data.icon = node.icon;\n node.raw.data.color = node.color;\n node.raw.data.openInDialog = node.openInDialog;\n node.raw.data.openLinkInCurrentTab = node.openLinkInCurrentTab;\n node.raw.data.disableNavigateToFirstChild = node.disableNavigateToFirstChild;\n node.raw.data.key = node.key;\n node.raw.data.showOnMobile = node.showOnMobile;\n node.raw.data.useImage = node.useImage;\n node.raw.data.imagePath = node.imagePath;\n node.raw.data.defaultData = node.defaultData;\n node.raw.data.imagePathSearchbar = node.imagePathSearchbar;\n node.raw.data.permissionId = node.permissionId;\n node.raw.data.groupId = node.groupId;\n node.raw.data.template = node.template;\n node.raw.data.datakey = node.datakey;\n node.raw.data.index = node.index;\n node.raw.groups = node.groups;\n if (node.type === \"Sachgebiet\") {\n node.raw.data.dependsOn = node.dependsOn;\n }\n if (node.type === \"Application\") {\n node.raw.data.uID = node.shopId;\n }\n if (node.type === \"ApplicationLink\") {\n node.raw.data.route = node.route;\n }\n Enumerable.From(node.children)\n .OrderBy(function (x) { return x.index; })\n .ForEach(function (x) {\n _this.applyCurrentValues(x);\n });\n };\n return SaveNavigationModel;\n }(Parts.Part));\n return SaveNavigationModel;\n});\n\n", "define('areas/navigationmanager/services/iconlist',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var iconlist = (function () {\n function iconlist() {\n }\n iconlist.getFullIconList = function () {\n if (iconlist._icons == null)\n iconlist._icons = iconlist.all();\n return iconlist._icons;\n };\n iconlist.all = function () {\n var icons = [];\n icons.push({ id: \"glass\", name: \"Glass\" });\n icons.push({ id: \"music\", name: \"Music\" });\n icons.push({ id: \"search\", name: \"Search\" });\n icons.push({ id: \"envelope-o\", name: \"Envelope Outlined\" });\n icons.push({ id: \"heart\", name: \"Heart\" });\n icons.push({ id: \"star\", name: \"Star\" });\n icons.push({ id: \"star-o\", name: \"Star Outlined\" });\n icons.push({ id: \"user\", name: \"User\" });\n icons.push({ id: \"film\", name: \"Film\" });\n icons.push({ id: \"th-large\", name: \"th-large\" });\n icons.push({ id: \"th\", name: \"th\" });\n icons.push({ id: \"th-list\", name: \"th-list\" });\n icons.push({ id: \"check\", name: \"Check\" });\n icons.push({ id: \"times\", name: \"Times\" });\n icons.push({ id: \"search-plus\", name: \"Search Plus\" });\n icons.push({ id: \"search-minus\", name: \"Search Minus\" });\n icons.push({ id: \"power-off\", name: \"Power Off\" });\n icons.push({ id: \"signal\", name: \"signal\" });\n icons.push({ id: \"cog\", name: \"cog\" });\n icons.push({ id: \"trash-o\", name: \"Trash Outlined\" });\n icons.push({ id: \"home\", name: \"home\" });\n icons.push({ id: \"file-o\", name: \"File Outlined\" });\n icons.push({ id: \"clock-o\", name: \"Clock Outlined\" });\n icons.push({ id: \"road\", name: \"road\" });\n icons.push({ id: \"download\", name: \"Download\" });\n icons.push({ id: \"arrow-circle-o-down\", name: \"Arrow Circle Outlined Down\" });\n icons.push({ id: \"arrow-circle-o-up\", name: \"Arrow Circle Outlined Up\" });\n icons.push({ id: \"inbox\", name: \"inbox\" });\n icons.push({ id: \"play-circle-o\", name: \"Play Circle Outlined\" });\n icons.push({ id: \"repeat\", name: \"Repeat\" });\n icons.push({ id: \"refresh\", name: \"refresh\" });\n icons.push({ id: \"list-alt\", name: \"list-alt\" });\n icons.push({ id: \"lock\", name: \"lock\" });\n icons.push({ id: \"flag\", name: \"flag\" });\n icons.push({ id: \"headphones\", name: \"headphones\" });\n icons.push({ id: \"volume-off\", name: \"volume-off\" });\n icons.push({ id: \"volume-down\", name: \"volume-down\" });\n icons.push({ id: \"volume-up\", name: \"volume-up\" });\n icons.push({ id: \"qrcode\", name: \"qrcode\" });\n icons.push({ id: \"barcode\", name: \"barcode\" });\n icons.push({ id: \"tag\", name: \"tag\" });\n icons.push({ id: \"tags\", name: \"tags\" });\n icons.push({ id: \"book\", name: \"book\" });\n icons.push({ id: \"bookmark\", name: \"bookmark\" });\n icons.push({ id: \"print\", name: \"print\" });\n icons.push({ id: \"camera\", name: \"camera\" });\n icons.push({ id: \"font\", name: \"font\" });\n icons.push({ id: \"bold\", name: \"bold\" });\n icons.push({ id: \"italic\", name: \"italic\" });\n icons.push({ id: \"text-height\", name: \"text-height\" });\n icons.push({ id: \"text-width\", name: \"text-width\" });\n icons.push({ id: \"align-left\", name: \"align-left\" });\n icons.push({ id: \"align-center\", name: \"align-center\" });\n icons.push({ id: \"align-right\", name: \"align-right\" });\n icons.push({ id: \"align-justify\", name: \"align-justify\" });\n icons.push({ id: \"list\", name: \"list\" });\n icons.push({ id: \"outdent\", name: \"Outdent\" });\n icons.push({ id: \"indent\", name: \"Indent\" });\n icons.push({ id: \"video-camera\", name: \"Video Camera\" });\n icons.push({ id: \"picture-o\", name: \"Picture Outlined\" });\n icons.push({ id: \"pencil\", name: \"pencil\" });\n icons.push({ id: \"map-marker\", name: \"map-marker\" });\n icons.push({ id: \"adjust\", name: \"adjust\" });\n icons.push({ id: \"tint\", name: \"tint\" });\n icons.push({ id: \"pencil-square-o\", name: \"Pencil Square Outlined\" });\n icons.push({ id: \"share-square-o\", name: \"Share Square Outlined\" });\n icons.push({ id: \"check-square-o\", name: \"Check Square Outlined\" });\n icons.push({ id: \"arrows\", name: \"Arrows\" });\n icons.push({ id: \"step-backward\", name: \"step-backward\" });\n icons.push({ id: \"fast-backward\", name: \"fast-backward\" });\n icons.push({ id: \"backward\", name: \"backward\" });\n icons.push({ id: \"play\", name: \"play\" });\n icons.push({ id: \"pause\", name: \"pause\" });\n icons.push({ id: \"stop\", name: \"stop\" });\n icons.push({ id: \"forward\", name: \"forward\" });\n icons.push({ id: \"fast-forward\", name: \"fast-forward\" });\n icons.push({ id: \"step-forward\", name: \"step-forward\" });\n icons.push({ id: \"eject\", name: \"eject\" });\n icons.push({ id: \"chevron-left\", name: \"chevron-left\" });\n icons.push({ id: \"chevron-right\", name: \"chevron-right\" });\n icons.push({ id: \"plus-circle\", name: \"Plus Circle\" });\n icons.push({ id: \"minus-circle\", name: \"Minus Circle\" });\n icons.push({ id: \"times-circle\", name: \"Times Circle\" });\n icons.push({ id: \"check-circle\", name: \"Check Circle\" });\n icons.push({ id: \"question-circle\", name: \"Question Circle\" });\n icons.push({ id: \"info-circle\", name: \"Info Circle\" });\n icons.push({ id: \"crosshairs\", name: \"Crosshairs\" });\n icons.push({ id: \"times-circle-o\", name: \"Times Circle Outlined\" });\n icons.push({ id: \"check-circle-o\", name: \"Check Circle Outlined\" });\n icons.push({ id: \"ban\", name: \"ban\" });\n icons.push({ id: \"arrow-left\", name: \"arrow-left\" });\n icons.push({ id: \"arrow-right\", name: \"arrow-right\" });\n icons.push({ id: \"arrow-up\", name: \"arrow-up\" });\n icons.push({ id: \"arrow-down\", name: \"arrow-down\" });\n icons.push({ id: \"share\", name: \"Share\" });\n icons.push({ id: \"expand\", name: \"Expand\" });\n icons.push({ id: \"compress\", name: \"Compress\" });\n icons.push({ id: \"plus\", name: \"plus\" });\n icons.push({ id: \"minus\", name: \"minus\" });\n icons.push({ id: \"asterisk\", name: \"asterisk\" });\n icons.push({ id: \"exclamation-circle\", name: \"Exclamation Circle\" });\n icons.push({ id: \"gift\", name: \"gift\" });\n icons.push({ id: \"leaf\", name: \"leaf\" });\n icons.push({ id: \"fire\", name: \"fire\" });\n icons.push({ id: \"eye\", name: \"Eye\" });\n icons.push({ id: \"eye-slash\", name: \"Eye Slash\" });\n icons.push({ id: \"exclamation-triangle\", name: \"Exclamation Triangle\" });\n icons.push({ id: \"plane\", name: \"plane\" });\n icons.push({ id: \"calendar\", name: \"calendar\" });\n icons.push({ id: \"random\", name: \"random\" });\n icons.push({ id: \"comment\", name: \"comment\" });\n icons.push({ id: \"magnet\", name: \"magnet\" });\n icons.push({ id: \"chevron-up\", name: \"chevron-up\" });\n icons.push({ id: \"chevron-down\", name: \"chevron-down\" });\n icons.push({ id: \"retweet\", name: \"retweet\" });\n icons.push({ id: \"shopping-cart\", name: \"shopping-cart\" });\n icons.push({ id: \"folder\", name: \"Folder\" });\n icons.push({ id: \"folder-open\", name: \"Folder Open\" });\n icons.push({ id: \"arrows-v\", name: \"Arrows Vertical\" });\n icons.push({ id: \"arrows-h\", name: \"Arrows Horizontal\" });\n icons.push({ id: \"bar-chart\", name: \"Bar Chart\" });\n icons.push({ id: \"twitter-square\", name: \"Twitter Square\" });\n icons.push({ id: \"facebook-square\", name: \"Facebook Square\" });\n icons.push({ id: \"camera-retro\", name: \"camera-retro\" });\n icons.push({ id: \"key\", name: \"key\" });\n icons.push({ id: \"cogs\", name: \"cogs\" });\n icons.push({ id: \"comments\", name: \"comments\" });\n icons.push({ id: \"thumbs-o-up\", name: \"Thumbs Up Outlined\" });\n icons.push({ id: \"thumbs-o-down\", name: \"Thumbs Down Outlined\" });\n icons.push({ id: \"star-half\", name: \"star-half\" });\n icons.push({ id: \"heart-o\", name: \"Heart Outlined\" });\n icons.push({ id: \"sign-out\", name: \"Sign Out\" });\n icons.push({ id: \"linkedin-square\", name: \"LinkedIn Square\" });\n icons.push({ id: \"thumb-tack\", name: \"Thumb Tack\" });\n icons.push({ id: \"external-link\", name: \"External Link\" });\n icons.push({ id: \"sign-in\", name: \"Sign In\" });\n icons.push({ id: \"trophy\", name: \"trophy\" });\n icons.push({ id: \"github-square\", name: \"GitHub Square\" });\n icons.push({ id: \"upload\", name: \"Upload\" });\n icons.push({ id: \"lemon-o\", name: \"Lemon Outlined\" });\n icons.push({ id: \"phone\", name: \"Phone\" });\n icons.push({ id: \"square-o\", name: \"Square Outlined\" });\n icons.push({ id: \"bookmark-o\", name: \"Bookmark Outlined\" });\n icons.push({ id: \"phone-square\", name: \"Phone Square\" });\n icons.push({ id: \"twitter\", name: \"Twitter\" });\n icons.push({ id: \"facebook\", name: \"Facebook\" });\n icons.push({ id: \"github\", name: \"GitHub\" });\n icons.push({ id: \"unlock\", name: \"unlock\" });\n icons.push({ id: \"credit-card\", name: \"credit-card\" });\n icons.push({ id: \"rss\", name: \"rss\" });\n icons.push({ id: \"hdd-o\", name: \"HDD\" });\n icons.push({ id: \"bullhorn\", name: \"bullhorn\" });\n icons.push({ id: \"bell\", name: \"bell\" });\n icons.push({ id: \"certificate\", name: \"certificate\" });\n icons.push({ id: \"hand-o-right\", name: \"Hand Outlined Right\" });\n icons.push({ id: \"hand-o-left\", name: \"Hand Outlined Left\" });\n icons.push({ id: \"hand-o-up\", name: \"Hand Outlined Up\" });\n icons.push({ id: \"hand-o-down\", name: \"Hand Outlined Down\" });\n icons.push({ id: \"arrow-circle-left\", name: \"Arrow Circle Left\" });\n icons.push({ id: \"arrow-circle-right\", name: \"Arrow Circle Right\" });\n icons.push({ id: \"arrow-circle-up\", name: \"Arrow Circle Up\" });\n icons.push({ id: \"arrow-circle-down\", name: \"Arrow Circle Down\" });\n icons.push({ id: \"globe\", name: \"Globe\" });\n icons.push({ id: \"wrench\", name: \"Wrench\" });\n icons.push({ id: \"tasks\", name: \"Tasks\" });\n icons.push({ id: \"filter\", name: \"Filter\" });\n icons.push({ id: \"briefcase\", name: \"Briefcase\" });\n icons.push({ id: \"arrows-alt\", name: \"Arrows Alt\" });\n icons.push({ id: \"users\", name: \"Users\" });\n icons.push({ id: \"link\", name: \"Link\" });\n icons.push({ id: \"cloud\", name: \"Cloud\" });\n icons.push({ id: \"flask\", name: \"Flask\" });\n icons.push({ id: \"scissors\", name: \"Scissors\" });\n icons.push({ id: \"files-o\", name: \"Files Outlined\" });\n icons.push({ id: \"paperclip\", name: \"Paperclip\" });\n icons.push({ id: \"floppy-o\", name: \"Floppy Outlined\" });\n icons.push({ id: \"square\", name: \"Square\" });\n icons.push({ id: \"bars\", name: \"Bars\" });\n icons.push({ id: \"list-ul\", name: \"list-ul\" });\n icons.push({ id: \"list-ol\", name: \"list-ol\" });\n icons.push({ id: \"strikethrough\", name: \"Strikethrough\" });\n icons.push({ id: \"underline\", name: \"Underline\" });\n icons.push({ id: \"table\", name: \"table\" });\n icons.push({ id: \"magic\", name: \"magic\" });\n icons.push({ id: \"truck\", name: \"truck\" });\n icons.push({ id: \"pinterest\", name: \"Pinterest\" });\n icons.push({ id: \"pinterest-square\", name: \"Pinterest Square\" });\n icons.push({ id: \"google-plus-square\", name: \"Google Plus Square\" });\n icons.push({ id: \"google-plus\", name: \"Google Plus\" });\n icons.push({ id: \"money\", name: \"Money\" });\n icons.push({ id: \"caret-down\", name: \"Caret Down\" });\n icons.push({ id: \"caret-up\", name: \"Caret Up\" });\n icons.push({ id: \"caret-left\", name: \"Caret Left\" });\n icons.push({ id: \"caret-right\", name: \"Caret Right\" });\n icons.push({ id: \"columns\", name: \"Columns\" });\n icons.push({ id: \"sort\", name: \"Sort\" });\n icons.push({ id: \"sort-desc\", name: \"Sort Descending\" });\n icons.push({ id: \"sort-asc\", name: \"Sort Ascending\" });\n icons.push({ id: \"envelope\", name: \"Envelope\" });\n icons.push({ id: \"linkedin\", name: \"LinkedIn\" });\n icons.push({ id: \"undo\", name: \"Undo\" });\n icons.push({ id: \"gavel\", name: \"Gavel\" });\n icons.push({ id: \"tachometer\", name: \"Tachometer\" });\n icons.push({ id: \"comment-o\", name: \"comment-o\" });\n icons.push({ id: \"comments-o\", name: \"comments-o\" });\n icons.push({ id: \"bolt\", name: \"Lightning Bolt\" });\n icons.push({ id: \"sitemap\", name: \"Sitemap\" });\n icons.push({ id: \"umbrella\", name: \"Umbrella\" });\n icons.push({ id: \"clipboard\", name: \"Clipboard\" });\n icons.push({ id: \"lightbulb-o\", name: \"Lightbulb Outlined\" });\n icons.push({ id: \"exchange\", name: \"Exchange\" });\n icons.push({ id: \"cloud-download\", name: \"Cloud Download\" });\n icons.push({ id: \"cloud-upload\", name: \"Cloud Upload\" });\n icons.push({ id: \"user-md\", name: \"user-md\" });\n icons.push({ id: \"stethoscope\", name: \"Stethoscope\" });\n icons.push({ id: \"suitcase\", name: \"Suitcase\" });\n icons.push({ id: \"bell-o\", name: \"Bell Outlined\" });\n icons.push({ id: \"coffee\", name: \"Coffee\" });\n icons.push({ id: \"cutlery\", name: \"Cutlery\" });\n icons.push({ id: \"file-text-o\", name: \"File Text Outlined\" });\n icons.push({ id: \"building-o\", name: \"Building Outlined\" });\n icons.push({ id: \"hospital-o\", name: \"hospital Outlined\" });\n icons.push({ id: \"ambulance\", name: \"ambulance\" });\n icons.push({ id: \"medkit\", name: \"medkit\" });\n icons.push({ id: \"fighter-jet\", name: \"fighter-jet\" });\n icons.push({ id: \"beer\", name: \"beer\" });\n icons.push({ id: \"h-square\", name: \"H Square\" });\n icons.push({ id: \"plus-square\", name: \"Plus Square\" });\n icons.push({ id: \"angle-double-left\", name: \"Angle Double Left\" });\n icons.push({ id: \"angle-double-right\", name: \"Angle Double Right\" });\n icons.push({ id: \"angle-double-up\", name: \"Angle Double Up\" });\n icons.push({ id: \"angle-double-down\", name: \"Angle Double Down\" });\n icons.push({ id: \"angle-left\", name: \"angle-left\" });\n icons.push({ id: \"angle-right\", name: \"angle-right\" });\n icons.push({ id: \"angle-up\", name: \"angle-up\" });\n icons.push({ id: \"angle-down\", name: \"angle-down\" });\n icons.push({ id: \"desktop\", name: \"Desktop\" });\n icons.push({ id: \"laptop\", name: \"Laptop\" });\n icons.push({ id: \"tablet\", name: \"tablet\" });\n icons.push({ id: \"mobile\", name: \"Mobile Phone\" });\n icons.push({ id: \"circle-o\", name: \"Circle Outlined\" });\n icons.push({ id: \"quote-left\", name: \"quote-left\" });\n icons.push({ id: \"quote-right\", name: \"quote-right\" });\n icons.push({ id: \"spinner\", name: \"Spinner\" });\n icons.push({ id: \"circle\", name: \"Circle\" });\n icons.push({ id: \"reply\", name: \"Reply\" });\n icons.push({ id: \"github-alt\", name: \"GitHub Alt\" });\n icons.push({ id: \"folder-o\", name: \"Folder Outlined\" });\n icons.push({ id: \"folder-open-o\", name: \"Folder Open Outlined\" });\n icons.push({ id: \"smile-o\", name: \"Smile Outlined\" });\n icons.push({ id: \"frown-o\", name: \"Frown Outlined\" });\n icons.push({ id: \"meh-o\", name: \"Meh Outlined\" });\n icons.push({ id: \"gamepad\", name: \"Gamepad\" });\n icons.push({ id: \"keyboard-o\", name: \"Keyboard Outlined\" });\n icons.push({ id: \"flag-o\", name: \"Flag Outlined\" });\n icons.push({ id: \"flag-checkered\", name: \"flag-checkered\" });\n icons.push({ id: \"terminal\", name: \"Terminal\" });\n icons.push({ id: \"code\", name: \"Code\" });\n icons.push({ id: \"reply-all\", name: \"reply-all\" });\n icons.push({ id: \"star-half-o\", name: \"Star Half Outlined\" });\n icons.push({ id: \"location-arrow\", name: \"location-arrow\" });\n icons.push({ id: \"crop\", name: \"crop\" });\n icons.push({ id: \"code-fork\", name: \"code-fork\" });\n icons.push({ id: \"chain-broken\", name: \"Chain Broken\" });\n icons.push({ id: \"question\", name: \"Question\" });\n icons.push({ id: \"info\", name: \"Info\" });\n icons.push({ id: \"exclamation\", name: \"exclamation\" });\n icons.push({ id: \"superscript\", name: \"superscript\" });\n icons.push({ id: \"subscript\", name: \"subscript\" });\n icons.push({ id: \"eraser\", name: \"eraser\" });\n icons.push({ id: \"puzzle-piece\", name: \"Puzzle Piece\" });\n icons.push({ id: \"microphone\", name: \"microphone\" });\n icons.push({ id: \"microphone-slash\", name: \"Microphone Slash\" });\n icons.push({ id: \"shield\", name: \"shield\" });\n icons.push({ id: \"calendar-o\", name: \"calendar-o\" });\n icons.push({ id: \"fire-extinguisher\", name: \"fire-extinguisher\" });\n icons.push({ id: \"rocket\", name: \"rocket\" });\n icons.push({ id: \"maxcdn\", name: \"MaxCDN\" });\n icons.push({ id: \"chevron-circle-left\", name: \"Chevron Circle Left\" });\n icons.push({ id: \"chevron-circle-right\", name: \"Chevron Circle Right\" });\n icons.push({ id: \"chevron-circle-up\", name: \"Chevron Circle Up\" });\n icons.push({ id: \"chevron-circle-down\", name: \"Chevron Circle Down\" });\n icons.push({ id: \"html5\", name: \"HTML 5 Logo\" });\n icons.push({ id: \"css3\", name: \"CSS 3 Logo\" });\n icons.push({ id: \"anchor\", name: \"Anchor\" });\n icons.push({ id: \"unlock-alt\", name: \"Unlock Alt\" });\n icons.push({ id: \"bullseye\", name: \"Bullseye\" });\n icons.push({ id: \"ellipsis-h\", name: \"Ellipsis Horizontal\" });\n icons.push({ id: \"ellipsis-v\", name: \"Ellipsis Vertical\" });\n icons.push({ id: \"rss-square\", name: \"RSS Square\" });\n icons.push({ id: \"play-circle\", name: \"Play Circle\" });\n icons.push({ id: \"ticket\", name: \"Ticket\" });\n icons.push({ id: \"minus-square\", name: \"Minus Square\" });\n icons.push({ id: \"minus-square-o\", name: \"Minus Square Outlined\" });\n icons.push({ id: \"level-up\", name: \"Level Up\" });\n icons.push({ id: \"level-down\", name: \"Level Down\" });\n icons.push({ id: \"check-square\", name: \"Check Square\" });\n icons.push({ id: \"pencil-square\", name: \"Pencil Square\" });\n icons.push({ id: \"external-link-square\", name: \"External Link Square\" });\n icons.push({ id: \"share-square\", name: \"Share Square\" });\n icons.push({ id: \"compass\", name: \"Compass\" });\n icons.push({ id: \"caret-square-o-down\", name: \"Caret Square Outlined Down\" });\n icons.push({ id: \"caret-square-o-up\", name: \"Caret Square Outlined Up\" });\n icons.push({ id: \"caret-square-o-right\", name: \"Caret Square Outlined Right\" });\n icons.push({ id: \"eur\", name: \"Euro (EUR)\" });\n icons.push({ id: \"gbp\", name: \"GBP\" });\n icons.push({ id: \"usd\", name: \"US Dollar\" });\n icons.push({ id: \"inr\", name: \"Indian Rupee (INR)\" });\n icons.push({ id: \"jpy\", name: \"Japanese Yen (JPY)\" });\n icons.push({ id: \"rub\", name: \"Russian Ruble (RUB)\" });\n icons.push({ id: \"krw\", name: \"Korean Won (KRW)\" });\n icons.push({ id: \"btc\", name: \"Bitcoin (BTC)\" });\n icons.push({ id: \"file\", name: \"File\" });\n icons.push({ id: \"file-text\", name: \"File Text\" });\n icons.push({ id: \"sort-alpha-asc\", name: \"Sort Alpha Ascending\" });\n icons.push({ id: \"sort-alpha-desc\", name: \"Sort Alpha Descending\" });\n icons.push({ id: \"sort-amount-asc\", name: \"Sort Amount Ascending\" });\n icons.push({ id: \"sort-amount-desc\", name: \"Sort Amount Descending\" });\n icons.push({ id: \"sort-numeric-asc\", name: \"Sort Numeric Ascending\" });\n icons.push({ id: \"sort-numeric-desc\", name: \"Sort Numeric Descending\" });\n icons.push({ id: \"thumbs-up\", name: \"thumbs-up\" });\n icons.push({ id: \"thumbs-down\", name: \"thumbs-down\" });\n icons.push({ id: \"youtube-square\", name: \"YouTube Square\" });\n icons.push({ id: \"youtube\", name: \"YouTube\" });\n icons.push({ id: \"xing\", name: \"Xing\" });\n icons.push({ id: \"xing-square\", name: \"Xing Square\" });\n icons.push({ id: \"youtube-play\", name: \"YouTube Play\" });\n icons.push({ id: \"dropbox\", name: \"Dropbox\" });\n icons.push({ id: \"stack-overflow\", name: \"Stack Overflow\" });\n icons.push({ id: \"instagram\", name: \"Instagram\" });\n icons.push({ id: \"flickr\", name: \"Flickr\" });\n icons.push({ id: \"adn\", name: \"App.net\" });\n icons.push({ id: \"bitbucket\", name: \"Bitbucket\" });\n icons.push({ id: \"bitbucket-square\", name: \"Bitbucket Square\" });\n icons.push({ id: \"tumblr\", name: \"Tumblr\" });\n icons.push({ id: \"tumblr-square\", name: \"Tumblr Square\" });\n icons.push({ id: \"long-arrow-down\", name: \"Long Arrow Down\" });\n icons.push({ id: \"long-arrow-up\", name: \"Long Arrow Up\" });\n icons.push({ id: \"long-arrow-left\", name: \"Long Arrow Left\" });\n icons.push({ id: \"long-arrow-right\", name: \"Long Arrow Right\" });\n icons.push({ id: \"apple\", name: \"Apple\" });\n icons.push({ id: \"windows\", name: \"Windows\" });\n icons.push({ id: \"android\", name: \"Android\" });\n icons.push({ id: \"linux\", name: \"Linux\" });\n icons.push({ id: \"dribbble\", name: \"Dribbble\" });\n icons.push({ id: \"skype\", name: \"Skype\" });\n icons.push({ id: \"foursquare\", name: \"Foursquare\" });\n icons.push({ id: \"trello\", name: \"Trello\" });\n icons.push({ id: \"female\", name: \"Female\" });\n icons.push({ id: \"male\", name: \"Male\" });\n icons.push({ id: \"gittip\", name: \"Gittip\" });\n icons.push({ id: \"sun-o\", name: \"Sun Outlined\" });\n icons.push({ id: \"moon-o\", name: \"Moon Outlined\" });\n icons.push({ id: \"archive\", name: \"Archive\" });\n icons.push({ id: \"bug\", name: \"Bug\" });\n icons.push({ id: \"vk\", name: \"VK\" });\n icons.push({ id: \"weibo\", name: \"Weibo\" });\n icons.push({ id: \"renren\", name: \"Renren\" });\n icons.push({ id: \"pagelines\", name: \"Pagelines\" });\n icons.push({ id: \"stack-exchange\", name: \"Stack Exchange\" });\n icons.push({ id: \"arrow-circle-o-right\", name: \"Arrow Circle Outlined Right\" });\n icons.push({ id: \"arrow-circle-o-left\", name: \"Arrow Circle Outlined Left\" });\n icons.push({ id: \"caret-square-o-left\", name: \"Caret Square Outlined Left\" });\n icons.push({ id: \"dot-circle-o\", name: \"Dot Circle O\" });\n icons.push({ id: \"wheelchair\", name: \"Wheelchair\" });\n icons.push({ id: \"vimeo-square\", name: \"Vimeo Square\" });\n icons.push({ id: \"try\", name: \"Turkish Lira (TRY)\" });\n icons.push({ id: \"plus-square-o\", name: \"Plus Square Outlined\" });\n icons.push({ id: \"space-shuttle\", name: \"Space Shuttle\" });\n icons.push({ id: \"slack\", name: \"Slack Logo\" });\n icons.push({ id: \"envelope-square\", name: \"Envelope Square\" });\n icons.push({ id: \"wordpress\", name: \"Wordpress Logo\" });\n icons.push({ id: \"openid\", name: \"OpenID\" });\n icons.push({ id: \"university\", name: \"University\" });\n icons.push({ id: \"graduation-cap\", name: \"Graduation Cap\" });\n icons.push({ id: \"yahoo\", name: \"Yahoo Logo\" });\n icons.push({ id: \"google\", name: \"Google Logo\" });\n icons.push({ id: \"reddit\", name: \"reddit Logo\" });\n icons.push({ id: \"reddit-square\", name: \"reddit Square\" });\n icons.push({ id: \"stumbleupon-circle\", name: \"StumbleUpon Circle\" });\n icons.push({ id: \"stumbleupon\", name: \"StumbleUpon Logo\" });\n icons.push({ id: \"delicious\", name: \"Delicious Logo\" });\n icons.push({ id: \"digg\", name: \"Digg Logo\" });\n icons.push({ id: \"pied-piper\", name: \"Pied Piper Logo\" });\n icons.push({ id: \"pied-piper-alt\", name: \"Pied Piper Alternate Logo\" });\n icons.push({ id: \"drupal\", name: \"Drupal Logo\" });\n icons.push({ id: \"joomla\", name: \"Joomla Logo\" });\n icons.push({ id: \"language\", name: \"Language\" });\n icons.push({ id: \"fax\", name: \"Fax\" });\n icons.push({ id: \"building\", name: \"Building\" });\n icons.push({ id: \"child\", name: \"Child\" });\n icons.push({ id: \"paw\", name: \"Paw\" });\n icons.push({ id: \"spoon\", name: \"spoon\" });\n icons.push({ id: \"cube\", name: \"Cube\" });\n icons.push({ id: \"cubes\", name: \"Cubes\" });\n icons.push({ id: \"behance\", name: \"Behance\" });\n icons.push({ id: \"behance-square\", name: \"Behance Square\" });\n icons.push({ id: \"steam\", name: \"Steam\" });\n icons.push({ id: \"steam-square\", name: \"Steam Square\" });\n icons.push({ id: \"recycle\", name: \"Recycle\" });\n icons.push({ id: \"car\", name: \"Car\" });\n icons.push({ id: \"taxi\", name: \"Taxi\" });\n icons.push({ id: \"tree\", name: \"Tree\" });\n icons.push({ id: \"spotify\", name: \"Spotify\" });\n icons.push({ id: \"deviantart\", name: \"deviantART\" });\n icons.push({ id: \"soundcloud\", name: \"SoundCloud\" });\n icons.push({ id: \"database\", name: \"Database\" });\n icons.push({ id: \"file-pdf-o\", name: \"PDF File Outlined\" });\n icons.push({ id: \"file-word-o\", name: \"Word File Outlined\" });\n icons.push({ id: \"file-excel-o\", name: \"Excel File Outlined\" });\n icons.push({ id: \"file-powerpoint-o\", name: \"Powerpoint File Outlined\" });\n icons.push({ id: \"file-image-o\", name: \"Image File Outlined\" });\n icons.push({ id: \"file-archive-o\", name: \"Archive File Outlined\" });\n icons.push({ id: \"file-audio-o\", name: \"Audio File Outlined\" });\n icons.push({ id: \"file-video-o\", name: \"Video File Outlined\" });\n icons.push({ id: \"file-code-o\", name: \"Code File Outlined\" });\n icons.push({ id: \"vine\", name: \"Vine\" });\n icons.push({ id: \"codepen\", name: \"Codepen\" });\n icons.push({ id: \"jsfiddle\", name: \"jsFiddle\" });\n icons.push({ id: \"life-ring\", name: \"Life Ring\" });\n icons.push({ id: \"circle-o-notch\", name: \"Circle Outlined Notched\" });\n icons.push({ id: \"rebel\", name: \"Rebel Alliance\" });\n icons.push({ id: \"empire\", name: \"Galactic Empire\" });\n icons.push({ id: \"git-square\", name: \"Git Square\" });\n icons.push({ id: \"git\", name: \"Git\" });\n icons.push({ id: \"hacker-news\", name: \"Hacker News\" });\n icons.push({ id: \"tencent-weibo\", name: \"Tencent Weibo\" });\n icons.push({ id: \"qq\", name: \"QQ\" });\n icons.push({ id: \"weixin\", name: \"Weixin (WeChat)\" });\n icons.push({ id: \"paper-plane\", name: \"Paper Plane\" });\n icons.push({ id: \"paper-plane-o\", name: \"Paper Plane Outlined\" });\n icons.push({ id: \"history\", name: \"History\" });\n icons.push({ id: \"circle-thin\", name: \"Circle Outlined Thin\" });\n icons.push({ id: \"header\", name: \"header\" });\n icons.push({ id: \"paragraph\", name: \"paragraph\" });\n icons.push({ id: \"sliders\", name: \"Sliders\" });\n icons.push({ id: \"share-alt\", name: \"Share Alt\" });\n icons.push({ id: \"share-alt-square\", name: \"Share Alt Square\" });\n icons.push({ id: \"bomb\", name: \"Bomb\" });\n icons.push({ id: \"futbol-o\", name: \"Futbol Outlined\" });\n icons.push({ id: \"tty\", name: \"TTY\" });\n icons.push({ id: \"binoculars\", name: \"Binoculars\" });\n icons.push({ id: \"plug\", name: \"Plug\" });\n icons.push({ id: \"slideshare\", name: \"Slideshare\" });\n icons.push({ id: \"twitch\", name: \"Twitch\" });\n icons.push({ id: \"yelp\", name: \"Yelp\" });\n icons.push({ id: \"newspaper-o\", name: \"Newspaper Outlined\" });\n icons.push({ id: \"wifi\", name: \"WiFi\" });\n icons.push({ id: \"calculator\", name: \"Calculator\" });\n icons.push({ id: \"paypal\", name: \"Paypal\" });\n icons.push({ id: \"google-wallet\", name: \"Goole Wallet\" });\n icons.push({ id: \"cc-visa\", name: \"Visa Credit Card\" });\n icons.push({ id: \"cc-mastercard\", name: \"MasterCard Credit Card\" });\n icons.push({ id: \"cc-discover\", name: \"Discover Credit Card\" });\n icons.push({ id: \"cc-amex\", name: \"American Express Credit Card\" });\n icons.push({ id: \"cc-paypal\", name: \"Paypal Credit Card\" });\n icons.push({ id: \"cc-stripe\", name: \"Stripe Credit Card\" });\n icons.push({ id: \"bell-slash\", name: \"Bell Slash\" });\n icons.push({ id: \"bell-slash-o\", name: \"Bell Slash Outlined\" });\n icons.push({ id: \"trash\", name: \"Trash\" });\n icons.push({ id: \"copyright\", name: \"Copyright\" });\n icons.push({ id: \"at\", name: \"At\" });\n icons.push({ id: \"eyedropper\", name: \"Eyedropper\" });\n icons.push({ id: \"paint-brush\", name: \"Paint Brush\" });\n icons.push({ id: \"birthday-cake\", name: \"Birthday Cake\" });\n icons.push({ id: \"area-chart\", name: \"Area Chart\" });\n icons.push({ id: \"pie-chart\", name: \"Pie Chart\" });\n icons.push({ id: \"line-chart\", name: \"Line Chart\" });\n icons.push({ id: \"lastfm\", name: \"last.fm\" });\n icons.push({ id: \"lastfm-square\", name: \"last.fm Square\" });\n icons.push({ id: \"toggle-off\", name: \"Toggle Off\" });\n icons.push({ id: \"toggle-on\", name: \"Toggle On\" });\n icons.push({ id: \"bicycle\", name: \"Bicycle\" });\n icons.push({ id: \"bus\", name: \"Bus\" });\n icons.push({ id: \"ioxhost\", name: \"ioxhost\" });\n icons.push({ id: \"angellist\", name: \"AngelList\" });\n icons.push({ id: \"cc\", name: \"Closed Captions\" });\n icons.push({ id: \"ils\", name: \"Shekel (ILS)\" });\n icons.push({ id: \"meanpath\", name: \"meanpath\" });\n return icons;\n };\n return iconlist;\n }());\n return iconlist;\n});\n\n", "define('common/commands',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var DelegateCommand = (function () {\n function DelegateCommand(target, context) {\n this._target = target;\n this._context = context;\n }\n DelegateCommand.prototype.execute = function (param) {\n this._target.call(this._context, param);\n };\n return DelegateCommand;\n }());\n exports.DelegateCommand = DelegateCommand;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/q/Q.d.ts\" />\n/// <reference path=\"../../../../Scripts/typings/durandal/durandal.d.ts\" />\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/navigationmanager/viewmodels/index',[\"require\", \"exports\", \"models/breeze\", \"common/viewmodelbase\", \"common/parts\", \"common/commands\", \"areas/navigationmanager/services/navigationrepository\", \"areas/navigationmanager/services/mappings\", \"areas/navigationmanager/services/iconlist\", \"areas/navigationmanager/commands/createnavigationnodecommand\", \"areas/navigationmanager/commands/removenavigationnodecommand\", \"areas/navigationmanager/commands/movenavigationnodecommand\", \"areas/navigationmanager/commands/savenavigationmodelcommand\", \"areas/navigationmanager/commands/creategroupcommand\", \"areas/navigationmanager/commands/removegroupcommand\", \"areas/navigationmanager/parts/loadmodules\", \"areas/navigationmanager/parts/createnavigationnode\", \"areas/navigationmanager/parts/removenavigationnode\", \"areas/navigationmanager/parts/movenavigationnode\", \"areas/navigationmanager/parts/savenavigationmodel\", \"areas/navigationmanager/parts/creategroup\", \"areas/navigationmanager/parts/removegroup\"], function (require, exports, Data, ViewModel, Parts, Commanding, Repository, Mapping, IconList, CreateNavigationNodeCommand, RemoveNavigationNodeCommand, MoveNavigationNodeCommand, SaveNavigationModelCommand, CreateGroupCommand, RemoveGroupCommand, LoadModules, CreateNavigationNode, RemoveNavigationNode, MoveNavigationNode, SaveNavigationModel, CreateGroup, RemoveGroup) {\n \"use strict\";\n var IndexViewModel = (function (_super) {\n __extends(IndexViewModel, _super);\n // #region ctor\n function IndexViewModel() {\n _super.call(this);\n this._navigations = new Repository.NavigationRepository();\n this.navigationItems = [];\n this.shortcuts = [];\n var that = this;\n this.title = $.t(\"app:modules.navigationManager.headline_title\", { ifMissing: \"Navigationskonfiguration\" });\n ko.track(this, [\"currentNavigationModel\", \"currentNode\", \"selectedNode\", \"shortcuts\", \"navigationItems\", \"icons\", \"groups\", \"selectedGroup\", \"memberTypeModules\"]);\n }\n // #endregion\n // #region overrides\n IndexViewModel.prototype.onActivated = function (context) {\n if (this.controller == null) {\n return Q.when(this.initialize());\n }\n return null;\n };\n // #endregion\n // #region command handling\n IndexViewModel.prototype.onOpenNavigationCommand = function (navigation) {\n this.currentNavigationModel = navigation;\n this.memberTypeModules = this.getModulesForMemberType();\n this.onNavigate(this.currentNavigationModel.model);\n };\n IndexViewModel.prototype.onEditNode = function (symbol) {\n this.selectedNode = symbol;\n this.selectedGroup = null;\n };\n IndexViewModel.prototype.onEditGroup = function (symbol) {\n this.selectedNode = null;\n this.selectedGroup = symbol;\n };\n IndexViewModel.prototype.onNavigate = function (symbol) {\n var _this = this;\n this.currentNode = symbol;\n this.groups = symbol.groups;\n var nodeType = symbol.type;\n var navigationItems = [];\n if (nodeType != \"ApplicationLink\") {\n this.selectedNode = null;\n this.selectedGroup = null;\n this.shortcuts.removeAll();\n this.navigationItems.removeAll();\n var children = nodeType == \"ApplicationLink\" ? symbol.parent.children : symbol.children;\n var list = nodeType == \"Application\" || nodeType == \"ApplicationLink\" ? this.shortcuts : navigationItems;\n Enumerable.From(children)\n .ForEach(function (child) {\n list.push(child);\n });\n // gruppierung\n Enumerable.From(this.groups)\n .OrderBy(function (x) { return x.index; })\n .ForEach(function (gr) {\n var itm = {\n key: gr.key,\n list: Enumerable.From(navigationItems).Where(function (_) { return _.groupId == gr.key; }).OrderBy(function (x) { return x.index; }).ToArray(),\n parentGroup: gr\n };\n _this.navigationItems.push(itm);\n });\n // Sort navigation items by group index\n this.navigationItems = Enumerable.From(this.navigationItems).OrderBy(function (x) { return x.parentGroup != null ? x.parentGroup.index : 0; }).ToArray();\n }\n };\n // #endregion\n IndexViewModel.prototype.initialize = function () {\n var _this = this;\n this.icons = IconList.getFullIconList();\n this.controller = new Data.BreezeDataController(this._navigations)\n .configure(function (d) { return _this.mapEntities(d); });\n // processes\n Parts.PartBinder.bind(new LoadModules(), function (symbol) { return _this.modules = symbol; }).process({});\n var createNavigationNode = Parts.PartBinder.bind(new CreateNavigationNode(function () { return _this.currentNode; }), function (symbol) {\n _this.onNavigate(_this.currentNode);\n _this.onEditNode(symbol);\n });\n var removeNavigationNode = Parts.PartBinder.bind(new RemoveNavigationNode(), function (symbol) {\n _this.onNavigate(_this.currentNode);\n });\n var moveNavigationNode = Parts.PartBinder.bind(new MoveNavigationNode(), function (symbol) {\n _this.onNavigate(_this.currentNode);\n _this.onEditNode(symbol);\n });\n var saveNavigationModel = Parts.PartBinder.bind(new SaveNavigationModel(this.taskManager), function (symbol) {\n _this.onNavigate(_this.currentNode);\n });\n var createGroup = Parts.PartBinder.bind(new CreateGroup(function () { return _this.currentNode; }), function (symbol) {\n _this.onNavigate(_this.currentNode);\n _this.onEditGroup(symbol);\n });\n var removeGroup = Parts.PartBinder.bind(new RemoveGroup(function () { return _this.currentNode; }), function (symbol) {\n _this.onNavigate(_this.currentNode);\n });\n // commands\n this.openNavigationModelCommand = new Commanding.DelegateCommand(this.onOpenNavigationCommand, this);\n this.saveNavigationModelCommand = new SaveNavigationModelCommand(saveNavigationModel);\n this.editNodeCommand = new Commanding.DelegateCommand(this.onEditNode, this);\n this.navigateCommand = new Commanding.DelegateCommand(this.onNavigate, this);\n this.createNavigationNodeCommand = new CreateNavigationNodeCommand(createNavigationNode);\n this.removeNavigationNodeCommand = new RemoveNavigationNodeCommand(removeNavigationNode);\n this.moveNavigationNodeCommand = new MoveNavigationNodeCommand(moveNavigationNode);\n this.editGroupCommand = new Commanding.DelegateCommand(this.onEditGroup, this);\n this.createGroupCommand = new CreateGroupCommand(createGroup);\n this.removeGroupCommand = new RemoveGroupCommand(removeGroup);\n };\n IndexViewModel.prototype.mapEntities = function (entities) {\n var items = [];\n for (var i = 0; i < entities.length; i++) {\n var item = entities[i];\n items.push(Mapping.mapNavigationFromDTO(item));\n }\n // result\n return items;\n };\n IndexViewModel.prototype.getModulesForMemberType = function () {\n var _this = this;\n var items = this.modules.filter(function (module) { return module.memberType === _this.currentNavigationModel.memberType; });\n return items;\n };\n return IndexViewModel;\n }(ViewModel.ViewModelBase));\n var instance = new IndexViewModel();\n return instance;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/navigationmanager/viewmodels/memberconfigurator',[\"require\", \"exports\", \"models/portal\", \"common/viewmodelbase\", \"common/parts\", \"common/tuple\", \"common/commands\", \"areas/navigationmanager/services/mappings\", \"areas/navigationmanager/parts/loadclient\", \"areas/navigationmanager/parts/loadnavigation\", \"areas/navigationmanager/parts/loadmodulelocks\", \"areas/navigationmanager/parts/savemodulelocks\"], function (require, exports, Portal, ViewModel, Parts, Tuple, Commanding, Mapping, LoadClient, LoadNavigation, LoadModuleLocks, SaveModuleLocks) {\n \"use strict\";\n var MemberConfiguratorViewModel = (function (_super) {\n __extends(MemberConfiguratorViewModel, _super);\n // #region ctor\n function MemberConfiguratorViewModel() {\n _super.call(this);\n this._lockedModules = ko.observableArray();\n this.navigationItems = [];\n this.shortcuts = [];\n this.breadCrumb = new Portal.ModuleBreadCrumbItemHolder();\n this.title = $.t(\"app:modules.navigationManager.headline_title\", { ifMissing: \"Navigationskonfiguration\" });\n ko.track(this, [\"currentNode\", \"selectedNode\", \"shortcuts\", \"navigationItems\"]);\n }\n // #endregion\n // #region overrides\n MemberConfiguratorViewModel.prototype.onActivated = function (context) {\n this._memberId = context.queryString.memberId;\n return this.initialize(this._memberId);\n };\n MemberConfiguratorViewModel.prototype.isDisabled = function (symbol) {\n if (symbol == null)\n return true;\n if (symbol.shopId == null)\n return false;\n return this._lockedModules.indexOf(symbol.shopId.toLowerCase()) != -1;\n };\n MemberConfiguratorViewModel.prototype.initialize = function (memberId) {\n var _this = this;\n var clientId = memberId; // jQuery.base64.decode(memberId, true);\n var progress = new Parts.Progress(this.taskManager);\n var join = Parts.PartBinder.bind(new Parts.Join(), progress.process.bind(progress));\n var loadClient = Parts.PartBinder.bind(new LoadClient(), join.first.bind(join));\n var joinNavigator = Parts.PartBinder.bind(new Parts.Join(), join.second.bind(join));\n var loadNavigation = Parts.PartBinder.bind(new LoadNavigation(), joinNavigator.first.bind(joinNavigator));\n var loadModuleLocks = Parts.PartBinder.bind(new LoadModuleLocks(), joinNavigator.second.bind(joinNavigator));\n progress.output.connect(function (data) {\n var client = data.item1;\n var navigatorData = data.item2;\n _this.breadCrumb.items.push(Portal.BreadCrumbItem.from(client.name, \"fa-user\"));\n Enumerable.From(navigatorData.item2)\n .ForEach(function (m) { return _this._lockedModules.push(m); });\n _this.onNavigate(Mapping.parseNode(navigatorData.item1, null));\n }, this);\n this.saveModuleLocksCommand = new Commanding.DelegateCommand(this.onSaveModuleLocks, this);\n this.editNodeCommand = new Commanding.DelegateCommand(this.onEditNode, this);\n this.navigateCommand = new Commanding.DelegateCommand(this.onNavigate, this);\n this.lockNavigationNodeCommand = new Commanding.DelegateCommand(this.onLockNavigationNode, this);\n this.unlockNavigationNodeCommand = new Commanding.DelegateCommand(this.onUnlockNavigationNode, this);\n var workStatus = $.t(\"app:modules.navigationManager.message_loadBaseInformations\", { ifMissing: \"Basisinformationen werden geladen.\" });\n progress.start(workStatus, function () {\n loadClient.process(clientId);\n loadNavigation.process(clientId);\n loadModuleLocks.process(clientId);\n });\n return progress.deferred.promise;\n };\n // #region command handling\n MemberConfiguratorViewModel.prototype.onNavigate = function (symbol) {\n var _this = this;\n this.currentNode = symbol;\n var nodeType = symbol.type;\n var navigationItems = [];\n if (nodeType != \"ApplicationLink\") {\n this.selectedNode = null;\n this.shortcuts.removeAll();\n this.navigationItems.removeAll();\n var children = nodeType == \"ApplicationLink\" ? symbol.parent.children : symbol.children;\n var list = nodeType == \"Application\" || nodeType == \"ApplicationLink\" ? this.shortcuts : navigationItems;\n Enumerable.From(children)\n .ForEach(function (child) {\n list.push(child);\n });\n // gruppierung\n Enumerable.From(navigationItems)\n .GroupBy(function (x) { return x.groupId; })\n .ForEach(function (group) {\n var itm = { key: group.Key(), list: group.ToArray() };\n _this.navigationItems.push(itm);\n });\n }\n };\n MemberConfiguratorViewModel.prototype.onEditNode = function (symbol) {\n this.selectedNode = symbol;\n };\n MemberConfiguratorViewModel.prototype.onSaveModuleLocks = function (symbol) {\n var saveModuleLocks = Parts.PartBinder.bind(new SaveModuleLocks(this.taskManager), function (symbol) { });\n var tuple = new Tuple(this._memberId, this._lockedModules);\n saveModuleLocks.process(tuple);\n };\n MemberConfiguratorViewModel.prototype.onLockNavigationNode = function (symbol) {\n if (!this.isDisabled(symbol)) {\n this._lockedModules.push(symbol.shopId.toLowerCase());\n this.onNavigate(this.currentNode);\n this.selectedNode = symbol;\n }\n };\n MemberConfiguratorViewModel.prototype.onUnlockNavigationNode = function (symbol) {\n if (this.isDisabled(symbol)) {\n this._lockedModules.remove(symbol.shopId.toLowerCase());\n this.onNavigate(this.currentNode);\n this.selectedNode = symbol;\n }\n };\n return MemberConfiguratorViewModel;\n }(ViewModel.ViewModelBase));\n return MemberConfiguratorViewModel;\n});\n\n", "define('areas/organizationmanager/commands/createinfrastructurecommand',[\"require\", \"exports\", \"services/trace\", \"services/httpclient\"], function (require, exports, Trace, Http) {\n \"use strict\";\n var CreateInfrastructureCommand = (function () {\n function CreateInfrastructureCommand(taskManager) {\n this._taskManager = taskManager;\n }\n CreateInfrastructureCommand.prototype.execute = function (organization) {\n try {\n var httpClient = new Http.Channel();\n this._taskManager.start(\"Nachricht für die Organisationsstrukture wird verschickt...\", function () {\n httpClient.putData(\"/api/organization/createorganizationstructure?organizationId=\" + organization.id, Http.ServiceTarget.portalApi, null).\n then(function (data) {\n Trace.traceInformation(\"Die Anforderung um die Datenbank zu erstellen wurde erfolgreich verschickt.\");\n }).fail(function (error) {\n Trace.traceError(error.responseJSON.Message, null, \"organizationmanager:index\", true);\n });\n });\n }\n catch (exception) {\n Trace.traceError(exception, null, \"organizationmanager:index\", true);\n }\n };\n return CreateInfrastructureCommand;\n }());\n return CreateInfrastructureCommand;\n});\n\n", "define('areas/organizationmanager/commands/directloginmembercommand',[\"require\", \"exports\", \"services/trace\", \"services/httpclient\"], function (require, exports, Trace, Http) {\n \"use strict\";\n var DirectLoginMemberCommand = (function () {\n function DirectLoginMemberCommand() {\n }\n DirectLoginMemberCommand.prototype.execute = function (member) {\n try {\n var httpClient = new Http.Channel();\n var action = \"/api/networkmember/getdirectlogin\";\n var query = \"?memberId=\" + member.id + \"&isMagic=false\";\n httpClient.getData(action + query, Http.ServiceTarget.portalApi).\n then(function (data) {\n window.open(data, \"_blank\");\n }).fail(function (error) {\n Trace.traceError(error.responseJSON.Message, null, \"organizationmanager:networkmembers\", true);\n });\n }\n catch (exception) {\n Trace.traceError(exception, null, \"organizationmanager:networkmembers\", true);\n }\n };\n return DirectLoginMemberCommand;\n }());\n return DirectLoginMemberCommand;\n});\n\n", "define('areas/organizationmanager/commands/directloginorgcommand',[\"require\", \"exports\", \"services/trace\", \"services/httpclient\"], function (require, exports, Trace, Http) {\n \"use strict\";\n var DirectLoginOrgCommand = (function () {\n function DirectLoginOrgCommand() {\n }\n DirectLoginOrgCommand.prototype.execute = function (organization) {\n try {\n var httpClient = new Http.Channel();\n var action = \"/api/organization/getdirectlogin?organizationId=\";\n httpClient.getData(action + organization.id + \"&organizationType=\" + organization.organizationType + \"&isMagic=false\", Http.ServiceTarget.portalApi).\n then(function (data) {\n window.open(data, \"_blank\");\n }).fail(function (error) {\n Trace.traceError(error.responseJSON.Message, null, \"organizationmanager:index\", true);\n });\n return true;\n }\n catch (exception) {\n Trace.traceError(exception, null, \"organizationmanager:index\", true);\n }\n };\n return DirectLoginOrgCommand;\n }());\n return DirectLoginOrgCommand;\n});\n\n", "define('areas/organizationmanager/commands/downloadmemberpdfcommand',[\"require\", \"exports\", \"models/account\", \"services/trace\", \"services/settings\"], function (require, exports, Account, Trace, Configuration) {\n \"use strict\";\n var DownloadMemberPdfCommand = (function () {\n function DownloadMemberPdfCommand() {\n }\n DownloadMemberPdfCommand.prototype.execute = function (member) {\n try {\n var path = \"download/logindocument/zugangsdaten.pdf\";\n var query = \"?organizationId=\" + member.organizationId + \"&memberId=\" + member.id + \"&sessionId=\" + Account.Principal.current.sessionId;\n var service = Configuration.Settings.getServiceFor(\"portalstorage\", path, query);\n window.open(service, \"_blank\");\n }\n catch (exception) {\n Trace.traceError(exception, null, \"organizationmanager:index\", true);\n }\n };\n return DownloadMemberPdfCommand;\n }());\n return DownloadMemberPdfCommand;\n});\n\n", "define('areas/organizationmanager/commands/downloadorgpdfcommand',[\"require\", \"exports\", \"models/account\", \"services/trace\", \"services/settings\"], function (require, exports, Account, Trace, Configuration) {\n \"use strict\";\n var DownloadOrgPdfCommand = (function () {\n function DownloadOrgPdfCommand() {\n }\n DownloadOrgPdfCommand.prototype.execute = function (organization) {\n try {\n var path = \"download/logindocument/zugangsdaten.pdf\";\n var query = \"?organizationId=\" + organization.id + \"&sessionId=\" + Account.Principal.current.sessionId;\n var service = Configuration.Settings.getServiceFor(\"portalstorage\", path, query);\n window.open(service, \"_blank\");\n }\n catch (exception) {\n Trace.traceError(exception, null, \"organizationmanager:networkmember\", true);\n }\n };\n return DownloadOrgPdfCommand;\n }());\n return DownloadOrgPdfCommand;\n});\n\n", "define('areas/organizationmanager/commands/resendactivationcommand',[\"require\", \"exports\", \"services/trace\", \"services/httpclient\"], function (require, exports, Trace, Http) {\n \"use strict\";\n var ResendActivationCommand = (function () {\n function ResendActivationCommand(taskManager) {\n this._taskManager = taskManager;\n }\n ResendActivationCommand.prototype.execute = function (organization) {\n try {\n var httpClient = new Http.Channel();\n this._taskManager.startAsync(\"Portalaktivierungsnachricht wird gesendet...\", function () {\n return httpClient.putDataAsync(\"/api/organization/resendportalactivation?organizationId=\" + organization.id, Http.ServiceTarget.portalApi, null).\n then(function (data) {\n Trace.traceInformation(\"Die Nachricht wurde erfolgreich verschickt.\");\n }).fail(function (error) {\n Trace.traceError(error.responseJSON.Message, null, \"organizationmanager:index\", true);\n });\n });\n }\n catch (exception) {\n Trace.traceError(exception, null, \"organizationmanager:index\", true);\n }\n };\n return ResendActivationCommand;\n }());\n return ResendActivationCommand;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/durandal/durandal.d.ts\" />\ndefine('areas/organizationmanager/commands/showuserdatacommand',[\"require\", \"exports\", \"durandal/app\"], function (require, exports, App) {\n \"use strict\";\n var ShowUserDataCommand = (function () {\n function ShowUserDataCommand(organizationUri, organizationUrl) {\n this._organizationUri = organizationUri;\n this._organizationUrl = organizationUrl;\n }\n ShowUserDataCommand.prototype.execute = function (symbol) {\n var userData = \"\";\n var portalUriParts = this._organizationUri.split(\"\\\\\");\n if (portalUriParts.length > 1) {\n userData = \"Zugangsnummer:\t\t\" + portalUriParts[1] + \"\\r\\n\";\n }\n userData += \"Benutzername:\t\" + symbol.loginName + \"\\r\\n\\r\\n\";\n if (symbol.loginName == \"Gateway\") {\n userData += \"Command Line:\t\";\n userData += \"Addison.Tools.MessageGatewayExplorer.exe /cmd:setlogin /user:\" + symbol.id;\n userData += \"\\r\\n\\r\\n\";\n }\n else {\n userData += \"Portal URL:\t\" + this._organizationUrl + \"\\r\\n\\r\\n\";\n }\n //insert id's\n userData += \"\\r\\n\\r\\nOrganization Id:\t\" + symbol.organizationId + \"\\r\\n\";\n userData += \"Networkmember Id:\t\" + symbol.id;\n App.showDialog(\"areas/organizationmanager/viewmodels/userdata\", userData);\n };\n return ShowUserDataCommand;\n }());\n return ShowUserDataCommand;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/moment/moment.d.ts\" />\ndefine('areas/organizationmanager/models/bindable',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var OrganizationVM = (function () {\n function OrganizationVM() {\n ko.track(this);\n }\n return OrganizationVM;\n }());\n exports.OrganizationVM = OrganizationVM;\n var NetworkMemberVM = (function () {\n function NetworkMemberVM() {\n }\n return NetworkMemberVM;\n }());\n exports.NetworkMemberVM = NetworkMemberVM;\n});\n\n", "define('areas/organizationmanager/models/dto',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var Organization = (function () {\n function Organization() {\n }\n return Organization;\n }());\n exports.Organization = Organization;\n var NetworkMember = (function () {\n function NetworkMember() {\n }\n return NetworkMember;\n }());\n exports.NetworkMember = NetworkMember;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/organizationmanager/models/organizationbase',[\"require\", \"exports\", \"common/viewmodelbase\", \"common/constants\"], function (require, exports, common, constants) {\n \"use strict\";\n var OrganizationBase = (function (_super) {\n __extends(OrganizationBase, _super);\n function OrganizationBase() {\n _super.call(this);\n this.name = \"\";\n this.typ = \"\";\n this.organizationTypes = new Array();\n this.title = $.t(\"app:modules.organizationmanager.headline_titleOrganizationManager\", { ifMissing: \"Organisationsverwaltung\" });\n ko.track(this, ['name', 'typ', 'organizationTypes']);\n }\n OrganizationBase.prototype.onActivated = function (context) {\n if (this.organizationTypes.length == 0) {\n this.setOrganizationsTypes();\n }\n };\n OrganizationBase.prototype.setOrganizationsTypes = function () {\n var all = $.t(\"app:modules.common.constant_all\", { ifMissing: \"Alle\" });\n this.organizationTypes.push({ organizationType: \"Alle\", displayName: all });\n var organizationType = constants.OrganizationTypes.Stb;\n var displayName = constants.OrganizationTypes.getDisplayNameForGivenOrganizationType(organizationType);\n this.organizationTypes.push({ organizationType: organizationType, displayName: displayName });\n organizationType = constants.OrganizationTypes.Client;\n displayName = constants.OrganizationTypes.getDisplayNameForGivenOrganizationType(organizationType);\n this.organizationTypes.push({ organizationType: organizationType, displayName: displayName });\n };\n return OrganizationBase;\n }(common.ListViewModelBase));\n exports.OrganizationBase = OrganizationBase;\n});\n\n", "define('areas/organizationmanager/services/mappings',[\"require\", \"exports\", \"areas/organizationmanager/models/bindable\", \"services/settings\", \"common/constants\"], function (require, exports, vm, settings, constants) {\n \"use strict\";\n var Mapper = (function () {\n function Mapper() {\n }\n Mapper.mapOrganizationItemFromDTO = function (source) {\n var item = new vm.OrganizationVM();\n var host = settings.Settings.getHost();\n item.id = source.id;\n item.name = source.name;\n item.organizationType = source.organizationType;\n item.externalKey = source.externalKey;\n if (source.organizationType.toLowerCase() != constants.OrganizationTypes.Client.toLowerCase()) {\n item.countClientsOrTaxConsultant = source.clientCount.toString();\n }\n else {\n item.countClientsOrTaxConsultant = source.parentName;\n }\n item.memberCount = source.memberCount;\n item.databaseConnection = source.serverName + \"/\" + source.databaseName;\n item.uri = source.uri;\n item.url = host.substring(0, host.indexOf(\":\") + 1) + \"//\" + item.uri + host.substring(host.indexOf(\".\"));\n if (source.organizationType.toLowerCase() == constants.OrganizationTypes.Client.toLowerCase()) {\n item.url = item.url.replace(source.uri, source.uri.split(\"\\\\\")[0]);\n }\n return item;\n };\n Mapper.mapNetworkMemberItemFromDTO = function (source) {\n var item = new vm.NetworkMemberVM();\n item.id = source.id;\n item.organizationId = source.organizationId;\n item.loginName = source.loginName;\n item.eMail = source.email;\n item.memberType = this.getMemberType(source.claimsXml);\n item.lastLogin = source.lastLoggedIn != null ? moment(source.lastLoggedIn) : null;\n item.loginCount = source.loginCount ? source.loginCount : 0;\n return item;\n };\n Mapper.getMemberType = function (xml) {\n var xmlDocument = jQuery.parseXML(xml);\n var nodes = xmlDocument.getElementsByTagName(\"cl\");\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].attributes.getNamedItem(\"name\").value == \"http://claims.addison.de/membertype\") {\n return nodes[i].textContent;\n }\n }\n return null;\n };\n return Mapper;\n }());\n exports.Mapper = Mapper;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/breeze/breeze.d.ts\" />\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/organizationmanager/services/networkmemberrepository',[\"require\", \"exports\", \"models/breeze\", \"services/settings\"], function (require, exports, Data, Configuration) {\n \"use strict\";\n var NetworkMemberRepository = (function (_super) {\n __extends(NetworkMemberRepository, _super);\n function NetworkMemberRepository() {\n var serviceUrl = Configuration.Settings.getApiFor(\"breeze/networkmember\");\n _super.call(this, serviceUrl);\n }\n NetworkMemberRepository.prototype.onMetadataRequested = function (store) {\n this.addNetworkMemberType(store);\n };\n NetworkMemberRepository.prototype.addNetworkMemberType = function (store) {\n var type = new breeze.ComplexType();\n type.shortName = \"NetworkMember\";\n type.namespace = \"AIP.API.SocialNetwork.Model\";\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"Id\", dataType: breeze.DataType.Guid, isNullable: false, isPartOfKey: true }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"OrganizationId\", dataType: breeze.DataType.Guid, isNullable: false, isPartOfKey: false }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"Email\", dataType: breeze.DataType.String, isNullable: true, isPartOfKey: false }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"LoginName\", dataType: breeze.DataType.String, isNullable: true, isPartOfKey: false }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"LastLoggedIn\", dataType: breeze.DataType.DateTime, isNullable: true, isPartOfKey: false }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"LoginCount\", dataType: breeze.DataType.Int32, isNullable: true, isPartOfKey: false }));\n store.addEntityType(type);\n };\n return NetworkMemberRepository;\n }(Data.BreezeRepository));\n exports.NetworkMemberRepository = NetworkMemberRepository;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/breeze/breeze.d.ts\" />\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/organizationmanager/services/organizationsrepository',[\"require\", \"exports\", \"models/breeze\", \"services/settings\"], function (require, exports, Data, Configuration) {\n \"use strict\";\n var OrganizationRepository = (function (_super) {\n __extends(OrganizationRepository, _super);\n function OrganizationRepository() {\n var serviceUrl = Configuration.Settings.getApiFor(\"breeze/organization\");\n _super.call(this, serviceUrl);\n }\n OrganizationRepository.prototype.onMetadataRequested = function (store) {\n this.addOrganizationType(store);\n };\n OrganizationRepository.prototype.addOrganizationType = function (store) {\n var type = new breeze.ComplexType();\n type.shortName = \"OrganizationSummary\";\n type.namespace = \"AIP.API.SocialNetwork.Model\";\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"Id\", dataType: breeze.DataType.Guid, isNullable: false, isPartOfKey: true }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"Name\", dataType: breeze.DataType.String, isNullable: true, isPartOfKey: false }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"OrganizationType\", dataType: breeze.DataType.Int32, isNullable: true, isPartOfKey: false }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"ParentName\", dataType: breeze.DataType.String, isNullable: true, isPartOfKey: false }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"ClientCount\", dataType: breeze.DataType.Int32, isNullable: true, isPartOfKey: false }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"MemberCount\", dataType: breeze.DataType.Int32, isNullable: true, isPartOfKey: false }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"ExternalKey\", dataType: breeze.DataType.String, isNullable: true, isPartOfKey: false }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"Uri\", dataType: breeze.DataType.String, isNullable: true, isPartOfKey: false }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"ServerName\", dataType: breeze.DataType.String, isNullable: true, isPartOfKey: false }));\n type.addProperty(new breeze.DataProperty({ nameOnServer: \"DatabaseName\", dataType: breeze.DataType.String, isNullable: true, isPartOfKey: false }));\n store.addEntityType(type);\n };\n return OrganizationRepository;\n }(Data.BreezeRepository));\n exports.OrganizationRepository = OrganizationRepository;\n});\n\n", "// <reference path=\"../../../../Scripts/typings/durandal/durandal.d.ts\" />\n/// <reference path=\"../../../../Scripts/typings/knockout.es5/knockout.es5.d.ts\" />\n/// <reference path=\"../../../../Scripts/typings/toastr/toastr.d.ts\" />\n/// <reference path=\"../../../../Scripts/typings/q/q.d.ts\" />\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/organizationmanager/viewmodels/changeurl',[\"require\", \"exports\", \"plugins/dialog\", \"common/viewmodelbase\", \"services/trace\", \"services/httpclient\"], function (require, exports, dialog, vm, trace, http) {\n \"use strict\";\n var ChangeUrlViewModel = (function (_super) {\n __extends(ChangeUrlViewModel, _super);\n function ChangeUrlViewModel() {\n _super.call(this);\n this.title = $.t(\"app:modules.organizationmanager.headline_title\", { ifMissing: \"Change Url\" });\n ko.track(this, ['newUri']);\n }\n ChangeUrlViewModel.prototype.onActivated = function (context) {\n this.organizationId = context.callingParameters.get(\"unknown\");\n };\n ChangeUrlViewModel.prototype.changeUri = function () {\n var _this = this;\n var channel = new http.Channel();\n channel.postData(\"/api/organizationuri/saveorganizationuri?organizationId=\" + this.organizationId + \"&newUri=\" + this.newUri, http.ServiceTarget.portalApi, null).\n then(function (resultData) {\n var changeUrlSuccess = $.t(\"app:modules.organizationmanager.message_changeUrlSuccess\", { ifMissing: \"Das Setzen der neuen Uri wurde erfolgreich abgeschlossen.\" });\n trace.traceInformation(changeUrlSuccess);\n }).fail(function (exceptionGeneration) {\n var errorMessage = _this.readErrorMessage(exceptionGeneration);\n var changeUrlFailure = $.t(\"app:modules.organizationmanager.message_changeUrlFailure\", { ifMissing: \"Fehler beim Setzen der Uri \" });\n trace.traceError(changeUrlFailure + errorMessage, null, \"changeurl: organizationmanager\", true);\n dialog.close(_this);\n }).done(function () {\n dialog.close(_this);\n });\n };\n ChangeUrlViewModel.prototype.cancel = function () {\n dialog.close(this);\n };\n ChangeUrlViewModel.prototype.readErrorMessage = function (error) {\n try {\n var errorMessage = error.responseJSON.Message;\n return errorMessage;\n }\n catch (exception) {\n return JSON.stringify(error);\n }\n };\n return ChangeUrlViewModel;\n }(vm.ViewModelBase));\n return ChangeUrlViewModel;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/toastr/toastr.d.ts\" />\n/// <reference path=\"../../../../Scripts/typings/durandal/durandal.d.ts\" />\n/// <reference path=\"../../../../Scripts/typings/knockout.es5/knockout.es5.d.ts\" />\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/organizationmanager/viewmodels/index',[\"require\", \"exports\", \"durandal/app\", \"models/breeze\", \"common/string\", \"common/commands\", \"common/constants\", \"services/httpclient\", \"services/trace\", \"services/navigator\", \"areas/organizationmanager/commands/showuserdatacommand\", \"areas/organizationmanager/commands/resendactivationcommand\", \"areas/organizationmanager/commands/createinfrastructurecommand\", \"areas/organizationmanager/commands/directloginorgcommand\", \"areas/organizationmanager/commands/downloadorgpdfcommand\", \"areas/organizationmanager/services/organizationsrepository\", \"areas/organizationmanager/models/organizationbase\", \"areas/organizationmanager/services/mappings\"], function (require, exports, app, Data, String, Commanding, Constants, HttpClient, Trace, Navigator, ShowUserDataCommand, ResendActivationCommand, CreateInfrastructureCommand, DirectLoginOrgCommand, DownloadOrgPdfCommand, repository, organization, mappings) {\n \"use strict\";\n var IndexViewModel = (function (_super) {\n __extends(IndexViewModel, _super);\n //#endregion\n // #region ctor\n function IndexViewModel() {\n _super.call(this);\n this.showAccountant = false;\n this.organizations = new repository.OrganizationRepository();\n this.filterHandlers = new Array();\n this.greaterThan10Members = false;\n this.searched = false;\n ko.track(this, ['organizationFilter', 'searched', 'greaterThan10Members', 'showAccountant']);\n }\n // #endregion\n //#region override\n IndexViewModel.prototype.onActivated = function (context) {\n _super.prototype.onActivated.call(this, context);\n this.initialize(context);\n };\n //#endregion\n //#region validateUserActions\n IndexViewModel.prototype.isSelectedOrganizationStb = function () {\n if (this.selectedItems().length == 1 && Constants.OrganizationTypes.Stb == this.selectedItems()[0].organizationType) {\n return true;\n }\n return false;\n };\n //#endregion\n //#region state\n IndexViewModel.prototype.showClientLink = function (currentOrganization) {\n if (currentOrganization.organizationType.toLowerCase() == Constants.OrganizationTypes.Stb.toLowerCase() &&\n currentOrganization.countClientsOrTaxConsultant != \"0\") {\n return true;\n }\n return false;\n };\n //#endregion\n //#region navigation\n IndexViewModel.prototype.goBack = function () {\n this.getOrganizations();\n };\n IndexViewModel.prototype.getOrganizations = function () {\n var _this = this;\n this.detachFilterHandlers();\n this.controller.override(\"findbynameanduri\");\n if (!String.isNullOrEmpty(this.name)) {\n this.controller.parameters = { name: this.name };\n }\n else {\n this.controller.parameters = { name: \"\" };\n }\n this.controller.filterDefinitions.modify(function (s) {\n s.remove(\"OrganizationType\");\n if (_this.typ.organizationType != \"Alle\") {\n s.add(Data.BreezeColumnFilter.contains(\"OrganizationType\", _this.typ.organizationType));\n }\n });\n this.controller.load();\n this.attachFilterHandlers();\n this.searched = true;\n this.showAccountant = false;\n };\n IndexViewModel.prototype.getClientsOfOrganization = function (selectedOrganization) {\n this.controller.override(\"getclientsoforganization\", { organizationId: selectedOrganization.id });\n this.controller.filterDefinitions.modify(function (s) {\n s.remove(\"OrganizationType\");\n });\n this.controller.load();\n this.showAccountant = true;\n };\n IndexViewModel.prototype.showMembers = function (organizationToShow) {\n var params = [];\n params.push(new Navigator.NavigationParameter(\"organizationId\", organizationToShow.id));\n params.push(new Navigator.NavigationParameter(\"organizationTyp\", organizationToShow.organizationType));\n params.push(new Navigator.NavigationParameter(\"organizationUri\", organizationToShow.uri));\n Navigator.navigateTo(\"organizationmanager\", \"networkmembers\", \"/networkmembers\", null, params);\n };\n //#endregion\n //#region useractions\n IndexViewModel.prototype.changeOrganizationUri = function () {\n if (this.selectedItems().length > 0) {\n app.showDialog(\"areas/organizationmanager/viewmodels/changeurl\", this.selectedItems()[0].id);\n }\n };\n IndexViewModel.prototype.findAndShowGatewayData = function () {\n var _this = this;\n try {\n var showUserData = new ShowUserDataCommand(this.selectedItems()[0].uri, this.selectedItems()[0].url);\n var httpClient = new HttpClient.Channel();\n httpClient.getData(\"/api/networkmember/byorganization?organizationId=\" + this.selectedItems()[0].id, HttpClient.ServiceTarget.portalApi)\n .then(function (data) {\n var gatewayMember = [];\n for (var i = 0; i < data.length; i++) {\n gatewayMember.push(mappings.Mapper.mapNetworkMemberItemFromDTO(data[i]));\n }\n if (_this.selectedItems()[0].organizationType.toLowerCase() == Constants.OrganizationTypeCodes.Stb) {\n showUserData.execute(gatewayMember.filter(function (x) { return x.loginName == \"Gateway\"; })[0]);\n }\n else if (_this.selectedItems()[0].organizationType.toLowerCase() == Constants.OrganizationTypeCodes.Client) {\n showUserData.execute(gatewayMember.filter(function (x) { return x.memberType == Constants.NetworkMemberTypes.ClientPostmaster; })[0]);\n }\n });\n }\n catch (exception) {\n Trace.traceError(exception.responseJSON.Message, null, \"Organizationmanager\", true);\n }\n };\n //#endregion\n //#region helpers\n IndexViewModel.prototype.applyOrganizationFilter = function () {\n if (!String.isNullOrEmpty(this.name)) {\n var filters = [];\n if (this.greaterThan10Members) {\n filters.push(Data.BreezeColumnFilter.greaterThan(\"MemberCount\", 10));\n }\n this.controller.filterDefinitions.modify(function (s) {\n s.remove(\"MemberCount\");\n s.attach(filters);\n });\n this.controller.load();\n }\n };\n IndexViewModel.prototype.initialize = function (context) {\n this.detachFilterHandlers();\n var all = $.t(\"app:modules.common.constant_all\", { ifMissing: \"Alle\" });\n this.typ = { organizationType: \"Alle\", displayName: all };\n this.setUpController(context);\n this.resendActivationCommand = new ResendActivationCommand(this.taskManager);\n this.createInfrastructureCommand = new CreateInfrastructureCommand(this.taskManager);\n this.directLoginOrgCommand = new DirectLoginOrgCommand();\n this.downloadOrgPdfCommand = new DownloadOrgPdfCommand();\n this.findAndShowGatewayDataCommand = new Commanding.DelegateCommand(this.findAndShowGatewayData, this);\n this.attachFilterHandlers();\n };\n IndexViewModel.prototype.setUpController = function (context) {\n var _this = this;\n var params;\n if (context.queryString != null) {\n params = { name: context.queryString.name };\n this.name = context.queryString.name;\n var tempType = context.queryString.searchTyp;\n if (tempType == \"Alle\") {\n this.typ = this.typ = { organizationType: tempType, displayName: tempType };\n }\n else {\n this.typ = { organizationType: tempType, displayName: Constants.OrganizationTypes.getDisplayNameForGivenOrganizationType(tempType) };\n }\n }\n else {\n params = { name: null };\n }\n if (this.controller == null) {\n this.controller = new Data.BreezeDataController(this.organizations, params).configure(function (result) { return result.map(function (s) { return mappings.Mapper.mapOrganizationItemFromDTO(s); }); });\n this.controller.sortDefinitions.modify(function (s) { return s.add(_this.controller.buildSort(\"Name\", \"desc\")); });\n this.controller.override(\"findbynameanduri\", params);\n }\n };\n IndexViewModel.prototype.attachFilterHandlers = function () {\n var _this = this;\n this.filterHandlers.push(ko.getObservable(this, \"greaterThan10Members\").subscribe(function () {\n _this.applyOrganizationFilter();\n }));\n this.filterHandlers.push(ko.getObservable(this, \"typ\").subscribe(function (_) {\n _this.getOrganizations();\n }));\n };\n IndexViewModel.prototype.detachFilterHandlers = function () {\n for (var i = this.filterHandlers.length - 1; i >= 0; i--) {\n this.filterHandlers[i].dispose();\n this.filterHandlers.pop();\n }\n };\n return IndexViewModel;\n }(organization.OrganizationBase));\n var instance = new IndexViewModel();\n return instance;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/organizationmanager/viewmodels/networkmembers',[\"require\", \"exports\", \"models/breeze\", \"common/constants\", \"services/navigator\", \"services/settings\", \"areas/organizationmanager/commands/downloadmemberpdfcommand\", \"areas/organizationmanager/commands/directloginmembercommand\", \"areas/organizationmanager/commands/showuserdatacommand\", \"areas/organizationmanager/models/organizationbase\", \"areas/organizationmanager/services/networkmemberrepository\", \"areas/organizationmanager/services/mappings\"], function (require, exports, Data, constants, navigator, configuration, DownloadMemberPdfCommand, DirectLoginMemberCommand, ShowUserDataCommand, organization, repository, mappings) {\n \"use strict\";\n var NetworkMembersViewModell = (function (_super) {\n __extends(NetworkMembersViewModell, _super);\n //#region ctor\n function NetworkMembersViewModell() {\n _super.call(this);\n this.networkMembers = new repository.NetworkMemberRepository();\n this.userData = \"\";\n this.possibleUserTypes = new Array(); //possible usertypes for filter\n this.selectedUserTypes = new Array(); //usertypes which selected for the filter\n this.originalResult = ko.observableArray(); //the results from the server\n ko.track(this, ['organizationURL', 'selectedUserTypes', 'userData', 'searchLogin']);\n }\n //#endregion\n //#region overrides\n NetworkMembersViewModell.prototype.onActivated = function (context) {\n _super.prototype.onActivated.call(this, context);\n this.initialize(context);\n };\n //#endregion\n //#region navigation\n NetworkMembersViewModell.prototype.goBack = function () {\n navigator.goBack();\n };\n //#endregion\n NetworkMembersViewModell.prototype.getDisplayNameForMemberType = function (memberType) {\n return constants.NetworkMemberTypes.getDisplayNameForGivenMemberType(memberType);\n };\n //#region filters\n NetworkMembersViewModell.prototype.memberSearch = function () {\n var _this = this;\n var filters = [];\n filters.push(Data.BreezeColumnFilter.contains(\"LoginName\", this.searchLogin));\n this.controller.filterDefinitions.modify(function (s) {\n s.remove(\"LoginName\");\n s.attach(filters);\n });\n this.resultSupscription = this.controller.result.subscribe(function () {\n if (_this.controller.result().length > 0) {\n _this.resultSupscription.dispose();\n _this.originalResult.removeAll();\n for (var i = 0; i < _this.controller.result().length; i++) {\n _this.originalResult.push(_this.controller.result()[i]);\n }\n }\n });\n this.controller.load();\n };\n NetworkMembersViewModell.prototype.filterUserTypes = function () {\n var _this = this;\n this.userData = \"\";\n this.selectedItems.removeAll();\n this.controller.result.removeAll();\n for (var j = 0; j < this.originalResult().length; j++) {\n this.controller.result.push(this.originalResult()[j]);\n }\n this.controller.itemsCount(this.originalResult().length);\n for (var i = this.controller.result().length - 1; i >= 0; i--) {\n if (this.selectedUserTypes.filter(function (s) { return s == _this.controller.result()[i].memberType; }).length == 0) {\n this.controller.result.remove(this.controller.result()[i]);\n this.controller.itemsCount(this.controller.itemsCount() - 1);\n }\n }\n };\n //#endregion\n //#region helpers\n NetworkMembersViewModell.prototype.initialize = function (context) {\n var host = configuration.Settings.getHost();\n this.organizationUri = context.queryString.organizationUri;\n this.organizationUrl = host.substring(0, host.indexOf(\":\") + 1) + \"//\" + this.organizationUri.split(\"\\\\\")[0] + host.substring(host.indexOf(\".\"));\n this.organizationId = context.queryString.organizationId;\n this.organizationTyp = context.queryString.organizationTyp;\n this.organizationAccessNumber = this.organizationUri.split(\"\\\\\").length > 1 ? this.organizationUri.split(\"\\\\\")[1] : null;\n this.searchLogin = \"\";\n this.userData = \"\";\n this.setPossibleOrganizationTypes();\n this.setUpController();\n this.applyHandlers();\n //commands\n this.downloadMemberPdfCommand = new DownloadMemberPdfCommand();\n this.directLoginMemberCommand = new DirectLoginMemberCommand();\n this.showUserDataCommand = new ShowUserDataCommand(this.organizationUri, this.organizationUrl);\n };\n NetworkMembersViewModell.prototype.setUpController = function () {\n var _this = this;\n var params = { organizationId: this.organizationId };\n this.controller = new Data.BreezeDataController(this.networkMembers).configure(function (result) { return result.map(function (s) { return mappings.Mapper.mapNetworkMemberItemFromDTO(s); }); });\n this.controller.sortDefinitions.modify(function (s) { return s.add(_this.controller.buildSort(\"LoginName\", \"asc\")); });\n this.controller.override(\"byorganization\", params);\n };\n NetworkMembersViewModell.prototype.applyHandlers = function () {\n var _this = this;\n ko.getObservable(this, \"selectedUserTypes\").subscribe(function () {\n _this.filterUserTypes();\n });\n this.resultSupscription = this.controller.result.subscribe(function () {\n if (_this.controller.result().length > 0) {\n _this.resultSupscription.dispose();\n _this.originalResult.removeAll();\n for (var i = 0; i < _this.controller.result().length; i++) {\n _this.originalResult.push(_this.controller.result()[i]);\n }\n }\n });\n this.selectedItems.subscribe(function () {\n _this.userData = \"\";\n });\n };\n NetworkMembersViewModell.prototype.setPossibleOrganizationTypes = function () {\n if (this.organizationTyp.toLowerCase() == constants.OrganizationTypes.Stb.toLowerCase()) {\n this.possibleUserTypes.push(constants.NetworkMemberTypes.StbAdmin);\n this.possibleUserTypes.push(constants.NetworkMemberTypes.StbEmployee);\n this.possibleUserTypes.push(constants.NetworkMemberTypes.StbGateway);\n this.possibleUserTypes.push(constants.NetworkMemberTypes.StbPostmaster);\n this.possibleUserTypes.push(constants.NetworkMemberTypes.StbServiceLogin);\n }\n else if (this.organizationTyp.toLowerCase() == constants.OrganizationTypes.Client.toLowerCase()) {\n this.possibleUserTypes.push(constants.NetworkMemberTypes.ClientAdmin);\n this.possibleUserTypes.push(constants.NetworkMemberTypes.ClientEmployee);\n this.possibleUserTypes.push(constants.NetworkMemberTypes.ClientPostmaster);\n this.possibleUserTypes.push(constants.NetworkMemberTypes.ClientClerk);\n }\n for (var i = 0; i < this.possibleUserTypes.length; i++) {\n this.selectedUserTypes.push(this.possibleUserTypes[i]);\n }\n };\n return NetworkMembersViewModell;\n }(organization.OrganizationBase));\n return NetworkMembersViewModell;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/jquery/jquery.d.ts\" />\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/organizationmanager/viewmodels/userdata',[\"require\", \"exports\", \"plugins/dialog\", \"common/viewmodelbase\"], function (require, exports, Dialog, Model) {\n \"use strict\";\n var UserDataViewModel = (function (_super) {\n __extends(UserDataViewModel, _super);\n function UserDataViewModel() {\n _super.call(this);\n this.userData = \"\";\n this.title = $.t(\"app:modules.organizationmanager.headline_titleUserdata\", { ifMissing: \"Benutzerdaten\" });\n ko.track(this);\n }\n //#region override\n UserDataViewModel.prototype.onActivated = function (context) {\n this.userData = context.callingParameters.get(\"unknown\");\n //$(\"#userData\").focus();\n };\n UserDataViewModel.prototype.selectUserData = function () {\n $(\"#userData\").select();\n };\n UserDataViewModel.prototype.close = function () {\n Dialog.close(this);\n };\n return UserDataViewModel;\n }(Model.ViewModelBase));\n return UserDataViewModel;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/payescapeproduct/viewmodels/index',[\"require\", \"exports\", \"common/viewmodelbase\", \"models/portal\", \"services/navigator\", \"services/settings\"], function (require, exports, Common, Portal, Navigator, Configuration) {\n \"use strict\";\n var PayescapeProductViewModel = (function (_super) {\n __extends(PayescapeProductViewModel, _super);\n function PayescapeProductViewModel() {\n _super.call(this);\n this.breadCrumb = new Portal.ModuleBreadCrumbItemHolder();\n this.cdnEndPoint = Configuration.Settings.environment.getCustomValue(\"CdnEndPoint\");\n this.productImage = this.cdnEndPoint + \"content/images/payescape_product_page_logo.png\";\n this.testimonials = [];\n this.toolkitVideos = [];\n this.informationToSendToClient = [];\n this.initializeTestimonials();\n this.initializeToolkitVideos();\n this.initializeInformationToSendToClient();\n this.title = \"PayescapeProduct\";\n ko.track(this, [\"tabSelected\", \"testimonials\"]);\n }\n PayescapeProductViewModel.prototype.onActivated = function (context) {\n this.tabSelected = 0;\n this.shopId = context.queryString.shopId;\n var parameter = context.path.split('/');\n var calledFromTools = parameter[1] != null ? JSON.parse(parameter[1]) : null;\n this.createPayescapeCrumb();\n this.spliceLastBreadcrumbs(context, calledFromTools);\n this.getPayescapeProductDetails();\n this.createPayescapeProductDetailsCrumb();\n };\n PayescapeProductViewModel.prototype.initializeTestimonials = function () {\n var testimonial1 = {\n image: this.cdnEndPoint + \"content/images/andrew_keates_logo.png\",\n name: \"Andrew Keates & Associates\",\n text: '“As my practice had continued to grow and with the addition of auto enrolment, I reached the point where I either had to employ an additional payroll assistant or look to outsource. Having analysed the situation and the costs involved, outsourcing was not only the best value option but also offered the least risk, providing me with the least amount of hassleâ€' + '<br /><br />' +\n '“From our very first meeting with Payescape through to their continued management of our entire payroll.Payescape have been incredibly professional providing me with exceptional service and I would happily recommend their servicesâ€'\n };\n var testimonial2 = {\n image: \"\",\n name: \"Eastside Accountancy Services\",\n text: '“As a busy accountancy practice, we found that our wages bureau was expanding to the limit of our capacity and ability to provide a good reliable service. <br />We were introduced to Payescape and they took over all of the payroll functions. <br />Over the years we have maintained constant contact usually for wages information on behalf of clients in the course of Accounts preparationâ€' +\n '<br /><br />' + '“Payescape have been unfailing in their speedy provision of reliable data which is most helpful to the efficiency of our service. They are also most helpful with queries regarding the intricacies of Payroll and Wages. We recommend them at every opportunityâ€'\n };\n this.testimonials.push(testimonial1);\n this.testimonials.push(testimonial2);\n };\n PayescapeProductViewModel.prototype.initializeToolkitVideos = function () {\n var video1 = {\n name: \"Accountants Demo\",\n link: \"https://www.youtube.com/watch?v=Alc-xS6nvv8\"\n };\n var video2 = {\n name: \"Add Employees\",\n link: \"https://www.youtube.com/watch?v=vzZ6auTNNRs\"\n };\n var video3 = {\n name: \"ESS Security\",\n link: \"https://www.youtube.com/watch?v=Ngb-2dXmuCE\"\n };\n var video4 = {\n name: \"Leavers\",\n link: \"https://www.youtube.com/watch?v=Q2WUGEYFHjA\"\n };\n var video5 = {\n name: \"Pay Components\",\n link: \"https://www.youtube.com/watch?v=Xs0P_bEWrwo\"\n };\n var video6 = {\n name: \"Pay Rates\",\n link: \"https://www.youtube.com/watch?v=8VAu5IAFlfc\"\n };\n var video7 = {\n name: \"Bank Details\",\n link: \"https://www.youtube.com/watch?v=YXCe4E2rzcE\"\n };\n var video8 = {\n name: \"Submit a Payroll\",\n link: \"https://www.youtube.com/watch?v=dgl0BzRx9lM\"\n };\n this.toolkitVideos.push(video1);\n this.toolkitVideos.push(video2);\n this.toolkitVideos.push(video3);\n this.toolkitVideos.push(video4);\n this.toolkitVideos.push(video5);\n this.toolkitVideos.push(video6);\n this.toolkitVideos.push(video7);\n this.toolkitVideos.push(video8);\n };\n PayescapeProductViewModel.prototype.initializeInformationToSendToClient = function () {\n var informationToSendToClient1 = {\n url: \"https://ocuksbstatic.blob.core.windows.net/iserve/Payescape-Flyer.pdf\",\n text: 'Payescape Flyer',\n icon: \"fa-file-text-o\"\n };\n this.informationToSendToClient.push(informationToSendToClient1);\n };\n PayescapeProductViewModel.prototype.createPayescapeCrumb = function () {\n // initial add of Payescape breadcrumb\n if (this.breadCrumb.items.length === 0) {\n this.addPayescapeCrumbToBreadcrumbItems();\n }\n };\n PayescapeProductViewModel.prototype.spliceLastBreadcrumbs = function (context, calledFromTools) {\n // calledFromTools - flag to see where PayescapeProduct is called from (null - called from Dashboard, not null - called from Tools)\n if (this.breadCrumb.items.length > 1) {\n // for the Payescape page in Tools\n if (calledFromTools == true) {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 1, 1);\n }\n else {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 2, 2);\n }\n }\n else {\n // for the Payescape page in Tools\n if (calledFromTools == true) {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 1, 1);\n this.addPayescapeCrumbToBreadcrumbItems();\n }\n else {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 1, 1);\n }\n }\n };\n PayescapeProductViewModel.prototype.addPayescapeCrumbToBreadcrumbItems = function () {\n var crumb = Portal.BreadCrumbItem.from(\"i-Serve\");\n crumb.clickAction = function () { Navigator.navigateTo(\"iServe\", \"index\", \"/iServe\", null); };\n this.breadCrumb.items.push(crumb);\n };\n PayescapeProductViewModel.prototype.getPayescapeProductDetails = function () {\n this.node = Portal.Context.shell.findNodeByUID(this.shopId);\n };\n PayescapeProductViewModel.prototype.createPayescapeProductDetailsCrumb = function () {\n var crumb = Portal.BreadCrumbItem.from(this.node.name);\n this.breadCrumb.items.push(crumb);\n };\n PayescapeProductViewModel.prototype.selectTab = function (index) {\n this.tabSelected = index;\n };\n return PayescapeProductViewModel;\n }(Common.ViewModelBase));\n var instance = new PayescapeProductViewModel();\n return instance;\n});\n\n", "define('areas/shopitemtemplate/commands/createshopitemscommand',[\"require\", \"exports\", \"services/navigator\"], function (require, exports, Navigator) {\n \"use strict\";\n var CreateShopItemsCommand = (function () {\n function CreateShopItemsCommand() {\n }\n CreateShopItemsCommand.prototype.execute = function (template) {\n Navigator.navigateTo(\"shopitemtemplate\", \"createshopitems\", \"/template\", null, [\n { key: \"id\", value: template.rowKey }\n ]);\n };\n return CreateShopItemsCommand;\n }());\n return CreateShopItemsCommand;\n});\n\n", "define('areas/shopitemtemplate/commands/editshopitemtemplatecommand',[\"require\", \"exports\", \"services/navigator\"], function (require, exports, Navigator) {\n \"use strict\";\n var EditShopItemTemplateCommand = (function () {\n function EditShopItemTemplateCommand() {\n }\n EditShopItemTemplateCommand.prototype.execute = function (template) {\n Navigator.navigateTo(\"shopitemtemplate\", \"edit\", \"/template\", null, [\n { key: \"memberType\", value: template.memberType },\n { key: \"id\", value: template.rowKey }\n ]);\n };\n return EditShopItemTemplateCommand;\n }());\n return EditShopItemTemplateCommand;\n});\n\n", "define('areas/shopitemtemplate/commands/writeshopitemtemplatecommand',[\"require\", \"exports\", \"services/navigator\"], function (require, exports, Navigator) {\n \"use strict\";\n var WriteShopItemTemplateCommand = (function () {\n function WriteShopItemTemplateCommand() {\n }\n WriteShopItemTemplateCommand.prototype.execute = function (unit) {\n Navigator.navigateTo(\"shopitemtemplate\", \"write\", \"/neu\");\n };\n return WriteShopItemTemplateCommand;\n }());\n return WriteShopItemTemplateCommand;\n});\n\n", "define('areas/shopitemtemplate/models/bindable',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var TemplateVM = (function () {\n function TemplateVM() {\n ko.track(this);\n }\n return TemplateVM;\n }());\n exports.TemplateVM = TemplateVM;\n var ShopItemStubVM = (function () {\n function ShopItemStubVM() {\n ko.track(this);\n }\n return ShopItemStubVM;\n }());\n exports.ShopItemStubVM = ShopItemStubVM;\n});\n\n", "define('areas/shopitemtemplate/models/dto',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var Template = (function () {\n function Template() {\n }\n return Template;\n }());\n exports.Template = Template;\n var ShopItemStub = (function () {\n function ShopItemStub() {\n }\n return ShopItemStub;\n }());\n exports.ShopItemStub = ShopItemStub;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/breeze/breeze.d.ts\" />\n/// <reference path=\"../../../../Scripts/typings/q/q.d.ts\" />\ndefine('areas/shopitemtemplate/services/mappings',[\"require\", \"exports\", \"areas/shopitemtemplate/models/dto\", \"areas/shopitemtemplate/models/bindable\"], function (require, exports, dto, vm) {\n \"use strict\";\n var Mapper = (function () {\n function Mapper() {\n }\n Mapper.mapShopItemTemplateFromDTO = function (source) {\n var template = new vm.TemplateVM();\n template.templateId = source.templateId;\n template.category = source.category;\n template.settingsXml = source.settingsXml;\n template.itemType = source.itemType;\n template.target = source.target;\n template.name = source.name;\n template.memberType = source.memberType;\n template.description = source.description;\n template.rowKey = source.rowKey;\n return template;\n };\n Mapper.mapShopItemTemplate2ShopItemStubFromDTO = function (source) {\n var shopitemstub = new vm.ShopItemStubVM();\n shopitemstub.name = source.name;\n shopitemstub.templateId = source.templateId;\n return shopitemstub;\n };\n Mapper.mapShopItemStubVm2ShopItemStubDto = function (source) {\n var shopitemstub = new dto.ShopItemStub();\n shopitemstub.name = source.name;\n shopitemstub.templateId = source.templateId;\n shopitemstub.uniqueItemId = source.uniqueItemId;\n shopitemstub.memberTypes = source.memberTypes;\n shopitemstub.targetOrganizations = source.targetOrganizations;\n shopitemstub.description = source.description;\n shopitemstub.isExternalApplication = source.isExternalApplication;\n return shopitemstub;\n };\n return Mapper;\n }());\n return Mapper;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/breeze/breeze.d.ts\" />\n/// <reference path=\"../../../../Scripts/typings/q/q.d.ts\" />\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/shopitemtemplate/services/shopitemtemplaterepository',[\"require\", \"exports\", \"models/breeze\", \"services/settings\", \"services/httpclient\"], function (require, exports, Data, configuration, http) {\n \"use strict\";\n var ShopItemTemplateRepository = (function (_super) {\n __extends(ShopItemTemplateRepository, _super);\n function ShopItemTemplateRepository() {\n var serviceUrl = configuration.Settings.getOneClickServicesApi(\"/activation/api/shop-item\"); //.getApiFor(\"breeze/shopitemtemplates\");\n _super.call(this, serviceUrl);\n }\n ShopItemTemplateRepository.prototype.getMemberTypes = function () {\n var service = new http.Channel();\n return service.getDataAsync(\"/api/shopitemtemplates/getmembertypes/\", http.ServiceTarget.portalApi);\n };\n ShopItemTemplateRepository.prototype.read = function (memberType, id) {\n var service = new http.Channel();\n return service.getDataAsync(\"/activation/api/shop-item/\" + memberType + \"/\" + id, http.ServiceTarget.oneClickServiceApi);\n };\n ShopItemTemplateRepository.prototype.update = function (template) {\n var service = new http.Channel();\n return service.putDataAsync('/activation/api/shop-item', http.ServiceTarget.oneClickServiceApi, template)\n .then(function (data) {\n return;\n })\n .fail(function (exception) {\n return exception;\n });\n };\n ShopItemTemplateRepository.prototype.save = function (template) {\n var service = new http.Channel();\n return service.postDataAsync('/activation/api/shop-item', http.ServiceTarget.oneClickServiceApi, template)\n .then(function (data) {\n return;\n })\n .fail(function (exception) {\n return exception;\n });\n };\n ;\n return ShopItemTemplateRepository;\n }(Data.BreezeRepository));\n exports.ShopItemTemplateRepository = ShopItemTemplateRepository;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/shopitemtemplate/parts/loadshopitemtemplate',[\"require\", \"exports\", \"common/parts\", \"areas/shopitemtemplate/services/mappings\", \"areas/shopitemtemplate/services/shopitemtemplaterepository\"], function (require, exports, Parts, Mapping, Repository) {\n \"use strict\";\n var LoadShopItemTemplate = (function (_super) {\n __extends(LoadShopItemTemplate, _super);\n function LoadShopItemTemplate() {\n _super.apply(this, arguments);\n }\n LoadShopItemTemplate.prototype.process = function (memberType, symbol) {\n var _this = this;\n if (symbol == null) {\n this.output.call(null);\n return;\n }\n var repository = new Repository.ShopItemTemplateRepository();\n repository.read(memberType, symbol)\n .then(function (data) {\n var item = Mapping.mapShopItemTemplateFromDTO(data);\n _this.output.call(item);\n }).fail(function (error) {\n _this.error.call(error);\n });\n };\n return LoadShopItemTemplate;\n }(Parts.Part));\n return LoadShopItemTemplate;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/q/q.d.ts\" />\n/// <reference path=\"../../../../Scripts/typings/toastr/toastr.d.ts\" />\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/shopitemtemplate/viewmodels/createshopitems',[\"require\", \"exports\", \"models/breeze\", \"services/trace\", \"common/parts\", \"common/string\", \"areas/navigationmanager/parts/loadmodules\", \"areas/organizationmanager/services/organizationsrepository\", \"areas/organizationmanager/services/mappings\", \"areas/shopitemtemplate/services/mappings\", \"areas/shopitemtemplate/services/shopitemtemplaterepository\", \"common/viewmodelbase\", \"services/navigator\"], function (require, exports, Data, Trace, Parts, String, navimanLoadModules, orgaRepository, orgaMapping, Mapping, Repository, common, navigator) {\n \"use strict\";\n var ShopItemCreateViewModel = (function (_super) {\n __extends(ShopItemCreateViewModel, _super);\n function ShopItemCreateViewModel() {\n _super.call(this);\n //#region properties\n this.selectedMemberTypes = ko.observableArray();\n this.uniqueItemId = \"\";\n this.steuerberaterId = \"\";\n this.steuerberaterCount = \"\";\n this.organizationFilter = \"\";\n this.anzahlstb = \"\";\n this.description = \"\";\n this.orgaTyp = \"\";\n this.shopId = \"\";\n this.memberTypes = [\"PortalAdmin\"];\n this.isExternalApplication = true;\n this.selectedOrganizations = ko.observableArray();\n this.organizations = new orgaRepository.OrganizationRepository();\n ko.track(this, [\"shopitemstub\", \"name\", \"selectedNode\", \"uniqueItemId\", \"steuerberaterId\", \"memberTypes\", \"organizationFilter\", \"steuerberaterCount\", \"description\", \"isExternalApplication\"]);\n }\n //#endregion\n // #region commands\n //public deleteCommand: DeleteShopItemTemplateCommand;\n //public editNodeCommand: Commanding.DelegateCommand<navimanModel.NavigationNodeVM>;\n //public navigateCommand: Commanding.DelegateCommand<navimanModel.NavigationNodeVM>;\n // public submitCommand: SubmitCommand;\n // #endregion\n ShopItemCreateViewModel.prototype.onActivated = function (context) {\n var that = this;\n this.initialize();\n var workStatus = $.t(\"app:modules.shopitemtemplate.message_loadShopItemStub\", { ifMissing: \"ShopItemStub wird geladen...\" });\n return this.taskManager.startAsync(workStatus, function () {\n return that.readShopItemTemplateStubAsync(context.queryString.memberType, context.queryString.id)\n .then(function (data) {\n that.shopitemstub = data;\n });\n });\n };\n ShopItemCreateViewModel.prototype.initialize = function () {\n var _this = this;\n Parts.PartBinder.bind(new navimanLoadModules(), function (symbol) { return _this.modules = symbol; }).process({});\n // commands\n //this.editNodeCommand = new Commanding.DelegateCommand<navimanModel.NavigationNodeVM>(this.onEditNode, this);\n this.setUpController();\n this.attachEvents();\n this.getOrganizations();\n this.getMemberTypes();\n this.uniqueItemId = this.newGuid();\n };\n ShopItemCreateViewModel.prototype.getMemberTypes = function () {\n var _this = this;\n var that = this;\n that.memberTypes = [];\n return this.readMemberTypesAsync()\n .then(function (data) {\n _this.memberTypes = data;\n });\n };\n ;\n ShopItemCreateViewModel.prototype.readMemberTypesAsync = function () {\n var repository = new Repository.ShopItemTemplateRepository();\n return repository.getMemberTypes()\n .then(function (data) {\n return data;\n }).fail(function (error) {\n return null;\n });\n };\n ShopItemCreateViewModel.prototype.getOrganizations = function () {\n this.orgaController.override(\"findbynameanduri\");\n if (!String.isNullOrEmpty(this.organizationFilter)) {\n this.orgaController.parameters = { Name: this.organizationFilter };\n }\n else {\n this.orgaController.parameters = { name: \"\" };\n }\n this.orgaController.filterDefinitions.modify(function (s) {\n s.remove(\"OrganizationType\");\n s.add(Data.BreezeColumnFilter.contains(\"OrganizationType\", \"stb\"));\n });\n this.orgaController.load();\n };\n ;\n ShopItemCreateViewModel.prototype.attachEvents = function () {\n var _this = this;\n ko.getObservable(this, \"organizationFilter\").subscribe(function (value) {\n _this.orgaController.parameters = { Name: _this.organizationFilter };\n _this.getOrganizations();\n });\n };\n ShopItemCreateViewModel.prototype.setUpController = function () {\n var _this = this;\n var params;\n if (this.orgaController == null) {\n this.orgaController = new Data.BreezeDataController(this.organizations, params).configure(function (result) { return result.map(function (s) { return orgaMapping.Mapper.mapOrganizationItemFromDTO(s); }); });\n this.orgaController.sortDefinitions.modify(function (s) { return s.add(_this.orgaController.buildSort(\"Name\", \"desc\")); });\n this.orgaController.override(\"findbynameanduri\", params);\n }\n };\n ShopItemCreateViewModel.prototype.setZuordnung = function (event) {\n var repository = new Repository.ShopItemTemplateRepository();\n if (this.selectedOrganizations() != null && this.selectedOrganizations().length > 0) {\n if (this.shopitemstub.targetOrganizations == null) {\n this.shopitemstub.targetOrganizations = [];\n }\n for (var i = 0; i < this.selectedOrganizations().length; i++) {\n var org = this.selectedOrganizations()[i];\n // do stuff here \n this.shopitemstub.targetOrganizations.push(org.id);\n }\n }\n else {\n this.shopitemstub.targetOrganizations = null;\n }\n if (this.isValidGuid(this.uniqueItemId)) {\n this.shopitemstub.uniqueItemId = this.uniqueItemId;\n }\n else {\n var errorUid = $.t(\"app:modules.shopitemtemplate.message_uidNotValid\", { ifMissing: \"Die UniqueItemId is nicht valide\" });\n Trace.traceError(errorUid);\n return;\n }\n this.shopitemstub.memberTypes = this.selectedMemberTypes();\n this.shopitemstub.description = this.description;\n this.shopitemstub.isExternalApplication = this.isExternalApplication;\n var shopItemStubDto;\n shopItemStubDto = Mapping.mapShopItemStubVm2ShopItemStubDto(this.shopitemstub);\n //repository.setZuordnung(shopItemStubDto)\n // .then((data: any) => {\n //var messageRowsCreated = $.t(\"app:modules.shopitemtemplate.message_rowsCreated\", { ifMissing: \"Die ShopItem-Sätze wurden angelegt.\" });\n //Trace.traceInformation(messageRowsCreated);\n // navigator.goBack();\n // }).fail((exception) => {\n //var messageRowsCreated = $.t(\"app:modules.shopitemtemplate.message_rowsNotCreated\", { ifMissing: \"Es konnten keine ShoptItem-Sätze angelegt werden.\" });\n //Trace.traceError(messageRowsCreated + \" Exception: \" + exception.responseText, null, \"shopitemtemplate\", true);\n // // Zurück auf die Liste\n // navigator.goBack();\n // });\n };\n ShopItemCreateViewModel.prototype.isValidGuid = function (guid) {\n var regex = '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$';\n var regexp = new RegExp(regex);\n return regexp.test(guid);\n };\n ShopItemCreateViewModel.prototype.cancel = function () {\n navigator.goBack();\n };\n ShopItemCreateViewModel.prototype.steuerberaterAuswahlLeerenCommand = function () {\n // UniqueItemId aus modalen Dialog übernehmen\n this.selectedOrganizations.removeAll();\n this.steuerberaterCount = \"0\";\n };\n ShopItemCreateViewModel.prototype.submitCommand = function (modul) {\n // UniqueItemId aus modalen Dialog übernehmen\n this.uniqueItemId = modul.uniqueItemId;\n };\n ShopItemCreateViewModel.prototype.submitOrganizationCommand = function () {\n // UniqueItemId aus modalen Dialog übernehmen\n //this.steuerberaterId = org.id;\n this.steuerberaterCount = this.selectedOrganizations().length.toString();\n };\n ShopItemCreateViewModel.prototype.newGuidCommand = function () {\n // UniqueItemId aus modalen Dialog übernehmen\n this.uniqueItemId = this.newGuid();\n };\n ShopItemCreateViewModel.prototype.newGuid = function () {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n };\n ShopItemCreateViewModel.prototype.readShopItemTemplateStubAsync = function (memberType, id) {\n var repository = new Repository.ShopItemTemplateRepository();\n return repository.read(memberType, id)\n .then(function (data) {\n return Mapping.mapShopItemTemplate2ShopItemStubFromDTO(data);\n }).fail(function (error) {\n return null;\n //this.error.call(error);\n });\n };\n ShopItemCreateViewModel.prototype.readOrganizationsAsync = function () {\n var repository = new orgaRepository.OrganizationRepository();\n return repository.all()\n .then(function (data) {\n return data.results;\n }).fail(function (error) {\n return null;\n });\n };\n return ShopItemCreateViewModel;\n }(common.ViewModelBase));\n return ShopItemCreateViewModel;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/q/q.d.ts\" />\n/// <reference path=\"../../../../Scripts/typings/toastr/toastr.d.ts\" />\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/shopitemtemplate/viewmodels/edit',[\"require\", \"exports\", \"services/trace\", \"areas/shopitemtemplate/services/mappings\", \"areas/shopitemtemplate/services/shopitemtemplaterepository\", \"areas/shopitemtemplate/commands/createshopitemscommand\", \"common/viewmodelbase\", \"services/navigator\"], function (require, exports, Trace, Mapping, Repository, CreateShopItemsCommand, common, navigator) {\n \"use strict\";\n var ShopItemTemplateViewModel = (function (_super) {\n __extends(ShopItemTemplateViewModel, _super);\n function ShopItemTemplateViewModel() {\n _super.call(this);\n this.optionValues = [\"keine\", \"alle\", \"EinStb\"];\n this.selectedOptionValue = \"keine\";\n this.closeButtonText = \" Abbrechen\";\n ko.track(this, [\"template\", \"selectedOptionValue\", \"optionValues\", \"closeButtonText\"]);\n }\n // #endregion\n ShopItemTemplateViewModel.prototype.onActivated = function (context) {\n var that = this;\n this.initialize();\n var workStatus = $.t(\"app:modules.shopitemtemplate.message_loadShopItemTemplate\", { ifMissing: \"ShopItemTemplate wird geladen...\" });\n return this.taskManager.startAsync(workStatus, function () {\n return that.readShopItemTemplateAsync(context.queryString.memberType, context.queryString.id)\n .then(function (data) {\n that.template = data;\n });\n });\n };\n ShopItemTemplateViewModel.prototype.initialize = function () {\n this.setUpController();\n this.attachEvents();\n this.createShopItemsCommand = new CreateShopItemsCommand();\n };\n ShopItemTemplateViewModel.prototype.attachEvents = function () {\n //ko.getObservable(this, \"name\").subscribe(value => {\n // this.controller.filterDefinitions.replace(Data.BreezeColumnFilter.contains(\"Name\", value));\n //});\n };\n ShopItemTemplateViewModel.prototype.setUpController = function () {\n };\n ShopItemTemplateViewModel.prototype.update = function () {\n var _this = this;\n var workStatus = $.t(\"app:modules.shopitemtemplate.message_saveShopItemTemplate\", { ifMissing: \"ShopItemTemplate wird gespeichert...\" });\n this.taskManager.startAsync(workStatus, function () {\n var repository = new Repository.ShopItemTemplateRepository();\n return repository.update(_this.template)\n .then(function (data) {\n navigator.goBack();\n }).fail(function (exception) {\n var errorMessage = $.t(\"app:modules.shopitemtemplate.message_saveShopItemTemplateFailure\", { ifMissing: \"Fehler beim Speichern des ShopItemTemplates: \" });\n Trace.traceError(errorMessage + exception.responseText, null, \"shopitemtemplate\", true);\n });\n });\n };\n ShopItemTemplateViewModel.prototype.cancel = function () {\n navigator.goBack();\n };\n ShopItemTemplateViewModel.prototype.readShopItemTemplateAsync = function (memberType, id) {\n var repository = new Repository.ShopItemTemplateRepository();\n return repository.read(memberType, id)\n .then(function (data) {\n return Mapping.mapShopItemTemplateFromDTO(data);\n ;\n }).fail(function (error) {\n return null;\n });\n };\n return ShopItemTemplateViewModel;\n }(common.ViewModelBase));\n return ShopItemTemplateViewModel;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/toastr/toastr.d.ts\" />\n/// <reference path=\"../../../../Scripts/typings/q/Q.d.ts\" />\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/shopitemtemplate/viewmodels/index',[\"require\", \"exports\", \"models/breeze\", \"areas/shopitemtemplate/commands/writeshopitemtemplatecommand\", \"areas/shopitemtemplate/commands/editshopitemtemplatecommand\", \"common/viewmodelbase\", \"areas/shopitemtemplate/services/shopitemtemplaterepository\", \"areas/shopitemtemplate/services/mappings\"], function (require, exports, Data, WriteShopItemTemplateCommand, EditShopItemTemplateCommand, common, repository, mappings) {\n \"use strict\";\n var IndexViewModel = (function (_super) {\n __extends(IndexViewModel, _super);\n // #region ctor\n function IndexViewModel() {\n _super.call(this);\n this.shopItemTemplates = new repository.ShopItemTemplateRepository();\n this.title = $.t(\"app:modules.shopitemtemplate.headline_title\", { ifMissing: \"Verwaltung der ShopItemTemplates\" });\n ko.track(this, [\"name\", \"filterName\"]);\n ko.getObservable(this, \"name\").extend({ rateLimit: 500 });\n }\n // #endregion\n // #region overrides\n // public onActivated(context: Portal.ApplicationContext) {\n IndexViewModel.prototype.onActivated = function (context) {\n if (this.controller == null) {\n this.controller = new Data.BreezeDataController(this.shopItemTemplates, null, false).configure(function (result) { return result.map(function (s) { return mappings.mapShopItemTemplateFromDTO(s); }); });\n return Q.when(this.initialize());\n }\n // return null;\n };\n // #endregion\n IndexViewModel.prototype.initialize = function () {\n this.setUpController();\n this.attachEvents();\n //this.deleteCommand = new DeleteShopItemTemplatesCommand(this.taskManager, () => this.controller.load());\n this.editCommand = new EditShopItemTemplateCommand();\n this.writeCommand = new WriteShopItemTemplateCommand();\n };\n IndexViewModel.prototype.attachEvents = function () {\n var _this = this;\n ko.getObservable(this, \"name\").subscribe(function (value) {\n _this.controller.filterDefinitions.replace(Data.BreezeColumnFilter.contains(\"Name\", value));\n });\n };\n IndexViewModel.prototype.setUpController = function () {\n };\n return IndexViewModel;\n }(common.ListViewModelBase));\n return IndexViewModel;\n});\n\n", "/// <reference path=\"../../../../Scripts/typings/q/q.d.ts\" />\n/// <reference path=\"../../../../Scripts/typings/toastr/toastr.d.ts\" />\nvar __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/shopitemtemplate/viewmodels/write',[\"require\", \"exports\", \"common/viewmodelbase\", \"services/navigator\", \"services/trace\", \"areas/shopitemtemplate/models/dto\", \"areas/shopitemtemplate/services/shopitemtemplaterepository\"], function (require, exports, common, navigator, trace, dto, Repository) {\n \"use strict\";\n var shopitemtemplateViewModel = (function (_super) {\n __extends(shopitemtemplateViewModel, _super);\n function shopitemtemplateViewModel() {\n _super.call(this);\n this.id = \"\";\n this.name = \"\";\n this.location = \"\";\n this.configurationXml = \"\";\n this.itemType = \"\";\n this.category = \"\";\n this.agb = \"\";\n this.memberType = \"\";\n this.hostVersion = \"\";\n this.chargeable = true;\n this.title = $.t(\"app:modules.shopitemtemplate.headline_title\", { ifMissing: \"Verwaltung der ShopItemTemplates\" });\n ko.track(this, [\"template\", \"id\"]);\n }\n shopitemtemplateViewModel.prototype.onActivated = function (context) {\n var that = this;\n this.id = Guid.newGuid();\n };\n shopitemtemplateViewModel.prototype.save = function () {\n // TODO: LN Validierung der Eingaben !\n // if (this.selectedContacts().length == 0) {\n //\ttrace.traceError(\"Bitte geben Sie einen Empfänger in das Feld An ein.\", null, \"shopitemtemplate\", true);\n //\treturn;\n //}\n var shopitemtemplate = new dto.Template();\n shopitemtemplate.templateId = this.id;\n shopitemtemplate.name = this.name;\n shopitemtemplate.category = this.category;\n shopitemtemplate.itemType = this.itemType;\n shopitemtemplate.target = this.location;\n shopitemtemplate.settingsXml = this.configurationXml;\n shopitemtemplate.memberType = this.memberType;\n if (!this.isValidGuid(shopitemtemplate.templateId)) {\n var errorMessage = $.t(\"app:modules.shopitemtemplatemessage_saveShopItemTemplateFailureIdNotValid\", { ifMissing: \"Fehler beim Speichern des ShopItemTemplates. Die Id ist nicht valide.\" });\n trace.traceError(errorMessage);\n return;\n }\n // send shopitemtemplate\n var workStatus = $.t(\"app:modules.shopitemtemplate.message_saveShopItemTemplate\", { ifMissing: \"ShopItemTemplate wird gespeichert...\" });\n this.taskManager.startAsync(workStatus, function () {\n var repository = new Repository.ShopItemTemplateRepository();\n return repository.save(shopitemtemplate)\n .then(function (data) {\n navigator.goBack();\n }).fail(function (exception) {\n var errorMessage = $.t(\"app:modules.shopitemtemplatemessage_createShopItemTemplateFailure\", { ifMissing: \"Fehler beim Neuanlegen des ShopItemTemplates: \" });\n trace.traceError(errorMessage + exception.responseText, null, \"shopitemtemplate\", true);\n });\n });\n };\n shopitemtemplateViewModel.prototype.isValidGuid = function (guid) {\n var regex = '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$';\n var regexp = new RegExp(regex);\n return regexp.test(guid);\n };\n shopitemtemplateViewModel.prototype.cancel = function () {\n navigator.goBack();\n };\n return shopitemtemplateViewModel;\n }(common.ViewModelBase));\n var Guid = (function () {\n function Guid() {\n }\n Guid.newGuid = function () {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n };\n return Guid;\n }());\n return shopitemtemplateViewModel;\n});\n\n", "define('areas/tools/models/bindable',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var FavouriteMobileApps = (function () {\n function FavouriteMobileApps() {\n }\n return FavouriteMobileApps;\n }());\n exports.FavouriteMobileApps = FavouriteMobileApps;\n var MobileAppReview = (function () {\n function MobileAppReview() {\n }\n return MobileAppReview;\n }());\n exports.MobileAppReview = MobileAppReview;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/tools/viewmodels/index',[\"require\", \"exports\", \"common/viewmodelbase\", \"services/navigator\", \"models/portal\"], function (require, exports, Common, Navigator, Portal) {\n \"use strict\";\n var ToolsViewModel = (function (_super) {\n __extends(ToolsViewModel, _super);\n function ToolsViewModel() {\n _super.call(this);\n this.breadCrumb = new Portal.ModuleBreadCrumbItemHolder();\n this.title = \"Tools\";\n //ko.track(this, [\"\"]); \n }\n ToolsViewModel.prototype.wkappstoreClick = function () {\n Navigator.navigateTo(\"wkappstore\", \"index\", \"/wkappstore\", null);\n };\n ToolsViewModel.prototype.iServeClick = function () {\n // calledFromTools - flag to see if iServe is called from Tools\n var calledFromTools = true;\n Navigator.navigateTo(\"iServe\", \"index\", \"/i-Serve\", JSON.stringify(calledFromTools));\n };\n return ToolsViewModel;\n }(Common.ViewModelBase));\n var instance = new ToolsViewModel();\n return instance;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/tutorial/viewmodels/startuptutorial',[\"require\", \"exports\", \"common/viewmodelbase\", \"plugins/dialog\", \"models/portal\", \"models/account\"], function (require, exports, ViewModel, Dialog, Portal, Account) {\n \"use strict\";\n var StartupTutorialViewModel = (function (_super) {\n __extends(StartupTutorialViewModel, _super);\n //#region ctor\n function StartupTutorialViewModel() {\n _super.call(this);\n this._shell = Portal.Context.shell;\n this._userManager = this._shell.userManager;\n if (Account.Session.principal.memberType === 'client_postmaster') {\n //Introduction tutorial for Client\n this.introductionTutorialUrl = \"https://cch-tutorials-dev.azurewebsites.net/one-click/client-tutorial/home.html\";\n this._settingsKey = \"TutorialClient\";\n }\n else if (Account.Session.principal.memberType === 'stb_postmaster' || Account.Session.principal.memberType === 'stb_admin') {\n //Introduction tutorial for Employee\n this.introductionTutorialUrl = \"https://cch-tutorials-dev.azurewebsites.net/one-click/practice-tutorial/home.html\";\n this._settingsKey = \"TutorialEmployee\";\n }\n }\n //#endregion\n StartupTutorialViewModel.prototype.onActivated = function (context) {\n return Q(true);\n };\n StartupTutorialViewModel.prototype.close = function () {\n // update show-tutorial info in database \n this._userManager.saveSettings(this._settingsKey, { executed: true });\n Dialog.close(this);\n };\n return StartupTutorialViewModel;\n }(ViewModel.ViewModelBase));\n var instance = new StartupTutorialViewModel();\n return instance;\n});\n\n", "define('areas/tutorialpopup/viewmodels/index',[\"require\", \"exports\", 'durandal/app', \"models/portal\"], function (require, exports, app, Portal) {\n \"use strict\";\n var TotorialModal = (function () {\n function TotorialModal(externalLink) {\n this._shell = Portal.Context.shell;\n this._userManager = this._shell.userManager;\n }\n TotorialModal.prototype.activate = function (data) {\n this.navigationUrl = data.defaultData.dialogPath;\n };\n TotorialModal.prototype.closeTutorialPopUp = function () {\n this.navigationUrl = \"\";\n // update show-tutorial info in database\n this._userManager.saveSettings(\"show-tutorial\", { 'ShowTutorial': false });\n app.closeDialog(this);\n };\n return TotorialModal;\n }());\n return TotorialModal;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/tutorials/viewmodels/index',[\"require\", \"exports\", \"common/viewmodelbase\", \"models/portal\"], function (require, exports, Common, Portal) {\n \"use strict\";\n var TutorialsViewModel = (function (_super) {\n __extends(TutorialsViewModel, _super);\n function TutorialsViewModel() {\n _super.call(this);\n this.tutorials = [];\n this.title = \"Tutorial\";\n ko.track(this, [\"tutorials\"]);\n }\n TutorialsViewModel.prototype.onActivated = function (context) {\n this._symbol = {\n config: \"\",\n fragment: \"tutorial\",\n params: null,\n queryParams: null,\n queryString: null\n };\n this._currentNode = Portal.Context.shell.findNodeFor(this._symbol);\n this.getTutorialTiles();\n };\n TutorialsViewModel.prototype.getTutorialTiles = function () {\n var _this = this;\n if (this._currentNode.children != null) {\n var items = Enumerable.From(this._currentNode.children)\n .Where(function (n) { return n.groupId === _this.title; });\n this.tutorials = items.ToArray();\n }\n };\n TutorialsViewModel.prototype.tutorialClick = function (node) {\n Portal.Context.shell.navigateTo(node);\n };\n return TutorialsViewModel;\n }(Common.ViewModelBase));\n var instance = new TutorialsViewModel();\n return instance;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/twinfieldproduct/viewmodels/index',[\"require\", \"exports\", \"common/viewmodelbase\", \"models/portal\", \"services/navigator\", \"services/settings\"], function (require, exports, Common, Portal, Navigator, Configuration) {\n \"use strict\";\n var TwinfieldProductViewModel = (function (_super) {\n __extends(TwinfieldProductViewModel, _super);\n function TwinfieldProductViewModel() {\n _super.call(this);\n this.breadCrumb = new Portal.ModuleBreadCrumbItemHolder();\n this.cdnEndPoint = Configuration.Settings.environment.getCustomValue(\"CdnEndPoint\");\n this.testimonials = [];\n this.toolkitVideos = [];\n this.informationToSendToClient = [];\n this.initializeTestimonials();\n this.initializeInformationToSendToClient();\n this.title = \"TwinfieldProduct\";\n ko.track(this, [\"tabSelected\", \"testimonials\"]);\n }\n TwinfieldProductViewModel.prototype.onActivated = function (context) {\n this.tabSelected = 0;\n this.shopId = context.queryString.shopId;\n var parameter = context.path.split('/');\n var calledFromTools = parameter[1] != null ? JSON.parse(parameter[1]) : null;\n this.createTwinfieldCrumb();\n this.spliceLastBreadcrumbs(context, calledFromTools);\n this.getTwinfieldProductDetails();\n this.createTwinfieldProductDetailsCrumb();\n };\n TwinfieldProductViewModel.prototype.initializeTestimonials = function () {\n var testimonial1 = {\n image: this.cdnEndPoint + \"content/images/KrestonReevesLogo.gif\",\n name: \"Emma Chesson FCCA, Head of Online Services, Kreston Reeves LLP\",\n text: '“Twinfield stood out for flexibility… Businesses of any size will find it advantageous. For a large group of companies it can help bring their information together in a much more timely manner. For a start-up, with integrated management reporting it can help grow the business. We can provide a better service, be more interactive. Ultimately we’re becoming their virtual finance teams, a resource to help them grow.â€',\n link: \"\",\n linkText: \"\"\n };\n var testimonial2 = {\n image: this.cdnEndPoint + \"content/images/LibertyLeasingLogo.png\",\n name: \"Alan Cooper, Finance Director, Liberty Leasing Ltd (An FCA regulated asset finance company) \",\n text: '“…there were a lot of solutions for smaller businesses, and a lot of solutions for large and very large businesses, but for those of us in the SME space the smaller solutions didn’t really fit our requirements of having to grow into the future. The bigger solutions were too expensive. Twinfield was different to that. Twinfield was what we were looking for in that respect. The online access was very important to us and was a key consideration to choosing a product…â€',\n link: \"https://www.youtube.com/watch?v=D0d2QgTzcHU\",\n linkText: \"Alan Cooper from Liberty Leasing Ltd explains why this rapidly expanding, FCA-regulated asset finance company chose Twinfield and what it's brought to the firm.\"\n };\n var testimonial3 = {\n image: this.cdnEndPoint + \"content/images/dopayLogo.png\",\n name: \"Khaled Abou-Zied, Group Finance Director, dopay\",\n text: \"“Growing so fast, our accountancy needs are immediacy, high visibility of the accounts, the ability to consolidate the group accounting, and to be able to monitor results on a group basis for decision making … We were looking for a cloud based solution that enabled us to perform group consolidation and could be implemented across multiple countries. We discussed our requirements with Goodman Jones, our accountants, and together we decided that Twinfield was the best solution.â€\",\n link: \"https://www.youtube.com/watch?v=wSeH3SCVPJg\",\n linkText: \"Philip Woodgate of Goodman Jones and their client, Khaled Abou-Zied from Dopay, explain why and how Twinfield was the right choice for Dopay. \"\n };\n var testimonial4 = {\n image: this.cdnEndPoint + \"content/images/GoodmanLogo.jpg\",\n name: \"Philip Woodgate, Partner, Goodman Jones LLP\",\n text: '\"Twinfield delivers. As users for over ten years we’ve found it astonishingly reliable and adaptable. With Twinfield we have the tools to help our clients with more complex accounting requirements such as dual currency reporting and group consolidation.\"',\n link: \"\",\n linkText: \"\"\n };\n var testimonial5 = {\n image: this.cdnEndPoint + \"content/images/agsLogo.jpg\",\n name: \"Steve Aston FCCA, Director, ags accountants and business advisors ltd\",\n text: '\"Our clients using Twinfield range from small businesses to those with over a £12 million turnover. Each individual client has different needs, some clients process their own invoices and we just view data remotely and for some others we process all paperwork. Sharing data in various ways has helped us as a practice increase efficiency whilst also alleviating the burden of record keeping felt by many of our clients. The integration of compliance and management accounting together is a huge advantage for businesses and helps us as accountants deliver key beneficial real time data to our clients.\"',\n link: \"\",\n linkText: \"\"\n };\n this.testimonials.push(testimonial1);\n this.testimonials.push(testimonial2);\n this.testimonials.push(testimonial3);\n this.testimonials.push(testimonial4);\n this.testimonials.push(testimonial5);\n };\n TwinfieldProductViewModel.prototype.initializeInformationToSendToClient = function () {\n var informationToSendToClient1 = {\n url: \"https://ocuksbstatic.blob.core.windows.net/iserve/Twinfield-For-SMEs-Product-Sheet-OneClick-Version-1.pdf\",\n text: \"Twinfield For SME's Product Sheet OneClick Version\",\n icon: \"fa-file-text-o\"\n };\n this.informationToSendToClient.push(informationToSendToClient1);\n };\n TwinfieldProductViewModel.prototype.createTwinfieldCrumb = function () {\n // initial add of Twinfield breadcrumb\n if (this.breadCrumb.items.length === 0) {\n this.addTwinfieldCrumbToBreadcrumbItems();\n }\n };\n TwinfieldProductViewModel.prototype.spliceLastBreadcrumbs = function (context, calledFromTools) {\n // calledFromTools - flag to see where TwinfieldProduct is called from (null - called from Dashboard, not null - called from Tools)\n if (this.breadCrumb.items.length > 1) {\n // for the Twinfield page in Tools\n if (calledFromTools == true) {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 1, 1);\n }\n else {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 2, 2);\n }\n }\n else {\n // for the Twinfield page in Tools\n if (calledFromTools == true) {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 1, 1);\n this.addTwinfieldCrumbToBreadcrumbItems();\n }\n else {\n this.breadCrumb.items.splice(this.breadCrumb.items.length - 1, 1);\n }\n }\n };\n TwinfieldProductViewModel.prototype.addTwinfieldCrumbToBreadcrumbItems = function () {\n var crumb = Portal.BreadCrumbItem.from(\"i-Serve\");\n crumb.clickAction = function () { Navigator.navigateTo(\"iServe\", \"index\", \"/iServe\", null); };\n this.breadCrumb.items.push(crumb);\n };\n TwinfieldProductViewModel.prototype.getTwinfieldProductDetails = function () {\n this.node = Portal.Context.shell.findNodeByUID(this.shopId);\n };\n TwinfieldProductViewModel.prototype.createTwinfieldProductDetailsCrumb = function () {\n var crumb = Portal.BreadCrumbItem.from(this.node.name);\n this.breadCrumb.items.push(crumb);\n };\n TwinfieldProductViewModel.prototype.selectTab = function (index) {\n this.tabSelected = index;\n };\n return TwinfieldProductViewModel;\n }(Common.ViewModelBase));\n var instance = new TwinfieldProductViewModel();\n return instance;\n});\n\n", "var __extends = (this && this.__extends) || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\ndefine('areas/wkappstore/viewmodels/index',[\"require\", \"exports\", \"common/viewmodelbase\", \"models/portal\"], function (require, exports, Common, Portal) {\n \"use strict\";\n var WKAppStoreViewModel = (function (_super) {\n __extends(WKAppStoreViewModel, _super);\n function WKAppStoreViewModel() {\n _super.call(this);\n this.mobileApps = [];\n this.breadCrumb = new Portal.ModuleBreadCrumbItemHolder();\n this.title = \"WKAppStore\";\n //ko.track(this, [\"\"]);\n }\n WKAppStoreViewModel.prototype.onActivated = function (context) {\n this._symbol = {\n config: \"\",\n fragment: \"tools\",\n params: null,\n queryParams: null,\n queryString: null\n };\n this._currentNode = Portal.Context.shell.findNodeFor(this._symbol);\n this.getWKAppStoreTiles();\n if (this.breadCrumb.items.length === 0) {\n var crumb = Portal.BreadCrumbItem.from(\"WKAppStore\");\n this.breadCrumb.items.push(crumb);\n }\n };\n //private getWKAppStoreTiles(): void {\n //\tthis.navigationTree = Portal.Context.shell.rawNavigation;\n //\tfor (var i = 0; i < this.navigationTree.children.length; i++) {\n //\t\tif (this.navigationTree.children[i].groupId === this.title) {\n //\t\t\tthis.mobileApps.push(this.navigationTree.children[i]);\n //\t\t}\n //\t}\n //}\n WKAppStoreViewModel.prototype.getWKAppStoreTiles = function () {\n var _this = this;\n if (this._currentNode.children != null) {\n var items = Enumerable.From(this._currentNode.children)\n .Where(function (n) { return n.groupId === _this.title; });\n this.mobileApps = items.ToArray();\n }\n };\n WKAppStoreViewModel.prototype.navigate = function (symbol) {\n Portal.Context.shell.navigateTo(symbol);\n };\n return WKAppStoreViewModel;\n }(Common.ViewModelBase));\n var instance = new WKAppStoreViewModel();\n return instance;\n});\n\n", "define('common/dateUtil',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var Date;\n (function (Date) {\n function getLocalTime(date) {\n return moment.utc(date).local();\n }\n Date.getLocalTime = getLocalTime;\n })(Date || (Date = {}));\n return Date;\n});\n\n", "\n;\ndefine(\"common/singletonviewmodel\", function(){});\n\n", "\n;\ndefine(\"common/unit\", function(){});\n\n", "define('models/disposable',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n});\n\n", "define('services/avatarService',[\"require\", \"exports\", \"models/account\", \"services/settings\", \"common/constants\"], function (require, exports, Account, Configuration, constants_1) {\n \"use strict\";\n var AvatarService = (function () {\n function AvatarService() {\n }\n AvatarService.downloadAvatar = function (userId) {\n var _this = this;\n var defer = $.Deferred();\n var request = new XMLHttpRequest();\n request.open(\"GET\", AvatarService.getAvatarUrl(userId), true);\n request.setRequestHeader('Authorization', Account.Session.getAuthorizationHeader());\n request.responseType = \"blob\";\n request.onload = function () {\n var reader = new FileReader();\n var blob = request.response;\n if (blob.size === 0) {\n defer.resolve(_this.getDefaultAvatar());\n }\n else {\n reader.readAsDataURL(blob);\n reader.onloadend = function () {\n defer.resolve(reader.result);\n };\n }\n };\n request.send();\n return defer.promise();\n };\n AvatarService.getDefaultAvatar = function () {\n return constants_1.DEFAULT_AVATAR_PATH;\n };\n AvatarService.getAvatarUrl = function (userId) {\n return Configuration.Settings.getServiceFor(\"OneClick\", \"api/configuration/useridentities/\", userId + \"/images/avatar\");\n };\n return AvatarService;\n }());\n exports.AvatarService = AvatarService;\n});\n\n", "define('services/azurestorage',[\"require\", \"exports\", \"services/httpclient\", \"services/trace\"], function (require, exports, http, trace) {\n \"use strict\";\n var AzureBlobUrl = (function () {\n function AzureBlobUrl() {\n }\n return AzureBlobUrl;\n }());\n var AzureStorage = (function () {\n function AzureStorage() {\n }\n AzureStorage.getBlobDownloadUrl = function (blobId, organizationId, fileName, contentDisposition) {\n var service = new http.Channel();\n var result;\n var actionUrl = \"api/azurestorage/organizations/\" + organizationId + \"/downloads/blobs/\" + blobId + \"?fileName=\" + fileName + \"&contentDisposition=\" + contentDisposition;\n service.getData(actionUrl, http.ServiceTarget.portalApi).then(function (data) {\n result = data;\n }).fail(function (reason) {\n var msg = (reason.responseJSON != null && reason.responseJSON.Message != null) ? reason.responseJSON.Message : \"\";\n trace.traceError(\"Error getting azure blob url. Please check the azure settings. \" + msg, null, \"getBlobDownloadUrl\", true);\n });\n return result;\n };\n AzureStorage.getBlobUploadUrl = function (organizationId) {\n var service = new http.Channel();\n var result;\n service.postData(\"api/azurestorage/organizations/\" + organizationId + \"/uploads\", http.ServiceTarget.portalApi, null).then(function (data) {\n result = data;\n }).fail(function (reason) {\n var msg = (reason.responseJSON != null && reason.responseJSON.Message != null) ? reason.responseJSON.Message : \"\";\n trace.traceError(\"Error getting azure blob url. Please check the azure settings. \" + msg, null, \"getBlobUploadUrl\", true);\n });\n return result;\n };\n AzureStorage.useAzureStorage = function () {\n var service = new http.Channel();\n var result;\n service.getData(\"api/azurestorage/active\", http.ServiceTarget.portalApi).then(function (data) {\n result = data;\n }).fail(function (reason) {\n var msg = (reason.responseJSON != null && reason.responseJSON.Message != null) ? reason.responseJSON.Message : \"\";\n trace.traceError(\"Error regarding the azure configuration. Please check the azure settings. \" + msg, null, \"useAzureStorage\", true);\n });\n return result;\n };\n return AzureStorage;\n }());\n return AzureStorage;\n});\n\n", "define('services/iusermanager',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n});\n\n", "define('services/portalstorage',[\"require\", \"exports\", \"models/event\", \"models/account\", \"services/settings\", \"services/jsonconverter\", \"services/azurestorage\"], function (require, exports, Event, Account, Configuration, JsonConverter, azureStorage) {\n \"use strict\";\n var Property = (function () {\n function Property() {\n }\n return Property;\n }());\n exports.Property = Property;\n var StoredFile = (function () {\n function StoredFile() {\n }\n return StoredFile;\n }());\n exports.StoredFile = StoredFile;\n var AzureUploadDetails = (function () {\n function AzureUploadDetails() {\n }\n return AzureUploadDetails;\n }());\n exports.AzureUploadDetails = AzureUploadDetails;\n var StatusEventArgs = (function () {\n function StatusEventArgs(message, response) {\n this.message = message;\n this.response = response;\n }\n return StatusEventArgs;\n }());\n exports.StatusEventArgs = StatusEventArgs;\n var ProgressEventArgs = (function () {\n function ProgressEventArgs(total, loaded) {\n this.total = total;\n this.loaded = loaded;\n }\n return ProgressEventArgs;\n }());\n exports.ProgressEventArgs = ProgressEventArgs;\n var Connector = (function () {\n function Connector() {\n this._done = new Event.Delegate();\n }\n Object.defineProperty(Connector.prototype, \"done\", {\n get: function () {\n return this._done;\n },\n enumerable: true,\n configurable: true\n });\n Connector.prototype.createUpload = function (file, metadata) {\n var data = new FormData();\n data.append(file.name, file);\n var worker = new Worker;\n worker.initialize(data, file);\n return worker;\n };\n Connector.prototype.delete = function (id) {\n if (azureStorage.useAzureStorage()) {\n return;\n }\n var url = Configuration.Settings.getServiceFor(\"portalstorage\", \"delete/temporary/\" + \"document.tmp\", \"?id=\" + id); //+ \"&sessionId=\" + Account.Session.getSessionId()\n var contentType = 'application/json';\n var options = {\n type: \"DELETE\",\n contentType: contentType,\n beforeSend: function (req) {\n //req.setRequestHeader(\"Origin\", configuration.Settings.getScope());\n if (Account.Session.isAuthenticated) {\n req.setRequestHeader(\"Authorization\", Account.Session.getAuthorizationHeader());\n }\n }\n };\n return jQuery.ajax(url, options);\n };\n return Connector;\n }());\n exports.Connector = Connector;\n var Tools = (function () {\n function Tools() {\n }\n Tools.generatePreview = function (file, target) {\n if ((/image/i).test(file.type)) {\n var fileReader = new FileReader();\n fileReader.onload = function (ev) {\n target(ev.target.result);\n };\n fileReader.readAsDataURL(file);\n }\n else {\n target(\"content/thumbnails/documentupload.png\");\n }\n };\n return Tools;\n }());\n exports.Tools = Tools;\n var Worker = (function () {\n function Worker() {\n this.onDone = function (e) { };\n this.onError = function (e) { };\n this.onProgress = function (e) { };\n }\n Worker.prototype.initialize = function (data, file) {\n this._data = data;\n this._file = file;\n };\n Worker.prototype.start = function (azureUploadDetails) {\n var _this = this;\n var request = new XMLHttpRequest();\n request.onerror = function (ev) { return _this.onError(new StatusEventArgs(\"Es trat ein Fehler auf. Bitte wenden Sie sich an den Support.\", null)); };\n request.upload.onprogress = function (ev) { return _this.onProgress(new ProgressEventArgs(ev.total, ev.loaded)); };\n if (azureUploadDetails != null && azureStorage.useAzureStorage()) {\n var azureUrlDetails = azureStorage.getBlobUploadUrl(azureUploadDetails.organizationId);\n var storedFiles = [];\n var storedFile = new StoredFile();\n storedFile.id = azureUrlDetails.blobName;\n storedFile.fileName = this._file.name;\n storedFiles.push(storedFile);\n request.onload = function (ev) { return _this.onDone(new StatusEventArgs(request.statusText, storedFiles)); };\n request.open(\"PUT\", azureUrlDetails.url, true);\n request.setRequestHeader(\"x-ms-blob-type\", \"BlockBlob\");\n request.setRequestHeader(\"x-ms-blob-content-disposition\", \"filename=\" + this._file.name);\n request.send(this._file);\n }\n else {\n request.onload = function (ev) { return _this.onDone(new StatusEventArgs(request.statusText, _this.parseResponse(request.response))); };\n var url = Configuration.Settings.getServiceFor(\"portalstorage\", \"upload/temporary/\" + \"document.tmp\", null); //\"?sessionId=\" + Account.Session.getSessionId()\n request.open(\"POST\", url, true);\n request.setRequestHeader(\"Authorization\", Account.Session.getAuthorizationHeader());\n //request.setRequestHeader(\"Content-Type\", \"multipart/form-data\");\n request.send(this._data);\n }\n };\n Worker.prototype.parseResponse = function (response) {\n var item = jQuery.parseJSON(response);\n return new JsonConverter().convertPropertyNamesToCamelCase(item);\n };\n return Worker;\n }());\n});\n\n", "/// <reference path=\"../../../Scripts/typings/knockout/knockout.d.ts\" />\n/// <reference path=\"../../../Scripts/typings/linq/linq.d.ts\" />\ndefine('widgets/dataGrid/model',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var GridColumn = (function () {\n function GridColumn() {\n this.headerText = \"column\";\n this.sortable = false;\n this.width = \"auto\";\n this.template = \"\";\n this.canSelectAll = false;\n this.i18n = null;\n this.sortDirection = ko.observable(\"\");\n }\n Object.defineProperty(GridColumn.prototype, \"header\", {\n get: function () {\n var caption = $.t(this.i18n, { ifMissing: this.headerText });\n if (caption === null || caption === \"\")\n caption = this.headerText;\n return caption;\n },\n enumerable: true,\n configurable: true\n });\n return GridColumn;\n }());\n exports.GridColumn = GridColumn;\n});\n\n", "/**\r\n * Durandal 2.2.0 Copyright (c) 2010-2016 Blue Spire Consulting, Inc. All Rights Reserved.\r\n * Available via the MIT license.\r\n * see: http://durandaljs.com or https://github.com/BlueSpire/Durandal for details.\r\n */\r\n/**\r\n * Layers the widget sugar on top of the composition system.\r\n * @module widget\r\n * @requires system\r\n * @requires composition\r\n * @requires jquery\r\n * @requires knockout\r\n */\r\ndefine('plugins/widget',['durandal/system', 'durandal/composition', 'jquery', 'knockout'], function(system, composition, $, ko) {\r\n var kindModuleMaps = {},\r\n kindViewMaps = {},\r\n bindableSettings = ['model', 'view', 'kind'],\r\n widgetDataKey = 'durandal-widget-data';\r\n\r\n function extractParts(element, settings){\r\n var data = ko.utils.domData.get(element, widgetDataKey);\r\n\r\n if(!data){\r\n data = {\r\n parts:composition.cloneNodes(ko.virtualElements.childNodes(element))\r\n };\r\n\r\n ko.virtualElements.emptyNode(element);\r\n ko.utils.domData.set(element, widgetDataKey, data);\r\n }\r\n\r\n settings.parts = data.parts;\r\n }\r\n\r\n /**\r\n * @class WidgetModule\r\n * @static\r\n */\r\n var widget = {\r\n getSettings: function(valueAccessor) {\r\n var settings = ko.utils.unwrapObservable(valueAccessor()) || {};\r\n\r\n if (system.isString(settings)) {\r\n return { kind: settings };\r\n }\r\n\r\n for (var attrName in settings) {\r\n if (ko.utils.arrayIndexOf(bindableSettings, attrName) != -1) {\r\n settings[attrName] = ko.utils.unwrapObservable(settings[attrName]);\r\n } else {\r\n settings[attrName] = settings[attrName];\r\n }\r\n }\r\n\r\n return settings;\r\n },\r\n /**\r\n * Creates a ko binding handler for the specified kind.\r\n * @method registerKind\r\n * @param {string} kind The kind to create a custom binding handler for.\r\n */\r\n registerKind: function(kind) {\r\n ko.bindingHandlers[kind] = {\r\n init: function() {\r\n return { controlsDescendantBindings: true };\r\n },\r\n update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\r\n var settings = widget.getSettings(valueAccessor);\r\n settings.kind = kind;\r\n extractParts(element, settings);\r\n widget.create(element, settings, bindingContext, true);\r\n }\r\n };\r\n\r\n ko.virtualElements.allowedBindings[kind] = true;\r\n composition.composeBindings.push(kind + ':');\r\n },\r\n /**\r\n * Maps views and module to the kind identifier if a non-standard pattern is desired.\r\n * @method mapKind\r\n * @param {string} kind The kind name.\r\n * @param {string} [viewId] The unconventional view id to map the kind to.\r\n * @param {string} [moduleId] The unconventional module id to map the kind to.\r\n */\r\n mapKind: function(kind, viewId, moduleId) {\r\n if (viewId) {\r\n kindViewMaps[kind] = viewId;\r\n }\r\n\r\n if (moduleId) {\r\n kindModuleMaps[kind] = moduleId;\r\n }\r\n },\r\n /**\r\n * Maps a kind name to it's module id. First it looks up a custom mapped kind, then falls back to `convertKindToModulePath`.\r\n * @method mapKindToModuleId\r\n * @param {string} kind The kind name.\r\n * @return {string} The module id.\r\n */\r\n mapKindToModuleId: function(kind) {\r\n return kindModuleMaps[kind] || widget.convertKindToModulePath(kind);\r\n },\r\n /**\r\n * Converts a kind name to it's module path. Used to conventionally map kinds who aren't explicitly mapped through `mapKind`.\r\n * @method convertKindToModulePath\r\n * @param {string} kind The kind name.\r\n * @return {string} The module path.\r\n */\r\n convertKindToModulePath: function(kind) {\r\n return 'widgets/' + kind + '/viewmodel';\r\n },\r\n /**\r\n * Maps a kind name to it's view id. First it looks up a custom mapped kind, then falls back to `convertKindToViewPath`.\r\n * @method mapKindToViewId\r\n * @param {string} kind The kind name.\r\n * @return {string} The view id.\r\n */\r\n mapKindToViewId: function(kind) {\r\n return kindViewMaps[kind] || widget.convertKindToViewPath(kind);\r\n },\r\n /**\r\n * Converts a kind name to it's view id. Used to conventionally map kinds who aren't explicitly mapped through `mapKind`.\r\n * @method convertKindToViewPath\r\n * @param {string} kind The kind name.\r\n * @return {string} The view id.\r\n */\r\n convertKindToViewPath: function(kind) {\r\n return 'widgets/' + kind + '/view';\r\n },\r\n createCompositionSettings: function(element, settings) {\r\n if (!settings.model) {\r\n settings.model = this.mapKindToModuleId(settings.kind);\r\n }\r\n\r\n if (!settings.view) {\r\n settings.view = this.mapKindToViewId(settings.kind);\r\n }\r\n\r\n settings.preserveContext = true;\r\n settings.activate = true;\r\n settings.activationData = settings;\r\n settings.mode = 'templated';\r\n\r\n return settings;\r\n },\r\n /**\r\n * Creates a widget.\r\n * @method create\r\n * @param {DOMElement} element The DOMElement or knockout virtual element that serves as the target element for the widget.\r\n * @param {object} settings The widget settings.\r\n * @param {object} [bindingContext] The current binding context.\r\n */\r\n create: function(element, settings, bindingContext, fromBinding) {\r\n if(!fromBinding){\r\n settings = widget.getSettings(function() { return settings; }, element);\r\n }\r\n\r\n var compositionSettings = widget.createCompositionSettings(element, settings);\r\n\r\n composition.compose(element, compositionSettings, bindingContext);\r\n },\r\n /**\r\n * Installs the widget module by adding the widget binding handler and optionally registering kinds.\r\n * @method install\r\n * @param {object} config The module config. Add a `kinds` array with the names of widgets to automatically register. You can also specify a `bindingName` if you wish to use another name for the widget binding, such as \"control\" for example.\r\n */\r\n install:function(config){\r\n config.bindingName = config.bindingName || 'widget';\r\n\r\n if(config.kinds){\r\n var toRegister = config.kinds;\r\n\r\n for(var i = 0; i < toRegister.length; i++){\r\n widget.registerKind(toRegister[i]);\r\n }\r\n }\r\n\r\n ko.bindingHandlers[config.bindingName] = {\r\n init: function() {\r\n return { controlsDescendantBindings: true };\r\n },\r\n update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\r\n var settings = widget.getSettings(valueAccessor);\r\n extractParts(element, settings);\r\n widget.create(element, settings, bindingContext, true);\r\n }\r\n };\r\n\r\n composition.composeBindings.push(config.bindingName + ':');\r\n ko.virtualElements.allowedBindings[config.bindingName] = true;\r\n }\r\n };\r\n\r\n return widget;\r\n});\r\n\n", "define('widgets/dataGrid/viewmodel',['plugins/widget', 'durandal/composition', 'jquery', 'knockout', 'services/trace', 'models/event', 'widgets/dataGrid/model'],\r\nfunction (widget, composition, $, ko, trace, event, model) {\r\n\tvar ctor = function () { };\r\n\r\n\tctor.prototype.kendoColumns = function () {\r\n\t\treturn this.createKendoColumns(this.settings.columnDefinitions);\r\n\t};\r\n\r\n\tctor.prototype.enableDragAndDrop = function () {\r\n\t if (!this.settings.dragAndDrop) {\r\n\t return;\r\n }\r\n\r\n setTimeout(function () {\r\n var grid = $('.k-grid');\r\n\r\n grid.find('tbody').css('cursor', 'pointer');\r\n\r\n grid.kendoDraggable({\r\n filter: \"tbody tr\",\r\n cursorOffset: { top: 0, left:0 },\r\n dragstart: function(element) {\r\n element.currentTarget.addClass('move-message-active-source');\r\n $('body').css('cursor', 'pointer').addClass('body-drag-start');\r\n },\r\n dragend: function(element) {\r\n element.currentTarget.removeClass('move-message-active-source');\r\n $('body').css('cursor', 'default').removeClass('body-drag-start');\r\n },\r\n hint: function(element) {\r\n var messageSubject = element.data('subject');\r\n var draggableObject = '<div class=\"move-message-hint-container\">' +\r\n '<div><i class=\"fa fa-envelope\"></i></div>' +\r\n '<div>' + messageSubject + '</div>' +\r\n '</div>';\r\n\r\n return draggableObject;\r\n }\r\n });\r\n }, 0);\r\n };\r\n\r\n\tctor.prototype.fullSelectionState = ko.computed(function() {\r\n\t\treturn false;\r\n\t});\r\n\r\n\tctor.prototype.activate = function (settings) {\r\n\t\tvar that = this;\r\n\r\n\t\tthis.settings = settings;\r\n\t\tif (this.settings.groupable === undefined) this.settings.groupable = false;\r\n\r\n\t\tthis.createColumnDefinitions(settings);\r\n\t};\r\n\r\n\tctor.prototype.attached = function (settings) {\r\n\t\tvar that = this;\r\n\r\n\t\tif (this.loadedEvent == null) {\r\n\t\t\tthis.loadedEvent = new event.EventHandler(function (sender, e) {\r\n\t\t\t\tvar items = that.settings.selectedItems;\r\n\t\t\t\tif (items != null) {\r\n\t\t\t\t\titems.removeAll();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.settings.controller.onLoaded.add(this.loadedEvent);\r\n\t\t}\r\n\t\t}\r\n\r\n\tctor.prototype.detached = function (settings) {\r\n\t\tif (this.loadedEvent != null) {\r\n\t\t\tthis.settings.controller.onLoaded.remove(this.loadedEvent);\r\n\t\t}\r\n\t}\r\n\r\n\tvar templateRenderer = function (id) {\r\n\t\tvar that = this;\r\n\t\treturn function (data) {\r\n\t\t\treturn ko.renderTemplate(id, that.grid.context.createChildContext((data._raw && data._raw()) || data));\r\n\t\t};\r\n\t};\r\n\r\n\tctor.prototype.controller = function () {\r\n\t\treturn this.settings.controller;\r\n\t};\r\n\r\n\tctor.prototype.createKendoColumns = function (columnsDef) {\r\n\t\tvar result = [];\r\n\t\tvar that = this;\r\n\t\tcolumnsDef.forEach(function (element) {\r\n\t\t\tvar column = {};\r\n\r\n\t\t\tcolumn.field = element.name;\r\n\t\t\tcolumn.title = element.header;\r\n\t\t\tcolumn.headerAttributes = element.headerAttributes;\r\n\r\n\t\t\tif (element.width !== undefined) column.width = element.width;\r\n\t\t\tif (element.sortable !== undefined) column.sortable = element.sortable;\r\n\r\n\t\t\tif (typeof element.rowValue == 'function') {\r\n\t\t\t\tcolumn.template = element.rowValue;\r\n\t\t\t} else {\r\n\t\t\t\tcolumn.template = element.template;\r\n\t\t\t}\r\n\r\n\t\t\tresult.push(column);\r\n\t\t});\r\n\t\treturn result;\r\n\t};\r\n\r\n\tctor.prototype.createColumnDefinitions = function (settings) {\r\n\t\tvar definitions = [];\r\n\r\n\t\tsettings.columns.forEach(function (element) {\r\n\t\t\tvar column = new model.GridColumn();\r\n\r\n\t\t\tcolumn.headerText = element.headerText;\r\n\t\t\tcolumn.i18n = element.i18n;\r\n\t\t\tcolumn.name = column.rowValue = element.name;\r\n\t\t\tcolumn.headerAttributes = element.headerAttributes;\r\n\r\n\t\t\tif (element.rowValue !== undefined) column.rowValue = element.rowValue;\r\n\t\t\tif (element.sortable !== undefined) column.sortable = element.sortable;\r\n\t\t\tif (element.template !== undefined) column.template = element.template;\r\n\t\t\tif (element.canSelectAll !== undefined) column.canSelectAll = element.canSelectAll;\r\n\t\t\tif (element.sort !== undefined) column.sortDirection(element.sort);\r\n\t\t\tif (element.width !== undefined) column.width = element.width;\r\n\r\n\t\t\tdefinitions.push(column);\r\n\t\t});\r\n\r\n\t\tthis.settings.columnDefinitions = definitions;\r\n\t};\r\n\r\n\tctor.prototype.setSelection = function() {\r\n\t\tvar value = !this.fullSelectionState();\r\n\t\tvar controller = this.settings.controller;\r\n\t\tvar data = controller.result();\r\n\r\n\t\tif (this.settings.selectedItems === undefined) {\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tEnumerable.From(data)\r\n\t\t\t\t\t.ForEach(function (d) {\r\n\t\t\t\t\t\td.isSelected = value;\r\n\t\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tvar selectedItems = this.settings.selectedItems;\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tselectedItems.removeAll();\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tEnumerable.From(data)\r\n\t\t\t\t\t\t.ForEach(function (d) {\r\n\t\t\t\t\t\t\tselectedItems.push(d);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tctor.prototype.getSelectedItems = function () {\r\n\t\tif (this.settings.selectedItems === undefined) {\r\n\t\t\treturn Enumerable.From(this.settings.controller.result())\r\n\t\t\t\t.Where(function(d) { return d.isSelected == true; })\r\n\t\t\t\t.ToArray();\r\n\t\t} else {\r\n\t\t\treturn this.settings.selectedItems();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\treturn ctor;\r\n});\n", "/// <reference path=\"../../../Scripts/typings/knockout/knockout.d.ts\" />\n/// <reference path=\"../../../Scripts/typings/linq/linq.d.ts\" />\ndefine('widgets/dataList/model',[\"require\", \"exports\"], function (require, exports) {\n \"use strict\";\n var GridColumn = (function () {\n function GridColumn() {\n this.headerText = \"column\";\n this.sortable = false;\n this.width = \"auto\";\n this.template = \"\";\n this.canSelectAll = false;\n this.i18n = null;\n this.sortDirection = ko.observable(\"\");\n }\n Object.defineProperty(GridColumn.prototype, \"header\", {\n get: function () {\n var caption = $.t(this.i18n, { ifMissing: this.headerText });\n if (caption == null || caption === \"\")\n caption = this.headerText;\n return caption;\n },\n enumerable: true,\n configurable: true\n });\n return GridColumn;\n }());\n exports.GridColumn = GridColumn;\n});\n\n", "define('widgets/dataList/viewmodel',['plugins/widget', 'durandal/composition', 'jquery', 'knockout', 'services/trace', 'models/event', 'widgets/dataList/model'],\r\nfunction (widget, composition, $, ko, trace, event, model) {\r\n\tvar ctor = function () { };\r\n\r\n\tctor.prototype.columns = function() {\r\n\t\treturn this.settings.columnDefinitions;\r\n\t};\r\n\r\n\tctor.prototype.fullSelectionState = ko.computed(function() {\r\n\t\treturn false;\r\n\t});\r\n\r\n\tctor.prototype.activate = function (settings) {\r\n\t\tvar that = this;\r\n\r\n\t\tthis.settings = settings;\r\n\t\tthis.createColumnDefinitions(settings);\r\n\r\n\t\t// selected all checkBox\r\n\t\tthis.fullSelectionState = ko.computed(function () {\r\n\t\t\tif (settings.controller === undefined) return false;\r\n\r\n\t\t\tvar dataCount = settings.controller.result().length;\r\n\t\t\tvar selectedItemsCount = this.getSelectedItems().length;\r\n\r\n\t\t\treturn selectedItemsCount == dataCount;\r\n\t\t}, this);\r\n\r\n\r\n\t\t// auto scroll\r\n\t\t// => activate: <script src=\"Scripts/jquery.infinitescroll.min.js\"></script>\r\n\r\n\t\t//var element = $('.dataGrid');\r\n\t\t//element.scroll(function() {\r\n\t\t//\tvar scrolltrigger = 0.80; // 0.95;\r\n\t\t//\tvar scrollTop = element.scrollTop();\r\n\t\t//\tvar documentHeight = $(document).height();\r\n\t\t//\tvar gridHeight = element.height();\r\n\r\n\t\t//\tconsole.log('scrolltop:' + scrollTop);\r\n\t\t//\tconsole.log('gridheight:' + gridHeight);\r\n\t\t//\tconsole.log('documentheight:' + documentHeight);\r\n\r\n\t\t//\tconsole.log(scrollTop / (documentHeight - gridHeight));\r\n\r\n\t\t//\tif ((scrollTop / (documentHeight - gridHeight)) > scrolltrigger) {\r\n\t\t//\t//\twarn(\"done\");\r\n\t\t//\t}\r\n\t\t//});\r\n\r\n\t};\r\n\r\n\tctor.prototype.attached = function (settings) {\r\n\t\tvar that = this;\r\n\r\n\t\t// refresh => clear selectedItems\r\n\t\tif (this.refreshEvent == null) {\r\n\t\t\tthis.refreshEvent = new event.EventHandler(function (sender, e) {\r\n\t\t\t\tvar items = that.settings.selectedItems;\r\n\t\t\t\tif (items != null) {\r\n\t\t\t\t\titems.removeAll();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.settings.controller.onLoaded.add(this.refreshEvent);\r\n\t\t}\r\n\t}\r\n\r\n\tctor.prototype.detached = function(settings) {\r\n\t\tif (this.refreshEvent != null) {\r\n\t\t\tthis.settings.controller.onLoaded.remove(this.refreshEvent);\r\n\t\t}\r\n\t}\r\n\r\n\tctor.prototype.sort = function (column) {\r\n\t\tvar operator = column.sortDirection();\r\n\r\n\t\tthis.clearSort();\r\n\r\n\t\tswitch(operator) {\r\n\t\t\tcase '':\r\n\t\t\t\tcolumn.sortDirection('asc');\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'asc':\r\n\t\t\t\tcolumn.sortDirection('desc');\r\n\t\t\t\t//this.controller().sortBy({ column: column.name, operator: column.sortDirection() });\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'desc':\r\n\t\t\t\tcolumn.sortDirection('');\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tvar controller = this.controller();\r\n\t\tvar definition = controller.buildSort(column.name, column.sortDirection());\r\n\t\tcontroller.sortDefinitions.modify(function (s) {\r\n\t\t\ts.clear();\r\n\t\t\tif (column.sortDirection() !== '') {\r\n\t\t\t\ts.add(definition);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn Q.when(controller.load());\r\n\t};\r\n\r\n\tctor.prototype.setSelection = function() {\r\n\t\tvar value = !this.fullSelectionState();\r\n\t\tvar controller = this.settings.controller;\r\n\t\tvar data = controller.result();\r\n\r\n\t\tif (this.settings.selectedItems === undefined) {\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tEnumerable.From(data)\r\n\t\t\t\t\t.ForEach(function (d) {\r\n\t\t\t\t\t\td.isSelected = value;\r\n\t\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tvar selectedItems = this.settings.selectedItems;\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tselectedItems.removeAll();\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tEnumerable.From(data)\r\n\t\t\t\t\t\t.ForEach(function (d) {\r\n\t\t\t\t\t\t\tselectedItems.push(d);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tctor.prototype.controller = function () {\r\n\t\treturn this.settings.controller;\r\n\t};\r\n\r\n\tctor.prototype.createColumnDefinitions = function(settings) {\r\n\t\tvar definitions = [];\r\n\r\n\t\tsettings.columns.forEach(function(element) {\r\n\t\t\tvar column = new model.GridColumn();\r\n\r\n\t\t\tcolumn.headerText = element.headerText;\r\n\t\t\tcolumn.i18n = element.i18n;\r\n\t\t\tcolumn.name = column.rowValue = element.name;\r\n\r\n\t\t\tif (element.rowValue !== undefined) column.rowValue = element.rowValue;\r\n\t\t\tif (element.sortable !== undefined) column.sortable = element.sortable;\r\n\t\t\tif (element.template !== undefined) column.template = element.template;\r\n\t\t\tif (element.canSelectAll !== undefined) column.canSelectAll = element.canSelectAll;\r\n\t\t\tif (element.sort !== undefined) column.sortDirection(element.sort);\r\n\t\t\tif (element.width !== undefined) column.width = element.width;\r\n\r\n\r\n\t\t\tdefinitions.push(column);\r\n\t\t});\r\n\r\n\t\tthis.settings.columnDefinitions = definitions;\r\n\t};\r\n\r\n\tctor.prototype.clearSort = function() {\r\n\t\tthis.settings.columnDefinitions.forEach(function(element) {\r\n\t\t\telement.sortDirection('');\r\n\t\t});\r\n\t};\r\n\r\n\r\n\r\n\r\n\tctor.prototype.getSelectedItems = function () {\r\n\t\tif (this.settings.selectedItems === undefined) {\r\n\t\t\treturn Enumerable.From(this.settings.controller.result())\r\n\t\t\t\t.Where(function(d) { return d.isSelected == true; })\r\n\t\t\t\t.ToArray();\r\n\t\t} else {\r\n\t\t\treturn this.settings.selectedItems();\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\treturn ctor;\r\n});\r\n\r\n\r\n//{ headerText: '#', rowValue: 'isSelected', sortable: false, width: '30px', template: 'checkboxTemplate' },\r\n//{ headerText: 'Email', rowValue: 'from', sortable: false, width: '175px', template: '' },\r\n//{ headerText: 'Betreff', rowValue: 'subject', sortable: true, width: 'auto', template: 'subjectTemplate' },\r\n//{ headerText: 'Erhalten am', rowValue: function(item) { return moment(item.receivedOn()).format('DD.MM.YYYY HH:mm') }, sortable: true, width: '150px', template: '' }\r\n\r\n;\n", "define('widgets/pagedView/viewmodel',['plugins/widget', 'durandal/composition', 'jquery', 'knockout', 'services/trace', 'models/controller', 'models/account'],\r\nfunction (widget, composition, $, ko, trace, model, account) {\r\n\tvar ctor = function () { };\r\n\r\n\tctor.prototype.controller = function () {\r\n\t\treturn this.settings.controller;\r\n\t};\r\n\r\n\tctor.prototype.activate = function (settings) {\r\n\t\tthis.settings = settings;\r\n\r\n\t\tif (this.controller().result().length === 0 && this.controller().isLoading() === false) {\r\n\t\t\treturn Q.when(this.controller().load());\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t};\r\n\r\n\tctor.prototype.refresh = function () {\r\n\t\treturn Q.when(this.controller().load());\r\n\t};\r\n\r\n\tctor.prototype.sort = function (column, operator) {\r\n\t\tvar sort = this.controller().buildSort(column, operator);\r\n\r\n\t\tthis.controller().sortDefinitions.replace(sort);\r\n\t};\r\n\r\n\tctor.prototype.filter = function (column, operator, needle, list) {\r\n\t\tvar filter = this.controller().buildFilter(column, operator, needle, list);\r\n\r\n\t\tthis.controller().filterDefinitions.replace(filter);\r\n\t};\r\n\r\n\tctor.prototype.nextPage = function () {\r\n\t\tthis.setPage(this.controller().currentPage() + 1);\r\n\t};\r\n\r\n\tctor.prototype.lastPage = function() {\r\n\t\tthis.setPage(this.controller().pageCount());\r\n\t};\r\n\r\n\tctor.prototype.previousPage = function () {\r\n\t\tthis.setPage(this.controller().currentPage() - 1);\r\n\t};\r\n\r\n\tctor.prototype.firstPage = function () {\r\n\t\tthis.setPage(1);\r\n\t};\r\n\r\n\tctor.prototype.setPage = function (pageToSet) {\r\n\r\n\t\tif (pageToSet > this.controller().pageCount()) return;\r\n\t\tif (pageToSet < 1) return;\r\n\t\tif (pageToSet === this.controller().currentPage()) return;\r\n\r\n\t\tthis.controller().gotoPage(pageToSet);\r\n\t};\r\n\r\n\r\n\tctor.prototype.setRowCount = function(count) {\r\n\t\taccount.Session.rowCount = count;\r\n\r\n\t\tthis.controller().pageSize(count);\r\n\t\tQ.when(this.controller().load());\r\n\t};\r\n\r\n\treturn ctor;\r\n});\r\n\n", "define('widgets/simpleView/viewmodel',['plugins/widget', 'durandal/composition', 'jquery', 'knockout', 'services/trace'],\r\nfunction (widget, composition, $, ko, trace) {\r\n\tvar ctor = function () { };\r\n\r\n\tctor.prototype.controller = function () {\r\n\t\treturn this.settings.controller;\r\n\t};\r\n\r\n\r\n\tctor.prototype.activate = function (settings) {\r\n\t\tthis.settings = settings;\r\n\r\n\t\tif (this.controller().result().length == 0) {\r\n\t\t\treturn Q.when(this.controller().load());\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t};\r\n\r\n\tctor.prototype.refresh = function () {\r\n\t\treturn Q.when(this.controller().load());\r\n\t};\r\n\r\n\treturn ctor;\r\n});\r\n\n", "/**\r\n * Durandal 2.2.0 Copyright (c) 2010-2016 Blue Spire Consulting, Inc. All Rights Reserved.\r\n * Available via the MIT license.\r\n * see: http://durandaljs.com or https://github.com/BlueSpire/Durandal for details.\r\n */\r\n/**\r\n * Enables common http request scenarios.\r\n * @module http\r\n * @requires jquery\r\n * @requires knockout\r\n */\r\ndefine('plugins/http',['jquery', 'knockout'], function ($, ko) {\r\n /**\r\n * @class HTTPModule\r\n * @static\r\n */\r\n return {\r\n /**\r\n * The name of the callback parameter to inject into jsonp requests by default.\r\n * @property {string} callbackParam\r\n * @default callback\r\n */\r\n callbackParam: 'callback',\r\n /**\r\n * Converts the data to JSON.\r\n * @method toJSON\r\n * @param {object} data The data to convert to JSON.\r\n * @return {string} JSON.\r\n */\r\n toJSON: function(data) {\r\n return ko.toJSON(data);\r\n },\r\n /**\r\n * Makes an HTTP GET request.\r\n * @method get\r\n * @param {string} url The url to send the get request to.\r\n * @param {object} [query] An optional key/value object to transform into query string parameters.\r\n * @param {object} [headers] The data to add to the request header. It will be converted to JSON. If the data contains Knockout observables, they will be converted into normal properties before serialization.\r\n * @return {Promise} A promise of the get response data.\r\n */\r\n get: function (url, query, headers) {\r\n return $.ajax(url, { data: query, headers: ko.toJS(headers) });\r\n },\r\n /**\r\n * Makes an JSONP request.\r\n * @method jsonp\r\n * @param {string} url The url to send the get request to.\r\n * @param {object} [query] An optional key/value object to transform into query string parameters.\r\n * @param {string} [callbackParam] The name of the callback parameter the api expects (overrides the default callbackParam).\r\n * @param {object} [headers] The data to add to the request header. It will be converted to JSON. If the data contains Knockout observables, they will be converted into normal properties before serialization.\r\n * @return {Promise} A promise of the response data.\r\n */\r\n jsonp: function (url, query, callbackParam, headers) {\r\n if (url.indexOf('=?') == -1) {\r\n callbackParam = callbackParam || this.callbackParam;\r\n\r\n if (url.indexOf('?') == -1) {\r\n url += '?';\r\n } else {\r\n url += '&';\r\n }\r\n\r\n url += callbackParam + '=?';\r\n }\r\n\r\n return $.ajax({\r\n url: url,\r\n dataType: 'jsonp',\r\n data: query,\r\n headers: ko.toJS(headers)\r\n });\r\n },\r\n /**\r\n * Makes an HTTP PUT request.\r\n * @method put\r\n * @param {string} url The url to send the put request to.\r\n * @param {object} data The data to put. It will be converted to JSON. If the data contains Knockout observables, they will be converted into normal properties before serialization.\r\n * @param {object} [headers] The data to add to the request header. It will be converted to JSON. If the data contains Knockout observables, they will be converted into normal properties before serialization.\r\n * @return {Promise} A promise of the response data.\r\n */\r\n put:function(url, data, headers) {\r\n return $.ajax({\r\n url: url,\r\n data: this.toJSON(data),\r\n type: 'PUT',\r\n contentType: 'application/json',\r\n dataType: 'json',\r\n headers: ko.toJS(headers)\r\n });\r\n },\r\n /**\r\n * Makes an HTTP POST request.\r\n * @method post\r\n * @param {string} url The url to send the post request to.\r\n * @param {object} data The data to post. It will be converted to JSON. If the data contains Knockout observables, they will be converted into normal properties before serialization.\r\n * @param {object} [headers] The data to add to the request header. It will be converted to JSON. If the data contains Knockout observables, they will be converted into normal properties before serialization.\r\n * @return {Promise} A promise of the response data.\r\n */\r\n post: function (url, data, headers) {\r\n return $.ajax({\r\n url: url,\r\n data: this.toJSON(data),\r\n type: 'POST',\r\n contentType: 'application/json',\r\n dataType: 'json',\r\n headers: ko.toJS(headers)\r\n });\r\n },\r\n /**\r\n * Makes an HTTP DELETE request.\r\n * @method remove\r\n * @param {string} url The url to send the delete request to.\r\n * @param {object} [query] An optional key/value object to transform into query string parameters.\r\n * @param {object} [headers] The data to add to the request header. It will be converted to JSON. If the data contains Knockout observables, they will be converted into normal properties before serialization.\r\n * @return {Promise} A promise of the get response data.\r\n */\r\n remove:function(url, query, headers) {\r\n return $.ajax({\r\n url: url,\r\n data: query,\r\n type: 'DELETE',\r\n headers: ko.toJS(headers)\r\n });\r\n }\r\n };\r\n});\r\n\n", "/**\r\n * Durandal 2.2.0 Copyright (c) 2010-2016 Blue Spire Consulting, Inc. All Rights Reserved.\r\n * Available via the MIT license.\r\n * see: http://durandaljs.com or https://github.com/BlueSpire/Durandal for details.\r\n */\r\n/**\r\n * Enables automatic observability of plain javascript object for ES5 compatible browsers. Also, converts promise properties into observables that are updated when the promise resolves.\r\n * @module observable\r\n * @requires system\r\n * @requires binder\r\n * @requires knockout\r\n */\r\ndefine('plugins/observable',['durandal/system', 'durandal/binder', 'knockout'], function(system, binder, ko) {\r\n var observableModule,\r\n toString = Object.prototype.toString,\r\n nonObservableTypes = ['[object Function]', '[object String]', '[object Boolean]', '[object Number]', '[object Date]', '[object RegExp]'],\r\n observableArrayMethods = ['remove', 'removeAll', 'destroy', 'destroyAll', 'replace'],\r\n arrayMethods = ['pop', 'reverse', 'sort', 'shift', 'slice'],\r\n additiveArrayFunctions = ['push', 'unshift'],\r\n es5Functions = ['filter', 'map', 'reduce', 'reduceRight', 'forEach', 'every', 'some'],\r\n arrayProto = Array.prototype,\r\n observableArrayFunctions = ko.observableArray.fn,\r\n logConversion = false,\r\n changeDetectionMethod = undefined,\r\n skipPromises = false,\r\n shouldIgnorePropertyName;\r\n\r\n /**\r\n * You can call observable(obj, propertyName) to get the observable function for the specified property on the object.\r\n * @class ObservableModule\r\n */\r\n\r\n if (!('getPropertyDescriptor' in Object)) {\r\n var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\r\n var getPrototypeOf = Object.getPrototypeOf;\r\n\r\n Object['getPropertyDescriptor'] = function(o, name) {\r\n var proto = o, descriptor;\r\n\r\n while(proto && !(descriptor = getOwnPropertyDescriptor(proto, name))) {\r\n proto = getPrototypeOf(proto);\r\n }\r\n\r\n return descriptor;\r\n };\r\n }\r\n\r\n function defaultShouldIgnorePropertyName(propertyName){\r\n var first = propertyName[0];\r\n return first === '_' || first === '$' || (changeDetectionMethod && propertyName === changeDetectionMethod);\r\n }\r\n\r\n function isNode(obj) {\r\n return !!(obj && obj.nodeType !== undefined && system.isNumber(obj.nodeType));\r\n }\r\n\r\n function canConvertType(value) {\r\n if (!value || isNode(value) || value.ko === ko || value.jquery) {\r\n return false;\r\n }\r\n\r\n var type = toString.call(value);\r\n\r\n return nonObservableTypes.indexOf(type) == -1 && !(value === true || value === false);\r\n }\r\n\r\n function createLookup(obj) {\r\n var value = {};\r\n\r\n Object.defineProperty(obj, \"__observable__\", {\r\n enumerable: false,\r\n configurable: false,\r\n writable: false,\r\n value: value\r\n });\r\n\r\n return value;\r\n }\r\n\r\n function makeObservableArray(original, observable, hasChanged) {\r\n var lookup = original.__observable__, notify = true;\r\n\r\n if(lookup && lookup.__full__){\r\n return;\r\n }\r\n\r\n lookup = lookup || createLookup(original);\r\n lookup.__full__ = true;\r\n\r\n es5Functions.forEach(function (methodName) {\r\n observable[methodName] = function () {\r\n return arrayProto[methodName].apply(original, arguments);\r\n };\r\n });\r\n\r\n observableArrayMethods.forEach(function(methodName) {\r\n original[methodName] = function() {\r\n notify = false;\r\n var methodCallResult = observableArrayFunctions[methodName].apply(observable, arguments);\r\n notify = true;\r\n return methodCallResult;\r\n };\r\n });\r\n\r\n arrayMethods.forEach(function(methodName) {\r\n original[methodName] = function() {\r\n if(notify){\r\n observable.valueWillMutate();\r\n }\r\n\r\n var methodCallResult = arrayProto[methodName].apply(original, arguments);\r\n\r\n if(notify){\r\n observable.valueHasMutated();\r\n }\r\n\r\n return methodCallResult;\r\n };\r\n });\r\n\r\n additiveArrayFunctions.forEach(function(methodName){\r\n original[methodName] = function() {\r\n for (var i = 0, len = arguments.length; i < len; i++) {\r\n convertObject(arguments[i], hasChanged);\r\n }\r\n\r\n if(notify){\r\n observable.valueWillMutate();\r\n }\r\n\r\n var methodCallResult = arrayProto[methodName].apply(original, arguments);\r\n\r\n if(notify){\r\n observable.valueHasMutated();\r\n }\r\n\r\n return methodCallResult;\r\n };\r\n });\r\n\r\n original['splice'] = function() {\r\n for (var i = 2, len = arguments.length; i < len; i++) {\r\n convertObject(arguments[i], hasChanged);\r\n }\r\n\r\n if(notify){\r\n observable.valueWillMutate();\r\n }\r\n\r\n var methodCallResult = arrayProto['splice'].apply(original, arguments);\r\n\r\n if(notify){\r\n observable.valueHasMutated();\r\n }\r\n\r\n return methodCallResult;\r\n };\r\n\r\n for (var i = 0, len = original.length; i < len; i++) {\r\n convertObject(original[i], hasChanged);\r\n }\r\n }\r\n\r\n /**\r\n * Converts an entire object into an observable object by re-writing its attributes using ES5 getters and setters. Attributes beginning with '_' or '$' are ignored.\r\n * @method convertObject\r\n * @param {object} obj The target object to convert.\r\n */\r\n function convertObject(obj, hasChanged) {\r\n var lookup, value;\r\n\r\n if (changeDetectionMethod) {\r\n if(obj && obj[changeDetectionMethod]) {\r\n if (hasChanged) {\r\n hasChanged = hasChanged.slice(0);\r\n } else {\r\n hasChanged = [];\r\n }\r\n hasChanged.push(obj[changeDetectionMethod]);\r\n }\r\n }\r\n\r\n if(!canConvertType(obj)){\r\n return;\r\n }\r\n\r\n lookup = obj.__observable__;\r\n\r\n if(lookup && lookup.__full__){\r\n return;\r\n }\r\n\r\n lookup = lookup || createLookup(obj);\r\n lookup.__full__ = true;\r\n\r\n if (system.isArray(obj)) {\r\n var observable = ko.observableArray(obj);\r\n makeObservableArray(obj, observable, hasChanged);\r\n } else {\r\n for (var propertyName in obj) {\r\n if(shouldIgnorePropertyName(propertyName)){\r\n continue;\r\n }\r\n\r\n if (!lookup[propertyName]) {\r\n var descriptor = Object.getPropertyDescriptor(obj, propertyName);\r\n if (descriptor && (descriptor.get || descriptor.set)) {\r\n defineProperty(obj, propertyName, {\r\n get:descriptor.get,\r\n set:descriptor.set\r\n });\r\n } else {\r\n value = obj[propertyName];\r\n\r\n if(!system.isFunction(value)) {\r\n convertProperty(obj, propertyName, value, hasChanged);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if(logConversion) {\r\n system.log('Converted', obj);\r\n }\r\n }\r\n\r\n function innerSetter(observable, newValue, isArray) {\r\n //if this was originally an observableArray, then always check to see if we need to add/replace the array methods (if newValue was an entirely new array)\r\n if (isArray) {\r\n if (!newValue) {\r\n //don't allow null, force to an empty array\r\n newValue = [];\r\n makeObservableArray(newValue, observable);\r\n }\r\n else if (!newValue.destroyAll) {\r\n makeObservableArray(newValue, observable);\r\n }\r\n } else {\r\n convertObject(newValue);\r\n }\r\n\r\n //call the update to the observable after the array as been updated.\r\n observable(newValue);\r\n }\r\n\r\n /**\r\n * Converts a normal property into an observable property using ES5 getters and setters.\r\n * @method convertProperty\r\n * @param {object} obj The target object on which the property to convert lives.\r\n * @param {string} propertyName The name of the property to convert.\r\n * @param {object} [original] The original value of the property. If not specified, it will be retrieved from the object.\r\n * @return {KnockoutObservable} The underlying observable.\r\n */\r\n function convertProperty(obj, propertyName, original, hasChanged) {\r\n var observable,\r\n isArray,\r\n lookup = obj.__observable__ || createLookup(obj);\r\n\r\n if(original === undefined){\r\n original = obj[propertyName];\r\n }\r\n\r\n if (system.isArray(original)) {\r\n observable = ko.observableArray(original);\r\n makeObservableArray(original, observable, hasChanged);\r\n isArray = true;\r\n } else if (typeof original == \"function\") {\r\n if(ko.isObservable(original)){\r\n observable = original;\r\n }else{\r\n return null;\r\n }\r\n } else if(!skipPromises && system.isPromise(original)) {\r\n observable = ko.observable();\r\n\r\n original.then(function (result) {\r\n if(system.isArray(result)) {\r\n var oa = ko.observableArray(result);\r\n makeObservableArray(result, oa, hasChanged);\r\n result = oa;\r\n }\r\n\r\n observable(result);\r\n });\r\n } else {\r\n observable = ko.observable(original);\r\n convertObject(original, hasChanged);\r\n }\r\n\r\n if (hasChanged && hasChanged.length > 0) {\r\n hasChanged.forEach(function (func) {\r\n if (system.isArray(original)) {\r\n observable.subscribe(function (arrayChanges) {\r\n func(obj, propertyName, null, arrayChanges);\r\n }, null, \"arrayChange\");\r\n } else {\r\n observable.subscribe(function (newValue) {\r\n func(obj, propertyName, newValue, null);\r\n });\r\n }\r\n });\r\n }\r\n\r\n Object.defineProperty(obj, propertyName, {\r\n configurable: true,\r\n enumerable: true,\r\n get: observable,\r\n set: ko.isWriteableObservable(observable) ? (function (newValue) {\r\n if (newValue && system.isPromise(newValue) && !skipPromises) {\r\n newValue.then(function (result) {\r\n innerSetter(observable, result, system.isArray(result));\r\n });\r\n } else {\r\n innerSetter(observable, newValue, isArray);\r\n }\r\n }) : undefined\r\n });\r\n\r\n lookup[propertyName] = observable;\r\n return observable;\r\n }\r\n\r\n /**\r\n * Defines a computed property using ES5 getters and setters.\r\n * @method defineProperty\r\n * @param {object} obj The target object on which to create the property.\r\n * @param {string} propertyName The name of the property to define.\r\n * @param {function|object} evaluatorOrOptions The Knockout computed function or computed options object.\r\n * @return {KnockoutObservable} The underlying computed observable.\r\n */\r\n function defineProperty(obj, propertyName, evaluatorOrOptions) {\r\n var computedOptions = { owner: obj, deferEvaluation: true },\r\n computed;\r\n\r\n if (typeof evaluatorOrOptions === 'function') {\r\n computedOptions.read = evaluatorOrOptions;\r\n } else {\r\n if ('value' in evaluatorOrOptions) {\r\n system.error('For defineProperty, you must not specify a \"value\" for the property. You must provide a \"get\" function.');\r\n }\r\n\r\n if (typeof evaluatorOrOptions.get !== 'function' && typeof evaluatorOrOptions.read !== 'function') {\r\n system.error('For defineProperty, the third parameter must be either an evaluator function, or an options object containing a function called \"get\".');\r\n }\r\n\r\n computedOptions.read = evaluatorOrOptions.get || evaluatorOrOptions.read;\r\n computedOptions.write = evaluatorOrOptions.set || evaluatorOrOptions.write;\r\n }\r\n\r\n computed = ko.computed(computedOptions);\r\n\r\n Object.defineProperty(obj, propertyName, {\r\n configurable: true,\r\n enumerable: true,\r\n value: computed\r\n });\r\n\r\n return convertProperty(obj, propertyName, computed);\r\n }\r\n\r\n observableModule = function(obj, propertyName){\r\n var lookup, observable, value;\r\n\r\n if (!obj) {\r\n return null;\r\n }\r\n\r\n lookup = obj.__observable__;\r\n if(lookup){\r\n observable = lookup[propertyName];\r\n if(observable){\r\n return observable;\r\n }\r\n }\r\n\r\n value = obj[propertyName];\r\n\r\n if(ko.isObservable(value)){\r\n return value;\r\n }\r\n\r\n return convertProperty(obj, propertyName, value);\r\n };\r\n\r\n observableModule.defineProperty = defineProperty;\r\n observableModule.convertProperty = convertProperty;\r\n observableModule.convertObject = convertObject;\r\n\r\n /**\r\n * Installs the plugin into the view model binder's `beforeBind` hook so that objects are automatically converted before being bound.\r\n * @method install\r\n */\r\n observableModule.install = function(options) {\r\n var original = binder.binding;\r\n\r\n binder.binding = function(obj, view, instruction) {\r\n if(instruction.applyBindings && !instruction.skipConversion){\r\n convertObject(obj);\r\n }\r\n\r\n original(obj, view);\r\n };\r\n\r\n logConversion = options.logConversion;\r\n if (options.changeDetection) {\r\n changeDetectionMethod = options.changeDetection;\r\n }\r\n\r\n skipPromises = options.skipPromises;\r\n shouldIgnorePropertyName = options.shouldIgnorePropertyName || defaultShouldIgnorePropertyName;\r\n };\r\n\r\n return observableModule;\r\n});\r\n\n", "/**\r\n * Durandal 2.2.0 Copyright (c) 2010-2016 Blue Spire Consulting, Inc. All Rights Reserved.\r\n * Available via the MIT license.\r\n * see: http://durandaljs.com or https://github.com/BlueSpire/Durandal for details.\r\n */\r\n/**\r\n * Serializes and deserializes data to/from JSON.\r\n * @module serializer\r\n * @requires system\r\n */\r\ndefine('plugins/serializer',['durandal/system'], function(system) {\r\n /**\r\n * @class SerializerModule\r\n * @static\r\n */\r\n return {\r\n /**\r\n * The name of the attribute that the serializer should use to identify an object's type.\r\n * @property {string} typeAttribute\r\n * @default type\r\n */\r\n typeAttribute: 'type',\r\n /**\r\n * The amount of space to use for indentation when writing out JSON.\r\n * @property {string|number} space\r\n * @default undefined\r\n */\r\n space:undefined,\r\n /**\r\n * The default replacer function used during serialization. By default properties starting with '_' or '$' are removed from the serialized object.\r\n * @method replacer\r\n * @param {string} key The object key to check.\r\n * @param {object} value The object value to check.\r\n * @return {object} The value to serialize.\r\n */\r\n replacer: function(key, value) {\r\n if(key){\r\n var first = key[0];\r\n if(first === '_' || first === '$'){\r\n return undefined;\r\n }\r\n }\r\n\r\n return value;\r\n },\r\n /**\r\n * Serializes the object.\r\n * @method serialize\r\n * @param {object} object The object to serialize.\r\n * @param {object} [settings] Settings can specify a replacer or space to override the serializer defaults.\r\n * @return {string} The JSON string.\r\n */\r\n serialize: function(object, settings) {\r\n settings = (settings === undefined) ? {} : settings;\r\n\r\n if(system.isString(settings) || system.isNumber(settings)) {\r\n settings = { space: settings };\r\n }\r\n\r\n return JSON.stringify(object, settings.replacer || this.replacer, settings.space || this.space);\r\n },\r\n /**\r\n * Gets the type id for an object instance, using the configured `typeAttribute`.\r\n * @method getTypeId\r\n * @param {object} object The object to serialize.\r\n * @return {string} The type.\r\n */\r\n getTypeId: function(object) {\r\n if (object) {\r\n return object[this.typeAttribute];\r\n }\r\n\r\n return undefined;\r\n },\r\n /**\r\n * Maps type ids to object constructor functions. Keys are type ids and values are functions.\r\n * @property {object} typeMap.\r\n */\r\n typeMap: {},\r\n /**\r\n * Adds a type id/constructor function mampping to the `typeMap`.\r\n * @method registerType\r\n * @param {string} typeId The type id.\r\n * @param {function} constructor The constructor.\r\n */\r\n registerType: function() {\r\n var first = arguments[0];\r\n\r\n if (arguments.length == 1) {\r\n var id = first[this.typeAttribute] || system.getModuleId(first);\r\n this.typeMap[id] = first;\r\n } else {\r\n this.typeMap[first] = arguments[1];\r\n }\r\n },\r\n /**\r\n * The default reviver function used during deserialization. By default is detects type properties on objects and uses them to re-construct the correct object using the provided constructor mapping.\r\n * @method reviver\r\n * @param {string} key The attribute key.\r\n * @param {object} value The object value associated with the key.\r\n * @param {function} getTypeId A custom function used to get the type id from a value.\r\n * @param {object} getConstructor A custom function used to get the constructor function associated with a type id.\r\n * @return {object} The value.\r\n */\r\n reviver: function(key, value, getTypeId, getConstructor) {\r\n var typeId = getTypeId(value);\r\n if (typeId) {\r\n var ctor = getConstructor(typeId);\r\n if (ctor) {\r\n if (ctor.fromJSON) {\r\n return ctor.fromJSON(value);\r\n }\r\n\r\n return new ctor(value);\r\n }\r\n }\r\n\r\n return value;\r\n },\r\n /**\r\n * Deserialize the JSON.\r\n * @method deserialize\r\n * @param {string} text The JSON string.\r\n * @param {object} [settings] Settings can specify a reviver, getTypeId function or getConstructor function.\r\n * @return {object} The deserialized object.\r\n */\r\n deserialize: function(text, settings) {\r\n var that = this;\r\n settings = settings || {};\r\n\r\n var getTypeId = settings.getTypeId || function(object) { return that.getTypeId(object); };\r\n var getConstructor = settings.getConstructor || function(id) { return that.typeMap[id]; };\r\n var reviver = settings.reviver || function(key, value) { return that.reviver(key, value, getTypeId, getConstructor); };\r\n\r\n return JSON.parse(text, reviver);\r\n },\r\n /**\r\n * Clone the object.\r\n * @method clone\r\n * @param {object} obj The object to clone.\r\n * @param {object} [settings] Settings can specify any of the options allowed by the serialize or deserialize methods.\r\n * @return {object} The new clone.\r\n */\r\n clone:function(obj, settings) {\r\n return this.deserialize(this.serialize(obj, settings), settings);\r\n }\r\n };\r\n});\r\n\n", "/**\r\n * Durandal 2.2.0 Copyright (c) 2010-2016 Blue Spire Consulting, Inc. All Rights Reserved.\r\n * Available via the MIT license.\r\n * see: http://durandaljs.com or https://github.com/BlueSpire/Durandal for details.\r\n */\r\n/**\r\n * The entrance transition module.\r\n * @module entrance\r\n * @requires system\r\n * @requires composition\r\n * @requires jquery\r\n */\r\ndefine('transitions/entrance',['durandal/system', 'durandal/composition', 'jquery'], function(system, composition, $) {\r\n var fadeOutDuration = 100;\r\n var endValues = {\r\n left: '0px',\r\n opacity: 1\r\n };\r\n var clearValues = {\r\n left: '',\r\n top: '',\r\n right: '',\r\n bottom:'',\r\n position:'',\r\n opacity: ''\r\n };\r\n\r\n var isIE = navigator.userAgent.match(/Trident/) || navigator.userAgent.match(/MSIE/);\r\n\r\n var animation = false,\r\n domPrefixes = 'Webkit Moz O ms Khtml'.split(' '),\r\n elm = document.createElement('div');\r\n\r\n if(elm.style.animationName !== undefined) {\r\n animation = true;\r\n }\r\n\r\n if(!animation) {\r\n for(var i = 0; i < domPrefixes.length; i++) {\r\n if(elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {\r\n animation = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if(animation) {\r\n if(isIE){\r\n system.log('Using CSS3/jQuery mixed animations.');\r\n }else{\r\n system.log('Using CSS3 animations.');\r\n }\r\n } else {\r\n system.log('Using jQuery animations.');\r\n }\r\n\r\n function removeAnimationClasses(ele, fadeOnly){\r\n ele.classList.remove(fadeOnly ? 'entrance-in-fade' : 'entrance-in');\r\n ele.classList.remove('entrance-out');\r\n }\r\n\r\n /**\r\n * @class EntranceModule\r\n * @constructor\r\n */\r\n var entrance = function(context) {\r\n return system.defer(function(dfd) {\r\n function endTransition() {\r\n dfd.resolve();\r\n }\r\n\r\n function scrollIfNeeded() {\r\n if (!context.keepScrollPosition) {\r\n $(document).scrollTop(0);\r\n }\r\n }\r\n\r\n if (!context.child) {\r\n $(context.activeView).fadeOut(fadeOutDuration, endTransition);\r\n } else {\r\n var duration = context.duration || 500;\r\n var $child = $(context.child);\r\n var fadeOnly = !!context.fadeOnly;\r\n var startValues = {\r\n display: 'block',\r\n opacity: 0,\r\n position: 'absolute',\r\n left: fadeOnly || animation ? '0px' : '20px',\r\n right: 0,\r\n top: 0,\r\n bottom: 0\r\n };\r\n\r\n function startTransition() {\r\n scrollIfNeeded();\r\n context.triggerAttach();\r\n\r\n if (animation) {\r\n removeAnimationClasses(context.child, fadeOnly);\r\n context.child.classList.add(fadeOnly ? 'entrance-in-fade' : 'entrance-in');\r\n setTimeout(function () {\r\n removeAnimationClasses(context.child, fadeOnly);\r\n if(context.activeView){\r\n removeAnimationClasses(context.activeView, fadeOnly);\r\n }\r\n $child.css(clearValues);\r\n endTransition();\r\n }, duration);\r\n } else {\r\n $child.animate(endValues, {\r\n duration: duration,\r\n easing: 'swing',\r\n always: function() {\r\n $child.css(clearValues);\r\n endTransition();\r\n }\r\n });\r\n }\r\n }\r\n\r\n $child.css(startValues);\r\n\r\n if(context.activeView) {\r\n if (animation && !isIE) {\r\n removeAnimationClasses(context.activeView, fadeOnly);\r\n context.activeView.classList.add('entrance-out');\r\n setTimeout(startTransition, fadeOutDuration);\r\n } else {\r\n $(context.activeView).fadeOut({ duration: fadeOutDuration, always: startTransition });\r\n }\r\n } else {\r\n startTransition();\r\n }\r\n }\r\n }).promise();\r\n };\r\n\r\n return entrance;\r\n});\r\n\n", "/**\r\n * @license RequireJS text 2.0.7 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.\r\n * Available via the MIT or new BSD license.\r\n * see: http://github.com/requirejs/text for details\r\n */\r\n/*jslint regexp: true */\r\n/*global require, XMLHttpRequest, ActiveXObject,\r\n define, window, process, Packages,\r\n java, location, Components, FileUtils */\r\n\r\ndefine('text',['module'], function (module) {\r\n 'use strict';\r\n\r\n var text, fs, Cc, Ci,\r\n progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'],\r\n xmlRegExp = /^\\s*<\\?xml(\\s)+version=[\\'\\\"](\\d)*.(\\d)*[\\'\\\"](\\s)*\\?>/im,\r\n bodyRegExp = /<body[^>]*>\\s*([\\s\\S]+)\\s*<\\/body>/im,\r\n hasLocation = typeof location !== 'undefined' && location.href,\r\n defaultProtocol = hasLocation && location.protocol && location.protocol.replace(/\\:/, ''),\r\n defaultHostName = hasLocation && location.hostname,\r\n defaultPort = hasLocation && (location.port || undefined),\r\n buildMap = {},\r\n masterConfig = (module.config && module.config()) || {};\r\n\r\n text = {\r\n version: '2.0.7',\r\n\r\n strip: function (content) {\r\n //Strips <?xml ...?> declarations so that external SVG and XML\r\n //documents can be added to a document without worry. Also, if the string\r\n //is an HTML document, only the part inside the body tag is returned.\r\n if (content) {\r\n content = content.replace(xmlRegExp, \"\");\r\n var matches = content.match(bodyRegExp);\r\n if (matches) {\r\n content = matches[1];\r\n }\r\n } else {\r\n content = \"\";\r\n }\r\n return content;\r\n },\r\n\r\n jsEscape: function (content) {\r\n return content.replace(/(['\\\\])/g, '\\\\$1')\r\n .replace(/[\\f]/g, \"\\\\f\")\r\n .replace(/[\\b]/g, \"\\\\b\")\r\n .replace(/[\\n]/g, \"\\\\n\")\r\n .replace(/[\\t]/g, \"\\\\t\")\r\n .replace(/[\\r]/g, \"\\\\r\")\r\n .replace(/[\\u2028]/g, \"\\\\u2028\")\r\n .replace(/[\\u2029]/g, \"\\\\u2029\");\r\n },\r\n\r\n createXhr: masterConfig.createXhr || function () {\r\n //Would love to dump the ActiveX crap in here. Need IE 6 to die first.\r\n var xhr, i, progId;\r\n if (typeof XMLHttpRequest !== \"undefined\") {\r\n return new XMLHttpRequest();\r\n } else if (typeof ActiveXObject !== \"undefined\") {\r\n for (i = 0; i < 3; i += 1) {\r\n progId = progIds[i];\r\n try {\r\n xhr = new ActiveXObject(progId);\r\n } catch (e) {}\r\n\r\n if (xhr) {\r\n progIds = [progId]; // so faster next time\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return xhr;\r\n },\r\n\r\n /**\r\n * Parses a resource name into its component parts. Resource names\r\n * look like: module/name.ext!strip, where the !strip part is\r\n * optional.\r\n * @param {String} name the resource name\r\n * @returns {Object} with properties \"moduleName\", \"ext\" and \"strip\"\r\n * where strip is a boolean.\r\n */\r\n parseName: function (name) {\r\n var modName, ext, temp,\r\n strip = false,\r\n index = name.indexOf(\".\"),\r\n isRelative = name.indexOf('./') === 0 ||\r\n name.indexOf('../') === 0;\r\n\r\n if (index !== -1 && (!isRelative || index > 1)) {\r\n modName = name.substring(0, index);\r\n ext = name.substring(index + 1, name.length);\r\n } else {\r\n modName = name;\r\n }\r\n\r\n temp = ext || modName;\r\n index = temp.indexOf(\"!\");\r\n if (index !== -1) {\r\n //Pull off the strip arg.\r\n strip = temp.substring(index + 1) === \"strip\";\r\n temp = temp.substring(0, index);\r\n if (ext) {\r\n ext = temp;\r\n } else {\r\n modName = temp;\r\n }\r\n }\r\n\r\n return {\r\n moduleName: modName,\r\n ext: ext,\r\n strip: strip\r\n };\r\n },\r\n\r\n xdRegExp: /^((\\w+)\\:)?\\/\\/([^\\/\\\\]+)/,\r\n\r\n /**\r\n * Is an URL on another domain. Only works for browser use, returns\r\n * false in non-browser environments. Only used to know if an\r\n * optimized .js version of a text resource should be loaded\r\n * instead.\r\n * @param {String} url\r\n * @returns Boolean\r\n */\r\n useXhr: function (url, protocol, hostname, port) {\r\n var uProtocol, uHostName, uPort,\r\n match = text.xdRegExp.exec(url);\r\n if (!match) {\r\n return true;\r\n }\r\n uProtocol = match[2];\r\n uHostName = match[3];\r\n\r\n uHostName = uHostName.split(':');\r\n uPort = uHostName[1];\r\n uHostName = uHostName[0];\r\n\r\n return (!uProtocol || uProtocol === protocol) &&\r\n (!uHostName || uHostName.toLowerCase() === hostname.toLowerCase()) &&\r\n ((!uPort && !uHostName) || uPort === port);\r\n },\r\n\r\n finishLoad: function (name, strip, content, onLoad) {\r\n content = strip ? text.strip(content) : content;\r\n if (masterConfig.isBuild) {\r\n buildMap[name] = content;\r\n }\r\n onLoad(content);\r\n },\r\n\r\n load: function (name, req, onLoad, config) {\r\n //Name has format: some.module.filext!strip\r\n //The strip part is optional.\r\n //if strip is present, then that means only get the string contents\r\n //inside a body tag in an HTML string. For XML/SVG content it means\r\n //removing the <?xml ...?> declarations so the content can be inserted\r\n //into the current doc without problems.\r\n\r\n // Do not bother with the work if a build and text will\r\n // not be inlined.\r\n if (config.isBuild && !config.inlineText) {\r\n onLoad();\r\n return;\r\n }\r\n\r\n masterConfig.isBuild = config.isBuild;\r\n\r\n var parsed = text.parseName(name),\r\n nonStripName = parsed.moduleName +\r\n (parsed.ext ? '.' + parsed.ext : ''),\r\n url = req.toUrl(nonStripName),\r\n useXhr = (masterConfig.useXhr) ||\r\n text.useXhr;\r\n\r\n //Load the text. Use XHR if possible and in a browser.\r\n if (!hasLocation || useXhr(url, defaultProtocol, defaultHostName, defaultPort)) {\r\n text.get(url, function (content) {\r\n text.finishLoad(name, parsed.strip, content, onLoad);\r\n }, function (err) {\r\n if (onLoad.error) {\r\n onLoad.error(err);\r\n }\r\n });\r\n } else {\r\n //Need to fetch the resource across domains. Assume\r\n //the resource has been optimized into a JS module. Fetch\r\n //by the module name + extension, but do not include the\r\n //!strip part to avoid file system issues.\r\n req([nonStripName], function (content) {\r\n text.finishLoad(parsed.moduleName + '.' + parsed.ext,\r\n parsed.strip, content, onLoad);\r\n });\r\n }\r\n },\r\n\r\n write: function (pluginName, moduleName, write, config) {\r\n if (buildMap.hasOwnProperty(moduleName)) {\r\n var content = text.jsEscape(buildMap[moduleName]);\r\n write.asModule(pluginName + \"!\" + moduleName,\r\n \"define(function () { return '\" +\r\n content +\r\n \"';});\\n\");\r\n }\r\n },\r\n\r\n writeFile: function (pluginName, moduleName, req, write, config) {\r\n var parsed = text.parseName(moduleName),\r\n extPart = parsed.ext ? '.' + parsed.ext : '',\r\n nonStripName = parsed.moduleName + extPart,\r\n //Use a '.js' file name so that it indicates it is a\r\n //script that can be loaded across domains.\r\n fileName = req.toUrl(parsed.moduleName + extPart) + '.js';\r\n\r\n //Leverage own load() method to load plugin value, but only\r\n //write out values that do not have the strip argument,\r\n //to avoid any potential issues with ! in file names.\r\n text.load(nonStripName, req, function (value) {\r\n //Use own write() method to construct full module value.\r\n //But need to create shell that translates writeFile's\r\n //write() to the right interface.\r\n var textWrite = function (contents) {\r\n return write(fileName, contents);\r\n };\r\n textWrite.asModule = function (moduleName, contents) {\r\n return write.asModule(moduleName, fileName, contents);\r\n };\r\n\r\n text.write(pluginName, nonStripName, textWrite, config);\r\n }, config);\r\n }\r\n };\r\n\r\n if (masterConfig.env === 'node' || (!masterConfig.env &&\r\n typeof process !== \"undefined\" &&\r\n process.versions &&\r\n !!process.versions.node)) {\r\n //Using special require.nodeRequire, something added by r.js.\r\n fs = require.nodeRequire('fs');\r\n\r\n text.get = function (url, callback, errback) {\r\n try {\r\n var file = fs.readFileSync(url, 'utf8');\r\n //Remove BOM (Byte Mark Order) from utf8 files if it is there.\r\n if (file.indexOf('\\uFEFF') === 0) {\r\n file = file.substring(1);\r\n }\r\n callback(file);\r\n } catch (e) {\r\n errback(e);\r\n }\r\n };\r\n } else if (masterConfig.env === 'xhr' || (!masterConfig.env &&\r\n text.createXhr())) {\r\n text.get = function (url, callback, errback, headers) {\r\n var xhr = text.createXhr(), header;\r\n xhr.open('GET', url, true);\r\n\r\n //Allow plugins direct access to xhr headers\r\n if (headers) {\r\n for (header in headers) {\r\n if (headers.hasOwnProperty(header)) {\r\n xhr.setRequestHeader(header.toLowerCase(), headers[header]);\r\n }\r\n }\r\n }\r\n\r\n //Allow overrides specified in config\r\n if (masterConfig.onXhr) {\r\n masterConfig.onXhr(xhr, url);\r\n }\r\n\r\n xhr.onreadystatechange = function (evt) {\r\n var status, err;\r\n //Do not explicitly handle errors, those should be\r\n //visible via console output in the browser.\r\n if (xhr.readyState === 4) {\r\n status = xhr.status;\r\n if (status > 399 && status < 600) {\r\n //An http 4xx or 5xx error. Signal an error.\r\n err = new Error(url + ' HTTP status: ' + status);\r\n err.xhr = xhr;\r\n errback(err);\r\n } else {\r\n callback(xhr.responseText);\r\n }\r\n\r\n if (masterConfig.onXhrComplete) {\r\n masterConfig.onXhrComplete(xhr, url);\r\n }\r\n }\r\n };\r\n xhr.send(null);\r\n };\r\n } else if (masterConfig.env === 'rhino' || (!masterConfig.env &&\r\n typeof Packages !== 'undefined' && typeof java !== 'undefined')) {\r\n //Why Java, why is this so awkward?\r\n text.get = function (url, callback) {\r\n var stringBuffer, line,\r\n encoding = \"utf-8\",\r\n file = new java.io.File(url),\r\n lineSeparator = java.lang.System.getProperty(\"line.separator\"),\r\n input = new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(file), encoding)),\r\n content = '';\r\n try {\r\n stringBuffer = new java.lang.StringBuffer();\r\n line = input.readLine();\r\n\r\n // Byte Order Mark (BOM) - The Unicode Standard, version 3.0, page 324\r\n // http://www.unicode.org/faq/utf_bom.html\r\n\r\n // Note that when we use utf-8, the BOM should appear as \"EF BB BF\", but it doesn't due to this bug in the JDK:\r\n // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4508058\r\n if (line && line.length() && line.charAt(0) === 0xfeff) {\r\n // Eat the BOM, since we've already found the encoding on this file,\r\n // and we plan to concatenating this buffer with others; the BOM should\r\n // only appear at the top of a file.\r\n line = line.substring(1);\r\n }\r\n\r\n if (line !== null) {\r\n stringBuffer.append(line);\r\n }\r\n\r\n while ((line = input.readLine()) !== null) {\r\n stringBuffer.append(lineSeparator);\r\n stringBuffer.append(line);\r\n }\r\n //Make sure we return a JavaScript string and not a Java string.\r\n content = String(stringBuffer.toString()); //String\r\n } finally {\r\n input.close();\r\n }\r\n callback(content);\r\n };\r\n } else if (masterConfig.env === 'xpconnect' || (!masterConfig.env &&\r\n typeof Components !== 'undefined' && Components.classes &&\r\n Components.interfaces)) {\r\n //Avert your gaze!\r\n Cc = Components.classes,\r\n Ci = Components.interfaces;\r\n Components.utils['import']('resource://gre/modules/FileUtils.jsm');\r\n\r\n text.get = function (url, callback) {\r\n var inStream, convertStream,\r\n readData = {},\r\n fileObj = new FileUtils.File(url);\r\n\r\n //XPCOM, you so crazy\r\n try {\r\n inStream = Cc['@mozilla.org/network/file-input-stream;1']\r\n .createInstance(Ci.nsIFileInputStream);\r\n inStream.init(fileObj, 1, 0, false);\r\n\r\n convertStream = Cc['@mozilla.org/intl/converter-input-stream;1']\r\n .createInstance(Ci.nsIConverterInputStream);\r\n convertStream.init(inStream, \"utf-8\", inStream.available(),\r\n Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER);\r\n\r\n convertStream.readString(inStream.available(), readData);\r\n convertStream.close();\r\n inStream.close();\r\n callback(readData.value);\r\n } catch (e) {\r\n throw new Error((fileObj && fileObj.path || '') + ': ' + e);\r\n }\r\n };\r\n }\r\n return text;\r\n});\n", "\ndefine('text!areas/aaaprovisioning/views/index.html',[],function () { return '<div>\\r\\n</div>';});\n\n", "\ndefine('text!areas/account/views/login.html',[],function () { return '<div class=\"modal-dialog loginDialog\">\\r\\n <div class=\"modal-content\" style=\"overflow: hidden\">\\r\\n <form class=\"form-horizontal md-padding\" id=\"loginForm\" data-bind=\"bindingUpdate: \\'submit\\', submit: login\">\\r\\n\\r\\n <!--ko if: !isClient && shouldChangePassword && !shouldInputEmail -->\\r\\n <!-- ko template: { name: \\'changePassword\\', afterRender: function(ev) { onActivated; } } -->\\r\\n <!-- /ko -->\\r\\n\\t <!--/ko-->\\r\\n\\r\\n <!--ko if: !shouldChangePassword && shouldInputEmail-->\\r\\n <!-- ko template: { name: \\'changeEmail\\', afterRender: function(ev) { onActivated; } } -->\\r\\n <!-- /ko -->\\r\\n\\t <!--/ko-->\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t<!--ko if: !shouldChangePassword && shouldConfirmEmail && !shouldInputEmail-->\\r\\n\\t\\t\\t\\t\\t\\t<!-- ko template: { name: \\'confirmEmail\\', afterRender: function(ev) { onActivated; } } -->\\r\\n\\t\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t <!--/ko-->\\r\\n\\r\\n <!--ko if: shouldChangePassword && shouldInputEmail-->\\r\\n <!-- ko template: { name: \\'changePasswordAndMail\\', afterRender: function(ev) { onActivated; } } -->\\r\\n <!-- /ko -->\\r\\n <!--/ko-->\\r\\n <!--ko ifnot: shouldChangePassword || shouldInputEmail || shouldConfirmEmail-->\\r\\n <!-- ko template: { name: \\'login\\', afterRender: function(ev) { onActivated; } } -->\\r\\n <!-- /ko -->\\r\\n <!--/ko-->\\r\\n </form>\\r\\n\\r\\n <div class=\"overlay overlay-white\" data-bind=\"css: { active: isAuthenticating }\">\\r\\n <i class=\"fa fa-spinner fa-2x fa-spin\"></i>\\r\\n <div class=\"overlayText\">\\r\\n <p data-bind=\"i18n:\\'app:modules.account.info_overlayText\\'\">Benutzerdaten werden geprüft...</p>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n\\r\\n<!--LOGIN-Dialog-->\\r\\n<script type=\"text/html\" id=\"login\">\\r\\n\\t<div class=\"modal-body md-margin\" style=\"overflow: auto\">\\r\\n\\t\\t<!--ko if: showClientNumber -->\\r\\n\\t\\t<div class=\"form-group label-floating\">\\r\\n\\t\\t\\t<label class=\"control-label\" for=\"clientnumber\" data-bind=\"i18n:\\'app:modules.account.label_clientAccessNumber\\'\">Zugangsnummer</label>\\r\\n\\t\\t\\t<input class=\"form-control\" id=\"clientnumber\" type=\"text\" autofocus=\"autofocus\" data-bind=\"value: clientNumber\"/>\\r\\n\\t\\t</div>\\r\\n\\t\\t<!--/ko-->\\r\\n\\t\\t<div class=\"form-group label-floating\">\\r\\n\\t\\t\\t<label class=\"control-label\" for=\"username\" data-bind=\"i18n:\\'app:modules.account.label_userName\\'\">Benutzername</label>\\r\\n\\t\\t\\t<input class=\"form-control\" id=\"username\" type=\"text\" data-bind=\"value: username\" autocomplete=\"off\"/>\\r\\n\\t\\t</div>\\r\\n\\t\\t<div class=\"form-group label-floating\">\\r\\n\\t\\t\\t<label class=\"control-label\" for=\"password\" data-bind=\"i18n:\\'app:modules.account.label_password\\'\">Kennwort</label>\\r\\n\\t\\t\\t<div class=\"input-group\">\\r\\n\\t\\t\\t\\t<input class=\"form-control\" id=\"password\" type=\"password\" data-bind=\"value: password\" autocomplete=\"off\">\\r\\n\\t\\t\\t\\t<span class=\"input-group-btn\">\\r\\n <button class=\"btn btn-info\" type=\"button\"\\r\\n data-bind=\"click: function(data, event) { document.getElementById(\\'password\\').type == \\'text\\' ? document.getElementById(\\'password\\').type=\\'password\\' : document.getElementById(\\'password\\').type=\\'text\\'; }\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<i class=\"fa fa-unlock-alt\"></i>\\r\\n </button>\\r\\n </span>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t</div>\\r\\n\\t\\t<!--<div class=\"checkbox\" style=\"margin-left: -15px\">\\r\\n\\t\\t\\t<label>\\r\\n\\t\\t\\t\\t<input id=\"keepSignedIn\" type=\"checkbox\" data-bind=\"checked: keepSignedIn\"><span class=\"checkbox-material\"><span class=\"check\"></span></span><span data-bind=\"i18n:\\'app:modules.account.label_keepSignedIn\\'\"> angemeldet bleiben</span>\\r\\n\\t\\t\\t</label>\\r\\n\\t\\t</div>-->\\r\\n\\t</div>\\r\\n\\r\\n\\t<div class=\"modal-footer md-margin md-padding-top\">\\r\\n <div class=\"pull-left\" style=\"margin-top: 8px\">\\r\\n <a href=\"#\" data-bind=\"click: resetPassword, i18n:\\'app:modules.account.command_resetPassword\\'\">Kennwort vergessen</a>\\r\\n\\t\\t\\t\\t\\t<!--<a href=\"#\" data-bind=\"click: resetPassword, enable: username, i18n:\\'app:modules.account.command_resetPassword\\'\">Kennwort vergessen</a>-->\\r\\n </div>\\r\\n <div class=\"pull-right\">\\r\\n\\t\\t\\t\\t\\t<button class=\"btn btn-raised btn-info\" id=\"login-button\" type=\"submit\" data-bind=\"i18n:\\'app:modules.account.command_login\\'\">Anmelden</button>\\r\\n\\t\\t\\t\\t\\t<!-- ko if: isDialog -->\\r\\n\\t\\t\\t\\t\\t<button class=\"btn btn-raised\" data-bind=\"click: cancel, i18n:\\'app:modules.account.command_cancel\\'\">Abbrechen</button>\\r\\n\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n</script>\\r\\n\\r\\n<!-- Change Password -->\\r\\n<script type=\"text/html\" id=\"changePassword\">\\r\\n <div class=\"modal-body md-margin\" style=\"overflow: auto\">\\r\\n <div class=\"form-group label-floating\">\\r\\n <!-- ko template: { name: \\'userNameFragment\\', afterRender: function(ev) { onActivated; } } -->\\r\\n <!-- /ko -->\\r\\n </div>\\r\\n\\r\\n <!-- ko template: { name: \\'changePasswordFragment\\', afterRender: function(ev) { onActivated; } } -->\\r\\n <!-- /ko -->\\r\\n\\r\\n <div class=\"space-20\"></div>\\r\\n\\r\\n </div>\\r\\n\\r\\n <div class=\"modal-footer md-margin md-padding-top\">\\r\\n <div class=\"pull-right\">\\r\\n <button class=\"btn btn-raised btn-info\" data-bind=\"click: saveCredentials, enable: isValidPasswordRepetition(), i18n:\\'app:modules.account.command_continue\\'\">Weiter</button>\\r\\n </div>\\r\\n </div>\\r\\n</script>\\r\\n\\r\\n\\r\\n<!-- Change Password and EMail -->\\r\\n<script type=\"text/html\" id=\"changePasswordAndMail\">\\r\\n\\t<div class=\"modal-body md-margin\" style=\"overflow: auto\">\\r\\n\\t\\t<div class=\"form-group label-floating\">\\r\\n\\t\\t\\t<!-- ko template: { name: \\'userNameFragment\\', afterRender: function(ev) { onActivated; } } -->\\r\\n\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t</div>\\r\\n\\r\\n\\t\\t<!-- ko template: { name: \\'changePasswordFragment\\', afterRender: function(ev) { onActivated; } } -->\\r\\n\\t\\t<!-- /ko -->\\r\\n\\r\\n\\t\\t<div class=\"space-20\"></div>\\r\\n\\t\\t<!-- ko template: { name: \\'changeEmailFragment\\', afterRender: function(ev) { onActivated; } } -->\\r\\n\\t\\t<!-- /ko -->\\r\\n\\t\\t<div class=\"space-20\"></div>\\r\\n\\t</div>\\r\\n\\r\\n\\t<div class=\"modal-footer md-margin md-padding-top\">\\r\\n\\t\\t<a data-bind=\"click: function(data, event) { savePasswordOnly(); }, i18n:\\'app:modules.account.command_continueWithoutEmail\\'\" style=\"margin-right: 10px\" al href=\"#\">Weiter ohne E-Mail</a>\\r\\n\\t\\t<button class=\"btn btn-raised btn-info\" data-bind=\"click: saveCredentials, i18n : \\'app:modules.account.command_continue\\'\">Weiter</button>\\r\\n\\t</div>\\r\\n</script>\\r\\n\\r\\n<!-- Confirm EMail -->\\r\\n<script type=\"text/html\" id=\"confirmEmail\">\\r\\n\\r\\n\\t<div class=\"modal-body md-margin\" style=\"overflow: auto\">\\r\\n\\t\\t<div class=\"form-group label-floating\">\\r\\n\\t\\t\\t<!-- ko template: { name: \\'userNameFragment\\', afterRender: function(ev) { onActivated; } } -->\\r\\n\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t</div>\\r\\n\\t\\t<!-- ko template: { name: \\'confirmEmailFragment\\', afterRender: function(ev) { onActivated; } } -->\\r\\n\\t\\t<!-- /ko -->\\r\\n\\t</div>\\r\\n\\r\\n\\t<div class=\"modal-footer md-margin md-padding-top\">\\r\\n\\t\\t<button class=\"btn btn-raised btn-info\" data-bind=\"click: saveCredentials, i18n:\\'app:modules.account.command_confirmMailRequest\\'\">Weiter mit Bestätigungsmail</button>\\r\\n\\t</div>\\r\\n\\t<!--<div class=\"modal-footer md-margin md-padding-top\">\\r\\n\\t</div>-->\\r\\n</script>\\r\\n\\r\\n<!--HTML-Fragment confirmEmail-->\\r\\n<script type=\"text/html\" id=\"confirmEmailFragment\">\\r\\n\\t\\t<div class=\"form-group label-floating\">\\r\\n\\t\\t\\t\\t<p class=\"helptext\" data-bind=\"i18n:\\'app:modules.account.helptext_eMailConfirmation\\'\">\\r\\n\\t\\t\\t\\t\\t\\tIhre E-Mail-Adresse wurde noch nicht verifiziert. Bitte fordern Sie eine Bestätigungsmail an und rufen Sie darin den entsprechenden Link auf. Die Verifizierung ist aus Sicherheitsgründen notwendig, um u.a. die Existenz der E-Mail-Adresse zu prüfen.\\r\\n\\t\\t\\t\\t</p>\\r\\n\\t\\t</div>\\r\\n\\t\\t<div class=\"form-group label-floating\">\\r\\n\\t\\t\\t\\t<label class=\"control-label\" for=\"emailConfirmation\" data-bind=\"i18n : \\'app:modules.account.label_eMail\\'\">E-Mail Adresse</label>\\r\\n\\t\\t\\t\\t<input class=\"form-control\" id=\"emailConfirmation\" type=\"email\" data-bind=\"value: userEmail\" />\\r\\n\\r\\n\\t\\t</div>\\r\\n</script>\\r\\n\\r\\n<!-- Change EMail -->\\r\\n<script type=\"text/html\" id=\"changeEmail\">\\r\\n\\r\\n <div class=\"modal-body md-margin\" style=\"overflow: auto\">\\r\\n <div class=\"form-group label-floating\">\\r\\n <!-- ko template: { name: \\'userNameFragment\\', afterRender: function(ev) { onActivated; } } -->\\r\\n <!-- /ko -->\\r\\n </div>\\r\\n <!-- ko template: { name: \\'changeEmailFragment\\', afterRender: function(ev) { onActivated; } } -->\\r\\n <!-- /ko -->\\r\\n </div>\\r\\n\\r\\n <div class=\"modal-footer md-margin md-padding-top\">\\r\\n <a data-bind=\"click: function(data, event) { cancel(); }, i18n : \\'app:modules.account.command_continueWithoutEmail\\'\" style=\"margin-right: 10px\" al href=\"#\">Weiter ohne E-Mail</a>\\r\\n\\t\\t\\t\\t<button class=\"btn btn-raised btn-info\" data-bind=\"click: saveCredentials, i18n : \\'app:modules.account.command_continue\\'\">Weiter</button>\\r\\n </div>\\r\\n <!--<div class=\"modal-footer md-margin md-padding-top\">\\r\\n </div>-->\\r\\n</script>\\r\\n\\r\\n<!--HTML-Fragment changeEmail-->\\r\\n<script type=\"text/html\" id=\"userNameFragment\">\\r\\n <label class=\"control-label\" for=\"username1\" data-bind=\"i18n : \\'app:modules.account.label_userName\\'\">Benutzername</label>\\r\\n <input class=\"form-control\" id=\"username1\" type=\"text\" data-bind=\"value: username, enable: false\" readonly=\"readonly\" />\\r\\n</script>\\r\\n\\r\\n<!--HTML-Fragment changeEmail-->\\r\\n<script type=\"text/html\" id=\"changeEmailFragment\">\\r\\n\\t<div class=\"form-group label-floating\">\\r\\n\\t\\t<p class=\"helptext\" data-bind=\"i18n : \\'app:modules.account.helptext_eMail\\'\">Sie haben noch keine gültige E-Mail hinterlegt. Bitte geben Sie diese jetzt ein. Ohne die Hinterlegung einer gültigen E-Mail stehen Ihnen wichtige ADDISON OneClick Funktionen leider nicht zur Verfügung.\\r\\n\\t\\t\\tAußerdem wird diese u.a. benötigt, wenn Sie Ihr Kennwort vergessen und es zurücksetzen bzw. ein neues Kennwort abrufen möchten.</p>\\r\\n\\t</div>\\r\\n\\t<div class=\"form-group label-floating\">\\r\\n\\t\\t<label class=\"control-label\" for=\"email\" data-bind=\"i18n : \\'app:modules.account.label_eMail\\'\">E-Mail Adresse</label>\\r\\n\\t\\t<input class=\"form-control\" id=\"email\" type=\"email\" data-bind=\"value: userEmail\"/>\\r\\n\\r\\n\\t</div>\\r\\n</script>\\r\\n\\r\\n<!--HTML-Fragment changePassword-->\\r\\n<script type=\"text/html\" id=\"changePasswordFragment\">\\r\\n\\t<div class=\"form-group label-floating\">\\r\\n\\t\\t<p class=\"helptext\" data-bind=\"i18n : \\'app:modules.account.helptext_initialPassword\\'\">Sie verwenden ein Initialkennwort. Es ist jetzt erforderlich dies zu ändern. Das neue Kennwort muss den folgenden Regeln entsprechen:</p>\\r\\n\\t\\t<p class=\"helptext\" data-bind=\"text: passwordRulesMessage\"></p>\\r\\n\\t</div>\\r\\n\\t<div class=\"form-group label-floating\">\\r\\n\\t\\t<label class=\"control-label\" for=\"password\" data-bind=\"i18n:\\'app:modules.account.label_password\\'\">Kennwort</label>\\r\\n\\t\\t<div class=\"input-group\">\\r\\n\\t\\t\\t<input class=\"form-control\" id=\"userPassword\" type=\"password\" data-bind=\"value: userPassword, valueUpdate: \\'afterkeydown\\'\">\\r\\n\\t\\t\\t<span class=\"input-group-btn\">\\r\\n <button class=\"btn btn-info\" type=\"button\" tabindex=\"500\"\\r\\n data-bind=\"click: function(data, event) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdocument.getElementById(\\'userPassword\\').type == \\'text\\' ? document.getElementById(\\'userPassword\\').type=\\'password\\' : document.getElementById(\\'userPassword\\').type=\\'text\\';\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdocument.getElementById(\\'userPasswordRepetition\\').type = document.getElementById(\\'userPassword\\').type;\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t}\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<i class=\"fa fa-unlock-alt\"></i>\\r\\n </button>\\r\\n </span>\\r\\n\\t\\t</div>\\r\\n\\t</div>\\r\\n\\t<div class=\"form-group label-floating\">\\r\\n\\t\\t<label class=\"control-label\" for=\"password\" data-bind=\"i18n:\\'app:modules.account.label_passwordRepetition\\'\">Wiederholung</label>\\r\\n\\t\\t<div class=\"input-group\">\\r\\n\\t\\t\\t<input class=\"form-control\" id=\"userPasswordRepetition\" type=\"password\" data-bind=\"value: userPasswordRepetition, valueUpdate: \\'afterkeydown\\'\">\\r\\n\\t\\t\\t<span class=\"input-group-btn\">\\r\\n <button class=\"btn btn-info\" type=\"button\" tabindex=\"500\"\\r\\n data-bind=\"click: function(data, event) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdocument.getElementById(\\'userPassword\\').type == \\'text\\' ? document.getElementById(\\'userPassword\\').type=\\'password\\' : document.getElementById(\\'userPassword\\').type=\\'text\\';\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdocument.getElementById(\\'userPasswordRepetition\\').type = document.getElementById(\\'userPassword\\').type;\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t}\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<i class=\"fa fa-unlock-alt\"></i>\\r\\n </button>\\r\\n </span>\\r\\n\\t\\t</div>\\r\\n\\t</div>\\r\\n</script>\\r\\n';});\n\n", "\ndefine('text!areas/activityfeed/views/index.html',[],function () { return '<div class=\"activity-feed-container\">\\r\\n\\r\\n <div>\\r\\n\\r\\n <a href=\"#\" class=\"activity-feed-refresh-icon fas fa-sync-alt\" style=\"font-size:18px\" data-bind=\"click: function(event, args) { loadData(); }\"></a>\\r\\n <!-- ko ifnot: showCog-->\\r\\n <a data-bind=\"attr: { href: url}\" class=\"activity-feed-settings-icon fa fa-cog\"></a>\\r\\n <!--/ko-->\\r\\n\\r\\n\\r\\n <div class=\"md-tile-area-header\">Activity Feed</div>\\r\\n <!--<span class=\"activity-feed-settings-icon fa fa-cog\"></span>-->\\r\\n\\r\\n </div>\\r\\n\\r\\n <ul class=\"activity-feed-timeline\" id=\"activity-feed-timeline\" data-bind=\"foreach: activities, event: {scroll: lengthenTimeline}\">\\r\\n\\r\\n <li class=\"activity-feed-timeline-inverted\">\\r\\n\\r\\n <i class=\"activity-feed-timeline-badge\" data-bind=\"css: timelineIcon\"></i>\\r\\n\\r\\n <div class=\"activity-feed-timeline-panel\">\\r\\n\\r\\n <!-- ko if: $parent.hasActivities-->\\r\\n <span class=\"activity-feed-timeline-panel-publish-date\" data-bind=\"text:publishDate\"></span>\\r\\n\\r\\n <!--<div class=\"activity-feed-timeline-panel-icon\" data-bind=\"style:{\\'background-image\\': logoImage}\"></div>-->\\r\\n \\r\\n <div class=\"activity-feed-timeline-body\">\\r\\n\\r\\n <!-- ko if: type == \"twitter\" -->\\r\\n <div class=\"activity-feed-timeline-body-twitter\">\\r\\n <span class=\"activity-feed-timeline-body-twitter-author\" data-bind=\"text:author\"></span>\\r\\n <span class=\"activity-feed-timeline-body-twitter-screenName\" data-bind=\"text:screenName\"></span>\\r\\n </div>\\r\\n\\r\\n <a class=\"activity-feed-link activity-feed-list-item-text\" data-bind=\"attr:{href:url},html:text\" target=\"_blank\"></a>\\r\\n <!--/ko-->\\r\\n <!-- ko if: type == \"cch\" -->\\r\\n <div>\\r\\n <span class=\"activity-feed-timeline-body-cch-screenName\" data-bind=\"text:screenName + \\':\\'\"></span>\\r\\n <a class=\"activity-feed-link activity-feed-list-item-text\" data-bind=\"attr:{href:url},text:text\" target=\"_blank\"></a>\\r\\n </div>\\r\\n <!--/ko-->\\r\\n <!-- ko if: type == \"twitter\" -->\\r\\n <div data-bind=\"foreach: urls\">\\r\\n <a data-bind=\"attr:{href:$data} , text:$data\" target=\"_blank\"></a>\\r\\n </div>\\r\\n <!--/ko-->\\r\\n <!-- ko if: type == \"portal\" || type == \"datacollection\" -->\\r\\n <div>\\r\\n <span class=\"activity-feed-timeline-body-cch-screenName\" data-bind=\"text:screenName + \\':\\'\"></span>\\r\\n <span class=\"activity-feed-list-item-text\" data-bind=\"html: text\"></span>\\r\\n </div>\\r\\n <!--/ko-->\\r\\n\\r\\n </div>\\r\\n <!--/ko-->\\r\\n <!-- ko ifnot: $parent.hasActivities-->\\r\\n <div class=\"activity-feed-timeline-zero-state-image\" data-bind=\"style:{\\'background-image\\': logoImage}\"></div>\\r\\n\\r\\n <div class=\"activity-feed-timeline-zero-state-body\">\\r\\n <span class=\"activity-feed-timeline-zero-state-message1\">You do not currently have any posts to show!</span>\\r\\n <br /><br />\\r\\n <div class=\"activity-feed-timeline-zero-state-message2\">You can activate these posts using the settings cog \\' <i class=\"fa fa-cog\"></i> \\'</div>\\r\\n </div>\\r\\n <!--/ko-->\\r\\n\\r\\n </div>\\r\\n </li>\\r\\n </ul>\\r\\n</div>';});\n\n", "\ndefine('text!areas/activityfeedconfigurator/views/index.html',[],function () { return '<md-card class=\"md-card-container\" data-bind=\"css: {\\'md-card-container-disabled\\': settingsVisibility==false && emailVisibility==false, \\'md-card-container-double\\': settingsVisibility==true && emailVisibility==true}\">\\r\\n\\r\\n <div class=\"activity-feed-settings-container\">\\r\\n <div class=\"activity-feed-setting-top\">\\r\\n\\r\\n <div class=\"save-cancel-div\">\\r\\n <div style=\"width:100%; float:left\">\\r\\n <button class=\"btn navbar-btn\" data-bind=\"click:setUserOptions\">Save</button>\\r\\n <button class=\"btn navbar-btn\" data-bind=\"click:revertChanges\">Cancel</button>\\r\\n </div>\\r\\n </div>\\r\\n <div>\\r\\n <h2 class=\"blue\">System</h2>\\r\\n </div>\\r\\n <div class=\"activity-feed-settings-upper-menu\" data-bind=\"click: function(data, event) { changeSettingsVisibility(\\'activityFeed\\') }\">\\r\\n <a class=\"fa fa-bars blue open-activity-feed-menu\"></a>\\r\\n <p class=\"activity-feed-settings-upper-menu-text\">Activity Feed</p>\\r\\n <i style=\"justify-content: flex-end; margin-right: 5px;\" data-bind=\"css: {\\r\\n \\'fa fa-2x\\': true,\\r\\n \\'fa-angle-down \\': settingsVisibility,\\r\\n \\'fa-angle-right\\': !settingsVisibility}\">\\r\\n </i>\\r\\n </div>\\r\\n\\r\\n\\r\\n <!--ko if: settingsVisibility == true-->\\r\\n <div class=\"wrapper\">\\r\\n <div class=\"lower-menu-div\">\\r\\n\\r\\n <p class=\"activity-feed-settings-lower-menu-text\">Activity Feed</p>\\r\\n <h2 class=\"blue\">Show posts when:</h2>\\r\\n\\r\\n <div class=\"checkbox\" data-bind=\"foreach: portalOptions\">\\r\\n <label>\\r\\n <input type=\"checkbox\" data-bind=\"checked: Selected\">\\r\\n <span class=\"checkbox-material\">\\r\\n <span class=\"check\"></span>\\r\\n </span>\\r\\n <span class=\"checkbox-label\" data-bind=\"text: Label\"></span>\\r\\n </label>\\r\\n <br />\\r\\n <br />\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n\\r\\n <div class=\"lower-menu-div border-right border-left\">\\r\\n\\r\\n <p class=\"activity-feed-settings-lower-menu-text\">Twitter</p>\\r\\n\\r\\n <h2 class=\"blue\">Profiles:</h2>\\r\\n <div data-bind=\"foreach:profileList\" class=\"profiles\">\\r\\n <div class=\"chip\">\\r\\n <div class=\"chip-first-part\">\\r\\n <span data-bind=\"text:$data\"></span>\\r\\n </div>\\r\\n <div class=\"chip-second-part\">\\r\\n <span class=\"closebtn\" data-bind=\"click:$parent.removeProfiles\">×</span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"add-profiles\" data-bind=\"visible:toggleAddProfiles\">\\r\\n <input maxlength=\"35\" type=\"text\" class=\"add-profiles-input\" data-bind=\"textInput:profileInput, visible:toggleAddProfiles\" />\\r\\n <button type=\"button\" class=\"btn btn-link plus-btn\" data-bind=\"click:addProfiles(profileInput)\">\\r\\n <i class=\"fa fa-plus\" data-bind=\"visible:toggleAddProfiles && profileInput == \\'\\'\"></i>\\r\\n <i class=\"fa fa-check green-thick\" aria-hidden=\"true\" data-bind=\"visible:toggleAddProfiles && profileInput != \\'\\'\"></i>\\r\\n </button>\\r\\n </div>\\r\\n <button type=\"button\" class=\"btn btn-link plus-btn\" data-bind=\"click:toggleProfiles,visible:!toggleAddProfiles\"><i class=\"fa fa-plus\"></i>(Click to add) </button>\\r\\n\\r\\n\\r\\n <h2 class=\"blue\">Hashtags (#):</h2>\\r\\n <div data-bind=\"foreach:hashtagList\" class=\"hashtags\">\\r\\n <div class=\"chip\">\\r\\n <div class=\"chip-first-part\">\\r\\n <span data-bind=\"text:$data\"></span>\\r\\n </div>\\r\\n <div class=\"chip-second-part\">\\r\\n <span class=\"closebtn\" data-bind=\"click:$parent.removeHashtags\">×</span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"add-hashtags\" data-bind=\"visible:toggleAddHashtags\">\\r\\n <input maxlength=\"35\" type=\"text\" class=\"add-hashtags-input\" data-bind=\"textInput:hashtagInput, visible:toggleAddHashtags\" />\\r\\n <button type=\"button\" class=\"btn btn-link plus-btn\" data-bind=\"click:addHashtags(hashtagInput)\">\\r\\n <i class=\"fa fa-plus\" data-bind=\"visible:toggleAddHashtags && hashtagInput == \\'\\'\"></i>\\r\\n <i class=\"fa fa-check green-thick\" aria-hidden=\"true\" data-bind=\"visible:toggleAddHashtags && hashtagInput != \\'\\'\"></i>\\r\\n </button>\\r\\n </div>\\r\\n <button type=\"button\" class=\"btn btn-link plus-btn\" data-bind=\"click:toggleHashtags,visible:!toggleAddHashtags\"><i class=\"fa fa-plus\"></i>(Click to add) </button>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n </div>\\r\\n\\r\\n <div class=\"lower-menu-div\">\\r\\n\\r\\n <p class=\"activity-feed-settings-lower-menu-text\">Accountancy Daily</p>\\r\\n <h2 class=\"blue\">Show articles with the following tags:</h2>\\r\\n <div class=\"checkbox\" data-bind=\"foreach: cchDailyOptions\">\\r\\n <label>\\r\\n <input type=\"checkbox\" data-bind=\"checked: Selected\">\\r\\n <span class=\"checkbox-material\">\\r\\n <span class=\"check\"></span>\\r\\n </span>\\r\\n <span class=\"checkbox-label\" data-bind=\"text: Label\"></span>\\r\\n </label>\\r\\n <br />\\r\\n <br />\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <!--/ko-->\\r\\n <!--ko if: isAdmin == true-->\\r\\n <div class=\"activity-feed-settings-upper-menu\" data-bind=\"click: function(data, event) { changeSettingsVisibility(\\'billingEmail\\') }\">\\r\\n <a data-bind=\"css: {\\'fa blue open-activity-feed-menu\\': true, \\'fa-envelope-open\\': emailVisibility, \\'fa-envelope\\' : !emailVisibility}\"></a>\\r\\n <p class=\"activity-feed-settings-upper-menu-text\">Charging and billing notifications</p>\\r\\n <i style=\"justify-content: flex-end; margin-right: 5px;\" data-bind=\"css: {\\r\\n \\'fa fa-2x\\': true,\\r\\n \\'fa-angle-down \\': emailVisibility,\\r\\n \\'fa-angle-right\\': !emailVisibility}\">\\r\\n </i>\\r\\n </div>\\r\\n <!--/ko-->\\r\\n <!--ko if: emailVisibility == true-->\\r\\n <div class=\"wrapper\" style=\"padding-left:25px\">\\r\\n <div>\\r\\n <div data-bind=\"visible: !zeroState\">\\r\\n <p class=\"activity-feed-settings-lower-menu-text\" style=\"color: gray\">\\r\\n Add new email addresses for billing and charging notifications. Please note that the billing email addresses will be updated in 5 days.\\r\\n </p>\\r\\n <br />\\r\\n </div>\\r\\n <!--ko if: emailList.length == 0 && zeroState-->\\r\\n <div style=\"text-align: center; padding: 5%\">\\r\\n <label>\\r\\n <span class=\"email-empty-list\"></span>\\r\\n </label>\\r\\n <div>\\r\\n <p class=\"activity-feed-settings-lower-menu-text\" style=\"color: gray\">\\r\\n No recipient email addresses have been added for charging and billing notifications.\\r\\n </p>\\r\\n </div>\\r\\n <div style=\"width: 170px; margin: auto\">\\r\\n <button type=\"button\" style=\"float: left\" class=\"btn btn-link plus-btn\" data-bind=\"click:toggleEmails,visible:!toggleAddEmails\"><i class=\"fa fa-plus\"></i>(Click to add) </button>\\r\\n </div>\\r\\n </div>\\r\\n <!--/ko-->\\r\\n <div data-bind=\"visible: !zeroState\">\\r\\n <div>\\r\\n <div class=\"email-menu-div\" style=\"width:100px\">\\r\\n <p>Primary</p>\\r\\n </div>\\r\\n <div class=\"email-menu-div\">\\r\\n <p style=\"min-width: 235px\">Email address</p>\\r\\n </div>\\r\\n <div class=\"email-menu-div\">\\r\\n Send invoices\\r\\n </div>\\r\\n <div class=\"email-menu-div\">\\r\\n <p></p>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <!--ko if: emailList.length != 0-->\\r\\n <div data-bind=\"foreach:emailList\">\\r\\n <div class=\"email-row\">\\r\\n <div class=\"email-menu-div\" style=\"width: 100px; padding-left: 5px;\">\\r\\n <label class=\"email-radio-container\">\\r\\n <input type=\"radio\" name=\"primaryGroup\" data-bind=\"value: EmailAddress, checked: $root.primaryEmail, click: $parent.changePrimary($index())\" />\\r\\n <span class=\"email-radio-checkmark\"></span>\\r\\n </label>\\r\\n </div>\\r\\n <div class=\"email-menu-div\" style=\"vertical-align: middle;\">\\r\\n <p style=\"display: table-cell; vertical-align: middle;\">\\r\\n <label style=\"display: table-cell; vertical-align: middle;\">\\r\\n <span class=\"email-long-address\" data-bind=\"text: EmailAddress, attr: { title:(($root.screenWidth > 1700 && EmailAddress.length > 34) || ($root.screenWidth < 1700 && EmailAddress.length > 25))? EmailAddress : null }\"></span>\\r\\n </label>\\r\\n </p>\\r\\n </div>\\r\\n <div class=\"email-menu-div\">\\r\\n <div class=\"checkbox\" style=\"margin: 0;\">\\r\\n <label>\\r\\n <input type=\"checkbox\"\\r\\n data-bind=\"checked: SendInvoice, enable: EmailAddress != $root.primaryEmail\" />\\r\\n <span class=\"checkbox-material\" data-bind=\"style: {cursor: EmailAddress == $root.primaryEmail? \\'default\\':\\'pointer\\'}\">\\r\\n <span data-bind=\"css: {\\'check\\': EmailAddress != $root.primaryEmail, \\'email-checkbox-disabled\\': EmailAddress == $root.primaryEmail }\"></span>\\r\\n </span>\\r\\n </label>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"email-menu-div\">\\r\\n <button type=\"button\" class=\"btn btn-link\" style=\"margin: 0; padding: 0; color: #1e90ff; font-size: x-large\" data-bind=\"click: $parent.removeEmail\">\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n <br />\\r\\n </div>\\r\\n <button type=\"button\" class=\"btn btn-link plus-btn\" style=\"margin: 0; margin-left: 120px; padding: 0;\" data-bind=\"click:toggleEmails,visible:!toggleAddEmails\"><i class=\"fa fa-plus\"></i>(Click to add) </button>\\r\\n <!--/ko-->\\r\\n <div class=\"add-profiles\" data-bind=\"visible:toggleAddEmails\" style=\"margin-left: 118px\">\\r\\n <input type=\"email\" class=\"add-emails-input\" placeholder=\"Email address\" data-bind=\"textInput:emailInput, visible:toggleAddEmails, event: {keypress: enterAddEmail}\" />\\r\\n <button type=\"button\" class=\"btn btn-link plus-btn\" style=\"margin: 0; padding: 0;\" data-bind=\"visible:toggleAddEmails && emailInput != \\'\\', click:addEmails(\\'\\')\">\\r\\n <i class=\"fa fa-close red-cross\" aria-hidden=\"true\"></i>\\r\\n </button>\\r\\n <button type=\"button\" class=\"btn btn-link plus-btn\" style=\"margin: 0; margin-left: 3px; padding: 0;\" data-bind=\"visible:toggleAddEmails && emailInput != \\'\\' && validateEmail(emailInput), click:addEmails(emailInput)\">\\r\\n <i class=\"fa fa-check green-thick\" aria-hidden=\"true\"></i>\\r\\n </button>\\r\\n <button type=\"button\" class=\"btn btn-link plus-btn\" style=\"margin: 0; padding: 0;\" data-bind=\"visible:toggleAddEmails && emailInput == \\'\\', click:addEmails(\\'\\')\">\\r\\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\\r\\n </button>\\r\\n </div>\\r\\n\\r\\n <div id=\"emailmodal\" class=\"email-modal\">\\r\\n <div class=\"email-modal-content\">\\r\\n <header class=\"modal-header\">\\r\\n <h4 class=\"modal-title\">Billing email address</h4>\\r\\n </header>\\r\\n <div class=\"modal-body\">\\r\\n <h5 data-bind=\"text: dialogMessage\"></h5>\\r\\n </div>\\r\\n <footer class=\"modal-footer\" style=\"display: flex; position: relative\">\\r\\n <button class=\"email-modal-ok-button\" data-bind=\"click:closeDialog()\">OK</button>\\r\\n </footer>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <!--/ko-->\\r\\n </div>\\r\\n </div>\\r\\n</md-card>';});\n\n", "\ndefine('text!areas/autologout/views/autologout.html',[],function () { return '<div class=\"modal-dialog modal-sm\" style=\"margin-left:-150px!important;margin-top:-75px!important; width: 300px;\">\\r\\n <div class=\"modal-content\">\\r\\n <div class=\"modal-header\">\\r\\n <h4 class=\"modal-title\" style=\"text-align: center\">You will be logged out in <span data-bind=\"text: remainingSeconds\"></span> seconds due to inactivity</h4>\\r\\n </div>\\r\\n <div class=\"modal-body \">\\r\\n <button type=\"button\" class=\"btn btn-raised btn-info\" data-bind=\"click: abortLogout\" style=\"display: block !important;margin: auto;text-transform: none;\">\\r\\n Keep me logged in\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n';});\n\n", "\ndefine('text!areas/baseconeproduct/views/index.html',[],function () { return '<div class=\"basecone-product-container\">\\r\\n <div class=\"basecone-product-container-top\">\\r\\n <div class=\"basecone-product-container-top-layer\">\\r\\n <div class=\"basecone-product-title-container\">\\r\\n <div class=\"basecone-product-title\"></div>\\r\\n\\r\\n <div class=\"basecone-short-description-container basecone-no-show\">\\r\\n <div class=\"basecone-short-description-centered-container\">\\r\\n <div class=\"basecone-short-description-top-text\">Smart processing, scanning & matching, approving and booking of documents</div>\\r\\n <div class=\"basecone-short-description-separation-line\"></div>\\r\\n <div class=\"basecone-short-description-bottom-text\">Work collaboratively with your clients</div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n \\r\\n <div class=\"basecone-product-carousel-container\">\\r\\n <div id=\"carousel-example-generic\" class=\"carousel slide basecone-product-carousel\" data-ride=\"carousel\">\\r\\n\\r\\n <!-- Indicators -->\\r\\n <ol class=\"carousel-indicators basecone-product-carousel-indicators\">\\r\\n <li data-target=\"#carousel-example-generic\" data-slide-to=\"0\" class=\"active\"></li>\\r\\n <li data-target=\"#carousel-example-generic\" data-slide-to=\"1\"></li>\\r\\n <li data-target=\"#carousel-example-generic\" data-slide-to=\"2\"></li>\\r\\n </ol>\\r\\n\\r\\n <!-- Wrapper for slides -->\\r\\n <div class=\"carousel-inner\" role=\"listbox\">\\r\\n <div class=\"item active\">\\r\\n <iframe src=\"//fast.wistia.net/embed/iframe/zruyacedxy\" allowtransparency=\"true\" frameborder=\"0\" scrolling=\"no\" class=\"wistia_embed\" name=\"wistia_embed\" allowfullscreen mozallowfullscreen webkitallowfullscreen oallowfullscreen msallowfullscreen width=\"620\" height=\"349\"></iframe>\\r\\n </div>\\r\\n\\r\\n <div class=\"item\">\\r\\n <div class=\"item-image basecone-carousel-1\"></div>\\r\\n </div>\\r\\n\\r\\n <div class=\"item\">\\r\\n <div class=\"item-image basecone-carousel-2\"></div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"basecone-product-description-container basecone-no-show\">\\r\\n <div class=\"basecone-product-description-centered-container\">\\r\\n <div class=\"basecone-product-description-top-text\">Apps for authorising documents and claiming expenses on the go</div>\\r\\n <div class=\"basecone-short-description-separation-line\"></div>\\r\\n <div class=\"basecone-product-description-bottom-text\">Documents will be stored safely in Basecone for 10 years</div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div id=\"mobile-basecone-product-description-container\">\\r\\n <div class=\"basecone-short-description-top-text\">Smart processing, scanning & matching, approving and booking of documents</div>\\r\\n <div class=\"basecone-short-description-separation-line\"></div>\\r\\n <div class=\"basecone-short-description-bottom-text\">Work collaboratively with your clients</div>\\r\\n\\r\\n <div class=\"basecone-short-description-separation-line\"></div>\\r\\n\\r\\n <div class=\"basecone-product-description-top-text\">Apps for authorising documents and claiming expenses on the go</div>\\r\\n <div class=\"basecone-short-description-separation-line\"></div>\\r\\n <div class=\"basecone-product-description-bottom-text\">Documents will be stored safely in Basecone for 10 years</div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"basecone-product-container-bottom\">\\r\\n <div class=\"basecone-product-container-bottom-card\">\\r\\n <div class=\"basecone-product-tabs\">\\r\\n <input name=\"basecone-product-tabs\" id=\"testimonials\" type=\"radio\" checked>\\r\\n <h1>\\r\\n <label for=\"testimonials\" data-bind=\"click: function(data, event) { selectTab(0) }, css: { \\'basecone-product-tab-selected\\': tabSelected === 0 }\">Testimonials</label>\\r\\n </h1>\\r\\n\\r\\n <input name=\"basecone-product-tabs\" id=\"toolkit\" type=\"radio\">\\r\\n <h1>\\r\\n <label for=\"toolkit\" data-bind=\"click: function(data, event) { selectTab(1) }, css: { \\'basecone-product-tab-selected\\': tabSelected === 1 }\">Toolkit</label>\\r\\n </h1>\\r\\n\\r\\n <input name=\"basecone-product-tabs\" id=\"informationToSendToClients\" type=\"radio\">\\r\\n <h1>\\r\\n <label for=\"informationToSendToClients\" data-bind=\"click: function(data, event) { selectTab(2) }, css: { \\'basecone-product-tab-selected\\': tabSelected === 2 }\">Information to send to Client</label>\\r\\n </h1>\\r\\n </div>\\r\\n\\r\\n <!-- ko if: tabSelected === 0-->\\r\\n <div class=\"basecone-product-testimonials-container\" data-bind=\"foreach: testimonials\">\\r\\n <div class=\"basecone-product-testimonial-container\">\\r\\n <div class=\"basecone-product-testimonial-logo-name-container\">\\r\\n <!-- ko if: image !== null && image !== undefined && image !== \"\" -->\\r\\n <div class=\"basecone-product-testimonial-logo-container\">\\r\\n <img data-bind=\"attr: { src: image }, css: customCss\" />\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n </div>\\r\\n\\r\\n <div class=\"basecone-product-testimonial-text-container\">\\r\\n <div class=\"basecone-product-testimonial-text\" data-bind=\"html: text\"></div>\\r\\n <div class=\"basecone-product-testimonial-text\" data-bind=\"text: name\"></div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: tabSelected === 1-->\\r\\n <div class=\"basecone-product-toolkit-container\" data-bind=\"foreach: toolkits\">\\r\\n <div class=\"basecone-toolkit-container\">\\r\\n <div class=\"basecone-toolkit-image-container\">\\r\\n <span class=\"basecone-toolkit-image fa\" data-bind=\"css: { \\'fa-file-text-o\\': icon === \\'fa-file-text-o\\',\\r\\n \\'fa-external-link\\': icon === \\'fa-external-link\\'}\"></span>\\r\\n </div>\\r\\n <div class=\"basecone-toolkit-text-container\">\\r\\n <a class=\"basecone-toolkit-text\" target=\"_blank\" data-bind=\"text: text, attr: { href: url }\"></a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: tabSelected === 2-->\\r\\n <div class=\"basecone-product-toolkit-container\" data-bind=\"foreach: informationToSendToClient\">\\r\\n <div class=\"basecone-toolkit-container\">\\r\\n <div class=\"basecone-toolkit-image-container\">\\r\\n <span class=\"basecone-toolkit-image fa\" data-bind=\"css: { \\'fa-file-text-o\\': icon === \\'fa-file-text-o\\',\\r\\n \\'fa-external-link\\': icon === \\'fa-external-link\\'}\"></span>\\r\\n </div>\\r\\n <div class=\"basecone-toolkit-text-container\">\\r\\n <a class=\"basecone-toolkit-text\" target=\"_blank\" data-bind=\"text: text, attr: { href: url }\"></a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/cchgdprcompliance/views/index.html',[],function () { return '<div class=\"cch-gdpr-product-container\">\\r\\n <div class=\"cch-gdpr-product-container-top\">\\r\\n <div class=\"cch-gdpr-product-container-top-layer\">\\r\\n <div class=\"cch-gdpr-product-title-container\">\\r\\n <div class=\"cch-gdpr-product-title-container-2\">\\r\\n <div class=\"cch-gdpr-product-title-logo\"></div>\\r\\n <div class=\"cch-gdpr-product-title\">CCH GDPR Compliance</div>\\r\\n </div>\\r\\n\\r\\n <div class=\"cch-gdpr-short-description-container cch-gdpr-no-show\">\\r\\n <div class=\"cch-gdpr-short-description-centered-container\">\\r\\n <div class=\"cch-gdpr-short-description-top-text\">Simplify GDPR compliance. Use this cloud-based software system to manage the entire process.</div>\\r\\n <div class=\"cch-gdpr-short-description-separation-line\"></div>\\r\\n <div class=\"cch-gdpr-short-description-bottom-text\">Suitable for both you and your clients.</div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"cch-gdpr-product-carousel-container\">\\r\\n <div id=\"carousel-example-generic\" class=\"carousel slide cch-gdpr-product-carousel\" data-ride=\"carousel\">\\r\\n\\r\\n <!-- Indicators -->\\r\\n <ol class=\"carousel-indicators cch-gdpr-product-carousel-indicators\">\\r\\n <li data-target=\"#carousel-example-generic\" data-slide-to=\"0\" class=\"active\"></li>\\r\\n <li data-target=\"#carousel-example-generic\" data-slide-to=\"1\"></li>\\r\\n </ol>\\r\\n\\r\\n <!-- Wrapper for slides -->\\r\\n <div class=\"carousel-inner\" role=\"listbox\">\\r\\n <div class=\"item active\">\\r\\n <div class=\"item-image cch-gdpr-carousel-1\"></div>\\r\\n </div>\\r\\n\\r\\n <div class=\"item\">\\r\\n <div class=\"item-image cch-gdpr-carousel-2\"></div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"cch-gdpr-product-description-container cch-gdpr-no-show\">\\r\\n <div class=\"cch-gdpr-product-description-centered-container\">\\r\\n <div class=\"cch-gdpr-product-description-top-text\">Subscribe for your own use, sell subscriptions to clients, pass referrals to us or use the software to provide a GDPR service to your clients.</div>\\r\\n <div class=\"cch-gdpr-short-description-separation-line\"></div>\\r\\n <div class=\"cch-gdpr-product-description-bottom-text\">For more information, <a class=\"cch-gdpr-product-url\" href=\"https://www.wolterskluwer.co.uk/gdpr\" target=\"_blank\">click here</a>.</div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div id=\"mobile-cch-gdpr-product-description-container\">\\r\\n <div class=\"cch-gdpr-short-description-top-text\">Simplify GDPR compliance. Use this cloud-based software system to manage the entire process.</div>\\r\\n <div class=\"cch-gdpr-short-description-separation-line\"></div>\\r\\n <div class=\"cch-gdpr-short-description-bottom-text\">Suitable for both you and your clients.</div>\\r\\n\\r\\n <div class=\"cch-gdpr-short-description-separation-line\"></div>\\r\\n\\r\\n <div class=\"cch-gdpr-product-description-top-text\">Subscribe for your own use, sell subscriptions to clients, pass referrals to us or use the software to provide a GDPR service to your clients.</div>\\r\\n <div class=\"cch-gdpr-short-description-separation-line\"></div>\\r\\n <div class=\"cch-gdpr-product-description-bottom-text\">For more information, <a class=\"cch-gdpr-product-url\" href=\"https://www.wolterskluwer.co.uk/gdpr\" target=\"_blank\">click here</a></div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"cch-gdpr-product-container-bottom\">\\r\\n <div class=\"cch-gdpr-product-container-bottom-card\">\\r\\n <div class=\"cch-gdpr-product-tabs\">\\r\\n <input name=\"cch-gdpr-product-tabs\" id=\"testimonials\" type=\"radio\" checked>\\r\\n <h1>\\r\\n <label for=\"testimonials\" data-bind=\"click: function(data, event) { selectTab(0) }, css: { \\'cch-gdpr-product-tab-selected\\': tabSelected === 0 }\">Testimonials</label>\\r\\n </h1>\\r\\n\\r\\n <input name=\"cch-gdpr-product-tabs\" id=\"toolkit\" type=\"radio\">\\r\\n <h1>\\r\\n <label for=\"toolkit\" data-bind=\"click: function(data, event) { selectTab(1) }, css: { \\'cch-gdpr-product-tab-selected\\': tabSelected === 1 }\">Toolkit</label>\\r\\n </h1>\\r\\n\\r\\n <input name=\"cch-gdpr-product-tabs\" id=\"informationToSendToClients\" type=\"radio\">\\r\\n <h1>\\r\\n <label for=\"informationToSendToClients\" data-bind=\"click: function(data, event) { selectTab(2) }, css: { \\'cch-gdpr-product-tab-selected\\': tabSelected === 2 }\">Information to send to Client</label>\\r\\n </h1>\\r\\n </div>\\r\\n\\r\\n <!-- ko if: tabSelected === 0-->\\r\\n <div class=\"cch-gdpr-product-testimonials-container\" data-bind=\"foreach: testimonials\">\\r\\n <div class=\"cch-gdpr-product-testimonial-container\">\\r\\n <div class=\"cch-gdpr-product-testimonial-logo-name-container\">\\r\\n <!-- ko if: image !== null && image !== undefined && image !== \"\" -->\\r\\n <div class=\"cch-gdpr-product-testimonial-logo-container\">\\r\\n <img data-bind=\"attr: { src: image }, css: customCss\" />\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n </div>\\r\\n\\r\\n <div class=\"cch-gdpr-product-testimonial-text-container\">\\r\\n <div class=\"cch-gdpr-product-testimonial-text\" data-bind=\"html: text\"></div>\\r\\n <div class=\"cch-gdpr-product-testimonial-text\" data-bind=\"html: name\"></div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: tabSelected === 1-->\\r\\n <div class=\"cch-gdpr-product-toolkit-container\" data-bind=\"foreach: toolkits\">\\r\\n <div class=\"cch-gdpr-toolkit-container\">\\r\\n <div class=\"cch-gdpr-toolkit-image-container\">\\r\\n <span class=\"cch-gdpr-toolkit-image fa\" data-bind=\"css: { \\'fa-file-text-o\\': icon === \\'fa-file-text-o\\',\\r\\n \\'fa-external-link\\': icon === \\'fa-external-link\\'}\"></span>\\r\\n </div>\\r\\n <div class=\"cch-gdpr-toolkit-text-container\">\\r\\n <a class=\"cch-gdpr-toolkit-text\" target=\"_blank\" data-bind=\"text: text, attr: { href: url }\"></a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: tabSelected === 2-->\\r\\n <div class=\"cch-gdpr-product-toolkit-container\" data-bind=\"foreach: informationToSendToClient\">\\r\\n <div class=\"cch-gdpr-toolkit-container\">\\r\\n <div class=\"cch-gdpr-toolkit-image-container\">\\r\\n <span class=\"cch-gdpr-toolkit-image fa\" data-bind=\"css: { \\'fa-file-text-o\\': icon === \\'fa-file-text-o\\',\\r\\n \\'fa-external-link\\': icon === \\'fa-external-link\\'}\"></span>\\r\\n </div>\\r\\n <div class=\"cch-gdpr-toolkit-text-container\">\\r\\n <a class=\"cch-gdpr-toolkit-text\" target=\"_blank\" data-bind=\"text: text, attr: { href: url }\"></a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"cch-gdpr-client-notes-container\">\\r\\n <div class=\"cch-gdpr-client-notes\">NOTE: If you intend to sell the CCH GDPR Compliance software to your clients, use the first of these documents; if you simply want to refer them to Wolters Kluwer, use the second document.</div>\\r\\n <div class=\"cch-gdpr-client-notes\">These documents are in Microsoft Word format. You can edit selected parts of the front and back covers in order to add your firm’s name, logo and contact details if you wish.</div>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/clientteam/views/index.html',[],function () { return '<div class=\"client-team-container\">\\r\\n <div class=\"md-tile-area-header\">\\r\\n Client Area\\r\\n </div>\\r\\n\\r\\n <!--<ul class=\"client-team-members\" data-bind=\"foreach:members\">\\r\\n <li>\\r\\n <div class=\"client-team-logo\" data-bind=\"style: {\\'backgroundImage\\': \\'url(\\'+ logo +\\')\\'}\"></div>\\r\\n\\r\\n <div class=\"client-team-description\">\\r\\n <div>\\r\\n <b><span data-bind=\"text: name\" class=\"client-team-member-name\"> Bogdan Nica</span></b>\\r\\n </div>\\r\\n <div>\\r\\n <span data-bind=\"text: memberType\"> Assignment Partner</span>\\r\\n </div>\\r\\n </div>\\r\\n </li>\\r\\n </ul>-->\\r\\n\\r\\n <div class=\"client-team-members\" data-bind=\"foreach: members, visible: newVersion\">\\r\\n\\r\\n <img class=\"client-team-logo\" data-bind=\"attr: {src: logo}\">\\r\\n <div class=\"client-team-description\">\\r\\n <div>\\r\\n <b><span data-bind=\"text: name\"></span></b>\\r\\n </div>\\r\\n <!--<span> - </span>-->\\r\\n <div>\\r\\n <span data-bind=\"text: memberType, visible: hideRole != null ? !hideRole : roleSelected\"> </span> \\r\\n </div>\\r\\n </div>\\r\\n <br />\\r\\n </div>\\r\\n\\r\\n <!--<a href=\"#\" class=\"pull-left\" data-bind=\"click: function(data, event) { showLegalNotice(); }\" data-i18n=\"app:modules.account.command_imprint\">Imprint</a> \\r\\n <a href=\"#\" class=\"pull-right\" data-bind=\"click: function(data, event) { showPrivacyStatement(); }\" data-i18n=\"app:modules.account.command_dataProtection\">Data Protection</a>-->\\r\\n\\r\\n</div>';});\n\n", "\ndefine('text!areas/digitaltaxdownload/views/index.html',[],function () { return '<div class=\"digital-data-request-outer-container\">\\r\\n\\r\\n <!-------------------------------------- Web ---------------------------------------->\\r\\n\\r\\n <div class=\"digital-data-request-container\">\\r\\n <div class=\"digital-data-request-left-container\">\\r\\n <div class=\"digital-data-request-left-top-container\">\\r\\n\\r\\n <div class=\"digital-data-request-logo-container\">\\r\\n <div class=\"digital-data-request-logo-inner-container\">\\r\\n <div class=\"digital-data-request-logo\"></div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"digital-data-request-description-container\">\\r\\n <div class=\"digital-data-request-description-title\">\\r\\n Digital Data Request\\r\\n </div>\\r\\n <div class=\"digital-data-request-description-message\">\\r\\n Even as tax is made digital, there will still be a need to send information to your accountant to enable them to complete your tax return\\r\\n <br /><br />\\r\\n To assist you in providing this information we have developed the <span style=\"color: #ffffff;\">Digital Data Request app</span>\\r\\n </div>\\r\\n <div class=\"digital-data-request-download-buttons\">\\r\\n <a target=\"_blank\" href=\"https://www.cch.co.uk/softwaresupport/ocandroiddatacollectionredirect.html\">\\r\\n <div class=\"digital-data-request-download-buttons-google-play-container\">\\r\\n <div class=\"digital-data-request-download-buttons-google-play\"></div>\\r\\n </div>\\r\\n </a>\\r\\n <!--<a target=\"_blank\" href=\"https://play.google.com/store/apps/details?id=com.wolterskluwer.PracticeMobile\">\\r\\n <div class=\"digital-data-request-download-buttons-app-store-container\">\\r\\n <div class=\"digital-data-request-download-buttons-app-store\"></div>\\r\\n </div>\\r\\n </a>-->\\r\\n </div>\\r\\n <div class=\"digital-data-request-description-benefits\">\\r\\n Benefits\\r\\n </div>\\r\\n <div class=\"digital-data-request-description-list-container\">\\r\\n <div class=\"digital-data-request-description-list-item\">\\r\\n <div class=\"digital-data-request-description-list-item-icon-container\">\\r\\n <i class=\"fa fa-file-text digital-data-request-description-list-item-icon\"></i>\\r\\n </div>\\r\\n <div class=\"digital-data-request-description-list-text\">\\r\\n Digital Data Request is a mobile application which will present you with a list of income sources from your accountant for which you need to provide data, along with any supporting documentation required\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"digital-data-request-description-list-item\">\\r\\n <div class=\"digital-data-request-description-list-item-icon-container\">\\r\\n <i class=\"fa fa-cloud-upload digital-data-request-description-list-item-icon\"></i>\\r\\n </div>\\r\\n <div class=\"digital-data-request-description-list-text\">\\r\\n The Digital Data Request app provides you with the means to upload requested information quickly and efficiently from your mobile device which will be available to your accountant in real time\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"digital-data-request-left-bottom-container\">\\r\\n <div class=\"digital-data-request-separator-icon-container\">\\r\\n <div class=\"digital-data-request-separator-icon-outer-container\">\\r\\n <div class=\"digital-data-request-separator-icon-inner-container\">\\r\\n <div class=\"digital-data-request-separator-icon-aligned-container\">\\r\\n <div class=\"fa fa-check digital-data-request-separator-icon-image\"></div>\\r\\n <div class=\"fa fa-check digital-data-request-separator-icon-image\"></div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"digital-data-request-support-info-container\">\\r\\n <div class=\"digital-data-request-support-info-inner-container\">\\r\\n <div class=\"digital-data-request-support-info-text-container\">\\r\\n <div class=\"digital-data-request-support-info-title\">\\r\\n Digital Data Request is an integral part of CCH OneClick\\r\\n </div>\\r\\n <div class=\"digital-data-request-support-info-text\">\\r\\n To log into Digital Data Request you must have an activated OneClick account\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"digital-data-request-support-info-text-container\">\\r\\n <div class=\"digital-data-request-support-info-title\">\\r\\n New to Digital Data Request?\\r\\n </div>\\r\\n <div class=\"digital-data-request-support-info-text\">\\r\\n Please contact your system administrator for your login details\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"digital-data-request-support-info-text-container\">\\r\\n <div class=\"digital-data-request-support-info-title\">\\r\\n For more information on Digital Data Request\\r\\n </div>\\r\\n <div class=\"digital-data-request-support-info-text\">\\r\\n Please visit our\\r\\n <a href=\"https://www.cch.co.uk/softwaresupport/2015/home.asp\" target=\"_blank\" style=\"text-decoration:underline\">support site</a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"digital-data-request-right-container\">\\r\\n <div class=\"digital-data-request-right-top-container\"></div>\\r\\n <div class=\"digital-data-request-right-bottom-container\"></div>\\r\\n <div class=\"digital-data-request-app-screen-container\"></div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <!-------------------------------------- Mobile ---------------------------------------->\\r\\n\\r\\n <div class=\"digital-data-request-mobile-container\">\\r\\n\\r\\n <div class=\"digital-data-request-mobile-description-container\">\\r\\n <div class=\"digital-data-request-mobile-description-centered\">\\r\\n <div class=\"digital-data-request-mobile-logo-title-container\">\\r\\n <div class=\"digital-data-request-mobile-logo-container\">\\r\\n <div class=\"digital-data-request-mobile-logo\"></div>\\r\\n </div>\\r\\n <div class=\"digital-data-request-mobile-title-container\">\\r\\n Digital Data Request\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"digital-data-request-mobile-description-inner-container\">\\r\\n <div class=\"digital-data-request-mobile-description-message\">\\r\\n Even as tax is made digital, there will still be a need to send information to your accountant to enable them to complete your tax return\\r\\n <br /><br />\\r\\n To assist you in providing this information we have developed the <span style=\"color: #ffffff;\">Digital Data Request app</span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"digital-data-request-mobile-download-container\">\\r\\n <div class=\"digital-data-request-mobile-download-centered\">\\r\\n <div class=\"digital-data-request-mobile-download-title\">\\r\\n Download now to get started\\r\\n </div>\\r\\n <a target=\"_blank\" href=\"https://www.cch.co.uk/softwaresupport/ocandroiddatacollectionredirect.html\">\\r\\n <div class=\"digital-data-request-mobile-download-buttons-google-play-container\">\\r\\n <div class=\"digital-data-request-mobile-download-buttons-google-play\"></div>\\r\\n </div>\\r\\n </a>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"digital-data-request-mobile-benefits-container\">\\r\\n <div class=\"digital-data-request-mobile-benefits-centered\">\\r\\n <div class=\"digital-data-request-mobile-benefits-title\">\\r\\n Benefits\\r\\n </div>\\r\\n\\r\\n <div class=\"digital-data-request-mobile-description-list-container\">\\r\\n <div class=\"digital-data-request-mobile-description-list-item-icon-container\">\\r\\n <i class=\"fa fa-file-text digital-data-request-mobile-description-list-item-icon\"></i>\\r\\n </div>\\r\\n <div class=\"digital-data-request-mobile-description-list-text\">\\r\\n Digital Data Request is a mobile application which will present you with a list of income sources from your accountant for which you need to provide data, along with any supporting documentation required\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"digital-data-request-mobile-description-list-container\">\\r\\n <div class=\"digital-data-request-mobile-description-list-item-icon-container\">\\r\\n <i class=\"fa fa-cloud-upload digital-data-request-mobile-description-list-item-icon\"></i>\\r\\n </div>\\r\\n <div class=\"digital-data-request-mobile-description-list-text\">\\r\\n The Digital Data Request app provides you with the means to upload requested information quickly and efficiently from your mobile device which will be available to your accountant in real time\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"digital-data-request-mobile-information-container\">\\r\\n <div class=\"digital-data-request-mobile-information-centered\">\\r\\n <div class=\"digital-data-request-separator-icon-container\">\\r\\n <div class=\"digital-data-request-separator-icon-outer-container\">\\r\\n <div class=\"digital-data-request-separator-icon-inner-container\">\\r\\n <div class=\"digital-data-request-separator-icon-aligned-container\">\\r\\n <div class=\"fa fa-check digital-data-request-separator-icon-image\"></div>\\r\\n <div class=\"fa fa-check digital-data-request-separator-icon-image\"></div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"digital-data-request-mobile-support-info-text-container\">\\r\\n <div class=\"digital-data-request-mobile-support-info-title\">\\r\\n Digital Data Request is an integral part of CCH OneClick\\r\\n </div>\\r\\n <div class=\"digital-data-request-mobile-support-info-text\">\\r\\n To log into Digital Data Request you must have an activated OneClick account\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"digital-data-request-mobile-support-info-text-container\">\\r\\n <div class=\"digital-data-request-mobile-support-info-title\">\\r\\n New to Digital Data Request?\\r\\n </div>\\r\\n <div class=\"digital-data-request-mobile-support-info-text\">\\r\\n Please contact your system administrator for your login details\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n\\r\\n</div>';});\n\n", "\ndefine('text!areas/gomobiledownload/views/index.html',[],function () { return '<div class=\"practice-mobile-outer-container\">\\r\\n\\r\\n <!-------------------------------------- Web ---------------------------------------->\\r\\n\\r\\n <div class=\"practice-mobile-container\">\\r\\n <div class=\"practice-mobile-left-container\">\\r\\n <div class=\"practice-mobile-left-top-container\">\\r\\n <div class=\"practice-mobile-logo-container\">\\r\\n <div class=\"practice-mobile-logo-inner-container\">\\r\\n <div class=\"practice-mobile-logo\"></div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"practice-mobile-description-container\">\\r\\n <div class=\"practice-mobile-description-title\">\\r\\n Practice Mobile\\r\\n </div>\\r\\n <div class=\"practice-mobile-description-message\">\\r\\n Access your CCH Central data anywhere, anytime. All of your client details, messages, documents and tasks seamlessly integrated into one platform.\\r\\n </div>\\r\\n <div class=\"practice-mobile-download-buttons\">\\r\\n <a target=\"_blank\" href=\"https://www.cch.co.uk/softwaresupport/ocandroidredirect.html\">\\r\\n <div class=\"practice-mobile-download-buttons-google-play-container\">\\r\\n <div class=\"practice-mobile-download-buttons-google-play\"></div>\\r\\n </div>\\r\\n </a>\\r\\n <a target=\"_blank\" href=\"https://www.cch.co.uk/softwaresupport/ocappstoreredirect.html\">\\r\\n <div class=\"practice-mobile-download-buttons-app-store-container\">\\r\\n <div class=\"practice-mobile-download-buttons-app-store\"></div>\\r\\n </div>\\r\\n </a>\\r\\n </div>\\r\\n <div class=\"practice-mobile-description-benefits\">\\r\\n Benefits\\r\\n </div>\\r\\n <div class=\"practice-mobile-description-list-container\">\\r\\n <div class=\"practice-mobile-description-list-item\">\\r\\n <div class=\"practice-mobile-description-list-item-icon-container\">\\r\\n <i class=\"fa fa-comments-o practice-mobile-description-list-item-icon\"></i>\\r\\n </div>\\r\\n <div class=\"practice-mobile-description-list-text\">\\r\\n Keep up conversation with messages\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"practice-mobile-description-list-item\">\\r\\n <div class=\"practice-mobile-description-list-item-icon-container\">\\r\\n <i class=\"fa fa-check-circle practice-mobile-description-list-item-icon\"></i>\\r\\n </div>\\r\\n <div class=\"practice-mobile-description-list-text\">\\r\\n Use Collaboration Timeline for tasks & deadlines\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"practice-mobile-description-list-item\">\\r\\n <div class=\"practice-mobile-description-list-item-icon-container\">\\r\\n <i class=\"fa fa-users practice-mobile-description-list-item-icon\"></i>\\r\\n </div>\\r\\n <div class=\"practice-mobile-description-list-text\">\\r\\n View your core client data when you’re not in the office\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"practice-mobile-description-list-item\">\\r\\n <div class=\"practice-mobile-description-list-item-icon-container\">\\r\\n <i class=\"fa fa-file-text practice-mobile-description-list-item-icon\"></i>\\r\\n </div>\\r\\n <div class=\"practice-mobile-description-list-text\">\\r\\n Access your client’s documents whilst on the move\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"practice-mobile-left-bottom-container\">\\r\\n <div class=\"practice-mobile-separator-icon-container\">\\r\\n <div class=\"practice-mobile-separator-icon-inner-container\">\\r\\n <div class=\"practice-mobile-separator-icon-top\">\\r\\n <div class=\"practice-mobile-separator-icon-top-left\"></div>\\r\\n <div class=\"practice-mobile-separator-icon-top-right\"></div>\\r\\n </div>\\r\\n <div class=\"practice-mobile-separator-icon-bottom\">\\r\\n <div class=\"practice-mobile-separator-icon-bottom-left\"></div>\\r\\n <div class=\"practice-mobile-separator-icon-botom-left\"></div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"practice-mobile-support-info-container\">\\r\\n <div class=\"practice-mobile-support-info-inner-container\">\\r\\n <div class=\"practice-mobile-support-info-text-container\">\\r\\n <div class=\"practice-mobile-support-info-title\">\\r\\n Practice Mobile is an integral part of CCH OneClick.\\r\\n </div>\\r\\n <div class=\"practice-mobile-support-info-text\">\\r\\n To log into Practice Mobile you must have an activated OneClick account\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"practice-mobile-support-info-text-container\">\\r\\n <div class=\"practice-mobile-support-info-title\">\\r\\n New to Practice Mobile?\\r\\n </div>\\r\\n <div class=\"practice-mobile-support-info-text\">\\r\\n Please contact your system administrator for your login details\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"practice-mobile-support-info-text-container\">\\r\\n <div class=\"practice-mobile-support-info-title\">\\r\\n For more information\\r\\n </div>\\r\\n <div class=\"practice-mobile-support-info-text\">\\r\\n Please visit the tutorials section or visit our\\r\\n <a href=\"https://www.cch.co.uk/softwaresupport/2015/home.asp\" target=\"_blank\" style=\"text-decoration:underline\">support site</a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"practice-mobile-right-container\">\\r\\n <div class=\"practice-mobile-right-top-container\"></div>\\r\\n <div class=\"practice-mobile-right-bottom-container\"></div>\\r\\n <div class=\"practice-mobile-app-screen-container\"></div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <!-------------------------------------- Mobile ---------------------------------------->\\r\\n\\r\\n <div class=\"practice-mobile-app-container\">\\r\\n\\r\\n <div class=\"practice-mobile-app-description-container\">\\r\\n <div class=\"practice-mobile-app-description-centered\">\\r\\n <div class=\"practice-mobile-app-logo-title-container\">\\r\\n <div class=\"practice-mobile-app-logo-container\">\\r\\n <div class=\"practice-mobile-app-logo\"></div>\\r\\n </div>\\r\\n <div class=\"practice-mobile-app-title-container\">\\r\\n Practice Mobile\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"practice-mobile-app-description-inner-container\">\\r\\n <div class=\"practice-mobile-app-description-heading\">\\r\\n Access your CCH Central data anywhere, anytime.\\r\\n </div>\\r\\n <div class=\"practice-mobile-app-description-message\">\\r\\n All of your client details, messages, documents and tasks seamlessly integrated into one platform.\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"practice-mobile-app-download-container\">\\r\\n <div class=\"practice-mobile-app-download-centered\">\\r\\n <div class=\"practice-mobile-app-download-title\">\\r\\n Download now to get started\\r\\n </div>\\r\\n <a target=\"_blank\" href=\"https://www.cch.co.uk/softwaresupport/ocandroidredirect.html\">\\r\\n <div class=\"practice-mobile-app-download-buttons-google-play-container\">\\r\\n <div class=\"practice-mobile-app-download-buttons-google-play\"></div>\\r\\n </div>\\r\\n </a>\\r\\n\\r\\n <a target=\"_blank\" href=\"https://www.cch.co.uk/softwaresupport/ocappstoreredirect.html\">\\r\\n <div class=\"practice-mobile-app-download-buttons-app-store-container\">\\r\\n <div class=\"practice-mobile-app-download-buttons-app-store\"></div>\\r\\n </div>\\r\\n </a>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"practice-mobile-app-benefits-container\">\\r\\n <div class=\"practice-mobile-app-benefits-centered\">\\r\\n <div class=\"practice-mobile-app-benefits-title\">\\r\\n Benefits\\r\\n </div>\\r\\n\\r\\n <div class=\"practice-mobile-app-description-list-container\">\\r\\n <div class=\"practice-mobile-app-description-list-item-icon-container\">\\r\\n <i class=\"fa fa-comments-o practice-mobile-app-description-list-item-icon\"></i>\\r\\n </div>\\r\\n <div class=\"practice-mobile-app-description-list-text\">\\r\\n Keep up conversation with messages\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"practice-mobile-app-description-list-container\">\\r\\n <div class=\"practice-mobile-app-description-list-item-icon-container\">\\r\\n <i class=\"fa fa-check-circle practice-mobile-app-description-list-item-icon\"></i>\\r\\n </div>\\r\\n <div class=\"practice-mobile-app-description-list-text\">\\r\\n Use Collaboration Timeline for tasks & deadlines\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"practice-mobile-app-description-list-container\">\\r\\n <div class=\"practice-mobile-app-description-list-item-icon-container\">\\r\\n <i class=\"fa fa-users practice-mobile-app-description-list-item-icon\"></i>\\r\\n </div>\\r\\n <div class=\"practice-mobile-app-description-list-text\">\\r\\n View your core client data when you’re not in the office\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"practice-mobile-app-description-list-container\">\\r\\n <div class=\"practice-mobile-app-description-list-item-icon-container\">\\r\\n <i class=\"fa fa-file-text practice-mobile-app-description-list-item-icon\"></i>\\r\\n </div>\\r\\n <div class=\"practice-mobile-app-description-list-text\">\\r\\n Access your client’s documents whilst on the move\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"practice-mobile-app-information-container\">\\r\\n <div class=\"practice-mobile-app-information-centered\">\\r\\n <div class=\"practice-mobile-separator-icon-container\">\\r\\n <div class=\"practice-mobile-separator-icon-inner-container\">\\r\\n <div class=\"practice-mobile-separator-icon-top\">\\r\\n <div class=\"practice-mobile-separator-icon-top-left\"></div>\\r\\n <div class=\"practice-mobile-separator-icon-top-right\"></div>\\r\\n </div>\\r\\n <div class=\"practice-mobile-separator-icon-bottom\">\\r\\n <div class=\"practice-mobile-separator-icon-bottom-left\"></div>\\r\\n <div class=\"practice-mobile-separator-icon-botom-left\"></div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"practice-mobile-app-support-info-text-container\">\\r\\n <div class=\"practice-mobile-app-support-info-title\">\\r\\n Practice Mobile is an integral part of CCH OneClick\\r\\n </div>\\r\\n <div class=\"practice-mobile-app-support-info-text\">\\r\\n To log into Practice Mobile you must have an activated OneClick account\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"practice-mobile-app-support-info-text-container\">\\r\\n <div class=\"practice-mobile-app-support-info-title\">\\r\\n New to Practice Mobile?\\r\\n </div>\\r\\n <div class=\"practice-mobile-app-support-info-text\">\\r\\n Please contact your system administrator for your login details\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n\\r\\n</div>';});\n\n", "\ndefine('text!areas/home/views/breadcrumbbar.html',[],function () { return '<div class=\"layout-row breadcrumb-container\">\\r\\n\\t<md-toolbar class=\"breadcrumbs md-black-light-theme\">\\r\\n\\t\\t<ul class=\"breadcrumb\">\\r\\n\\t\\t\\t<!-- ko if: isAuthenticated -->\\r\\n\\t\\t\\t<!-- ko foreach: crumbs -->\\r\\n\\t\\t\\t<li>\\r\\n\\t\\t\\t\\t<a href=\"#\" data-toggle=\"dropdown\" data-bind=\"click: function(data, event) { $data.execute(); }\">\\r\\n\\t\\t\\t\\t\\t<!--ko text: name--><!--/ko-->\\r\\n\\t\\t\\t\\t\\t<!-- ko if: items.length > 0 -->\\r\\n\\t\\t\\t\\t\\t<span class=\"caret\"></span>\\r\\n\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t\\t</a>\\r\\n\\r\\n\\t\\t\\t\\t<!-- ko if: items.length > 0 -->\\r\\n\\t\\t\\t\\t<ul class=\"dropdown-menu\">\\r\\n\\t\\t\\t\\t\\t<!-- ko foreach: items -->\\r\\n\\t\\t\\t\\t\\t<li>\\r\\n\\t\\t\\t\\t\\t\\t<a href=\"#\" data-bind=\"click: function(data, event) { $data.execute(); }\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<!--ko text: name--><!--/ko-->\\r\\n\\t\\t\\t\\t\\t\\t</a>\\r\\n\\t\\t\\t\\t\\t</li>\\r\\n\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t\\t</ul>\\r\\n\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t</li>\\r\\n\\t\\t\\t<!-- /ko-->\\r\\n\\t\\t\\t<!-- /ko-->\\r\\n\\t\\t</ul>\\r\\n\\t</md-toolbar>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/container.html',[],function () { return '<md-module id=\"container\">\\r\\n\\t<div class=\"layout-row flex\">\\r\\n\\t\\t<iframe id=\"slhost\" class=\"pull-fullheight\"\\r\\n\\t\\t\\t\\t\\t\\tdata-bind=\"attr: { src: uri }, visible: showHost\"></iframe>\\r\\n\\t</div>\\r\\n\\r\\n\\t<div id=\"loader\" class=\"overlay overlay-white\" data-bind=\"css: { active: isloading }\">\\r\\n\\t\\t<i class=\"fa fa-spinner fa-2x fa-spin\"></i>\\r\\n\\t\\t<div class=\"overlayText\" data-i18n=\"app:modules.home.info_overlayText\">\\r\\n\\t\\t\\t<p>Modul wird geladen...</p>\\r\\n\\t\\t</div>\\r\\n\\t</div>\\r\\n\\r\\n</md-module>';});\n\n", "\ndefine('text!areas/home/views/dashboard.html',[],function () { return '<md-module id=\"dashboard\">\\r\\n\\r\\n</md-module>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/footer.html',[],function () { return '<nav class=\"navbar navbar-fixed-bottom\">\\r\\n <div class=\"navbar-inner navbar-content-center\">\\r\\n <span class=\"pull-left\"><a href=\"http://www.addison.de\" target=\"_blank\">© 2013 ADDISON Software & Service GmbH</a></span>\\r\\n </div>\\r\\n</nav>';});\n\n", "\ndefine('text!areas/home/views/hamburger-menu.html',[],function () { return '<div class=\"oc-hamburger-menu\" data-bind=\"css: {\\'menu-opened\\': sidebar.isExpanded }\">\\r\\n <div class=\"oc-hamburger-menu-list\">\\r\\n\\r\\n <!--ko foreach: sidebar.items-->\\r\\n <!--ko if: showOnMobile-->\\r\\n <div class=\"oc-hamburger-menu-list-item\" data-bind=\"click: function(data, event) { $root.sidebar.execute($data); $root.sidebar.isExpanded = !$root.sidebar.isExpanded; }, css: {\\'oc-hamburger-menu-list-item-selected\\': title === $root.sidebar.current }\">\\r\\n <div class=\"oc-hamburger-menu-list-item-content\">\\r\\n <!--ko if: (useImage == false && icon !== null) -->\\r\\n <span class=\"fa fa-icon\" data-bind=\"css: icon\">\\r\\n <!--ko if: data !== null && data.value !== 0 -->\\r\\n <span class=\"badge badge-info\" id=\"badge\" data-bind=\"text: data.value\"></span>\\r\\n <!--/ko-->\\r\\n <!--ko if: !embedApp-->\\r\\n <i class=\"fa fa-external-link\"></i>\\r\\n <!--/ko-->\\r\\n </span>\\r\\n <!--/ko-->\\r\\n <!--ko if: (useImage == true && imagePath !== null) -->\\r\\n <md-icon class=\"min-avatar\" data-bind=\"style: {\\'backgroundImage\\': \\'url(\\'+ imagePath +\\')\\'}\" style=\"background-image: url("imagePath");\">\\r\\n <!--ko if: data !== null && data.value !== 0 -->\\r\\n <span class=\"badge badge-info\" id=\"badge\" data-bind=\"text: data.value\"></span>\\r\\n <!--/ko-->\\r\\n <!--ko if: !embedApp-->\\r\\n <i class=\"fa fa-external-link\"></i>\\r\\n <!--/ko-->\\r\\n </md-icon>\\r\\n <!--/ko-->\\r\\n \\r\\n <span data-bind=\"text:title\"></span>\\r\\n </div>\\r\\n </div>\\r\\n <!--/ko-->\\r\\n <!--/ko-->\\r\\n\\r\\n\\r\\n </div>\\r\\n <!-- ko if: !ssoEnabled-->\\r\\n <div class=\"oc-hamburger-menu-logout-container\" data-bind=\"command: { command: logoutCommand }\">\\r\\n <i class=\"fa fa-power-off\" aria-hidden=\"true\"></i>\\r\\n \\r\\n <span>Log Out</span>\\r\\n </div>\\r\\n <!--/ko-->\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/headline.html',[],function () { return '<md-headline class=\"layout-row\" data-bind=\"style: { color: contrastForeground }\">\\r\\n <div class=\"md-headline-tools\">\\r\\n <div class=\"img-responsive mobile-responsive-image-container\">\\r\\n <img class=\"logo\" data-bind=\"attr: {src: logoUrl, height: logoHeight}\" alt=\"Logo\">\\r\\n </div>\\r\\n <!-- ko if: (showCopyrightLogo && !isAuthenticated) || isAuthenticated -->\\r\\n <!-- ko if: user.memberType === \\'stb_postmaster\\' || user.memberType === \\'stb_admin\\' -->\\r\\n <span class=\"organization hide-on-mobile\" data-bind=\"text: practiceName\"></span>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: (user.memberType === \\'client_postmaster\\' && user.memberAccessList.length == 1)-->\\r\\n <span class=\"organization hide-on-mobile\" data-bind=\"text: user.organizationName\"></span>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: (user.memberType === \\'client_postmaster\\' && user.memberAccessList.length != 1)-->\\r\\n <span class=\"organization hide-on-mobile\" data-bind=\"text: user.organizationName\" style=\"float:right; display:block; margin:0; padding:0 10px; border-right:currentColor solid 1px;\"></span>\\r\\n <!-- /ko -->\\r\\n <!-- /ko -->\\r\\n <!--ko if: ((user.memberAccessList == null || user.memberAccessList.length == 1) && user.memberType != \\'client_postmaster\\')-->\\r\\n <!--/ko-->\\r\\n <!--ko ifnot: (user.memberAccessList == null || user.memberAccessList.length == 1)-->\\r\\n <!--ko if: (!AAAuserCheck)-->\\r\\n <span class=\"username\" style=\"\">\\r\\n <ul class=\"nav navbar-nav\">\\r\\n <li>\\r\\n <a class=\"dropdown-toggle\" href=\"#\" data-toggle=\"dropdown\">\\r\\n <p class=\"dropdown-text\" style: { color: contrastForeground }\"></p> <span class=\"caret\" data-bind=\"style: { color: contrastForeground }\"></span><span style=\"font-weight:normal\"> Switch Account</span>\\r\\n </a>\\r\\n <ul class=\"dropdown-menu\" stylefa fa-1x=\"\" style=\"border-radius: 3px 3px 3px 3px;\" data-bind=\"foreach: user.memberAccessList\">\\r\\n <li>\\r\\n <a style=\"border-bottom-color: currentColor !important; border-bottom-width: 0px !important; border-bottom-style: none !important;\" href=\"#\"\\r\\n data-bind=\"click: function(data, event) { $root.switchUser($data) }\">\\r\\n <div class=\"row\" style=\"margin-left: -10px;\">\\r\\n <div class=\"col-lg-10\">\\r\\n <h6 data-bind=\"text: name\"></h6>\\r\\n </div>\\r\\n </div>\\r\\n </a>\\r\\n </li>\\r\\n </ul>\\r\\n </li>\\r\\n </ul>\\r\\n </span>\\r\\n <!--/ko-->\\r\\n <!--/ko-->\\r\\n <!-- ko if: (isAuthenticated && ssoEnabled)-->\\r\\n <div>\\r\\n <!--ko if: (AAAuserCheck && user.memberType === \\'client_postmaster\\' && user.memberAccessList.length > 1)-->\\r\\n <a class=\"logout\" href=\"#\">\\r\\n <div data-bind=\"click: function() { $root.switchUserAccount() }\">\\r\\n <span data-bind=\"style: { color: contrastForeground }\"> Switch Account</span>\\r\\n </div>\\r\\n </a>\\r\\n <!--/ko-->\\r\\n </div>\\r\\n <!--/ko-->\\r\\n <!-- ko if: (isAuthenticated && !ssoEnabled)-->\\r\\n <div>\\r\\n <!--ko if: (AAAuserCheck && user.memberType === \\'client_postmaster\\' && user.memberAccessList.length > 1)-->\\r\\n <a class=\"logout\" href=\"#\">\\r\\n <div data-bind=\"click: function() { $root.switchUserAccount() }\">\\r\\n <span data-bind=\"style: { color: contrastForeground }\"> Switch Account</span>\\r\\n </div>\\r\\n </a>\\r\\n <!--/ko-->\\r\\n </div>\\r\\n <!--/ko-->\\r\\n\\r\\n <span class=\"flex\"></span>\\r\\n <!--ko if: isAuthenticated -->\\r\\n <!--ko if: user.memberType === \\'stb_postmaster\\' || user.memberType === \\'stb_admin\\'|| user.memberType === \\'client_postmaster\\' -->\\r\\n <div class=\"layout-column appcues-widget-container-div hide-on-mobile\" data-bind=\"template: {afterRender: $root.extender.startAppcuesWidget()}\">\\r\\n <div id=\"ac-widget\" class=\"appcues-widget-logo\">\\r\\n <div class=\"appcues-widget-icon\">\\r\\n <span class=\"fa fa-graduation-cap\"></span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <!--/ko-->\\r\\n <!--/ko-->\\r\\n <md-list-item-text class=\"user-details layout-column\">\\r\\n <!--ko if: (user.memberAccessList == null || user.memberAccessList.length == 1)-->\\r\\n <span class=\"username\" data-bind=\"style: { color: contrastForeground }\">\\r\\n <!-- ko text: user.loginName --><!-- /ko -->\\r\\n <!-- ko ifnot: user.actor == null -->\\r\\n <!-- ko text: \\' (\\' + user.actor.name + \\')\\' --><!-- /ko -->\\r\\n <!-- /ko -->\\r\\n </span>\\r\\n <!--/ko-->\\r\\n <!--ko ifnot: (user.memberAccessList == null || user.memberAccessList.length == 1)-->\\r\\n <!--ko if: (isAuthenticated)-->\\r\\n <p class=\"text\" data-bind=\"text: user.loginName, style: { color: contrastForeground }\"></p>\\r\\n <!--/ko-->\\r\\n <!--/ko-->\\r\\n <!-- ko if: (isAuthenticated)-->\\r\\n <div>\\r\\n <a class=\"logout\" href=\"#\">\\r\\n <div data-bind=\"command: { command: logoutCommand }\">\\r\\n <span data-bind=\"style: { color: contrastForeground }\">Logout</span>\\r\\n </div>\\r\\n </a>\\r\\n </div>\\r\\n <!--/ko-->\\r\\n </md-list-item-text>\\r\\n <!-- ko if: isAuthenticated -->\\r\\n <div class=\"uif-avatar-preview-small\">\\r\\n <div _ngcontent-c18=\"\" class=\"uif-icon-preview layout-align-center-center\">\\r\\n <span _ngcontent-c18=\"\" class=\"simple-icon fa fa-user\" />\\r\\n </div>\\r\\n </div>\\r\\n <!--/ko-->\\r\\n <!-- ko if: (showCopyrightLogo && !isAuthenticated) -->\\r\\n <md-icon class=\"logo\"></md-icon>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: (showHelpCommand != null) -->\\r\\n <md-icon class=\"layout-column\">\\r\\n <a href=\"#\" target=\"_blank\" data-bind=\"command: { command: showHelpCommand }\">\\r\\n <i class=\"fa fa-1x fa-question\"></i>\\r\\n </a>\\r\\n </md-icon>\\r\\n <!-- /ko -->\\r\\n <!--ko if: isAuthenticated -->\\r\\n <md-icon class=\"layout-column hamburger-menu-icon\">\\r\\n <button class=\"hamburger-menu-button\" data-bind=\"click: function(data, event) { sidebar.isExpanded = !sidebar.isExpanded; } \">\\r\\n <i class=\"fa fa-1x fa-bars\"></i>\\r\\n </button>\\r\\n </md-icon>\\r\\n <!--/ko-->\\r\\n </div>\\r\\n</md-headline>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/help.html',[],function () { return '<section id=\"help\" class=\"pull-fullheight\">\\r\\n\\r\\n\\t<div class=\"panel-heading\">\\r\\n\\t\\tHilfe\\r\\n\\t</div>\\r\\n\\r\\n\\t<div class=\"panel-body\" data-i18n=\"app:modules.home.info_help\">\\r\\n\\t\\tDie Onlinehilfe zu ADDISON OneClick steht Ihnen in einem separaten Tab Ihres Browsers zur Verfügung\\t\\t\\r\\n\\t</div>\\r\\n</section>';});\n\n", "\ndefine('text!areas/home/views/home.html',[],function () { return '<md-module id=\"home\">\\r\\n</md-module>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/navigation.html',[],function () { return '<md-tile-area data-bind=\"foreach: groupedNavigationItems\">\\r\\n <!-- <h4 data-bind=\"text: key\"></h4>-->\\r\\n <!--ko if: $root.sidebar.current == key-->\\r\\n <md-tile-panel class=\"tiles-container\">\\r\\n\\r\\n <!-- ko foreach: list -->\\r\\n <!-- ko if: $data.isHidden == false -->\\r\\n\\t\\t<!-- ko template: { name: \\'areas/home/views/tiles/\\' + template, afterRender: function(ev) { liveTileHandler.onRendered(ev); } } -->\\r\\n <!-- /ko-->\\r\\n <!-- /ko-->\\r\\n <!-- /ko -->\\r\\n\\r\\n <!--ko if: $root.checkShowAddWidgetsCondition()-->\\r\\n <md-tile class=\"tile-small tile-variable hide-on-mobile\">\\r\\n <md-tile-content class=\"add-widgets-content\" data-bind=\"click:function(event,args){$root.showAddWidgets();}\">\\r\\n <md-tile-row class=\"flex\">\\r\\n <md-tile-block class=\"flex\">\\r\\n <div class=\"fa fa-icon tile-icon fa-fw fa-4x add-widgets-icon fa-plus\"></div>\\r\\n <div class=\"text add-widgets-text\">\\r\\n Add Tiles\\r\\n </div>\\r\\n </md-tile-block>\\r\\n </md-tile-row>\\r\\n </md-tile-content>\\r\\n </md-tile>\\r\\n <!--/ko-->\\r\\n\\r\\n </md-tile-panel>\\r\\n <!--/ko-->\\r\\n</md-tile-area>\\r\\n\\r\\n\\r\\n';});\n\n", "\ndefine('text!areas/home/views/newspanel.html',[],function () { return '<div class=\"layout-column newsPanel\">\\r\\n\\t<!--ko if: isAuthenticated-->\\r\\n\\t<!--ko if: officeNewsIsActivated -->\\r\\n\\t<md-card style=\"flex-shrink: 0\">\\r\\n\\t\\t<div class=\"layout-row flex\" data-bind=\"compose: { view: \\'areas/account/views/dashboard_news\\', model: \\'areas/account/viewmodels/news\\' }\"></div>\\r\\n\\t</md-card>\\r\\n\\t<div class=\"md-padding-top\"></div>\\r\\n\\t<!--/ko-->\\r\\n\\t<!--ko if: activitiesAreActivated-->\\r\\n\\t<md-card>\\r\\n\\t\\t<div class=\"layout-row flex\" data-bind=\"compose: \\'areas/activitymonitor/viewmodels/index\\'\"></div>\\r\\n\\t</md-card>\\r\\n\\t<!--/ko-->\\r\\n\\t<!--/ko-->\\r\\n\\t<!--ko ifnot: isAuthenticated-->\\r\\n\\t<md-card class=\"flex\">\\r\\n\\t\\t<div class=\"layout-row flex\" data-bind=\"compose: { view: \\'areas/account/views/dashboard_systemnews\\', model: \\'areas/account/viewmodels/systemnews\\' }\"></div>\\r\\n\\t</md-card>\\r\\n\\t<!--/ko-->\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/placeholder.html',[],function () { return '<section id=\"placeholder\">\\r\\n</section>';});\n\n", "\ndefine('text!areas/home/views/searchresult.html',[],function () { return '<div data-bind=\"foreach: searchResult\" class=\"clearfix\">\\r\\n <a href=\"#\" data-bind=\"command: { command: $parent.navigateCommand, parameter: $data }\" style=\"border-bottom: 0 !important\">\\r\\n <div class=\"row\" style=\"margin-left: -10px\">\\r\\n <div class=\"col-lg-2 thumbnails-small-image\">\\r\\n <!-- ko if: useImage == true && imagePathSearchbar != null -->\\r\\n <div style=\"background-size:contain; width:25px; height:25px;\"\\r\\n data-bind=\"style: { [\\'background-image\\']: imagePathSearchbar != null ? \\'url(\\' + imagePathSearchbar + \\')\\' : \\'\\' }\">\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: !useImage -->\\r\\n <div class=\"fa fa-fw\" data-bind=\"css: icon\"></div>\\r\\n <!-- /ko -->\\r\\n </div>\\r\\n\\r\\n\\t\\t\\t<div class=\"col-lg-10\">\\r\\n\\t\\t\\t\\t<h6 data-bind=\"text: name\"></h6>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t</div>\\r\\n\\t</a>\\r\\n</div>';});\n\n", "\ndefine('text!areas/home/views/shell.html',[],function () { return '<div class=\"layout-column flex\" id=\"shell\">\\r\\n <!--ko if: contentDialog != null || isAuthenticated-->\\r\\n <!--ko compose: {view: \\'home/views/headline\\'}--><!--/ko-->\\r\\n <md-shell-area class=\"layout-row\">\\r\\n <!--ko if: isAuthenticated-->\\r\\n <!--ko compose: {view: \\'home/views/sidebar\\'}--><!--/ko-->\\r\\n <!--ko compose: {view: \\'home/views/hamburger-menu\\'}--><!--/ko-->\\r\\n <!--/ko-->\\r\\n <div class=\"content layout-column flex\">\\r\\n <!--ko if: isAuthenticated-->\\r\\n <!--ko compose: {view: \\'home/views/breadcrumbbar\\'}--><!--/ko-->\\r\\n <!--/ko-->\\r\\n <!--ko if: viewType == \\'UserType\\' && isAuthenticated-->\\r\\n <!--<div class=\"md-tile-area-header\" data-bind=\"text: $root.sidebar.current\"></div>-->\\r\\n <!--/ko-->\\r\\n\\r\\n <md-content data-bind=\"css: { \\'dashboard\\': navigationTree.length != 0 }\">\\r\\n <!--ko foreach: leftPanels-->\\r\\n <!--ko if: type === 1 && visible-->\\r\\n <!--ko compose: {view:path, model:$parent, activate:false}--><!--/ko-->\\r\\n <!--/ko-->\\r\\n <!--ko if: type === 2 && visible-->\\r\\n <!--ko compose: path--><!--/ko-->\\r\\n <!--/ko-->\\r\\n <!--/ko-->\\r\\n\\r\\n\\r\\n <div class=\"content-detail-area\">\\r\\n\\r\\n <!--ko if: viewType == \\'UserType\\' && isAuthenticated-->\\r\\n <div class=\"md-tile-area-header\" data-bind=\"text: $root.sidebar.current\"></div>\\r\\n <!--/ko-->\\r\\n <!--ko if: navigationTree.length > 0 -->\\r\\n <div class=\"tiles-container layout-row flex dynamic-content-area\">\\r\\n <!--ko compose: {view: \\'home/views/navigation\\'} --><!--/ko-->\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!--ko if: contentDialog != null -->\\r\\n <div class=\"loginArea\">\\r\\n <!--ko compose: {view:contentDialog.path, model:contentDialog.model} --><!--/ko-->\\r\\n </div>\\r\\n <!--/ko-->\\r\\n <!--ko ifnot: isAuthenticated -->\\r\\n <div class=\"loginArea\" data-bind=\"visible: navigationTree.length == 0 && contentDialog == null\">\\r\\n <!--ko router: {} --><!--/ko-->\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!--ko if: isAuthenticated -->\\r\\n <div class=\"layout-row flex dynamic-content-area\" data-bind=\"visible: navigationTree.length == 0 && contentDialog == null\">\\r\\n <!--ko router: {} --><!--/ko-->\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n </div>\\r\\n\\r\\n\\r\\n <!--ko foreach: rightPanels-->\\r\\n <!--ko if: type === 1 && visible-->\\r\\n <!--ko compose: {view:path, model:$parent, activate:false}--><!--/ko-->\\r\\n <!--/ko-->\\r\\n <!--ko if: type === 2 && visible-->\\r\\n <!--ko compose: path--><!--/ko-->\\r\\n <!--/ko-->\\r\\n <!--/ko-->\\r\\n\\r\\n <div class=\"overlay overlay-white\" data-bind=\"css: { active: taskManager.hasRunningTasks }\">\\r\\n <i class=\"fa fa-spinner fa-2x fa-spin\"></i>\\r\\n <div class=\"overlayText\" data-bind=\"foreach: taskManager.tasks\">\\r\\n <span data-bind=\"text: title\"></span>\\r\\n <span data-bind=\"text: status\"></span>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </md-content>\\r\\n </div>\\r\\n\\r\\n </md-shell-area>\\r\\n <!--/ko-->\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/shortcuts.html',[],function () { return '<!-- ko if: shortCuts.length > 0 -->\\r\\n<div class=\"layout-column fix-250\">\\r\\n\\t<ul data-bind=\"foreach: shortCuts\" class=\"childbar\">\\r\\n\\t\\t<li data-bind=\"css: { \\'active\\': $parent.currentNode.name == $data.name }\">\\r\\n\\t\\t\\t<span>\\r\\n\\t\\t\\t\\t<a href=\"#\" data-bind=\"command: { command: $parent.navigateCommand, parameter: $data }\">\\r\\n\\t\\t\\t\\t\\t<span class=\"fa fa-icon fa-th-large\"></span>\\r\\n\\t\\t\\t\\t\\t<!--ko text: name--><!--/ko-->\\r\\n\\t\\t\\t\\t</a>\\r\\n\\t\\t\\t</span>\\r\\n\\t\\t</li>\\r\\n\\t</ul>\\r\\n</div>\\r\\n<!--/ko-->\\r\\n';});\n\n", "\ndefine('text!areas/home/views/sidebar.html',[],function () { return '<div class=\"sidebar-container layout-column\">\\r\\n <div class=\"sidebar layout-column flex\" data-bind=\"css: {\\'sidebar-expanded\\': sidebar.isExpanded}\">\\r\\n <div class=\"layout-row flex\">\\r\\n <div class=\"layout-column flex\">\\r\\n <div tabindex=\"0\" class=\"sidebar-toggle layout-align-end-center layout-row\" role=\"button\" data-bind=\"click: function(data, event) { sidebar.isExpanded = !sidebar.isExpanded }\"> \\r\\n <span class=\"fa\" data-bind=\"css: {\\'fa-angle-left sidebar-toggle-expanded\\': sidebar.isExpanded, \\'fa-angle-right sidebar-toggle-collapsed\\': !sidebar.isExpanded}\"></span>\\r\\n </div>\\r\\n <!--ko foreach: sidebar.items-->\\r\\n <!--ko ifnot: hideFromSidenav-->\\r\\n <!--ko if: prependSeparator-->\\r\\n <div class=\"sidebar-item-separator\"></div>\\r\\n <!--/ko-->\\r\\n\\r\\n <div tabindex=\"0\" class=\"sidebar-item layout-align-start-center layout-row\" role=\"button\"\\r\\n data-bind=\"click: function(data, event) { $root.sidebar.execute($data); }, css: {\\'sidebar-item-selected\\': title === $root.sidebar.current, \\'sidebar-item-not-selected\\': title !== $root.sidebar.current}\">\\r\\n <div class=\"sidebar-icon-container\">\\r\\n <!--ko if: (useImage == false && icon !== null) -->\\r\\n <span class=\"fa fa-icon\" data-bind=\"css: icon\">\\r\\n <!--ko if: data !== null && data.value !== 0 -->\\r\\n <span class=\"badge badge-info\" id=\"badge\" data-bind=\"text: data.value\"></span> \\r\\n <!--/ko-->\\r\\n </span>\\r\\n <!--/ko-->\\r\\n <!--ko if: (useImage == true && imagePath !== null) -->\\r\\n <md-icon class=\"min-avatar\" data-bind=\"style: {\\'backgroundImage\\': \\'url(\\'+ imagePath +\\')\\'}\" style=\"background-image: url("imagePath");\">\\r\\n <!--ko if: data !== null && data.value !== 0 -->\\r\\n <span class=\"badge badge-info\" id=\"badge\" data-bind=\"text: data.value\"></span>\\r\\n <!--/ko--> \\r\\n </md-icon>\\r\\n <!--/ko-->\\r\\n </div>\\r\\n <span class=\"sidebar-item-text\" data-bind=\"text: title, css: {\\'sidebar-item-text-expanded\\': $root.sidebar.isExpanded, \\'sidebar-item-text-collapsed\\': !$root.sidebar.isExpanded}\"></span>\\r\\n </div>\\r\\n\\r\\n <!--ko if: appendSeparator-->\\r\\n <div class=\"sidebar-item-separator\"></div>\\r\\n <!--/ko-->\\r\\n <!--/ko-->\\r\\n <!--/ko-->\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/2x1.template.html',[],function () { return '<md-tile class=\"tile-medium\" data-bind=\"with: liveTileHandler\">\\r\\n\\t<md-tile-content data-bind=\"style: { \\'background-color\\': (color != null ? color : \\'\\') }\">\\r\\n\\t\\t<!-- ko if: data != null && data.parts != null -->\\r\\n\\t\\t<md-tile-row class=\"flex\">\\r\\n\\t\\t\\t<!-- ko if: data.parts.length == 1 -->\\r\\n\\t\\t\\t<md-tile-block class=\"flex\" data-bind=\"template: { name: \\'areas/home/views/tiles/part-2x1-\\' + data.parts[0].type, data: data.parts[0] }, css: { \\'gradient\\': data.parts[0].gradient }\"></md-tile-block>\\r\\n\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t<!-- ko if: data.parts.length >= 2 -->\\r\\n\\t\\t\\t<md-tile-block class=\"\" data-bind=\"template: { name: \\'areas/home/views/tiles/part-1x1-\\' + data.parts[0].type, data: data.parts[0] }, css: { \\'gradient\\': data.parts[0].gradient }\"></md-tile-block>\\r\\n\\t\\t\\t<md-tile-block class=\"flex\" data-bind=\"template: { name: \\'areas/home/views/tiles/part-1x1-\\' + data.parts[1].type, data: data.parts[1] }, css: { \\'gradient\\': data.parts[1].gradient }\"></md-tile-block>\\r\\n\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t</md-tile-row>\\r\\n\\t\\t<!-- /ko -->\\r\\n\\t</md-tile-content>\\r\\n</md-tile>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/3x1.template.html',[],function () { return '<md-tile class=\"tile-wide\" data-bind=\"with: liveTileHandler\">\\r\\n\\t<md-tile-content data-bind=\"style: { \\'background-color\\': (color != null ? color : \\'\\') }\">\\r\\n\\t\\t<!-- ko if: data != null && data.parts != null -->\\r\\n\\t\\t<md-tile-row class=\"flex\">\\r\\n\\t\\t\\t<!-- ko if: data.parts.length == 1 -->\\r\\n\\t\\t\\t<md-tile-block class=\"flex\" data-bind=\"template: { name: \\'areas/home/views/tiles/part-3x1-\\' + data.parts[0].type, data: data.parts[0] }, css: { \\'gradient\\': data.parts[0].gradient }\"></md-tile-block>\\r\\n\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t<!-- ko if: data.parts.length == 2 -->\\r\\n\\t\\t\\t<md-tile-block class=\"\" data-bind=\"template: { name: \\'areas/home/views/tiles/part-1x1-\\' + data.parts[0].type, data: data.parts[0] }, css: { \\'gradient\\': data.parts[0].gradient }\"></md-tile-block>\\r\\n\\t\\t\\t<md-tile-block class=\"flex\" data-bind=\"template: { name: \\'areas/home/views/tiles/part-2x1-\\' + data.parts[1].type, data: data.parts[1] }, css: { \\'gradient\\': data.parts[1].gradient }\"></md-tile-block>\\r\\n\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t<!-- ko if: data.parts.length >= 3 -->\\r\\n\\t\\t\\t<md-tile-block class=\"\" data-bind=\"template: { name: \\'areas/home/views/tiles/part-1x1-\\' + data.parts[0].type, data: data.parts[0] }, css: { \\'gradient\\': data.parts[0].gradient }\"></md-tile-block>\\r\\n\\t\\t\\t<md-tile-block class=\"\" data-bind=\"template: { name: \\'areas/home/views/tiles/part-1x1-\\' + data.parts[1].type, data: data.parts[1] }, css: { \\'gradient\\': data.parts[1].gradient }\"></md-tile-block>\\r\\n\\t\\t\\t<md-tile-block class=\"flex\" data-bind=\"template: { name: \\'areas/home/views/tiles/part-1x1-\\' + data.parts[2].type, data: data.parts[2] }, css: { \\'gradient\\': data.parts[2].gradient }\"></md-tile-block>\\r\\n\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t</md-tile-row>\\r\\n\\t\\t<!-- /ko -->\\r\\n\\t</md-tile-content>\\r\\n</md-tile>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/badge.template.html',[],function () { return '<md-tile class=\"tile-small\">\\r\\n\\t<md-tile-content>\\r\\n\\t\\t<md-tile-row class=\"flex\">\\r\\n\\t\\t\\t<md-tile-block class=\"\">\\r\\n\\t\\t\\t\\t<a href=\"#\" data-bind=\"command: { command: $root.navigateCommand, parameter: $data }\">\\r\\n\\t\\t\\t\\t\\t<div class=\"text\">\\r\\n\\t\\t\\t\\t\\t\\t<!--ko text: name--><!--/ko-->\\r\\n\\t\\t\\t\\t\\t\\t<!--ko if: !application.embedApp-->\\r\\n\\t\\t\\t\\t\\t\\t<i class=\"fa fa-external-link\"></i>\\r\\n\\t\\t\\t\\t\\t\\t<!--/ko-->\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t<!-- ko if: icon != null -->\\r\\n\\t\\t\\t\\t\\t<div class=\"fa fa-icon tile-icon fa-fw fa-4x\" data-bind=\"css: icon\">\\r\\n\\t\\t\\t\\t\\t\\t<!-- ko with: liveTileHandler -->\\r\\n\\t\\t\\t\\t\\t\\t<!-- ko if: data != null -->\\r\\n\\t\\t\\t\\t\\t\\t<span class=\"badge badge-info\" id=\"badge\" data-bind=\"text: data.value\"></span>\\r\\n\\t\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t\\t</a>\\r\\n\\t\\t\\t</md-tile-block>\\r\\n\\t\\t</md-tile-row>\\r\\n\\t</md-tile-content>\\r\\n</md-tile>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/chart-small.template.html',[],function () { return '<md-tile class=\"tile-chart-small\" data-bind=\"with: liveTileHandler\">\\r\\n\\t<md-tile-content>\\r\\n\\t\\t<md-tile-row>\\r\\n\\t\\t\\t<md-tile-block class=\"chart\">\\r\\n\\t\\t\\t\\t<!--ko if: (data != null && data.parts != null && data.parts.length == 1) -->\\r\\n\\t\\t\\t\\t<div class=\"text\" data-bind=\"text: data.parts[0].data.title\"></div>\\r\\n\\t\\t\\t\\t<div class=\"smalltext\" data-bind=\"text: data.parts[0].data.subtitle\"></div>\\r\\n\\t\\t\\t\\t<div style=\"width: 275px; height: 225px; padding-top: 10px\" data-bind=\"chart: { type: data.parts[0].data.charttype, data: data.parts[0].data.chartdata, options: data.parts[0].data.chartoptions, plugins: data.parts[0].data.plugins }\"></div>\\r\\n\\t\\t\\t\\t<!--/ko-->\\r\\n\\t\\t\\t\\t<!--ko ifnot: (data != null && data.parts != null && data.parts.length == 1) -->\\r\\n\\t\\t\\t\\t<div class=\"text\" data-bind=\"text: $parent.name\"></div>\\r\\n\\t\\t\\t\\t<div class=\"smalltext\" data-i18n=\"app:modules.home.info_noData\">derzeit liegen keine Daten vor...</div>\\r\\n\\t\\t\\t\\t<!--/ko-->\\r\\n\\t\\t\\t</md-tile-block>\\r\\n\\t\\t</md-tile-row>\\r\\n\\t\\t<md-tile-row class=\"flex\">\\r\\n\\t\\t</md-tile-row>\\r\\n\\t</md-tile-content>\\r\\n</md-tile>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/chart-wide.template.html',[],function () { return '<md-tile class=\"tile-chart-wide\" data-bind=\"with: liveTileHandler\">\\r\\n\\t<md-tile-content>\\r\\n\\t\\t<md-tile-row class=\"\">\\r\\n\\t\\t\\t<md-tile-block class=\"chart\">\\r\\n\\t\\t\\t\\t<!--ko if: (data != null && data.parts != null && data.parts.length == 1) -->\\r\\n\\t\\t\\t\\t<div class=\"text\" data-bind=\"text: data.parts[0].data.title\"></div>\\r\\n\\t\\t\\t\\t<div class=\"smalltext\" data-bind=\"text: data.parts[0].data.subtitle\"></div>\\r\\n\\t\\t\\t\\t<div style=\"width: 575px; height: 225px; padding-top: 10px\" data-bind=\"chart: { type: data.parts[0].data.charttype, data: data.parts[0].data.chartdata, options: data.parts[0].data.chartoptions, plugins: data.parts[0].data.plugins }\"></div>\\r\\n\\t\\t\\t\\t<!--/ko-->\\r\\n\\t\\t\\t\\t<!--ko ifnot: (data != null && data.parts != null && data.parts.length == 1) -->\\r\\n\\t\\t\\t\\t<div class=\"text\" data-bind=\"text: $parent.name\"></div>\\r\\n\\t\\t\\t\\t<div class=\"smalltext\" data-i18n=\"app:modules.home.info_noData\">derzeit liegen keine Daten vor...</div>\\r\\n\\t\\t\\t\\t<!--/ko-->\\r\\n\\t\\t\\t</md-tile-block>\\r\\n\\t\\t</md-tile-row>\\r\\n\\t\\t<md-tile-row class=\"flex\">\\r\\n\\t\\t</md-tile-row>\\r\\n\\t</md-tile-content>\\r\\n</md-tile>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/default-uk.template.html',[],function () { return '<md-tile data-bind=\"{attr: {id: name}, css: showOnMobile == false ? \\'hide-on-mobile\\': \\'\\'}\" class=\"tile-small tile-variable\">\\r\\n\\t<md-tile-content data-bind=\"style: { \\'background-color\\': (color != null ? color : \\'\\') }\">\\r\\n\\t\\t<md-tile-row class=\"flex\">\\r\\n\\t\\t\\t<md-tile-block class=\"flex\" data-bind=\"css: (color == null ? \\'gradient\\' : \\'\\') \">\\r\\n\\t\\t\\t\\t<!--ko if: $root.checkShowAddWidgetsCondition()-->\\r\\n\\t\\t\\t\\t<div class=\"layout-row hide-options hide-on-mobile\" data-bind=\"visible: !$root.isClientUser\">\\r\\n\\t\\t\\t\\t\\t<a href=\"#\" class=\"fa fa-icon fa-times-circle x-icon\" data-bind=\"click: function(data, event) { $data.isHidden = true; $root.saveUserSettingsChanges(); }\"></a>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t<!--/ko-->\\r\\n\\t\\t\\t\\t<a href=\"#\" data-bind=\"command: { command: $root.navigateCommand, parameter: $data }\">\\r\\n\\t\\t\\t\\t\\t<!-- ko if: (useImage == false && icon != null) -->\\r\\n\\t\\t\\t\\t\\t<div class=\"fa fa-icon tile-icon fa-fw fa-4x\" data-bind=\"css: icon\"></div>\\r\\n\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t\\t\\t<!-- ko if: (useImage == true && imagePath != null) -->\\r\\n\\t\\t\\t\\t\\t<img class=\"fa fa-icon tile-icon fa-fw fa-4x\" data-bind=\"attr: { src: imagePath }, css: defaultData.customCSS != null ? defaultData.customCSS : \\'\\'\" />\\r\\n\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t\\t\\t<div class=\"text\">\\r\\n\\t\\t\\t\\t\\t\\t<!--ko text: name--><!--/ko-->\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</a>\\r\\n\\t\\t\\t</md-tile-block>\\r\\n\\t\\t</md-tile-row>\\r\\n\\t</md-tile-content>\\r\\n</md-tile>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/default.template.html',[],function () { return '<md-tile class=\"tile-small\">\\r\\n\\t<md-tile-content data-bind=\"style: { \\'background-color\\': (color != null ? color : \\'\\') }\">\\r\\n\\t\\t<md-tile-row class=\"flex\">\\r\\n\\t\\t\\t<md-tile-block class=\"flex\" data-bind=\"css: (color == null ? \\'gradient\\' : \\'\\') \">\\r\\n\\t\\t\\t\\t<!--ko if: $root.checkShowAddWidgetsCondition()-->\\r\\n\\t\\t\\t\\t<div class=\"layout-row hide-options\" data-bind=\"visible: !$root.isClientUser\">\\r\\n\\t\\t\\t\\t\\t<a href=\"#\" class=\"fa fa-icon fa-times-circle x-icon\" data-bind=\"click: function(data, event) { $data.isHidden = true; $root.saveUserSettingsChanges(); }\"></a>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t<!--/ko-->\\r\\n\\t\\t\\t\\t<a href=\"#\" data-bind=\"command: { command: $root.navigateCommand, parameter: $data }\">\\r\\n\\t\\t\\t\\t\\t<!-- ko if: (useImage == false && icon != null) -->\\r\\n\\t\\t\\t\\t\\t<div class=\"fa fa-icon tile-icon fa-fw fa-4x\" data-bind=\"css: icon\"></div>\\r\\n\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t\\t\\t<!-- ko if: (useImage == true && imagePath != null) -->\\r\\n\\t\\t\\t\\t\\t<img class=\"fa fa-icon tile-icon fa-fw fa-4x\" data-bind=\"attr: { src: imagePath }, css: defaultData.customCSS != null ? defaultData.customCSS : \\'\\'\" />\\r\\n\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t\\t\\t<div class=\"text\">\\r\\n\\t\\t\\t\\t\\t\\t<!--ko text: name--><!--/ko-->\\r\\n\\t\\t\\t\\t\\t\\t<!--ko if: application !== null && !application.embedApp-->\\r\\n\\t\\t\\t\\t\\t\\t<i class=\"fa fa-external-link\"></i>\\r\\n\\t\\t\\t\\t\\t\\t<!--/ko-->\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</a>\\r\\n\\t\\t\\t</md-tile-block>\\r\\n\\t\\t</md-tile-row>\\r\\n\\t</md-tile-content>\\r\\n</md-tile>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/mobile-app.template.html',[],function () { return '<md-tile class=\"tile-small\">\\r\\n\\r\\n\\t<!-- ko if: ($data.useImage == true && $data.imagePath != null) -->\\r\\n\\t<md-tile-content>\\r\\n\\t\\t<md-tile-row class=\"flex\">\\r\\n\\t\\t\\t<md-tile-block class=\"flex\">\\r\\n\\t\\t\\t\\t<img style=\"margin:auto; width:90px; height:90px\" data-bind=\"attr: { src: $data.imagePath }\" />\\r\\n\\t\\t\\t</md-tile-block>\\r\\n\\t\\t</md-tile-row>\\r\\n\\t</md-tile-content>\\r\\n\\t<!-- /ko -->\\r\\n\\t<!-- ko if: ($data.useImage == false && $data.icon != null) -->\\r\\n\\t<md-tile-content>\\r\\n\\t\\t<md-tile-row class=\"flex\">\\r\\n\\t\\t\\t<md-tile-block class=\"flex\">\\r\\n\\t\\t\\t\\t<div style=\"font-size:80px;margin:auto;height:auto !important;width:auto !important\" class=\"fa fa-icon tile-icon fa-fw fa-4x\" data-bind=\"css: icon\"></div>\\r\\n\\t\\t\\t</md-tile-block>\\r\\n\\t\\t</md-tile-row>\\r\\n\\t</md-tile-content>\\r\\n\\t<!-- /ko -->\\r\\n\\r\\n\\t<md-tile-content class=\"mobile-app-body\">\\r\\n\\t\\t<md-tile-row class=\"flex\">\\r\\n\\t\\t\\t<md-tile-block class=\"flex\">\\r\\n\\r\\n\\t\\t\\t\\t<div class=\"text mobile-app-title\">\\r\\n\\t\\t\\t\\t\\t<!--ko text: name--><!--/ko-->\\r\\n\\t\\t\\t\\t</div>\\r\\n\\r\\n\\t\\t\\t\\t<div class=\"mobile-app-links\">\\r\\n\\t\\t\\t\\t\\t<i class=\"fa fa-mobile phone-icon\"></i>\\r\\n\\t\\t\\t\\t\\t<a href=\"#\" class=\"fa fa-download download-icon\" data-bind=\"command: { command: $root.navigateCommand, parameter: $data }\"></a>\\r\\n\\r\\n\\t\\t\\t\\t\\t<span class=\"fa fa-info description-icon\" data-bind=\"click:function(event,args){$data.toggleDescription = true;}\"></span>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\r\\n\\t\\t\\t</md-tile-block>\\r\\n\\t\\t</md-tile-row>\\r\\n\\t</md-tile-content>\\r\\n</md-tile>\\r\\n\\r\\n<!--ko if: $data.toggleDescription-->\\r\\n<md-tile class=\"mobile-app-description-tile\">\\r\\n\\t<md-tile-content class=\"mobile-app-description-content\">\\r\\n\\t\\t<md-tile-row class=\"flex\">\\r\\n\\t\\t\\t<md-tile-block class=\"flex\">\\r\\n\\t\\t\\t\\t<div class=\"mobile-app-description-title\" data-bind=\"text:$data.name\"></div>\\r\\n\\t\\t\\t\\t<div class=\"mobile-app-description-text\" data-bind=\"text: $data.defaultData.description\"></div>\\r\\n\\t\\t\\t\\t<div class=\"fa fa-icon fa-times mobile-app-description-box-close-icon\" data-bind=\"click:function(event,args){$data.toggleDescription = false;}\"></div>\\r\\n\\t\\t\\t</md-tile-block>\\r\\n\\t\\t</md-tile-row>\\r\\n\\t</md-tile-content>\\r\\n</md-tile>\\r\\n<!--/ko-->\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-1x1-book-amount.template.html',[],function () { return '<div class=\"layout-row flex book-amount\">\\r\\n\\t<div class=\"layout-column flex\">\\r\\n\\t\\t<h2 data-bind=\"text: data.amount, css: { \\'success\\': data.prediction == \\'success\\', \\'warning\\': data.prediction == \\'warning\\', \\'alert\\': data.prediction == \\'alert\\' }\"></h2>\\r\\n\\t\\t<span data-bind=\"text: data.info\"></span>\\r\\n\\t\\t<hr />\\r\\n\\t\\t<p>Gebucht bis</p>\\r\\n\\t\\t<span class=\"highlight\" data-bind=\"text: data.bookdate\"></span>\\r\\n\\t</div>\\r\\n</div>';});\n\n", "\ndefine('text!areas/home/views/tiles/part-1x1-book-info.template.html',[],function () { return '<div class=\"layout-row flex book-info\">\\r\\n\\t<div class=\"\">\\r\\n\\t\\t<div class=\"fa fa-icon fa-fw fa-4x tile-icon\" data-bind=\"css: $parents[1].icon\"></div>\\r\\n\\t\\t<h2 data-bind=\"text: data.headline\"></h2>\\r\\n\\t</div>\\r\\n</div>\\r\\n<div class=\"layout-row link\">\\r\\n\\t<a href=\"#\" class=\"layout-column\" data-bind=\"click: function(event, args) { $parents[1].liveTileHandler.execute(data.link) }\">\\r\\n\\t\\t<span>\\r\\n\\t\\t\\t<!--ko text: data.link.text--><!--/ko-->\\r\\n\\t\\t\\t<!--ko if: !$parents[1].application.embedApp-->\\r\\n\\t\\t\\t<i class=\"fa fa-external-link\"></i>\\r\\n\\t\\t\\t<!--/ko-->\\r\\n\\t\\t</span>\\r\\n\\t</a>\\r\\n</div>';});\n\n", "\ndefine('text!areas/home/views/tiles/part-1x1-icon.template.html',[],function () { return '\\t<!-- ko with: $parents[1] -->\\r\\n<!--ko if: $root.checkShowAddWidgetsCondition()-->\\r\\n<div class=\"layout-row hide-options\">\\r\\n\\t<a href=\"#\" class=\"fa fa-icon fa-times-circle x-icon\" data-bind=\"click: function(data, event) { $data.isHidden = true; $root.saveUserSettingsChanges(); }\"></a>\\r\\n</div>\\r\\n<!--/ko-->\\r\\n<a href=\"#\" class=\"\" data-bind=\"command: { command: $root.navigateCommand, parameter: $data }\">\\r\\n\\t<!-- ko if: (useImage == false && icon != null) -->\\r\\n\\t<div class=\"fa fa-icon fa-fw fa-4x tile-icon\" data-bind=\"css: icon\"></div>\\r\\n\\t<!-- /ko -->\\r\\n\\t<!-- ko if: (useImage == true && imagePath != null) -->\\r\\n\\t<img class=\"fa fa-icon fa-fw fa-4x tile-icon\" data-bind=\"attr: { src: imagePath }\" />\\r\\n\\t<!-- /ko -->\\r\\n\\t<div class=\"text\">\\r\\n\\t\\t<!--ko text: name--><!--/ko-->\\r\\n\\t\\t<!--ko if: application !== null && !application.embedApp-->\\r\\n\\t\\t<i class=\"fa fa-external-link\"></i>\\r\\n\\t\\t<!--/ko-->\\r\\n\\t</div>\\r\\n</a>\\r\\n<!-- /ko -->\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-1x1-info.template.html',[],function () { return '<div class=\"layout-row flex books\">\\r\\n\\t<div class=\"layout-column flex\">\\r\\n\\t\\t<h2 data-bind=\"text: data.headline\"></h2>\\r\\n\\t\\t<span data-bind=\"text: data.subtitle\"></span>\\r\\n\\t\\t<p data-bind=\"text: data.info\"></p>\\r\\n\\t</div>\\r\\n</div>\\r\\n<div class=\"layout-row link\">\\r\\n\\t<a href=\"#\" class=\"layout-column\" data-bind=\"command: { command: $root.navigateCommand, parameter: $parents[1] }\">\\r\\n\\t\\t<span>\\r\\n\\t\\t\\t<!--ko text: data.link.text--><!--/ko-->\\r\\n\\t\\t\\t<!--ko if: !$parents[1].application.embedApp-->\\r\\n\\t\\t\\t<i class=\"fa fa-external-link\"></i>\\r\\n\\t\\t\\t<!--/ko-->\\r\\n\\t\\t</span>\\r\\n\\t</a>\\r\\n</div>';});\n\n", "\ndefine('text!areas/home/views/tiles/part-1x1-links.template.html',[],function () { return '<ul data-bind=\"foreach: data\" class=\"btn-list-tile\">\\r\\n\\t<li>\\r\\n\\t\\t<a href=\"#\" data-bind=\"click: function(event, args) { $parents[2].liveTileHandler.execute($data) }\">\\r\\n\\t\\t\\t<!--ko text: text--><!--/ko-->\\r\\n\\t\\t</a>\\r\\n\\t\\t<i class=\"fa fa-angle-right\"></i>\\r\\n\\t</li>\\r\\n\\t<span data-bind=\"visible: $index() < $parent.data.length - 1\" class=\"gradient_line\"></span>\\r\\n</ul>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-1x1-nodata.template.html',[],function () { return '<div class=\"nodata\">\\r\\n\\t<div class=\"fa fa-icon fa-fw fa-4x tile-icon gray-text\" data-bind=\"css: data.icon\"></div>\\r\\n\\t<div class=\"text gray-text\" data-bind=\"text: data.message\"></div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-1x1-report-amount.template.html',[],function () { return '<div class=\"layout-row flex report-amount\">\\r\\n\\t<div class=\"layout-column flex\">\\r\\n\\t\\t<h2 class=\"\" data-bind=\"text: data.amount, css: { \\'success\\': data.prediction == \\'success\\', \\'warning\\': data.prediction == \\'warning\\', \\'alert\\': data.prediction == \\'alert\\' }\"></h2>\\r\\n\\t\\t<span data-bind=\"text: data.info\"></span>\\r\\n\\t\\t<span class=\"highlight\" data-bind=\"text: data.sum\"></span>\\r\\n\\t</div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-1x1-report-info.template.html',[],function () { return '<div class=\"layout-row flex report-info\">\\r\\n\\t<div class=\"\">\\r\\n\\t\\t<a href=\"#\" class=\"\" data-bind=\"command: { command: $root.navigateCommand, parameter: $parents[1] }\">\\r\\n\\t\\t\\t<div class=\"fa fa-icon fa-fw fa-4x tile-icon\" data-bind=\"css: $parents[1].icon\"></div>\\r\\n\\t\\t\\t<h2>\\r\\n\\t\\t\\t\\t<!--ko text: data.headline--><!--/ko-->\\r\\n\\t\\t\\t\\t<!--ko if: !$parents[1].application.embedApp-->\\r\\n\\t\\t\\t\\t<i class=\"fa fa-external-link\"></i>\\r\\n\\t\\t\\t\\t<!--/ko-->\\r\\n\\t\\t\\t</h2>\\r\\n\\t\\t</a>\\r\\n\\t</div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-1x1-uploads.template.html',[],function () { return '<div class=\"layout-row flex uploads\">\\r\\n\\t<div class=\"layout-column flex\">\\r\\n\\t\\t<h2 data-bind=\"text: $parents[1].name\"></h2>\\r\\n\\t\\t<span data-bind=\"text: data.subtitle\" class=\"flex\"></span>\\r\\n\\t\\t<a href=\"#\" data-bind=\"command: { command: $root.navigateCommand, parameter: $parents[1] }\">\\r\\n\\t\\t\\t<div class=\"fa fa-icon fa-fw fa-4x\" data-bind=\"css: $parents[1].icon\"></div>\\r\\n\\t\\t</a>\\r\\n\\t</div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-2x1-book-amount.template.html',[],function () { return '<div class=\"layout-row flex book-amount\">\\r\\n\\t<div class=\"layout-column flex\">\\r\\n\\t\\t<h2 data-bind=\"text: data.amount, css: { \\'success\\': data.prediction == \\'success\\', \\'warning\\': data.prediction == \\'warning\\', \\'alert\\': data.prediction == \\'alert\\' }\"></h2>\\r\\n\\t\\t<span data-bind=\"text: data.info\"></span>\\r\\n\\t\\t<hr />\\r\\n\\t\\t<p>Gebucht bis</p>\\r\\n\\t\\t<span class=\"highlight\" data-bind=\"text: data.bookdate\"></span>\\r\\n\\t</div>\\r\\n</div>';});\n\n", "\ndefine('text!areas/home/views/tiles/part-2x1-book-info.template.html',[],function () { return '<div class=\"layout-row flex book-info\">\\r\\n\\t<div class=\"\">\\r\\n\\t\\t<div class=\"fa fa-icon fa-fw fa-4x tile-icon\" data-bind=\"css: $parents[1].icon\"></div>\\r\\n\\t\\t<h2 data-bind=\"text: data.headline\"></h2>\\r\\n\\t</div>\\r\\n</div>\\r\\n<div class=\"layout-row link\">\\r\\n\\t<a href=\"#\" class=\"layout-column\" data-bind=\"click: function(event, args) { $parents[1].liveTileHandler.execute(data.link) }\">\\r\\n\\t\\t<span>\\r\\n\\t\\t\\t<!--ko text: data.link.text--><!--/ko-->\\r\\n\\t\\t\\t<!--ko if: !$parents[1].application.embedApp-->\\r\\n\\t\\t\\t<i class=\"fa fa-external-link\"></i>\\r\\n\\t\\t\\t<!--/ko-->\\r\\n\\t\\t</span>\\r\\n\\t</a>\\r\\n</div>';});\n\n", "\ndefine('text!areas/home/views/tiles/part-2x1-icon.template.html',[],function () { return '\\t<!-- ko with: $parents[1] -->\\r\\n<!--ko if: $root.checkShowAddWidgetsCondition()-->\\r\\n<div class=\"layout-row hide-options\">\\r\\n\\t<a href=\"#\" class=\"fa fa-icon fa-times-circle x-icon\" data-bind=\"click: function(data, event) { $data.isHidden = true; $root.saveUserSettingsChanges(); }\"></a>\\r\\n</div>\\r\\n<!--/ko-->\\r\\n<a href=\"#\" class=\"\" data-bind=\"command: { command: $root.navigateCommand, parameter: $data }\">\\r\\n\\t<!-- ko if: (useImage == false && icon != null) -->\\r\\n\\t<div class=\"fa fa-icon fa-fw fa-4x tile-icon\" data-bind=\"css: icon\"></div>\\r\\n\\t<!-- /ko -->\\r\\n\\t<!-- ko if: (useImage == true && imagePath != null) -->\\r\\n\\t<img class=\"fa fa-icon fa-fw fa-4x tile-icon\" data-bind=\"attr: { src: imagePath }\" />\\r\\n\\t<!-- /ko -->\\r\\n\\t<div class=\"text\">\\r\\n\\t\\t<!--ko text: name--><!--/ko-->\\r\\n\\t\\t<!--ko if: application !== null && !application.embedApp-->\\r\\n\\t\\t<i class=\"fa fa-external-link\"></i>\\r\\n\\t\\t<!--/ko-->\\r\\n\\t</div>\\r\\n</a>\\r\\n<!-- /ko -->\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-2x1-info.template.html',[],function () { return '<div class=\"layout-row flex books\">\\r\\n\\t<div class=\"layout-column flex\">\\r\\n\\t\\t<h2 data-bind=\"text: data.headline\"></h2>\\r\\n\\t\\t<span data-bind=\"text: data.subtitle\"></span>\\r\\n\\t\\t<p data-bind=\"text: data.info\"></p>\\r\\n\\t</div>\\r\\n</div>\\r\\n<div class=\"layout-row link\">\\r\\n\\t<a href=\"#\" class=\"layout-column\" data-bind=\"command: { command: $root.navigateCommand, parameter: $parents[1] }\">\\r\\n\\t\\t<span>\\r\\n\\t\\t\\t<!--ko text: data.link.text--><!--/ko-->\\r\\n\\t\\t\\t<!--ko if: !$parents[1].application.embedApp-->\\r\\n\\t\\t\\t<i class=\"fa fa-external-link\"></i>\\r\\n\\t\\t\\t<!--/ko-->\\r\\n\\t\\t</span>\\r\\n\\t</a>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-2x1-links.template.html',[],function () { return '<ul data-bind=\"foreach: data\" class=\"btn-list-tile\">\\r\\n\\t<li>\\r\\n\\t\\t<a href=\"#\" data-bind=\"click: function(event, args) { $parents[2].liveTileHandler.execute($data) }\" style=\"width: 200px\">\\r\\n\\t\\t\\t<!--ko text: text--><!--/ko-->\\r\\n\\t\\t</a>\\r\\n\\t\\t<i class=\"fa fa-angle-right\"></i>\\r\\n\\t</li>\\r\\n\\t<span data-bind=\"visible: $index() < $parent.data.length - 1\" class=\"gradient_line\"></span>\\r\\n</ul>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-2x1-nodata.template.html',[],function () { return '<div class=\"nodata\">\\r\\n\\t<div class=\"fa fa-icon fa-fw fa-4x tile-icon fa-truck gray-text\"></div>\\r\\n\\t<div class=\"text gray-text\" data-i18n=\"app:modules.home.info_noData2\">Keine Daten</div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-2x1-report-amount.template.html',[],function () { return '<div class=\"layout-row flex report-amount\">\\r\\n\\t<div class=\"layout-column flex\">\\r\\n\\t\\t<h2 class=\"\" data-bind=\"text: data.amount, css: { \\'success\\': data.prediction == \\'success\\', \\'warning\\': data.prediction == \\'warning\\', \\'alert\\': data.prediction == \\'alert\\' }\"></h2>\\r\\n\\t\\t<span data-bind=\"text: data.info\"></span>\\r\\n\\t\\t<span class=\"highlight\" data-bind=\"text: data.sum\"></span>\\r\\n\\t</div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-2x1-report-info.template.html',[],function () { return '<div class=\"layout-row flex report-info\">\\r\\n\\t<div class=\"\">\\r\\n\\t\\t<a href=\"#\" class=\"\" data-bind=\"command: { command: $root.navigateCommand, parameter: $parents[1] }\">\\r\\n\\t\\t\\t<div class=\"fa fa-icon fa-fw fa-4x tile-icon\" data-bind=\"css: $parents[1].icon\"></div>\\r\\n\\t\\t\\t<h2>\\r\\n\\t\\t\\t\\t<!--ko text: data.headline--><!--/ko-->\\r\\n\\t\\t\\t\\t<!--ko if: !$parents[1].application.embedApp-->\\r\\n\\t\\t\\t\\t<i class=\"fa fa-external-link\"></i>\\r\\n\\t\\t\\t\\t<!--/ko-->\\r\\n\\t\\t\\t</h2>\\r\\n\\t\\t</a>\\r\\n\\t</div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-2x1-uploads.template.html',[],function () { return '<div class=\"layout-row flex uploads\">\\r\\n\\t<div class=\"layout-column flex\">\\r\\n\\t\\t<h2 data-bind=\"text: $parents[1].name\"></h2>\\r\\n\\t\\t<span data-bind=\"text: data.subtitle\" class=\"flex\"></span>\\r\\n\\t\\t<a href=\"#\" data-bind=\"command: { command: $root.navigateCommand, parameter: $parents[1] }\">\\r\\n\\t\\t\\t<div class=\"fa fa-icon fa-fw fa-4x\" data-bind=\"css: $parents[1].icon\"></div>\\r\\n\\t\\t</a>\\r\\n\\t</div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-3x1-icon.template.html',[],function () { return '\\t<!-- ko with: $parents[1] -->\\r\\n<!--ko if: $root.checkShowAddWidgetsCondition()-->\\r\\n<div class=\"layout-row hide-options\">\\r\\n\\t<a href=\"#\" class=\"fa fa-icon fa-times-circle x-icon\" data-bind=\"click: function(data, event) { $data.isHidden = true; $root.saveUserSettingsChanges(); }\"></a>\\r\\n</div>\\r\\n<!--/ko-->\\r\\n<a href=\"#\" class=\"\" data-bind=\"command: { command: $root.navigateCommand, parameter: $data }\">\\r\\n\\t<!-- ko if: (useImage == false && icon != null) -->\\r\\n\\t<div class=\"fa fa-icon fa-fw fa-4x tile-icon\" data-bind=\"css: icon\"></div>\\r\\n\\t<!-- /ko -->\\r\\n\\t<!-- ko if: (useImage == true && imagePath != null) -->\\r\\n\\t<img class=\"fa fa-icon fa-fw fa-4x tile-icon\" data-bind=\"attr: { src: imagePath }\" />\\r\\n\\t<!-- /ko -->\\r\\n\\t<div class=\"text\">\\r\\n\\t\\t<!--ko text: name--><!--/ko-->\\r\\n\\t\\t<!--ko if: application !== null && !application.embedApp-->\\r\\n\\t\\t<i class=\"fa fa-external-link\"></i>\\r\\n\\t\\t<!--/ko-->\\r\\n\\t</div>\\r\\n</a>\\r\\n<!-- /ko -->\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-3x1-info.template.html',[],function () { return '<div class=\"layout-row flex books\">\\r\\n\\t<div class=\"layout-column flex\">\\r\\n\\t\\t<h2 data-bind=\"text: data.headline\"></h2>\\r\\n\\t\\t<span data-bind=\"text: data.subtitle\"></span>\\r\\n\\t\\t<p data-bind=\"text: data.info\"></p>\\r\\n\\t</div>\\r\\n</div>\\r\\n<div class=\"layout-row link\">\\r\\n\\t<a href=\"#\" class=\"layout-column\" data-bind=\"command: { command: $root.navigateCommand, parameter: $parents[1] }\">\\r\\n\\t\\t<span>\\r\\n\\t\\t\\t<!--ko text: data.link.text--><!--/ko-->\\r\\n\\t\\t\\t<!--ko if: !$parents[1].application.embedApp-->\\r\\n\\t\\t\\t<i class=\"fa fa-external-link\"></i>\\r\\n\\t\\t\\t<!--/ko-->\\r\\n\\t\\t</span>\\r\\n\\t</a>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-3x1-links.template.html',[],function () { return '<ul data-bind=\"foreach: data\" class=\"btn-list-tile\">\\r\\n\\t<li>\\r\\n\\t\\t<a href=\"#\" data-bind=\"click: function(event, args) { $parents[2].liveTileHandler.execute($data) }\" style=\"width: 300px\">\\r\\n\\t\\t\\t<!--ko text: text--><!--/ko-->\\r\\n\\t\\t</a>\\r\\n\\t\\t<i class=\"fa fa-angle-right\"></i>\\r\\n\\t</li>\\r\\n\\t<span data-bind=\"visible: $index() < $parent.data.length - 1\" class=\"gradient_line\"></span>\\r\\n</ul>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-3x1-nodata.template.html',[],function () { return '<div class=\"nodata\">\\r\\n\\t<div class=\"fa fa-icon fa-fw fa-4x tile-icon fa-truck gray-text\"></div>\\r\\n\\t<div class=\"text gray-text\" data-i18n=\"app:modules.home.info_noData2\">Keine Daten</div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/part-3x1-uploads.template.html',[],function () { return '<div class=\"layout-row flex uploads\">\\r\\n\\t<div class=\"layout-column flex\">\\r\\n\\t\\t<h2 data-bind=\"text: $parents[1].name\"></h2>\\r\\n\\t\\t<span data-bind=\"text: data.subtitle\" class=\"flex\"></span>\\r\\n\\t\\t<a href=\"#\" data-bind=\"command: { command: $root.navigateCommand, parameter: $parents[1] }\">\\r\\n\\t\\t\\t<div class=\"fa fa-icon fa-fw fa-4x\" data-bind=\"css: $parents[1].icon\"></div>\\r\\n\\t\\t</a>\\r\\n\\t</div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/tutorial.template.html',[],function () { return '<div data-bind=\"{attr: {id: name}}\" class=\"tutorial-template-tile-container\">\\r\\n\\t<md-tile class=\"tutorial-template-tile\">\\r\\n\\t\\t<!-- ko if: (useImage == true && imagePath != null) -->\\r\\n\\t\\t<md-tile-content class=\"tutorial-template-tile-content\">\\r\\n\\t\\t\\t<md-tile-block>\\r\\n\\t\\t\\t\\t<!--<div data-bind=\"click: $root.extender.showTutorial, parameter: $parents[1]\">-->\\r\\n\\t\\t\\t\\t<div data-bind=\"command: { command: $root.navigateCommand, parameter: $data }\">\\r\\n\\t\\t\\t\\t\\t<a href=\"#\">\\r\\n\\t\\t\\t\\t\\t\\t<img class=\"tutorial-template-tile-block-link-img\" data-bind=\"attr:{src: imagePath}\" />\\r\\n\\t\\t\\t\\t\\t</a>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t</md-tile-block>\\r\\n\\t\\t</md-tile-content>\\r\\n\\t\\t<!-- /ko -->\\r\\n\\r\\n\\t\\t<md-tile-content class=\"tutorial-template-tile-second-content\">\\r\\n\\t\\t\\t<md-tile-block>\\r\\n\\t\\t\\t\\t<div class=\"tutorial-template-tile-second-content-text\">\\r\\n\\t\\t\\t\\t\\t<!--ko text: name--><!--/ko-->\\r\\n\\t\\t\\t\\t\\t<!--ko if: application !== null && !application.embedApp-->\\r\\n\\t\\t\\t\\t\\t<!--/ko-->\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t</md-tile-block>\\r\\n\\t\\t</md-tile-content>\\r\\n\\t</md-tile>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/home/views/tiles/uk-2x1.template.html',[],function () { return '<div class=\"tile-variable uk-2x1-tile\" data-bind=\"with:liveTileHandler, css: showOnMobile == false ? \\'hide-on-mobile\\': \\'\\' \">\\r\\n <md-tile data-bind=\"{attr: {id: $data._node.name}, css: data == null || data.parts == null || data.parts[0].firstCounter == null || (data.parts[0].firstCounter === 0 && data.parts[0].secondCounter == null) || (data.parts[0].firstCounter === 0 && data.parts[0].secondCounter === 0) ? \\'tile-small\\' : \\'tile-medium\\'}\" class=\"tile-variable\">\\r\\n <md-tile-content>\\r\\n <md-tile-row class=\"flex\">\\r\\n\\r\\n <md-tile-block class=\"flex\" data-bind=\"css: $data._node.color == null ? \\'gradient\\' : \\'\\' \">\\r\\n <!--ko if: $root.checkShowAddWidgetsCondition()-->\\r\\n <div class=\"layout-row hide-options hide-on-mobile\" data-bind=\"visible: !$root.isClientUser\">\\r\\n <a href=\"#\" class=\"fa fa-icon fa-times-circle x-icon\" data-bind=\"click: function(data, event) { console.log($data); $data._node.isHidden = true; $root.saveUserSettingsChanges(); }\"></a>\\r\\n </div>\\r\\n <!--/ko-->\\r\\n <a href=\"#\" data-bind=\"command: { command: $root.navigateCommand, parameter: $data._node }\">\\r\\n <!-- ko if: ($data._node.useImage == false && $data._node.icon != null) -->\\r\\n <div class=\"fa fa-icon tile-icon fa-fw fa-4x\" data-bind=\"css: $data._node.icon\"></div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: ($data._node.useImage == true && $data._node.imagePath != null) -->\\r\\n <img class=\"fa fa-icon tile-icon fa-fw fa-4x\" data-bind=\"attr:{src: $data._node.imagePath}, css: $data._node.defaultData.customCSS != null ? $data._node.defaultData.customCSS : \\'\\'\" />\\r\\n <!-- /ko -->\\r\\n <div class=\"text\">\\r\\n <!--ko text: $data._node.name--><!--/ko-->\\r\\n </div>\\r\\n </a>\\r\\n </md-tile-block>\\r\\n\\r\\n <!-- ko ifnot: (data == null || data.parts == null || data.parts[0].firstCounter == null || (data.parts[0].firstCounter === 0 && data.parts[0].secondCounter == null) || (data.parts[0].firstCounter === 0 && data.parts[0].secondCounter === 0)) -->\\r\\n <md-tile-block>\\r\\n <div class=\"layout-row flex book-amount\">\\r\\n\\r\\n <!-- ko if: (data.parts[0].secondCounter != null && data.parts[0].secondCounterLabel != null) -->\\r\\n <div class=\"layout-column flex\">\\r\\n <a href=\"#\" data-bind=\"command: { command: $root.navigateCommand, parameter: $data._node, parameter1: $data._node.firstCounterQueryString }\">\\r\\n <h3 class=\"counter-data\" data-bind=\"text: data.parts[0].firstCounter\"></h3>\\r\\n <span class=\"counter-label\" data-bind=\"text: data.parts[0].firstCounterLabel\"></span>\\r\\n </a>\\r\\n <span class=\"counter-delimiter\"></span>\\r\\n <a href=\"#\" data-bind=\"command: { command: $root.navigateCommand, parameter: $data._node, parameter1: $data._node.secondCounterQueryString }\">\\r\\n <h3 class=\"counter-data\" data-bind=\"text: data.parts[0].secondCounter\"></h3>\\r\\n <span class=\"counter-label\" data-bind=\"text: data.parts[0].secondCounterLabel\"></span>\\r\\n </a>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- ko ifnot: (data.parts[0].secondCounter != null && data.parts[0].secondCounterLabel != null) -->\\r\\n <div class=\"layout-column-flex\">\\r\\n <div class=\"single-counter\">\\r\\n <a href=\"#\" data-bind=\"command: { command: $root.navigateCommand, parameter: $data._node, parameter1: $data._node.firstCounterQueryString }\">\\r\\n <h3 class=\"counter-data\" data-bind=\"text: data.parts[0].firstCounter\"></h3>\\r\\n <span class=\"counter-label\" data-bind=\"text: data.parts[0].firstCounterLabel\"></span>\\r\\n </a>\\r\\n </div>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n\\r\\n </div>\\r\\n </md-tile-block>\\r\\n <!-- /ko -->\\r\\n\\r\\n </md-tile-row>\\r\\n </md-tile-content>\\r\\n </md-tile>\\r\\n</div>';});\n\n", "\ndefine('text!areas/home/views/ukrightpanel.html',[],function () { return '<!--ko if: isAuthenticated -->\\r\\n<div class=\"layout-column hide-on-mobile\">\\r\\n\\r\\n <!--ko if: activitiesAreActivated && (sidebar.current === \"Dashboard\" || sidebar.current === \"Home\")-->\\r\\n <div data-bind=\"compose: { view: \\'areas/clientteam/views/index\\', model: \\'areas/clientteam/viewmodels/index\\' }\"></div>\\r\\n <div style=\"padding-top:40px;\"></div>\\r\\n <!-- <div data-bind=\"compose: { view: \\'areas/activitymonitor/views/index\\', model: \\'areas/activitymonitor/viewmodels/index\\' }\"></div> -->\\r\\n <!--/ko-->\\r\\n <!--ko if: !activitiesAreActivated && (sidebar.current === \"Dashboard\" || sidebar.current === \"Home\")-->\\r\\n <div class=\"layout-row flex\" data-bind=\"compose: { view: \\'areas/activityfeed/views/index\\', model: \\'areas/activityfeed/viewmodels/index\\' }\"></div>\\r\\n <!--/ko-->\\r\\n</div>\\r\\n<!--/ko-->\\r\\n';});\n\n", "\ndefine('text!areas/iServe/views/index.html',[],function () { return '<div class=\"iServe-container\">\\r\\n <div class=\"col-md-2 iServe-background-content-top iServe-background-image\" style=\"background-image:url(\\'Content/images/iServe_background.png\\')\">\\r\\n\\r\\n <div class=\"iServe-title\">i-Serve</div>\\r\\n\\r\\n <div id=\"landing-video-container\">\\r\\n <div class=\"positional-container\">\\r\\n <span class=\"iServe-description no-show\">\\r\\n Welcome to i-Serve.\\r\\n <br />\\r\\n i-Serve allows you to recommend a range of solutions that will enhance your clients\\' working practices.\\r\\n </span>\\r\\n </div>\\r\\n\\r\\n <!--<video id=\"landing-video\" controls>\\r\\n <source src=\"https://ocuksbstatic.blob.core.windows.net/iserve/iServe_video.mp4\" type=\"video/mp4\">\\r\\n Your browser does not support the video.\\r\\n </video>-->\\r\\n\\r\\n <iframe src=\"https://player.vimeo.com/video/275258148\" id=\"landing-video\"></iframe>\\r\\n\\r\\n <div class=\"positional-container\">\\r\\n <span class=\"iServe-description no-show\">\\r\\n i-Serve provides you with a range of information that you can digest and send on to your clients where you see a specific benefit to their business. Please click on the applications below to find out more…\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div id=\"mobile-landing-video-container\">\\r\\n <span class=\"iServe-description\">\\r\\n Welcome to i-Serve.\\r\\n <br />\\r\\n i-Serve allows you to recommend a range of solutions that will enhance your clients working practices.\\r\\n </span>\\r\\n\\r\\n <span class=\"iServe-description\">\\r\\n i-Serve provides you with a range of information that you can digest and send on to your clients where you see a specific benefit to their business. Please click on the applications below to find out more…\\r\\n </span>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n\\r\\n <div class=\"col-md-2 iServe-background-content-bottom\">\\r\\n\\r\\n <div class=\"iServe-mobile-apps-content\" data-bind=\"foreach: mobileApps\">\\r\\n\\r\\n <div class=\"iServe-tile-small\">\\r\\n\\r\\n <md-tile-content>\\r\\n <md-tile-row class=\"flex\">\\r\\n <md-tile-block class=\"flex\">\\r\\n <img class=\"iServe-app-image\" data-bind=\"attr: { src: $data.imagePath }, click:function(event,args){$root.iServeProductClick($data);}\" />\\r\\n </md-tile-block>\\r\\n </md-tile-row>\\r\\n </md-tile-content>\\r\\n\\r\\n <md-tile-content class=\"iServe-mobile-app-body\">\\r\\n <md-tile-row class=\"flex\">\\r\\n <md-tile-block class=\"flex iServe-mobile-app-title-container\">\\r\\n\\r\\n <div class=\"iServe-mobile-app-title\">\\r\\n <!--ko text: name--><!--/ko-->\\r\\n </div>\\r\\n </md-tile-block>\\r\\n </md-tile-row>\\r\\n </md-tile-content>\\r\\n\\r\\n <!--ko if: $data.toggleDescription-->\\r\\n <div class=\"iServe-mobile-app-description-tile\">\\r\\n <md-tile-content class=\"iServe-mobile-app-description-content\">\\r\\n <md-tile-row class=\"flex\">\\r\\n <md-tile-block class=\"flex\">\\r\\n <div class=\"iServe-mobile-app-description-title\" data-bind=\"text:$data.name\"></div>\\r\\n <div class=\"iServe-mobile-app-description-text\" data-bind=\"text: $data.defaultData.description\"></div>\\r\\n <div class=\"fa fa-icon fa-times iServe-mobile-app-description-box-close-icon\" data-bind=\"click:function(event,args){$data.toggleDescription = false;}\"></div>\\r\\n </md-tile-block>\\r\\n </md-tile-row>\\r\\n </md-tile-content>\\r\\n </div>\\r\\n <!--/ko-->\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n\\r\\n <!--<div class=\"iServe-my-favourites\">\\r\\n\\r\\n <div class=\"title\">\\r\\n My Favourites\\r\\n </div>\\r\\n\\r\\n <div class=\"list-of-favourites\" data-bind=\"foreach: favouriteMobileApps\">\\r\\n\\r\\n <div class=\"favourite-mobile-app-container\">\\r\\n <div class=\"circle-container\"><img class=\"image\" data-bind=\"attr: { src: $data.image }\" /></div>\\r\\n <div class=\"name\" data-bind=\"text:$data.name\"></div>\\r\\n <div class=\"description\" data-bind=\"text:$data.description\"></div>\\r\\n <div class=\"trash fa fa-trash\"></div>\\r\\n <br />\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n\\r\\n </div>-->\\r\\n\\r\\n </div>\\r\\n</div>';});\n\n", "\ndefine('text!areas/informationrequest/views/DTAInformationDialog.html',[],function () { return '<div class=\"modal-dialog\" id=\"infoModalId\" >\\r\\n <div class=\"modal-content\" style=\"padding: 20px; border: 1px solid #dfdfdf;\">\\r\\n <div style=\"margin-bottom:10px;\">\\r\\n <button type=\"button\" class=\"close information-request-close\" data-bind=\"click: $root.closeDialog\">×</button>\\r\\n <label class=\"information-request-title\">Digital Tax Account</label>\\r\\n </div>\\r\\n <div style=\"margin-bottom:10px;\">\\r\\n <label>\\r\\n This screen will show the Digital Tax Account information that HMRC has on record for your client. You ca use this information for comparison with\\r\\n Personal Tax. The information that HMRC holds will grow over time. If you sent your client a Digital Information Request you will also see information\\r\\n that they have sent you and you can communicate with them through this screen - marking sources as \\'Complete\\' or \\'Incomplete\\' and even exchange comments with them.\\r\\n </label>\\r\\n </div>\\r\\n <hr class=\"information-request-separator\"/>\\r\\n \\r\\n <div class=\"information-request-checkbox-div1\">\\r\\n <div class=\"information-request-checkbox-div1\"><input class=\"information-request-checkbox\" type=\"checkbox\" data-bind=\"checked: $root.dontShow\"/></div>\\r\\n <div class=\"information-request-checkbox-div2\"><p class=\"information-request-checkbox-label\"><span>Don\\'t show me again</span></p></div>\\r\\n </div>\\r\\n <div style=\"text-align: end;\">\\r\\n <button type=\"button\" class=\"information-request-confirmation-button-blue\" data-bind=\"click: $root.closeDialog\">Ok, got it!</button>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/informationrequest/views/PartnerInformation.html',[],function () { return '<!-- Details Modal-->\\r\\n<div id=\"detailModalId\" class=\"modal-dialog\" data-backdrop=\"static\" data-keyboard=\"false\">\\r\\n <div class=\"modal-dialog\">\\r\\n <!-- Modal content-->\\r\\n <div class=\"modal-content\">\\r\\n <div class=\"modal-header\">\\r\\n <button type=\"button\" class=\"close information-request-close\" data-bind=\"click: closeDialog\">×</button>\\r\\n <h3 class=\"information-request-line-behind-text\"><span>Partner Information</span></h3>\\r\\n </div>\\r\\n <div class=\"modal-body information-request-modal-body\" id=\"bodyDivId\">\\r\\n <!--<input id=\"selectedSectionId\"></input>-->\\r\\n <div class=\"information-request-clients-p-centered\">\\r\\n <p>Forename</p>\\r\\n <p>Surname</p>\\r\\n <p>NI No.</p>\\r\\n <p>D.O.B</p>\\r\\n <p>Married</p>\\r\\n </div>\\r\\n <div data-bind=\"foreach: $root.sectionComments\">\\r\\n <div class=\"information-request-margin-bottom-10 row\">\\r\\n <div class=\"col-xs-1\">\\r\\n\\r\\n </div>\\r\\n\\r\\n <div class=\"col-xs-11\">\\r\\n <div class=\"col-xs-12\">\\r\\n\\r\\n </div>\\r\\n <div class=\"col-xs-12\">\\r\\n <label data-bind=\"text: message\" class=\"information-request-message\"></label>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"modal-footer\">\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>';});\n\n", "\ndefine('text!areas/informationrequest/views/clientDetails.html',[],function () { return '<div class=\"information-request-overlay\" data-bind=\"visible: displayOverlay\">\\r\\n <div style=\"padding-top:15%;width: 50%; margin: 0 auto;opacity:1\">\\r\\n <i class=\"fa fa-circle-o-notch fa-spin fa-5x fa-fw\" style=\"color:#2F579F;opacity:1\"></i>\\r\\n <div style=\"color:#2F579F;padding-left:4px;padding-top:10px;font-size:12pt;opacity:1\">Saving...</div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<div class=\"information-request-overlay\" data-bind=\"visible: displayLoading\">\\r\\n <div style=\"padding-top:15%;width: 50%; margin: 0 auto;opacity:1\">\\r\\n <i class=\"fa fa-circle-o-notch fa-spin fa-5x fa-fw\" style=\"color:#2F579F;opacity:1\"></i>\\r\\n <div style=\"color:#2F579F;padding-left:4px;padding-top:10px;font-size:12pt;opacity:1\">Loading...</div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<div class=\"information-request-overlay\" data-bind=\"visible: displayProcessOverlay\">\\r\\n <div style=\"padding-top:15%;width: 50%; margin: 0 auto;opacity:1\">\\r\\n <i class=\"fa fa-circle-o-notch fa-spin fa-5x fa-fw\" style=\"color:#2F579F;opacity:1\"></i>\\r\\n <div style=\"color:#2F579F;padding-left:4px;padding-top:10px;font-size:12pt;opacity:1\">Processing...</div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<div class=\"information-request-clientDetails-header\">\\r\\n <div style=\"transform:translate(0,50%)\">\\r\\n <header class=\"information-request-upper-header\">\\r\\n <div class=\"information-request-upper-header_name\" style=\"transform:translate(0,25%); width:55%\">\\r\\n <i class=\"fa fa-3x fa-user\" style=\"color:#007AC3\"></i>\\r\\n <p class=\"information-request-upper-header_name_cell\" data-bind=\"text: clientInfo.ClientName\"></p>\\r\\n </div>\\r\\n <div class=\"information-request-upper-header_col\">\\r\\n <div >\\r\\n <p class=\"information-request-upper-header_col_desc\">UTR:</p>\\r\\n <!--TO DO: REMOVE AFTER TESTING-->\\r\\n <p class=\"information-request-upper-header_col_desc-blue\" data-bind=\"text: clientInfo.UTR\"></p>\\r\\n <!--<input type=\"text\" class=\"information-request-upper-header_col_desc-blue\" data-bind=\"value: clientInfo.UTR\" />-->\\r\\n </div>\\r\\n <div style=\"padding-top:10px\">\\r\\n <p class=\"information-request-upper-header_col_desc\">NI No:</p>\\r\\n <p class=\"information-request-upper-header_col_desc-blue\" data-bind=\"text: clientInfo.NINO\"></p>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"information-request-upper-header_col\">\\r\\n <div >\\r\\n <p class=\"information-request-upper-header_col_desc\"> Tax Year:</p>\\r\\n <p class=\"information-request-upper-header_col_desc-green\" data-bind=\"text: clientInfo.TaxYear\"></p>\\r\\n </div>\\r\\n\\r\\n <div style=\"padding-top:10px; width:125%\">\\r\\n <p class=\"information-request-upper-header_col_desc\"> Client Code:</p>\\r\\n <p class=\"information-request-upper-header_col_desc-green\" data-bind=\"text: clientInfo.ClientCode\"></p>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </header>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<div style=\"background-color:#fff;\">\\r\\n\\r\\n <div class=\"information-request-middle-header\" style=\"border-style:none;\">\\r\\n <button class=\"btn navbar-btn\" style=\"border:1px solid #d3d3d3\" data-bind=\"click: collapseAll\" title=\"Collapse all sections\">\\r\\n <i class=\"fa fa-chevron-right\" style=\"padding-left:0.711px;padding-right:0.711px;color:#797979\"></i>\\r\\n </button>\\r\\n <button class=\"btn navbar-btn\" style=\"border:1px solid #d3d3d3\" data-bind=\"click: expandAll\" title=\"Expand all sections\">\\r\\n <i class=\"fa fa-chevron-down\" style=\"color:#797979\"></i>\\r\\n </button>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-middle-header\" style=\"border-style:none\">\\r\\n <button id=\"info-request-saveButton\" class=\"btn navbar-btn\" data-bind=\"click:saveChangesWithToast, visible:(hasInformationReq())\" style=\"margin-bottom:0px;\">Save</button>\\r\\n <button class=\"btn navbar-btn\" data-bind=\"click:revertChanges, visible:(hasInformationReq())\" style=\"margin-bottom:0px;\">Cancel</button>\\r\\n <button class=\"btn navbar-btn\" data-bind=\"click:refreshData, visible: useCloudEvents\" style=\"margin-bottom:0px;\">Refresh</button>\\r\\n </div>\\r\\n <div class=\"information-request-middle-header\">\\r\\n <button class=\"btn navbar-btn information-request-btn-hmrc\" id=\"info-request-send-to-tax-button\" style=\"color:#fff;height:36.06px\" data-bind=\"click:showCommitDialog\">\\r\\n <span>Send To Tax Return</span>\\r\\n </button>\\r\\n <div class=\"information-request-commit-status-label\" data-bind=\"visible: (useCloudEvents() && displayCommitStatus())\">\\r\\n <div style=\"display:flex;flex-direction:row;align-items:center\">\\r\\n <div>\\r\\n <!-- ko if: commitState() == \\'Info\\' -->\\r\\n <i class=\"fas fa-info-circle commit-tax-info\"> </i>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: commitState() == \\'Success\\' -->\\r\\n <i class=\"fas fa-check-circle\" style=\"font-size:15px;color:#2ecc71\"></i>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: commitState() == \\'Fail\\' -->\\r\\n <i class=\"fas fa-times-circle\" style=\"font-size:15px;color:#fe6d6d\"></i>\\r\\n <!-- /ko -->\\r\\n </div>\\r\\n <span style=\"margin-left:5px;\" data-bind=\"text: commitStatus\"></span>\\r\\n <span style=\"margin-left:5px;text-decoration:underline;color:#0081c6;cursor:pointer\" data-bind=\"click:showCommitViewMore\">View more</span>\\r\\n </div>\\r\\n <span data-bind=\"text: lastReturnModifiedDate\"></span>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"information-request-middle-header\">\\r\\n <button class=\"btn navbar-btn information-request-btn-hmrc\" id=\"info-request-hmrc-button\" style=\"color: #FFF;\" data-bind=\"click:refreshAPIs, visible:(hasInformationReq())\">\\r\\n <img src=\"/html/content/images/hmrc_refresh_btn.png\" style=\"height:20px;\" alt=\"hmrc\" />\\r\\n <span>Refresh DTA</span>\\r\\n </button>\\r\\n\\r\\n <label class=\"information-request-hmrc-date\" style=\"margin-left:4px;margin-right:4px;margin-top:8px;margin-bottom:8px;color:#a9a9a9\" data-bind=\"visible:(hasInformationReq()) && lastUpdatedHmrcInfo() != \\'\\', text: \\'Last updated: \\\\n\\' + lastUpdatedHmrcInfo()\"></label>\\r\\n </div>\\r\\n <div class=\"information-request-middle-header\">\\r\\n <button class=\"btn navbar-btn information-request-btn-hmrc\" id=\"downlaod-pdf-hmrc-button\" style=\"color: #FFF;\" data-bind=\"click:exportToPdf\">\\r\\n <i class=\"far fa-file-pdf fa-2x\" style=\"font-size:1.5em;\"></i>\\r\\n <span>Export to PDF</span>\\r\\n </button>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<div class=\"information-request-body\">\\r\\n <div style=\"margin:10px;\">\\r\\n <div data-bind=\"foreach: sections\">\\r\\n <div data-bind=\"visible: !expanded()\">\\r\\n <div class=\"information-request-div-root-blue\" data-bind=\"attr: { id: extrafields.alias }\">\\r\\n <p data-bind=\"visible: !expanded(),click: $root.rootClicked.bind($root), event:{mouseover: $root.mouseOverRoot, mouseout: $root.mouseOutRoot}\" class=\"information-request-chevron\"><i class=\"fa fa-chevron-right\" style=\"color:#007AC3\"></i><p>\\r\\n <p class=\"information-request-root-p\">\\r\\n <label data-bind=\"text: name ,click: $root.rootClicked.bind($root), event:{mouseover: $root.mouseOverRoot, mouseout: $root.mouseOutRoot}, attr: { id: nameId }\" class=\"information-request-parent-section-header\"></label>\\r\\n <!-- ko if: children.length == 1-->\\r\\n <label data-bind=\"text: \\' [\\' +children.length +\\' row]\\', click: $root.rootClicked.bind($root), event:{mouseover: $root.mouseOverRoot, mouseout: $root.mouseOutRoot}, attr: { id: nameId + \\'Children\\' + children.length}\" class=\"information-request-parent-section-header\"></label>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: children.length != 1-->\\r\\n <label data-bind=\"text: \\' [\\' +children.length +\\' rows]\\', click: $root.rootClicked.bind($root), event:{mouseover: $root.mouseOverRoot, mouseout: $root.mouseOutRoot}, attr: { id: nameId + \\'Children\\' + children.length}\" class=\"information-request-parent-section-header\"></label>\\r\\n <!-- /ko -->\\r\\n\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#e74c3c; margin-left:2px; transform: translate(0,18%);\"\\r\\n data-bind=\"click: $root.errorClicked.bind($root),visible: hasHMRCAPIError\"></i>\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#2ecc71; margin-left:2px; transform: translate(0,18%);\"\\r\\n data-bind=\"click: $root.errorClicked.bind($root),visible: hasHMRCAPI404Error\"></i>\\r\\n <div style=\"position: absolute;right: 10px;transform: translate(0,-18%);\">\\r\\n <i class=\"fa fa-dot-circle-o fa-lg\" aria-hidden=\"true\" data-bind=\"visible: hasNotification(), attr: { id: \\'notificationSectionClosedFromMobile_\\' + extrafields.alias }\" style=\"color:#ff9500\" title=\"Updated by client\"></i>\\r\\n <!-- ko if: complete-->\\r\\n <i class=\"fa fa-check fa-lg\" aria-hidden=\"true\" style=\"color:#519fd8\" data-bind=\"attr: { id: \\'checkCompleteSectionClosedFromMobile_\\' + extrafields.alias }\" title=\"Completed by client\"></i>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: !complete-->\\r\\n <i class=\"fa fa-check fa-lg\" aria-hidden=\"true\" style=\"color:#d1e9f5\" data-bind=\"attr: { id: \\'checkIncompleteSectionClosedFromMobile_\\' + extrafields.alias }\" title=\"Completed by client\"></i>\\r\\n <!-- /ko -->\\r\\n <i class=\"fa fa-check fa-lg\" aria-hidden=\"true\" data-bind=\"visible: completeFromWeb(), attr: { id: \\'checkCompleteSectionClosedFromWeb_\\' + extrafields.alias }\" style=\"color:#519fd8\" title=\"Completed by you\"></i>\\r\\n <i class=\"fa fa-check fa-lg\" aria-hidden=\"true\" data-bind=\"visible: !completeFromWeb(), attr: { id: \\'checkIncompleteSectionClosedFromWeb_\\' + extrafields.alias }\" style=\"color:#d1e9f5\" title=\"Completed by you\"></i>\\r\\n </div>\\r\\n </p>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div data-bind=\"visible: expanded()\">\\r\\n <div class=\"information-request-div-root-blue\" style=\"background-image: linear-gradient(0deg, #2F579F 2%, #0988CB 100%);border: 1px solid #007FC9;\" data-bind=\"attr: { id: extrafields.alias }\">\\r\\n <p data-bind=\"visible: expanded(), click: $root.rootClicked.bind($root), event:{mouseover: $root.mouseOverRoot, mouseout: $root.mouseOutRoot}\" class=\"information-request-chevron\"><i class=\"fa fa-chevron-down\" style=\"color:#fff\"></i><p>\\r\\n <p class=\"information-request-root-p\">\\r\\n <label data-bind=\"text: name ,click: $root.rootClicked.bind($root), event:{mouseover: $root.mouseOverRoot, mouseout: $root.mouseOutRoot}, attr: { id: nameId }\" style=\"color:#fff\" class=\"information-request-parent-section-header\"></label>\\r\\n <!-- ko if: children.length == 1-->\\r\\n <label data-bind=\"text: \\' [\\' +children.length +\\' row]\\', click: $root.rootClicked.bind($root), event:{mouseover: $root.mouseOverRoot, mouseout: $root.mouseOutRoot}, attr: { id: nameId + \\'Children\\' + children.length}\" style=\"color:#fff\" class=\"information-request-parent-section-header\"></label>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: children.length != 1-->\\r\\n <label data-bind=\"text: \\' [\\' +children.length +\\' rows]\\', click: $root.rootClicked.bind($root), event:{mouseover: $root.mouseOverRoot, mouseout: $root.mouseOutRoot}, attr: { id: nameId + \\'Children\\' + children.length}\" style=\"color:#fff\" class=\"information-request-parent-section-header\"></label>\\r\\n <!-- /ko -->\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#e74c3c; margin-left:2px; transform: translate(0,18%);\"\\r\\n data-bind=\"click: $root.errorClicked.bind($root),visible: hasHMRCAPIError\"></i>\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#2ecc71; margin-left:2px; transform: translate(0,18%);\"\\r\\n data-bind=\"click: $root.errorClicked.bind($root),visible: hasHMRCAPI404Error\"></i>\\r\\n <div style=\"position: absolute;right: 10px;transform: translate(0,-18%);\">\\r\\n <i class=\"fa fa-dot-circle-o fa-lg\" aria-hidden=\"true\" data-bind=\"visible: hasNotification(), attr: { id: \\'notificationSectionExpandedFromMobile_\\' + extrafields.alias }\" style=\"color:#ff9500\" title=\"Updated by client\"></i>\\r\\n <!-- ko if: complete-->\\r\\n <i class=\"fa fa-check fa-lg\" aria-hidden=\"true\" style=\"color:#fff\" data-bind=\"attr: { id: \\'checkCompleteSectionExpandedFromMobile_\\' + extrafields.alias }\" title=\"Completed by client\"></i>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: !complete-->\\r\\n <i class=\"fa fa-check fa-lg\" aria-hidden=\"true\" style=\"color:#519fd8\" data-bind=\"attr: { id: \\'checkIncompleteSectionExpandedFromMobile_\\' + extrafields.alias }\" title=\"Completed by client\"></i>\\r\\n <!-- /ko -->\\r\\n <i class=\"fa fa-check fa-lg\" aria-hidden=\"true\" data-bind=\"visible: completeFromWeb(), attr: { id: \\'checkCompleteSectionExpandedFromWeb_\\' + extrafields.alias }\" style=\"color:#fff\" title=\"Completed by you\"></i>\\r\\n <i class=\"fa fa-check fa-lg\" aria-hidden=\"true\" data-bind=\"visible: !completeFromWeb(), attr: { id: \\'checkIncompleteSectionExpandedFromWeb_\\' + extrafields.alias }\" style=\"color:#519fd8\" title=\"Completed by you\"></i>\\r\\n </div>\\r\\n </p>\\r\\n\\r\\n </div>\\r\\n <div data-bind=\"visible: expanded()\" style=\"\">\\r\\n <div class=\"information-request-div-child-header\" data-bind=\"visible: children.length>0,template: { name: templateHeader }\">\\r\\n </div>\\r\\n <div style=\"clear:left;margin-left:30px\" data-bind=\"visible: templateHeader==\\'AllowanceHeader\\'\">\\r\\n <label style=\"font-family:FiraSans-Book; color:#333;\">Allowances claimed last year</label>\\r\\n </div>\\r\\n <div data-bind=\"foreach: children\" style=\"margin-left:20px\">\\r\\n <label data-bind=\"visible: foreignCountry().length > 0, text: foreignCountry, style: { color: \\'#333\\', \\'font-family\\': \\'FiraSans-Book\\', \\'margin-left\\': checkboxVisible ? \\'35px\\' : \\'10px\\', \\'margin-top\\': \\'8px\\'}\"></label>\\r\\n <div class=\"information-request-div-child-level1\" data-bind=\"template:{name: templateBody}\">\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n <!--ko compose: {view: \\'areas/informationrequest/views/hmrcAPIInfo\\', model:hmrcInfoModel}--><!--/ko-->\\r\\n <!-- no hmrc authorisation -->\\r\\n <!--<div data-bind=\"visible:(!hasInformationReq() && !hasHmrcAuthorisation())\" style=\"clear: left;\">\\r\\n <img src=\"/html/content/images/hmrc_authorisation_lock.png\" alt=\"lock\" class=\"information-request-hmrc-lock\" />\\r\\n <p class=\"information-request-text-center\">Authorisation for this client has not taken place.</p>\\r\\n <p class=\"information-request-text-center\">Please authorise from within central and try again.</p>\\r\\n </div>-->\\r\\n <!-- no hmrc response -->\\r\\n <!--<div data-bind=\"visible:(noDTAInfo())\" style=\"clear: left;\">\\r\\n <img src=\"/html/content/images/hmrc_no_dta.png\" alt=\"lock\" class=\"information-request-hmrc-lock\" />\\r\\n <p class=\"information-request-text-center\">There is currently no information held in the DTA for this client.</p>\\r\\n </div>\\r\\n <div data-bind=\"foreach:dtaInfo,visible:(!hasInformationReq() && hasHmrcAuthorisation())\" style=\"clear: left;\">\\r\\n <label class=\"information-request-upper-header_col_desc-blue\" style=\"clear: left;\" data-bind=\"text:$data\"></label><br />\\r\\n </div>-->\\r\\n </div>\\r\\n\\r\\n <script type=\"text/javascript\">\\r\\n\\r\\n window.addEventListener(\\'unload\\', function (event) {\\r\\n console.log(\\'I am the 3rd one.\\');\\r\\n });\\r\\n \\r\\n </script>\\r\\n\\r\\n</div>\\r\\n\\r\\n\\r\\n\\r\\n<!-- The Messages Modal -->\\r\\n<div id=\"messagesModalId\" class=\"modal\" data-backdrop=\"static\" data-keyboard=\"false\">\\r\\n <div class=\"modal-dialog\">\\r\\n <!-- Modal content-->\\r\\n <div class=\"modal-content\">\\r\\n <div class=\"modal-header\">\\r\\n <button type=\"button\" class=\"close information-request-close\" data-bind=\"click: $root.closeMessages\">×</button>\\r\\n <h3 class=\"information-request-line-behind-text\"><span>Conversation</span></h3>\\r\\n </div>\\r\\n <div class=\"modal-body information-request-modal-body\" id=\"bodyDivId\">\\r\\n <!--<input id=\"selectedSectionId\"></input>-->\\r\\n\\r\\n <div data-bind=\"foreach: $root.sectionComments\">\\r\\n <div class=\"information-request-margin-bottom-10 row\">\\r\\n <div class=\"col-xs-1\">\\r\\n <i class=\"fa fa-user-circle fa-4x\" aria-hidden=\"true\" style=\"color:#686868\"></i>\\r\\n </div>\\r\\n <div class=\"col-xs-11\">\\r\\n <div class=\"col-xs-12\">\\r\\n <label data-bind=\"text: userName\" class=\"information-request-username\"></label>\\r\\n <label data-bind=\"text: moment(date).fromNow()\" class=\"information-request-date\"></label>\\r\\n </div>\\r\\n <div class=\"col-xs-12\">\\r\\n <label data-bind=\"text: message\" class=\"information-request-message\"></label>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"modal-footer\">\\r\\n <div style=\"display:flex; margin-top:10px;\">\\r\\n <div class=\"form-group form-md-line-input form-style-normal col-xs-10\">\\r\\n <textarea id=\"newMessageTxtAreaId\" data-bind=\"value: $root.newMessage, valueUpdate: \\'afterkeydown\\'\" rows=\"3\" type=\"text\" class=\"form-control\"\\r\\n placeholder=\"Enter message\"></textarea>\\r\\n </div>\\r\\n <div class=\"col-xs-2\" style=\"align-self:center;\">\\r\\n <button type=\"button\" class=\"btn btn-default\" style=\"border-radius:5px\"\\r\\n data-bind=\"click: $root.sendMessage,\\r\\n css: { \\'information-request-newMessageCreated\\' : $root.newMessage != \\'\\', \\'information-request-newMessageEmpty\\': $root.newMessage == \\'\\' },\\r\\n disable: $root.newMessage == \\'\\' \">\\r\\n <i class=\"fa fa-paper-plane fa-3x\" aria-hidden=\"true\" style=\"color:white; text-align:center;\"></i>\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<div id=\"dialogConfirmId\" class=\"modal\" data-backdrop=\"static\" data-keyboard=\"false\">\\r\\n <div class=\"modal-dialog\" style=\"padding-top: 15% !important;\">\\r\\n <div class=\"modal-content information-request-confirmation-modal-content\">\\r\\n <div class=\"modal-body information-request-confirmation-modal-body col-xs-12\">\\r\\n <div class=\"col-xs-12 information-request-confirmation-message\"><label>Are you sure you want to discard this message?</label></div>\\r\\n <div style=\"text-align:center;\">\\r\\n <button type=\"button\" class=\"information-request-confirmation-button\" data-bind=\"click: $root.keepOpen\">NO</button>\\r\\n <button type=\"button\" class=\"information-request-confirmation-button\" data-bind=\"click: $root.closeDialog\">YES</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<div id=\"dialogConfirmSaveId\" class=\"modal\" data-backdrop=\"static\" data-keyboard=\"false\">\\r\\n <div class=\"modal-dialog\" style=\"padding-top: 15% !important;\">\\r\\n <div class=\"modal-content information-request-confirmation-modal-content\">\\r\\n <div class=\"modal-body information-request-confirmation-modal-body col-xs-12\">\\r\\n <div class=\"col-xs-12 information-request-confirmation-message\">\\r\\n <label class=\"information-request-confirmation-message\">Changes have been made on the page. These will be saved in order to refresh HMRC data.</label>\\r\\n </div>\\r\\n <div style=\"text-align:center;\">\\r\\n <button type=\"button\" class=\"information-request-confirmation-button\" data-bind=\"click: $root.saveAndCheckHmrcData\">OK</button>\\r\\n <button type=\"button\" class=\"information-request-confirmation-button\" data-bind=\"click: $root.closeDialog\">Cancel</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<div id=\"dialogConfirmCommitId\" class=\"modal\" data-backdrop=\"static\" data-keyboard=\"false\">\\r\\n <div class=\"modal-dialog\" style=\"padding-top: 15% !important;\">\\r\\n <div class=\"modal-content information-request-commit-confirmation-modal-content\">\\r\\n <div class=\"modal-body information-request-confirmation-modal-body col-xs-12\"\\r\\n style=\"background-color: white; box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22);\">\\r\\n <div class=\"col-xs-12 information-request-confirmation-message\">\\r\\n <label class=\"information-request-confirmation-message\">Are you sure you want to commit these values to the corresponding Tax Return in CCH Personal Tax? All existing values will be overwritten.</label>\\r\\n </div>\\r\\n <div style=\"text-align:center;\">\\r\\n <button type=\"button\" class=\"information-request-confirmation-button\" data-bind=\"click: $root.commitToTax\"\\r\\n style=\"background-color: #137dcf!important;color: #fff;\">\\r\\n Yes\\r\\n </button>\\r\\n <button type=\"button\" class=\"information-request-confirmation-button\" data-bind=\"click: $root.closeDialog\"\\r\\n style=\"background-color: #fff!important;color: #137dcf;\">\\r\\n No\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<div id=\"dialogOkId\" class=\"modal\">\\r\\n <div class=\"modal-dialog\" style=\"padding-top: 15% !important;\">\\r\\n <div class=\"modal-content information-request-confirmation-modal-content\">\\r\\n <div class=\"modal-body information-request-confirmation-modal-body col-xs-12\">\\r\\n <div class=\"col-xs-12 information-request-confirmation-message\" style=\"padding-bottom:10px;\" id=\"messageDialogOkId\">\\r\\n <label>Text to show.</label>\\r\\n </div>\\r\\n <div style=\"text-align:center;\">\\r\\n <button type=\"button\" class=\"information-request-confirmation-button\" data-bind=\"click: $root.closeDialog\">OK</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<!-- Templates -->\\r\\n<script type=\"text/html\" id=\"DefaultHeader\">\\r\\n <div class=\"information-request-div-header-source\" style=\"width:25%\"><label class=\"information-request-p-header\" style=\"margin-left:30px\" data-bind=\"attr: { id: nameId + \\'Source\\'}\">Source</label></div>\\r\\n\\r\\n <!-- ko if: checkboxVisible -->\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:10%; display: flex;justify-content: center\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Sent To Tax Return\\r\\n </label>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n\\r\\n <div class=\"information-request-div-header-status\" style=\"width:13%\"><label class=\"information-request-p-header-center\" style=\"margin-left:30px\" data-bind=\"attr: { id: nameId + \\'Status\\'}\">Status</label></div>\\r\\n <div class=\"information-request-div-header-amount\" style=\"padding-right:0px;\"><label class=\"information-request-p-header-amount\" data-bind=\"text: $root.currentYearHeader, attr: { id: nameId + \\'CurrentYearHeader\\'}\" style=\"font-size:10pt;\"></label></div>\\r\\n <div class=\"information-request-div-header-amount\" style=\"padding-right:0px;width:13%\"><label class=\"information-request-p-header-amount\" style=\"font-size:10pt;\" data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">Previous Year</label></div>\\r\\n <div class=\"information-request-div-header-items\" style=\"width:20%\"><label class=\"information-request-p-header-center\" data-bind=\"attr: { id: nameId + \\'Attachments\\'}\">Attachments</label></div>\\r\\n <div class=\"information-request-div-header-items\" data-bind=\"visible: $root.displayMessageFeatureInDDR\" style=\"width:5%\"><label class=\"information-request-p-header-center\" data-bind=\"attr: { id: nameId + \\'Comments\\'}\">Messages</label></div>\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"ChildBenefitHeader\">\\r\\n <div class=\"information-request-div-header-source\" style=\"width:25%\"><label class=\"information-request-p-header\" style=\"margin-left:30px\" data-bind=\"attr: { id: nameId + \\'Source\\'}\">Source</label></div>\\r\\n\\r\\n <!-- ko if: checkboxVisible -->\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:10%; display: flex;justify-content: center\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Sent To Tax Return\\r\\n </label>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n\\r\\n <div class=\"information-request-div-header-status\" style=\"width:13%\"><label class=\"information-request-p-header-center\" style=\"margin-left:30px\" data-bind=\"attr: { id: nameId + \\'Status\\'}\">Status</label></div>\\r\\n <div class=\"information-request-div-header-amount\" style=\"padding-right:0px;width:13%\"><label class=\"information-request-p-header-amount\" data-bind=\"text: $root.currentYearHeader, attr: { id: nameId + \\'CurrentYearHeader\\'}\" style=\"font-size:10pt;\"></label></div>\\r\\n <div class=\"information-request-div-header-amount\" style=\"padding-right:0px;width:10%\"><label class=\"information-request-p-header-amount\" style=\"font-size:10pt;\" data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">Previous Year</label></div>\\r\\n <div class=\"information-request-div-header-items\" style=\"width:15%\"><label class=\"information-request-p-header-center\" data-bind=\"attr: { id: nameId + \\'Attachments\\'}\">Attachments</label></div>\\r\\n <div class=\"information-request-div-header-items\" data-bind=\"visible: $root.displayMessageFeatureInDDR\" style=\"width:5%\"><label class=\"information-request-p-header-center\" data-bind=\"attr: { id: nameId + \\'Comments\\'}\">Messages</label></div>\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"EmploymentHeader\">\\r\\n <div class=\"information-request-div-header-source\" style=\"width:25%\"><label class=\"information-request-p-header\" style=\"margin-left:30px\" data-bind=\"attr: { id: nameId + \\'Source\\'}\">Source</label></div>\\r\\n\\r\\n <!-- ko if: checkboxVisible -->\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:10%; display: flex;justify-content: center\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Sent To Tax Return\\r\\n </label>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n\\r\\n <div class=\"information-request-div-header-status\" style=\"width:13%\"><label class=\"information-request-p-header-center\" style=\"margin-left:30px\" data-bind=\"attr: { id: nameId + \\'Status\\'}\">Status</label></div>\\r\\n <div class=\"information-request-div-header-amount\" style=\"padding-right:0px;\"><label class=\"information-request-p-header-amount\" data-bind=\"text: $root.currentYearHeader, attr: { id: nameId + \\'CurrentYearHeader\\'}\" style=\"font-size:10pt;\"></label></div>\\r\\n <div class=\"information-request-div-header-amount\">\\r\\n <label class=\"information-request-p-header-amount\" style=\"font-size:10pt;\" data-bind=\"attr: { id: nameId + \\'HMRC\\'}\">HMRC</label>\\r\\n <i class=\"fa fa-info-circle fa-lg\" aria-hidden=\"true\" style=\"color:#007AC3;padding-left:10px; cursor:pointer;\"\\r\\n data-bind=\"click: $root.showInformation.bind($root), attr: { id: nameId + \\'HMRCinfo\\'}\"></i>\\r\\n </div>\\r\\n <div class=\"information-request-div-header-amount\" style=\"padding-right:0px;\"><label class=\"information-request-p-header-amount\" style=\"font-size:10pt;\" data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">Previous Year</label></div>\\r\\n <div class=\"information-request-div-header-items\"><label class=\"information-request-p-header-center\" data-bind=\"attr: { id: nameId + \\'Attachments\\'}\">Attachments</label></div>\\r\\n <div class=\"information-request-div-header-items\" data-bind=\"visible: $root.displayMessageFeatureInDDR\"><label class=\"information-request-p-header-center\" data-bind=\"attr: { id: nameId + \\'Comments\\'}\">Messages</label></div>\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"NewSourceHeader\">\\r\\n <div class=\"information-request-div-header-source\"><label class=\"information-request-p-header\" style=\"margin-left:30px\" data-bind=\"attr: { id: nameId + \\'Source\\'}\">Source</label></div>\\r\\n <div class=\"information-request-div-header-status\" style=\"width:13%\"><label class=\"information-request-p-header-center\" style=\"margin-left:30px\" data-bind=\"attr: { id: nameId + \\'Status\\'}\">Status</label></div>\\r\\n <div class=\"information-request-div-header-amount\" style=\"padding-right:0px;\"><label class=\"information-request-p-header-amount\"></label></div>\\r\\n <div class=\"information-request-div-header-amount\" style=\"padding-right:0px;\"><label class=\"information-request-p-header-amount\"></label></div>\\r\\n <div class=\"information-request-div-header-amount\" style=\"padding-right:0px;\"><label class=\"information-request-p-header-amount\" style=\"font-size:10pt;\"></label></div>\\r\\n <div class=\"information-request-div-header-items\"><label class=\"information-request-p-header-center\" data-bind=\"attr: { id: nameId + \\'Attachments\\'}\">Attachments</label></div>\\r\\n <div class=\"information-request-div-header-items\" data-bind=\"visible: $root.displayMessageFeatureInDDR\"><label class=\"information-request-p-header-center\" data-bind=\"attr: { id: nameId + \\'Comments\\'}\">Messages</label></div>\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"AllowanceHeader\">\\r\\n <div class=\"information-request-div-header-source\"><label class=\"information-request-p-header\" style=\"margin-left:30px\" data-bind=\"attr: { id: nameId + \\'Source\\'}\">Source</label></div>\\r\\n <div class=\"information-request-div-header-status\" style=\"width:13%\"><label class=\"information-request-p-header-center\" style=\"margin-left:30px\" data-bind=\"attr: { id: nameId + \\'Status\\'}\">Status</label></div>\\r\\n <div class=\"information-request-div-header-amount\" style=\"padding-right:0px;\"><label class=\"information-request-p-header-amount\" data-bind=\"text: $root.currentYearHeader, attr: { id: nameId + \\'CurrentYearHeader\\'}\" style=\"font-size:10pt;\"></label></div>\\r\\n <div class=\"information-request-div-header-amount\" style=\"padding-right:0px;width:23%\"><label class=\"information-request-p-header-amount\"></label></div>\\r\\n <div class=\"information-request-div-header-items\"><label class=\"information-request-p-header-center\" data-bind=\"attr: { id: nameId + \\'Attachments\\'}\">Attachments</label></div>\\r\\n <div class=\"information-request-div-header-items\" data-bind=\"visible: $root.displayMessageFeatureInDDR\"><label class=\"information-request-p-header-center\" data-bind=\"attr: { id: nameId + \\'Comments\\'}\">Messages</label></div>\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"DeductionHeader\">\\r\\n <div class=\"information-request-div-header-source\"><label class=\"information-request-p-header\" style=\"margin-left:30px\">Source</label></div>\\r\\n <div class=\"information-request-div-header-status\" style=\"width:13%\"><label class=\"information-request-p-header-center\" style=\"margin-left:30px\">Status</label></div>\\r\\n <div class=\"information-request-div-header-amount\" style=\"padding-right:0px;\"><label class=\"information-request-p-header-amount\" data-bind=\"text: $root.currentYearHeader\" style=\"font-size:10pt;\"></label></div>\\r\\n <div class=\"information-request-div-header-amount\" style=\"padding-right:0px;\"><label class=\"information-request-p-header-amount\" style=\"font-size:10pt;\">Previous Year</label></div>\\r\\n <div class=\"information-request-div-header-items\" style=\"width:17%\"><label class=\"information-request-p-header-center\">Attachments</label></div>\\r\\n <div class=\"information-request-div-header-items\" style=\"width:4%\" data-bind=\"visible: $root.displayMessageFeatureInDDR\"><label class=\"information-request-p-header-center\">Messages</label></div>\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"JointlyOwnedHeader\">\\r\\n\\r\\n <div class=\"information-request-div-header-source\"\\r\\n style=\"width:15%\">\\r\\n <label class=\"information-request-p-header\"\\r\\n style=\"margin-left:30px\"\\r\\n data-bind=\"attr: { id: nameId + \\'Source\\'}\">\\r\\n Source\\r\\n </label>\\r\\n </div>\\r\\n <!-- ko if: checkboxVisible -->\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:10%; display: flex;justify-content: center\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Sent To Tax Return\\r\\n </label>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n\\r\\n <div class=\"information-request-div-header-status\"\\r\\n style=\"width:15%\">\\r\\n <label class=\"information-request-p-header-center\"\\r\\n style=\"margin-left:30px\"\\r\\n data-bind=\"attr: { id: nameId + \\'Status\\'}\">\\r\\n Status\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:10%; display: flex;justify-content: center\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Jointly Owned?\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:10%; display: flex;justify-content: center\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Share %\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:6%\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n data-bind=\"text: $root.currentYearHeader, attr: { id: nameId + \\'CurrentYearHeader\\'}\"\\r\\n style=\"font-size:10pt;\">\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:10%\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Previous Year\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-items\"\\r\\n style=\"width:14%\">\\r\\n <label class=\"information-request-p-header-center\"\\r\\n data-bind=\"attr: { id: nameId + \\'Attachments\\'}\">\\r\\n Attachments\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-items\"\\r\\n style=\"width:10%\" data-bind=\"visible: $root.displayMessageFeatureInDDR\">\\r\\n <label class=\"information-request-p-header-center\"\\r\\n data-bind=\"attr: { id: nameId + \\'Comments\\'}\">\\r\\n Messages\\r\\n </label>\\r\\n </div>\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"JointlyOwnedForeignIncomeHeader\">\\r\\n\\r\\n <div class=\"information-request-div-header-source\"\\r\\n style=\"width:15%\">\\r\\n <label class=\"information-request-p-header\"\\r\\n style=\"margin-left:30px\"\\r\\n data-bind=\"attr: { id: nameId + \\'Source\\'}\">\\r\\n Source\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <!-- ko if: checkboxVisible -->\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:10%; display: flex;justify-content: center\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Sent To Tax Return\\r\\n </label>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n\\r\\n <div class=\"information-request-div-header-status\"\\r\\n style=\"width:15%\">\\r\\n <label class=\"information-request-p-header-center\"\\r\\n style=\"margin-left:30px\"\\r\\n data-bind=\"attr: { id: nameId + \\'Status\\'}\">\\r\\n Status\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:10%; display: flex;justify-content: center\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Jointly Owned?\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:10%; display: flex;justify-content: center\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Share %\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:5%\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\">\\r\\n Currency\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:8%\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n data-bind=\"text: $root.currentYearHeader, attr: { id: nameId + \\'CurrentYearHeader\\'}\"\\r\\n style=\"font-size:10pt;\">\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:10%\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Previous Year\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-items\"\\r\\n style=\"width:15%\">\\r\\n <label class=\"information-request-p-header-center\"\\r\\n data-bind=\"attr: { id: nameId + \\'Attachments\\'}\">\\r\\n Attachments\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-items\"\\r\\n style=\"width:5%\" data-bind=\"visible: $root.displayMessageFeatureInDDR\">\\r\\n <label class=\"information-request-p-header-center\"\\r\\n data-bind=\"attr: { id: nameId + \\'Comments\\'}\">\\r\\n Messages\\r\\n </label>\\r\\n </div>\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"ForeignIncomeHeader\">\\r\\n <div class=\"information-request-div-header-source\"\\r\\n style=\"width:19%\">\\r\\n <label class=\"information-request-p-header\"\\r\\n style=\"margin-left:30px\"\\r\\n data-bind=\"attr: { id: nameId + \\'Source\\'}\">\\r\\n Source\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <!-- ko if: checkboxVisible -->\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:10%; display: flex;justify-content: center\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Sent To Tax Return\\r\\n </label>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n\\r\\n <div class=\"information-request-div-header-status\"\\r\\n style=\"width:15%\">\\r\\n <label class=\"information-request-p-header-center\"\\r\\n style=\"margin-left:30px\"\\r\\n data-bind=\"attr: { id: nameId + \\'Status\\'}\">\\r\\n Status\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:8%\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\">\\r\\n Currency\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:9%\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n data-bind=\"text: $root.currentYearHeader, attr: { id: nameId + \\'CurrentYearHeader\\'}\"\\r\\n style=\"font-size:10pt;\">\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:12%\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Previous Year\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-items\"\\r\\n style=\"width:18%\">\\r\\n <label class=\"information-request-p-header-center\"\\r\\n data-bind=\"attr: { id: nameId + \\'Attachments\\'}\">\\r\\n Attachments\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-items\"\\r\\n style=\"width:6%\" data-bind=\"visible: $root.displayMessageFeatureInDDR\">\\r\\n <label class=\"information-request-p-header-center\"\\r\\n data-bind=\"attr: { id: nameId + \\'Comments\\'\">\\r\\n Messages\\r\\n </label>\\r\\n </div>\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"LandAndPropertyHeader\">\\r\\n <div class=\"information-request-div-header-source\"\\r\\n style=\"width:15%\">\\r\\n <label class=\"information-request-p-header\"\\r\\n style=\"margin-left:30px\"\\r\\n data-bind=\"attr: { id: nameId + \\'Source\\'}\">\\r\\n Source\\r\\n </label>\\r\\n </div>\\r\\n <!-- ko if: checkboxVisible -->\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:10%; display: flex;justify-content: center\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Sent To Tax Return\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-status\"\\r\\n style=\"width:10%\">\\r\\n <label class=\"information-request-p-header-center\"\\r\\n style=\"margin-left:30px\"\\r\\n data-bind=\"attr: { id: nameId + \\'Status\\'}\">\\r\\n Status\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:10%; display: flex;justify-content: center\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Jointly Owned?\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:6%; display: flex;justify-content: center\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Share %\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:7%\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\">\\r\\n Currency\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:8%\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n data-bind=\"text: $root.currentYearHeader, attr: { id: nameId + \\'CurrentYearHeader\\'}\"\\r\\n style=\"font-size:10pt;\">\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:13%\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Previous Year\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-items\"\\r\\n style=\"width:14%\">\\r\\n <label class=\"information-request-p-header-center\"\\r\\n data-bind=\"attr: { id: nameId + \\'Attachments\\'}\">\\r\\n Attachments\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-items\"\\r\\n style=\"width:5%\" data-bind=\"visible: $root.displayMessageFeatureInDDR\">\\r\\n <label class=\"information-request-p-header-center\"\\r\\n data-bind=\"attr: { id: nameId + \\'Comments\\'}\">\\r\\n Messages\\r\\n </label>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n\\r\\n <!-- ko if: !checkboxVisible -->\\r\\n <div class=\"information-request-div-header-status\"\\r\\n style=\"width:15%\">\\r\\n <label class=\"information-request-p-header-center\"\\r\\n style=\"margin-left:30px\"\\r\\n data-bind=\"attr: { id: nameId + \\'Status\\'}\">\\r\\n Status\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:10%; display: flex;justify-content: center\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Jointly Owned?\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:6%; display: flex;justify-content: center\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Share %\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:7%\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\">\\r\\n Currency\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:8%\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n data-bind=\"text: $root.currentYearHeader, attr: { id: nameId + \\'CurrentYearHeader\\'}\"\\r\\n style=\"font-size:10pt;\">\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-amount\" style=\"width:15%\">\\r\\n <label class=\"information-request-p-header-amount\"\\r\\n style=\"font-size:10pt;\"\\r\\n data-bind=\"attr: { id: nameId + \\'PreviousYear\\'}\">\\r\\n Previous Year\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-items\"\\r\\n style=\"width:17%\">\\r\\n <label class=\"information-request-p-header-center\"\\r\\n data-bind=\"attr: { id: nameId + \\'Attachments\\'}\">\\r\\n Attachments\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-header-items\"\\r\\n style=\"width:5%\" data-bind=\"visible: $root.displayMessageFeatureInDDR\">\\r\\n <label class=\"information-request-p-header-center\"\\r\\n data-bind=\"attr: { id: nameId + \\'Comments\\'}\">\\r\\n Messages\\r\\n </label>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"DefaultBody\">\\r\\n <div class=\"information-request-checkbox-div2\" data-bind=\"attr: { id: \\'defaultChildCheckbox\\' + $index() }, style: { display: checkboxVisible ? \\'inline\\' : \\'none\\' }\"><input type=\"checkbox\" class=\"information-request-checkbox\" data-bind=\"checked: isChecked, click: function() { $root.sourceSelected($data, $root.checkedSources, $root.enableCommitToTaxButton); return true; }, attr: { id: \\'commitToTaxDefault\\' + $index() }\"></div>\\r\\n \\r\\n <!-- ko if: checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source\" style=\"width:21%\" data-bind=\"attr: { id: \\'defaultChild\\' + $index() }, style: { clear: checkboxVisible ? \\'none\\' : \\'left\\' }\"><label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label></div>\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:11%; align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label data-bind=\"text: committed_Date(), style: { color: \\'grey\\'}\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-status\" data-bind=\"attr: { id: \\'defaultChildStatus\\' + $index() }\" style=\"width:15%\"><select class=\"information-request-select\" data-bind=\"options: $root.statuses,value: status, event: $root.selectedChanged\"></select></div>\\r\\n <div class=\"information-request-div-child-amount\" style=\"padding-right:0px;width:8%\" data-bind=\"attr: { id: \\'defaultChildAmount\\' + $index() }\"><input type=\"text\" class=\"information-request-input-amount currencyAmount\" data-bind=\"value: extrafields.keyValueStore.currentYear, attr: { id: \\'defaultChildAmount\\' + $index() }\"></div>\\r\\n <div class=\"information-request-div-child-readonly-amount\" data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\" style=\"width:13.8%\"><label class=\"information-request-p-child-last-year currencyAmount\" data-bind=\"text: lastyear\"></label></div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\" data-bind=\"attr: { id: \\'defaultChildAttachments\\' + $index() }\" style=\"width:19.5%\">\\r\\n <label class=\"information-request-p-number-items\" data-bind=\"click: $root.showAttachments.bind($root)\">\\r\\n <i class=\"fa fa-2x fa-paperclip\" style=\"color:#007AC3;float:left;\"></i>\\r\\n <span data-bind=\"text: attachmentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\" data-bind=\"click: $root.showComments.bind($root), attr: { id: \\'defaultChildComments\\' + $index() }, visible: $root.displayMessageFeatureInDDR\" style=\"width:7.5%\">\\r\\n <label class=\"information-request-p-number-items\">\\r\\n <i class=\"fa fa-2x fa-comments\" style=\"color:#007AC3;float:left;\"></i>\\r\\n <span data-bind=\"text: commentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n <!-- ko if: isTaxDeductionVisible -->\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:47.3%\"><label class=\"information-request-p-child-elipsis\">Tax deducted</label></div>\\r\\n <!-- /ko -->\\r\\n\\r\\n <!-- /ko -->\\r\\n <!-- ko if: !checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source\" style=\"width:25%\" data-bind=\"attr: { id: \\'defaultChild\\' + $index() }, style: { clear: checkboxVisible ? \\'none\\' : \\'left\\' }\"><label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label></div>\\r\\n <div class=\"information-request-div-child-status\" data-bind=\"attr: { id: \\'defaultChildStatus\\' + $index() }\" style=\"width:13%\"><select class=\"information-request-select\" data-bind=\"options: $root.statuses,value: status, event: $root.selectedChanged\"></select></div>\\r\\n <div class=\"information-request-div-child-amount\" style=\"padding-right:0px;\" data-bind=\"attr: { id: \\'defaultChildAmount\\' + $index() }\"><input style=\"width:92%\" type=\"text\" class=\"information-request-input-amount currencyAmount\" data-bind=\"value: extrafields.keyValueStore.currentYear, attr: { id: \\'defaultChildAmount\\' + $index() }\"></div>\\r\\n <div class=\"information-request-div-child-readonly-amount\" data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\" style=\"width:13%\"><label class=\"information-request-p-child-last-year currencyAmount\" data-bind=\"text: lastyear\"></label></div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\" data-bind=\"attr: { id: \\'defaultChildAttachments\\' + $index() }\" style=\"width:19.5%\">\\r\\n <label class=\"information-request-p-number-items\" data-bind=\"click: $root.showAttachments.bind($root)\">\\r\\n <i class=\"fa fa-2x fa-paperclip\" style=\"color:#007AC3;float:left;\"></i>\\r\\n <span data-bind=\"text: attachmentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\" data-bind=\"click: $root.showComments.bind($root), attr: { id: \\'defaultChildComments\\' + $index() },visible: $root.displayMessageFeatureInDDR\" style=\"width:7.5%\">\\r\\n <label class=\"information-request-p-number-items\">\\r\\n <i class=\"fa fa-2x fa-comments\" style=\"color:#007AC3;float:left;\"></i>\\r\\n <span data-bind=\"text: commentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n <!-- ko if: isTaxDeductionVisible -->\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:37.2%\"><label class=\"information-request-p-child-elipsis\">Tax deducted</label></div>\\r\\n <!-- /ko -->\\r\\n <!-- /ko -->\\r\\n <!-- ko if: isTaxDeductionVisible -->\\r\\n <div class=\"information-request-div-child-amount\" data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\" style=\"padding-right:0px\"><input type=\"text\" class=\"information-request-input-amount currencyAmount\" data-bind=\"value: extrafields.keyValueStore.taxDeducted\"></div>\\r\\n <!-- /ko -->\\r\\n</script>\\r\\n\\r\\n\\r\\n<script type=\"text/html\" id=\"ChildBenefitBody\">\\r\\n <div class=\"information-request-checkbox-div2\" data-bind=\"attr: { id: \\'defaultChildCheckbox\\' + $index() }, style: { display: checkboxVisible ? \\'inline\\' : \\'none\\' }\"><input type=\"checkbox\" class=\"information-request-checkbox\" data-bind=\"checked: isChecked, click: function() { $root.sourceSelected($data, $root.checkedSources, $root.enableCommitToTaxButton); return true; }, attr: { id: \\'commitToTaxDefault\\' + $index() }\"></div>\\r\\n \\r\\n <!-- ko if: checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source\" style=\"width:18%\" data-bind=\"attr: { id: \\'defaultChild\\' + $index() }, style: { clear: checkboxVisible ? \\'none\\' : \\'left\\' }\"><label class=\"information-request-p-child-elipsis\">Amount Received</label></div>\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:17.5%; align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label data-bind=\"text: committed_Date(), style: { color: \\'grey\\'}\"></label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-status\" data-bind=\"attr: { id: \\'defaultChildStatus\\' + $index() }\" style=\"width:9%\"><select class=\"information-request-select\" data-bind=\"options: $root.statuses,value: status, event: $root.selectedChanged\"></select></div>\\r\\n <div class=\"information-request-div-child-amount\" data-bind=\"attr: { id: \\'defaultChildAmount\\' + $index() }\" style=\"padding-right:0px;width:13.5%\"><input type=\"text\" class=\"information-request-input-amount currencyAmount\" data-bind=\"value: extrafields.keyValueStore.currentYear, attr: { id: \\'defaultChildAmount\\' + $index() }\"></div>\\r\\n <div class=\"information-request-div-child-readonly-amount\" data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\" style=\"width:10.9%\"><label class=\"information-request-p-child-last-year currencyAmount\" data-bind=\"text: lastyear\"></label></div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\" style=\"width:14.5%\" data-bind=\"attr: { id: \\'defaultChildAttachments\\' + $index() }\">\\r\\n <label class=\"information-request-p-number-items\" data-bind=\"click: $root.showAttachments.bind($root)\">\\r\\n <i class=\"fa fa-2x fa-paperclip\" style=\"color:#007AC3;float:left;\"></i>\\r\\n <span data-bind=\"text: attachmentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\" style=\"width:8%\" data-bind=\"click: $root.showComments.bind($root), attr: { id: \\'defaultChildComments\\' + $index() }, visible: $root.displayMessageFeatureInDDR\">\\r\\n\\r\\n <label class=\"information-request-p-number-items\">\\r\\n <i class=\"fa fa-2x fa-comments\" style=\"color:#007AC3;float:left;\"></i>\\r\\n <span data-bind=\"text: commentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:50.2%\"><label class=\"information-request-p-child-elipsis\">Number of Children</label></div>\\r\\n <div class=\"information-request-div-child-amount\" data-bind=\"attr: { id: \\'defaultChildAmount\\' + $index() }\" style=\"padding-right:0px;\"><input type=\"text\" class=\"information-request-input-amount currencyAmount\" data-bind=\"value: extrafields.keyValueStore.numberOfChildren\"></div>\\r\\n <div class=\"information-request-div-child-readonly-amount\" data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\" style=\"padding-right:0px;\"><label class=\"information-request-p-child-last-year\" data-bind=\"text: extrafields.keyValueStore.prevYearNumberOfChildren\"></label></div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:48.2%\"><label class=\"information-request-p-child-elipsis\">Date payments ceased</label></div>\\r\\n <div class=\"information-request-div-child-amount\" data-bind=\"attr: { id: \\'defaultChildAmount\\' + $index() }\" style=\"padding-right:0px; width:15%\"><input type=\"text\" id=\"childBenefitDateCeased\" class=\"information-request-input-amount\" data-bind=\"value: extrafields.keyValueStore.dateCeased, click: function() { $(\\'#childBenefitDateCeased\\').kendoDatePicker({ format: \\'dd/MM/yyyy\\' }); return true; }\"></div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: !checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source\" style=\"width:25%\" data-bind=\"attr: { id: \\'defaultChild\\' + $index() }, style: { clear: checkboxVisible ? \\'none\\' : \\'left\\' }\"><label class=\"information-request-p-child-elipsis\">Amount Received</label></div>\\r\\n <div class=\"information-request-div-child-status\" data-bind=\"attr: { id: \\'defaultChildStatus\\' + $index() }\" style=\"width:13%\"><select class=\"information-request-select\" data-bind=\"options: $root.statuses,value: status, event: $root.selectedChanged\"></select></div>\\r\\n <div class=\"information-request-div-child-amount\" data-bind=\"attr: { id: \\'defaultChildAmount\\' + $index() }\" style=\"padding-right:0px;width:12.2%\"><input type=\"text\" class=\"information-request-input-amount currencyAmount\" data-bind=\"value: extrafields.keyValueStore.currentYear, attr: { id: \\'defaultChildAmount\\' + $index() }\"></div>\\r\\n <div class=\"information-request-div-child-readonly-amount\" data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\" style=\"width:10.9%\"><label class=\"information-request-p-child-last-year currencyAmount\" data-bind=\"text: lastyear\"></label></div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\" style=\"width:14.5%\" data-bind=\"attr: { id: \\'defaultChildAttachments\\' + $index() }\">\\r\\n <label class=\"information-request-p-number-items\" data-bind=\"click: $root.showAttachments.bind($root)\">\\r\\n <i class=\"fa fa-2x fa-paperclip\" style=\"color:#007AC3;float:left;\"></i>\\r\\n <span data-bind=\"text: attachmentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\" style=\"width:8%\" data-bind=\"click: $root.showComments.bind($root), attr: { id: \\'defaultChildComments\\' + $index() }, visible: $root.displayMessageFeatureInDDR\">\\r\\n\\r\\n <label class=\"information-request-p-number-items\">\\r\\n <i class=\"fa fa-2x fa-comments\" style=\"color:#007AC3;float:left;\"></i>\\r\\n <span data-bind=\"text: commentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:40.2%\"><label class=\"information-request-p-child-elipsis\">Number of Children</label></div>\\r\\n <div class=\"information-request-div-child-amount\" data-bind=\"attr: { id: \\'defaultChildAmount\\' + $index() }\" style=\"padding-right:0px;\"><input type=\"text\" class=\"information-request-input-amount currencyAmount\" data-bind=\"value: extrafields.keyValueStore.numberOfChildren\"></div>\\r\\n <div class=\"information-request-div-child-readonly-amount\" data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\" style=\"padding-right:0px;\"><label class=\"information-request-p-child-last-year\" style=\"width:5%\" data-bind=\"text: extrafields.keyValueStore.prevYearNumberOfChildren\"></label></div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:35.2%\"><label class=\"information-request-p-child-elipsis\">Date payments ceased</label></div>\\r\\n <div class=\"information-request-div-child-amount\" data-bind=\"attr: { id: \\'defaultChildAmount\\' + $index() }\" style=\"padding-right:0px; width:15%\"><input type=\"text\" id=\"childBenefitDateCeased\" class=\"information-request-input-amount\" data-bind=\"value: extrafields.keyValueStore.dateCeased, click: function() { $(\\'#childBenefitDateCeased\\').kendoDatePicker({ format: \\'dd/MM/yyyy\\' }); return true; }\"></div>\\r\\n <!-- /ko -->\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"DeductionBody\">\\r\\n <div class=\"information-request-div-child-source\" data-bind=\"attr: { id: \\'allowanceSourceChild\\' + $index() }\"><label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label></div>\\r\\n\\r\\n <!--ko template: { name: \\'DeductionChilds\\', foreach: children } -->\\r\\n <!-- /ko -->\\r\\n\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"DeductionChilds\">\\r\\n <div class=\"information-request-div-child-source\" data-bind=\"attr: { id: \\'allowanceSourceChild\\' + $index() }\" style=\"padding-left:20px;width:33%\"><label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label></div>\\r\\n <div class=\"information-request-div-child-status\" data-bind=\"attr: { id: \\'allowanceChildStatus\\' + $index() }\" style=\"width:15%\"><select class=\"information-request-select\" data-bind=\"options: $root.statuses,value: status, event: $root.selectedChanged\"></select></div>\\r\\n\\r\\n <div class=\"information-request-div-child-amount\" data-bind=\"attr: { id: \\'employmentChildAmount\\' + $index() }\" style=\"width:8%\"><input type=\"text\" class=\"information-request-input-amount currencyAmount\" data-bind=\"value: extrafields.keyValueStore.currentYear\"></div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\" data-bind=\"attr: { id: \\'allowanceChildReadonly\\' + $index() }\" style=\"width:10%\"><label class=\"information-request-p-child-last-year currencyAmount\" data-bind=\"text: lastyear\"></label></div>\\r\\n <div class=\"information-request-div-child-items\" data-bind=\"attr: { id: \\'employmentChildAttachments\\' + $index() }\" style=\"width:17%\">\\r\\n\\r\\n <label class=\"information-request-p-number-items\" data-bind=\"click: $root.showAttachments.bind($root)\">\\r\\n <i class=\"fa fa-2x fa-paperclip\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: attachmentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-items\" data-bind=\"click: $root.showComments.bind($root), attr: { id: \\'allowanceChildComments\\' + $index() }, visible: $root.displayMessageFeatureInDDR\" style=\"width:6%\">\\r\\n\\r\\n <label class=\"information-request-p-number-items\">\\r\\n <i class=\"fa fa-2x fa-comments\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: commentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"EmploymentBody\">\\r\\n <div class=\"information-request-checkbox-div2\" data-bind=\"attr: { id: \\'defaultChildCheckbox\\' + $index() }, style: { display: checkboxVisible ? \\'inline\\' : \\'none\\' }\"><input type=\"checkbox\" class=\"information-request-checkbox\" data-bind=\"checked: isChecked, click: function() { $root.sourceSelected($data, $root.checkedSources, $root.enableCommitToTaxButton); return true; }, attr: { id: \\'commitToTax\\' + $index() }\"></div>\\r\\n \\r\\n <!-- ko if: checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source\" style=\"width:19%\" data-bind=\"attr: { id: \\'EmploymentIncomeChildren\\' + ($index() + 1) }, style: { clear: checkboxVisible ? \\'none\\' : \\'left\\' }\"><label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label></div>\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:16%; align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label data-bind=\"text: committed_Date(), style: { color: \\'grey\\'}\"></label>\\r\\n </div>\\r\\n\\r\\n <!-- /ko -->\\r\\n <!-- ko if: !checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source\" style=\"width:27%\" data-bind=\"attr: { id: \\'EmploymentIncomeChildren\\' + ($index() + 1) }, style: { clear: checkboxVisible ? \\'none\\' : \\'left\\' }\"><label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label></div>\\r\\n <!-- /ko -->\\r\\n\\r\\n <div class=\"information-request-div-child-status\" style=\"width:9%\" data-bind=\"attr: { id: \\'employmentChildStatus\\' + $index() }\"><select class=\"information-request-select\" data-bind=\"options: $root.statuses,value: status, event: $root.selectedChanged\"></select></div>\\r\\n <div class=\"information-request-div-child-amount\" style=\"width:11.7%\" data-bind=\"attr: { id: \\'employmentChildAmount\\' + $index() }, visible: !extrafields.keyValueStore.isFromHmrc\"><input type=\"text\" class=\"information-request-input-amount currencyAmount\" data-bind=\"value: extrafields.keyValueStore.currentYear\"></div>\\r\\n\\r\\n <!-- ko if: hasLastYearValue -->\\r\\n <div class=\"information-request-ma-nic-child\" style=\"width:10.5%\" data-bind=\"visible: extrafields.keyValueStore.isFromHmrc\">\\r\\n <label class=\"information-request-ma-nic-label currencyAmount\" style=\"color:#aaa\" data-bind=\"text: extrafields.keyValueStore.currentYear\"></label>\\r\\n <img src=\"/html/content/images/hmrc_icon_blue.png\" style=\"padding-left:10px;\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-ma-nic-child\" style=\"width:10%\">\\r\\n\\r\\n </div>\\r\\n <div class=\"information-request-div-child-readonly-amount\" style=\"width:10.5%\" data-bind=\"attr: { id: \\'employmentChildAmountReadonly\\' + $index() }\"><label class=\"information-request-p-child-last-year currencyAmount\" data-bind=\"text: lastyear\"></label></div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: !hasLastYearValue -->\\r\\n <div class=\"information-request-ma-nic-child\" style=\"width:11.7%\" data-bind=\"visible: extrafields.keyValueStore.isFromHmrc\">\\r\\n <label class=\"information-request-ma-nic-label currencyAmount\" style=\"color:#aaa\" data-bind=\"text: extrafields.keyValueStore.currentYear\"></label>\\r\\n <img src=\"/html/content/images/hmrc_icon_blue.png\" style=\"padding-left:10px;\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-ma-nic-child\" style=\"width:10%\">\\r\\n\\r\\n </div>\\r\\n <div class=\"information-request-div-child-readonly-amount\" style=\"width:10.5%\" data-bind=\"attr: { id: \\'employmentChildAmountReadonly\\' + $index() }\"><label class=\"information-request-p-child-last-year\">N/A</label></div>\\r\\n <!-- /ko -->\\r\\n\\r\\n <div class=\"information-request-div-child-items\" data-bind=\"attr: { id: \\'employmentChildAttachments\\' + $index() }\">\\r\\n\\r\\n <label class=\"information-request-p-number-items\" data-bind=\"click: $root.showAttachments.bind($root)\">\\r\\n <i class=\"fa fa-2x fa-paperclip\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: attachmentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\" data-bind=\"click: $root.showComments.bind($root), attr: { id: \\'employmentChilComments\\' + $index() }, visible: $root.displayMessageFeatureInDDR\">\\r\\n\\r\\n <label class=\"information-request-p-number-items\">\\r\\n <i class=\"fa fa-2x fa-comments\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: commentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:48%\"><label class=\"information-request-p-child-elipsis\">Tax deducted</label></div>\\r\\n <div class=\"information-request-div-child-amount\" data-bind=\"attr: { id: \\'employmentChildTaxDeducted\\' + $index() }, visible: !extrafields.keyValueStore.isFromHmrc\"><input type=\"text\" class=\"information-request-input-amount\" data-bind=\"value: extrafields.keyValueStore.taxDeducted\"></div>\\r\\n\\r\\n <div class=\"information-request-ma-nic-child\" style=\"width:10%\" data-bind=\"visible: extrafields.keyValueStore.isFromHmrc\">\\r\\n <label class=\"information-request-ma-nic-label currencyAmount\" style=\"color:#aaa\" data-bind=\"text: extrafields.keyValueStore.taxDeducted\"></label>\\r\\n <img src=\"/html/content/images/hmrc_icon_blue.png\" style=\"padding-left:10px;\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-ma-nic-child\" style=\"width:10%\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:48%\"><label class=\"information-request-p-child-elipsis\">PAYE Reference</label></div>\\r\\n <div class=\"information-request-div-child-amount\" data-bind=\"attr: { id: \\'employmentChilPayeReference\\' + $index() }, visible: !extrafields.keyValueStore.isFromHmrc\"><input type=\"text\" class=\"information-request-input-amount\" data-bind=\"value: extrafields.keyValueStore.cypayeReference\"></div>\\r\\n\\r\\n <div class=\"information-request-ma-nic-child\" style=\"width:10%\" data-bind=\"visible: extrafields.keyValueStore.isFromHmrc\">\\r\\n <label class=\"information-request-ma-nic-label\" style=\"color:#aaa\" data-bind=\"text: extrafields.keyValueStore.cypayeReference\"></label>\\r\\n <img src=\"/html/content/images/hmrc_icon_blue.png\" style=\"padding-left:10px;\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-ma-nic-child\" style=\"width:10%\">\\r\\n </div>\\r\\n <!-- ko if: hasLastYearValue -->\\r\\n <div class=\"information-request-div-child-readonly-amount\" style=\"width:10.5%\" data-bind=\"attr: { id: \\'employmentChilPayeReferenceReadonly\\' + $index() }\"><label class=\"information-request-p-child-last-year\" data-bind=\"text: extrafields.keyValueStore.payeReference\"></label></div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: !hasLastYearValue -->\\r\\n <div class=\"information-request-div-child-readonly-amount\" style=\"width:10.5%\" data-bind=\"attr: { id: \\'employmentChilPayeReferenceReadonly\\' + $index() }\"><label class=\"information-request-p-child-last-year\">N/A</label></div>\\r\\n <!-- /ko -->\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:47%\" data-bind=\"visible: extrafields.keyValueStore.isFromHmrc\"><label class=\"information-request-p-child-elipsis\">Employer name held by HMRC</label></div>\\r\\n\\r\\n <div class=\"information-request-ma-nic-child\" style=\"width:11%\" data-bind=\"visible: extrafields.keyValueStore.isFromHmrc\">\\r\\n <label class=\"information-request-ma-nic-label\" style=\"color:#aaa\" data-bind=\"text: name\"></label>\\r\\n <img src=\"/html/content/images/hmrc_icon_blue.png\" style=\"padding-left:10px;\" />\\r\\n </div>\\r\\n\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"NewSourceBody\">\\r\\n <div class=\"information-request-div-child-source\" data-bind=\"attr: { id: \\'newSourceChild\\' + $index() }\"><label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label></div>\\r\\n <div class=\"information-request-div-child-status\" data-bind=\"attr: { id: \\'newSourceChildStatus\\' + $index() }\" style=\"width:10%\"><select class=\"information-request-select\" data-bind=\"options: $root.statuses,value: status, event: $root.selectedChanged\"></select></div>\\r\\n <!--<div class=\"information-request-div-child-amount\"><label type=\"text\" class=\"information-request-input-amount\" style=\"\"></label></div>-->\\r\\n <div class=\"information-request-div-child-readonly-amount\" style=\"width:20%\" data-bind=\"attr: { id: \\'newSourceChildReadonly\\' + $index() }\"><label class=\"information-request-p-child-last-year\"></label></div>\\r\\n <div class=\"information-request-div-child-readonly-amount\"><label class=\"information-request-p-child-last-year\"></label></div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\" data-bind=\"attr: { id: \\'newSourceChildAttachments\\' + $index() }\" style=\"width:12%\">\\r\\n <label class=\"information-request-p-number-items\" data-bind=\"click: $root.showAttachments.bind($root)\">\\r\\n <i class=\"fa fa-2x fa-paperclip\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: attachmentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\" data-bind=\"click: $root.showComments.bind($root), attr: { id: \\'newSourceChildComments\\' + $index() }, visible: $root.displayMessageFeatureInDDR\">\\r\\n\\r\\n <label class=\"information-request-p-number-items\">\\r\\n <i class=\"fa fa-2x fa-comments\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: commentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n <div style=\"width:35%;padding-left:25px;\">\\r\\n <div data-bind=\"visible: !seeMore() && extrafields.keyValueStore.details, attr: { id: \\'newSourceChildSeeMore\\' + $index() }\" style=\"display:inline\">\\r\\n <div style=\"word-wrap:break-word;\">\\r\\n <label data-bind=\"text: shortDetails;\" class=\"information-request-p-child-elipsis-details\"></label>\\r\\n <span class=\"information-request-togle-text-details\" data-bind=\"click: $root.togleDetailsText, event:{mouseover: $root.mouseOverRoot, mouseout: $root.mouseOutRoot}, visible: togleDetails\">Show more</span>\\r\\n </div>\\r\\n </div>\\r\\n <div data-bind=\"visible: seeMore(), attr: { id: \\'newSourceChildSeeLess\\' + $index() }\" style=\"display:inline;\">\\r\\n <div style=\"word-wrap:break-word;\">\\r\\n <label data-bind=\"text: extrafields.keyValueStore.details\" class=\"information-request-p-child-elipsis-details\"></label>\\r\\n <span class=\"information-request-togle-text-details\" data-bind=\"click: $root.togleDetailsText, event:{mouseover: $root.mouseOverRoot, mouseout: $root.mouseOutRoot}, visible: togleDetails\">Show less</span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"AllowanceBody\">\\r\\n \\r\\n <div class=\"information-request-div-child-source\" data-bind=\"attr: { id: \\'AllowancesChildren\\' + ($index() + 1) }\"><label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label></div>\\r\\n <div class=\"information-request-div-child-status\" data-bind=\"attr: { id: \\'allowanceChildStatus\\' + $index() }\" style=\"width:10%\"><select class=\"information-request-select\" data-bind=\"options: $root.statuses,value: status, event: $root.selectedChanged\"></select></div>\\r\\n <div class=\"information-request-div-child-amount\" data-bind=\"attr: { id: \\'allowanceChildAmount\\' + $index() }\" style=\"width:11%\"><label class=\"information-request-input-amount-allowance\" data-bind=\"text: isAllowanceChangedDescription\"></label></div>\\r\\n <div class=\"information-request-div-child-readonly-amount\" data-bind=\"attr: { id: \\'allowanceChildReadonly\\' + $index() }\" style=\"width:23%\"><label class=\"information-request-p-child-last-year\"></label></div>\\r\\n <div class=\"information-request-div-child-items\">\\r\\n\\r\\n <label class=\"information-request-p-number-items\" data-bind=\"click: $root.showAttachments.bind($root)\">\\r\\n <i class=\"fa fa-2x fa-paperclip\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: attachmentsCount()\"></span>\\r\\n </label>\\r\\n\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\" data-bind=\"click: $root.showComments.bind($root), attr: { id: \\'allowanceChildComments\\' + $index() }, visible: $root.displayMessageFeatureInDDR\" style=\"width:11%; float:right;\">\\r\\n\\r\\n <label class=\"information-request-p-number-items\">\\r\\n <i class=\"fa fa-2x fa-comments\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: commentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"MarriageAllowanceBody\">\\r\\n <div class=\"information-request-div-child-source\" data-bind=\"attr: { id: \\'AllowancesChildren\\' + ($index() + 1) }\"><label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label></div>\\r\\n <div class=\"information-request-div-child-status\" data-bind=\"attr: { id: \\'marriageAllowanceSourceChildStatus\\' + $index() }\" style=\"width:10%\"><select class=\"information-request-select\" data-bind=\"options: $root.statuses,value: status, event: $root.selectedChanged\"></select></div>\\r\\n <div class=\"information-request-div-child-amount\" data-bind=\"attr: { id: \\'marriageAllowanceSourceChildAmount\\' + $index() }\" style=\"width:11%\"><label class=\"information-request-input-amount-allowance\" data-bind=\"text: isAllowanceChangedDescription\"></label></div>\\r\\n <div class=\"information-request-div-child-readonly-amount\" data-bind=\"attr: { id: \\'marriageAllowanceSourceChildAmountReadonly\\' + $index() }\" style=\"width:23%\"><label class=\"information-request-p-child-last-year\"></label></div>\\r\\n <div class=\"information-request-div-child-items\">\\r\\n\\r\\n <label class=\"information-request-p-number-items\" data-bind=\"click: $root.showAttachments.bind($root)\">\\r\\n <i class=\"fa fa-2x fa-paperclip\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: attachmentsCount()\"></span>\\r\\n </label>\\r\\n\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\" data-bind=\"click: $root.showComments.bind($root), attr: { id: \\'marriageAllowanceSourceChildComments\\' + $index() }, visible: $root.displayMessageFeatureInDDR\" style=\"width:11%; float:right;\">\\r\\n\\r\\n <label class=\"information-request-p-number-items\">\\r\\n <i class=\"fa fa-2x fa-comments\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: commentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"JointlyOwnedBody\">\\r\\n <div class=\"information-request-checkbox-div2\" data-bind=\"attr: { id: \\'defaultChildCheckbox\\' + $index() }, style: { display: checkboxVisible ? \\'inline\\' : \\'none\\' }\"><input type=\"checkbox\" class=\"information-request-checkbox\" data-bind=\"checked: isChecked, click: function() { $root.sourceSelected($data, $root.checkedSources, $root.enableCommitToTaxButton); return true; }, attr: { id: \\'commitToTaxDefault\\' + $index() }\"></div>\\r\\n \\r\\n <!-- ko if: checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source\" style=\"width:11.2%\" data-bind=\"attr: { id: \\'defaultChild\\' + $index() }, style: { clear: checkboxVisible ? \\'none\\' : \\'left\\' }\"><label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label></div>\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:10%; align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label data-bind=\"text: committed_Date(), style: { color: \\'grey\\'}\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-status\"\\r\\n style=\"width:18%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildStatus\\' + $index() }\">\\r\\n <select class=\"information-request-select\"\\r\\n data-bind=\"options: $root.statuses,value: status, event: $root.selectedChanged\"></select>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:5.5%;align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <input type=\"checkbox\" data-bind=\"checked: isJointlyOwned, enable: false\"><br>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:10.5%; align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label data-bind=\"text: jointShare, style: { color: \\'grey\\'}\" style=\"width:0.1%\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n style=\"width:8%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmount\\' + $index() }\">\\r\\n <input type=\"text\"\\r\\n class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: extrafields.keyValueStore.currentYear, attr: { id: \\'defaultChildAmount\\' + $index() }\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:10%;\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label class=\"information-request-p-child-last-year currencyAmount\" data-bind=\"text: lastyear\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\"\\r\\n style=\"width:15%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAttachments\\' + $index() }\">\\r\\n <label class=\"information-request-p-number-items\" data-bind=\"click: $root.showAttachments.bind($root)\">\\r\\n <i class=\"fa fa-2x fa-paperclip\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: attachmentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\"\\r\\n style=\"width:9.5%\"\\r\\n data-bind=\"click: $root.showComments.bind($root), attr: { id: \\'defaultChildComments\\' + $index() }, visible: $root.displayMessageFeatureInDDR\">\\r\\n <label class=\"information-request-p-number-items\">\\r\\n <i class=\"fa fa-2x fa-comments\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: commentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n <!-- ko if: isTaxDeductionVisible -->\\r\\n <div class=\"information-request-div-child-source-taxdeducted\"\\r\\n style=\"width:55.5%\">\\r\\n <label class=\"information-request-p-child-elipsis\">Tax deducted</label>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- /ko -->\\r\\n <!-- ko if: !checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source\" style=\"width:16%\" data-bind=\"attr: { id: \\'defaultChild\\' + $index() }, style: { clear: checkboxVisible ? \\'none\\' : \\'left\\' }\"><label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label></div>\\r\\n\\r\\n <div class=\"information-request-div-child-status\"\\r\\n style=\"width:13%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildStatus\\' + $index() }\">\\r\\n <select class=\"information-request-select\"\\r\\n data-bind=\"options: $root.statuses,value: status, event: $root.selectedChanged\"></select>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:10%;align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <input type=\"checkbox\" data-bind=\"checked: isJointlyOwned, enable: false\"><br>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:10%; align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label data-bind=\"text: jointShare, style: { color: \\'grey\\'}\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n style=\"width:6.3%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmount\\' + $index() }\">\\r\\n <input type=\"text\"\\r\\n class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: extrafields.keyValueStore.currentYear, attr: { id: \\'defaultChildAmount\\' + $index() }\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:10%;\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label class=\"information-request-p-child-last-year currencyAmount\" data-bind=\"text: lastyear\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\"\\r\\n style=\"width:15%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAttachments\\' + $index() }\">\\r\\n <label class=\"information-request-p-number-items\" data-bind=\"click: $root.showAttachments.bind($root)\">\\r\\n <i class=\"fa fa-2x fa-paperclip\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: attachmentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\"\\r\\n style=\"width:10%\"\\r\\n data-bind=\"click: $root.showComments.bind($root), attr: { id: \\'defaultChildComments\\' + $index() }, visible: $root.displayMessageFeatureInDDR\">\\r\\n <label class=\"information-request-p-number-items\">\\r\\n <i class=\"fa fa-2x fa-comments\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: commentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n <!-- ko if: isTaxDeductionVisible -->\\r\\n <div class=\"information-request-div-child-source-taxdeducted\"\\r\\n style=\"width:45.3%\">\\r\\n <label class=\"information-request-p-child-elipsis\">Tax deducted</label>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- /ko -->\\r\\n <!-- ko if: isTaxDeductionVisible -->\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: extrafields.keyValueStore.taxDeducted\">\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"JointlyOwnedForeignIncomeBody\">\\r\\n <div class=\"information-request-checkbox-div2\" data-bind=\"attr: { id: \\'defaultChildCheckbox\\' + $index() }, style: { display: checkboxVisible ? \\'inline\\' : \\'none\\' }\"><input type=\"checkbox\" class=\"information-request-checkbox\" data-bind=\"checked: isChecked, click: function() { $root.sourceSelected($data, $root.checkedSources, $root.enableCommitToTaxButton); return true; }, attr: { id: \\'commitToTaxDefault\\' + $index() }\"></div>\\r\\n <!-- ko if: checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source\" style=\"width:8%\" data-bind=\"attr: { id: \\'defaultChild\\' + $index() }, style: { clear: checkboxVisible ? \\'none\\' : \\'left\\' }\"><label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label></div>\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:16%; align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label data-bind=\"text: committed_Date(), style: { color: \\'grey\\'}\"></label>\\r\\n </div>\\r\\n\\r\\n <!-- /ko -->\\r\\n <!-- ko if: !checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source\" style=\"width:16%\" data-bind=\"attr: { id: \\'defaultChild\\' + $index() }, style: { clear: checkboxVisible ? \\'none\\' : \\'left\\' }\"><label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label></div>\\r\\n <!-- /ko -->\\r\\n\\r\\n <div class=\"information-request-div-child-status\"\\r\\n style=\"width:13%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildStatus\\' + $index() }\">\\r\\n <select class=\"information-request-select\"\\r\\n data-bind=\"options: $root.statuses,value: status, event: $root.selectedChanged\"></select>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:10%;align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <input type=\"checkbox\" data-bind=\"checked: isJointlyOwned, enable: false\"><br>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:10%; align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label data-bind=\"text: jointShare, style: { color: \\'grey\\'}\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:5.7%; align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label data-bind=\"text: foreignCurrency, style: { color: \\'grey\\'}\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n style=\"width:7.8%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmount\\' + $index() }\">\\r\\n <input type=\"text\"\\r\\n class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: extrafields.keyValueStore.currentYear, attr: { id: \\'defaultChildAmount\\' + $index() }\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:10%;\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label class=\"information-request-p-child-last-year currencyAmount\" data-bind=\"text: lastyear\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\"\\r\\n style=\"width:16%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAttachments\\' + $index() }\">\\r\\n <label class=\"information-request-p-number-items\" data-bind=\"click: $root.showAttachments.bind($root)\">\\r\\n <i class=\"fa fa-2x fa-paperclip\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: attachmentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\"\\r\\n style=\"width:5.5%\"\\r\\n data-bind=\"click: $root.showComments.bind($root), attr: { id: \\'defaultChildComments\\' + $index() }, visible: $root.displayMessageFeatureInDDR\">\\r\\n <label class=\"information-request-p-number-items\">\\r\\n <i class=\"fa fa-2x fa-comments\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: commentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <!-- ko if: checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source-taxdeducted\"\\r\\n style=\"width:62.5%\">\\r\\n <label class=\"information-request-p-child-elipsis\">Tax deducted</label>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: !checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source-taxdeducted\"\\r\\n style=\"width:52.5%\">\\r\\n <label class=\"information-request-p-child-elipsis\">Tax deducted</label>\\r\\n </div><!-- /ko -->\\r\\n\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: extrafields.keyValueStore.taxDeducted\">\\r\\n </div>\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"ForeignIncomeBody\">\\r\\n <div class=\"information-request-checkbox-div2\" data-bind=\"attr: { id: \\'defaultChildCheckbox\\' + $index() }, style: { display: checkboxVisible ? \\'inline\\' : \\'none\\' }\"><input type=\"checkbox\" class=\"information-request-checkbox\" data-bind=\"checked: isChecked, click: function() { $root.sourceSelected($data, $root.checkedSources, $root.enableCommitToTaxButton); return true; }, attr: { id: \\'commitToTaxDefault\\' + $index() }\"></div>\\r\\n \\r\\n <!-- ko if: checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source\" style=\"width:13.3%\" data-bind=\"attr: { id: \\'defaultChild\\' + $index() }, style: { clear: checkboxVisible ? \\'none\\' : \\'left\\' }\"><label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label></div>\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:14.7%; align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label data-bind=\"text: committed_Date(), style: { color: \\'grey\\'}\"></label>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: !checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source\" style=\"width:20%\" data-bind=\"attr: { id: \\'defaultChild\\' + $index() }, style: { clear: checkboxVisible ? \\'none\\' : \\'left\\' }\"><label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label></div>\\r\\n <!-- /ko -->\\r\\n\\r\\n <div class=\"information-request-div-child-status\"\\r\\n style=\"width:13%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildStatus\\' + $index() }\">\\r\\n <select class=\"information-request-select\"\\r\\n data-bind=\"options: $root.statuses,value: status, event: $root.selectedChanged\"></select>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:11%; align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label data-bind=\"text: foreignCurrency, style: { color: \\'grey\\'}\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n style=\"width:6%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmount\\' + $index() }\">\\r\\n <input type=\"text\"\\r\\n class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: extrafields.keyValueStore.currentYear, attr: { id: \\'defaultChildAmount\\' + $index() }\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:12.4%;\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label class=\"information-request-p-child-last-year currencyAmount\" data-bind=\"text: lastyear\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\"\\r\\n style=\"width:19%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAttachments\\' + $index() }\">\\r\\n <label class=\"information-request-p-number-items\" data-bind=\"click: $root.showAttachments.bind($root)\">\\r\\n <i class=\"fa fa-2x fa-paperclip\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: attachmentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\"\\r\\n style=\"width:5.5%\"\\r\\n data-bind=\"click: $root.showComments.bind($root), attr: { id: \\'defaultChildComments\\' + $index() }, visible: $root.displayMessageFeatureInDDR\">\\r\\n <label class=\"information-request-p-number-items\">\\r\\n <i class=\"fa fa-2x fa-comments\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: commentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n\\r\\n <!-- ko if: checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source-taxdeducted\"\\r\\n style=\"width:50.3%\">\\r\\n <label class=\"information-request-p-child-elipsis\">Tax deducted</label>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: !checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source-taxdeducted\"\\r\\n style=\"width:40%\">\\r\\n <label class=\"information-request-p-child-elipsis\">Tax deducted</label>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: extrafields.keyValueStore.taxDeducted\">\\r\\n </div>\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"LandAndPropertyBody\">\\r\\n <div class=\"information-request-checkbox-div2\" data-bind=\"attr: { id: \\'defaultChildCheckbox\\' + $index() }, style: { display: checkboxVisible ? \\'inline\\' : \\'none\\' }\"><input type=\"checkbox\" class=\"information-request-checkbox\" data-bind=\"checked: isChecked, click: function() { $root.sourceSelected($data, $root.checkedSources, $root.enableCommitToTaxButton); return true; }, attr: { id: \\'commitToTaxDefault\\' + $index() }\"></div>\\r\\n \\r\\n <!-- ko if: checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source\" style=\"width:11.5%\" data-bind=\"attr: { id: \\'defaultChild\\' + $index() }, style: { clear: checkboxVisible ? \\'none\\' : \\'left\\' }\"><label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label></div>\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:10%; align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label data-bind=\"text: committed_Date(), style: { color: \\'grey\\'}\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-status\"\\r\\n style=\"width:13%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildStatus\\' + $index() }\">\\r\\n <select class=\"information-request-select\"\\r\\n data-bind=\"options: $root.statuses,value: status, event: $root.selectedChanged\"></select>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:5%;align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <input type=\"checkbox\" data-bind=\"checked: isJointlyOwned, enable: false\"><br>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:11%; align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label data-bind=\"text: jointShare, style: { color: \\'grey\\'}\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:4.5%; align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label data-bind=\"text: foreignCurrency, style: { color: \\'grey\\'}\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n style=\"width:8.3%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmount\\' + $index() }\">\\r\\n <label type=\"text\" style=\"width:100%; text-align:right; color:grey; margin-top:6px;\"\\r\\n data-bind=\"text: SumNetIncome()\"></label>\\r\\n </div>\\r\\n\\r\\n <button class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"color:#007ac3; width:7%; font-size:8pt; text-align:left; background: transparent; border: none;\"\\r\\n data-bind=\"text: viewBreakdown() ? \\'Hide Breakdown\\' : \\'View Breakdown\\', click: $root.setViewBreakdown\"></button>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:1%;\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label class=\"information-request-p-child-last-year currencyAmount\" data-bind=\"text: lastyear\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\"\\r\\n style=\"width:15%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAttachments\\' + $index() }\">\\r\\n <label class=\"information-request-p-number-items\" data-bind=\"click: $root.showAttachments.bind($root)\">\\r\\n <i class=\"fa fa-2x fa-paperclip\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: attachmentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\"\\r\\n style=\"width:5%\"\\r\\n data-bind=\"click: $root.showComments.bind($root), attr: { id: \\'defaultChildComments\\' + $index() }, visible: $root.displayMessageFeatureInDDR\">\\r\\n <label class=\"information-request-p-number-items\">\\r\\n <i class=\"fa fa-2x fa-comments\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: commentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: !checkboxVisible -->\\r\\n <div class=\"information-request-div-child-source\" style=\"width:16%\" data-bind=\"attr: { id: \\'defaultChild\\' + $index() }, style: { clear: checkboxVisible ? \\'none\\' : \\'left\\' }\"><label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label></div>\\r\\n\\r\\n <div class=\"information-request-div-child-status\"\\r\\n style=\"width:13%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildStatus\\' + $index() }\">\\r\\n <select class=\"information-request-select\"\\r\\n data-bind=\"options: $root.statuses,value: status, event: $root.selectedChanged\"></select>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:10%;align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <input type=\"checkbox\" data-bind=\"checked: isJointlyOwned, enable: false\"><br>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:6%; align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label data-bind=\"text: jointShare, style: { color: \\'grey\\'}\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:10%; align-items: center; display: flex;justify-content: center\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label data-bind=\"text: foreignCurrency, style: { color: \\'grey\\'}\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n style=\"width:5.5%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmount\\' + $index() }\">\\r\\n <label type=\"text\" style=\"width:100%; text-align:right; color:grey; margin-top:6px;\"\\r\\n data-bind=\"text: SumNetIncome()\"></label>\\r\\n </div>\\r\\n\\r\\n <button class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"color:#007ac3; width:7%; font-size:8pt; text-align:left; background: transparent; border: none;\"\\r\\n data-bind=\"text: viewBreakdown() ? \\'Hide Breakdown\\' : \\'View Breakdown\\', click: $root.setViewBreakdown\"></button>\\r\\n\\r\\n <div class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"width:8%;\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAmountReadonly\\' + $index() }\">\\r\\n <label class=\"information-request-p-child-last-year currencyAmount\" data-bind=\"text: lastyear\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\"\\r\\n style=\"width:18%\"\\r\\n data-bind=\"attr: { id: \\'defaultChildAttachments\\' + $index() }\">\\r\\n <label class=\"information-request-p-number-items\" data-bind=\"click: $root.showAttachments.bind($root)\">\\r\\n <i class=\"fa fa-2x fa-paperclip\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: attachmentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-items\"\\r\\n style=\"width:5%\"\\r\\n data-bind=\"click: $root.showComments.bind($root), attr: { id: \\'defaultChildComments\\' + $index() }, visible: $root.displayMessageFeatureInDDR\">\\r\\n <label class=\"information-request-p-number-items\">\\r\\n <i class=\"fa fa-2x fa-comments\" style=\"color:#007AC3;float:left\"></i>\\r\\n <span data-bind=\"text: commentsCount()\"></span>\\r\\n </label>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n\\r\\n <div data-bind=\"style: { display: viewBreakdown() ? \\'inline\\' : \\'none\\' }\">\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\" style=\"font-weight: bold\">Income from property:</label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\">Rental Income:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: RentalIncome, valueUpdate: \\'afterkeydown\\'\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\">Other Income:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: OtherIncome, valueUpdate: \\'afterkeydown\\'\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\" style=\"font-weight: bold\">Total income from property:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <label type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"text: SumIncomeFromProperty()\"></label>\\r\\n </div>\\r\\n\\r\\n <hr style=\"border: 0;clear:both;display:block;width: 96%;height: 1px;\" />\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\" style=\"font-weight: bold\">Expenses from property:</label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\">Council tax:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: CouncilTax, valueUpdate: \\'afterkeydown\\'\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\">Repairs and maintenance:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: Repairs, valueUpdate: \\'afterkeydown\\'\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\">Water rates:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: WaterRates, valueUpdate: \\'afterkeydown\\'\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\">Insurance:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: Insurance, valueUpdate: \\'afterkeydown\\'\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\">Ground rent:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: GroundRent, valueUpdate: \\'afterkeydown\\'\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\">Costs of services provided:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: CostsOfServicesProvided, valueUpdate: \\'afterkeydown\\'\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\">Wages:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: Wages, valueUpdate: \\'afterkeydown\\'\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\" data-bind=\"visible: !$root.isMortgageRepostion\">\\r\\n <label class=\"information-request-p-child-elipsis\">Mortage interest:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"visible: !$root.isMortgageRepostion, attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: MortgageInterest, valueUpdate: \\'afterkeydown\\'\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\">Legal fees:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: LegalFees, valueUpdate: \\'afterkeydown\\'\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\">Management/Agency fees:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: ManagementFees, valueUpdate: \\'afterkeydown\\'\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\">Other property expenses:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: OtherPropertyExpenses, valueUpdate: \\'afterkeydown\\'\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\">Other professional costs:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: OtherProfessionalCosts, valueUpdate: \\'afterkeydown\\'\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\">Other financial costs:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: OtherFinancialCosts, valueUpdate: \\'afterkeydown\\'\">\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\" style=\"font-weight: bold\">Total expenses from property:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <label type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"text: SumExpensesFromProperty()\"></label>\\r\\n </div>\\r\\n\\r\\n <hr style=\"border: 0;clear:both;display:block;width: 96%;height: 1px;\" />\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\">\\r\\n <label class=\"information-request-p-child-elipsis\" style=\"font-weight: bold\">Total net income:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <label type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"text: SumNetIncome()\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source-taxdeducted\" style=\"width:26%;\" data-bind=\"visible: $root.isMortgageRepostion\">\\r\\n <label class=\"information-request-p-child-elipsis\">Mortage interest:</label>\\r\\n </div>\\r\\n <div class=\"information-request-div-child-amount\"\\r\\n data-bind=\"visible: $root.isMortgageRepostion, attr: { id: \\'defaultChildTaxDeducted\\' + $index() }\"\\r\\n style=\"width:10%;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount currencyAmount\"\\r\\n data-bind=\"value: MortgageInterest, valueUpdate: \\'afterkeydown\\'\">\\r\\n </div>\\r\\n\\r\\n <hr style=\"border: 0;clear:both;display:block;width: 96%;height: 1px;\" />\\r\\n\\r\\n <button class=\"information-request-div-child-readonly-amount\"\\r\\n style=\"color:#007ac3; width:15%; font-size:11pt; text-align:left; background: transparent; border: none; text-decoration:underline; padding-left:25px\"\\r\\n data-bind=\"text: viewBreakdown() ? \\'Hide Breakdown\\' : \\'View Breakdown\\', click: $root.setViewBreakdown\"></button>\\r\\n\\r\\n <hr style=\"border: 0;clear:both;display:block;width: 96%;height: 1px;\" />\\r\\n </div>\\r\\n</script>\\r\\n';});\n\n", "\ndefine('text!areas/informationrequest/views/hmrcAPIInfo.html',[],function () { return '<div data-bind=\"foreach: sections\">\\r\\n <div data-bind=\"visible: !expanded(),\">\\r\\n <div class=\"information-request-div-root-blue\" data-bind=\"attr: { id: extraFieldsType }\">\\r\\n <p data-bind=\"visible: !expanded() && showChevron,click: $root.rootClicked.bind($root), event:{mouseover: $root.mouseOverRoot, mouseout: $root.mouseOutRoot}\" class=\"information-request-chevron\"><i class=\"fa fa-chevron-right\" style=\"color:#007AC3;\"></i><p>\\r\\n <p class=\"information-request-root-p\">\\r\\n <label data-bind=\"click: $root.rootClicked.bind($root), event:{mouseover: $root.mouseOverRoot, mouseout: $root.mouseOutRoot},text: name\" class=\"information-request-parent-section-header\"></label>\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#e74c3c; margin-left:2px; transform: translate(0,18%);\"\\r\\n data-bind=\"click: $root.errorClicked.bind($root),visible: hasHMRCAPIError\"></i>\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#2ecc71; margin-left:2px; transform: translate(0,18%);\"\\r\\n data-bind=\"click: $root.errorClicked.bind($root),visible: hasHMRCAPI404Error\"></i>\\r\\n <img src=\"/html/content/images/hmrc_icon_blue.png\" style=\"padding-left:10px;\" data-bind=\"visible: isFromHmrc()\" />\\r\\n </p>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div data-bind=\"visible: expanded()\">\\r\\n <div class=\"information-request-div-root-blue\" style=\"background-image: linear-gradient(0deg, #2F579F 2%, #0988CB 100%);border: 1px solid #007FC9;\" data-bind=\"attr: { id: extraFieldsType }\">\\r\\n <p data-bind=\"visible: expanded() && showChevron,click: $root.rootClicked.bind($root), event:{mouseover: $root.mouseOverRoot, mouseout: $root.mouseOutRoot}\" class=\"information-request-chevron\"><i class=\"fa fa-chevron-down\"></i><p>\\r\\n <p class=\"information-request-root-p\">\\r\\n <label data-bind=\"click: $root.rootClicked.bind($root), event:{mouseover: $root.mouseOverRoot, mouseout: $root.mouseOutRoot},text: name\" class=\"information-request-parent-section-header\" style=\"color:#fff\"></label>\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#e74c3c; margin-left:2px; transform: translate(0,18%);\"\\r\\n data-bind=\"click: $root.errorClicked.bind($root),visible: hasHMRCAPIError\"></i>\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#2ecc71; margin-left:2px; transform: translate(0,18%);\"\\r\\n data-bind=\"click: $root.errorClicked.bind($root),visible: hasHMRCAPI404Error\"></i>\\r\\n <img src=\"/html/content/images/hmrc_icon_blue.png\" style=\"padding-left:10px;\" data-bind=\"visible: isFromHmrc()\" />\\r\\n </p>\\r\\n </div>\\r\\n <div data-bind=\"visible: expanded()\" style=\"\">\\r\\n <div class=\"information-request-div-child-header\" style=\"padding-left:20px\" data-bind=\"visible: children.length>0, template:{name:\\'default-header\\'}\">\\r\\n </div>\\r\\n <div data-bind=\"foreach: children\" style=\"padding-left:20px\">\\r\\n <div class=\"information-request-div-child-level1-gray\" data-bind=\"visible: isVisible, template:{name: \\'default-body\\'}\" style=\"background:#fff\">\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<!-- Confirm dialog to show error toasts -->\\r\\n<div id=\"dialogInfoId\" class=\"modal\" data-backdrop=\"static\" data-keyboard=\"false\">\\r\\n <div class=\"modal-dialog\" style=\"padding-top: 15% !important;\">\\r\\n <div class=\"modal-content\">\\r\\n <div class=\"modal-header\">\\r\\n <button type=\"button\" class=\"close information-request-close\" data-bind=\"click: $root.closeInfoDialog\">×</button>\\r\\n </div>\\r\\n <div class=\"modal-body\">\\r\\n <div class=\"information-request-confirmation-message col-xs-12\" style=\"text-align: start; padding-bottom:20px;\">\\r\\n <label class=\"col-xs-11\" data-bind=\"text: informationText\" style=\"display: inline; padding-left:5px;\"></label>\\r\\n </div>\\r\\n <div>\\r\\n <img src=\"/html/content/images/hmrc_infoRequest.PNG\" alt=\"lock\" id=\"MarriageAllowanceHMRCPicture1\" class=\"information-request-hmrc-info\" data-bind=\"visible: $root.infoStep == \\'1\\' && $root.showMaImages\" style=\"border:solid 1px #007AC3\" />\\r\\n <img src=\"/html/content/images/hmrc_infoTour.PNG\" alt=\"lock\" id=\"MarriageAllowanceHMRCPicture2\" class=\"information-request-hmrc-info\" data-bind=\"visible: $root.infoStep == \\'2\\' && $root.showMaImages\" style=\"border:solid 1px #007AC3\" />\\r\\n </div>\\r\\n\\r\\n <div>\\r\\n <img src=\"/html/content/images/nic_hmrc_this_year.png\" alt=\"lock\" id=\"NicHMRCPicture1\" class=\"information-request-hmrc-info\" data-bind=\"visible: $root.infoStep == \\'1\\' && $root.showNicImages\" style=\"border:solid 1px #007AC3\" />\\r\\n <img src=\"/html/content/images/nic_hmrc_values.png\" alt=\"lock\" id=\"NicHMRCPicture2\" class=\"information-request-hmrc-info\" data-bind=\"visible: $root.infoStep == \\'2\\' && $root.showNicImages\" style=\"border:solid 1px #007AC3\" />\\r\\n </div>\\r\\n <div style=\"text-align:end;\">\\r\\n <button type=\"button\" class=\"information-request-confirmation-button\" id=\"HmrcInfoButtonPrevious\" data-bind=\"click: $root.doPrevious, disable: $root.infoStep == \\'1\\'\"><</button>\\r\\n <button type=\"button\" class=\"information-request-confirmation-button\" id=\"HmrcInfoButtonNext\" data-bind=\"click: $root.doNext, disable: $root.infoStep == \\'2\\'\">></button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<!-- Templates -->\\r\\n<script type=\"text/html\" id=\"default-header\">\\r\\n <div class=\"information-request-div-header-source\"><label class=\"information-request-p-header\" style=\"margin-left:10px;\" data-bind=\"attr: { id: nameId + \\'Source\\'}\">Source</label></div>\\r\\n <div class=\"information-request-div-header-status\" style=\"width:13%\"><label class=\"information-request-p-header-center\"></label></div>\\r\\n <div class=\"information-request-div-header-amount\"><label class=\"information-request-p-header-amount\" data-bind=\"text: $root.currentYearHeader, attr: { id: nameId + \\'CurrentYearHeader\\'}\" style=\"font-size:10pt;\"></label></div>\\r\\n <div class=\"information-request-div-header-amount\">\\r\\n <label class=\"information-request-p-header-amount\" style=\"font-size:10pt;\" data-bind=\"attr: { id: nameId + \\'HMRC\\'}\">HMRC</label>\\r\\n <i class=\"fa fa-info-circle fa-lg\" aria-hidden=\"true\" style=\"color:#007AC3;padding-left:10px; cursor:pointer;\"\\r\\n data-bind=\"click: $root.showInformation.bind($root), attr: { id: nameId + \\'HMRCinfo\\'}\"></i>\\r\\n </div>\\r\\n</script>\\r\\n\\r\\n<script type=\"text/html\" id=\"default-body\">\\r\\n <div class=\"information-request-div-child-source\">\\r\\n <label class=\"information-request-p-child-elipsis\" data-bind=\"text: name\"></label>\\r\\n </div>\\r\\n <div class=\"information-request-ma-nic-child\" style=\"width:23.5%\">\\r\\n <label class=\"information-request-ma-nic-label currencyAmount\" style=\"display:inline\" data-bind=\"visible: isAmountNic, text:thisyear\"></label>\\r\\n <label class=\"information-request-ma-nic-label\" style=\"\" data-bind=\"visible: hasHmrcIcon && !isAmountNic, text: thisyear\"></label>\\r\\n <label class=\"information-request-ma-nic-label\" style=\"transform:translate(0,0);\" data-bind=\"visible: !hasHmrcIcon, text: thisyear\"></label>\\r\\n <img src=\"/html/content/images/hmrc_icon_blue.png\" style=\"padding-left:10px;\" data-bind=\"visible:hasHmrcIcon, attr: { id: \\'HMRCIcon\\' + $index()}\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-ma-nic-child\" style=\"width:10%\">\\r\\n <label class=\"information-request-ma-nic-label currencyAmount\" style=\"display:inline\" data-bind=\"visible: hashmrcvalue && isAmountNic, text:lasthmrcvalue\"></label>\\r\\n <label class=\"information-request-ma-nic-label\" style=\"\" data-bind=\"visible: hashmrcvalue && !isAmountNic, text: lasthmrcvalue\"></label>\\r\\n <img src=\"/html/content/images/hmrc_icon_blue.png\" style=\"padding-left:10px;\" data-bind=\"visible:hashmrcvalue, attr: { id: \\'RefreshApiHMRCIcon\\' + $index()}\" />\\r\\n </div>\\r\\n\\r\\n <!-- ko if: hasSpouse -->\\r\\n <div class=\"information-request-div-child-source\"><label class=\"information-request-p-child-elipsis\" data-bind=\"\">Details</label></div>\\r\\n <div class=\"information-request-div-child-amount\" style=\"padding-right:0px;padding-bottom:18px;\"></div>\\r\\n\\r\\n <div class=\"information-request-div-child-source\"><label class=\"information-request-p-child-elipsis\" data-bind=\"\" style=\"padding-left:40px\">Forename</label></div>\\r\\n <label class=\"information-request-ma-spouse-details\" style=\"display:inline;padding-right:30px\" data-bind=\"text:spouseInfo.spouseFName\"></label>\\r\\n <div class=\"information-request-div-child-amount\" style=\"padding-right:0px;padding-bottom:18px;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount\" data-bind=\"value:newSpouseInfo.spouseFName, click: $root.togleWarningFname.bind($root), event: {blur: $root.validateSpouseForname.bind($root)}\" style=\"font-family:FiraSans-Book\">\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#e74c3c;padding-left:4px;padding-top:2px;\" data-bind=\"visible: hasWarningMissingFName\" id=\"MissingFNameWarning\" title=\"Forename is missing\"></i>\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#e74c3c;padding-left:4px;padding-top:2px;\" data-bind=\"visible: hasWarningInvalidFname\" id=\"InvalidFNameWarning\" title=\"Forename cannot contain numbers\"></i>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div class=\"information-request-div-child-source\"><label class=\"information-request-p-child-elipsis\" data-bind=\"\" style=\"padding-left:40px\">Surname</label></div>\\r\\n <label class=\"information-request-ma-spouse-details\" style=\"display:inline;padding-right:30px\" data-bind=\"text:spouseInfo.spouseSurname\"></label>\\r\\n <div class=\"information-request-div-child-amount\" style=\"padding-right:0px;padding-bottom:18px;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount\" data-bind=\"value:newSpouseInfo.spouseSurname, click: $root.togleWarningSurNme.bind($root), event: {blur: $root.validateSpouseSurname.bind($root)}\" style=\"font-family:FiraSans-Book\">\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#e74c3c;padding-left:4px;padding-top:2px;\" data-bind=\"visible: hasWarningMissingSurName\" id=\"MissingSurNameWarning\" title=\"Surname is missing\"></i>\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#e74c3c;padding-left:4px;padding-top:2px;\" data-bind=\"visible: hasWarningInvalidSurname\" id=\"InvalidSurNameWarning\" title=\"Surname cannot contain numbers\"></i>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source\"><label class=\"information-request-p-child-elipsis\" data-bind=\"\" style=\"padding-left:40px\">NI No.</label></div>\\r\\n <label class=\"information-request-ma-spouse-details\" style=\"display:inline;padding-right:30px\" data-bind=\"text:spouseInfo.spouseNINO\"></label>\\r\\n <div class=\"information-request-div-child-amount\" style=\"padding-right:0px;padding-bottom:18px;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount\" data-bind=\"value:newSpouseInfo.spouseNINO, click: $root.togleWarningNINO.bind($root), event: {blur: $root.validateSpouseNINO.bind($root)}\" style=\"font-family:FiraSans-Book\">\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#e74c3c;padding-left:4px;padding-top:2px;\" data-bind=\"visible: hasWarningMissingNINO\" id=\"MissingNINOWarning\" title=\"NI No. is missing\"></i>\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#e74c3c;padding-left:4px;padding-top:2px;\" data-bind=\"visible: hasWarningInvalidNINO\" id=\"InvalidNINOWarning\" title=\"NI No. is invalid\"></i>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source\"><label class=\"information-request-p-child-elipsis\" data-bind=\"\" style=\"padding-left:40px\">D.O.B</label></div>\\r\\n <label class=\"information-request-ma-spouse-details\" style=\"display:inline;padding-right:30px\" data-bind=\"text:spouseInfo.spouseDOB\"></label>\\r\\n <div class=\"information-request-div-child-amount\" style=\"padding-right:0px;padding-bottom:18px;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount\" id=\"spouseDob\" data-date-format=\\'dd-mm-yy\\' data-bind=\"value:newSpouseInfo.spouseDOB, click: $root.togleWarningdob.bind($root), event: {blur: $root.validateSpouseDob.bind($root)}\" style=\"font-family:FiraSans-Book\">\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#e74c3c;padding-left:4px;padding-top:2px;\" data-bind=\"visible: hasWarningMissingdob\" id=\"MissingDobWarning\" title=\"Date of birth is missing\"></i>\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#e74c3c;padding-left:4px;padding-top:2px;\" data-bind=\"visible: hasWarningInvalidDob\" id=\"InvalidDobWarning\" title=\"Date of birth cannot be in the future\"></i>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source\"><label class=\"information-request-p-child-elipsis\" data-bind=\"\" style=\"padding-left:40px\">Married</label></div>\\r\\n <label class=\"information-request-ma-spouse-details\" style=\"display:inline;padding-right:30px\" data-bind=\"text: spouseInfo.dom\"></label>\\r\\n <div class=\"information-request-div-child-amount\" style=\"padding-right:0px;padding-bottom:18px;\">\\r\\n <input type=\"text\" class=\"information-request-input-amount\" id=\"spouseDom\" data-date-format=\\'dd-mm-yy\\' data-bind=\"value: newSpouseInfo.dom, click: $root.togleWarningdom.bind($root), event: {blur: $root.validateSpouseDom.bind($root)}\" style=\"font-family:FiraSans-Book\">\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#e74c3c;padding-left:4px;padding-top:2px;\" data-bind=\"visible: hasWarningMissingdom\" id=\"MissingDomWarning\" title=\"Date of marriage is missing\"></i>\\r\\n <i class=\"fa fa-exclamation-triangle\" aria-hidden=\"true\" style=\"color:#e74c3c;padding-left:4px;padding-top:2px;\" data-bind=\"visible: hasWarningInvalidDom\" id=\"InvalidDomWarning\" title=\"Date of marriage cannot be before date of birth\"></i>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n</script>';});\n\n", "\ndefine('text!areas/informationrequest/views/hmrcInfoDetails.html',[],function () { return '\\r\\n<div class=\"information-request-body\">\\r\\n <div style=\"margin:10px\">\\r\\n <header class=\"information-request-upper-header\">\\r\\n <div class=\"information-request-upper-header_name\">\\r\\n <i class=\"fa fa-3x fa-user\" style=\"color:#007AC3\"></i>\\r\\n <p class=\"information-request-upper-header_name_cell\" data-bind=\"text: clientInfo.ClientName\"></p>\\r\\n </div>\\r\\n <div class=\"information-request-upper-header_col\">\\r\\n <div class=\"col-xs-12\">\\r\\n <p class=\"information-request-upper-header_col_desc\">UTR:</p>\\r\\n <p class=\"information-request-upper-header_col_desc-blue\" data-bind=\"text: clientInfo.UTR\"></p>\\r\\n </div>\\r\\n <div class=\"col-xs-12\" style=\"padding-top:10px\">\\r\\n <p class=\"information-request-upper-header_col_desc\">NINO:</p>\\r\\n <p class=\"information-request-upper-header_col_desc-blue\" data-bind=\"text: clientInfo.NINO\"></p>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"information-request-upper-header_col\">\\r\\n <div class=\"col-xs-12\">\\r\\n <p class=\"information-request-upper-header_col_desc\"> Tax Year:</p>\\r\\n <p class=\"information-request-upper-header_col_desc-green\" data-bind=\"text: clientInfo.TaxYear\"></p>\\r\\n </div>\\r\\n\\r\\n <div class=\"col-xs-12\" style=\"padding-top:10px\">\\r\\n <p class=\"information-request-upper-header_col_desc\"> Client Code:</p>\\r\\n <p class=\"information-request-upper-header_col_desc-green\" data-bind=\"text: clientInfo.ClientCode\"></p>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </header>\\r\\n\\r\\n <div style=\"padding-top:20px\"></div>\\r\\n\\r\\n\\r\\n <!--ko compose: {view: \\'areas/informationrequest/views/hmrcAPIInfo\\', model:hmrcInfoModel}--><!--/ko-->\\r\\n <!-- no hmrc authorisation -->\\r\\n <div data-bind=\"visible:(!hasInformationReq() && !hasHmrcAuthorisation())\" style=\"clear: left;\">\\r\\n <img src=\"/html/content/images/hmrc_authorisation_lock.png\" alt=\"lock\" class=\"information-request-hmrc-lock\" />\\r\\n <p class=\"information-request-text-center\">Authorisation for this client has not taken place.</p>\\r\\n <p class=\"information-request-text-center\">Please authorise from within Central and try again.</p>\\r\\n </div>\\r\\n <!-- no hmrc response -->\\r\\n <div data-bind=\"visible:(noDTAInfo())\" style=\"clear: left;\">\\r\\n <img src=\"/html/content/images/hmrc_no_dta.png\" alt=\"lock\" class=\"information-request-hmrc-lock\" />\\r\\n <p class=\"information-request-text-center\">There is currently no information held in the DTA for this client.</p>\\r\\n </div>\\r\\n <div data-bind=\"foreach:dtaInfo,visible:(!hasInformationReq() && hasHmrcAuthorisation())\" style=\"clear: left;\">\\r\\n <label class=\"information-request-upper-header_col_desc-blue\" style=\"clear: left;\" data-bind=\"text:$data\"></label><br />\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<!-- Templates -->\\r\\n<script type=\"text/html\" id=\"default-header\">\\r\\n <div class=\"information-request-div-header-source\"><label class=\"information-request-p-header\">Source</label></div>\\r\\n <div class=\"information-request-div-header-amount\"><label class=\"information-request-p-header-center\" data-bind=\"text: $root.currentYearHeader\"></label></div>\\r\\n <div class=\"information-request-div-header-amount\"><label class=\"information-request-p-header-center\">HMRC</label><i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i></div>\\r\\n</script>\\r\\n';});\n\n", "\ndefine('text!areas/informationrequest/views/index.html',[],function () { return '<div class=\"information-request-client-page-header\">\\r\\n <p class=\"information-request-clients-label\">My Clients\\' Information Requests</p>\\r\\n\\r\\n <div class=\"information-request-checkbox-div\">\\r\\n <div id=\"dropdownlist-container\" class=\"information-request-pagination-dropdownlist\">\\r\\n <div class=\"information-request-eefilter\" >\\r\\n <div class=\"information-request-eefilter-title\">\\r\\n Filter by Tax Year\\r\\n </div>\\r\\n <div class=\"information-request-eefilter-control\">\\r\\n <span data-bind=\"visible: FilterAllTaxYearsPresent() == true ? false : true, click: ClearYearFilter\" class=\"fa fa-times information-request-cursor-pointer\"></span>\\r\\n <div class=\"information-request-eefilter-dropdown\">\\r\\n <div class=\"information-request-cursor-pointer\" tabindex=\"0\" data-bind=\"click: showTaxYearFilter\">\\r\\n <span data-bind=\"text: $root.FilterAllTaxYearsPresent() == true ? \\'All\\' : $root.numberOfItemSelected()\"></span>\\r\\n <span class=\"fa fa-caret-down\"></span>\\r\\n </div>\\r\\n <div id=\"dropdownlist-container-child\" data-bind=\"css: {\\'information-request-eefilter-dropdown-content-show\\' : taxYearFilterShow }\" class=\"information-request-eefilter-dropdown-content\">\\r\\n <div class=\"checkbox information-request selected-all\">\\r\\n <label>\\r\\n <input type=\"checkbox\" data-bind=\"checked: SelectAll\">\\r\\n <span class=\"checkbox-material\">\\r\\n <span class=\"check information-request\"></span>\\r\\n </span>\\r\\n <span class=\"checkbox-label\" style=\"margin-left:0px;font-family:FiraSans-Book;\">All Tax Years</span>\\r\\n </label>\\r\\n </div>\\r\\n <div class=\"information-request-eefilter-list\" data-bind=\"foreach: filters\">\\r\\n <div class=\"checkbox information-request multi-select-dropdownlist-item\" tabindex=\"0\">\\r\\n <label>\\r\\n <input type=\"checkbox\" data-bind=\"value: $data,checked: $root.selectedFilters\">\\r\\n <span class=\"checkbox-material\">\\r\\n <span class=\"check\"></span>\\r\\n </span>\\r\\n <span class=\"checkbox-label\" data-bind=\"text: text\" style=\"margin-left:0px;font-family:FiraSans-Book;\"></span>\\r\\n </label>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"information-request-pagination\" >\\r\\n\\r\\n <div class=\"information-request-eefilter\">\\r\\n <div class=\"information-request-eefilter-title\">\\r\\n Filter by status\\r\\n </div>\\r\\n <div class=\"information-request-eefilter-control\">\\r\\n <span data-bind=\"visible: filterStatus(), click: ClearRequestFilter\" class=\"fa fa-times information-request-cursor-pointer\"></span>\\r\\n <div class=\"information-request-eefilter-dropdown\">\\r\\n <div class=\"information-request-cursor-pointer\" tabindex=\"0\" data-bind=\"click: showRequestFilter, event: { \\'blur\\': onBlurFuncForStatus }\">\\r\\n <span data-bind=\"text: filterStatus() == null? \\'All\\' : filterStatus().statusName\"></span>\\r\\n <span class=\"fa fa-caret-down\"></span>\\r\\n </div>\\r\\n <div data-bind=\"css: {\\'information-request-eefilter-dropdown-content-show\\' : requestFilterShow}\" class=\"information-request-eefilter-dropdown-content\">\\r\\n <div class=\"information-request-eefilter-list\" style=\"max-height:250px; overflow-y:auto\" data-bind=\"foreach: requestStatuses\">\\r\\n <div data-bind=\"click: function(){$root.selectRequestStatus($data, $root)}\" class=\"information-request-eefilter-result\" tabindex=\"0\">\\r\\n <span data-bind=\"text: statusName\"></span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"information-request-eefilter\">\\r\\n <div class=\"information-request-eefilter-title\">\\r\\n Filter by user\\r\\n </div>\\r\\n <div class=\"information-request-eefilter-control\">\\r\\n <span data-bind=\"visible: filterEmployee(), click: ClearFilter\" class=\"fa fa-times information-request-cursor-pointer\"></span>\\r\\n <div class=\"information-request-eefilter-dropdown\">\\r\\n <div class=\"information-request-cursor-pointer\" tabindex=\"0\" data-bind=\"click: toggleFilter\">\\r\\n <span data-bind=\"text: filterEmployee() == null? \\'All\\' : filterEmployee().name\"></span>\\r\\n <span class=\"fa fa-caret-down\"></span>\\r\\n </div>\\r\\n <div data-bind=\"css: {\\'information-request-eefilter-dropdown-content-show\\' : eeFilterShow}\" class=\"information-request-eefilter-dropdown-content search-box\">\\r\\n <div class=\"clearable\" style=\"display:flex;flex-direction:row;margin:5px;border:1px solid gray\">\\r\\n <input id=\"empsearch\" type=\"text\" name=\"\" value=\"\" placeholder=\"Type in at least 3 characters\" style=\"width:218px;height:25px;font-size:12px;border:none;padding-left:5px\" data-bind=\"textInput:eeFilterSearch, event: { \\'keyup\\': employeeSearch, blur: onBlurFunc }\">\\r\\n <div style=\"display:flex;flex-direction:column;justify-content:center;padding-right:5px;padding-left:5px\">\\r\\n <div class=\"information-request-eefilter-clear\" tabindex=\"0\" data-bind=\"click: removeText\">\\r\\n <i id=\"clear\" data-bind=\"visible:showClearInput\" class=\"fa fa-times\"></i>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"information-request-eefilter-list\" style=\"max-height:250px; overflow-y:auto\" data-bind=\"foreach: filteredEmployees\">\\r\\n <div data-bind=\"click: function(){$root.selectEmployee($data, $root)}\" class=\"information-request-eefilter-result\" tabindex=\"0\">\\r\\n <span data-bind=\"text: name\"></span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"information-request-pagination-searchbar\">\\r\\n <input type=\"text\" placeholder=\"Search..\" name=\"search\" data-bind=\"value: searchInput\">\\r\\n <button type=\"submit\"><i class=\"fa fa-search\" data-bind=\"click: searchClients\"></i></button>\\r\\n </div>\\r\\n\\r\\n <label class=\"information-request-pagination-label\" data-bind=\"text: paginationText\"></label>\\r\\n\\r\\n <div class=\"information-request-pagination-arrows\" data-bind=\"click: firstPage\"><<</div>\\r\\n <div class=\"information-request-pagination-arrows\" data-bind=\"click: previousPage\"><</div>\\r\\n <div class=\"information-request-pagination-arrows\" data-bind=\"click: nextPage\">></div>\\r\\n <div class=\"information-request-pagination-arrows\" data-bind=\"click: lastPage\">>></div>\\r\\n <div class=\"information-request-eefilter\">\\r\\n <button class=\"btn navbar-btn information-request-btn-hmrc\" id=\"downlaod-excel-hmrc-button\" style=\"background-color:white; color: #137dcf; font-size: 14px;\" data-bind=\"click:exportToExcel, enable: enableExportToExcel\">\\r\\n <i class=\"far fa-file-excel fa-2x\" style=\"font-size:1.5em;\"></i>\\r\\n <add key=\"format\" value=\"xlsx\" />\\r\\n <span>Export to Excel</span>\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<div id=\"information-request-body1\" class=\"information-request-body\">\\r\\n\\r\\n <table style=\"width:100%;font-family:FiraSans-Book;font-size:11pt;\" class=\"information-request-table\">\\r\\n <thead style=\"position:sticky;top:0\">\\r\\n <tr class=\"header client-list-header\">\\r\\n <th class=\"client-list-client-name-header\">\\r\\n <div style=\"display:inline;transform:translate(0,20%)\">\\r\\n Clients\\r\\n </div>\\r\\n <div style=\"float:right;padding-right:20px;cursor:pointer\" data-bind=\"click: $root.sortOnClientName\">\\r\\n <i data-bind=\"attr: { class: sortDirectionName() == \\'\\' ? \\'fa fa-1x fa-sort\\' : \\'fa fa-1x fa-sort-\\' + sortDirectionName() } \"></i>\\r\\n </div>\\r\\n </th>\\r\\n <th style=\"width:11%\">\\r\\n <div style=\"display:inline;transform:translate(0,20%)\">\\r\\n Client Code\\r\\n </div>\\r\\n <div style=\"float:right;padding-right:15px;cursor:pointer;\" data-bind=\"click: $root.sortOnClientCode\">\\r\\n <i data-bind=\"attr: { class: sortDirectionClientCode() == \\'\\' ? \\'fa fa-1x fa-sort\\' : \\'fa fa-1x fa-sort-\\' + sortDirectionClientCode() } \"></i>\\r\\n </div>\\r\\n </th>\\r\\n <th style=\"width:9%\">\\r\\n <div style=\"display:inline;transform:translate(0,20%)\">\\r\\n Tax Year\\r\\n </div>\\r\\n <div style=\"float:right;padding-right:15px;cursor:pointer;\" data-bind=\"click: $root.sortOnTaxYear\">\\r\\n <i data-bind=\"attr: { class: sortDirectionTaxYear() == \\'\\' ? \\'fa fa-1x fa-sort\\' : \\'fa fa-1x fa-sort-\\' + sortDirectionTaxYear() } \"></i>\\r\\n </div>\\r\\n </th>\\r\\n <th style=\"font-weight:200;font-size:11pt;padding-left:15px\">\\r\\n <div style=\"display:inline;transform:translate(0,20%)\">\\r\\n Client Provided\\r\\n </div>\\r\\n <div style=\"float:right;padding-right:20px;cursor:pointer;\" data-bind=\"click: $root.sortOnClientProvided\">\\r\\n <i data-bind=\"attr: { class: sortDirectionClientProvided() == \\'\\' ? \\'fa fa-1x fa-sort\\' : \\'fa fa-1x fa-sort-\\' + sortDirectionClientProvided() } \"></i>\\r\\n </div>\\r\\n </th>\\r\\n <th style=\"font-weight:200;font-size:11pt;padding-left:15px\">\\r\\n <div style=\"display:inline;transform:translate(0,20%)\">\\r\\n Adviser Approved\\r\\n </div>\\r\\n <div style=\"float:right;padding-right:20px;cursor:pointer;\" data-bind=\"click: $root.sortOnAdvisorApproved\">\\r\\n <i data-bind=\"attr: { class: sortDirectionAdvisorApproved() == \\'\\' ? \\'fa fa-1x fa-sort\\' : \\'fa fa-1x fa-sort-\\' + sortDirectionAdvisorApproved() } \"></i>\\r\\n </div>\\r\\n </th>\\r\\n <th style=\"font-weight:200;font-size:11pt;padding-left:15px\">\\r\\n <div style=\"display:inline;transform:translate(0,20%)\">\\r\\n Request Status\\r\\n </div>\\r\\n <div style=\"float:right;padding-right:20px;cursor:pointer;\" data-bind=\"click: $root.sortOnRequestStatus\">\\r\\n <i data-bind=\"attr: { class: sortDirectionRequestStatus() == \\'\\' ? \\'fa fa-1x fa-sort\\' : \\'fa fa-1x fa-sort-\\' + sortDirectionRequestStatus() } \"></i>\\r\\n </div>\\r\\n </th>\\r\\n <th>\\r\\n <div style=\"display:inline;transform:translate(0,20%)\">\\r\\n Date Modified\\r\\n </div>\\r\\n <div style=\"float:right;padding-right:20px;cursor:pointer;\" data-bind=\"click: $root.sortOnDate\">\\r\\n <i data-bind=\"attr: { class: sortDirectionDate() == \\'\\' ? \\'fa fa-1x fa-sort\\' : \\'fa fa-1x fa-sort-\\' + sortDirectionDate() } \"></i> \\r\\n </div>\\r\\n </th>\\r\\n <th data-bind=\"visible: displayMessageFeatureInDDR\">Last Message</th>\\r\\n </tr>\\r\\n </thead>\\r\\n\\r\\n <tbody data-bind=\"foreach: clients\" style=\"overflow: auto;\">\\r\\n <!-- ko if: isRead -->\\r\\n <tr class=\"information-request-clients-list-header\" data-bind=\"event:{mouseover: $root.mouseOverRoot, mouseout: $root.mouseOutRoot},click:$root.rowClicked\">\\r\\n <td class=\"client-list-client-name\" data-bind=\"text: clientName\"></td>\\r\\n <td class=\"client-list-small-field\" data-bind=\"text: clientCode\"></td>\\r\\n <td class=\"client-list-small-field\" data-bind=\"text: taxYearDisplay\"></td>\\r\\n <td class=\"client-list-large-field\">\\r\\n <div data-bind=\"text: \\'(\\' + clientCompleted+\\'/\\'+(unapprovedCount+approvedCount)+\\')\\'\" style=\"display:inline;color:#505050\"></div>\\r\\n </td>\\r\\n <td class=\"client-list-large-field\">\\r\\n <div data-bind=\"text: \\'(\\' + approvedCount+\\'/\\'+(unapprovedCount+approvedCount)+\\')\\'\" style=\"display:inline;color:#505050\"></div>\\r\\n </td>\\r\\n <td class=\"client-list-large-field\">\\r\\n <img data-bind=\"attr: { src: requestStatusIconPath }\" />\\r\\n <div data-bind=\"text: requestStatusName\" style=\"display:inline;color:#505050;transform:translate(0,20%);\"></div>\\r\\n </td>\\r\\n <td class=\"client-list-large-field\" data-bind=\"text: received\"></td>\\r\\n <td class=\"client-list-latest-comments\" data-bind=\"visible: $root.displayMessageFeatureInDDR\"><div style=\"text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:150px;\" data-bind=\"text: latestComments\"></div></td>\\r\\n </tr>\\r\\n <!-- /ko -->\\r\\n <!-- ko ifnot: isRead -->\\r\\n <tr class=\"information-request-clients-list-header\" data-bind=\"css: {\\'information-request-isread\\' : !isRead }, event:{mouseover: $root.mouseOverRoot, mouseout: $root.mouseOutRoot},click:$root.rowClicked\">\\r\\n <td class=\"client-list-client-name\" data-bind=\"css: {\\'information-request-isread\\' : !isRead }, text: clientName\"></td>\\r\\n <td class=\"client-list-small-field\" data-bind=\"css: {\\'information-request-isread\\' : !isRead }, text: clientCode\"></td>\\r\\n <td class=\"client-list-small-field\" data-bind=\"css: {\\'information-request-isread\\' : !isRead }, text: taxYearDisplay\"></td>\\r\\n <td class=\"client-list-large-field\">\\r\\n <div data-bind=\"css: {\\'information-request-isread\\' : !isRead }, text: \\'(\\' + clientCompleted+\\'/\\'+(unapprovedCount+approvedCount)+\\')\\'\" style=\"display:inline;\"></div>\\r\\n </td>\\r\\n <td class=\"client-list-large-field\">\\r\\n <div data-bind=\"css: {\\'information-request-isread\\' : !isRead }, text: \\'(\\' + approvedCount+\\'/\\'+(unapprovedCount+approvedCount)+\\')\\'\" style=\"display:inline;\"></div>\\r\\n </td>\\r\\n <td class=\"client-list-large-field\">\\r\\n <img data-bind=\"attr: { src: requestStatusIconPath }\" />\\r\\n <div data-bind=\"css: {\\'information-request-isread\\' : !isRead }, text: requestStatusName\" style=\"display:inline;transform:translate(0,20%);\"></div>\\r\\n </td>\\r\\n <td class=\"client-list-large-field\" data-bind=\"css: {\\'information-request-isread\\' : !isRead }, text: received\"></td>\\r\\n <td class=\"client-list-latest-comments\" data-bind=\"visible: $root.displayMessageFeatureInDDR\"><div style=\"text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:150px;\" data-bind=\"css: {\\'information-request-isread-comments\\' : !isRead }, text: latestComments\"></div></td>\\r\\n </tr>\\r\\n <!-- /ko -->\\r\\n </tbody>\\r\\n\\r\\n </table>\\r\\n\\r\\n\\r\\n <div class=\"information-request-text-center\" style=\"margin-top:7%;font-size:12px;\" data-bind=\"visible: showLoadingSpinner\">\\r\\n <i class=\"fa fa-circle-o-notch fa-spin fa-5x fa-fw\" style=\"color:#A0A0A0;\"></i>\\r\\n <div class=\"information-request-loading-tag\">Loading...</div>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-text-center\" style=\"font-size:7px;margin-top:3px;margin-bottom:3px;\" data-bind=\"visible: getNextClientsSpiner\">\\r\\n <i class=\"fa fa-circle-o-notch fa-spin fa-5x fa-fw\" style=\"color:#E6E6E6;\"></i>\\r\\n </div>\\r\\n\\r\\n <div data-bind=\"visible: noClientsIcon\" style=\"margin-top:7%;\">\\r\\n <img src=\"/html/content/images/no_clients_image.png\" class=\"information-request-hmrc-lock\" style=\"width:10%\" />\\r\\n\\r\\n <!-- ko if: isAnyRequestToReview() == false -->\\r\\n <div class=\"information-request-text-center\" style=\"margin-top:30px;\">\\r\\n There are no digital data requests to review, because none have been sent out to clients.<br />\\r\\n Would you like to send some out? <br />\\r\\n Go to CCH Central and send digital information requests to your clients. <a href=\" https://help.wolterskluwer.co.uk/Customers/s/\" target=\"_blank\">Read more about how to do this</a> on our Customer Community.<br />\\r\\n Once sent out, the requests will appear here.\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: isAnyRequestToReview -->\\r\\n <div class=\"information-request-text-center\" style=\"margin-top:30px;\">\\r\\n There are no results based on the current filtering. <br /> Change the filters to display more results.\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n\\r\\n </div>\\r\\n</div> ';});\n\n", "\ndefine('text!areas/informationrequest/views/spousePartnerInfo.html',[],function () { return '<div id=\"spousePartnerInfo\" class=\"modal-dialog\">\\r\\n <!-- Modal content-->\\r\\n <div class=\"modal-content\" style=\"width:350px;\">\\r\\n <div class=\"modal-header\">\\r\\n <button type=\"button\" class=\"close information-request-close\" data-bind=\"click: $root.closeDialog\">×</button>\\r\\n <h3 class=\"information-request-line-behind-text\" style=\"font-size:14px;\"><span>Partner Information</span></h3>\\r\\n </div>\\r\\n <div class=\"modal-body information-request-modal-body\" id=\"bodyDivId\" style=\"height:250px;\">\\r\\n <div>\\r\\n <div class=\"information-request-div-child-source\"><label class=\"information-request-p-child-elipsis\">Forename</label></div>\\r\\n <div class=\"information-request-spouse-partner-info\">\\r\\n <label class=\"information-request-p-child\" data-bind=\"text: spouseInfo.spouseFName\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source\"><label class=\"information-request-p-child-elipsis\">Surname</label></div>\\r\\n <div class=\"information-request-spouse-partner-info\">\\r\\n <label class=\"information-request-p-child\" data-bind=\"text: spouseInfo.spouseSurname\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source\"><label class=\"information-request-p-child-elipsis\">NI No.</label></div>\\r\\n <div class=\"information-request-spouse-partner-info\">\\r\\n <label class=\"information-request-p-child\" data-bind=\"text: ninoString\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source\"><label class=\"information-request-p-child-elipsis\">D.O.B</label></div>\\r\\n <div class=\"information-request-spouse-partner-info\">\\r\\n <label class=\"information-request-p-child\" data-bind=\"text: dobString\"></label>\\r\\n </div>\\r\\n\\r\\n <div class=\"information-request-div-child-source\"><label class=\"information-request-p-child-elipsis\">Married</label></div>\\r\\n <div class=\"information-request-spouse-partner-info\">\\r\\n <label class=\"information-request-p-child\" data-bind=\"text: doMString\"></label>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"modal-footer\">\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/informationrequest/views/viewattachments.html',[],function () { return '<div id=\"viewattachmentId\" class=\"modal-dialog\">\\r\\n <!-- Modal content-->\\r\\n <div class=\"modal-content\" style=\"width:850px;margin-left:-100px;\">\\r\\n <div class=\"modal-header\">\\r\\n <h3 class=\"information-request-line-behind-text\"><span>Attachments</span></h3>\\r\\n </div>\\r\\n\\r\\n <div class=\"modal-body information-request-modal-body\" id=\"bodyDivId\">\\r\\n <div style=\"top:-10px;position:absolute;\">\\r\\n <h1 style=\"color:White;background-color:#87CEEB; padding: 10px;font-family:\\'Fira Sans\\';font-size: 22px; float:left; display: inline-block;width: 300px;\">\\r\\n Document Name\\r\\n </h1>\\r\\n <h1 style=\"color:White;background-color:#87CEEB; padding: 10px;font-family:\\'Fira Sans\\';font-size: 22px; display: inline-block;width: 300px;\">\\r\\n Uploaded By\\r\\n </h1>\\r\\n <h1 style=\"color: White; background-color: #87CEEB; padding: 10px; font-family: \\'Fira Sans\\'; font-size: 22px; display: inline-block; position: absolute; width: 200px;\">\\r\\n Date And Time\\r\\n </h1>\\r\\n </div>\\r\\n <div style=\"top:40px;position:relative\">\\r\\n <div data-bind=\"foreach: attachments\">\\r\\n\\r\\n <div style=\"width:95%;padding:5px;\">\\r\\n\\r\\n <a data-bind=\"attr: {href: $data.path}, text : $data.displayName\" style=\"text-decoration:underline !important;font-size:16px\"></a>\\r\\n <div style=\"float: right;\">\\r\\n\\r\\n <label data-bind=\"text : $data.displayUserName;\"\\r\\n style=\"font-weight: bold; color: black; position: absolute; right:39%;\"></label>\\r\\n <label data-bind=\"text : $data.dateAdded;\"\\r\\n style=\"font-weight: bold; color: black; position: absolute; right: 2%;\"></label>\\r\\n </div>\\r\\n <!-- ko if: deleteAttachmentVisible -->\\r\\n <!--<label class=\"fa fa-2x fa-trash\"-->\\r\\n <label \\r\\n style=\"color:red; cursor: pointer; position: absolute;\"\\r\\n data-bind=\"click: $parent.showDeleteDialog\">\\r\\n </label>\\r\\n <!-- /ko -->\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div>\\r\\n <label class=\"btn navbar-btn information-request-btn-hmrc\"\\r\\n style=\"background-color: #137dcf!important;color: #fff; float:right; position: absolute; bottom: 3%; right: 15%; cursor: pointer;\">\\r\\n Upload Attachment\\r\\n <input type=\"file\" data-bind=\"event:{ change: onFileSelectedEvent }\"\\r\\n style=\"width: 0.1px;height: 0.1px;opacity: 0;overflow: hidden;position: absolute;z-index: 10;\" />\\r\\n </label>\\r\\n <label class=\"btn navbar-btn information-request-btn-hmrc\"\\r\\n data-bind=\"click: $root.closeDialog\"\\r\\n style=\"background-color: #137dcf!important;color: #fff; float:right; position: absolute; bottom: 3%; right: 5%; cursor: pointer;\">\\r\\n Close\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n <div id=\"dialogDeleteAttachmentId\" class=\"modal\" data-backdrop=\"static\" data-keyboard=\"false\">\\r\\n <div class=\"modal-dialog\" style=\"padding-top: 15% !important;\">\\r\\n <div class=\"modal-content information-request-confirmation-modal-content\">\\r\\n <div class=\"modal-body information-request-confirmation-modal-body col-xs-12\">\\r\\n <div class=\"col-xs-12 information-request-confirmation-message\"><label>Are you sure you want to delete the attachment?</label></div>\\r\\n <div style=\"text-align:center;\">\\r\\n <button type=\"button\" class=\"information-request-confirmation-button\" data-bind=\"click: $root.deleteAttachment\"\\r\\n style=\"background-color: #137dcf!important;color: #fff;\">\\r\\n Yes\\r\\n </button>\\r\\n <button type=\"button\" class=\"information-request-confirmation-button\" data-bind=\"click: $root.closeDeleteDialog\"\\r\\n style=\"background-color: #fff!important;color: #137dcf;\">\\r\\n No\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/kb/views/index.html',[],function () { return '<div class=\"knowledgebase-container\">\\r\\n <iframe data-bind=\"attr: {src: $data.knowledgeBaseUrl}\"></iframe>\\r\\n</div>';});\n\n", "\ndefine('text!areas/logout/views/index.html',[],function () { return '<div>\\r\\n</div>';});\n\n", "\ndefine('text!areas/navigationmanager/views/editor.html',[],function () { return '<div style=\"overflow: auto\" data-bind=\"with: $root.selectedNode\">\\r\\n <form id=\"editorForm\" class=\"form-horizontal\" style=\"margin-left: 15px; margin-right: 15px\" data-bind=\"validate: {action: function() {} }\">\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"name\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.input_description\\', defaultValue : \\'Bezeichnung\\'\">Bezeichnung</label>\\r\\n <input id=\"name\" class=\"form-control\" type=\"text\" autofocus=\"autofocus\" onchange=\"$(\\'#editorForm\\').submit()\"\\r\\n data-bind=\"value: name\"\\r\\n data-rule-required=\"true\"\\r\\n data-i18n=\"[data-msg-required]app:modules.navigationManager.attributeText_description\" data-msg-required=\"Bitte geben Sie eine Bezeichnung ein.\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"type\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.input_type\\', defaultValue : \\'Typ\\'\">Typ</label>\\r\\n <input id=\"type\" readonly=\"readonly\" class=\"form-control\" type=\"text\" data-bind=\"value: type\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"template\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.input_template\\', defaultValue : \\'Template\\'\">Template</label>\\r\\n <input id=\"template\" class=\"form-control\" type=\"text\" data-bind=\"value: template\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"datakey\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.input_dataKey\\', defaultValue : \\'Data-Key\\'\">Data-Key</label>\\r\\n <input id=\"datakey\" class=\"form-control\" type=\"text\" data-bind=\"value: datakey\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"index\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.input_index\\', defaultValue : \\'Index\\'\">Index</label>\\r\\n <input id=\"index\" class=\"form-control\" type=\"number\" data-bind=\"value: index\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"key\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.group.input_key\\', defaultValue : \\'Key\\'\">Key</label>\\r\\n <input id=\"key\" class=\"form-control\" type=\"text\" data-bind=\"value: key\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"permissionId\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.group.input_permissionId\\', defaultValue : \\'PermissionId\\'\">PermissionId</label>\\r\\n <input id=\"permissionId\" class=\"form-control\" type=\"text\" data-bind=\"value: permissionId\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"color\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.input_color\\', defaultValue : \\'Color\\'\">Color</label>\\r\\n <input id=\"color\" class=\"form-control\" type=\"text\" data-bind=\"value: color\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"icon\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.input_icon\\', defaultValue : \\'Icon\\'\">Icon</label>\\r\\n <div class=\"input-group\">\\r\\n <input id=\"icon\" class=\"form-control\" type=\"text\" data-bind=\"value: icon\" />\\r\\n <span class=\"input-group-btn\">\\r\\n <button class=\"btn btn-default\" data-toggle=\"modal\" data-target=\"#icons\" type=\"button\"><i class=\"fa fa-search\"></i></button>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"openInDialog\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.input_openInDialog\\', defaultValue : \\'Open In Dialog\\'\">Open In Dialog</label>\\r\\n <input id=\"openInDialog\" type=\"checkbox\" data-bind=\"checked: openInDialog\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"openLinkInCurrentTab\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.input_openLinkInCurrentTab\\', defaultValue : \\'Open Link In Current Tab\\'\">Open Link In Current Tab</label>\\r\\n <input id=\"openLinkInCurrentTab\" type=\"checkbox\" data-bind=\"checked: openLinkInCurrentTab\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"disableNavigateToFirstChild\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.input_disableNavigateToFirstChild\\', defaultValue : \\'Disable Navigate To First Child\\'\">Disable Navigate To First Child</label>\\r\\n <input id=\"disableNavigateToFirstChild\" type=\"checkbox\" data-bind=\"checked: disableNavigateToFirstChild\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"showOnMobile\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.input_showOnMobile\\', defaultValue : \\'Show On Mobile\\'\">Show On Mobile</label>\\r\\n <input id=\"showOnMobile\" type=\"checkbox\" data-bind=\"checked: showOnMobile\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"useImage\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.input_useImage\\', defaultValue : \\'Use Image\\'\">Use Image</label>\\r\\n <input id=\"useImage\" type=\"checkbox\" data-bind=\"checked: useImage\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"imagePath\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.input_imagePath\\', defaultValue : \\'Image Path\\'\">Image Path</label>\\r\\n <input id=\"imagePath\" class=\"form-control\" type=\"text\" data-bind=\"value: imagePath\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"defaultData\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.group.input_defaultData\\', defaultValue : \\'Default Data\\'\">Default Data</label>\\r\\n <input id=\"defaultData\" class=\"form-control\" type=\"text\" data-bind=\"value: defaultData\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"imagePathSearchbar\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.group.input_imagePathSearchbar\\', defaultValue : \\'Image Path Searchbar\\'\">Image Path Searchbar</label>\\r\\n <input id=\"imagePathSearchbar\" class=\"form-control\" type=\"text\" data-bind=\"value: imagePathSearchbar\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"groupId\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.input_group\\', defaultValue : \\'Gruppe\\'\">Gruppe</label>\\r\\n <div class=\"input-group\">\\r\\n <input id=\"groupId\" class=\"form-control\" type=\"text\" data-bind=\"value: groupId\" readonly=\"readonly\" />\\r\\n <span class=\"input-group-btn\">\\r\\n <button class=\"btn btn-default\" data-toggle=\"modal\" data-target=\"#groups\" type=\"button\"><i class=\"fa fa-search\"></i></button>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\" data-bind=\"if: type == \\'Sachgebiet\\'\">\\r\\n <label for=\"route\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.input_dependsOn\\', defaultValue : \\'Abhängigkeit\\'\">Abhängigkeit</label>\\r\\n <input id=\"route\" class=\"form-control\" type=\"text\" onchange=\"$(\\'#editorForm\\').submit()\"\\r\\n data-bind=\"value: dependsOn\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\" data-bind=\"if: type == \\'Application\\'\">\\r\\n <label for=\"shopId\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.input_application\\', defaultValue : \\'Applikation\\'\">Applikation</label>\\r\\n <div class=\"input-group\">\\r\\n <input id=\"shopId\" class=\"form-control\" type=\"text\" onchange=\"$(\\'#editorForm\\').submit()\"\\r\\n data-bind=\"value: shopId\"\\r\\n data-rule-required=\"true\"\\r\\n data-i18n=\"[data-msg-required]app:modules.navigationManager.attributeText_selectApp\" data-msg-required=\"Bitte wählen Sie eine Applikation aus.\" />\\r\\n <span class=\"input-group-btn\">\\r\\n <button class=\"btn btn-default\" data-toggle=\"modal\" data-target=\"#modules\" type=\"button\"><i class=\"fa fa-search\"></i></button>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"form-group label-floating\" data-bind=\"if: type == \\'ApplicationLink\\'\">\\r\\n <label for=\"route\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.input_route\\', defaultValue : \\'Route\\'\">Route</label>\\r\\n <input id=\"route\" class=\"form-control\" type=\"text\" onchange=\"$(\\'#editorForm\\').submit()\"\\r\\n data-bind=\"value: route\"\\r\\n data-rule-required=\"true\"\\r\\n data-i18n=\"[data-msg-required]app:modules.navigationManager.attributeText_route\" data-msg-required=\"Bitte geben Sie eine Route ein.\" />\\r\\n </div>\\r\\n\\r\\n </form>\\r\\n</div>\\r\\n\\r\\n<div style=\"overflow: auto\" data-bind=\"with: $root.selectedGroup\">\\r\\n <form id=\"editorGroupForm\" class=\"form-horizontal\" style=\"margin-left: 15px; margin-right: 15px\" data-bind=\"validate: {action: function() {} }\">\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"title\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.group.input_title\\', defaultValue : \\'Title\\'\">Title</label>\\r\\n <input id=\"title\" class=\"form-control\" type=\"text\" autofocus=\"autofocus\" onchange=\"$(\\'#editorGroupForm\\').submit()\"\\r\\n data-bind=\"value: title\"\\r\\n data-rule-required=\"true\"\\r\\n data-i18n=\"[data-msg-required]app:modules.navigationManager.group.attributeText_title\" data-msg-required=\"Bitte geben Sie einen Titel.\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"key\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.group.input_key\\', defaultValue : \\'Data-Key\\'\">Data-Key</label>\\r\\n <input id=\"key\" class=\"form-control\" type=\"text\"\\r\\n data-bind=\"value: key\"\\r\\n data-rule-required=\"true\"\\r\\n data-i18n=\"[data-msg-required]app:modules.navigationManager.group.attributeText_key\" data-msg-required=\"Bitte geben Sie einen Schlüssel.\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"index\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.group.input_index\\', defaultValue : \\'Index\\'\">Index</label>\\r\\n <input id=\"index\" class=\"form-control\" type=\"number\" data-bind=\"value: index\" />\\r\\n </div>\\r\\n\\r\\n\\t\\t\\t<div class=\"form-group label-floating\">\\r\\n\\t\\t\\t\\t<label for=\"autoSelectIndex\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.group.input_autoSelectIndex\\', defaultValue : \\'Selektierungsreihenfolge\\'\">Selektierungsreihenfolge</label>\\r\\n\\t\\t\\t\\t<input id=\"autoSelectIndex\" class=\"form-control\" type=\"number\" data-bind=\"value: autoSelectIndex\" />\\r\\n\\t\\t\\t</div>\\r\\n\\r\\n\\r\\n\\t <div class=\"form-group label-floating\">\\r\\n <label for=\"icon\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.group.input_icon\\', defaultValue : \\'Icon\\'\">Icon</label>\\r\\n <div class=\"input-group\">\\r\\n <input id=\"icon\" class=\"form-control\" type=\"text\" data-bind=\"value: icon\" />\\r\\n <span class=\"input-group-btn\">\\r\\n <button class=\"btn btn-default\" data-toggle=\"modal\" data-target=\"#icons\" type=\"button\"><i class=\"fa fa-search\"></i></button>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"useImage\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.group.input_useImage\\', defaultValue : \\'Use Image\\'\">Use Image</label>\\r\\n <input id=\"useImage\" type=\"checkbox\" data-bind=\"checked: useImage\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"imagePath\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.group.input_imagePath\\', defaultValue : \\'Image Path\\'\">Image Path</label>\\r\\n <input id=\"imagePath\" class=\"form-control\" type=\"text\" data-bind=\"value: imagePath\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"description\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.group.input_description\\', defaultValue : \\'Bezeichnung\\'\">Bezeichnung</label>\\r\\n <input id=\"description\" class=\"form-control\" type=\"text\" data-bind=\"value: description\" />\\r\\n </div>\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"showAddWidgets\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.group.input_showAddWidgets\\', defaultValue : \\'Show add widgets\\'\">Show add widgets</label>\\r\\n <input id=\"showAddWidgets\" type=\"checkbox\" data-bind=\"checked: showAddWidgets\" />\\r\\n </div>\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"showOnMobile\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.group.input_showOnMobile\\', defaultValue : \\'Show on mobile\\'\">Show on mobile</label>\\r\\n <input id=\"showOnMobile\" type=\"checkbox\" data-bind=\"checked: showOnMobile\" />\\r\\n </div>\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"hideFromSidenav\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.group.input_hideFromSidenav\\', defaultValue : \\'Hide from sidenav\\'\">Hide from sidenav</label>\\r\\n <input id=\"hideFromSidenav\" type=\"checkbox\" data-bind=\"checked: hideFromSidenav\" />\\r\\n </div>\\r\\n <div class=\"form-group label-floating\">\\r\\n <label for=\"alwaysShowTiles\" class=\"control-label\" data-bind=\"i18n : \\'app:modules.navigationManager.group.input_alwaysShowTiles\\', defaultValue : \\'Always show tiles\\'\">Always show tiles</label>\\r\\n <input id=\"alwaysShowTiles\" type=\"checkbox\" data-bind=\"checked: alwaysShowTiles\" />\\r\\n </div>\\r\\n </form>\\r\\n</div>\\r\\n\\r\\n<div id=\"icons\" class=\"modal fade in\" style=\"display: none;\" tabindex=\"-1\" role=\"dialog\">\\r\\n <div class=\"modal-dialog\" style=\"width: 75%;\">\\r\\n <div class=\"modal-content\" style=\"overflow: hidden\">\\r\\n <div class=\"modal-header\">\\r\\n <h3 data-i18n=\"app:modules.navigationManager.headline_icons\">Icons</h3>\\r\\n </div>\\r\\n <div class=\"modal-body\" style=\"overflow: auto; height: 500px\">\\r\\n <div class=\"row\" data-bind=\"foreach: $root.icons\">\\r\\n <div class=\"col-md-3 col-sm-4\">\\r\\n <!-- ko if: $root.selectedNode != null -->\\r\\n <a href=\"#\" data-bind=\"click: function() { $root.selectedNode.icon = \\'fa-\\' + id; $(\\'#icons\\').modal(\\'hide\\'); }\">\\r\\n <i class=\"fa \" data-bind=\"css: \\'fa-\\' + id\"></i>\\r\\n <!--ko text: name--><!--/ko-->\\r\\n </a>\\r\\n <!--/ko-->\\r\\n <!-- ko if: $root.selectedGroup != null -->\\r\\n <a href=\"#\" data-bind=\"click: function() { $root.selectedGroup.icon = \\'fa-\\' + id; $(\\'#icons\\').modal(\\'hide\\'); }\">\\r\\n <i class=\"fa \" data-bind=\"css: \\'fa-\\' + id\"></i>\\r\\n <!--ko text: name--><!--/ko-->\\r\\n </a>\\r\\n <!--/ko-->\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"modal-footer\">\\r\\n <a href=\"#\" data-dismiss=\"modal\" class=\"btn btn-primary\" data-i18n=\"app:modules.navigationManager.command_close\">Schließen</a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<div id=\"modules\" class=\"modal fade in\" style=\"display: none;\" tabindex=\"-1\" role=\"dialog\">\\r\\n <div class=\"modal-dialog\" style=\"width: 75%;\">\\r\\n <div class=\"modal-content\" style=\"overflow: hidden\">\\r\\n <div class=\"modal-header\">\\r\\n <h3 data-i18n=\"app:modules.navigationManager.headline_modules\">Module</h3>\\r\\n </div>\\r\\n <div class=\"modal-body\" style=\"overflow: auto; height: 500px\">\\r\\n <div class=\"row\" data-bind=\"foreach: $root.memberTypeModules\">\\r\\n <div class=\"col-md-3 col-sm-4\">\\r\\n <a href=\"#\" data-bind=\"click: function() { $root.selectedNode.shopId = templateId; $(\\'#modules\\').modal(\\'hide\\'); }\">\\r\\n <!--ko text: name--><!--/ko-->\\r\\n </a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"modal-footer\">\\r\\n <a href=\"#\" data-dismiss=\"modal\" class=\"btn btn-primary\" data-i18n=\"app:modules.navigationManager.command_close\">Schließen</a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div id=\"groups\" class=\"modal fade in\" style=\"display: none;\" tabindex=\"-1\" role=\"dialog\">\\r\\n <div class=\"modal-dialog\" style=\"width: 75%;\">\\r\\n <div class=\"modal-content\" style=\"overflow: hidden\">\\r\\n <div class=\"modal-header\">\\r\\n <h3 data-i18n=\"app:modules.navigationManager.headline_groups\">Groups</h3>\\r\\n <div class=\"collapse navbar-collapse\" id=\"menuBar\">\\r\\n <ul class=\"nav navbar-nav\">\\r\\n <li>\\r\\n <a class=\"btn navbar-btn\" data-bind=\"command: { command: $root.createGroupCommand, parameter: $root.currentNode }, click: function() { $(\\'#groups\\').modal(\\'hide\\'); }, css: { disabled: $root.currentNode == null }\" href=\"#\" data-i18n=\"app:modules.navigationManager.command_new_group\">\\r\\n Neu Group\\r\\n </a>\\r\\n </li>\\r\\n </ul>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"modal-body\" style=\"overflow: auto; height: 500px\">\\r\\n <div class=\"row\" data-bind=\"foreach: $root.groups\">\\r\\n <div class=\"col-md-3 col-sm-4\">\\r\\n <a href=\"#\" data-bind=\"click: function() { $root.selectedNode.groupId = key; $(\\'#groups\\').modal(\\'hide\\'); }\">\\r\\n <!--ko text: title --><!--/ko-->\\r\\n </a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\"modal-footer\">\\r\\n <a href=\"#\" data-dismiss=\"modal\" class=\"btn btn-primary\" data-i18n=\"app:modules.navigationManager.command_close\">Schließen</a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/navigationmanager/views/index.html',[],function () { return '<md-module id=\"navigationManager\">\\r\\n <div class=\"layout-row flex\" data-bind=\"simpleView: { controller: controller }\">\\r\\n\\r\\n <md-part-modulemenu data-part=\"menu\">\\r\\n <div class=\"navbar-menu\">\\r\\n <div class=\"navbar-header\">\\r\\n <button type=\"button\" class=\"navbar-toggle collapsed\" data-toggle=\"collapse\" data-target=\"#menuBar\">\\r\\n <span class=\"sr-only\">Toggle navigation</span>\\r\\n <span class=\"icon-bar\"></span>\\r\\n <span class=\"icon-bar\"></span>\\r\\n <span class=\"icon-bar\"></span>\\r\\n </button>\\r\\n </div>\\r\\n\\r\\n <div class=\"collapse navbar-collapse\" id=\"menuBar\">\\r\\n <ul class=\"nav navbar-nav\">\\r\\n <li data-bind=\"ifnot: $root.currentNode == null || $root.currentNode.type == \\'UserType\\'\">\\r\\n <a class=\"btn navbar-btn\" href=\"#\" data-bind=\"click: function(data, event) { $root.navigateCommand.execute($root.currentNode.parent); }\"\\r\\n data-i18n=\"app:modules.navigationManager.command_back\">Zurück</a>\\r\\n </li>\\r\\n <li data-bind=\"if: $root.currentNode == null || $root.currentNode.type == \\'UserType\\'\">\\r\\n <a class=\"btn navbar-btn\" href=\"#\" data-bind=\"click: function(data, event) { refresh(); }, css: { disabled: $root.currentNode == null }\" data-i18n=\"app:modules.navigationManager.command_refresh\"> Aktualisieren</a>\\r\\n </li>\\r\\n <li>\\r\\n <a class=\"btn navbar-btn\" data-bind=\"command: { command: $root.saveNavigationModelCommand, parameter: $root.currentNavigationModel }, css: { disabled: $root.currentNavigationModel == null }\" href=\"#\" data-i18n=\"app:modules.navigationManager.command_save\"> Speichern</a>\\r\\n </li>\\r\\n <li class=\"dropdown\">\\r\\n <a href=\"#\" class=\"btn navbar-btn dropdown-toggle\" data-bind=\"css: { disabled: $root.currentNavigationModel == null }\" data-toggle=\"dropdown\" role=\"button\" aria-expanded=\"false\" data-i18n=\"app:modules.navigationManager.command_new\">Neu <span class=\"caret\"></span></a>\\r\\n <ul class=\"dropdown-menu\" role=\"menu\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<li><a data-bind=\"command: { command: $root.createGroupCommand }\" href=\"#\" data-i18n=\"app:modules.navigationManager.command_new_group\">Gruppe</a></li>\\r\\n <li><a data-bind=\"command: { command: $root.createNavigationNodeCommand, parameter: \\'Sachgebiet\\' }\" href=\"#\" data-i18n=\"app:modules.navigationManager.command_area\">Sachgebiet</a></li>\\r\\n <li><a data-bind=\"command: { command: $root.createNavigationNodeCommand, parameter: \\'Application\\' }\" href=\"#\" data-i18n=\"app:modules.navigationManager.command_app\">App</a></li>\\r\\n <li data-bind=\"if: $root.currentNode != null && $root.currentNode.type == \\'Application\\'\">\\r\\n <a data-bind=\"command: { command: $root.createNavigationNodeCommand, parameter: \\'ApplicationLink\\' }\" href=\"#\" data-i18n=\"app:modules.navigationManager.command_link\">Direktlink</a>\\r\\n </li>\\r\\n </ul>\\r\\n </li>\\r\\n\\t <li>\\r\\n\\t\\t <!-- ko if: $root.selectedGroup != null -->\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<a class=\"btn navbar-btn\" data-bind=\"command: { command: $root.removeGroupCommand, parameter: $root.selectedGroup }\" href=\"#\" data-i18n=\"app:modules.navigationManager.command_delete_group\"> Löschen</a>\\r\\n\\t\\t <!-- /ko -->\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<!-- ko if: $root.selectedGroup == null -->\\r\\n\\t\\t <a class=\"btn navbar-btn\" data-bind=\"command: { command: $root.removeNavigationNodeCommand, parameter: $root.selectedNode }, css: { disabled: $root.selectedNode == null }\" href=\"#\" data-i18n=\"app:modules.navigationManager.command_delete\"> Löschen</a>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t </li>\\r\\n <li><a class=\"btn navbar-btn\" data-bind=\"command: { command: $root.moveNavigationNodeCommand, parameter: { item1: $root.selectedNode, item2: -1 } }, css: { disabled: $root.selectedNode == null }\" href=\"#\" data-i18n=\"app:modules.navigationManager.command_back\"> Zurück</a></li>\\r\\n <li><a class=\"btn navbar-btn\" data-bind=\"command: { command: $root.moveNavigationNodeCommand, parameter: { item1: $root.selectedNode, item2: +1 } }, css: { disabled: $root.selectedNode == null }\" href=\"#\" data-i18n=\"app:modules.navigationManager.command_forward\"> Vor</a></li>\\r\\n </ul>\\r\\n\\r\\n <ul class=\"nav navbar-nav navbar-right\">\\r\\n\\r\\n <li class=\"dropdown\">\\r\\n <a class=\"dropdown-toggle\" data-toggle=\"dropdown\" href=\"#\" data-i18n=\"app:modules.navigationManager.command_navigationTrees\">Navigationsbäume<b class=\"caret\"></b></a>\\r\\n <ul class=\"dropdown-menu\" role=\"menu\" data-bind=\"foreach: settings.controller.result\">\\r\\n <li>\\r\\n <a href=\"#\" data-bind=\"command: { command: $root.openNavigationModelCommand, parameter: $data }\"><span data-bind=\"text: name\"></span></a>\\r\\n </li>\\r\\n </ul>\\r\\n </li>\\r\\n </ul>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </md-part-modulemenu>\\r\\n\\r\\n\\r\\n <md-part-modulecontent data-part=\"content\">\\r\\n <div class=\"layout-row flex\" style=\"max-height: 100%\">\\r\\n <div class=\"layout-column flex\" style=\"overflow-y: auto\">\\r\\n <div class=\"layout-row flex\" data-bind=\"if: $root.currentNavigationModel != null\">\\r\\n\\r\\n <div class=\"layout-column\" data-bind=\"if: $root.shortcuts.length > 0\">\\r\\n <ul data-bind=\"foreach: $root.shortcuts\" class=\"shortcuts\">\\r\\n <li>\\r\\n <a href=\"#\" data-bind=\"command: { command: $root.editNodeCommand, parameter: $data }\">\\r\\n <h4 data-bind=\"text: name\"></h4>\\r\\n </a>\\r\\n </li>\\r\\n </ul>\\r\\n </div>\\r\\n\\r\\n <div class=\"layout-column flex\" data-bind=\"foreach: $root.navigationItems\">\\r\\n <a href=\"#\" data-bind=\"with: parentGroup , extendedClick: { click: function(data, event) { $root.editGroupCommand.execute($data.parentGroup); } }\">\\r\\n <!-- ko if: (useImage == false && icon != null) -->\\r\\n <span class=\"pull-left fa fa-icon fa-fw fa-2x\" data-bind=\"css: icon\"></span>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: (useImage == true && imagePath != null) -->\\r\\n <img class=\"pull-left fa fa-icon fa-fw fa-2x\" data-bind=\"attr:{src: imagePath}\" />\\r\\n <!-- /ko -->\\r\\n <h5 class=\"pull-left\" style=\"margin-top: 4px\" data-bind=\"text: title\"></h5>\\r\\n </a>\\r\\n\\r\\n <md-tile-area class=\"editor\">\\r\\n\\r\\n <!-- ko foreach: list -->\\r\\n <!-- ko template: { name: \\'default\\' } -->\\r\\n <!-- /ko -->\\r\\n <!-- /ko -->\\r\\n\\r\\n </md-tile-area>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"layout-column flex-30 md-padding-left\">\\r\\n <!--ko compose: { view: \\'navigationmanager/views/editor\\' } --><!--/ko-->\\r\\n </div>\\r\\n </div>\\r\\n </md-part-modulecontent>\\r\\n </div>\\r\\n\\r\\n</md-module>\\r\\n\\r\\n\\r\\n<script type=\"text/html\" id=\"default\">\\r\\n <md-tile class=\"tile-medium\">\\r\\n <md-tile-content class=\"tile-editor\" data-bind=\"style: { \\'background-color\\': (color != null ? color : \\'#ccc\\') }\">\\r\\n <md-tile-row class=\"flex\">\\r\\n <md-tile-block>\\r\\n <a href=\"#\" data-bind=\"extendedClick: { click: function(data, event) { $root.editNodeCommand.execute($data); }, doubleClick: function(data, event) { $root.navigateCommand.execute($data); } }\">\\r\\n <!-- ko if: (useImage == false && icon != null) -->\\r\\n <div class=\"fa fa-icon tile-icon fa-fw fa-4x\" data-bind=\"css: icon, style: { color: $root.selectedNode == $data ? \\'#555555\\' : \\'black\\' }\"></div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: (useImage == true && imagePath != null) -->\\r\\n <img class=\"fa fa-icon tile-icon fa-fw fa-4x\" data-bind=\"attr:{src: imagePath}\" />\\r\\n <!-- /ko -->\\r\\n <div class=\"text\" data-bind=\"text: name\"></div>\\r\\n </a>\\r\\n </md-tile-block>\\r\\n <md-tile-block class=\"flex overview\">\\r\\n <div class=\"layout-row\" data-bind=\"with: getState()\">\\r\\n <!-- ko ifnot: isValid() -->\\r\\n <span data-bind=\"text: \\'Messages errors: \\'\"></span>\\r\\n <span class=\"badge\" data-bind=\"attr: { text: getNumberOfErrors(), title: getErrors() }\" style=\"background-color:#d9534f\"></span>\\r\\n <!-- /ko -->\\r\\n </div>\\r\\n <div class=\"layout-row\">\\r\\n <span class=\"caption\" data-bind=\"i18n : \\'app:modules.navigationManager.input_template\\', defaultValue : \\'Template\\'\">Template</span>\\r\\n <span class=\"value\" data-bind=\"text: \\' : \\' + template\"></span>\\r\\n </div>\\r\\n <div class=\"layout-row\">\\r\\n <span class=\"caption\" data-bind=\"i18n : \\'app:modules.navigationManager.input_dataKey\\', defaultValue : \\'Data-Key\\'\">Data-Key</span>\\r\\n <span class=\"value\" data-bind=\"text: \\' : \\' + datakey\"></span>\\r\\n </div>\\r\\n <div class=\"layout-row\">\\r\\n <span class=\"caption\" data-bind=\"i18n : \\'app:modules.navigationManager.input_color\\', defaultValue : \\'Color\\'\">Color</span>\\r\\n <span class=\"value\" data-bind=\"text: \\' : \\' + color\"></span>\\r\\n </div>\\r\\n <div class=\"layout-row\">\\r\\n <span class=\"caption\" data-bind=\"i18n : \\'app:modules.navigationManager.input_index\\', defaultValue : \\'Index\\'\">Index</span>\\r\\n <span class=\"value\" data-bind=\"text: \\' : \\' + index\"></span>\\r\\n </div>\\r\\n </md-tile-block>\\r\\n </md-tile-row>\\r\\n </md-tile-content>\\r\\n </md-tile>\\r\\n\\r\\n</script>';});\n\n", "\ndefine('text!areas/navigationmanager/views/memberconfigurator.html',[],function () { return '<md-module id=\"memberConfigurator\">\\r\\n\\r\\n\\t<md-part-modulemenu data-part=\"menu\">\\r\\n\\t\\t<div class=\"navbar-menu\">\\r\\n\\t\\t\\t<div class=\"navbar-header\">\\r\\n\\t\\t\\t\\t<button type=\"button\" class=\"navbar-toggle collapsed\" data-toggle=\"collapse\" data-target=\"#menuBar\">\\r\\n\\t\\t\\t\\t\\t<span class=\"sr-only\">Toggle navigation</span>\\r\\n\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t</button>\\r\\n\\t\\t\\t</div>\\r\\n\\r\\n\\t\\t\\t<div class=\"collapse navbar-collapse\" id=\"menuBar\">\\r\\n\\t\\t\\t\\t<ul class=\"nav navbar-nav\">\\r\\n\\t\\t\\t\\t\\t<li data-bind=\"ifnot: currentNode == null || currentNode.type == \\'UserType\\'\">\\r\\n\\t\\t\\t\\t\\t\\t<a class=\"btn navbar-btn\" href=\"#\" data-bind=\"click: function(data, event) { navigateCommand.execute(currentNode.parent); }\" data-i18n=\"app:modules.navigationManager.command_back\">Zurück</a>\\r\\n\\t\\t\\t\\t\\t</li>\\r\\n\\t\\t\\t\\t\\t<li>\\r\\n\\t\\t\\t\\t\\t\\t<a class=\"btn navbar-btn\" data-bind=\"command: saveModuleLocksCommand\" href=\"#\" data-i18n=\"app:modules.navigationManager.command_save\">Speichern</a>\\r\\n\\t\\t\\t\\t\\t</li>\\r\\n\\t\\t\\t\\t\\t<li><a class=\"btn navbar-btn\" data-bind=\"command: { command: lockNavigationNodeCommand, parameter: selectedNode }, css: { disabled: selectedNode == null || selectedNode.type != \\'Application\\' || isDisabled(selectedNode) }\" href=\"#\" data-i18n=\"app:modules.navigationManager.command_lock\"><i class=\"fa fa-arrow-left\"/>Sperren</a></li>\\r\\n\\t\\t\\t\\t\\t<li><a class=\"btn navbar-btn\" data-bind=\"command: { command: unlockNavigationNodeCommand, parameter: selectedNode }, css: { disabled: selectedNode == null || selectedNode.type != \\'Application\\' || !isDisabled(selectedNode) }\" href=\"#\" data-i18n=\"app:modules.navigationManager.command_unlock\"><i class=\"fa fa-arrow-right\\t\"/>Entsperren</a></li>\\r\\n\\t\\t\\t\\t</ul>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t</div>\\r\\n\\t</md-part-modulemenu>\\r\\n\\r\\n\\t<md-part-modulecontent data-part=\"content\">\\r\\n\\t\\t<div class=\"layout-row flex\">\\r\\n\\r\\n\\t\\t\\t<!--ko if: shortcuts.length > 0-->\\r\\n\\t\\t\\t<div class=\"layout-column\">\\r\\n\\t\\t\\t\\t<ul data-bind=\"foreach: shortcuts\" class=\"shortcuts\">\\r\\n\\t\\t\\t\\t\\t<li>\\r\\n\\t\\t\\t\\t\\t\\t<a href=\"#\" data-bind=\"command: { command: $root.editNodeCommand, parameter: $data }\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<h4 data-bind=\"text: name\"></h4>\\r\\n\\t\\t\\t\\t\\t\\t</a>\\r\\n\\t\\t\\t\\t\\t</li>\\r\\n\\t\\t\\t\\t</ul>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t\\t<!--/ko-->\\r\\n\\r\\n\\t\\t\\t<div class=\"layout-column flex\" data-bind=\"foreach: navigationItems\">\\r\\n\\t\\t\\t\\t<h5 data-bind=\"text: key\"></h5>\\r\\n\\t\\t\\t\\t<md-tile-area class=\"editor\">\\r\\n\\r\\n\\t\\t\\t\\t\\t<!-- ko foreach: list -->\\r\\n\\r\\n\\t\\t\\t\\t\\t<!-- ko if: type !== \\'Sachgebiet\\' -->\\r\\n\\t\\t\\t\\t\\t<!-- ko template: { name: \\'default\\' } -->\\r\\n\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n\\r\\n\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n\\r\\n\\t\\t\\t\\t</md-tile-area>\\r\\n\\t\\t\\t</div>\\r\\n\\r\\n\\t\\t</div>\\r\\n\\t</md-part-modulecontent>\\r\\n</md-module>\\r\\n\\r\\n\\r\\n<script type=\"text/html\" id=\"default\">\\r\\n\\t<md-tile class=\"tile-small layout-column\">\\r\\n\\t\\t<md-tile-content class=\"tile-editor\">\\r\\n\\t\\t\\t<md-tile-row class=\"flex\">\\r\\n\\t\\t\\t\\t<md-tile-block class=\"\" data-bind=\"css: { \\'gradient\\': !$root.isDisabled($data) }\">\\r\\n\\t\\t\\t\\t\\t<a href=\"#\" data-bind=\"extendedClick: { click: function(data, event) { $root.editNodeCommand.execute($data); }, doubleClick: function(data, event) { $root.navigateCommand.execute($data); } }\">\\r\\n\\t\\t\\t\\t\\t\\t<!-- ko if: icon != null -->\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"fa fa-icon tile-icon fa-fw fa-4x\" data-bind=\"css: icon, style: { color: $root.selectedNode == $data ? \\'#555555\\' : \\'black\\' }\"></div>\\r\\n\\t\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"text\" data-bind=\"text: name\"></div>\\r\\n\\t\\t\\t\\t\\t</a>\\r\\n\\t\\t\\t\\t</md-tile-block>\\r\\n\\t\\t\\t</md-tile-row>\\r\\n\\t\\t</md-tile-content>\\r\\n\\t</md-tile>\\t\\r\\n</script>';});\n\n", "\ndefine('text!areas/organizationmanager/views/changeurl.html',[],function () { return '<div class=\"modal-dialog\">\\r\\n\\t<div class=\"modal-content\" style=\"overflow: hidden\">\\r\\n\\t\\t<form class=\"form-horizontal\">\\r\\n\\t\\t\\t<div class=\"modal-header\">\\r\\n\\t\\t\\t\\t<h3 data-i18n=\"app:modules.organizationmanager.headline_changeUrl\">URL ändern</h3>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t\\t<div class=\"modal-body\" style=\"overflow: auto\">\\r\\n\\t\\t\\t\\t<label for=\"url\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.organizationmanager.label_newUrl\">Neue URL</label> \\r\\n\\t\\t\\t\\t<div class=\"col-lg-8\">\\r\\n\\t\\t\\t\\t\\t<input id=\"url\" class=\"form-control\" type=\"text\" data-bind=\"value: newUri\" />\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t\\t<div class=\"modal-footer\">\\r\\n\\t\\t\\t\\t<div class=\"pull-right\">\\r\\n\\t\\t\\t\\t\\t<button id=\"changeUri\" class=\"btn\" data-bind=\"click: changeUri\" data-i18n=\"app:modules.organizationmanager.command_change\">Ändern</button>\\r\\n\\t\\t\\t\\t\\t<button id=\"cancelPasswordReset\" class=\"btn btn-primary\" data-bind=\"click: cancel\" data-i18n=\"app:modules.organizationmanager.command_cancel\">Abbrechen</button>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t</form>\\r\\n\\t</div>\\r\\n</div>';});\n\n", "\ndefine('text!areas/organizationmanager/views/index.html',[],function () { return '<md-module id=\"organizationmanager\">\\r\\n\\t<div class=\"layout-row flex\" data-bind=\"pagedView: { controller: controller }\">\\r\\n\\r\\n\\t\\t<md-part-modulemenu data-part=\"menu\">\\r\\n\\t\\t\\t<div class=\"navbar-menu\">\\r\\n\\t\\t\\t\\t<div class=\"navbar-header\">\\r\\n\\t\\t\\t\\t\\t<button type=\"button\" class=\"navbar-toggle collapsed\" data-toggle=\"collapse\" data-target=\"#menuBar\">\\r\\n\\t\\t\\t\\t\\t\\t<span class=\"sr-only\">Toggle navigation</span>\\r\\n\\t\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t\\t</button>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\r\\n\\t\\t\\t\\t<div class=\"collapse navbar-collapse\" id=\"menuBar\">\\r\\n\\t\\t\\t\\t\\t<ul class=\"nav navbar-nav\">\\r\\n\\t\\t\\t\\t\\t\\t<li data-bind=\"if: $parent.showAccountant\"><a class=\"btn navbar-btn\" href=\"#\" data-bind=\"click: function(data, event) { $parent.goBack(); }\" data-i18n=\"app:modules.organizationmanager.command_back\"> Zurück</a></li>\\r\\n\\t\\t\\t\\t\\t\\t<li>\\r\\n\\t\\t\\t\\t\\t\\t\\t<a class=\"btn navbar-btn\" href=\"#\" data-bind=\"click: function(data, event) { $parent.changeOrganizationUri(); }, css: { disabled: !$parent.isSelectedOrganizationStb() }\" data-i18n=\"app:modules.organizationmanager.command_changeUri\">\\r\\n\\t\\t\\t\\t\\t\\t\\t Uri ändern\\r\\n\\t\\t\\t\\t\\t\\t\\t</a>\\r\\n\\t\\t\\t\\t\\t\\t</li>\\r\\n\\t\\t\\t\\t\\t\\t<li>\\r\\n\\t\\t\\t\\t\\t\\t\\t<a class=\"btn navbar-btn\" href=\"#\" data-bind=\"command: { command: $parent.resendActivationCommand, parameter: $parent.selectedItems()[0] }, css: { disabled: !$parent.isSelectedOrganizationStb() }\" data-i18n=\"app:modules.organizationmanager.command_portalActivation\">\\r\\n\\t\\t\\t\\t\\t\\t\\t Erneute Portalaktivierung\\r\\n\\t\\t\\t\\t\\t\\t\\t</a>\\r\\n\\t\\t\\t\\t\\t\\t</li>\\r\\n\\t\\t\\t\\t\\t\\t<li>\\r\\n\\t\\t\\t\\t\\t\\t\\t<a class=\"btn navbar-btn\" href=\"#\" data-bind=\"command: { command: $parent.createInfrastructureCommand, parameter: $parent.selectedItems()[0] }, css: { disabled: !$parent.isSelectedOrganizationStb() }\" data-i18n=\"app:modules.organizationmanager.command_createDatabase\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<i class=\"fa fa-send\"></i> Create Database\\r\\n\\t\\t\\t\\t\\t\\t\\t</a>\\r\\n\\t\\t\\t\\t\\t\\t</li>\\r\\n\\t\\t\\t\\t\\t\\t<li>\\r\\n\\t\\t\\t\\t\\t\\t\\t<a class=\"btn navbar-btn\" href=\"#\" data-bind=\"command: { command: $parent.downloadOrgPdfCommand, parameter: $parent.selectedItems()[0] }, css: { disabled: $parent.selectedItems().length != 1 }\" data-i18n=\"app:modules.organizationmanager.command_downloadData\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<i class=\"fa fa-download\"></i> Zugangsdaten herunterladen\\r\\n\\t\\t\\t\\t\\t\\t\\t</a>\\r\\n\\t\\t\\t\\t\\t\\t</li>\\r\\n\\t\\t\\t\\t\\t\\t<li>\\r\\n\\t\\t\\t\\t\\t\\t\\t<a class=\"btn navbar-btn\" href=\"#\" data-bind=\"command: $parent.findAndShowGatewayDataCommand, css: { disabled: $parent.selectedItems().length != 1 }\" data-i18n=\"app:modules.organizationmanager.command_showGatewayData\">\\r\\n\\t\\t\\t\\t\\t\\t\\t Gateway Zugangsdaten anzeigen\\r\\n\\t\\t\\t\\t\\t\\t\\t</a>\\r\\n\\t\\t\\t\\t\\t\\t</li>\\r\\n\\t\\t\\t\\t\\t</ul>\\r\\n\\r\\n\\t\\t\\t\\t\\t<form class=\"navbar-form navbar-right\" data-bind=\"submit: function() { $root.getOrganizations(); }\">\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"form-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<input class=\"form-control\" type=\"text\" id=\"org\" placeholder=\"Suche\" data-bind=\"value: $parent.name, valueUpdate: [\\'afterkeydown\\'], i18n:\\'[placeholder]app:modules.organizationmanager.placeholder_search\\'\">\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t</form>\\r\\n\\r\\n\\t\\t\\t\\t\\t<ul class=\"nav navbar-nav navbar-right\">\\r\\n\\t\\t\\t\\t\\t\\t<li class=\"dropdown\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<a class=\"btn navbar-btn dropdown-toggle\" data-toggle=\"dropdown\" href=\"#\"><!-- ko text: $parent.typ.displayName--><!-- /ko --> <b class=\"caret\"></b></a>\\r\\n\\t\\t\\t\\t\\t\\t\\t<ul class=\"dropdown-menu\" data-bind=\"foreach: $parent.organizationTypes\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<li data-bind=\"css: { active: $root.typ.displayName == displayName }\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<a href=\"#\" data-bind=\"click: function(data, event) { $root.typ = $data; }\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span style=\"margin-right: 5px\" data-bind=\"text: displayName\"></span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t</a>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</li>\\r\\n\\t\\t\\t\\t\\t\\t\\t</ul>\\r\\n\\t\\t\\t\\t\\t\\t</li>\\r\\n\\t\\t\\t\\t\\t</ul>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t</md-part-modulemenu>\\r\\n\\r\\n\\t\\t<md-part-modulefilter data-part=\"filter-left\" style=\"width: 200px\" data-bind=\"css: $parent.searched ? \\'border-right\\':\\'\\'\">\\r\\n\\t\\t\\t<div data-bind=\"if: $parent.searched\">\\r\\n\\t\\t\\t\\t<div class=\"panel-heading\" style=\"margin-right: 10px\" data-bind=\"i18n : \\'app:modules.organizationmanager.headline_showResult\\', defaultValue : \\'Ergebnisse anzeigen für\\'\">Ergebnisse anzeigen für</div>\\r\\n\\t\\t\\t\\t<div data-bind=\"if: !$parent.showAccountant\">\\r\\n\\t\\t\\t\\t\\t<div class=\"form-horizontal\">\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"form-group\"></div>\\r\\n\\t\\t\\t\\t\\t\\t<p style=\"font-weight: bold\" data-bind=\"i18n : \\'app:modules.organizationmanager.headline_client\\', defaultValue : \\'Mandanten\\'\">Mandanten</p>\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"form-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<div class=\"col-lg-12\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<label data-i18n=\"app:modules.organizationmanager.input_filterClients\"><input class=\"ace\" type=\"checkbox\" data-bind=\"checked: $parent.greaterThan10Members\"/>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"lbl\" data-bind=\"i18n : \\'app:modules.organizationmanager.input_filterClients\\', defaultValue : \\' > 10 Mandanten\\'\"> > 10 Mandanten</span></label>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t</md-part-modulefilter>\\r\\n\\r\\n\\t\\t<md-part-modulecontent data-part=\"content\">\\r\\n\\r\\n\\t\\t\\t<script type=\"text/html\" id=\"checkboxTemplate\">\\r\\n <label class=\"custom-checkbox\">\\r\\n\\t\\t\\t\\t<input type=\"checkbox\" data-bind=\"checkedValue: $parent, checked: $root.selectedItems\"/>\\r\\n <span></span>\\r\\n </label>\\r\\n\\t\\t\\t</script>\\r\\n\\r\\n\\t\\t\\t<script type=\"text/html\" id=\"showClients\">\\r\\n\\t\\t\\t\\t<!-- ko if: $root.showClientLink($parent)-->\\r\\n\\t\\t\\t\\t<a href=\"#\" data-bind=\"click: function(data, event) { $root.getClientsOfOrganization($parent); }, text: $parent.countClientsOrTaxConsultant\"/>\\r\\n\\t\\t\\t\\t<!-- /ko-->\\r\\n\\t\\t\\t\\t<!-- ko if: !$root.showClientLink($parent) -->\\r\\n\\t\\t\\t\\t<div><span data-bind=\"text: $parent.countClientsOrTaxConsultant\"></span></div>\\r\\n\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t</script>\\r\\n\\r\\n\\t\\t\\t<script type=\"text/html\" id=\"showMemberButton\">\\r\\n\\t\\t\\t\\t<a href=\"#\" data-bind=\"text: $parent.memberCount, click: function(data, event) { $root.showMembers($parent); }\"></a>\\r\\n\\t\\t\\t</script>\\r\\n\\r\\n\\t\\t\\t<script type=\"text/html\" id=\"directAccessButton\">\\r\\n\\t\\t\\t\\t<a href=\"#\" data-bind=\"command: { command: $root.directLoginOrgCommand, parameter: $parent }, text: $parent.url\"></a>\\r\\n\\t\\t\\t</script>\\r\\n\\r\\n\\t\\t\\t<div class=\"pull-fullheight\" data-bind=\"if: $parent.searched\">\\r\\n\\t\\t\\t\\t<div class=\"panel-heading\" data-bind=\"i18n:\\'app:modules.organizationmanager.headline_organizations\\'\">Organisationen</div>\\r\\n\\r\\n\\t\\t\\t\\t<div class=\"dataGrid\" data-bind=\"dataList: {\\r\\n\\t\\t\\t\\tcontroller: settings.controller,\\r\\n\\t\\t\\t\\tselectedItems: $parent.selectedItems,\\r\\n\\t\\t\\t\\tcolumns: [\\r\\n\\t\\t\\t\\t\\t{ headerText: \\'\\', name: \\'isSelected\\', template: \\'checkboxTemplate\\'},\\r\\n\\t\\t\\t\\t\\t{ headerText: \\'Name\\', i18n: \\'app:modules.organizationmanager.gridHeader_name\\', name: \\'name\\', sortable: true },\\r\\n\\t\\t\\t\\t\\t{ headerText: \\'Typ\\', i18n: \\'app:modules.organizationmanager.gridHeader_organizationType\\', name: \\'organizationType\\', sortable: true },\\r\\n\\t\\t\\t\\t\\t{ headerText: \\'Ma/St\\', i18n: \\'app:modules.organizationmanager.gridHeader_clientsOrTaxConsultant\\', name: \\'countClientsOrTaxConsultant\\', template: \\'showClients\\', sortable: false },\\r\\n\\t\\t\\t\\t\\t{ headerText: \\'Mitarbeiter\\', i18n: \\'app:modules.organizationmanager.gridHeader_employee\\', name: \\'memberCount\\', template: \\'showMemberButton\\' },\\r\\n\\t\\t\\t\\t\\t{ headerText: \\'Key\\', i18n: \\'app:modules.organizationmanager.gridHeader_externalKey\\', name: \\'externalKey\\', sortable: false},\\r\\n\\t\\t\\t\\t\\t{ headerText: \\'URL\\', i18n: \\'app:modules.organizationmanager.gridHeader_url\\', name: \\'url\\', template: \\'directAccessButton\\' },\\r\\n\\t\\t\\t\\t\\t{ headerText: \\'Server\\', i18n: \\'app:modules.organizationmanager.gridHeader_server\\', name: \\'databaseConnection\\', sortable: false },\\r\\n\\t\\t\\t\\t]}\">\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t</md-part-modulecontent>\\r\\n\\r\\n\\t</div>\\r\\n</md-module>\\r\\n';});\n\n", "\ndefine('text!areas/organizationmanager/views/networkmembers.html',[],function () { return '<md-module id=\"organizationmanager\">\\r\\n\\t\\t<div class=\"layout-row flex\" data-bind=\"pagedView: { controller: controller }\">\\r\\n\\r\\n\\t\\t\\t\\t<md-part-modulemenu data-part=\"menu\">\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"navbar-menu\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"navbar-header\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<button type=\"button\" class=\"navbar-toggle collapsed\" data-toggle=\"collapse\" data-target=\"#menuBar\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"sr-only\">Toggle navigation</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</button>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"collapse navbar-collapse\" id=\"menuBar\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<ul class=\"nav navbar-nav\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<li><a class=\"btn navbar-btn\" href=\"#\" data-bind=\"click: function (data, event) { $parent.goBack();}\" data-i18n=\"app:modules.organizationmanager.command_back\"> Zurück</a></li>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<li><a class=\"btn navbar-btn\" href=\"#\" data-bind=\"command: { command: $parent.downloadMemberPdfCommand, parameter: $parent.selectedItems()[0] }, css: { disabled: $parent.selectedItems().length != 1 }\" data-i18n=\"app:modules.organizationmanager.command_downloadData\"><i class=\" fa fa-download\"></i> Zugangsdaten herunterladen</a></li>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<li><a class=\"btn navbar-btn\" href=\"#\" data-bind=\"command: { command: $parent.showUserDataCommand, parameter: $parent.selectedItems()[0] }, css: { disabled: $parent.selectedItems().length != 1 }\" data-i18n=\"app:modules.organizationmanager.command_showUserData\"> Benutzerdaten anzeigen</a></li>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</ul>\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<form class=\"navbar-form navbar-right\" data-bind=\"submit: function() { $root.memberSearch(); }\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<input class=\"form-control\" type=\"text\" id=\"memberSearch\" placeholder=\"Suche\" data-bind=\"value: $parent.searchLogin\" />\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</form>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</md-part-modulemenu>\\r\\n\\r\\n\\t\\t\\t\\t<md-part-modulefilter data-part=\"filter-left\">\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"panel-heading\" style=\"margin-right: 10px\" data-i18n=\"app:modules.organizationmanager.headline_showResult\">Ergebnisse anzeigen für</div>\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"form-horizontal\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"form-group\"></div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<p style=\"font-weight: bold\" data-i18n=\"app:modules.organizationmanager.headline_employeeTypes\"> Mitarbeitertypen</p>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"form-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<!-- ko foreach: $parent.possibleUserTypes -->\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"col-lg-12\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<label><input class=\"ace\" type=\"checkbox\" data-bind=\"checked: $root.selectedUserTypes, value: $data\" /><span class=\"lbl\" data-bind=\"text: \\' \\' + $root.getDisplayNameForMemberType($data)\"></span></label>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</md-part-modulefilter>\\r\\n\\r\\n\\t\\t\\t\\t<md-part-modulecontent data-part=\"content\">\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"panel-heading\" data-i18n=\"app:modules.organizationmanager.headline_employee\">Mitarbeiter</div>\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t<script type=\"text/html\" id=\"checkboxTemplate\">\\r\\n <label class=\"custom-checkbox\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<input type=\"checkbox\" data-bind=\"checkedValue: $parent, checked: $root.selectedItems\" />\\r\\n <span></span>\\r\\n </label>\\r\\n\\t\\t\\t\\t\\t\\t</script>\\r\\n\\t\\t\\t\\t\\t\\t<script type=\"text/html\" id=\"accessNumberTemplate\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<span href=\"#\" data-bind=\"text: $root.organizationAccessNumber\"></span>\\r\\n\\t\\t\\t\\t\\t\\t</script>\\r\\n\\t\\t\\t\\t\\t\\t<script type=\"text/html\" id=\"URLTemplate\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<a href=\"#\" data-bind=\"command: { command: $root.directLoginMemberCommand, parameter: $parent }, text: $root.organizationUrl\"></a>\\r\\n\\t\\t\\t\\t\\t\\t</script>\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"dataGrid\" data-bind=\"dataList: {\\r\\n\\t\\t\\t\\tcontroller: settings.controller,\\r\\n\\t\\t\\t\\tcolumns: [\\r\\n\\t\\t\\t\\t\\t{ headerText: \\'\\', name: \\'isSelected\\', template: \\'checkboxTemplate\\'},\\r\\n\\t\\t\\t\\t\\t{ headerText: \\'Anmeldename\\', i18n: \\'app:modules.organizationmanager.gridHeader_loginName\\', name: \\'loginName\\', sortable: true},\\r\\n\\t\\t\\t\\t\\t{ headerText: \\'Email\\', i18n: \\'app:modules.organizationmanager.gridHeader_eMail\\', name: \\'eMail\\', sortable: false},\\r\\n\\t\\t\\t\\t\\t{ headerText: \\'Letzte Anm.\\', i18n: \\'app:modules.organizationmanager.gridHeader_lastLogin\\', name: \\'lastLogin\\', rowValue: function(item) { return item.lastLogin != null ? item.lastLogin.format(\\'L LTS\\') : \\'\\' }, sortable: false},\\r\\n\\t\\t\\t\\t\\t{ headerText: \\'Anzahl Anmeldungen\\', i18n: \\'app:modules.organizationmanager.gridHeader_loginCount\\', name: \\'loginCount\\', sortable: false},\\r\\n\\t\\t\\t\\t\\t{ headerText: \\'Zugangsnr.\\', i18n: \\'app:modules.organizationmanager.gridHeader_accessNumber\\', template: \\'accessNumberTemplate\\'},\\r\\n\\t\\t\\t\\t\\t{ headerText: \\'URL\\', i18n: \\'app:modules.organizationmanager.gridHeader_url\\', template: \\'URLTemplate\\'},\\r\\n\\t\\t\\t\\t]}\">\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</md-part-modulecontent>\\r\\n\\r\\n\\t\\t</div>\\r\\n</md-module>\\r\\n';});\n\n", "\ndefine('text!areas/organizationmanager/views/userdata.html',[],function () { return '<section>\\r\\n\\t<div class=\"modal-dialog\" style=\"min-width: 350px\">\\r\\n\\t\\t<div class=\"modal-content\" style=\"overflow: hidden\">\\r\\n\\t\\t\\t<div class=\"modal-header\">\\r\\n\\t\\t\\t\\t<h3 data-i18n=\"app:modules.organizationmanager.headline_userdata\">Benutzerdaten</h3>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t\\t<div class=\"modal-body\" style=\"overflow: auto\">\\r\\n\\t\\t\\t\\t<div class=\"form-group\">\\r\\n\\t\\t\\t\\t\\t<label for=\"userData\" class=\"helptext\" data-i18n=\"app:modules.organizationmanager.helptext_userdata\">Um den unten befindlichen Text in die Zwischenablage zu kopieren markieren Sie in und drücken Sie \"Strg + C\".</label>\\r\\n\\t\\t\\t\\t\\t<textarea id=\"userData\" class=\"pull-fullwidth form-control\" readonly=\"readonly\" rows=\"12\" data-bind=\"value: userData\"></textarea>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t\\t<div class=\"modal-footer\">\\r\\n\\t\\t\\t\\t<div class=\"pull-right\" style=\"margin-left: 10px\">\\r\\n\\t\\t\\t\\t\\t<button type=\"submit\" class=\"btn btn-primary\" data-bind=\"click: close\" data-i18n=\"app:modules.organizationmanager.command_close\">Schließen</button>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t<div class=\"pull-right\">\\r\\n\\t\\t\\t\\t\\t<button type=\"button\" class=\"btn\" data-bind=\"click: selectUserData\" data-i18n=\"app:modules.organizationmanager.command_markText\">Text markieren</button>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t</div>\\r\\n\\t</div>\\r\\n</section>';});\n\n", "\ndefine('text!areas/payescapeproduct/views/index.html',[],function () { return '<div class=\"payescape-product-container\">\\r\\n <div class=\"payescape-product-container-top\">\\r\\n <div class=\"payescape-product-container-top-layer\">\\r\\n <div class=\"payescape-product-title-container\">\\r\\n <div class=\"payescape-product-title\">\\r\\n <img class=\"payescape-product-image\" data-bind=\"attr:{src: productImage}\" />\\r\\n </div>\\r\\n\\r\\n <div class=\"payescape-short-description-container\">\\r\\n <div class=\"payescape-short-description-centered-container\">\\r\\n <div class=\"payescape-short-description-top-text\">Payescape frees up your time to let you do what you do best...</div>\\r\\n <div class=\"payescape-short-description-bottom-text\">manage your business</div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"payescape-product-carousel-container\">\\r\\n <div id=\"carousel-example-generic\" class=\"carousel slide payescape-product-carousel\" data-ride=\"carousel\">\\r\\n\\r\\n <!-- Indicators -->\\r\\n <ol class=\"carousel-indicators payescape-product-carousel-indicators\">\\r\\n <li data-target=\"#carousel-example-generic\" data-slide-to=\"0\" class=\"active\"></li>\\r\\n <li data-target=\"#carousel-example-generic\" data-slide-to=\"1\"></li>\\r\\n <li data-target=\"#carousel-example-generic\" data-slide-to=\"2\"></li>\\r\\n </ol>\\r\\n\\r\\n <!-- Wrapper for slides -->\\r\\n <div class=\"carousel-inner\" role=\"listbox\">\\r\\n <div class=\"item active\">\\r\\n <div class=\"item-image payescape-carousel-1\"></div>\\r\\n </div>\\r\\n\\r\\n <div class=\"item\">\\r\\n <div class=\"item-image payescape-carousel-2\"></div>\\r\\n </div>\\r\\n\\r\\n <div class=\"item\">\\r\\n <video class=\"payescape-carousel-video\" controls>\\r\\n <source src=\"https://ocuksbstatic.blob.core.windows.net/iserve/payescape_movie.mp4\" type=\"video/mp4\">\\r\\n Your browser does not support the video tag.\\r\\n </video>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"payescape-product-description-container\">\\r\\n <div class=\"payescape-product-description-centered-container\">\\r\\n <div class=\"payescape-product-description-top-text\"><span style=\"font-weight:bold\">Payescape is an online payroll processing service</span> <br /></div>\\r\\n <div class=\"payescape-product-description-bottom-text\">For more information, and an exclusive price for Wolters Kluwer customers please click <a target=\"_blank\" style=\"color:white;text-decoration:underline\" href=\"https://www.wolterskluwer.co.uk/products-services/tax-accounting-software/PayEscape\">here</a></div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"payescape-product-container-bottom\">\\r\\n <div class=\"payescape-product-container-bottom-card\">\\r\\n <div class=\"payescape-product-tabs\">\\r\\n <input name=\"payescape-product-tabs\" id=\"testimonials\" type=\"radio\" checked>\\r\\n <h1>\\r\\n <label for=\"testimonials\" data-bind=\"click: function(data, event) { selectTab(0) }, css: { \\'payescape-product-tab-selected\\': tabSelected === 0 }\">Testimonials</label>\\r\\n </h1>\\r\\n\\r\\n <input name=\"payescape-product-tabs\" id=\"toolkit\" type=\"radio\">\\r\\n <h1>\\r\\n <label for=\"toolkit\" data-bind=\"click: function(data, event) { selectTab(1) }, css: { \\'payescape-product-tab-selected\\': tabSelected === 1 }\">Toolkit</label>\\r\\n </h1>\\r\\n\\r\\n <input name=\"payescape-product-tabs\" id=\"informationToSendToClients\" type=\"radio\">\\r\\n <h1>\\r\\n <label for=\"informationToSendToClients\" data-bind=\"click: function(data, event) { selectTab(2) }, css: { \\'payescape-product-tab-selected\\': tabSelected === 2 }\">Information to send to Client</label>\\r\\n </h1>\\r\\n </div>\\r\\n\\r\\n <!-- ko if: tabSelected === 0-->\\r\\n <div class=\"payescape-product-testimonials-container\" data-bind=\"foreach: testimonials\">\\r\\n <div class=\"payescape-product-testimonial-container\">\\r\\n <div class=\"payescape-product-testimonial-logo-name-container\">\\r\\n <!-- ko if: image !== null && image !== undefined && image !== \"\" -->\\r\\n <div class=\"payescape-product-testimonial-logo-container\">\\r\\n <img class=\"payescape-testimonial-logo-image\" data-bind=\"attr: { src: image }\" />\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n\\r\\n <div class=\"payescape-product-testimonial-name-container\" data-bind=\"text: name\"></div>\\r\\n </div>\\r\\n\\r\\n <div class=\"payescape-product-testimonial-text-container\">\\r\\n <div class=\"payescape-product-testimonial-text\" data-bind=\"html: text\"></div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: tabSelected === 1-->\\r\\n <div class=\"payescape-product-toolkit-container\">\\r\\n <div class=\"toolkit-container\">\\r\\n <div class=\"toolkit-image-container\">\\r\\n <span class=\"toolkit-image fa fa-file-text-o\"></span>\\r\\n </div>\\r\\n <div class=\"toolkit-text-container\">\\r\\n <a class=\"toolkit-text\" href=\"https://ocuksbstatic.blob.core.windows.net/iserve/Payescape%20FAQs.pdf\" target=\\'_blank\\' title=\"FAQ\">FAQ\\'S</a>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"toolkit-container\" data-bind=\"foreach: toolkitVideos\">\\r\\n <div class=\"toolkit-image-container\">\\r\\n <span class=\"toolkit-image fa fa-youtube-play\"></span>\\r\\n </div>\\r\\n <div class=\"toolkit-text-container\">\\r\\n <a class=\"toolkit-text\" target=\\'_blank\\' data-bind=\"attr: { href: link }, text: name\"></a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: tabSelected === 2-->\\r\\n <div class=\"toolkit-container\" data-bind=\"foreach: informationToSendToClient\">\\r\\n <div class=\"toolkit-container\">\\r\\n <div class=\"toolkit-image-container\">\\r\\n <span class=\"toolkit-image fa\" data-bind=\"css: { \\'fa-file-text-o\\': icon === \\'fa-file-text-o\\',\\r\\n \\'fa-external-link\\': icon === \\'fa-external-link\\'}\"></span>\\r\\n </div>\\r\\n <div class=\"toolkit-text-container\">\\r\\n <a class=\"toolkit-text\" target=\"_blank\" data-bind=\"text: text, attr: { href: url }\"></a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n </div>\\r\\n </div>\\r\\n</div>';});\n\n", "\ndefine('text!areas/shopitemtemplate/views/createshopitems.html',[],function () { return '<md-module id=\"template\">\\r\\n\\t\\t<div class=\"layout-column flex\">\\r\\n\\t\\t\\t\\t<md-part-modulemenu>\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"navbar-menu\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"navbar-header\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<button type=\"button\" class=\"navbar-toggle collapsed\" data-toggle=\"collapse\" data-target=\"#menuBar\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"sr-only\">Toggle navigation</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</button>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"collapse navbar-collapse\" id=\"menuBar\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<ul class=\"nav navbar-nav\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<li><a class=\"btn navbar-btn\" href=\"#\" onclick=\"$(\\'#submit\\').click(); return false;\" data-i18n=\"app:modules.shopitemtemplate.command_createShopItems\"> ShopItems erstellen</a></li>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<li><a class=\"btn navbar-btn\" href=\"#\" data-bind=\"click: function(data, event) { cancel(); }\" data-i18n=\"app:modules.shopitemtemplate.command_cancel\"> Abbrechen</a></li>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</ul>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</md-part-modulemenu>\\r\\n\\r\\n\\t\\t\\t\\t<md-part-modulecontent>\\r\\n\\t\\t\\t\\t\\t\\t<form id=\"createShopItemsForm\" name=\"template\" data-bind=\"validate: { action: $root.setZuordnung }\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<fieldset>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"row\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"col-md-6\" data-bind=\"with: $root.shopitemstub\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"form-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<label for=\"name\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_name\">Name des ShopItems</label>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"col-lg-8\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<input type=\"text\" id=\"name\" placeholder=\"Name des ShopItems\" class=\"form-control\" data-bind=\"value: name\" />\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<br />\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"form-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<label for=\"name\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_description\">Beschreibung des ShopItems</label>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"col-lg-8\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<input type=\"text\" id=\"description\" placeholder=\"Beschreibung des ShopItems\" class=\"form-control\" data-bind=\"value: $parent.description\" />\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<br />\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"form-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<label for=\"shopId\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_uniqueItemId\">Applikation (UniqueItemId)</label>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"col-lg-8\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"input-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<input type=\"text\" id=\"id\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t placeholder=\"UniqueItemId des ShopItems\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t class=\"form-control\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t data-bind=\"value: $parent.uniqueItemId\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t data-i18n=\"[data-msg-required]app:modules.shopitemtemplate.attributeText_app\" data-msg-required=\"Bitte wählen Sie eine Applikation aus.\" />\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"input-group-btn\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<button class=\"btn btn-default\" data-toggle=\"modal\" data-target=\"#modules\" type=\"button\"><i class=\"fa fa-search\"></i></button>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"input-group-btn\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<button class=\"btn btn-default\" data-bind=\"click: function(data, event) { $parent.newGuidCommand(); }\" type=\"button\"><i class=\"fa fa-bar-chart\"></i></button>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<br />\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"form-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<label for=\"name\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_externalApp\">Externe Applikation</label>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"col-lg-8\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"checkbox\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<label>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<input id=\"isExternalApplication\" type=\"checkbox\" data-bind=\"checked: $parent.isExternalApplication\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"checkbox-material\"><span class=\"check\"></span></span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</label>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"form-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<label for=\"steuerberater\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_chooseTenant\">Steuerberater wählen</label>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"col-lg-8\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"input-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<input type=\"text\" id=\"id\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t placeholder=\"Anzahl der gewählten Steuerberater\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t class=\"form-control\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t data-bind=\"value: $parent.steuerberaterCount\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t readonly=\"readonly\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t data-i18n=\"[data-msg-required]app:modules.shopitemtemplate.attributeText_tenant\" data-msg-required=\"Bitte wählen Sie einen Steuerberater aus.\" />\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"input-group-btn\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<button class=\"btn btn-default\" data-toggle=\"modal\" data-target=\"#organizations\" type=\"button\"><i class=\"fa fa-search\"></i></button>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"input-group-btn\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<button class=\"btn btn-default\" data-bind=\"click: function(data, event) { $parent.steuerberaterAuswahlLeerenCommand(); }\" type=\"button\"><i class=\"fa fa-remove\"></i></button>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<br />\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"form-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<label for=\"memberTypes\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_chooseMemberTypes\">MemberTypes wählen</label>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"col-lg-8\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"input-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"pull-fullwidth\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<select multiple name=\"to\" style=\"width: 250px\" class=\"form-control chosen-select tag-input-style\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdata-placeholder=\" \"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdata-bind=\"dropdown: { options: $parent.memberTypes, selectedOptions: $parent.selectedMemberTypes }\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdata-rule-required=\"true\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdata-i18n=\"[data-msg-required]app:modules.shopitemtemplate.attributeText_memberType\" data-msg-required=\"Bitte wählen Sie einen MemberType aus\"></select>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<br />\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"row\" style=\"visibility: collapse\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"col-xs-12\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"pull-right\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<button id=\"submit\" type=\"submit\" class=\"btn btn-primary\" data-i18n=\"app:modules.shopitemtemplate.command_save\">Speichern</button>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<button class=\"btn\" type=\"reset\" data-i18n=\"app:modules.shopitemtemplate.command_cancel\">Abbrechen</button>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</fieldset>\\r\\n\\t\\t\\t\\t\\t\\t</form>\\r\\n\\r\\n\\t\\t\\t\\t</md-part-modulecontent>\\r\\n\\t\\t</div>\\r\\n</md-module>\\r\\n\\r\\n<div id=\"organizations\" class=\"modal fade in\" style=\"display: none;\" tabindex=\"-1\" role=\"dialog\">\\r\\n\\t\\t<div class=\"modal-dialog\" style=\"width: 500px\">\\r\\n\\t\\t\\t\\t<div class=\"modal-content\" style=\"overflow: hidden\">\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"modal-header\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<h3 data-i18n=\"app:modules.shopitemtemplate.headline_organizations\">Organizations</h3>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"modal-body\" style=\"overflow: auto; height: 500px\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"pull-fullheight\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<script type=\"text/html\" id=\"checkboxTemplate\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<input type=\"checkbox\" data-bind=\"checkedValue: $parent, checked: $root.selectedOrganizations\" />\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</script>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<form class=\"pull-fullwidth\" role=\"search\" data-bind=\"submit: function() { }\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<input type=\"text\" class=\"form-control\" placeholder=\"Suche\" data-bind=\"value: $root.organizationFilter, valueUpdate:[\\'afterkeydown\\',\\'propertychange\\']\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</form>\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"dataGrid\" data-bind=\"dataList: {\\r\\n controller: $root.orgaController,\\r\\n selectedItems: $root.selectedOrganizations,\\r\\n columns: [\\r\\n { headerText: \\'\\', name: \\'isSelected\\', template: \\'checkboxTemplate\\'},\\r\\n { headerText: \\'Name\\', i18n: \\'app:modules.shopitemtemplate.gridHeader_name\\', name: \\'name\\', sortable: true },\\r\\n { headerText: \\'Key\\', i18n: \\'app:modules.shopitemtemplate.gridHeader_externalKey\\', name: \\'externalKey\\', sortable: false}\\r\\n ]}\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"modal-footer\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<a href=\"#\" data-bind=\"click: function(event) { $root.submitOrganizationCommand(); }\" data-dismiss=\"modal\" class=\"btn btn-primary\" data-i18n=\"app:modules.shopitemtemplate.command_close\">Schließen</a>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t</div>\\r\\n</div>\\r\\n\\r\\n<div id=\"modules\" class=\"modal fade in\" style=\"display: none;\" tabindex=\"-1\" role=\"dialog\">\\r\\n\\t\\t<div class=\"modal-dialog\" style=\"width: 500px\">\\r\\n\\t\\t\\t\\t<div class=\"modal-content\" style=\"overflow: hidden\">\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"modal-header\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<h3 data-i18n=\"app:modules.shopitemtemplate.headline_modules\">Module</h3>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<h4 data-bind=\"text: $root.uniqueItemId\" data-i18n=\"app:modules.shopitemtemplate.headline_uniqueItemId\">uniqueItemId</h4>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"modal-body\" style=\"overflow: auto; height: 500px\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"row\" data-bind=\"foreach: $root.modules\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"col-md-3 col-sm-4\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<a href=\"#\" data-bind=\"click: function(data, event) { $parent.submitCommand(data); }\" data-dismiss=\"modal\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<!--ko text: name--><!--/ko-->\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</a>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"modal-footer\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<a href=\"#\" data-dismiss=\"modal\" class=\"btn btn-primary\" data-i18n=\"app:modules.shopitemtemplate.command_close\">Schließen</a>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t</div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/shopitemtemplate/views/edit.html',[],function () { return '<md-module id=\"template\">\\r\\n <div class=\"layout-column flex\">\\r\\n <md-part-modulemenu>\\r\\n <div class=\"navbar-menu\">\\r\\n <div class=\"navbar-header\">\\r\\n <button type=\"button\" class=\"navbar-toggle collapsed\" data-toggle=\"collapse\" data-target=\"#menuBar\">\\r\\n <span class=\"sr-only\">Toggle navigation</span>\\r\\n <span class=\"icon-bar\"></span>\\r\\n <span class=\"icon-bar\"></span>\\r\\n <span class=\"icon-bar\"></span>\\r\\n </button>\\r\\n </div>\\r\\n\\r\\n <div class=\"collapse navbar-collapse\" id=\"menuBar\">\\r\\n <ul class=\"nav navbar-nav\">\\r\\n <li><a class=\"btn navbar-btn\" href=\"#\" onclick=\"$(\\'#submit\\').click(); return false;\" data-i18n=\"app:modules.shopitemtemplate.command_save\"> Speichern</a></li>\\r\\n <!--<li><a class=\"btn navbar-btn\" href=\"#\" data-bind=\"command: { command: $root.createShopItemsCommand, parameter: $root.template}\" data-i18n=\"app:modules.shopitemtemplate.command_create\"><i class=\"fa fa-camera-retro\" /> Erstelle ShopItems</a></li>-->\\r\\n <!-- <li><a class=\"btn navbar-btn\" href=\"#\" data-bind=\"click: function(data, event) { cancel(); }\"> Abbrechen</a></li>-->\\r\\n <li><a class=\"btn navbar-btn\" href=\"#\" data-bind=\"click: function(data, event) { cancel(); }\"> <!--ko text: $root.closeButtonText--><!--/ko--> </a></li>\\r\\n </ul>\\r\\n </div>\\r\\n </div>\\r\\n </md-part-modulemenu>\\r\\n\\r\\n <md-part-modulecontent>\\r\\n <form id=\"itemTemplateForm\" name=\"template\" data-bind=\"validate: { action: $root.update }\">\\r\\n <fieldset>\\r\\n\\r\\n <div class=\"row\">\\r\\n <div class=\"col-md-6\" data-bind=\"with: template\">\\r\\n <div class=\"form-group\">\\r\\n <label for=\"name\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_name\">Name</label>\\r\\n <div class=\"col-lg-8\">\\r\\n <input type=\"text\" id=\"name\" placeholder=\"Name des Templates\" class=\"form-control\" data-bind=\"value: name\" />\\r\\n </div>\\r\\n </div>\\r\\n <br />\\r\\n <div class=\"form-group\">\\r\\n <label for=\"location\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_location\">Location</label>\\r\\n <div class=\"col-lg-8\">\\r\\n <input type=\"text\" id=\"location\" placeholder=\"Location des Templates\" class=\"form-control\" data-bind=\"value: target\" />\\r\\n </div>\\r\\n </div>\\r\\n <br />\\r\\n\\r\\n\\r\\n <div class=\"form-group\">\\r\\n <label for=\"configuration\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_configuration\">Configuration</label>\\r\\n <div class=\"col-lg-8\">\\r\\n <textarea rows=\"10\" id=\"configurationXml\" placeholder=\"ConfigurationXml\" class=\"form-control pull-fullwidth\" data-bind=\"value: settingsXml\"></textarea>\\r\\n </div>\\r\\n </div>\\r\\n <br />\\r\\n <div class=\"form-group\">\\r\\n <label for=\"memberType\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_memberType\">Member Type</label>\\r\\n <div class=\"col-lg-8\">\\r\\n <input type=\"text\" id=\"memberType\" placeholder=\"MemberType des Templates\" class=\"form-control\" data-bind=\"value: memberType\" />\\r\\n </div>\\r\\n </div>\\r\\n <br />\\r\\n <div class=\"form-group\">\\r\\n <label for=\"category\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_category\">Category</label>\\r\\n <div class=\"col-lg-8\">\\r\\n <input type=\"text\" id=\"category\" placeholder=\"Category des Templates\" class=\"form-control\" data-bind=\"value: category\" />\\r\\n </div>\\r\\n </div>\\r\\n <br />\\r\\n <hr />\\r\\n\\r\\n <div class=\"form-group\">\\r\\n <label for=\"rowKey\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_uniqueItemId\">Row Key</label>\\r\\n <div class=\"col-lg-8\">\\r\\n <input type=\"text\" id=\"rowKey\"\\r\\n placeholder=\"Id des Templates\"\\r\\n class=\"form-control\"\\r\\n data-bind=\"value: rowKey\"\\r\\n readonly=\"readonly\" />\\r\\n </div>\\r\\n </div>\\r\\n <br />\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"row\" style=\"visibility: collapse\">\\r\\n <div class=\"col-xs-12\">\\r\\n <div class=\"pull-right\">\\r\\n <button id=\"submit\" type=\"submit\" class=\"btn btn-primary\" data-i18n=\"app:modules.shopitemtemplate.command_save\">Speichern</button>\\r\\n <button class=\"btn\" type=\"reset\" data-i18n=\"app:modules.shopitemtemplate.command_cancel\">Abbrechen</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </fieldset>\\r\\n </form>\\r\\n </md-part-modulecontent>\\r\\n </div>\\r\\n\\r\\n</md-module>\\r\\n';});\n\n", "\ndefine('text!areas/shopitemtemplate/views/index.html',[],function () { return '<md-module id=\"shopitemtemplate\">\\r\\n <div class=\"layout-row flex\" data-bind=\"pagedView: { controller: controller }\">\\r\\n\\r\\n\\t\\t<md-part-modulemenu data-part=\"menu\">\\r\\n\\t\\t\\t\\t<div class=\"navbar-menu\">\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"navbar-header\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<button type=\"button\" class=\"navbar-toggle collapsed\" data-toggle=\"collapse\" data-target=\"#menuBar\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"sr-only\">Toggle navigation</span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</button>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"collapse navbar-collapse\" id=\"menuBar\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<ul class=\"nav navbar-nav\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<li><a class=\"btn navbar-btn\" href=\"#\" data-bind=\"click: function(data, event) { refresh(); }\" data-i18n=\"app:modules.shopitemtemplate.command_refresh\"> Aktualisieren</a></li>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t<li><a class=\"btn navbar-btn\" href=\"#\" data-bind=\"command: $parent.writeCommand\" data-i18n=\"app:modules.shopitemtemplate.command_newTemplate\"> Neues Template</a></li>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</ul>\\r\\n\\t\\t\\t\\t\\t\\t\\t<form class=\"navbar-form navbar-right\" role=\"search\" data-bind=\"submit: function() { }\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"form-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<input type=\"text\" class=\"form-control\" placeholder=\"Suche\" data-bind=\"value: $parent.name, valueUpdate:[\\'afterkeydown\\',\\'propertychange\\'], i18n:\\'[placeholder]app:modules.shopitemtemplate.placeholder_search\\'\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</form>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t</md-part-modulemenu>\\r\\n\\r\\n <md-part-modulecontent data-part=\"content\">\\r\\n\\t <div class=\"dataGrid\" data-bind=\"dataList: {\\r\\n\\t\\t\\t\\t\\tcontroller: settings.controller,\\r\\n\\t\\t\\t\\t\\tselectedItems: $parent.selectedItems,\\r\\n\\t\\t\\t\\t\\tcolumns: [\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{ headerText: \\'Name\\', i18n: \\'app:modules.shopitemtemplate.gridHeader_name\\', name: \\'name\\', width: \\'300px\\' , sortable: true, template:\\'itemtemplateTemplate\\'},\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{ headerText: \\'Location\\', i18n: \\'app:modules.shopitemtemplate.gridHeader_location\\', name: \\'target\\'},\\r\\n { headerText: \\'Member Type\\', i18n: \\'Member Type\\', name: \\'memberType\\'},\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{ headerText: \\'Category\\', i18n: \\'app:modules.shopitemtemplate.gridHeader_category\\', name: \\'category\\', width: \\'200px\\', sortable: true}\\r\\n\\t\\t\\t\\t\\t\\t\\t]}\">\\r\\n\\t </div>\\r\\n\\t\\t\\t<script type=\"text/html\" id=\"itemtemplateTemplate\">\\r\\n\\t\\t\\t\\t<a href=\"#\" data-bind=\"text: $parent.name, command: { command: $root.editCommand, parameter: $parent }\"></a>\\r\\n\\t\\t\\t</script>\\r\\n\\t\\t\\t<script type=\"text/html\" id=\"checkboxTemplate\">\\r\\n <label class=\"custom-checkbox\">\\r\\n\\t\\t\\t\\t<input type=\"checkbox\" data-bind=\"checkedValue: $parent, checked: $root.selectedItems\" />\\r\\n <span></span>\\r\\n </label>\\r\\n\\t\\t\\t</script>\\r\\n\\r\\n </md-part-modulecontent>\\r\\n </div>\\r\\n\\r\\n</md-module>\\r\\n\\r\\n\\r\\n\\r\\n';});\n\n", "\ndefine('text!areas/shopitemtemplate/views/write.html',[],function () { return '<md-module id=\"template\">\\r\\n\\r\\n\\t<div class=\"layout-column flex\">\\r\\n\\t\\t<md-part-modulemenu>\\r\\n\\t\\t\\t<div class=\"navbar-menu\">\\r\\n\\t\\t\\t\\t<div class=\"navbar-header\">\\r\\n\\t\\t\\t\\t\\t<button type=\"button\" class=\"navbar-toggle collapsed\" data-toggle=\"collapse\" data-target=\"#menuBar\">\\r\\n\\t\\t\\t\\t\\t\\t<span class=\"sr-only\">Toggle navigation</span>\\r\\n\\t\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t\\t\\t<span class=\"icon-bar\"></span>\\r\\n\\t\\t\\t\\t\\t</button>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\r\\n\\t\\t\\t\\t<div class=\"collapse navbar-collapse\" id=\"menuBar\">\\r\\n\\t\\t\\t\\t\\t<ul class=\"nav navbar-nav\">\\r\\n\\t\\t\\t\\t\\t\\t<li><a class=\"btn navbar-btn\" href=\"#\" onclick=\"$(\\'#submit\\').click(); return false;\" data-i18n=\"app:modules.shopitemtemplate.command_save\"> Speichern</a></li>\\r\\n\\t\\t\\t\\t\\t\\t<li><a class=\"btn navbar-btn\" href=\"#\" data-bind=\"click: function(data, event) { cancel(); }\" data-i18n=\"app:modules.shopitemtemplate.command_cancel\"> Abbrechen</a></li>\\r\\n\\t\\t\\t\\t\\t</ul>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t</md-part-modulemenu>\\r\\n\\r\\n\\t\\t<md-part-modulecontent>\\r\\n\\t\\t\\t<form id=\"shopItemTemplateNewForm\" name=\"template\" data-bind=\"validate: { action: $root.save }\">\\r\\n\\t\\t\\t\\t<fieldset>\\r\\n\\t\\t\\t\\t\\t<div class=\"row\">\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"col-md-6\">\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t<div class=\"form-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<label for=\"name\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_name\">Name</label>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"col-lg-8\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<input type=\"text\" id=\"name\" placeholder=\"Name des Templates\" class=\"form-control\" data-bind=\"value: name\" />\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t<br />\\r\\n\\t\\t\\t\\t\\t\\t\\t<div class=\"form-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<label for=\"location\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_location\">Location</label>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"col-lg-8\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<input type=\"text\" id=\"location\" placeholder=\"Location des Templates\" class=\"form-control\" data-bind=\"value: location\" />\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t<br />\\r\\n\\t\\t\\t\\t\\t\\t\\t<div class=\"form-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<label for=\"configuration\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_configuration\">Configuration</label>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"col-lg-8\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<textarea rows=\"10\" id=\"configurationXml\" placeholder=\"<config><localhosted>false</localhosted><appendtokenid>true</appendtokenid></config>\" class=\"form-control pull-fullwidth\" data-bind=\"value: configurationXml\"></textarea>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t<br />\\r\\n\\t\\t\\t\\t\\t\\t\\t<div class=\"form-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<label for=\"memberType\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_memberType\">Member Type</label>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"col-lg-8\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<input type=\"text\" id=\"memberType\" placeholder=\"Member Type des Templates\" class=\"form-control\" data-bind=\"value: memberType\" />\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t<br />\\r\\n\\t\\t\\t\\t\\t\\t\\t<div class=\"form-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<label for=\"category\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_category\">Category</label>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"col-lg-8\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<input type=\"text\" id=\"category\" placeholder=\"Category des Templates\" class=\"form-control\" data-bind=\"value: category\" />\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t<br />\\r\\n\\t\\t\\t\\t\\t\\t\\t<div class=\"form-group\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<label for=\"templateId\" class=\"col-lg-4 control-label\" data-i18n=\"app:modules.shopitemtemplate.input_templateId\">TemplateId</label>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<div class=\"col-lg-8\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<input type=\"text\" id=\"id\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t placeholder=\"Id des Templates\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t class=\"form-control\"\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t data-bind=\"value: id\" />\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t\\t<br />\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\r\\n\\t\\t\\t\\t\\t<div class=\"row\" style=\"visibility: collapse\">\\r\\n\\t\\t\\t\\t\\t\\t<div class=\"col-xs-12\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<div class=\"pull-right\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<button id=\"submit\" type=\"submit\" class=\"btn btn-primary\" data-i18n=\"app:modules.shopitemtemplate.command_save\">Speichern</button>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<button class=\"btn\" type=\"reset\" data-i18n=\"app:modules.shopitemtemplate.command_save\">Abbrechen</button>\\r\\n\\t\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</fieldset>\\r\\n\\t\\t\\t</form>\\r\\n\\t\\t</md-part-modulecontent>\\r\\n\\t</div>\\r\\n</md-module>\\r\\n';});\n\n", "\ndefine('text!areas/tools/views/index.html',[],function () { return '<div class=\"tools_landing_page\">\\r\\n\\r\\n <div class=\"wk-app-store\"> \\r\\n <div class=\"wk-content\">\\r\\n <button class=\"button invert nofill\" data-bind=\"click:function(event,args){$root.wkappstoreClick();}\">WK App Store</button>\\r\\n\\r\\n <div class=\"tools-text\">\\r\\n Enter here for Wolters Kluwer applications <br /> to help you as a Tax Advisor\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"iServe\">\\r\\n <div class=\"iServe-content\">\\r\\n <button class=\"button invert nofill\" data-bind=\"click:function(event,args){$root.iServeClick();}\">i-Serve</button>\\r\\n\\r\\n <div class=\"tools-text\">\\r\\n Enter here to browse products that you can <br /> send to your client to help run their business\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n</div>';});\n\n", "\ndefine('text!areas/tutorial/views/startuptutorial.html',[],function () { return '<div class=\"tutorialframe-main-div-container\">\\r\\n <div class=\"tutorialframe-main-div\">\\r\\n\\r\\n <iframe class=\"tutorialframe-iframe\" data-bind=\"attr: {src: $data.introductionTutorialUrl}\" frameborder=\"0\" scrolling=\"yes\"></iframe>\\r\\n\\r\\n <div class=\"tutorialframe-button-div\">\\r\\n <button class=\"oneclick-blue-button\" data-bind=\"click: close.bind($data)\">Ok, got it</button>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/tutorialpopup/views/index.html',[],function () { return '<div class=\"tutorialframe-main-div-container\">\\r\\n\\t<div class=\"tutorialframe-main-div\">\\r\\n\\r\\n\\t\\t<iframe class=\"tutorialframe-iframe\" data-bind=\"attr: {src: navigationUrl}\" frameborder=\"0\" scrolling=\"yes\"></iframe>\\r\\n\\r\\n\\t\\t<div class=\"tutorialframe-button-div\">\\r\\n\\t\\t\\t<button class=\"oneclick-blue-button\" data-bind=\"click: $data.closeTutorialPopUp\">Ok, got it</button>\\r\\n\\t\\t</div>\\r\\n\\t</div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/tutorials/views/index.html',[],function () { return '<div class=\"content-detail-area\">\\r\\n <div class=\"md-tile-area-header\">Tutorials</div>\\r\\n <div class=\"tiles-container layout-row flex dynamic-content-area\">\\r\\n <md-tile-area>\\r\\n <md-tile-panel class=\"tiles-container\">\\r\\n\\r\\n <!-- ko foreach: tutorials -->\\r\\n <div data-bind=\"{attr: {id: name}}\" class=\"tutorial-template-tile-container\">\\r\\n <md-tile class=\"tutorial-template-tile\">\\r\\n\\r\\n <!-- ko if: (useImage == true && imagePath != null) -->\\r\\n <md-tile-content class=\"tutorial-template-tile-content\">\\r\\n <md-tile-block>\\r\\n <!--<div data-bind=\"click: $root.extender.showTutorial, parameter: $parents[1]\">-->\\r\\n <div data-bind=\"click:function(event,args){$root.tutorialClick($data);}\">\\r\\n <a href=\"#\">\\r\\n <img class=\"tutorial-template-tile-block-link-img\" data-bind=\"attr:{src: imagePath}\" />\\r\\n </a>\\r\\n </div>\\r\\n </md-tile-block>\\r\\n </md-tile-content>\\r\\n <!-- /ko -->\\r\\n\\r\\n <md-tile-content class=\"tutorial-template-tile-second-content\">\\r\\n <md-tile-block>\\r\\n <div class=\"tutorial-template-tile-second-content-text\">\\r\\n <!--ko text: name--><!--/ko-->\\r\\n <!--ko if: application !== null && !application.embedApp-->\\r\\n <!--/ko-->\\r\\n </div>\\r\\n </md-tile-block>\\r\\n </md-tile-content>\\r\\n </md-tile>\\r\\n </div>\\r\\n <!-- /ko-->\\r\\n\\r\\n </md-tile-panel>\\r\\n </md-tile-area>\\r\\n </div>\\r\\n</div>';});\n\n", "\ndefine('text!areas/twinfieldproduct/views/index.html',[],function () { return '<div class=\"twinfield-product-container\">\\r\\n <div class=\"twinfield-product-container-top\">\\r\\n <div class=\"twinfield-product-container-top-layer\">\\r\\n <div class=\"twinfield-product-title-container\">\\r\\n <div class=\"twinfield-product-title\">\\r\\n Twinfield\\r\\n </div>\\r\\n\\r\\n <div class=\"twinfield-short-description-container\">\\r\\n <div class=\"twinfield-short-description-centered-container\">\\r\\n <div class=\"twinfield-short-description-top-text\">Europe’ s number one online accounting provider is now in the UK</div>\\r\\n <div class=\"twinfield-short-description-separation-line\"></div>\\r\\n <div class=\"twinfield-short-description-bottom-text\">Mid-market software at entry-level prices</div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"twinfield-product-carousel-container\">\\r\\n <div id=\"carousel-example-generic\" class=\"carousel slide twinfield-product-carousel\" data-ride=\"carousel\">\\r\\n\\r\\n <!-- Indicators -->\\r\\n <ol class=\"carousel-indicators twinfield-product-carousel-indicators\">\\r\\n <li data-target=\"#carousel-example-generic\" data-slide-to=\"0\" class=\"active\"></li>\\r\\n <li data-target=\"#carousel-example-generic\" data-slide-to=\"1\"></li>\\r\\n </ol>\\r\\n\\r\\n <!-- Wrapper for slides -->\\r\\n <div class=\"carousel-inner\" role=\"listbox\">\\r\\n <div class=\"item active\">\\r\\n <iframe src=\"https://www.youtube.com/embed/6tyYNWIupSs?rel=0\" frameborder=\"0\" allowfullscreen></iframe>\\r\\n </div>\\r\\n\\r\\n <div class=\"item\">\\r\\n <div class=\"item-image twinfield-carousel-1\"></div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"twinfield-product-description-container\">\\r\\n <div class=\"twinfield-product-description-centered-container\">\\r\\n <div class=\"twinfield-product-description-top-text\">Collaborative accounting software</div>\\r\\n <div class=\"twinfield-short-description-separation-line\"></div>\\r\\n <div class=\"twinfield-product-description-middle-text\">Software that will grow as your clients grow</div>\\r\\n <div class=\"twinfield-short-description-separation-line\"></div>\\r\\n <div class=\"twinfield-product-description-bottom-text\">Integrated invoicing scanning</div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\"twinfield-product-container-bottom\">\\r\\n <div class=\"twinfield-product-container-bottom-card\">\\r\\n <div class=\"twinfield-product-tabs\">\\r\\n <input name=\"twinfield-product-tabs\" id=\"testimonials\" type=\"radio\" checked>\\r\\n <h1>\\r\\n <label for=\"testimonials\" data-bind=\"click: function(data, event) { selectTab(0) }, css: { \\'twinfield-product-tab-selected\\': tabSelected === 0 }\">Testimonials</label>\\r\\n </h1>\\r\\n\\r\\n <input name=\"twinfield-product-tabs\" id=\"toolkit\" type=\"radio\">\\r\\n <h1>\\r\\n <label for=\"toolkit\" data-bind=\"click: function(data, event) { selectTab(1) }, css: { \\'twinfield-product-tab-selected\\': tabSelected === 1 }\">Toolkit</label>\\r\\n </h1>\\r\\n\\r\\n <input name=\"twinfield-product-tabs\" id=\"informationToSendToClient\" type=\"radio\">\\r\\n <h1>\\r\\n <label for=\"informationToSendToClient\" data-bind=\"click: function(data, event) { selectTab(2) }, css: { \\'twinfield-product-tab-selected\\': tabSelected === 2 }\">Information to send to Client</label>\\r\\n </h1>\\r\\n </div>\\r\\n\\r\\n <!-- ko if: tabSelected === 0-->\\r\\n <div class=\"twinfield-product-testimonials-container\" data-bind=\"foreach: testimonials\">\\r\\n <div class=\"twinfield-product-testimonial-container\">\\r\\n <div class=\"twinfield-product-testimonial-logo-name-container\">\\r\\n <!-- ko if: image !== null && image !== undefined && image !== \"\" -->\\r\\n <div class=\"twinfield-product-testimonial-logo-container\">\\r\\n <img class=\"twinfield-product-testimonial-logo-image\" data-bind=\"attr: { src: image }\" />\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n </div>\\r\\n\\r\\n <div class=\"twinfield-product-testimonial-text-container\">\\r\\n <div class=\"twinfield-product-testimonial-text\" data-bind=\"html: text\"></div>\\r\\n <div class=\"twinfield-product-testimonial-text\" data-bind=\"text: name\"></div>\\r\\n <a class=\"twinfield-product-testimonial-text-link\" target=\"_blank\" data-bind=\"text: linkText, attr: { href: link }\"></a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: tabSelected === 1-->\\r\\n <div class=\"twinfield-product-toolkit-container\">\\r\\n <div class=\"toolkit-container\">\\r\\n <div class=\"toolkit-image-container\">\\r\\n <span class=\"toolkit-image fa fa-file-text-o\"></span>\\r\\n </div>\\r\\n <div class=\"toolkit-text-container\">\\r\\n <a class=\"toolkit-text\" href=\"https://ocuksbstatic.blob.core.windows.net/iserve/Twinfield_For_Accountants.PDF\" target=\\'_blank\\' title=\"Twinfield For Accountants\">\\r\\n Twinfield For Accountants Product Sheet\\r\\n </a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: tabSelected === 2-->\\r\\n <div class=\"twinfield-product-toolkit-container\" data-bind=\"foreach: informationToSendToClient\">\\r\\n <div class=\"toolkit-container\">\\r\\n <div class=\"toolkit-image-container\">\\r\\n <span class=\"toolkit-image fa\" data-bind=\"css: { \\'fa-file-text-o\\': icon === \\'fa-file-text-o\\',\\r\\n \\'fa-external-link\\': icon === \\'fa-external-link\\'}\"></span>\\r\\n </div>\\r\\n <div class=\"toolkit-text-container\">\\r\\n <a class=\"toolkit-text\" target=\"_blank\" data-bind=\"text: text, attr: { href: url }\"></a>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/widgetmanager/views/index.html',[],function () { return '<div class=\"widgets-container\">\\r\\n <div class=\"widgets-container-main-div\">\\r\\n <div class=\"widgets-title-div\">\\r\\n <i class=\"fa fa-icon fa-times close-icon\" data-bind=\"click:$data.closeAddWidgetsPopUp\"></i>\\r\\n <div class=\"widgets-title\">Add Tiles</div>\\r\\n </div>\\r\\n\\r\\n <!-- ko ifnot: zeroState -->\\r\\n <div class=\"widgets-body-div\" data-bind=\"foreach:widgetList\">\\r\\n <md-tile class=\"tile-small\">\\r\\n <!-- ko if: (useImage == true && imagePath != null) -->\\r\\n <md-tile-content data-bind=\"style: { \\'background-color\\': (color != null ? color : \\'\\') }\">\\r\\n <md-tile-row class=\"flex\">\\r\\n <md-tile-block class=\"flex\" data-bind=\"css: (color == null ? \\'gradient\\' : \\'\\') \">\\r\\n <img class=\"fa fa-icon widget-image fa-fw fa-4x\" data-bind=\"attr: { src: imagePath },css: defaultData.customCSS != null ? defaultData.customCSS : \\'\\'\">\\r\\n </md-tile-block>\\r\\n </md-tile-row>\\r\\n </md-tile-content>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: (useImage == false && icon != null) -->\\r\\n <md-tile-content data-bind=\"style: { \\'background-color\\': (color != null ? color : \\'\\') }\">\\r\\n <md-tile-row class=\"flex\">\\r\\n <md-tile-block class=\"flex\" data-bind=\"css: (color == null ? \\'gradient\\' : \\'\\') \">\\r\\n <div class=\"fa fa-icon tile-icon fa-fw fa-4x widget-icon\" data-bind=\"css: icon\"></div>\\r\\n </md-tile-block>\\r\\n </md-tile-row>\\r\\n </md-tile-content>\\r\\n <!-- /ko -->\\r\\n\\r\\n <md-tile-content class=\"widget-body\">\\r\\n <md-tile-row class=\"flex\">\\r\\n <md-tile-block class=\"flex\">\\r\\n\\r\\n <div class=\"text widget-title\">\\r\\n <!--ko text: name--><!--/ko-->\\r\\n </div>\\r\\n\\r\\n <div class=\"widget-info-div\">\\r\\n <span class=\"fa fa-info description-icon\" data-bind=\"click:function(event,args){toggleDescription = true;}\"></span>\\r\\n </div>\\r\\n\\r\\n </md-tile-block>\\r\\n </md-tile-row>\\r\\n </md-tile-content>\\r\\n <div class=\"checkbox widget-checkbox\">\\r\\n <label>\\r\\n <input type=\"checkbox\" data-bind=\"checked:addWidgetBack\">\\r\\n <span class=\"checkbox-material\">\\r\\n <span class=\"check green-check\"></span>\\r\\n </span>\\r\\n </label>\\r\\n </div>\\r\\n </md-tile>\\r\\n\\r\\n <!--ko if: $data.toggleDescription-->\\r\\n <md-tile class=\"widget-description-tile\">\\r\\n <md-tile-content class=\"widget-description-content\">\\r\\n <md-tile-row class=\"flex\">\\r\\n <md-tile-block class=\"flex\">\\r\\n <div class=\"widget-description-title\" data-bind=\"text:name\"></div>\\r\\n <div class=\"widget-description-text\" data-bind=\"text: defaultData.description\"></div>\\r\\n <div class=\"fa fa-icon fa-times description-box-close-icon\" data-bind=\"click:function(event,args){toggleDescription = false;}\"></div>\\r\\n </md-tile-block>\\r\\n </md-tile-row>\\r\\n </md-tile-content>\\r\\n </md-tile>\\r\\n <!-- /ko-->\\r\\n\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n <!-- ko ifnot: zeroState -->\\r\\n <footer class=\"add-button-container\">\\r\\n <button class=\"btn btn-raised btn-info\" data-bind=\"click:$data.saveChanges\">Add</button>\\r\\n </footer>\\r\\n <!-- /ko -->\\r\\n <!-- ko if: zeroState -->\\r\\n <div class=\"widgets-body-div-zero-state\">\\r\\n\\r\\n <img class=\"widgets-zero-state-image\" data-bind=\"attr: { src: zeroStateImagePath }\">\\r\\n <div class=\"widgets-zero-state-text\">\\r\\n <span class=\"widgets-zero-state-text-header\">That\\'s it!</span>\\r\\n <br />\\r\\n <br />\\r\\n <br />\\r\\n <span class=\"widgets-zero-state-text-content\">You\\'ve added all available tiles.</span>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n <!-- /ko -->\\r\\n\\r\\n </div>\\r\\n \\r\\n</div>\\r\\n';});\n\n", "\ndefine('text!areas/wkappstore/views/index.html',[],function () { return '<div data-bind=\"foreach: mobileApps\">\\r\\n\\r\\n <md-tile class=\"tile-small\">\\r\\n\\r\\n <!-- ko if: ($data.useImage == true && $data.imagePath != null) -->\\r\\n <md-tile-content>\\r\\n <md-tile-row class=\"flex\">\\r\\n <md-tile-block class=\"flex\">\\r\\n <img style=\"margin:auto; width:90px; height:90px\" data-bind=\"attr: { src: $data.imagePath }\" />\\r\\n </md-tile-block>\\r\\n </md-tile-row>\\r\\n </md-tile-content>\\r\\n <!-- /ko -->\\r\\n\\r\\n <!-- ko if: ($data.useImage == false && $data.icon != null) -->\\r\\n <md-tile-content>\\r\\n <md-tile-row class=\"flex\">\\r\\n <md-tile-block class=\"flex\">\\r\\n <div style=\"font-size:80px;margin:auto;height:auto !important;width:auto !important\" class=\"fa fa-icon tile-icon fa-fw fa-4x\" data-bind=\"css: icon\"></div>\\r\\n </md-tile-block>\\r\\n </md-tile-row>\\r\\n </md-tile-content>\\r\\n <!-- /ko -->\\r\\n\\r\\n <md-tile-content class=\"mobile-app-body\">\\r\\n <md-tile-row class=\"flex\">\\r\\n <md-tile-block class=\"flex\">\\r\\n\\r\\n <div class=\"text mobile-app-title\" style=\"color:black\">\\r\\n <!--ko text: name--><!--/ko-->\\r\\n </div>\\r\\n\\r\\n <div class=\"mobile-app-links\">\\r\\n <i class=\"fa fa-mobile phone-icon\"></i>\\r\\n <a href=\"#\" class=\"fa fa-download download-icon\" data-bind=\"click: function(data, event) {$root.navigate($data);}\"></a>\\r\\n\\r\\n <span class=\"fa fa-info description-icon\" data-bind=\"click:function(event,args){$data.toggleDescription = true;}\"></span>\\r\\n </div>\\r\\n\\r\\n </md-tile-block>\\r\\n </md-tile-row>\\r\\n </md-tile-content>\\r\\n </md-tile>\\r\\n\\r\\n <!--ko if: $data.toggleDescription-->\\r\\n <md-tile class=\"mobile-app-description-tile\">\\r\\n <md-tile-content class=\"mobile-app-description-content\">\\r\\n <md-tile-row class=\"flex\">\\r\\n <md-tile-block class=\"flex\">\\r\\n <div class=\"mobile-app-description-title\" data-bind=\"text:$data.name\"></div>\\r\\n <div class=\"mobile-app-description-text\" data-bind=\"text: $data.defaultData.description\"></div>\\r\\n <div class=\"fa fa-icon fa-times mobile-app-description-box-close-icon\" data-bind=\"click:function(event,args){$data.toggleDescription = false;}\"></div>\\r\\n </md-tile-block>\\r\\n </md-tile-row>\\r\\n </md-tile-content>\\r\\n </md-tile>\\r\\n <!--/ko-->\\r\\n\\r\\n</div>';});\n\n", "\ndefine('text!widgets/dataGrid/view.html',[],function () { return '<div data-bind=\"kendoGrid: {\\r\\n\\t columns: kendoColumns(),\\r\\n\\t data: settings.controller.result,\\r\\n\\t rowTemplate:\\'rowKendoDataGridTemplate\\',\\r\\n\\t useKOTemplates: true,\\r\\n\\t groupable: settings.groupable,\\r\\n\\t sortable: true,\\r\\n\\t scrollable: false,\\r\\n\\t dataBound: enableDragAndDrop()\\r\\n\\t }\"></div>\\r\\n\\r\\n<script id=\"rowKendoDataGridTemplate\" type=\"text/html\">\\r\\n <tr data-bind=\"attr: { \\'data-uid\\': $data.id, \\'data-subject\\': $data.subject }, foreach: $parent.settings.columnDefinitions\" role=\"row\">\\r\\n\\t\\t<!-- ko if: $data.template === undefined || $data.template === \\'\\' || $data.template === null -->\\r\\n\\t\\t<td role=\"gridcell\" data-bind=\"text: typeof rowValue == \\'function\\' ? rowValue($parent) : $parent[rowValue]\"></td>\\r\\n\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t<!-- ko if: $data.template !== undefined && $data.template !== \\'\\' && $data.template !== null -->\\r\\n\\t\\t<td role=\"gridcell\" data-bind=\"template: $data.template\"></td>\\r\\n\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t</tr>\\r\\n</script>';});\n\n", "\ndefine('text!widgets/dataList/view.html',[],function () { return '<table class=\"table table-hover\">\\r\\n\\t<colgroup data-bind=\"foreach: columns()\">\\r\\n\\t\\t<col data-bind=\"style: { width: width }\" />\\r\\n\\t</colgroup>\\r\\n\\r\\n\\t<thead>\\r\\n\\t\\t<tr data-bind=\"foreach: columns()\">\\r\\n\\t\\t\\t<!-- ko if: sortable -->\\r\\n\\t\\t\\t<th>\\r\\n\\t\\t\\t\\t<a href=\"#\" data-bind=\"click: function (data, event) { $parent.sort($data); }\">\\r\\n\\t\\t\\t\\t\\t<span data-bind=\"text: header\"></span> <i data-bind=\"attr: { class: sortDirection() == \\'\\' ? \\'fa fa-sort\\' : \\'fa fa-sort-\\' + sortDirection() } \"></i>\\r\\n\\t\\t\\t\\t</a>\\r\\n\\t\\t\\t</th>\\r\\n\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t<!-- ko ifnot: sortable -->\\r\\n\\t\\t\\t<th>\\r\\n\\t\\t\\t\\t<!-- ko if: canSelectAll -->\\r\\n <label class=\"custom-checkbox\">\\r\\n\\t\\t\\t\\t<input type=\"checkbox\" data-bind=\"click: function(data, event) { $parent.setSelection(); }, checked: $parent.fullSelectionState\">\\r\\n <span></span>\\r\\n </label>\\r\\n\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t\\t<span data-bind=\"text: header\"></span>\\r\\n\\t\\t\\t</th>\\r\\n\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t</tr>\\r\\n\\t</thead>\\r\\n\\r\\n\\t<tbody data-bind=\"foreach: settings.controller.result\">\\r\\n\\t\\t<tr data-bind=\"foreach: $parent.columns()\">\\r\\n\\t\\t\\t<!-- ko if: template == \\'\\' -->\\r\\n\\t\\t\\t<td data-bind=\"text: typeof rowValue == \\'function\\' ? rowValue($parent) : $parent[rowValue]\"></td>\\r\\n\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t<!-- ko ifnot: template == \\'\\' -->\\r\\n\\t\\t\\t<td data-bind=\"template: template\"></td>\\r\\n\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t</tr>\\r\\n\\t</tbody>\\r\\n</table>\\r\\n';});\n\n", "\ndefine('text!widgets/pagedView/view.html',[],function () { return '<md-part-widget-content class=\"layout-row flex max-height\">\\r\\n\\t<md-part data-part=\"filter-left\"></md-part>\\r\\n\\r\\n\\t<div class=\"layout-column flex\">\\r\\n <md-part data-part=\"menu\"></md-part>\\r\\n\\t\\t\\r\\n\\t\\t<md-part data-part=\"content\"></md-part>\\r\\n\\r\\n\\t\\t<!-- ko if: !settings.controller.hideBottomPagination -->\\r\\n\\t\\t<div class=\"layout-row\" style=\"padding: 10px 0;\">\\r\\n\\t\\t\\t<div class=\"layout-column flex\" id=\"pageSizeChooser\">\\r\\n\\t\\t\\t\\t<div class=\"layout-row\">\\r\\n\\t\\t\\t\\t\\t<div class=\"layout-column\">\\r\\n\\t\\t\\t\\t\\t\\t<ul class=\"pagination\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<li><a href=\"#\" data-bind=\"click: function(data, event) { setRowCount(25); }, style: { backgroundColor: settings.controller.pageSize() == 25 ? \\'lightgray\\' : \\'white\\' }\">25</a></li>\\r\\n\\t\\t\\t\\t\\t\\t\\t<li><a href=\"#\" data-bind=\"click: function(data, event) { setRowCount(50); }, style: { backgroundColor: settings.controller.pageSize() == 50 ? \\'lightgray\\' : \\'white\\' }\">50</a></li>\\r\\n\\t\\t\\t\\t\\t\\t\\t<li><a href=\"#\" data-bind=\"click: function(data, event) { setRowCount(100); }, style: { backgroundColor: settings.controller.pageSize() == 100 ? \\'lightgray\\' : \\'white\\' }\">100</a></li>\\r\\n\\t\\t\\t\\t\\t\\t\\t<li><a href=\"#\" data-bind=\"click: function(data, event) { setRowCount(200); }, style: { backgroundColor: settings.controller.pageSize() == 200 ? \\'lightgray\\' : \\'white\\' }\">200</a></li>\\r\\n\\t\\t\\t\\t\\t\\t</ul>\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t<div class=\"layout-column layout-align-center\" style=\"padding-left: 5px; height: 34px\">\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<span data-bind=\"i18n:\\'app:modules.widgets.label_rows\\'\"> Zeilen</span>\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t<span class=\"layout-column\"></span>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t\\t<div class=\"layout-column flex\">\\r\\n\\t\\t\\t\\t<div class=\"layout-row\">\\r\\n\\t\\t\\t\\t\\t<span class=\"layout-column flex\"></span>\\r\\n\\t\\t\\t\\t\\t<!-- ko if: settings.controller.itemsCount() != undefined -->\\r\\n\\t\\t\\t\\t\\t<div class=\"layout-column layout-align-center\" style=\"padding-right: 20px; height: 34px\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<div><span data-bind=\"text: settings.controller.itemsCount() \"></span><span data-bind=\"i18n:\\'app:modules.widgets.label_row\\'\"></span></div>\\t\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t<!-- /ko -->\\r\\n\\t\\t\\t\\t\\t<div class=\"layout-column layout-align-center\" style=\"padding-right: 5px; height: 34px\">\\r\\n\\t\\t\\t\\t\\t\\t<div>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<span data-bind=\"i18n:\\'app:modules.widgets.label_page\\'\"></span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<span data-bind=\"text: settings.controller.currentPage()\"></span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<span data-bind=\"i18n:\\'app:modules.widgets.label_of\\'\"></span>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t<span data-bind=\"text: settings.controller.pageCount()\"></span>\\r\\n\\t\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t\\t<div class=\"layout-column\">\\r\\n\\t\\t\\t\\t\\t\\t<ul class=\"pagination\">\\r\\n\\t\\t\\t\\t\\t\\t\\t<li><a href=\"#\" data-bind=\"click: firstPage\"><i class=\"fa fa-angle-double-left\"></i></a></li>\\r\\n\\t\\t\\t\\t\\t\\t\\t<li><a href=\"#\" data-bind=\"click: previousPage\"><i class=\"fa fa-angle-left\"></i></a></li>\\r\\n\\t\\t\\t\\t\\t\\t\\t<li><a href=\"#\" data-bind=\"click: nextPage\"><i class=\"fa fa-angle-right\"></i></a></li>\\r\\n\\t\\t\\t\\t\\t\\t\\t<li><a href=\"#\" data-bind=\"click: lastPage\"><i class=\"fa fa-angle-double-right\"></i></a></li>\\r\\n\\t\\t\\t\\t\\t\\t</ul>\\r\\n\\t\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t\\t</div>\\r\\n\\t\\t\\t</div>\\r\\n\\t\\t</div>\\r\\n\\t\\t<!-- /ko -->\\r\\n\\t</div>\\r\\n\\r\\n\\t<md-part data-part=\"filter-right\"></md-part>\\r\\n</md-part-widget-content>\\r\\n\\r\\n<script type=\"text/html\" id=\"kendoDataGridPaginationTemplate\">\\r\\n <div class=\"grid-pagination\">\\r\\n <div class=\"rows-wrapper\">\\r\\n <!-- ko if: settings.controller.itemsCount() != undefined -->\\r\\n <span data-bind=\"text: settings.controller.itemsCount() \"></span>\\r\\n <span data-bind=\"i18n:\\'app:modules.widgets.label_row\\'\"></span>\\r\\n <!-- /ko -->\\r\\n </div>\\r\\n\\r\\n <div class=\"pages-wrapper\">\\r\\n <span data-bind=\"i18n:\\'app:modules.widgets.label_page\\'\"></span>\\r\\n <span data-bind=\"text: settings.controller.currentPage()\"></span>\\r\\n <span data-bind=\"i18n:\\'app:modules.widgets.label_of\\'\"></span>\\r\\n <span data-bind=\"text: settings.controller.pageCount()\"></span>\\r\\n </div>\\r\\n\\r\\n <div class=\"pagination-wrapper\">\\r\\n <ul class=\"pagination\">\\r\\n <li><a href=\"#\" data-bind=\"click: firstPage\"><i class=\"fa fa-angle-double-left\"></i></a></li>\\r\\n <li><a href=\"#\" data-bind=\"click: previousPage\"><i class=\"fa fa-angle-left\"></i></a></li>\\r\\n <li><a href=\"#\" data-bind=\"click: nextPage\"><i class=\"fa fa-angle-right\"></i></a></li>\\r\\n <li><a href=\"#\" data-bind=\"click: lastPage\"><i class=\"fa fa-angle-double-right\"></i></a></li>\\r\\n </ul>\\r\\n </div>\\r\\n </div>\\r\\n</script>\\r\\n';});\n\n", "\ndefine('text!widgets/simpleView/view.html',[],function () { return '<md-part data-part=\"menu\"></md-part>\\r\\n\\r\\n<md-part-widget-content class=\"layout-row flex\">\\r\\n\\t<md-part data-part=\"filter-left\"></md-part>\\r\\n\\r\\n\\t<div class=\"layout-column flex\">\\r\\n\\r\\n\\t\\t<md-part data-part=\"content\"></md-part>\\r\\n\\t\\t<!--<div class=\"layout-row flex\">\\r\\n\\t\\t</div>-->\\r\\n\\r\\n\\t</div>\\r\\n\\t<md-part data-part=\"filter-right\"></md-part>\\r\\n</md-part-widget-content>\\r\\n';});\n\n", "\nrequire([\"main\"]);\n", "}());\n" ] }