From afe73b5baaaf5d7c24e659185bb0a8162beb624f Mon Sep 17 00:00:00 2001 From: Martin Donnelly Date: Thu, 22 Dec 2016 00:00:06 +0000 Subject: [PATCH] upload --- .gitignore | 279 ++ .io-config.json | 1 + .project | 11 + AODB.Mobile.jsproj | 115 + AODB.Mobile.sln | 80 + GitVersionConfig.yaml | 26 + README.md | 25 + Readme/DevelopmentGuide.md | 206 ++ Readme/MacSetupGuide.md | 530 +++ Readme/MobileInterfaceEndpoints.md | 522 +++ Readme/ReleaseGuide.md | 97 + Readme/XubuntuSetupGuide.md | 418 +++ angular-ios9-uiwebview.patch.js | 75 + app-settings.json | 12 + app/authentication/auth.mod.ts | 19 + app/authentication/auth.routes.ts | 27 + .../components/login-view/login.less | 93 + .../components/login-view/login.spec.ts | 147 + .../components/login-view/login.tpl.html | 71 + .../components/login-view/login.ts | 188 + .../services/authentication.interceptor.ts | 19 + .../services/authentication.service.ts | 77 + app/chroma.app.ts | 95 + app/core/core.config.ts | 23 + app/core/core.mod.ts | 23 + app/core/frame/frame.less | 36 + app/core/frame/frame.spec.ts | 113 + app/core/frame/frame.tpl.html | 37 + app/core/frame/frame.ts | 73 + app/core/less/aodb.less | 117 + app/core/service/chromaStateService.ts | 50 + app/core/service/flightService.ts | 51 + app/core/service/helpers.ts | 16 + app/core/service/pushHandler.service.ts | 60 + app/core/service/signalRService.ts | 63 + app/flight-detail/detail/flight-detail.less | 67 + .../detail/flight-detail.spec.ts | 162 + .../detail/flight-detail.tpl.html | 64 + app/flight-detail/detail/flight-detail.ts | 169 + app/flight-detail/editors/baseEditor.ts | 48 + .../editors/datetime/datetime-holder.tpl.html | 5 + .../editors/datetime/datetime.spec.ts | 182 + .../editors/datetime/datetime.tpl.html | 52 + .../editors/datetime/datetime.ts | 119 + app/flight-detail/editors/editors.less | 64 + .../editors/freetext/freetext-holder.tpl.html | 5 + .../editors/freetext/freetext.spec.ts | 150 + .../editors/freetext/freetext.tpl.html | 38 + .../editors/freetext/freetext.ts | 69 + .../editors/lookup/lookup-holder.tpl.html | 6 + .../editors/lookup/lookup.tpl.html | 20 + app/flight-detail/editors/lookup/lookup.ts | 49 + .../editors/readonly/readonly.less | 13 + .../editors/readonly/readonly.tpl.html | 15 + app/flight-detail/flight-detail.config.ts | 20 + app/flight-detail/flight-detail.mod.ts | 57 + app/flight-detail/group/flight-group.spec.ts | 241 ++ app/flight-detail/group/flight-group.tpl.html | 17 + app/flight-detail/group/flight-group.ts | 81 + app/flight-detail/prm/prm-list.less | 0 app/flight-detail/prm/prm-list.spec.ts | 0 app/flight-detail/prm/prm-list.tpl.html | 7 + app/flight-detail/prm/prm-list.ts | 53 + app/flight-detail/prm/prm.config.ts | 19 + app/flight-detail/prm/prm.mod.ts | 16 + .../services/flightInformationService.spec.ts | 82 + .../services/flightInformationService.ts | 154 + app/flight-detail/services/prmService.ts | 35 + .../services/transactionService.ts | 141 + .../transactions/transaction-detail.tpl.html | 83 + .../transactions/transaction-detail.ts | 413 +++ .../transactions/transaction-list.less | 105 + .../transactions/transaction-list.spec.ts | 138 + .../transactions/transaction-list.tpl.html | 69 + .../transactions/transaction-list.ts | 117 + .../transactions/transaction.config.ts | 19 + .../transactions/transaction.mod.ts | 21 + app/flight-list/flight-list.config.ts | 16 + app/flight-list/flight-list.mod.ts | 38 + app/flight-list/list/flight-list.less | 88 + app/flight-list/list/flight-list.spec.ts | 268 ++ app/flight-list/list/flight-list.tpl.html | 66 + app/flight-list/list/flight-list.ts | 67 + app/index.html | 47 + app/infrastructure/ComponentHelper.ts | 72 + app/infrastructure/Dectorators/Components.ts | 88 + .../service/site-selection.service.ts | 45 + app/site-selection/site-selection.config.ts | 14 + app/site-selection/site-selection.mod.ts | 15 + .../view/site-selection.spec.ts | 101 + .../view/site-selection.tpl.html | 18 + app/site-selection/view/site-selection.ts | 35 + app/window-list/list/window-list.spec.ts | 84 + app/window-list/list/window-list.tpl.html | 33 + app/window-list/list/window-list.ts | 44 + app/window-list/window-list.mod.ts | 21 + bower.json | 29 + build.json | 14 + build/configuration/ConfigTransform.ps1 | 6 + build/configuration/app.config.js | 49 + build/configuration/app.config.js.token | 17 + build/fastlane/Appfile | 7 + build/fastlane/Fastlane | 68 + build/fastlane/fastlane.old | 108 + build/gulp.config.js | 110 + build/gulp/add-hockeyapp.js | 15 + build/gulp/add-pushnotifications.js | 14 + build/gulp/compile-js.js | 32 + build/gulp/compile-less.js | 27 + build/gulp/compile-template-cache.js | 16 + build/gulp/compile-template.js | 20 + build/gulp/compile-tests.js | 30 + build/gulp/copy-index.js | 6 + build/gulp/copy-resources.js | 11 + build/gulp/gitversion.js | 23 + build/gulp/hockey-upload-android.js | 36 + build/gulp/hockey-upload-ios.js | 28 + build/gulp/install.js | 9 + build/gulp/min-css-dependencies.js | 12 + build/gulp/min-js-dependencies.js | 11 + build/gulp/purge-previous-ionic.js | 11 + build/gulp/run-tests.js | 28 + build/gulp/sonar.js | 64 + build/gulp/update-url.js | 20 + build/gulp/watch.js | 19 + changeList.json | 678 ++++ chroma_aodb_profile.mobileprovision | Bin 0 -> 7349 bytes config.js | 51 + config.xml | 86 + gulpfile.js | 30 + ionic.project | 4 + karma.conf.js | 93 + lib/jquery.signalR-2.2.1.js | 2955 +++++++++++++++ lib/jquery.signalR-2.2.1.min.js | 9 + lib/push.js | 178 + package.json | 101 + packages.config | 6 + path.txt | 1 + res/native/android/ant.properties | 4 + res/shared/icon-96-xhdpi-TransparentText.png | Bin 0 -> 1517 bytes res/shared/icon.png | Bin 0 -> 2942 bytes res/shared/logo.png | Bin 0 -> 33660 bytes res/shared/screen-xhdpi-portrait.png | Bin 0 -> 346260 bytes resources/android/icon/drawable-hdpi-icon.png | Bin 0 -> 2294 bytes resources/android/icon/drawable-ldpi-icon.png | Bin 0 -> 1124 bytes resources/android/icon/drawable-mdpi-icon.png | Bin 0 -> 1475 bytes .../android/icon/drawable-xhdpi-icon.png | Bin 0 -> 2942 bytes .../android/icon/drawable-xxhdpi-icon.png | Bin 0 -> 4513 bytes .../android/icon/drawable-xxxhdpi-icon.png | Bin 0 -> 6599 bytes .../splash/drawable-land-hdpi-screen.png | Bin 0 -> 19934 bytes .../splash/drawable-land-ldpi-screen.png | Bin 0 -> 5669 bytes .../splash/drawable-land-mdpi-screen.png | Bin 0 -> 12102 bytes .../splash/drawable-land-xhdpi-screen.png | Bin 0 -> 37454 bytes .../splash/drawable-land-xxhdpi-screen.png | Bin 0 -> 52804 bytes .../splash/drawable-land-xxxhdpi-screen.png | Bin 0 -> 72767 bytes .../splash/drawable-port-hdpi-screen.png | Bin 0 -> 29293 bytes .../splash/drawable-port-ldpi-screen.png | Bin 0 -> 6608 bytes .../splash/drawable-port-mdpi-screen.png | Bin 0 -> 13125 bytes .../splash/drawable-port-xhdpi-screen.png | Bin 0 -> 48016 bytes .../splash/drawable-port-xxhdpi-screen.png | Bin 0 -> 78827 bytes .../splash/drawable-port-xxxhdpi-screen.png | Bin 0 -> 99730 bytes resources/icon.png | Bin 0 -> 45616 bytes resources/ios/icon/icon-40.png | Bin 0 -> 1435 bytes resources/ios/icon/icon-40@2x.png | Bin 0 -> 3394 bytes resources/ios/icon/icon-40@3x.png | Bin 0 -> 5157 bytes resources/ios/icon/icon-50.png | Bin 0 -> 1929 bytes resources/ios/icon/icon-50@2x.png | Bin 0 -> 4353 bytes resources/ios/icon/icon-60.png | Bin 0 -> 2436 bytes resources/ios/icon/icon-60@2x.png | Bin 0 -> 4756 bytes resources/ios/icon/icon-60@3x.png | Bin 0 -> 7014 bytes resources/ios/icon/icon-72.png | Bin 0 -> 2877 bytes resources/ios/icon/icon-72@2x.png | Bin 0 -> 5669 bytes resources/ios/icon/icon-76.png | Bin 0 -> 3069 bytes resources/ios/icon/icon-76@2x.png | Bin 0 -> 5957 bytes resources/ios/icon/icon-83.5@2x.png | Bin 0 -> 8299 bytes resources/ios/icon/icon-small.png | Bin 0 -> 1048 bytes resources/ios/icon/icon-small@2x.png | Bin 0 -> 2259 bytes resources/ios/icon/icon-small@3x.png | Bin 0 -> 3746 bytes resources/ios/icon/icon.png | Bin 0 -> 4162 bytes resources/ios/icon/icon@2x.png | Bin 0 -> 4527 bytes .../ios/splash/Default-568h@2x~iphone.png | Bin 0 -> 42031 bytes resources/ios/splash/Default-667h.png | Bin 0 -> 52040 bytes resources/ios/splash/Default-736h.png | Bin 0 -> 113044 bytes .../ios/splash/Default-Landscape-736h.png | Bin 0 -> 74796 bytes .../ios/splash/Default-Landscape@2x~ipad.png | Bin 0 -> 91038 bytes .../ios/splash/Default-Landscape@~ipadpro.png | Bin 0 -> 129483 bytes .../ios/splash/Default-Landscape~ipad.png | Bin 0 -> 38405 bytes .../ios/splash/Default-Portrait@2x~ipad.png | Bin 0 -> 113027 bytes .../ios/splash/Default-Portrait@~ipadpro.png | Bin 0 -> 159768 bytes .../ios/splash/Default-Portrait~ipad.png | Bin 0 -> 39908 bytes resources/ios/splash/Default@2x~iphone.png | Bin 0 -> 35559 bytes resources/ios/splash/Default~iphone.png | Bin 0 -> 13125 bytes resources/splash.png | Bin 0 -> 486429 bytes system.config.js | 8 + taco.json | 3 + tooling/IonicBuild/AODB.keystore | Bin 0 -> 2259 bytes tooling/IonicBuild/CordovaConfig.json | 18 + tooling/IonicBuild/Ionic-Build.ps1 | 74 + tooling/MacBuild/BowerInstall.sh | 1 + tooling/MacBuild/GitConfig.sh | 4 + tooling/MacBuild/IonicBuildAndroid.sh | 1 + tooling/MacBuild/IonicBuildIos.sh | 2 + tooling/MacBuild/IonicPlatformAddAndroid.sh | 4 + tooling/MacBuild/IonicPlatformAddIos.sh | 3 + tooling/MacBuild/JspmInstall.sh | 1 + tooling/MacBuild/PhantomJsFix.sh | 1 + tooling/MacBuild/RunXcodeWithSigningId.sh | 1 + tooling/MacBuild/gitConfig.sh | 4 + tooling/MacBuild/uploadHockeyApp.sh | 20 + tooling/MacBuild/uploadManualHockeyApp.sh | 20 + tooling/MacBuild/xcode8.js | 37 + .../angular-signalr-hub.d.ts | 73 + .../angular-ui-router/angular-ui-router.d.ts | 328 ++ .../typings/angularjs/angular-animate.d.ts | 261 ++ .../typings/angularjs/angular-cookies.d.ts | 63 + tooling/typings/angularjs/angular-mocks.d.ts | 318 ++ .../typings/angularjs/angular-resource.d.ts | 171 + tooling/typings/angularjs/angular-route.d.ts | 142 + .../typings/angularjs/angular-sanitize.d.ts | 40 + tooling/typings/angularjs/angular.d.ts | 1790 ++++++++++ tooling/typings/chroma.d.ts | 4 + .../cordova-plugin-app-preferences.d.ts | 29 + .../cordova-plugin-app-version.d.ts | 25 + .../cordova-plugin-hockeyapp.d.ts | 29 + tooling/typings/ionic/ionic.d.ts | 300 ++ tooling/typings/jasmine/jasmine.d.ts | 496 +++ tooling/typings/jquery/jquery.d.ts | 3178 +++++++++++++++++ tooling/typings/moment/moment-node.d.ts | 479 +++ tooling/typings/moment/moment.d.ts | 8 + .../phonegap-plugin-push.d.ts | 277 ++ tooling/typings/signalr/signalr.d.ts | 365 ++ tooling/typings/tsd.d.ts | 17 + tsconfig.json | 80 + tsd.json | 39 + tslint.json | 47 + wallaby.js | 82 + 236 files changed, 22019 insertions(+) create mode 100644 .gitignore create mode 100644 .io-config.json create mode 100644 .project create mode 100644 AODB.Mobile.jsproj create mode 100644 AODB.Mobile.sln create mode 100644 GitVersionConfig.yaml create mode 100644 README.md create mode 100644 Readme/DevelopmentGuide.md create mode 100644 Readme/MacSetupGuide.md create mode 100644 Readme/MobileInterfaceEndpoints.md create mode 100644 Readme/ReleaseGuide.md create mode 100644 Readme/XubuntuSetupGuide.md create mode 100644 angular-ios9-uiwebview.patch.js create mode 100644 app-settings.json create mode 100644 app/authentication/auth.mod.ts create mode 100644 app/authentication/auth.routes.ts create mode 100644 app/authentication/components/login-view/login.less create mode 100644 app/authentication/components/login-view/login.spec.ts create mode 100644 app/authentication/components/login-view/login.tpl.html create mode 100644 app/authentication/components/login-view/login.ts create mode 100644 app/authentication/services/authentication.interceptor.ts create mode 100644 app/authentication/services/authentication.service.ts create mode 100644 app/chroma.app.ts create mode 100644 app/core/core.config.ts create mode 100644 app/core/core.mod.ts create mode 100644 app/core/frame/frame.less create mode 100644 app/core/frame/frame.spec.ts create mode 100644 app/core/frame/frame.tpl.html create mode 100644 app/core/frame/frame.ts create mode 100644 app/core/less/aodb.less create mode 100644 app/core/service/chromaStateService.ts create mode 100644 app/core/service/flightService.ts create mode 100644 app/core/service/helpers.ts create mode 100644 app/core/service/pushHandler.service.ts create mode 100644 app/core/service/signalRService.ts create mode 100644 app/flight-detail/detail/flight-detail.less create mode 100644 app/flight-detail/detail/flight-detail.spec.ts create mode 100644 app/flight-detail/detail/flight-detail.tpl.html create mode 100644 app/flight-detail/detail/flight-detail.ts create mode 100644 app/flight-detail/editors/baseEditor.ts create mode 100644 app/flight-detail/editors/datetime/datetime-holder.tpl.html create mode 100644 app/flight-detail/editors/datetime/datetime.spec.ts create mode 100644 app/flight-detail/editors/datetime/datetime.tpl.html create mode 100644 app/flight-detail/editors/datetime/datetime.ts create mode 100644 app/flight-detail/editors/editors.less create mode 100644 app/flight-detail/editors/freetext/freetext-holder.tpl.html create mode 100644 app/flight-detail/editors/freetext/freetext.spec.ts create mode 100644 app/flight-detail/editors/freetext/freetext.tpl.html create mode 100644 app/flight-detail/editors/freetext/freetext.ts create mode 100644 app/flight-detail/editors/lookup/lookup-holder.tpl.html create mode 100644 app/flight-detail/editors/lookup/lookup.tpl.html create mode 100644 app/flight-detail/editors/lookup/lookup.ts create mode 100644 app/flight-detail/editors/readonly/readonly.less create mode 100644 app/flight-detail/editors/readonly/readonly.tpl.html create mode 100644 app/flight-detail/flight-detail.config.ts create mode 100644 app/flight-detail/flight-detail.mod.ts create mode 100644 app/flight-detail/group/flight-group.spec.ts create mode 100644 app/flight-detail/group/flight-group.tpl.html create mode 100644 app/flight-detail/group/flight-group.ts create mode 100644 app/flight-detail/prm/prm-list.less create mode 100644 app/flight-detail/prm/prm-list.spec.ts create mode 100644 app/flight-detail/prm/prm-list.tpl.html create mode 100644 app/flight-detail/prm/prm-list.ts create mode 100644 app/flight-detail/prm/prm.config.ts create mode 100644 app/flight-detail/prm/prm.mod.ts create mode 100644 app/flight-detail/services/flightInformationService.spec.ts create mode 100644 app/flight-detail/services/flightInformationService.ts create mode 100644 app/flight-detail/services/prmService.ts create mode 100644 app/flight-detail/services/transactionService.ts create mode 100644 app/flight-detail/transactions/transaction-detail.tpl.html create mode 100644 app/flight-detail/transactions/transaction-detail.ts create mode 100644 app/flight-detail/transactions/transaction-list.less create mode 100644 app/flight-detail/transactions/transaction-list.spec.ts create mode 100644 app/flight-detail/transactions/transaction-list.tpl.html create mode 100644 app/flight-detail/transactions/transaction-list.ts create mode 100644 app/flight-detail/transactions/transaction.config.ts create mode 100644 app/flight-detail/transactions/transaction.mod.ts create mode 100644 app/flight-list/flight-list.config.ts create mode 100644 app/flight-list/flight-list.mod.ts create mode 100644 app/flight-list/list/flight-list.less create mode 100644 app/flight-list/list/flight-list.spec.ts create mode 100644 app/flight-list/list/flight-list.tpl.html create mode 100644 app/flight-list/list/flight-list.ts create mode 100644 app/index.html create mode 100644 app/infrastructure/ComponentHelper.ts create mode 100644 app/infrastructure/Dectorators/Components.ts create mode 100644 app/site-selection/service/site-selection.service.ts create mode 100644 app/site-selection/site-selection.config.ts create mode 100644 app/site-selection/site-selection.mod.ts create mode 100644 app/site-selection/view/site-selection.spec.ts create mode 100644 app/site-selection/view/site-selection.tpl.html create mode 100644 app/site-selection/view/site-selection.ts create mode 100644 app/window-list/list/window-list.spec.ts create mode 100644 app/window-list/list/window-list.tpl.html create mode 100644 app/window-list/list/window-list.ts create mode 100644 app/window-list/window-list.mod.ts create mode 100644 bower.json create mode 100644 build.json create mode 100644 build/configuration/ConfigTransform.ps1 create mode 100644 build/configuration/app.config.js create mode 100644 build/configuration/app.config.js.token create mode 100644 build/fastlane/Appfile create mode 100644 build/fastlane/Fastlane create mode 100644 build/fastlane/fastlane.old create mode 100644 build/gulp.config.js create mode 100644 build/gulp/add-hockeyapp.js create mode 100644 build/gulp/add-pushnotifications.js create mode 100644 build/gulp/compile-js.js create mode 100644 build/gulp/compile-less.js create mode 100644 build/gulp/compile-template-cache.js create mode 100644 build/gulp/compile-template.js create mode 100644 build/gulp/compile-tests.js create mode 100644 build/gulp/copy-index.js create mode 100644 build/gulp/copy-resources.js create mode 100644 build/gulp/gitversion.js create mode 100644 build/gulp/hockey-upload-android.js create mode 100644 build/gulp/hockey-upload-ios.js create mode 100644 build/gulp/install.js create mode 100644 build/gulp/min-css-dependencies.js create mode 100644 build/gulp/min-js-dependencies.js create mode 100644 build/gulp/purge-previous-ionic.js create mode 100644 build/gulp/run-tests.js create mode 100644 build/gulp/sonar.js create mode 100644 build/gulp/update-url.js create mode 100644 build/gulp/watch.js create mode 100644 changeList.json create mode 100644 chroma_aodb_profile.mobileprovision create mode 100644 config.js create mode 100644 config.xml create mode 100644 gulpfile.js create mode 100644 ionic.project create mode 100644 karma.conf.js create mode 100644 lib/jquery.signalR-2.2.1.js create mode 100644 lib/jquery.signalR-2.2.1.min.js create mode 100644 lib/push.js create mode 100644 package.json create mode 100644 packages.config create mode 100644 path.txt create mode 100644 res/native/android/ant.properties create mode 100644 res/shared/icon-96-xhdpi-TransparentText.png create mode 100644 res/shared/icon.png create mode 100644 res/shared/logo.png create mode 100644 res/shared/screen-xhdpi-portrait.png create mode 100644 resources/android/icon/drawable-hdpi-icon.png create mode 100644 resources/android/icon/drawable-ldpi-icon.png create mode 100644 resources/android/icon/drawable-mdpi-icon.png create mode 100644 resources/android/icon/drawable-xhdpi-icon.png create mode 100644 resources/android/icon/drawable-xxhdpi-icon.png create mode 100644 resources/android/icon/drawable-xxxhdpi-icon.png create mode 100644 resources/android/splash/drawable-land-hdpi-screen.png create mode 100644 resources/android/splash/drawable-land-ldpi-screen.png create mode 100644 resources/android/splash/drawable-land-mdpi-screen.png create mode 100644 resources/android/splash/drawable-land-xhdpi-screen.png create mode 100644 resources/android/splash/drawable-land-xxhdpi-screen.png create mode 100644 resources/android/splash/drawable-land-xxxhdpi-screen.png create mode 100644 resources/android/splash/drawable-port-hdpi-screen.png create mode 100644 resources/android/splash/drawable-port-ldpi-screen.png create mode 100644 resources/android/splash/drawable-port-mdpi-screen.png create mode 100644 resources/android/splash/drawable-port-xhdpi-screen.png create mode 100644 resources/android/splash/drawable-port-xxhdpi-screen.png create mode 100644 resources/android/splash/drawable-port-xxxhdpi-screen.png create mode 100644 resources/icon.png create mode 100644 resources/ios/icon/icon-40.png create mode 100644 resources/ios/icon/icon-40@2x.png create mode 100644 resources/ios/icon/icon-40@3x.png create mode 100644 resources/ios/icon/icon-50.png create mode 100644 resources/ios/icon/icon-50@2x.png create mode 100644 resources/ios/icon/icon-60.png create mode 100644 resources/ios/icon/icon-60@2x.png create mode 100644 resources/ios/icon/icon-60@3x.png create mode 100644 resources/ios/icon/icon-72.png create mode 100644 resources/ios/icon/icon-72@2x.png create mode 100644 resources/ios/icon/icon-76.png create mode 100644 resources/ios/icon/icon-76@2x.png create mode 100644 resources/ios/icon/icon-83.5@2x.png create mode 100644 resources/ios/icon/icon-small.png create mode 100644 resources/ios/icon/icon-small@2x.png create mode 100644 resources/ios/icon/icon-small@3x.png create mode 100644 resources/ios/icon/icon.png create mode 100644 resources/ios/icon/icon@2x.png create mode 100644 resources/ios/splash/Default-568h@2x~iphone.png create mode 100644 resources/ios/splash/Default-667h.png create mode 100644 resources/ios/splash/Default-736h.png create mode 100644 resources/ios/splash/Default-Landscape-736h.png create mode 100644 resources/ios/splash/Default-Landscape@2x~ipad.png create mode 100644 resources/ios/splash/Default-Landscape@~ipadpro.png create mode 100644 resources/ios/splash/Default-Landscape~ipad.png create mode 100644 resources/ios/splash/Default-Portrait@2x~ipad.png create mode 100644 resources/ios/splash/Default-Portrait@~ipadpro.png create mode 100644 resources/ios/splash/Default-Portrait~ipad.png create mode 100644 resources/ios/splash/Default@2x~iphone.png create mode 100644 resources/ios/splash/Default~iphone.png create mode 100644 resources/splash.png create mode 100644 system.config.js create mode 100644 taco.json create mode 100644 tooling/IonicBuild/AODB.keystore create mode 100644 tooling/IonicBuild/CordovaConfig.json create mode 100644 tooling/IonicBuild/Ionic-Build.ps1 create mode 100644 tooling/MacBuild/BowerInstall.sh create mode 100644 tooling/MacBuild/GitConfig.sh create mode 100644 tooling/MacBuild/IonicBuildAndroid.sh create mode 100644 tooling/MacBuild/IonicBuildIos.sh create mode 100644 tooling/MacBuild/IonicPlatformAddAndroid.sh create mode 100644 tooling/MacBuild/IonicPlatformAddIos.sh create mode 100644 tooling/MacBuild/JspmInstall.sh create mode 100644 tooling/MacBuild/PhantomJsFix.sh create mode 100644 tooling/MacBuild/RunXcodeWithSigningId.sh create mode 100644 tooling/MacBuild/gitConfig.sh create mode 100755 tooling/MacBuild/uploadHockeyApp.sh create mode 100755 tooling/MacBuild/uploadManualHockeyApp.sh create mode 100644 tooling/MacBuild/xcode8.js create mode 100644 tooling/typings/angular-signalr-hub/angular-signalr-hub.d.ts create mode 100644 tooling/typings/angular-ui-router/angular-ui-router.d.ts create mode 100644 tooling/typings/angularjs/angular-animate.d.ts create mode 100644 tooling/typings/angularjs/angular-cookies.d.ts create mode 100644 tooling/typings/angularjs/angular-mocks.d.ts create mode 100644 tooling/typings/angularjs/angular-resource.d.ts create mode 100644 tooling/typings/angularjs/angular-route.d.ts create mode 100644 tooling/typings/angularjs/angular-sanitize.d.ts create mode 100644 tooling/typings/angularjs/angular.d.ts create mode 100644 tooling/typings/chroma.d.ts create mode 100644 tooling/typings/cordova-plugin-app-preferences/cordova-plugin-app-preferences.d.ts create mode 100644 tooling/typings/cordova-plugin-app-version/cordova-plugin-app-version.d.ts create mode 100644 tooling/typings/cordova-plugin-hockeyapp/cordova-plugin-hockeyapp.d.ts create mode 100644 tooling/typings/ionic/ionic.d.ts create mode 100644 tooling/typings/jasmine/jasmine.d.ts create mode 100644 tooling/typings/jquery/jquery.d.ts create mode 100644 tooling/typings/moment/moment-node.d.ts create mode 100644 tooling/typings/moment/moment.d.ts create mode 100644 tooling/typings/phonegap-plugin-push/phonegap-plugin-push.d.ts create mode 100644 tooling/typings/signalr/signalr.d.ts create mode 100644 tooling/typings/tsd.d.ts create mode 100644 tsconfig.json create mode 100644 tsd.json create mode 100644 tslint.json create mode 100644 wallaby.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9d9d6f8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,279 @@ +# Created by https://www.gitignore.io/api/bower,node,dotsettings,visualstudio + +### Bower ### +bower_components +.bower-cache +.bower-registry +.bower-tmp + + +### Node ### +# Logs +logs +*.log +npm-debug.log* + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directory +# https://docs.npmjs.com/misc/faq#should-i-check-my-node-modules-folder-into-git +node_modules +jspm_Packages + + +### DotSettings ### +*.DotSettings + +### VisualStudio ### +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# Windows Azure Build Output +csx/ +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Ionic +platforms +plugins +www + +# AODB Specific +tests/compiled +report +app/core/frame/frame.ts.orig +.vscode/ +hooks/after_platform_add/010_install_plugins.js +hooks/ +*.orig + + +.DS_Store +.idea/ +jspm_packages/ diff --git a/.io-config.json b/.io-config.json new file mode 100644 index 0000000..00ba0f3 --- /dev/null +++ b/.io-config.json @@ -0,0 +1 @@ +{"app_id":"e5b00de9","api_key":"f7be4e17290bb7e1b87b82db3c86936d948a3d1066502abc"} \ No newline at end of file diff --git a/.project b/.project new file mode 100644 index 0000000..370b12f --- /dev/null +++ b/.project @@ -0,0 +1,11 @@ + + + AODB + + + + + + + + diff --git a/AODB.Mobile.jsproj b/AODB.Mobile.jsproj new file mode 100644 index 0000000..ca07856 --- /dev/null +++ b/AODB.Mobile.jsproj @@ -0,0 +1,115 @@ + + + + + + Debug + Android + + + Debug + iOS + + + Debug + Windows-AnyCPU + + + Debug + Windows-x64 + + + Debug + Windows-x86 + + + Debug + Windows-ARM + + + Debug + Windows Phone 8 + + + Debug + Windows Phone (Universal) + + + Release + Android + + + Release + iOS + + + Release + Windows-AnyCPU + + + Release + Windows-x64 + + + Release + Windows-x86 + + + Release + Windows-ARM + + + Release + Windows Phone 8 + + + Release + Windows Phone (Universal) + + + + + + + f20dd032-ca1f-4eae-b4c3-af8a475fb1a7 + + + + 14.0 + + + 1.6.0 + true + + + false + true + + + + + Tools for Apache Cordova + + + MDD + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AODB.Mobile.sln b/AODB.Mobile.sln new file mode 100644 index 0000000..a90c84f --- /dev/null +++ b/AODB.Mobile.sln @@ -0,0 +1,80 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.23107.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{262852C6-CD72-467D-83FE-5EEB1973A190}") = "AODB.Mobile", "AODB.Mobile.jsproj", "{F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Android = Debug|Android + Debug|iOS = Debug|iOS + Debug|Windows Phone (Universal) = Debug|Windows Phone (Universal) + Debug|Windows Phone 8 = Debug|Windows Phone 8 + Debug|Windows-AnyCPU = Debug|Windows-AnyCPU + Debug|Windows-ARM = Debug|Windows-ARM + Debug|Windows-x64 = Debug|Windows-x64 + Debug|Windows-x86 = Debug|Windows-x86 + Release|Android = Release|Android + Release|iOS = Release|iOS + Release|Windows Phone (Universal) = Release|Windows Phone (Universal) + Release|Windows Phone 8 = Release|Windows Phone 8 + Release|Windows-AnyCPU = Release|Windows-AnyCPU + Release|Windows-ARM = Release|Windows-ARM + Release|Windows-x64 = Release|Windows-x64 + Release|Windows-x86 = Release|Windows-x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Android.ActiveCfg = Debug|Android + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Android.Build.0 = Debug|Android + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Android.Deploy.0 = Debug|Android + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|iOS.ActiveCfg = Debug|iOS + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|iOS.Build.0 = Debug|iOS + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|iOS.Deploy.0 = Debug|iOS + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows Phone (Universal).ActiveCfg = Debug|Windows Phone (Universal) + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows Phone (Universal).Build.0 = Debug|Windows Phone (Universal) + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows Phone (Universal).Deploy.0 = Debug|Windows Phone (Universal) + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows Phone 8.ActiveCfg = Debug|Windows Phone 8 + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows Phone 8.Build.0 = Debug|Windows Phone 8 + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows Phone 8.Deploy.0 = Debug|Windows Phone 8 + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows-AnyCPU.ActiveCfg = Debug|Windows-AnyCPU + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows-AnyCPU.Build.0 = Debug|Windows-AnyCPU + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows-AnyCPU.Deploy.0 = Debug|Windows-AnyCPU + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows-ARM.ActiveCfg = Debug|Windows-ARM + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows-ARM.Build.0 = Debug|Windows-ARM + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows-ARM.Deploy.0 = Debug|Windows-ARM + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows-x64.ActiveCfg = Debug|Windows-x64 + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows-x64.Build.0 = Debug|Windows-x64 + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows-x64.Deploy.0 = Debug|Windows-x64 + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows-x86.ActiveCfg = Debug|Windows-x86 + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows-x86.Build.0 = Debug|Windows-x86 + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Debug|Windows-x86.Deploy.0 = Debug|Windows-x86 + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Android.ActiveCfg = Release|Android + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Android.Build.0 = Release|Android + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Android.Deploy.0 = Release|Android + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|iOS.ActiveCfg = Release|iOS + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|iOS.Build.0 = Release|iOS + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|iOS.Deploy.0 = Release|iOS + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows Phone (Universal).ActiveCfg = Release|Windows Phone (Universal) + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows Phone (Universal).Build.0 = Release|Windows Phone (Universal) + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows Phone (Universal).Deploy.0 = Release|Windows Phone (Universal) + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows Phone 8.ActiveCfg = Release|Windows Phone 8 + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows Phone 8.Build.0 = Release|Windows Phone 8 + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows Phone 8.Deploy.0 = Release|Windows Phone 8 + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows-AnyCPU.ActiveCfg = Release|Windows-AnyCPU + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows-AnyCPU.Build.0 = Release|Windows-AnyCPU + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows-AnyCPU.Deploy.0 = Release|Windows-AnyCPU + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows-ARM.ActiveCfg = Release|Windows-ARM + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows-ARM.Build.0 = Release|Windows-ARM + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows-ARM.Deploy.0 = Release|Windows-ARM + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows-x64.ActiveCfg = Release|Windows-x64 + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows-x64.Build.0 = Release|Windows-x64 + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows-x64.Deploy.0 = Release|Windows-x64 + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows-x86.ActiveCfg = Release|Windows-x86 + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows-x86.Build.0 = Release|Windows-x86 + {F20DD032-CA1F-4EAE-B4C3-AF8A475FB1A7}.Release|Windows-x86.Deploy.0 = Release|Windows-x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/GitVersionConfig.yaml b/GitVersionConfig.yaml new file mode 100644 index 0000000..bf7d9ba --- /dev/null +++ b/GitVersionConfig.yaml @@ -0,0 +1,26 @@ +assembly-versioning-scheme: MajorMinorPatch +mode: ContinuousDeployment +branches: + master: + tag: + increment: Patch + prevent-increment-of-merged-branch-version: true + release[/-]: + tag: beta + feature[/-]: + tag: useBranchName + increment: Inherit + hotfix[/-]: + tag: beta + support[/-]: + tag: + increment: Patch + prevent-increment-of-merged-branch-version: true + develop: + tag: unstable + increment: Minor + track-merge-target: true + (pull|pull\-requests|pr)[/-]: + tag: PullRequest + increment: Inherit + tag-number-pattern: '[/-](?\d+)[-/]' diff --git a/README.md b/README.md new file mode 100644 index 0000000..7197a49 --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# AODB Mobile Readme + +## [Mac OS X Setup Guide](Readme/MacSetupGuide.md) + +## [Xubuntu Setup Guide](Readme/XubuntuSetupGuide.md) + +## [Development Guide](Readme/DevelopmentGuide.md) + +## [Release Guide](Readme/ReleaseGuide.md) + +## [Mobile Interface Endpoints](Readme/MobileInterfaceEndpoints.md) + +### TODO How do I get set up? + +* Summary of set up +* Configuration +* Dependencies +* Database configuration +* How to run tests +* Deployment instructions + +Contribution guidelines +* Writing tests +* Code review +* Other guidelines \ No newline at end of file diff --git a/Readme/DevelopmentGuide.md b/Readme/DevelopmentGuide.md new file mode 100644 index 0000000..f80bb04 --- /dev/null +++ b/Readme/DevelopmentGuide.md @@ -0,0 +1,206 @@ +# AODB Development + +## Background + +The AODB Mobile application built using Ionic, Angular and Typescript, it communicates with AODB over a well-defined, loosely coupled interface. + +--- +## Prerequisites + +Access to the team foundation server for the AODB Mobile project which contains the git repository and project documentation. +[Transport AODB Mobile Team Foundation Server](http://i-t-v-tf01:8080/tfs/Transport/Chroma%20Refresh/AODB%20Mobile) + +Access to the AODB Mobile project Thycotic Secret Server which contains all account information, usernames and passwords. +[Transport AODB Mobile Thycotic Secret Server](https://secrettransport.pdats.com) + +--- + +## Contents + +* [Overview](#overview) +* [Node Packages](#node-packages) +* [Setup and Run](#setup-and-run) +* [Development](#development) +* [Git Flow](#git-flow) + +--- +## Node Packages + +Install the following node packages with specified versions + +* gulp +* cordova +* ionic +* jspm +* bower +* npm-check +* npm-install-missing +* phantomjs-prebuilt +* sinopia +* pm2 + +**Install Node Packages with the following command in the terminal prompt:** +``` +$ npm i -g gulp cordova ionic jspm bower npm-check npm-install-missing phantomjs-prebuilt sinopia pm2 +``` + +**List installed Node Packages with the following command in the terminal prompt:** +``` +$ npm ls -g --depth=0 +``` + +--- +## Setup and Run + +The ionic info command prints out useful information about your system’s Ionic environment and dependencies +``` +$ ionic info +``` + +Clone the repo +``` +$ git clone http://i-t-v-tf01:8080/tfs/Transport/Chroma%20Refresh/_git/AODB +``` +Use gulp to install the projects dependencies +``` +$ gulp install +``` +Use gulp to build the project +``` +$ gulp build +``` +See the application running run the following command: +``` +$ ionic serve -l +``` + +--- +## Development + +### TFS + +[TFS Conventions Document](http://i-t-v-tf02:12345/ChromaDev/Chroma%20Processes/TFS%20Workflow/TFS%20Conventions.docx) + +### Pull requests +>Pull requests let you tell others about changes you've pushed to a repository. Once a pull request is sent, interested parties can review the set of changes, discuss potential modifications, and even push follow-up commits if necessary. + +--- +### Wallaby.js +>Wallaby.js is an intelligent and super fast test runner for JavaScript that continuously runs your tests. ... Wallaby.js is insanely fast, because it only executes tests affected by your code changes and runs your tests in parallel. + +--- +### Gulp +>Gulp is a task/build runner for development. + + +**Gulp watch task will watch all files in the application folder and rebuild the www folder when anything changes** +``` +$ gulp watch +``` + +**Compiles and run the tests** +``` +$ gulp test +``` + + +**List Gulp tasks** +``` +$ gulp --tasks +``` + + +--- +### Git Flow + +**Initialize** + +**Initialize gitflow** +``` +$ git flow init +``` + +**Features** + +**Start a new feature** +``` +$ git flow feature start MYFEATURE +``` +**Finish up a feature** +``` +$ git flow feature finish MYFEATURE +``` +**Publish a feature** +``` +$ git flow feature publish MYFEATURE +``` +**Get a feature published by another user.** +``` +$ git flow feature pull origin MYFEATURE +``` +**You can track a feature on origin by using** +``` +$ git flow feature track MYFEATURE +``` + +**Releases** + +**Start a release** + +**To start a release, use the git flow release command** +``` +$ git flow release start RELEASE [BASE] +``` +**Publish the release branch after creating it to allow release commits by other developers.** +``` +$ git flow release publish RELEASE +``` +**Track a remote release** +``` +$ git flow release track RELEASE +``` + +**Finish up a release** + +**Finishing a release performs several actions:** +* Merges the release branch back into 'master' +* Tags the release with its name +* Back-merges the release into 'develop' +* Removes the release branch + +**Finish release** +``` +$ git flow release finish RELEASE +``` + +**Push your tags with** +``` +$ git push --tags +``` +--- + + +**Start hotfix** + +``` +$ git flow hotfix start VERSION [BASENAME] +``` + +**Finish a hotfix** + +``` +$ git flow hotfix finish VERSION +``` +--- +**Commands** + +| | | | | +|:---------------|:--------------|:-------------|:-------| +| |**init** | | | +|**git flow =>** |**feature =>** |**start =>** |**NAME**| +| |**release** |**finish** | | +| |**hotfix** |**pubish** | | +| | |**pull** | | + +--- + diff --git a/Readme/MacSetupGuide.md b/Readme/MacSetupGuide.md new file mode 100644 index 0000000..3e356d4 --- /dev/null +++ b/Readme/MacSetupGuide.md @@ -0,0 +1,530 @@ +# AODB Mobile Mac + +## Background + +This guide is designed to set up and install all the components required for a development, automated build and continual integration environment on Mac OS X. + +## Prerequisites + +Access to the team foundation server for the AODB Mobile project which contains the git repository and project documentation. +[Transport AODB Mobile Team Foundation Server](http://i-t-v-tf01:8080/tfs/Transport/Chroma%20Refresh/AODB%20Mobile) + +Access to the AODB Mobile project Thycotic Secret Server which contains all account information, usernames and passwords. +[Transport AODB Mobile Thycotic Secret Server](https://secrettransport.pdats.com) + +Access to the Apple developer account which is used for setting up provisioning profiles, device management and certificates. +[Apple Developer Account](https://developer.apple.com) + +--- + +## Contents + +Install and configure the following components:l + +* [Rename Computer](#rename-computer) +* [Sophos](#sophos) +* [Java SDK](#java-sdk) +* [Xcode](#xcode) +* [Homebrew](#homebrew) +* [Git](#git) +* [OpenSSL](#openssl) +* [Visual Studio Team Services Agent](#visual-studio-team-services-agent) +* [Node Version Manager](#node-version-manager) +* [Node](#node) +* [Node Packages](#node-packages) +* [Sinopia](#sinopia) +* [PM2 Process Management](#pm2-process-management) +* [WebStorm](#webstorm) +* [SourceTree](#sourcetree) +* [Visual Studio Code](#visual-studio-code) +* [HockeyApp](#hockeyapp) + +--- + +## Rename Computer + +>Rename computer name using central technology asset id. + +**Asset ID: LM120477** +* Launch ‘System Preferences’ from the Apple menu in OS X +* Click the ‘Sharing’ icon +* Type in what you want your Mac’s new computer name to be +* Close ‘System Preferences’ for the setting to take effect + +--- + +## Sophos + +>Sophos Endpoint doesn’t rely on signatures to catch malware, which means it catches zero-day threats without adversely affecting the performance of your device. So you get protection before those exploits even arrive. + +Raise Assist with CT for adding Sophos Endpoint + + +## Java SDK +>The Java Development Kit (JDK) is a software development environment used for developing Java applications and applets. It includes the Java Runtime + +Download and install the Java Platform, Standard Edition +[Java SE Downloads](http://www.oracle.com/technetwork/java/javase/downloads/index.html) + +**Set $JAVA_HOME environment variable with the following command in the terminal prompt:** + +``` +$ emacs .profile +``` + +**Add this to the end of the .profile file:** + +``` +JAVA_HOME=/Library/Java/Home +export JAVA_HOME; +``` + +>Save and exit emacs (ctrl-x, ctrl-s; ctrl-x, ctrl-c) + +**Confirm Java verion with the following command in the terminal prompt:** +``` +$ java -version +``` +--- + +## Xcode + +>Xcode is an integrated development environment (IDE) containing the tools for developing iOS. + +**Install Xcode with the following command in the terminal prompt:** +``` +$ xcode-select --install +``` + +**Add MobileAppsTeam Developer Account to Xcode** + +* Open Xcode +* Xcode > Preferences > Accounts Tab +* Add MobileAppsTeam@leidos.com Account + + +**iOS developer certificates** + +[Apple Developer](https://developer.apple.com/) + +* Log into Apple Developer Account with MobileAppsTeam@leidos.com; +* Download iOS developer certificates; +* Open downloaded certificates in Keychain; +* Ensure Xcode has logged has the developer account logged in. + +--- + +## Homebrew + +>Homebrew is a open-source software package management. + +**Install Homebrew with the following command in the terminal prompt:** +``` +$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" +``` + +**Confirm the Homebrew installed with the following command in the terminal prompt:** +``` +$ brew doctor +``` + +[Homebrew documentation](https://git.io/brew-docs) + +--- + +## Git + +>Git is a version control system. Must be version >= 2.9.0 + +**Install Git with the following command in the terminal prompt:** +``` +$ brew install git +``` + +**Confirm the version of Git with the following command in the terminal prompt:** +``` +$ git --version +``` + +--- + +## OpenSSL + +>OpenSSL is an open source tool for using the Secure Socket Layer (SSL) and Transport Layer Security (TLS) protocols for Web authentication. + +**Install OpenSSL with the following command in the terminal prompt:** + +``` +$ brew install openssl +``` +**Ensure folder exists on machine with the following commands in the terminal prompt:** + +``` +$ mkdir -p /usr/local/lib/ +$ ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/ +$ ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/ +$ brew link --force openssl +$ brew info openssl +``` + +--- + +## Visual Studio Team Services Agent + +>The Visual Studio Team Services Agent OSX is cross platform build and release agent for Team Services and Team Foundation Server 2015 + +### Download the OSX agent + +[Download vsts-agent-osx.10.11-x64-2.105.7.tar.gz](https://github.com/Microsoft/vsts-agent/releases/download/v2.105.7/vsts-agent-osx.10.11-x64-2.105.7.tar.gz) + +**Create OSX agent folder in the `$HOME` with the following command in the terminal prompt:** +``` +$ cd $HOME +$ mkdir aodb-vsts-agent && cd aodb-vsts-agent +``` + +**Extract into agent folder from Downloads with the following command in the terminal prompt:** +``` +$ tar xzf ~/Downloads/vsts-agent-osx.10.11-x64-2.105.7.tar.gz +``` + +### Configure the agent + +**Configure the agent with the following command in the terminal prompt:** +``` +$ cd $HOME/aodb-vsts-agent +$ ./config.sh +``` + +**Enter the following details as below:** + +Enter Server URL > http://i-t-v-tf01:8080/tfs +Enter authentication type (press enter for Negotive) > +Enter user name > I-T-V-TF01/GITUSER +Enter Password > [Transport AODB Mobile Thycotic Secret Server](https://secrettransport.pdats.com) +Enter queue name > Chroma vNext +Enter agent name > Mac-LM120477 +Default any other settings + +**Run the agent with the following command in the terminal prompt:** +``` +$ ./run.sh +``` + +**Remove the agent to reconfigure with the following command in the terminal prompt:** +``` +$ ./config remove +``` +[Visual Studio Team Services Agent Documentation](https://github.com/Microsoft/vsts-agent) + +--- + +## Node Version Manager + +>Node Version Manager is bash script to manage multiple active node.js versions + +**Install NVM with the following command in the terminal prompt:** +``` +$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash +``` + +**Add NVM to the bash_profile with the following command in the terminal prompt:** +``` +$ nano ~/.bash_profile +``` + +**Add the following lines to the .bash_profile :** + +export PATH=$PATH:~/.android-sdk-macosx/platform-tools/ +export NVM_DIR="/Users/MobileAppsTeam/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" + + +**Verify installation with the following command in the terminal prompt:** +``` +$ nvm -v +``` + +[Node Version Manager Documentation](https://github.com/creationix/nvm#verify-installation) + +--- + +## Node + +>Node.js is an open-source, cross-platform JavaScript runtime environment. + +**Install Node and NPM with the following command in the terminal prompt:** +``` +$ nvm install 6.9.0 +$ npm i -g npm@3.10.7 +$ nvm use 6.9.0 +$ nvm alias default 6.9.0 + +``` + +**Verify Node version 6.9.0 and npm version 3.10.7 with the following command in the terminal prompt:** +``` +$ node -v && npm -v +``` +--- + +## Node Packages + +Install the following node packages with specified versions + +* gulp +* cordova +* ionic +* jspm +* bower +* npm-check +* npm-install-missing +* phantomjs-prebuilt +* sinopia +* pm2 + +**Install Node Packages with the following command in the terminal prompt:** +``` +$ npm i -g gulp cordova ionic jspm bower npm-check npm-install-missing phantomjs-prebuilt sinopia pm2 +``` + +**List installed Node Packages with the following command in the terminal prompt:** +``` +$ npm ls -g --depth=0 +``` + +--- + +## Sinopia + +>Sinopia is a private / caching npm repository server + +**Install Sinopia with the following command in the terminal prompt:** +``` +$ npm i sinopia -g +``` + +**Run Sinopia with the following command in the terminal prompt:** +``` +$ sinopia +``` + +**Set npm registry to Sinopia with the following command in the terminal prompt:** +``` +$ npm set registry http://localhost:4873/ +``` +**Set add user to Sinopia with the following command in the terminal prompt:** +``` +$ npm adduser --registry http://localhost:4873/ +``` + +Username: mobileappsteam +Password: [Transport AODB Mobile Thycotic Secret Server](https://secrettransport.pdats.com) +Email: MobileAppsTeam@leidos.com + +**Clone local-Chromaux git repository with the following commands in the terminal prompt:** +``` +$ cd $HOME/dev +$ git clone http://i-t-v-tf01:8080/tfs/Transport/Chroma%20Refresh/_git/UX +``` + +**Run the gulp command to export Chroma.UX with the following commands in the terminal prompt:** +``` +$ cd $HOME/dev/UX/Chroma.UX/ +$ npm install +$ gulp newexport +``` + +**Check the npm config file has the value registry=http://localhost:4873/ with the following command in the terminal prompt:** +``` +$cat ~/.npmrc +``` + +**Publish the Chroma.UX package to Sinopia with the following commands in the terminal prompt:** +``` +$ cd $HOME/dev/UX/local-chromaux/ +$ npm publish . +``` + + +[Sinopia Documentation](https://www.npmjs.com/package/sinopia) + +--- + +## PM2 Process Management + +>PM2 is a production process manager for Node.js applications with a built-in load balancer. It allows you to keep applications alive forever, to reload them without downtime and to facilitate common system admin tasks. + +**Install PM2 with the following command in the terminal prompt:** +``` +$ npm i pm2@latest -g +``` + +**Setup Auto-Completion with the following command in the terminal prompt:** +``` +$ pm2 completion >> ~/.bash_profile +``` + +**Create a process configuration JSON file as ~/process.json** + +```json +{ + "apps" : [ + { + "name" : "Sinopia", + "script" : "/Users/MobileAppsTeam/.nvm/versions/node/v4.4.7/bin/sinopia", + "cwd" : "/Users/MobileAppsTeam", + "watch" : false, + "instances" : 1, + "exec_mode" : "fork", + "combine_logs" : true, + "max_memory_restart" : "300M", + "restart_delay" : 5000 + }, + { + "name" : "BuildAgent", + "script" : "run.sh", + "cwd" : "/Users/MobileAppsTeam/aodb-vsts-agent", + "watch" : false, + "instances" : 1, + "exec_mode" : "fork", + "combine_logs" : true, + "max_memory_restart" : "300M", + "restart_delay" : 5000 + } + ] +} +``` + +**Start with the following command in the terminal prompt:** +``` +$ pm2 start ~/profile.json +``` + +**Additional Commands** +``` +$ pm2 kill +$ pm2 monit +$ pm2 list +$ pm2 log 0 +$ pm3 log 1 +``` + + +[PM2 documentation](http://pm2.keymetrics.io/docs/usage/quick-start/) + +--- + +## Android command line SDK Tools + +>SDK Tools is a downloadable component for the Android SDK. It includes the complete set of development and debugging tools for the Android SDK. + + +**Download the Mac SDK Tools** +[android-sdk_r24.4.1-macosx.zip](https://dl.google.com/android/android-sdk_r24.4.1-macosx.zip) + +**Unzip Android command line SDK Tools with the following commands in the terminal prompt:** +``` +$ cd ~/Downloads/ +$ unzip android-sdk*.zip +$ mv android-sdk-macosx/ ~/.android-sdk-macosx +``` + +**Run the SDK Manager with the following commands in the terminal prompt:** +``` +$ sh ~/.android-sdk-macosx/tools/android +``` + +**Select the following below:** + +Tools +* Android SDK Build-tools 23.03 +* Android SDK Build-tools 23.02 +* Android SDK Build-tools 23.01 +* Android SDK Build-tools 22.01 + +Android 6.0 (API 23) +* SDK Platform +* Google APIs Intel x86 Atom_64 System Image +* Sources for Android SDK + +**Click Install Packages** + +**Add platform-tools to your path with the following commands in the terminal prompt:** +``` +$ echo 'export PATH=$PATH:~/.android-sdk-macosx/platform-tools/' >> ~/.bash_profile +``` + +**Refresh your bash profile with the following commands in the terminal prompt:** +``` +$ source ~/.bash_profile +``` + +[Android Developer Website](https://developer.android.com/studio/index.html) + +--- + +## WebStorm + +>WebStorm is a JavaScript IDE for client-side development and server-side development with Node.js. + +[Download WebStorm for Mac OS](https://download.jetbrains.com/webstorm/WebStorm-2016.2.4.dmg) + +[WebStorm Website](https://www.jetbrains.com/webstorm/) + +--- + +## SourceTree + +>SourceTree is a Git and Hg client. SourceTree simplifies how you interact with your Git and Mercurial repositories. + +[Download SourceTree](https://downloads.atlassian.com/software/sourcetree/SourceTree_2.3.1.zip?_ga=1.107064514.1767012481.1477928157) + +--- + +## Visual Studio Code + +>Visual Studio Code is a source code editor developed by Microsoft for Windows, Linux and macOS. It includes support for debugging, embedded Git control, syntax highlighting, intelligent code completion, snippets, and code refactoring. + +[Download Visual Studio Code](http://code.visualstudio.com/docs/?dv=osx) + +--- + +## Tinker Tools + +>TinkerTool is an application that gives you access to additional preference settings Apple has built into macOS. This allows to activate hidden features in the operating system and in some of the applications delivered with the system + +[Download Tinker Tools]() +--- +## Brackets + +>Brackets is an open source code editor for web designers and front-end developers. + +[Download Brackets]() +--- + +## Chrome + +>Chrome is a fast, simple and secure web browser, built for the modern web. Download Chrome. + +[Download Chrome]() + +--- + +# TO ADD + +screen + +How To Use Linux Screen + +Control Command +Command: “Ctrl-a” + +Switching Between Windows + +Command: “Ctrl-a” “n” + +Detaching From Screen + +Command: “Ctrl-a” “d” + +--- \ No newline at end of file diff --git a/Readme/MobileInterfaceEndpoints.md b/Readme/MobileInterfaceEndpoints.md new file mode 100644 index 0000000..1f85279 --- /dev/null +++ b/Readme/MobileInterfaceEndpoints.md @@ -0,0 +1,522 @@ +# Mobile Interface Endpoints + +|Verb|Name|Url| +|---|---|---| +|POST|[Authentication](#authentication)|/api/auth| +|POST|[CancelTransaction](#canceltransaction)|/api/cancelTransaction| +|POST|[ConfirmTransaction](#confirmtransaction)|/api/confirmTransaction| +|POST|[CreateTransaction](#createtransaction)|/api/createTransaction| +|GET|[Detail](#detail)|/api/detail/| +|GET|[Flights](#flights)|/api/flights| +|GET|[GetOperatorImage](#getoperatorimage)|/api/GetOperatorImage| +|GET|[GetTransactionCodes](#gettransactioncodes)|/api/getTransactionCodes| +|GET|[GetTransactionConfig](#gettransactionconfig)|/api/getTransactionConfig| +|GET|[GetUserAccessRightsForTransaction](#getuseraccessrightsfortransaction)|/api/getUserAccessRightsForTransaction| +|GET|[GetWindows](#getwindows)|/api/getWindows| +|POST|[SetSite](#setsite)|/api/setSite| +|GET|[Transactions](#transactions)|/api/transactions| +|POST|[UpdateTransaction](#updatetransaction)|/api/updateTransaction| +|POST|[UpdateFlight](#Updatflight)|/api/updateFlight| + +--- + +## Authentication + +**/api/auth** + +**Example post** + +```json +{ + "Username": "username", + "Password": "password", + "ActiveDirectoryUsername": "" +} +``` + +**Example response** + +```json +{ + "ContentEncoding": null, + "ContentType": null, + "Data": { + "LoginSuccess": true, + "SiteSelectionRequired": true, + "Sites": { + "SelectedSiteId": 0, + "Sites": [ + { + "SiteId": 23, + "SiteName": "Oslo Airport", + "IATACode": "OSL" + }, + { + "SiteId": 68, + "SiteName": "Alesund Airport, Vigra", + "IATACode": "AES" + } + ], + "Warning": false + } + }, + "JsonRequestBehavior": 1, + "MaxJsonLength": null, + "RecursionLimit": null +} +``` + +--- +## CancelTransaction + +**Example request** +``` +http://localhost:89/api/cancelTransaction +``` + +**Example post** + +```json +{ + "Id": "296994", + "PhysflightId": "7126204", + "PublflightId": "7126204", + "Code": "TOW", + "Name": "ACFT TOW", + "Quantity": 1, + "Duration": "0", + "PONumber": "1", + "StartTime": "08/12/2016 12:18", + "EndTime": "08/12/2016 12:18", + "Confirmed": true, + "Cancelled": true, + "CodeType": 1, + "Timestamp": 1689685320 +} +``` + +--- +## ConfirmTransaction + +**Example request** +``` +http://localhost:89/api/confirmTransaction +``` + +**Example post** + +```json +{ + "Id": "296994", + "PhysflightId": "7126204", + "PublflightId": "7126204", + "Code": "TOW", + "Name": "ACFT TOW", + "Quantity": 1, + "Duration": "0", + "PONumber": "1", + "StartTime": "08/12/2016 12:18", + "EndTime": "08/12/2016 12:18", + "Confirmed": false, + "Cancelled": true, + "CodeType": 1, + "Timestamp": 1689685320 +} +``` + + +**Example response** +```json +{ + "Success":true +} +``` + +--- +## CreateTransaction + +**Example request** + +``` +http://localhost:89/api/createTransaction +``` + +**Example post** + +```json +{ + "Id": "296994", + "PhysflightId": "7126204", + "PublflightId": "7126204", + "Code": "TOW", + "Name": "ACFT TOW", + "Quantity": 1, + "Duration": "0", + "PONumber": "1", + "StartTime": "08/12/2016 12:18", + "EndTime": "08/12/2016 12:18", + "Confirmed": false, + "Cancelled": false, + "CodeType": 1, + "Timestamp": 1689685320 +} +``` + +**Example response** +```json +{ + "Success":true +} +``` + +--- + +## Detail + +**/api/detail/** + +**Example request** + +``` +http://localhost:89//api/detail/?flightId=7121274&requestId=c9bced9b-1e6e-44b3-a236-0dd3005ee967 +``` + +**Example response** + +```json +{ + "Editors": [ + { + "Name": "readonly", + "Type": "readonly", + "Url": "" + }, + { + "Name": "datetime", + "Type": "datetime", + "Url": "updateflightdate" + }, + { + "Name": "freetext", + "Type": "freetext", + "Url": "updateflight" + } + ], + "Groups": [ + { + "Name": "Detail", + "Display": "Details", + "Icon": "ion-plane" + } + ], + "Fields": [ + { + "Value": "WF", + "Name": "Operator", + "Editor": "readonly", + "Group": "detail", + "Mapping": "SCOPER", + "Restrict": "" + } + ], + "Flight": { + "Id": "7121274", + "PhysFlightId": "7121274", + "Type": "D", + "Number": "128", + "Operator": "WF", + "FlightConcat": "WF128", + "AircraftType": "DH1", + "Registration": "", + "Location": "FRO", + "Scheduled": "\/Date(1478635200000)\/", + "Estimated": "\/Date(-62135596800000)\/", + "Actual": "\/Date(-62135596800000)\/", + "Terminal": "T1", + "Stand": "" + }, + "IsOutsideOfWindow": false +} +``` + +--- + +## Flights + +**/api/flights** + +>Gets list of flights + +**Example request** + +``` +http://localhost:89/api/flights?window=Default +``` + +**Example json data** + +```json +{ + "Flights": [ + { + "Id": "6760005", + "PhysFlightId": "6760005", + "Type": "D", + "Number": "4055", + "Operator": "SK", + "FlightConcat": "SK4055", + "AircraftType": "73G", + "Registration": "", + "Location": "SVG", + "Scheduled": "\/Date(1478895600000)\/", + "Estimated": "\/Date(-62135596800000)\/", + "Actual": "\/Date(-62135596800000)\/", + "Terminal": "T1", + "Stand": "" + } + ], + "RequestId": "6be3dc32-847c-4d6f-b504-a5dac8444791", + "Filter": "Default" +} +``` + +--- +## GetOperatorImage + +**api/GetOperatorImage** + +**Example get request** + +``` +/api/GetOperatorImage?code=BA +``` + +>Content-Type:image/jpeg + +--- + +## GetTransactionCodes + +**/api/getTransactionCodes** + +**Example request** + +``` +http://localhost:89//api/getTransactionCodes +``` + +**Example response** + +```json +[ + { + "Code": "TOW", + "CodeType": 1, + "Name": "ACFT TOW" + }, + { + "Code": "ASU", + "CodeType": 1, + "Name": "AIR START UNIT" + } +] +``` + +--- + +## GetTransactionConfig +**/api/getTransactionConfig** + +**Example request** +``` +http://localhost:89//api/getTransactionConfig?flightId=7250332&physFlight=7250332 +``` + +**Example response** + +```json +[ + { + "Id": 0, + "ColumnName": "FLGTTRAN_TRANCATG_CODE", + "Visible": true, + "Editable": true, + "Width": 6, + "Index": 0, + "HeaderText": "Code", + "DateFormat": null, + "Highlight": false, + "Description": "Code", + "Frozen": false, + "Configuration": null, + "ListItems": null, + "Justify": "RIGHT", + "Length": 4, + "Precision": 0, + "ColumnDataType": 0, + "CodeSetType": null, + "LookupType": 0, + "Formatter": null, + "Fixed": false, + "LookupTypeName": null, + "InGrid": false + } +] +``` + +--- + +## GetUserAccessRightsForTransaction + +**/api/getUserAccessRightsForTransaction** + +**Example request** +``` +http://localhost:89//api/getUserAccessRightsForTransaction +``` + +**Example response** + +```json +{ + "ProfileCode": "FSWH SYSTEM CONTROLLER", + "FunctionDefinition": "FSW_TRANSACTIONS", + "Enabled": true, + "Update": true, + "Add": true, + "Delete": true, + "View": true, + "FuncEnabled": false, + "FuncPackage": false, + "FuncProcedure": false, + "FuncParamaters": 0 +} +``` + +--- + +## GetWindows +**/api/getWindows** + +**Example response** + +```json +[ + { + "Id": 0, + "Name": "ABB", + "Description": "ABB", + "Type": "STANDARD" + } +] +``` + +--- + +//TODO +## SetSite + +**/api/setSite** + +**Example request** +``` +http://localhost:89/api/setSite +``` +**Example response** + +```json +{ + "ContentEncoding": null, + "ContentType": null, + "Data": { + "Error": false + }, + "JsonRequestBehavior": 1, + "MaxJsonLength": null, + "RecursionLimit": null +} +``` + +--- + +## Transactions + +**/api/transactions** + +**Example request** +``` +http://localhost:89//api/transactions?flightId=7250332&physFlight=7250332 +``` + +**Example response** + +```json +[ + { + "Id": "296645", + "PhysflightId": "7250332", + "PublflightId": "7250332", + "Code": "TOW", + "Name": "ACFT TOW", + "Quantity": 1, + "Duration": "0", + "PONumber": "", + "StartTime": "10/11/2016 19:14", + "EndTime": "10/11/2016 19:14", + "Confirmed": false, + "Cancelled": false, + "CodeType": 1, + "Timestamp": 1683178617 + } +] +``` + +--- + +## UpdateTransaction + +**Example post** + +```json +{ + "Id": "296994", + "PhysflightId": "7126204", + "PublflightId": "7126204", + "Code": "TOW", + "Name": "ACFT TOW", + "Quantity": 1, + "Duration": "0", + "PONumber": "1", + "StartTime": "08/12/2016 12:18", + "EndTime": "08/12/2016 12:18", + "Confirmed": false, + "Cancelled": false, + "CodeType": 1, + "Timestamp": 1689685320 +} +``` + +--- + +## UpdateFlight + +**Example post** + +```json +{ + "ErrorCode": null, + "Error": null, + "Success": true, + "RequiresConfirmation": false, + "ErrorDescription": null, + "ErrorCaption": null, + "PublishedFlightId": "7126204", + "ColumnName": "S1_PHYSFLGT_CREW_NUMBER", + "Value": "100", + "UpdatedValue": "100", + "Operator": null, + "AircraftType": null +} +``` + +--- \ No newline at end of file diff --git a/Readme/ReleaseGuide.md b/Readme/ReleaseGuide.md new file mode 100644 index 0000000..7bac3d0 --- /dev/null +++ b/Readme/ReleaseGuide.md @@ -0,0 +1,97 @@ +# AODB Mobile Release Guide + +## Background + +## Prerequisites + +Access to the team foundation server for the AODB Mobile project which contains the git repository and project documentation. +[Transport AODB Mobile Team Foundation Server](http://i-t-v-tf01:8080/tfs/Transport/Chroma%20Refresh/AODB%20Mobile) + +Access to the AODB Mobile project Thycotic Secret Server which contains all account information, usernames and passwords. +[Transport AODB Mobile Thycotic Secret Server](https://secrettransport.pdats.com) + +Access to the Apple developer account which is used for setting up provisioning profiles, device management and certificates. +[Apple Developer Account](https://developer.apple.com) + +--- + +## Contents + +* [Apple Developer](#apple-developer) +* [HockeyApp](#hockeyapp) + +## Apple Developer + +>Apple Developer, formerly Apple Developer Connection or ADC, is Apple Inc.'s developer network. It is designed to make available resources to help software developers write software for the Mac OS X and iOS platforms. + +[Apple Developer Login](https://developer.apple.com/) + +--- + +## HockeyApp + +>HockeyApp is a service for app developers to support them in various aspects of their development process, including the management and recruitment of testers, the distribution of apps and the collection of crash reports. + +[HockeyApp Website](https://rink.hockeyapp.net) + +### Invite User + +* Sign in to HockeyApp +* Click on your app, then on "Invite User". +* Select Role [Roles](#roles) +* User will need to download + +**Roles** +* Developers can view and edit all data of the app. +* Members can view all data and answer to feedback messages, but not edit the app or upload builds. +* Testers can download and install the app. + +### Export Unprovisioned Devices + +* Sign in to HockeyApp +* Click on your app, then on "Users". +* Select "Export > Unprovisioned Devices", then a file will be downloaded. + +### Import into Apple Developer + +* Sign in to http://developer.apple.com. +* Click on "Certificates, Identifiers & Profiles" in the right sidebar. +* Click on "Devices", then on the + button. +* Select "Register Multiple Devices" and choose the downloaded device file. +* Click on "Continue". +* Confirm the list of imported devices with "Register". + +### Download Provisioning Profiles + +* iOS Provisioning Profiles (Development) +* Modify your profile contents and select the Generate button to save changes +* Devices +* Click Select all +* Click Generate +* On the Mac Download Provisioning Profiles +* Open Xcode +* Under preference > select account +* Sign in with developer account MobileAppsTeam@leidos.com +* Click "view Details" +* Click "Download" on the latest provisioning profile +* Run ```ls -apl ~/Library/MobileDevice/Provisioning\ Profiles/``` in the terminal +* Select last provisioning id +* Add to build.json provisioningProfile + + +```json +{ + "ios": { + "debug": { + "developmentTeam":"DA3XCEKC7Z", + "provisioningProfile" : "fa3567f0-e841-405a-b9e8-adc652a74f8c" + + }, + "release": { + "developmentTeam":"DA3XCEKC7Z", + "provisioningProfile" : "fa3567f0-e841-405a-b9e8-adc652a74f8c" + + } + } +} +``` \ No newline at end of file diff --git a/Readme/XubuntuSetupGuide.md b/Readme/XubuntuSetupGuide.md new file mode 100644 index 0000000..7359e28 --- /dev/null +++ b/Readme/XubuntuSetupGuide.md @@ -0,0 +1,418 @@ +# Build Guide Xubuntu + +## Background + +This guide is designed to set up and install all the components required for a development environment on Xubuntu. + +## Prerequisites + +Xubuntu operating system + +>Xubuntu is an elegant and easy-to-use Unix-like operating system. Xubuntu comes with Xfce, which is a stable, light and configurable desktop environment. + +[Download Yakkety Yak the 16.10 xubuntu-16.04-desktop-amd64.iso](http://cdimages.ubuntu.com/xubuntu/releases/16.04/release/xubuntu-16.04-desktop-amd64.iso) + +[Xubuntu website](https://xubuntu.org/) + +Access to the team foundation server for the AODB Mobile project which contains the git repository and project documentation. +[Transport AODB Mobile Team Foundation Server](http://i-t-v-tf01:8080/tfs/Transport/Chroma%20Refresh/AODB%20Mobile) + +Access to the AODB Mobile project Thycotic Secret Server which contains all account information, usernames and passwords. +[Transport AODB Mobile Thycotic Secret Server](https://secrettransport.pdats.com) + +--- + +## Contents + +Install and configure the following components: + +* [Update and Upgrade](#update-and-upgrade) +* [Sophos](#sophos) +* [Java SDK](#java-sdk) +* [Android command line SDK Tools](#android-command-line-sdk-tools) +* [Development Tools](#development-tools) +* [Node Version Manager](#node-version-manager) +* [Node](#node) +* [Node Packages](#node-packages) +* [Sinopia](#sinopia) +* [PM2 Process Management](#pm2-process-management) +* [WebStorm](#webstorm) +* [Visual Studio Code](#visual-studio-code) +* [Chromium](#chromium) +* [Brackets](#brackets) +--- + +## Update and Upgrade +>Resynchronize the package index files and Upgrade the Debian Linux system including security update. + +**Update and Upgrade with the following command in the terminal prompt:** +``` +$ sudo apt-get update +$ sudo apt-get upgrade +``` + +**Reboot with the following command in the terminal prompt:** +``` +$ sudo reboot -n +``` + +## Sophos +>Sophos Endpoint doesn’t rely on signatures to catch malware, which means it catches zero-day threats without adversely affecting the performance of your device. So you get protection before those exploits even arrive. + +Raise Assist with CT for adding Sophos Endpoint + +--- + +## Java SDK +>The Java Development Kit (JDK) is a software development environment used for developing Java applications and applets. It includes the Java Runtime + +**Use Webup8 Oracle Java8 Installer with the following commands in the terminal prompt:** +``` +$ sudo add-apt-repository ppa:webupd8team/java -y +$ sudo apt-get update +$ sudo apt-get install oracle-java8-installer +``` + +**Set Java environment variables with the following command in the terminal prompt:** +``` +$ sudo apt-get install oracle-java8-set-default +``` + +**Check the Java version with the following command in the terminal prompt:** +``` +$ java -version +``` + +**Set environment variables with the following command in the terminal prompt:** +``` +$ sudo nano /etc/environment +``` + +**Add the following to the environment file** +``` +JAVA_HOME="/usr/lib/vm/java-8-oracle" +``` + +**Refresh environment file with the following command in the terminal prompt:** +``` +$ source /etc/environment +``` + +**Set environment variables in .bashrc with the following command in the terminal prompt:** +``` +$ sudo nano ~/.bashrc +``` + +**Add the following to the .bashrc file:** +``` +export JAVA_HOME="/usr/lib/vm/java-8-oracle" +``` + +**Refresh the bash profile with the following commands in the terminal prompt:** +``` +$ source ~/.bashrc +``` + +--- + +## Android command line SDK Tools +>SDK Tools is a downloadable component for the Android SDK. It includes the complete set of development and debugging tools for the Android SDK. + +**Download the Mac SDK Tools** +[android-sdk_r24.4.1-linux.tgz](https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz) + +**Unzip Android command line SDK Tools with the following commands in the terminal prompt:** +``` +$ mkdir ~/Apps +$ cd ~/Downloads/ +$ tar android-sdk*.zip +$ mv android-sdk-linux/ ~/Apps/android-sdk-linux +``` + +**Add the following to the .bashrc file:** +``` +export ANDROID_HOME="$HOME/Apps/android-sdk-linux" +export PATH=$PATH:$ANDROID_HOME/platform-tools/:$ANDROID_HOME/tools/ +``` + +**Refresh your bash profile with the following commands in the terminal prompt:** +``` +$ source ~/.bashrc +``` + +**Run the SDK Manager with the following commands in the terminal prompt:** +``` +$ sh ~/.android-sdk-linux/tools/android +``` + +**Select the following below:** + +__Under Tools__ +* Android SDK Platform-tools (Rev 25) +* Android SDK Build-tools (Rev 25) + +__Under Android 7.11 (API 25)__ +* SDK Platform (API 25) +* Google APIs Intel x86 Atom_64 System Image(API 25, Rev 2) + + +**Click Install Packages** + +[Android Developer Website](https://developer.android.com/studio/index.html) + +--- + +## Development Tools +>Build-essential is a package which contains references to numerous packages needed for building software in general + +>Git is a version control system that is used for software development and other version control tasks. + +>htop is an interactive system-monitor process-viewer. It is designed as an alternative to the Unix program top. + +>Linux Screen allows you to: Use multiple shell windows from a single SSH session. + +>curl is a command line tool for getting or sending files using URL syntax. + +**Install the following packages** +* build-essential +* git +* htop +* screen +* curl + +**Run the following command in the terminal prompt:** +``` +$ sudo apt-get install build-essential git htop screen curl +``` + +--- + +## Node Version Manager +>Node Version Manager is bash script to manage multiple active node.js versions + +**Install NVM with the following command in the terminal prompt:** +``` +$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash +``` + +**Refresh your bash profile with the following commands in the terminal prompt:** +``` +$ source ~/.bashrc +``` + +**Verify installation with the following command in the terminal prompt:** +``` +$ nvm --version +``` + +[Node Version Manager Documentation](https://github.com/creationix/nvm#verify-installation) + +--- +## Node + +>Node.js is an open-source, cross-platform JavaScript runtime environment. + +**Install Node and NPM with the following command in the terminal prompt:** +``` +$ nvm install 6.9.0 +$ npm i -g npm@3.10.7 +$ nvm use 6.9.0 +$ nvm alias default 6.9.0 + +``` + +**Verify Node version 6.9.0 and npm version 3.10.7 with the following command in the terminal prompt:** +``` +$ node -v && npm -v +``` +--- + +## Node Packages +Install the following node packages with specified versions + +* gulp +* cordova +* ionic +* jspmw +* bower +* npm-check +* npm-install-missing +* phantomjs-prebuilt +* sinopia +* pm2 + +**Install Node Packages with the following command in the terminal prompt:** +``` +$ npm i -g gulp cordova ionic jspm bower npm-check npm-install-missing phantomjs-prebuilt sinopia pm2 +``` + +**List installed Node Packages with the following command in the terminal prompt:** +``` +$ npm ls -g --depth=0 +``` + +--- + +## Sinopia +>Sinopia is a private / caching npm repository server + +**Install Sinopia with the following command in the terminal prompt:** +``` +$ npm i sinopia -g +``` + +**Run Sinopia with the following command in the terminal prompt:** +``` +$ sinopia +``` + +**Set npm registry to Sinopia with the following command in the terminal prompt:** +``` +$ npm set registry http://localhost:4873/ +``` +**Set add user to Sinopia with the following command in the terminal prompt:** +``` +$ npm adduser --registry http://localhost:4873/ +``` + +Username: mobileappsteam +Password: [Transport AODB Mobile Thycotic Secret Server](https://secrettransport.pdats.com) +Email: MobileAppsTeam@leidos.com + +**Clone local-Chromaux git repository with the following commands in the terminal prompt:** +``` +$ cd $HOME/dev +$ git clone http://i-t-v-tf01:8080/tfs/Transport/Chroma%20Refresh/_git/UX +``` + +**Run the gulp command to export Chroma.UX with the following commands in the terminal prompt:** +``` +$ cd $HOME/dev/UX/Chroma.UX/ +$ npm install +$ gulp newexport +``` + +**Check the npm config file has the value registry=http://localhost:4873/ with the following command in the terminal prompt:** +``` +$cat ~/.npmrc +``` + +**Publish the Chroma.UX package to Sinopia with the following commands in the terminal prompt:** +``` +$ cd $HOME/dev/UX/local-chromaux/ +$ npm publish . +``` + +[Sinopia Documentation](https://www.npmjs.com/package/sinopia) + +--- + +## PM2 Process Management +>PM2 is a production process manager for Node.js applications with a built-in load balancer. It allows you to keep applications alive forever, to reload them without downtime and to facilitate common system admin tasks. + +**Install PM2 with the following command in the terminal prompt:** +``` +$ npm i pm2@latest -g +``` + +**Setup Auto-Completion with the following command in the terminal prompt:** +``` +$ pm2 completion >> ~/.bashrc +``` + +**Create a process configuration JSON file as ~/process.json** + +```json +{ + "apps" : [ + { + "name" : "Sinopia", + "script" : "/home/mobileappsteam/.nvm/versions/node/v4.4.7/bin/sinopia", + "cwd" : "/home/mobileappsteam", + "watch" : false, + "instances" : 1, + "combine_logs" : true, + "max_memory_restart" : "300M", + "restart_delay" : 5000 + } + + ] +} +``` + + +**Generate startup scripts with the following command in the terminal prompt:** +``` +$ pm2 startup ubuntu +``` + +**Following with be generated** +``` +PM2] You have to run this command as root. Execute the following command: +sudo su -c "env PATH=$PATH:/home/mobileappsteam/.nvm/versions/node/v6.9.0/bin pm2 startup ubuntu -u mobileappsteam --hp /home/mobileappsteam" +``` + +**Run the generated command in the terminal prompt:** +``` +$ sudo su -c "env PATH=$PATH:/home/mobiledev/.nvm/versions/node/v6.9.0/bin pm2 startup ubuntu -u mobiledev --hp /home/mobiledev" +``` + +**Save PM2 changes with the following command in the terminal prompt:** +``` +$ pm2 save +``` + +**Start with the following command in the terminal prompt:** +``` +$ pm2 start ~/profile.json +``` + +**Additional Commands** +``` +$ pm2 kill +$ pm2 monit +$ pm2 list +$ pm2 log 0 +``` + +[PM2 documentation](http://pm2.keymetrics.io/docs/usage/quick-start/) + +--- + +## WebStorm +>WebStorm is a JavaScript IDE for client-side development and server-side development with Node.js. + +[WebStorm Website](https://www.jetbrains.com/webstorm/) + +--- + +## Visual Studio Code +>Visual Studio Code is a source code editor developed by Microsoft for Windows, Linux and macOS. It includes support for debugging, embedded Git control, syntax highlighting, intelligent code completion, snippets, and code refactoring. + +[Download Visual Studio Code](http://code.visualstudio.com) + +--- + +## Chromium +>Chromium is the open-source web browser project from which Google Chrome draws its source code.[5] The browsers share the majority of code and features, though there are some minor differences in features and they have different licensing. + + +**Install Chromium with the following command in the terminal prompt:** +``` +$ sudo apt-get install chromium-browser +``` + +--- + +## Brackets +>Brackets is an open source code editor for web designers and front-end developers. + +**Install Brackets with the following commands in the terminal prompt:** + +``` +$ sudo add-apt-repository ppa:webupd8team/brackets +$ sudo apt-get update +$ sudo apt-get install brackets +``` + +--- \ No newline at end of file diff --git a/angular-ios9-uiwebview.patch.js b/angular-ios9-uiwebview.patch.js new file mode 100644 index 0000000..58d8be1 --- /dev/null +++ b/angular-ios9-uiwebview.patch.js @@ -0,0 +1,75 @@ +/** + * ================== angular-ios9-uiwebview.patch.js v1.1.1 ================== + * + * This patch works around iOS9 UIWebView regression that causes infinite digest + * errors in Angular. + * + * The patch can be applied to Angular 1.2.0 – 1.4.5. Newer versions of Angular + * have the workaround baked in. + * + * To apply this patch load/bundle this file with your application and add a + * dependency on the "ngIOS9UIWebViewPatch" module to your main app module. + * + * For example: + * + * ``` + * angular.module('myApp', ['ngRoute'])` + * ``` + * + * becomes + * + * ``` + * angular.module('myApp', ['ngRoute', 'ngIOS9UIWebViewPatch']) + * ``` + * + * + * More info: + * - https://openradar.appspot.com/22186109 + * - https://github.com/angular/angular.js/issues/12241 + * - https://github.com/driftyco/ionic/issues/4082 + * + * + * @license AngularJS + * (c) 2010-2015 Google, Inc. http://angularjs.org + * License: MIT + */ + +angular.module('ngIOS9UIWebViewPatch', ['ng']).config(['$provide', function($provide) { + 'use strict'; + + $provide.decorator('$browser', ['$delegate', '$window', function($delegate, $window) { + + if (isIOS9UIWebView($window.navigator.userAgent)) { + return applyIOS9Shim($delegate); + } + + return $delegate; + + function isIOS9UIWebView(userAgent) { + return /(iPhone|iPad|iPod).* OS 9_\d/.test(userAgent) && !/Version\/9\./.test(userAgent); + } + + function applyIOS9Shim(browser) { + var pendingLocationUrl = null; + var originalUrlFn= browser.url; + + browser.url = function() { + if (arguments.length) { + pendingLocationUrl = arguments[0]; + return originalUrlFn.apply(browser, arguments); + } + + return pendingLocationUrl || originalUrlFn.apply(browser, arguments); + }; + + window.addEventListener('popstate', clearPendingLocationUrl, false); + window.addEventListener('hashchange', clearPendingLocationUrl, false); + + function clearPendingLocationUrl() { + pendingLocationUrl = null; + } + + return browser; + } + }]); +}]); diff --git a/app-settings.json b/app-settings.json new file mode 100644 index 0000000..678f899 --- /dev/null +++ b/app-settings.json @@ -0,0 +1,12 @@ +[ + { + "type":"group", + "title":"Common", + "items":[{ + "title":"API URL", + "type":"textfield", + "key":"apiurl", + "default": "10.3.90.7" + }] + } +] diff --git a/app/authentication/auth.mod.ts b/app/authentication/auth.mod.ts new file mode 100644 index 0000000..322db3a --- /dev/null +++ b/app/authentication/auth.mod.ts @@ -0,0 +1,19 @@ +import AuthConfig = require('./auth.routes'); +import Dectorators = require('../infrastructure/Dectorators/Components'); +import authenticationService = require('./services/authentication.service'); +import authenticationInterceptor = require('./services/authentication.interceptor'); +import LoginComponent = require('./components/login-view/login'); + + +@Dectorators.module('auth') +export class Mod { + constructor(angular: ng.IAngularStatic) { + angular.module(Mod.$componentName, []) + .factory(authenticationService.AuthenticationService.$componentName, authenticationService.AuthenticationService.$factory) + .factory(authenticationInterceptor.AuthenticationInterceptor.$componentName, + authenticationInterceptor.AuthenticationInterceptor.$factory) + .controller(LoginComponent.Controller.$componentName, LoginComponent.Controller) + .directive(LoginComponent.Directive.$componentName, LoginComponent.Directive.$factory) + .config(AuthConfig.Config); + } +} diff --git a/app/authentication/auth.routes.ts b/app/authentication/auth.routes.ts new file mode 100644 index 0000000..12cd100 --- /dev/null +++ b/app/authentication/auth.routes.ts @@ -0,0 +1,27 @@ +export class Config { + static $inject: Array = ['$stateProvider', + '$urlRouterProvider', + '$httpProvider']; + + constructor($stateProvider: ng.ui.IStateProvider, + $urlRouterProvider: ng.route.IRouteProvider, + $httpProvider: ng.IHttpProvider) { + + $stateProvider.state('login', { + url: '/login', + params: { + hasLoggedOut: false, + redirected: false + }, + template: '
' + + ' ' + + '
' + }); + + $stateProvider.state('logout', { + url: '/logout' + }); + + $httpProvider.interceptors.push('authenticationInterceptor'); + } +} diff --git a/app/authentication/components/login-view/login.less b/app/authentication/components/login-view/login.less new file mode 100644 index 0000000..5a10877 --- /dev/null +++ b/app/authentication/components/login-view/login.less @@ -0,0 +1,93 @@ +#loginbox .panel { + box-shadow: 0 1px 11px rgba(0,0,0,.27); +} + +#login-form { + display: flex; + flex-direction: column; + align-items: center; + margin-top: 60px; + + .item-input { + width: 100%; + margin-bottom: 8px; + border-width: 0 0 3px 0; + + input { + font-size: 110%; + margin-top: -3px; + padding-left: 20px; + color: blue; + } + } + + * { + max-width: 300px; + } +} + +#logo-text { + /*position:absolute;*/ + color: #fbfafa; + font-size: 108%; + margin-left: -10px; + padding-right: 10px; + line-height: 37px; +} + +#logo-shape { + position: absolute; + top: 2; + right: 14px; + height: 28px; + width: 100%; + -webkit-transform: skew(24deg); + transform: skew(24deg); + margin-left: -10px; + margin-top: 1px; + z-index: -1; +} + +@media (max-width: 360px) and (min-width: 360px) { + #logo-shape { + margin-top: 0px; + } +} + +#chroma-text { + display: inline-block; + color: #00398A; + line-height: 37px; +} + +#chroma-logo { +} + +#chroma-logo-identifier { + display: inline-block; + position: relative; +} + +#login-button { + font-size: 22px; + margin-top: 15px; + border: 1px important; + + .spinner { + stroke: white; + fill: white; + } + +} + +#version-string { + font-size: 70%; +} + +.floating-prefs { + color: red; + z-index: 1000; + position: absolute !important; + top: 10; + right: 20; +} \ No newline at end of file diff --git a/app/authentication/components/login-view/login.spec.ts b/app/authentication/components/login-view/login.spec.ts new file mode 100644 index 0000000..8d67f64 --- /dev/null +++ b/app/authentication/components/login-view/login.spec.ts @@ -0,0 +1,147 @@ +import {Mod as CoreModule} from '../../../core/core.mod'; +import {Mod as LoginModule} from '../../auth.mod'; +import {Directive, Controller} from './login'; +import {ComponentTest} from '../../../infrastructure/ComponentHelper'; +import {AuthenticationService} from '../../services/authentication.service'; +import {Mod as FlightListMod} from '../../../flight-list/flight-list.mod'; +import {FlightService, IFlightService} from '../../../core/service/flightService'; +import {Mod as SiteSelectionMod} from '../../../site-selection/site-selection.mod'; +​ +class LoginViewTest extends ComponentTest { + public api: any; + public $state: ng.ui.IStateService; + public $cookies: ng.cookies.ICookiesService; + public $stateParams: ng.ui.IStateParamsService; + public authenticationService: AuthenticationService; + public flightService: FlightService; +​ + constructor() { + super(Directive.$componentName, + 'app/authentication/components/login-view/login.tpl.html'); + this.flushOnInit = false; + } +} +​ +describe('Login:', () => { + let instance: LoginViewTest; + let ctrl: Controller; +​ + beforeEach(() => { + if (!instance) { + angular.mock.module('ui.router'); + angular.mock.module('ionic'); + angular.mock.module('ngCookies'); + angular.mock.module('chroma.configuration'); +​ + angular.mock.module(CoreModule.$componentName); + angular.mock.module(LoginModule.$componentName); + angular.mock.module(FlightListMod.$componentName); + angular.mock.module(SiteSelectionMod.$componentName); +​ + new CoreModule(angular); + new LoginModule(angular); + new FlightListMod(angular); + new SiteSelectionMod(angular); + // let cookie: ng.cookies.ICookiesService = {} + // cookie['ASP.NET_SessionId'] = 'LOLOLOL'; +​ + // let auth: AuthenticationService = new AuthenticationService(); +​ + angular.mock.inject((api, $state, $cookies, authenticationService, flightService, siteSelectionService, $stateParams) => { + instance = new LoginViewTest(); + instance.api = api; + instance.$state = $state; + instance.$cookies = $cookies; + instance.authenticationService = authenticationService; + instance.flightService = flightService; + instance.$stateParams = $stateParams; + }); + } + }); +​ + it('Directive is compiled', () => { + instance.flushOnInit = true; + ctrl = instance.compile(); + expect(ctrl).toBeDefined(); + }); +​ + //Scenario: Login success with sites to select + //TODO: Ste Oates - I have commented this out because FSWH01 user has access to multiple sites + it('Login success with sites to select', () => { + //SETUP + instance.flushOnInit = false; + instance.$httpBackend.whenPOST(instance.api.authentication).respond({ + Data: { + SiteSelectionRequired: true, + Sites: { + Sites: [{ SiteName: 'testSite1', SiteId: '1', IATACode: 'TES' }, + { SiteName: 'testSite2', SiteId: '2', IATACode: 'TEZ' }] + } + } + }); + ctrl = instance.compile(); + + //GIVEN that I am logged out of the application + expect(ctrl.isLoggedOut()).toBeTruthy(); + //AND I have access to more than one site + //WHEN I enter the correct username and Password + ctrl.username = 'storedUsername'; + ctrl.password = 'storedPassword'; + spyOn(instance.$state, 'go').and.callFake(function(){ return;}); + ctrl.login(); +​ + instance.$httpBackend.flush(); + //THEN I should be presented with a list of sites to select from +​ + expect(ctrl.sites.length).toBeGreaterThan(1); + expect(ctrl.theresMoreThanOnePossibleSite(ctrl.sites)).toBeTruthy(); + expect(instance.$state.go).toHaveBeenCalledWith('chroma.site-selection'); + }); +​ + //Scenario: Successful logout of the application + it('Logout success', () => { + instance.flushOnInit = false; + ctrl = instance.compile(); + instance.$cookies['ASP.NET_SessionId'] = 'LOLOLOL'; +​ + //GIVEN that I am logged in to the application + spyOn(instance.$state, 'go').and.callThrough(); +​ + //ctrl.authenticationService = new AuthenticationService() + expect(ctrl.isLoggedOut()).toBeFalsy(); + //WHEN I choose to logout + instance.authenticationService.logout(); + //THEN I will be logged out of the application + expect(ctrl.isLoggedOut()).toBeTruthy(); + expect(instance.$state.go).toHaveBeenCalledWith('login'); + }); +​ + it('Session expired then open app then I get re-routed back to login', () => { + instance.flushOnInit = false; +​ + instance.$httpBackend.expectGET(instance.api.flightList + '?window=default').respond(401, {}); +​ + ctrl = instance.compile(); +​ + instance.$cookies['ASP.NET_SessionId'] = 'LOLOLOL'; + //GIVEN that my session has expired + //BUT i still have a cookie + expect(ctrl.isLoggedOut()).toBeFalsy(); + //WHEN i open the app and get routed to the flight View + spyOn(instance.$state, 'go').and.callThrough(); + instance.flightService.getFilter('default', true); +​ + instance.$httpBackend.flush(); + //THEN I should be rejected and rerouted back to login + expect(instance.$state.go).toHaveBeenCalledWith('login', {redirected: true}); + }); +​ + it('should alert the user that their session has timed out if redirected', () => { + instance.flushOnInit = false; +​ + ctrl = instance.compile(); + instance.$stateParams = {hasLoggedOut: false, redirected: true}; +​ + expect(ctrl.error).toEqual('Your session has timed out please login again'); + }); +}); diff --git a/app/authentication/components/login-view/login.tpl.html b/app/authentication/components/login-view/login.tpl.html new file mode 100644 index 0000000..2303ed1 --- /dev/null +++ b/app/authentication/components/login-view/login.tpl.html @@ -0,0 +1,71 @@ + + + + + diff --git a/app/authentication/components/login-view/login.ts b/app/authentication/components/login-view/login.ts new file mode 100644 index 0000000..2c37197 --- /dev/null +++ b/app/authentication/components/login-view/login.ts @@ -0,0 +1,188 @@ +import {controller, directive} from '../../../infrastructure/Dectorators/Components'; +import {AuthenticationService, IAuthData, IAuthenticationService} from '../../services/authentication.service'; +import {Mod} from '../../auth.mod'; + +export class Resources { + static USERNAME_MISSING: string = 'Please enter your username'; + static PASSWORD_MISSING: string = 'Please enter your password'; + static REDIRECTED_DUE_TO_TIMEOUT = 'Your session has timed out please login again'; +} + +export interface ILoginScope extends ng.IScope { + vm: Controller; +} + +export interface ISite { + SiteName: string; + SiteId: string; + IATACode: string; +} + +@controller(Mod, 'loginViewController', ['$ionicHistory', 'authenticationService', '$state', '$stateParams', 'siteSelectionService']) +export class Controller { + static cName: string = 'loginViewController'; + public error: string; + public sites: Array; + public status: string; + public username: string; + public password: string; + public versionString: string; + public prefs: any; + + constructor( + private $ionicHistory: any, + private authenticationService: AuthenticationService, + private $state: ng.ui.IStateService, + public $stateParams: ng.ui.IStateParamsService, + public siteSelectionService: any) { + let looseParams: any = this.$stateParams; + let redirected: Boolean = looseParams.redirected; + this.status = 'awaitingLogin'; + this.versionString = 'Version: 00000'; + this.prefs = (typeof AppPreferences !== 'undefined') ? new AppPreferences() : plugins.appPreferences; + if (typeof cordova !== 'undefined' && typeof cordova.getAppVersion !== 'undefined') { + cordova.getAppVersion.getVersionNumber().then(function (version) { + this.versionString = version; + angular.element($('#version-string')).scope().$apply(); + }.bind(this)); + } + + if (redirected === true) { + this.error = Resources.REDIRECTED_DUE_TO_TIMEOUT; + } + + document.addEventListener('resume', function () { + // Cordova resumes + this.retrieveSettings(); + }.bind(this), false); + + document.addEventListener('deviceready', function () { + this.retrieveSettings(); + }.bind(this), false); + } + + public login() { + if (this.loginIsValid()) { + this.status = 'loggingIn'; + this.authenticationService.authenticate(this.username, this.password).then((response: any) => { + if (response.error !== undefined) { + this.error = response.error; + } else if (response.Data && response.Data.LoginSuccess === false) { + this.error = 'Invalid Username/Password entered'; + this.status = 'awaitingLogin'; + } else { + if (response.Data.Error !== undefined && response.Data.Error === true) { + this.error = 'something went wrong connecting to the server'; + this.status = 'awaitingLogin'; + return; + } + if (response.Data.LoginSuccess !== undefined && response.Data.LoginSuccess === false) { + this.error = 'Invalid Username/Password entered'; + this.status = 'awaitingLogin'; + return; + } + this.sites = response.Data.Sites.Sites; + if (this.theresMoreThanOnePossibleSite(this.sites)) { + this.storeSites(this.sites); + this.$state.go('chroma.site-selection'); + } else { + this.$state.go('chroma.flight-list'); + } + } + this.status = 'awaitingLogin'; + }).catch(() => { + this.error = 'Invalid Username/Password entered'; + this.status = 'awaitingLogin'; + }); + } + } + + public retrieveSettings() { + function ok(value) { + this.authenticationService.updateApi(value); + } + + function fail(error) { + console.error(error); + } + + this.prefs.fetch(ok.bind(this), fail, 'apiurl'); + }; + + public showSettings() { + function fail (error) { + console.error(error); + } + + this.prefs.show(null, fail); + } + + public theresMoreThanOnePossibleSite(sites: Array): Boolean { + if (sites.length > 1) { + return true; + } + return false; + } + + public storeSites(sites: Array): void { + this.siteSelectionService.storeAvailableSites(sites); + } + + public isLoggedOut(): Boolean { + return this.authenticationService.isLoggedOut(); + } + + public loginIsValid() { + if (!this.username || this.username === '') { + this.error = Resources.USERNAME_MISSING; + return false; + } + + if (!this.password || this.password === '') { + this.error = Resources.PASSWORD_MISSING; + return false; + } + + return true; + } +} + +@directive(Mod, 'chromaLoginView', ['$stateParams']) +export class Directive implements ng.IDirective { + controller: any = Controller.$componentName; + controllerAs: string = 'vm'; + templateUrl: string = 'app/authentication/components/login-view/login.tpl.html'; + restrict: string = 'E'; + scope: any = {}; + + constructor(private $stateParams: ng.ui.IStateParamsService) { + } + + link: ng.IDirectiveLinkFn = (scope: ILoginScope, element: ng.IAugmentedJQuery) => { + let loseParams: any = this.$stateParams; + let hasLoggedOut: Boolean = loseParams.hasLoggedOut; + + var loginForm = $('#login-form'); + var height = loginForm.height(); + + loginForm.height(0); + loginForm.css('opacity', 0); + + var logo = $('#chroma-logo'); + logo.css('opacity', 0); + + var animationDuration = 500; + + setTimeout(() => { + logo.fadeTo(animationDuration, 1); + + setTimeout(() => { + loginForm.animate({ height: height + 30 }, + animationDuration, () => { + loginForm.fadeTo(animationDuration, 1); + }); + + }, animationDuration); + }, 200); + } +} diff --git a/app/authentication/services/authentication.interceptor.ts b/app/authentication/services/authentication.interceptor.ts new file mode 100644 index 0000000..20973d9 --- /dev/null +++ b/app/authentication/services/authentication.interceptor.ts @@ -0,0 +1,19 @@ +import {controller, directive, factory} from '../../infrastructure/Dectorators/Components'; +import {Mod} from '../auth.mod'; + +@factory(Mod, 'authenticationInterceptor', ['$q', '$injector']) +export class AuthenticationInterceptor { + constructor(private $q: ng.IQService, private $injector: ng.auto.IInjectorService) { + }; + + responseError = (rejection) => { + let state: ng.ui.IStateService = this.$injector.get('$state'); + + if (rejection.status === 401) { + state.go('login', { redirected: true }); + return this.$q.reject(rejection); + } + + return this.$q.reject(rejection); + } +} diff --git a/app/authentication/services/authentication.service.ts b/app/authentication/services/authentication.service.ts new file mode 100644 index 0000000..15b4679 --- /dev/null +++ b/app/authentication/services/authentication.service.ts @@ -0,0 +1,77 @@ +import {controller, directive, factory} from '../../infrastructure/Dectorators/Components'; +import {Mod} from '../auth.mod'; + +export interface IAuthenticationService { + authenticate(username: string, password: string): ng.IPromise; + logout(): void; +} + +export interface IAuthData { + error: string; +} + +@factory(Mod, 'authenticationService', ['$http', '$q', '$cookies', 'api', '$state']) +export class AuthenticationService implements IAuthenticationService { + + constructor(private $http: ng.IHttpService, + private $q: ng.IQService, + private $cookies: ng.cookies.ICookiesService, + private api: any, + private $state: ng.ui.IStateService) { + } + + authenticate(username: string, password: string): ng.IPromise { + var data = { + Username: username, + Password: password, ActiveDirectoryUsername: '' + }; + + return this.$http.post(this.api.authentication, data).then((response: ng.IHttpPromiseCallbackArg) => { + if (response.data) { + return response.data; + } + }, (error: any) => { return { error: 'Unable to connect to Chroma' }; }); + } + + isLoggedOut(): Boolean { + if (this.$cookies['ASP.NET_SessionId'] != null) { + return false; + } + return true; + }; + + logout(): void { + delete this.$cookies['ASP.NET_SessionId']; + this.$state.go('login'); + }; + + updateApi(_newBase:string): void { + let newBase = _newBase; + let validPrefix = /^(ftp|http|https):\/\/[^ "]+$/.test(newBase); + + if (!validPrefix) { + newBase = 'http://' + newBase; + } + + newBase = newBase.replace(/\/?$/, ''); + + this.api.endpoint = newBase + '/api/'; + this.api.flightList = newBase + '/api/flights'; + this.api.authentication = newBase + '/api/auth'; + this.api.detail = newBase + '/api/detail/'; + this.api.imageSource = newBase + '/api/GetOperatorImage'; + this.api.setSite = newBase + '/api/setSite'; + this.api.getWindows = newBase + '/api/getWindows'; + this.api.transactions = newBase + '/api/transactions'; + this.api.cancelTransaction = newBase + '/api/cancelTransaction'; + this.api.confirmTransaction = newBase + '/api/confirmTransaction'; + this.api.createTransaction = newBase + '/api/createTransaction'; + this.api.getTransactionCodes = newBase + '/api/getTransactionCodes'; + this.api.getTransactionsAccess = newBase + '/api/getUserAccessRightsForTransaction'; + this.api.getTransactionConfig = newBase + '/api/getTransactionConfig'; + this.api.signalrHubs = newBase + '/signalr/hubs'; + this.api.prmList = newBase + '/api/prmList'; + + }; + +} diff --git a/app/chroma.app.ts b/app/chroma.app.ts new file mode 100644 index 0000000..dd082d6 --- /dev/null +++ b/app/chroma.app.ts @@ -0,0 +1,95 @@ +import Auth = require('./authentication/auth.mod'); +import Core = require('./core/core.mod'); +import FlightList = require('./flight-list/flight-list.mod'); +import FlightDetail from './flight-detail/flight-detail.mod'; +import SiteSelection = require('./site-selection/site-selection.mod'); +import {Mod as WindowList} from './window-list/window-list.mod'; + +export class App { + + static appName: string = 'chroma.app'; + + dep: Array = ['ui.router', + 'ionic', + 'ngCookies', + 'ngIOS9UIWebViewPatch', + 'chroma.templates', + 'chroma.configuration', + 'chroma.framework']; + + mods: Array = [ + Core.Mod.$componentName, + Auth.Mod.$componentName, + FlightList.Mod.$componentName, + FlightDetail.$componentName, + SiteSelection.Mod.$componentName, + WindowList.$componentName + ]; + + auth: Auth.Mod; + core: Core.Mod; + flightList: FlightList.Mod; + flightDetail: FlightDetail; + SiteSelection: SiteSelection.Mod; + windowList: WindowList; + + constructor(angular: ng.IAngularStatic) { + this.auth = new Auth.Mod(angular); + this.core = new Core.Mod(angular); + this.flightList = new FlightList.Mod(angular); + this.flightDetail = new FlightDetail(angular); + this.SiteSelection = new SiteSelection.Mod(angular); + this.windowList = new WindowList(angular); + + angular.module(App.appName, this.dep.concat(this.mods)).config(( + $ionicConfigProvider: ionic.utility.IonicConfigProvider, + $compileProvider: ng.ICompileProvider, + $httpProvider: ng.IHttpProvider, $provide: any) => { + + $ionicConfigProvider.navBar.alignTitle('center'); + $ionicConfigProvider.views.maxCache(0); + + $httpProvider.defaults.withCredentials = true; + $compileProvider.debugInfoEnabled(false); + + $provide.decorator('$exceptionHandler', ['$delegate', '$injector', ($delegate, $injector) => (exception, cause) => { + $delegate(exception, cause); + let alertBox: ionic.popup.IonicPopupService = $injector.get('$ionicPopup'); + let instance: ionic.popup.IonicPopupPromise = alertBox.show({ + template: `
+ ${exception} +
+ Restarting the AODB is recommended.
+
`, + title: 'Unexpected Error', + buttons: [ + { + text: 'Continue', onTap: (e) => { + instance.close(); + } + }, + { + text: 'Close App', + type: 'button-assertive', + onTap: function(e) { + let ionicInstance: any = ionic; + ionicInstance.Platform.exitApp(); + } + } + ] + }); + }]); + }).run(function($ionicPlatform) { + $ionicPlatform.registerBackButtonAction(function(e) { + e.preventDefault(); + return false; + }, 101); + }); + + angular.bootstrap(document, [App.appName]); + + if (typeof hockeyapp !== 'undefined') { + hockeyapp.start(null, null, '8ca6b61ff4374109b416a476ceb29688'); + } + } +} diff --git a/app/core/core.config.ts b/app/core/core.config.ts new file mode 100644 index 0000000..3843dd2 --- /dev/null +++ b/app/core/core.config.ts @@ -0,0 +1,23 @@ +import {ChromaStateService} from './service/chromaStateService'; + +export class Routes { + static $inject: Array = ['$stateProvider', + '$urlRouterProvider', + '$httpProvider', + 'chromaStateProvider']; + constructor($stateProvider: ng.ui.IStateProvider, + $urlRouterProvider: ng.route.IRouteProvider, + $httpProvider: ng.IHttpProvider, + chromaStateProvider: ChromaStateService) { + + chromaStateProvider.setStateProvider($stateProvider); + + $stateProvider.state('chroma', { + url: '/chroma', + abstract: false, + template: '' + }); + + $urlRouterProvider.otherwise('/login'); + } +} diff --git a/app/core/core.mod.ts b/app/core/core.mod.ts new file mode 100644 index 0000000..cffa60b --- /dev/null +++ b/app/core/core.mod.ts @@ -0,0 +1,23 @@ +import {module} from '../infrastructure/Dectorators/Components'; +import {Routes} from './core.config'; +import {FlightService, IFlightService} from './service/flightService'; +import {SignalrService, ISignalrService} from './service/signalRService'; +import {PushHandlerService, IPushHandlerService} from './service/pushHandler.service'; +import {FocusMe} from './service/helpers'; +import {ChromaStateService, IChromaStateService} from './service/chromaStateService'; +import {Directive as FrameDir, Controller as FrameCtrl} from './frame/frame'; + +@module('core') +export class Mod { + constructor(angular: ng.IAngularStatic) { + angular.module(Mod.$componentName, []) + .factory(SignalrService.$componentName, SignalrService.$factory) + .factory(PushHandlerService.$componentName, PushHandlerService.$factory) + .provider(ChromaStateService.$componentName, ChromaStateService) + .factory(FlightService.$componentName, FlightService.$factory) + .controller(FrameCtrl.$componentName, FrameCtrl) + .directive(FrameDir.$componentName, FrameDir.$factory) + .directive(FocusMe.$componentName, FocusMe.$factory) + .config(Routes); + } +} diff --git a/app/core/frame/frame.less b/app/core/frame/frame.less new file mode 100644 index 0000000..394847e --- /dev/null +++ b/app/core/frame/frame.less @@ -0,0 +1,36 @@ + +.flight-menu { + background-color: #eaebec; + padding-top: 44px; + + a { + background-color: #eaebec; + + &.selected { + background-color: white !important; + + i { + color: #00398a; + } + } + } + + .item { + border: 0 important; + } + + i { + font-size: 200%; + color: #5d5d5d; + } +} + +.bar { + //background-color: #00398A !important; + border-bottom: 3px solid #F7F1F1; + + .title { + color: #00398a; + font-family: Roboto-Thin; + } +} diff --git a/app/core/frame/frame.spec.ts b/app/core/frame/frame.spec.ts new file mode 100644 index 0000000..4efa701 --- /dev/null +++ b/app/core/frame/frame.spec.ts @@ -0,0 +1,113 @@ + +import {Directive, Controller} from './frame' +import {ComponentTest} from '../../infrastructure/ComponentHelper' +import {Mod as Core} from '../../core/core.mod'; +import {Mod as Auth} from '../../authentication/auth.mod'; + +class FrameViewTest extends ComponentTest { + public $state: ng.ui.IStateService; + public $window: ng.IWindowService; + public $rootScope: ng.IRootScopeService; + public $ionicHistory: ionic.navigation.IonicHistoryService; + constructor() { + super(Directive.$componentName, 'app/core/frame/frame.tpl.html'); + } +} + +describe('Frame: ', () => { + let test: FrameViewTest, + ctrl: Controller; + + beforeEach(() => { + new Core(angular); + new Auth(angular); + + angular.mock.module('ui.router'); + angular.mock.module('ionic'); + angular.mock.module('chroma.configuration'); + angular.mock.module('ngCookies'); + + angular.mock.module(Core.$componentName); + angular.mock.module(Auth.$componentName); + }); + + beforeEach(() => { + angular.mock.inject(($state, $window, $rootScope, $ionicHistory) => { + test = new FrameViewTest(); + test.$state = $state; + test.$window = $window; + test.$rootScope = $rootScope; + test.$ionicHistory = $ionicHistory; + ctrl = test.compile(); + }); + }); + + it('Directive can be compiled', () => { + expect(ctrl).toBeDefined(); + }) + + it('When no matches, IonicBack is not called', () => { + spyOn(test.$ionicHistory, 'goBack'); + ctrl.currentState = 'chroma.undefined-state'; + ctrl.back(); + expect(test.$ionicHistory.goBack).not.toHaveBeenCalled(); + }) + + + it('Logout called if back pressed without state', () => { + spyOn(ctrl.authenticationService, 'logout'); + ctrl.back(); + expect(ctrl.authenticationService.logout).toHaveBeenCalled(); + }) + + it('Logout called if back pressed on Site Selection state', () => { + spyOn(ctrl.authenticationService, 'logout'); + ctrl.currentState = 'chroma.site-selection'; + ctrl.back(); + expect(ctrl.authenticationService.logout).toHaveBeenCalled(); + }) + + it('Window List called if back pressed on flight List state', () => { + spyOn(test.$state, 'go'); + ctrl.currentState = 'chroma.flight-list'; + ctrl.back(); + expect(test.$state.go).toHaveBeenCalledWith('chroma.window-list'); + }) + + it('Site Selection List called if back pressed on Window List state', () => { + spyOn(test.$state, 'go'); + ctrl.currentState = 'chroma.window-list'; + ctrl.back(); + expect(test.$state.go).toHaveBeenCalledWith('chroma.site-selection'); + }) + + it('Flight List NOT called if back pressed on Flight Detail state and not saved filter', () => { + spyOn(test.$state, 'go'); + spyOn(test.$window.sessionStorage, 'getItem').and.returnValue(undefined); + ctrl.currentState = 'chroma.flight-detail'; + ctrl.back(); + expect(test.$state.go).not.toHaveBeenCalledWith('chroma.flight-list', { filter: 'test-filter' }); + }) + + it('Flight List called if back pressed on Flight Detail state', () => { + spyOn(test.$state, 'go'); + spyOn(test.$window.sessionStorage, 'getItem').and.returnValue('test-filter'); + ctrl.currentState = 'chroma.flight-detail'; + ctrl.back(); + expect(test.$state.go) + .toHaveBeenCalledWith('chroma.flight-list', { filter: 'test-filter' }); + }) + + it('Current State is updated on $steChangeStart event', () =>{ + let testState : string = 'test-state123'; + test.$rootScope.$emit('$stateChangeStart', {name : testState}); + expect(ctrl.currentState).toBe(testState); + }); + + it('isFlightDetailState stays insync with current state', () =>{ + let testState : string = 'flight-detail'; + test.$rootScope.$emit('$stateChangeStart', {name : testState}); + expect(ctrl.currentState).toBe(testState); + expect(ctrl.isFlightDetailState).toBe(true); + }); +}) diff --git a/app/core/frame/frame.tpl.html b/app/core/frame/frame.tpl.html new file mode 100644 index 0000000..4301173 --- /dev/null +++ b/app/core/frame/frame.tpl.html @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + +

Chroma Mobile

+
+ + + Select Site + + + Logout + + +
+ + + + + + + + +
diff --git a/app/core/frame/frame.ts b/app/core/frame/frame.ts new file mode 100644 index 0000000..5f4adfd --- /dev/null +++ b/app/core/frame/frame.ts @@ -0,0 +1,73 @@ +import {directive, controller} from '../../infrastructure/Dectorators/Components'; +import {IChromaStateService} from '../../core/service/chromaStateService'; +import Core = require('../core.mod'); +import {AuthenticationService} from '../../authentication/services/authentication.service'; +import {IPushHandlerService} from '../../core/service/pushHandler.service'; + +@directive(Core.Mod, 'chromaFrame', []) +export class Directive implements ng.IDirective { + templateUrl: string = 'app/core/frame/frame.tpl.html'; + restrict: string = 'E'; + controllerAs: string = 'vm'; + controller: string = Controller.$componentName; + scope: any = {}; +} + +@controller(Core.Mod, 'frameController', ['$rootScope', '$ionicHistory', '$window', '$state', '$ionicPlatform', 'chromaState', 'authenticationService', 'pushHandlerService']) +export class Controller { + public currentState: string; + public states: Array; + public isFlightDetailState: boolean = false; + constructor( + private $rootScope: ng.IRootScopeService, + private $ionicHistory: ionic.navigation.IonicHistoryService, + private $window: ng.IWindowService, + private $state: ng.ui.IStateService, + private $ionicPlatform: ionic.platform.IonicPlatformService, + + private chromaState: IChromaStateService, + public authenticationService: AuthenticationService, + private pushHandlerService: IPushHandlerService + ) { + this.$rootScope.$on('$stateChangeStart', (event, toState) => { + this.currentState = toState.name; + this.isFlightDetailState = this.IsState('flight-detail'); + }); + this.states = this.chromaState.states; + this.pushHandlerService.registerForNotifications(); + + + this.$ionicPlatform.onHardwareBackButton((e) => { + e.stopPropagation(); + this.back(); + }); + this.states = this.chromaState.states; + } + public logout(): void { + this.authenticationService.logout(); + } + public goToSiteSelection(): void { + this.$state.go('chroma.site-selection'); + } + public back(): void { + if (this.currentState === undefined) { + this.logout(); + } else if (this.IsState('chroma.site-selection')) { + this.authenticationService.logout(); + } else if (this.IsState('chroma.flight-list')) { + this.$state.go('chroma.window-list'); + } else if (this.IsState('chroma.window-list')) { + this.$state.go('chroma.site-selection'); + } else if (this.IsState('chroma.flight-detail.transaction-detail')) { + this.$state.go('chroma.flight-detail.transaction-list'); + } else if (this.IsState('chroma.flight-detail')) { + let filter = this.$window.sessionStorage.getItem('chroma:current-filter'); + if (filter) { + this.$state.go('chroma.flight-list', { filter: filter }); + } + } + } + private IsState(state: string): boolean { + return this.currentState.indexOf(state) > -1; + } +} diff --git a/app/core/less/aodb.less b/app/core/less/aodb.less new file mode 100644 index 0000000..7e34913 --- /dev/null +++ b/app/core/less/aodb.less @@ -0,0 +1,117 @@ +@primary-color: #00398a; + +.primary-color { + color: @primary-color !important; +} + +.primary-background { + background-color: @primary-color; +} + +.white { + color: white !important; +} + +.bar .button.button-clear { + color: @primary-color !important; +} + +.arrival-col { + color: #fd2424; +} + +.departure-col { + color: red; +} + +input { + color: #8c8c8c !important; +} + +.spinner { + &.primary-color { + stroke: @primary-color; + fill: @primary-color; + } +} + +.list-search { + margin: 0 0 25px; +} + +button { + &.action { + background-color: transparent; + color: @primary-color !important; + border-color: @primary-color !important; + } + + &.action { + &:hover { + background-color: @primary-color !important; + color: white !important; + } + } +} + +.pull-right { + float: right; +} + +/*.popup { + margin-top: -200px; +}*/ + +.chroma-list { + .card { + &.ng-enter { + animation: fadeInRight 0.3s; + } + + &.ng-leave { + animation: fadeOutLeft 0.3s; + } + + &.ng-enter-stagger { + animation-delay: 25ms; + animation-duration: 0; + } + } + + .chroma-list-item { + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); + padding: 15px; + border-color: #F3F1F1; + + &.ng-enter { + animation: fadeInRight 0.3s; + } + + &.ng-leave { + animation: fadeOutLeft 0.3s; + } + + &.ng-enter-stagger { + animation-delay: 25ms; + animation-duration: 0; + } + } +} + +.errors { + margin-top: 25px; + background-color: white; + padding: 10px; + border: 1px solid red; + color: red; +} + +.card .item:last-child, .list-inset .item:last-child, .padding > .list .item:last-child { + border-radius: 0; +} + + +.no-animate { + -webkit-transition: none !important; + transition: none !important; +} \ No newline at end of file diff --git a/app/core/service/chromaStateService.ts b/app/core/service/chromaStateService.ts new file mode 100644 index 0000000..8144733 --- /dev/null +++ b/app/core/service/chromaStateService.ts @@ -0,0 +1,50 @@ +import {Mod} from '../core.mod'; +import {service} from '../../infrastructure/Dectorators/Components'; + +export interface IChromaStateService { + states: Array; + addState(name: string, state: IState); + stateProvider: ng.ui.IStateProvider; +} + +interface IState extends ng.ui.IState { + display: any; + icon: any; + subView: boolean; +} + +@service(Mod, 'chromaState') +export class ChromaStateService implements ng.IServiceProvider { + + public stateProvider: ng.ui.IStateProvider; + public states: Array = new Array(); + + public setStateProvider($stateProvider: ng.ui.IStateProvider) { + this.stateProvider = $stateProvider; + } + + + public $get(): IChromaStateService { + return { + stateProvider: this.stateProvider, + states: this.states, + addState: (name: string, state: IState) => { + let added = false; + this.states.forEach((s) => { + if (s.name === name) { + added = true; + } + }); + if (!added) { + this.states.push({ + name: name, + display: state.display, + icon: state.icon, + subView: state.subView + }); + this.stateProvider.state(name, state); + } + } + }; + } +} diff --git a/app/core/service/flightService.ts b/app/core/service/flightService.ts new file mode 100644 index 0000000..0756b87 --- /dev/null +++ b/app/core/service/flightService.ts @@ -0,0 +1,51 @@ +import Dectorators = require('../../infrastructure/Dectorators/Components'); +import Core = require('../core.mod'); + +export interface IFlightListRequest { + Flights: Array; + RequestId: string; +} + +export interface IFlightDetail { + Id: string; + PhysFlightId: string; + Type: string; + Number: string; + Operator: string; + AircraftType: string; + Registration: string; + Location: string; + Scheduled: string; + Estimated: string; + Actual: string; + Terminal: string; + Stand: string; + FlightConcat: string; +} + +export interface IFlightService { + getFilter(filter: string, broadcast: boolean): ng.IPromise; +} + +@Dectorators.factory(Core.Mod, 'flightService', ['$http', '$q', '$rootScope', 'api']) +export class FlightService implements IFlightService { + + constructor(private $http: ng.IHttpService, + private $q: ng.IQService, + private $rootScope: ng.IScope, + private api: any) { + } + + public getFilter(filter: string, broadcast: boolean): ng.IPromise { + let def: ng.IDeferred = this.$q.defer(); + + this.$http.get(this.api.flightList + '?window=' + filter).success((data: any, status) => { + def.resolve(data); + if (broadcast) { + this.$rootScope.$broadcast('scroll.refreshComplete'); + } + }); + + return def.promise; + } +} diff --git a/app/core/service/helpers.ts b/app/core/service/helpers.ts new file mode 100644 index 0000000..6ae45cf --- /dev/null +++ b/app/core/service/helpers.ts @@ -0,0 +1,16 @@ +import Dectorators = require('../../infrastructure/Dectorators/Components'); +import Core = require('../core.mod'); + + +@Dectorators.directive(Core.Mod, 'focusMe', ['$timeout']) +export class FocusMe implements ng.IDirective { + restrict: string = 'EA'; + scope: any = {}; + constructor(private $timeout: ng.ITimeoutService) { + } + link: ng.IDirectiveLinkFn = (scope, element, attrs) => { + this.$timeout(() => { + element[0].focus(); + }, 750); + } +} diff --git a/app/core/service/pushHandler.service.ts b/app/core/service/pushHandler.service.ts new file mode 100644 index 0000000..e4d767d --- /dev/null +++ b/app/core/service/pushHandler.service.ts @@ -0,0 +1,60 @@ + +import {factory} from '../../infrastructure/Dectorators/Components'; +import {Mod} from '../../core/core.mod'; + + +export interface IPushHandlerService { + registerForNotifications(); + getDeviceToken(); +} + +@factory(Mod, 'pushHandlerService', ['$window']) +export class PushHandlerService implements IPushHandlerService { + constructor(private $window : ng.IWindowService) { + + } + + public registerForNotifications() { + if (PushNotification !== undefined) { // we are on the emulator otherwise + let push = PushNotification.init({ + 'android': { + 'senderID': '194436060542', + 'icon': 'icon-96-xhdpi-TransparentText.png', + 'iconColor': 'grey' + }, + 'ios': { + 'alert': 'true', + 'badge': 'true', + 'sound': 'true' + } + }); + push.on('registration', this.onRegistered); + push.on('notification', this.onNotification); + push.on('error', this.onError); + } + } + + private onNotification(data) { + //alert('got notification ' + data.additionalData.alert); + return true; + } + + private onRegistered = (data) => { + // alert('Got token ' + data.registrationId); + this.storeDeviceToken(data.registrationId); + } + + private onError(e) { + // alert('push error ' + e.message); + } + + public getDeviceToken(): string { + return this.$window.sessionStorage.getItem('chroma:device-token'); + } + + public storeDeviceToken(deviceToken: string) { + this.$window.sessionStorage.setItem('chroma:device-token', deviceToken); + } + + +} \ No newline at end of file diff --git a/app/core/service/signalRService.ts b/app/core/service/signalRService.ts new file mode 100644 index 0000000..5d3e378 --- /dev/null +++ b/app/core/service/signalRService.ts @@ -0,0 +1,63 @@ + +import {factory} from '../../infrastructure/Dectorators/Components'; +import {Mod} from '../core.mod'; +import {IPushHandlerService} from './pushHandler.service'; + + +export interface ISignalrService { + start(jq: any, callbackMethod: any, scope: any); +} + +@factory(Mod, 'signalrService', ['api', 'pushHandlerService', '$ionicPlatform']) +export class SignalrService implements ISignalrService { + + constructor(private api: any, + private pushHandlerService: IPushHandlerService, + private $ionicPlatform: any) { + } + + proxy: any; + + callbackMethod: any; + + createHub(jq : any, scope: any) { + //let jq = $; + var connection = jq.hubConnection(this.api.signalrHubs, {useDefaultPath: false}); + + var mobileHubProxy = connection.createHubProxy('mobileHub'); + + connection.logging = true; + + mobileHubProxy.on('recieveHandlingTransactionAdd', (message) => { + console.log('transaction recieved' + 'name: ' + name + 'mesage: ' + message); + this.callbackMethod('recieveHandlingTransactionAdd', scope, message); + }); + + mobileHubProxy.on('recieveHandlingTransactionCancel', (message) => { + console.log('transaction cancelled' + 'name: ' + name + 'mesage: ' + message); + this.callbackMethod('recieveHandlingTransactionCancelled', scope, message); + }); + + connection.start().done(() => { + var platform = undefined; + + if (this.$ionicPlatform.is('android')) { + platform = 1; + } + + if (this.$ionicPlatform.is('ios')) { + platform = 0; + } + + mobileHubProxy.invoke('mobileRegister', platform, this.pushHandlerService.getDeviceToken()); + }); + + } + + public start(jq : any, callbackMethod: any, scope: any) { + this.createHub(jq, scope); + this.callbackMethod = callbackMethod; + } + + +} \ No newline at end of file diff --git a/app/flight-detail/detail/flight-detail.less b/app/flight-detail/detail/flight-detail.less new file mode 100644 index 0000000..a156c39 --- /dev/null +++ b/app/flight-detail/detail/flight-detail.less @@ -0,0 +1,67 @@ +.value-holder { + width: 50%; +} + +.readonly[disabled] { + background-color: transparent !important; + color: black !important; +} + +.flight-container { + font-size: 115%; + background-color: white !important; + box-shadow: -1px 1px 1px 1px rgb(234, 232, 232); + padding: 3px 0 !important; + + .header-row { + font-size: 130%; + + .a-d-ind { + font-size: 110%; + margin-top: -3px; + } + } + + .concat { + margin-top: 15px; + font-size: 105%; + } + + .description { + } + + .field.col, + .field .row { + padding-top: 0; + } +} + +.group-list { + margin-top: 5px; + + .editor-field { + background-color: transparent !important; + + .input-label { + width: 55%; + color: #A09F9F; + } + + input { + text-overflow: ellipsis; + } + + input[disabled] { + background-color: transparent !important; + color: black !important; + } + } +} + +.rotate-45 { + transform: rotate(45deg); +} + +.rotate-225 { + transform: rotate(225deg); +} diff --git a/app/flight-detail/detail/flight-detail.spec.ts b/app/flight-detail/detail/flight-detail.spec.ts new file mode 100644 index 0000000..5d38e5f --- /dev/null +++ b/app/flight-detail/detail/flight-detail.spec.ts @@ -0,0 +1,162 @@ +import {ComponentTest} from '../../infrastructure/ComponentHelper'; +import {Directive as DetailDir, Controller as DetailCtrl, FlightDetailParams} from './flight-detail'; + +import DetailMod from '../flight-detail.mod'; +import {Mod as CoreMod} from '../../core/core.mod'; + +import {IFlightInformationModel} from '../services/flightInformationService'; +import {IFlightDetail} from '../../core/service/flightService'; + + +class FlightDetailTest extends ComponentTest { + constructor() { + super(DetailDir.$componentName, 'app/flight-detail/detail/flight-detail.tpl.html') + } +} + +class TestInstance { + public test: FlightDetailTest; + public api: any; + + public $httpBackend: ng.IHttpBackendService; + public $state: ng.ui.IStateService; + public $stateParams: ng.ui.IStateParamsService; + public $rootScope: ng.IRootScopeService; + + constructor() { + angular.mock.inject(($httpBackend, $state, $stateParams, $rootScope, api) => { + this.$httpBackend = $httpBackend; + this.$state = $state; + this.$stateParams = $stateParams; + this.$rootScope = $rootScope; + this.api = api; + }); + } + + public getSelectedFlight(): IFlightDetail { + return { + Id: '1', Type: 'A', Operator: 'SK', Number: '0214', AircraftType: '333', + Registration: 'PK-GPE', Location: 'MAN', Scheduled: '09:00', Estimated: + '09:00', Actual: '09:00', Terminal: 'T1', Stand: 'A1', FlightConcat: 'SK0214' + }; + } + + public setupForListGet(): IFlightInformationModel { + let model: IFlightInformationModel = { + Flight: undefined, + Groups: [{ "Name": "Detail", "Display": "Details", "Icon": "ion-navicon" }], + Fields: undefined, + Editors: undefined, + IsOutsideOfWindow: false + }; + + this.$httpBackend.expectGET(`${this.api.detail}?flightId=${this.getSelectedFlight().Id}&requestId=ste1234567`).respond(201, model); + + return model; + } +} + + +describe('Flight Details:', () => { + let instance: TestInstance; + + beforeEach(() => { + + new DetailMod(angular); + new CoreMod(angular); + + angular.mock.module('ui.router'); + angular.mock.module('ionic'); + angular.mock.module('chroma.configuration') + + angular.mock.module(DetailMod.$componentName); + angular.mock.module(CoreMod.$componentName); + + instance = new TestInstance(); + instance.test = new FlightDetailTest(); + }); + + describe('Framework: ChromaDateFilter', () => { + let $filter: any; + + beforeEach(() => { + angular.mock.inject((_$filter_) => { + $filter = _$filter_; + }); + }); + + it('ChromaDateFilter: If input is empty, return empty', () => { + let result = $filter('chromaDateFilter')('', false); + expect(result).toBe(''); + }); + + it('ChromaDateFilter: If input is default DateTime, return empty', () => { + let result = $filter('chromaDateFilter')('/Date(-62135596800000)/', false); + expect(result).toBe(''); + }); + + it('ChromaDateFilter: return HH:mm if not a Date request', () => { + let result = $filter('chromaDateFilter')('/Date(1447243800000)/', false); + expect(result).toBe('12:10'); + }); + + it('ChromaDateFilter: return [DD] HH:mm if a Date request', () => { + let result = $filter('chromaDateFilter')("/Date(1447243800000)/", true); + expect(result).toBe('[11] 12:10'); + }); + }); + + describe('Scenario: Viewing flights by window', () => { + //Given that I have selected a window + // And select a flight that I want to View + //Then I should see the flights information + //Grouped by category + it('Groups should be displayed', function () { + let model: IFlightInformationModel, + ctrl: DetailCtrl, + params: FlightDetailParams, + baseStateName: string, + expectedStateName: string; + + params = instance.$stateParams; + + params.flight = instance.getSelectedFlight(); + + params.requestId = 'ste1234567'; + + baseStateName = 'chroma.flight-detail.'; + + spyOn(instance.$state, "go").and.callThrough(); + + model = instance.setupForListGet(); + + ctrl = instance.test.compile() + + expectedStateName = baseStateName + model.Groups[0].Name; + + expect(instance.$state.go).toHaveBeenCalledWith(expectedStateName); + }) + + it('View title updated on navigation', function () { + let model: IFlightInformationModel, + ctrl: DetailCtrl, + params: FlightDetailParams, + newGroup: string = "NewGroup123"; + + params = instance.$stateParams; + + params.flight = instance.getSelectedFlight(); + + params.requestId = 'ste1234567'; + + model = instance.setupForListGet(); + + ctrl = instance.test.compile() + + instance.$rootScope.$emit('flightGroupChanged', { Display: newGroup }) + + expect(ctrl.viewTitle).toBe(newGroup); + }) + }) + +}) diff --git a/app/flight-detail/detail/flight-detail.tpl.html b/app/flight-detail/detail/flight-detail.tpl.html new file mode 100644 index 0000000..0de7ebd --- /dev/null +++ b/app/flight-detail/detail/flight-detail.tpl.html @@ -0,0 +1,64 @@ + + + +
+

+
This flight is outside of the selected Flight Window and is no longer viewable.
+ Go back +

+
+
+
+
+ +
+
+ +
+
+
+ + + +
+
+
+

+ {{vm.flight.Operator}}{{vm.flight.Number}} + / {{vm.flight.Location}} + / {{vm.flight.Registration}} + + A: {{vm.flight.Actual | chromaDateFilter}} + E: {{vm.flight.Estimated | chromaDateFilter}} + S: {{vm.flight.Scheduled | chromaDateFilter}} + +

+
+
+
+ {{vm.flight.AircraftType}} +
+
+ {{vm.flight.Terminal}} +
+
+ {{vm.flight.Stand}} +
+
+
+ Inbound +
+
+ Outbound +
+
+
+ +
+
+
+ +
+ +
+
diff --git a/app/flight-detail/detail/flight-detail.ts b/app/flight-detail/detail/flight-detail.ts new file mode 100644 index 0000000..a264cf8 --- /dev/null +++ b/app/flight-detail/detail/flight-detail.ts @@ -0,0 +1,169 @@ +import {controller, directive} from '../../infrastructure/Dectorators/Components'; +import {FlightListParams} from '../../flight-list/list/flight-list'; +import {IFlightDetail} from '../../core/service/flightService'; +import {IChromaStateService} from '../../core/service/chromaStateService'; +import {IFlightInformationService, IFlightInformationModel, IFlightInformationGroup, IUserAccessModel} from + '../services/flightInformationService'; +import Mod from '../flight-detail.mod'; + + +export interface FlightDetailParams extends FlightListParams { + flight: IFlightDetail; + requestId: string; +} + +@controller(Mod, 'flightDetailController', ['$stateParams', '$state', '$rootScope', '$window', 'chromaState', 'flightInformationService']) +export class Controller { + + public flight: IFlightDetail; + public model: IFlightInformationModel; + public loading: boolean = true; + public viewTitle: string; + + constructor(private $stateParams: FlightDetailParams, + private $state: ng.ui.IStateService, + private $rootScope: ng.IRootScopeService, + private $window: ng.IWindowService, + private chromaState: IChromaStateService, + private flightInformationService: IFlightInformationService) { + + this.getFlight(true); + + this.$rootScope.$on('flightGroupChanged', (event: ng.IAngularEvent, group: IFlightInformationGroup) => { + this.viewTitle = group.Display; + }); + + this.$rootScope.$on('chroma:flight-updated', () => { + this.getFlight(false); + }); + } + + private getFlight(buildGroups: Boolean): void { + this.flightInformationService.getFlight(this.$stateParams.flight, this.$stateParams.requestId) + .then((m: IFlightInformationModel) => { + this.flight = m.Flight; + this.buildView(m, buildGroups); + this.flightInformationService.getTransactionAccess() + .then((tranAccess: IUserAccessModel) => { + if (tranAccess.Enabled && tranAccess.View) { + this.addTransactionState(tranAccess); + } + }); + this.addPRMState(); + }); + } + + private addTransactionState(tranAccess: IUserAccessModel) { + this.chromaState.addState('chroma.flight-detail.transaction-list', { + url: '/transaction-list', + display: 'Transactions', + icon: 'ion-social-usd', + subView: false, + params: { + tranAccessModel: tranAccess + }, + views: { + 'flight-detail': { + template: `` + } + } + }); + this.chromaState.addState('chroma.flight-detail.transaction-detail', { + url: '/transaction-detail', + display: 'Transaction Detail', + icon: '', + subView: true, + params: { + transaction: null, + tranAccess: undefined, + columnConfig: undefined + }, + views: { + 'flight-detail': { + template: `` + } + } + }); + } + + private addPRMState() { + this.chromaState.addState('chroma.flight-detail.prm-list', { + url: '/prm-list', + display: 'Prms', + icon: 'ion-social-tux', + subView: false, + views: { + 'flight-detail': { + template: `` + } + } + }); + this.chromaState.addState('chroma.flight-detail.prm-detail', { + url: '/prm-detail', + display: 'PRM Detail', + icon: '', + subView: true, + params: { + prmList: null + }, + views: { + 'flight-detail': { + template: `` + } + } + }); + } + + private goBack(): void { + let previousWindow: string = + this.$window.sessionStorage.getItem('chroma:current-filter'); + this.$state.go('chroma.flight-list', { filter: previousWindow }); + } + + private buildView(model: IFlightInformationModel, buildGroups: Boolean): void { + if (model.IsOutsideOfWindow) { + this.loading = false; + this.model = model; + return; + } + + if (buildGroups && model.Groups && model.Groups.length > 0 && !model.IsOutsideOfWindow) { + model.Groups.forEach((grp: IFlightInformationGroup) => { + this.chromaState.addState('chroma.flight-detail.' + grp.Name, { + url: '/' + grp.Name, + display: grp.Display, + icon: grp.Icon, + subView: false, + params: { + group: grp + }, + views: { + 'flight-detail': { + template: `` + } + } + }); + }); + } + + this.model = model; + + if (buildGroups) { + this.$state.go(this.chromaState.states[0].name); + } + + this.loading = false; + + this.$rootScope.$broadcast('scroll.refreshComplete'); + } +} + +@directive(Mod, 'chromaFlightDetail') +export class Directive implements ng.IDirective { + controller: string = Controller.$componentName; + controllerAs: string = 'vm'; + templateUrl: string = 'app/flight-detail/detail/flight-detail.tpl.html'; + restrict: string = 'E'; + replace: boolean = false; + scope: any = true; +} diff --git a/app/flight-detail/editors/baseEditor.ts b/app/flight-detail/editors/baseEditor.ts new file mode 100644 index 0000000..a0f59df --- /dev/null +++ b/app/flight-detail/editors/baseEditor.ts @@ -0,0 +1,48 @@ +import * as InformationService from '../services/flightInformationService'; + +export interface IUpdateResonse { + Success: boolean; + Error: string; +} + +export class BaseEditorController { + public field: InformationService.IFlightInformation; + public model: InformationService.IFlightInformationModel; + public definition: InformationService.IFlightEditor; + public instance: ionic.popup.IonicPopupPromise; + + public status: string; + public error: string; + public updateUrl: string; + + constructor(private $http: ng.IHttpService, + private $rootScope: ng.IRootScopeService, + private $timeout: ng.ITimeoutService, + private api: any) { + this.updateUrl = this.api.endpoint + this.definition.Url; + } + + public updateValue(requestParams: any): void { + if (this.status === 'E' || this.status === 'S' || this.updateUrl === '') { + this.instance.close(); + return; + } + this.status = 'P'; + this.$http.post(this.updateUrl, requestParams).success((response: IUpdateResonse) => { + this.handleUpdateResult(response, requestParams); + this.$rootScope.$emit('chroma:flight-updated'); + }); + } + + private handleUpdateResult(response: IUpdateResonse, request: any): void { + if ((response && response.Success) || (request.IsDelete && response)) { + this.status = 'S'; + this.$timeout(() => { + this.instance.close(); + }, 600); + } else { + this.status = 'E'; + this.error = response.Error; + } + } +} diff --git a/app/flight-detail/editors/datetime/datetime-holder.tpl.html b/app/flight-detail/editors/datetime/datetime-holder.tpl.html new file mode 100644 index 0000000..67938be --- /dev/null +++ b/app/flight-detail/editors/datetime/datetime-holder.tpl.html @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/flight-detail/editors/datetime/datetime.spec.ts b/app/flight-detail/editors/datetime/datetime.spec.ts new file mode 100644 index 0000000..44d6913 --- /dev/null +++ b/app/flight-detail/editors/datetime/datetime.spec.ts @@ -0,0 +1,182 @@ +import {ComponentTest} from '../../../infrastructure/ComponentHelper'; + +import DetailMod from '../../flight-detail.mod'; +import {Mod as CoreMod} from '../../../core/core.mod'; + +import {Directive, Controller} from './datetime'; + +import * as InformationService from "../../services/flightInformationService"; + +class DatetimeEditorTest extends ComponentTest { + public compileString: string = ` `; + + constructor() { + super(Directive.$componentName, 'app/flight-detail/editors/datetime/datetime.tpl.html'); + } + + public getTestingScope(): any { + return { + field: { + Value: '', + Name: 'Crew', + Editor: 'datetime', + Group: 'Details', + Mapping: 'SCCREW' + }, + definition: { Url: 'testURL' }, + model: { + Flight: { Id: '0001' } + }, instance: { + close() { } + } + }; + } + + public setupForRequest(scope: any, responseObj: any, afterCtrlBuld: any = undefined, beforeUpdate: any = undefined): Controller { + + let ctrl = this.compile(scope, this.compileString); + + if (afterCtrlBuld) { + afterCtrlBuld(ctrl); + } + + this.$httpBackend.expectPOST(ctrl.updateUrl).respond(201, responseObj); + + if (beforeUpdate) { + beforeUpdate(ctrl); + } + + ctrl.update(); + + this.$httpBackend.flush(); + + return ctrl; + } +} + +describe('Datetime Editor:', () => { + let instance: DatetimeEditorTest, + detailMod: DetailMod, + coreMod: CoreMod; + + beforeEach(() => { + detailMod = new DetailMod(angular); + coreMod = new CoreMod(angular); + + angular.mock.module('ui.router'); + angular.mock.module('ionic'); + angular.mock.module('chroma.configuration'); + + angular.mock.module(DetailMod.$componentName); + angular.mock.module(CoreMod.$componentName); + + instance = new DatetimeEditorTest(); + }); + + describe('Framework:', () => { + it('Compiles with required properties', () => { + let ctrl: Controller, + scope: any; + + scope = instance.getTestingScope(); + + ctrl = instance.compile(scope, instance.compileString); + + expect(ctrl).toBeDefined(); + expect(ctrl.field).toBeDefined(); + expect(ctrl.definition).toBeDefined(); + expect(ctrl.model).toBeDefined(); + expect(ctrl.instance).toBeDefined(); + }); + }); + + describe('Behaviour', () => { + + it('Malformed time will display error', () =>{ + let ctrl: Controller, scope: any, valid: boolean; + + scope = instance.getTestingScope(); + + ctrl = instance.compile(scope, instance.compileString); + + ctrl.update(); + + expect(ctrl.error).toBe('Date/Time not in the correct format'); + }); + + it('Time value displayed as empty if field has no value', () => { + let ctrl: Controller, + scope: any; + + scope = instance.getTestingScope(); + + ctrl = instance.compile(scope, instance.compileString); + + expect(ctrl.wrapper.timeValue).toBe(undefined); + }) + + it('Time value displayed as 09:40 with 13/11/2015 09:40:00', () => { + let ctrl: Controller, + scope: any; + + scope = instance.getTestingScope(); + + scope.field.Value = '13/11/2015 09:40:00'; + + ctrl = instance.compile(scope, instance.compileString); + + expect(ctrl.wrapper.timeValue).toBe('09:40'); + }) + + it('Successful update with validate datetime', () => { + let ctrl: Controller, scope: any, valid: boolean; + + scope = instance.getTestingScope(); + + scope.field.Value = '13/11/2015 09:11:00'; + + ctrl = instance.compile(scope, instance.compileString); + + ctrl.wrapper.timeValue = '19:50'; + + instance.$httpBackend.expectPOST(ctrl.updateUrl).respond((method, url, data: string, headers, params) => { + let parsedArgs = JSON.parse(data); + valid = parsedArgs.NewValue === '13/11/2015, 7:50:00 PM'; + return [201, { Success: true }]; + }); + + ctrl.update(); + + instance.$httpBackend.flush(); + + expect(valid).toBe(true); + }); + + it('Successful update with validate datetime that starts with a 0', () => { + let ctrl: Controller, scope: any, valid: boolean; + + scope = instance.getTestingScope(); + + scope.field.Value = '13/11/2015 09:20:00'; + + ctrl = instance.compile(scope, instance.compileString); + + ctrl.wrapper.timeValue = '09:50'; + + instance.$httpBackend.expectPOST(ctrl.updateUrl).respond((method, url, data: string, headers, params) => { + let parsedArgs = JSON.parse(data); + valid = parsedArgs.NewValue === '13/11/2015, 9:50:00 AM'; + return [201, { Success: true }]; + }); + + ctrl.update(); + + instance.$httpBackend.flush(); + + expect(valid).toBe(true); + }); + + + }) + +}); diff --git a/app/flight-detail/editors/datetime/datetime.tpl.html b/app/flight-detail/editors/datetime/datetime.tpl.html new file mode 100644 index 0000000..493729d --- /dev/null +++ b/app/flight-detail/editors/datetime/datetime.tpl.html @@ -0,0 +1,52 @@ +
+
+
+ +
+
+ +
+ +
+
+ + + +
+
+ {{vm.error}} + + + + +
+
diff --git a/app/flight-detail/editors/datetime/datetime.ts b/app/flight-detail/editors/datetime/datetime.ts new file mode 100644 index 0000000..33723da --- /dev/null +++ b/app/flight-detail/editors/datetime/datetime.ts @@ -0,0 +1,119 @@ +import {controller, directive} from '../../../infrastructure/Dectorators/Components'; +import * as InformationService from '../../services/flightInformationService'; +import Mod from '../../flight-detail.mod'; +import * as BaseEditor from '../baseEditor'; +//TESTONLY import * as moment from 'moment' + +export class DateWrapper { + //actual value + private _value: Date; + + //Original value: only used to check if the date was removed + public originalValue: string; + + //working value: what angular is bound to + public workingValue: Date; + + public timeValue: string; + + constructor(value: string) { + if (value != null && value.slice(-1) === 'Z') { + this._value = moment(value).toDate(); + this.workingValue = moment(value).toDate(); + } else { + this._value = moment(value, 'DD/MM/YYYY hh:mm:ss').toDate(); + this.workingValue = moment(value, 'DD/MM/YYYY hh:mm:ss').toDate(); + } + + this.originalValue = value; + if (value !== '') { + this.timeValue = `${this.addZero(this.workingValue.getHours()) }:${this.addZero(this.workingValue.getMinutes()) }`; + } + } + + public getValue(): string { + if (!this.workingValue) { + return ''; + } + this._value.setFullYear(this.workingValue.getFullYear()); + this._value.setMonth(this.workingValue.getMonth()); + this._value.setDate(this.workingValue.getDate()); + + let timeSeg = this.timeValue.split(':'); + let hours = timeSeg[0]; + + this._value.setHours(parseInt(this.trimZero(hours), 10)); + this._value.setMinutes(parseInt(timeSeg[1], 10)); + + return this._value.toISOString(); + } + + private addZero(i: any): string | number { + if (i < 10) { + return '0' + i.toString(); + } + return i; + } + private trimZero(i: any): string { + if (i < 10) { + let returnStr = i.toString(); + return returnStr.substr(1, 1); + } + return i.toString(); + } +} + +@controller(Mod, 'dateTimeEditorController', ['$http', '$rootScope', '$timeout', 'api']) +export class Controller extends BaseEditor.BaseEditorController { + public wrapper: DateWrapper; + + constructor($http: ng.IHttpService, $rootScope: ng.IRootScopeService, $timeout: ng.ITimeoutService, api: any, Jquery: any) { + super($http, $rootScope, $timeout, api); + this.wrapper = new DateWrapper(this.field.Value); + } + + public update(): void { + if (this.definition.Url !== '') { + this.error = ''; + + var val = this.extractVal(); + if (val !== undefined) { + super.updateValue({ + Id: this.model.Flight.Id, + NewValue: val, + Mapping: this.field.Mapping, + IsDelete: this.wrapper.originalValue && !val + }); + } + } else { + this.field.Value = this.extractVal(); + this.instance.close(); + } + } + + private extractVal() { + let val: string = undefined; + try { + val = this.wrapper.getValue(); + } catch (error) { + this.error = 'Date/Time not in the correct format'; + } + return val; + } +} + +@directive(Mod, 'chromaDatetimeEditor') +export class Directive implements ng.IDirective { + controller = Controller.$componentName; + controllerAs = 'vm'; + templateUrl = 'app/flight-detail/editors/datetime/datetime.tpl.html'; + restrict = 'E'; + replace = false; + bindToController = true; + scope: any = { + field: '=', + definition: '=', + instance: '=', + model: '=' + }; +} diff --git a/app/flight-detail/editors/editors.less b/app/flight-detail/editors/editors.less new file mode 100644 index 0000000..403b404 --- /dev/null +++ b/app/flight-detail/editors/editors.less @@ -0,0 +1,64 @@ +@primary-color: #00398a; +@success-green: #689F38; +@error-red: #c62828; + + .invalid { + color: @error-red !important; + } + + +.editor { + .clear-action { + margin: 5px; + font-size: 110%; + } + + .cancel-button { + font-size: 250%; + } + + + .item-input { + &[disabled] { + background-color: #f8f8f8; + } + + input { + padding-right: 0px; + } + } + + .popup-head { + padding-bottom: 5px; + } + + .popup-title { + color: #00398a; + font-family: 'Roboto-Thin'; + } + + button.action { + font-size: 140%; + + i { + font-size: 200%; + } + + &.pending { + background-color: transparent !important; + } + + &.success { + background-color: @success-green !important; + border-color: @success-green !important; + } + + &.error { + background-color: @error-red !important; + border-color: @error-red !important; + } + } + button.action[disabled]{ + opacity:0.5; + } +} diff --git a/app/flight-detail/editors/freetext/freetext-holder.tpl.html b/app/flight-detail/editors/freetext/freetext-holder.tpl.html new file mode 100644 index 0000000..f0a85cf --- /dev/null +++ b/app/flight-detail/editors/freetext/freetext-holder.tpl.html @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/flight-detail/editors/freetext/freetext.spec.ts b/app/flight-detail/editors/freetext/freetext.spec.ts new file mode 100644 index 0000000..0ab26c0 --- /dev/null +++ b/app/flight-detail/editors/freetext/freetext.spec.ts @@ -0,0 +1,150 @@ +import {ComponentTest} from '../../../infrastructure/ComponentHelper'; + +import DetailMod from '../../flight-detail.mod'; +import {Mod as CoreMod} from '../../../core/core.mod'; + +import {Directive, Controller} from './freetext' + +import * as InformationService from "../../services/flightInformationService"; + +class FreeTextEditorTest extends ComponentTest { + public compileString: string = ` `; + constructor() { + super(Directive.$componentName, 'app/flight-detail/editors/freetext/freetext.tpl.html'); + } + public getTestingScope(): any { + return { + field: { + Value: 'testValue', + Name: 'Crew', + Editor: 'freetext', + Group: 'Details', + Mapping: 'SCCREW' + }, + definition: { + Url: 'testURL' + }, + model: { + Flight: { + Id: '0001' + } + }, + instance: { + close() { + + } + } + }; + } + public setupForRequest(scope: any, responseObj: any, beforeUpdate: any = undefined): Controller { + + let ctrl = this.compile(scope, this.compileString); + + this.$httpBackend.expectPOST(ctrl.updateUrl).respond(201, responseObj); + + if (beforeUpdate) { + beforeUpdate(ctrl); + } + + ctrl.update(); + + this.$httpBackend.flush(); + + return ctrl; + } +} + +describe('Freetext Editor:', () => { + let instance: FreeTextEditorTest, + detailMod: DetailMod, + coreMod: CoreMod; + beforeEach(() => { + detailMod = new DetailMod(angular); + coreMod = new CoreMod(angular); + + angular.mock.module('ui.router'); + angular.mock.module('ionic'); + angular.mock.module('chroma.configuration'); + + angular.mock.module(DetailMod.$componentName); + angular.mock.module(CoreMod.$componentName); + + instance = new FreeTextEditorTest(); + }); + describe('Framework:', () => { + it('Compiles with required properties', () => { + let ctrl: Controller, + scope: any; + + scope = instance.getTestingScope(); + + ctrl = instance.compile(scope, instance.compileString); + + expect(ctrl).toBeDefined(); + expect(ctrl.field).toBeDefined(); + expect(ctrl.definition).toBeDefined(); + expect(ctrl.model).toBeDefined(); + expect(ctrl.instance).toBeDefined(); + }); + + it('Popup closes if previous action complete', () => { + let ctrl: Controller, scope: any; + + scope = instance.getTestingScope(); + + ctrl = instance.setupForRequest(scope, { Success: false }); + + spyOn(ctrl.instance, 'close').and.callThrough(); + + ctrl.update(); + + expect(ctrl.instance.close).toHaveBeenCalled(); + }); + }); + describe('Behaviour', () => { + it('Flight updated even broadcast on update regardless on status', () => { + let ctrl: Controller, scope: any, + flightUpdateEvent: string = 'chroma:flight-updated'; + + scope = instance.getTestingScope(); + + spyOn(instance.$rootScope, '$emit').and.callThrough(); + + instance.setupForRequest(scope, { Success: true }); + + expect(instance.$rootScope.$emit).toHaveBeenCalledWith(flightUpdateEvent); + }); + + it('Status becomes S if successful Update', () => { + let ctrl: Controller, scope: any; + + scope = instance.getTestingScope(); + + ctrl = instance.setupForRequest(scope, { Success: true }); + + expect(ctrl.status).toBe('S'); + }); + + it('Status becomes S if successful Delete', () => { + let ctrl: Controller, scope: any; + + scope = instance.getTestingScope(); + + ctrl = instance.setupForRequest(scope, {}, (controller: Controller) => { + controller.value = ''; + }); + + expect(ctrl.status).toBe('S'); + }); + + it('Status becomes E if on failed update or delete', () => { + let ctrl: Controller, scope: any; + + scope = instance.getTestingScope(); + + ctrl = instance.setupForRequest(scope, { Success: false }); + + expect(ctrl.status).toBe('E'); + }); + }); +}); diff --git a/app/flight-detail/editors/freetext/freetext.tpl.html b/app/flight-detail/editors/freetext/freetext.tpl.html new file mode 100644 index 0000000..bc9a17a --- /dev/null +++ b/app/flight-detail/editors/freetext/freetext.tpl.html @@ -0,0 +1,38 @@ +
+
+
+ +
+
+
+ +
+
+ {{vm.error}} + + + + +
+
diff --git a/app/flight-detail/editors/freetext/freetext.ts b/app/flight-detail/editors/freetext/freetext.ts new file mode 100644 index 0000000..e070711 --- /dev/null +++ b/app/flight-detail/editors/freetext/freetext.ts @@ -0,0 +1,69 @@ +import {controller, directive} from '../../../infrastructure/Dectorators/Components'; +import * as InformationService from '../../services/flightInformationService'; +import Mod from '../../flight-detail.mod'; +import * as BaseEditor from '../baseEditor'; + +interface IFlightUpdateRequest { + Id: string; + NewValue: string; + Mapping: string; + IsDelete: Boolean; +} + +@controller(Mod, 'freeTextEditorController', ['$http', '$rootScope', '$timeout', 'api']) +export class Controller extends BaseEditor.BaseEditorController { + public value: string; + public originalValue: string; + + constructor($http: ng.IHttpService, $rootScope: ng.IRootScopeService, $timeout: ng.ITimeoutService, api: any, jquery: any) { + super($http, $rootScope, $timeout, api); + this.value = this.field.Value; + this.originalValue = this.value; + } + + public update(): void { + if (this.valueNotChanged()) { + this.instance.close(); + return; + } + + if (this.definition.Url !== '') { + this.updateValue(this.createRequestParams()); + } else { + this.field.Value = this.value; + this.instance.close(); + } + } + + private valueNotChanged() { + if (this.value === this.originalValue) { + return true; + } + return false; + } + + private createRequestParams(): IFlightUpdateRequest { + return { + Id: this.model.Flight.Id, + NewValue: this.value, + Mapping: this.field.Mapping, + IsDelete: this.originalValue && this.value === '' + }; + } +} + +@directive(Mod, 'chromaFreetextEditor') +export class Directive implements ng.IDirective { + controller: string = Controller.$componentName; + controllerAs: string = 'vm'; + templateUrl: string = 'app/flight-detail/editors/freetext/freetext.tpl.html'; + restrict: string = 'E'; + replace: boolean = false; + bindToController: boolean = true; + scope: any = { + field: '=', + definition: '=', + instance: '=', + model: '=' + }; +} diff --git a/app/flight-detail/editors/lookup/lookup-holder.tpl.html b/app/flight-detail/editors/lookup/lookup-holder.tpl.html new file mode 100644 index 0000000..8337bf3 --- /dev/null +++ b/app/flight-detail/editors/lookup/lookup-holder.tpl.html @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/app/flight-detail/editors/lookup/lookup.tpl.html b/app/flight-detail/editors/lookup/lookup.tpl.html new file mode 100644 index 0000000..6bd3d23 --- /dev/null +++ b/app/flight-detail/editors/lookup/lookup.tpl.html @@ -0,0 +1,20 @@ + + \ No newline at end of file diff --git a/app/flight-detail/editors/lookup/lookup.ts b/app/flight-detail/editors/lookup/lookup.ts new file mode 100644 index 0000000..1ba8767 --- /dev/null +++ b/app/flight-detail/editors/lookup/lookup.ts @@ -0,0 +1,49 @@ +import {controller, directive} from '../../../infrastructure/Dectorators/Components'; +import Mod from '../../flight-detail.mod'; +import {LookupModel, LookupEditorField} from '../../services/flightInformationService'; +import * as BaseEditor from '../baseEditor'; + + + +@controller(Mod, 'lookupEditorController', ['$http', '$rootScope', '$timeout', 'api']) +export class Controller extends BaseEditor.BaseEditorController { + constructor($http: ng.IHttpService, $rootScope: ng.IRootScopeService, $timeout: ng.ITimeoutService, api: any) { + super($http, $rootScope, $timeout, api); + } + + public lookupmodel: LookupModel; + + public searchInput: string; + + public onSearchTextChanged() { + var field: LookupEditorField; + field = this.field as LookupEditorField; + field.LookupModel.searchString = this.searchInput; + field.LookupModel.search(); + } + + public selectItem(item: any) { + var field: LookupEditorField; + field = this.field as LookupEditorField; + field.LookupModel.onSelected(item); + this.instance.close(); + } + +} + +@directive(Mod, 'chromaLookupEditor') +export class Directive implements ng.IDirective { + controller = Controller.$componentName; + controllerAs = 'vm'; + templateUrl:string = 'app/flight-detail/editors/lookup/lookup.tpl.html'; + restrict:string = 'E'; + replace: boolean = false; + bindToController:boolean = true; + scope: any = { + field: '=', + definition: '=', + instance: '=', + model: '=', + lookupmodel: '=' + }; +} \ No newline at end of file diff --git a/app/flight-detail/editors/readonly/readonly.less b/app/flight-detail/editors/readonly/readonly.less new file mode 100644 index 0000000..6b9297f --- /dev/null +++ b/app/flight-detail/editors/readonly/readonly.less @@ -0,0 +1,13 @@ +@primary-color: #00398a; + +.editor-readonly{ + .popup-head{ + padding-bottom: 5px; + } + .popup-title{ + color: #00398a; + } + button.action{ + font-size: 100% + } +} diff --git a/app/flight-detail/editors/readonly/readonly.tpl.html b/app/flight-detail/editors/readonly/readonly.tpl.html new file mode 100644 index 0000000..aa611c0 --- /dev/null +++ b/app/flight-detail/editors/readonly/readonly.tpl.html @@ -0,0 +1,15 @@ + +
+
+ +
+
+
+
+ +
+
diff --git a/app/flight-detail/flight-detail.config.ts b/app/flight-detail/flight-detail.config.ts new file mode 100644 index 0000000..2019787 --- /dev/null +++ b/app/flight-detail/flight-detail.config.ts @@ -0,0 +1,20 @@ +import {inject} from '../infrastructure/Dectorators/Components'; + +@inject(['$stateProvider']) +export class Routes { + constructor($stateProvider: ng.ui.IStateProvider) { + $stateProvider.state('chroma.flight-detail', { + url: '/flight-detail/:id', + params: { + flight: undefined, + id: undefined, + requestId: undefined + }, + views: { + 'content': { + template: '' + } + } + }); + } +} diff --git a/app/flight-detail/flight-detail.mod.ts b/app/flight-detail/flight-detail.mod.ts new file mode 100644 index 0000000..c192374 --- /dev/null +++ b/app/flight-detail/flight-detail.mod.ts @@ -0,0 +1,57 @@ +import {module} from '../infrastructure/Dectorators/Components'; +import {Routes} from './flight-detail.config'; +import {Controller as FltDetailCtrl, Directive as FltDetailDir} from './detail/flight-detail'; +import {Controller as TransactionLstCtrl, Directive as TransactionLstDir} from './transactions/transaction-list'; +import {Controller as TransactionDetCtrl, Directive as TransactionDetDir} from './transactions/transaction-detail'; +import {Controller as PrmLstCtrl, Directive as PrmLstDir} from './prm/prm-list'; +import {Controller as FltGroupCtrl, Directive as FltGroupDir} from './group/flight-group'; +import {Controller as FreeTextCtrl, Directive as FreeTextDir} from './editors/freetext/freetext'; +import {Controller as DateTimeCtrl, Directive as DateTimeDir} from './editors/datetime/datetime'; +import {Controller as LookupCtrl, Directive as LookupCtrlDir} from './editors/lookup/lookup'; +import {FlightInformationService} from './services/flightInformationService'; +import {TransactionService} from './services/transactionService'; +import {PrmService} from './services/prmService'; + +@module('flight-detail') +export default class Mod { + constructor(angular: ng.IAngularStatic) { + angular.module(Mod.$componentName, []) + .factory(FlightInformationService.$componentName, FlightInformationService.$factory) + + .controller(FltDetailCtrl.$componentName, FltDetailCtrl) + .directive(FltDetailDir.$componentName, FltDetailDir.$factory) + + .controller(TransactionLstCtrl.$componentName, TransactionLstCtrl) + .directive(TransactionLstDir.$componentName, TransactionLstDir.$factory) + .factory(TransactionService.$componentName, TransactionService.$factory) + + .controller(PrmLstCtrl.$componentName, PrmLstCtrl) + .directive(PrmLstDir.$componentName, PrmLstDir.$factory) + .factory(PrmService.$componentName, PrmService.$factory) + + .controller(TransactionDetCtrl.$componentName, TransactionDetCtrl) + .directive(TransactionDetDir.$componentName, TransactionDetDir.$factory) + + .controller(FltGroupCtrl.$componentName, FltGroupCtrl) + .directive(FltGroupDir.$componentName, FltGroupDir.$factory) + + .controller(FreeTextCtrl.$componentName, FreeTextCtrl) + .directive(FreeTextDir.$componentName, FreeTextDir.$factory) + + .controller(DateTimeCtrl.$componentName, DateTimeCtrl) + .directive(DateTimeDir.$componentName, DateTimeDir.$factory) + + .controller(LookupCtrl.$componentName, LookupCtrl) + .directive(LookupCtrlDir.$componentName, LookupCtrlDir.$factory) + + + .filter('chromaDateFilter', $filter => (filterText, date) => { + if (!filterText || filterText === '/Date(-62135596800000)/') { + return ''; + } + + return date ? $filter('date')(parseInt(filterText.substr(6), 10), '[dd] HH:mm') : $filter('date')(parseInt(filterText.substr(6), 10), 'HH:mm'); + }) + .config(Routes); + } +} \ No newline at end of file diff --git a/app/flight-detail/group/flight-group.spec.ts b/app/flight-detail/group/flight-group.spec.ts new file mode 100644 index 0000000..bbb0498 --- /dev/null +++ b/app/flight-detail/group/flight-group.spec.ts @@ -0,0 +1,241 @@ +import {ComponentTest} from '../../infrastructure/ComponentHelper'; +import {Directive as GroupDir, Controller as GroupCtrl, IGroupParams} from './flight-group'; + +import DetailMod from '../flight-detail.mod'; +import {Mod as CoreMod} from '../../core/core.mod'; + +import {IFlightInformationModel, IFlightInformation} from '../services/flightInformationService'; +import {IFlightDetail} from '../../core/service/flightService'; +import * as InformationService from "../services/flightInformationService"; +import * as Flightdetail from "../detail/flight-detail"; + +class FlightGroupTest extends ComponentTest { + constructor() { + super(GroupDir.$componentName, 'app/flight-detail/group/flight-group.tpl.html'); + } +} + + +class TestInstance { + public compileString: string = ""; + + public test: FlightGroupTest; + public testModel: IFlightInformationModel; + public api: any; + + public $httpBackend: ng.IHttpBackendService; + public $state: ng.ui.IStateService; + public $stateParams: ng.ui.IStateParamsService; + public $rootScope: any; + public $ionicPopup: any; + + constructor() { + angular.mock.inject(($httpBackend, $state, $stateParams, $ionicPopup, $rootScope, api) => { + this.$httpBackend = $httpBackend; + this.$state = $state; + this.$stateParams = $stateParams; + this.$ionicPopup = $ionicPopup; + this.$rootScope = $rootScope; + this.api = api; + }); + } + public setup(): void { + this.testModel = { + IsOutsideOfWindow: false, + Flight: { + Id: undefined, + Location: undefined, + Operator: undefined, + Number: undefined, + AircraftType: undefined, + Registration: undefined, + Stand: undefined, + Terminal: undefined, + Actual: undefined, + Scheduled: undefined, + Estimated: undefined, + FlightConcat: undefined, + Type: 'D' + }, + Groups: undefined, + Fields: [ + { + "Value": '', + "Name": 'Mail Weight', + "Editor": 'freetext', + "Mapping": 'MAIL_WEIGHT', + "Group": 'Deadload', + "Restrict": "A" + }, + { + "Value": '', + "Name": 'PAX Weight', + "Editor": 'freetext', + "Mapping": 'PAX_WEIGHT', + "Group": 'General' + } + ], + Editors: [ + { + Name: 'freetext', + Type: 'freetext', + Url: 'test' + } + ] + }; + this.getStateParams(); + } + public getStateParams(): void { + let params: any = this.$stateParams; + + params.group = { + "Name": 'Deadload', + "Display": 'Deadload Figures', + "Icon": 'ion-navicon' + }; + } +} + + +describe('Flight Group:', () => { + let instance: TestInstance; + + beforeEach(() => { + + new DetailMod(angular); + new CoreMod(angular); + + angular.mock.module('ui.router'); + angular.mock.module('ionic'); + angular.mock.module('chroma.configuration'); + + angular.mock.module(DetailMod.$componentName); + angular.mock.module(CoreMod.$componentName); + + instance = new TestInstance(); + instance.test = new FlightGroupTest(); + }); + + describe('Framework:', () => { + it('View Refreshed on pull down', () => { + let ctrl: GroupCtrl, + flightUpdateEvent: string = 'chroma:flight-updated'; + + spyOn(instance.$rootScope, '$emit').and.callThrough(); + + instance.setup(); + + ctrl = instance.test.compile({ model: instance.testModel }, instance.compileString); + + ctrl.update(); + + expect(instance.$rootScope.$emit).toHaveBeenCalledWith(flightUpdateEvent); + }); + + it('Filter correct removes fields with restrictions', () => { + let ctrl: GroupCtrl, + valid: Boolean; + + spyOn(instance.$rootScope, '$emit').and.callThrough(); + + instance.setup(); + + ctrl = instance.test.compile({ model: instance.testModel }, instance.compileString); + + valid = ctrl.fieldFilter(instance.testModel.Fields[1]); + + expect(valid).toBe(false); + }); + + it('Filter returns fields for correct group', () => { + let ctrl: GroupCtrl, + valid: Boolean; + + instance.setup(); + + ctrl = instance.test.compile({ model: instance.testModel }, instance.compileString); + + valid = ctrl.fieldFilter(instance.testModel.Fields[0]); + + expect(valid).toBe(false); + }); + }); + + describe('Scenario: Updating Mail Weight', () => { + //Given that I have chosen to enter a dead load for flight SAS6876 + //And the limit is 99999kg + //When I enter a mail weight of 34.67kg for flight SAS6876 + //Then flight SAS6876 is updated with a mail weight of 34.67kg + it('Directive loaded and required Params present', function() { + let ctrl: GroupCtrl; + + instance.setup(); + + ctrl = instance.test.compile({ model: instance.testModel }, instance.compileString); + + expect(ctrl.group).toBeDefined(); + + expect(ctrl.model).toBeDefined(); + }); + + it('Readonly Editor has no interaction', () => { + let ctrl: GroupCtrl, + testField: IFlightInformation; + + testField = { + "Value": '', + "Name": '', + "Editor": 'Readonly', + "Group": '', + "Mapping": '' + }; + + spyOn(instance.$ionicPopup, 'show').and.returnValue(false); + + instance.setup(); + + ctrl = instance.test.compile({ model: instance.testModel }, instance.compileString); + + ctrl.editorFor(testField); + + expect(instance.$ionicPopup.show).not.toHaveBeenCalled(); + }); + + it('Freetext Editor shown', () => { + let ctrl: GroupCtrl, + testField: IFlightInformation, + argumentsAreCorrect: boolean = false; + + testField = { + "Value": '', + "Name": 'PAX Weight', + "Editor": 'freetext', + "Group": 'Deadload', + "Mapping": 'PAX_WEIGHT' + }; + + spyOn(instance.$ionicPopup, 'show').and.callFake((popup) => { + let comparableTemplate = `app/flight-detail/editors/${testField.Editor}/${testField.Editor}-holder.tpl.html`; + let compareableClass = `editor editor-${testField.Editor}`; + let comparableTitle = `Update ${testField.Name}`; + + if (popup.templateUrl === comparableTemplate && + popup.cssClass === compareableClass && + popup.title === comparableTitle) { + argumentsAreCorrect = true; + } + }); + + instance.setup(); + + ctrl = instance.test.compile({ model: instance.testModel }, instance.compileString); + + ctrl.editorFor(testField); + + expect(argumentsAreCorrect).toBe(true); + + }); + + }); + +}); diff --git a/app/flight-detail/group/flight-group.tpl.html b/app/flight-detail/group/flight-group.tpl.html new file mode 100644 index 0000000..e7142f0 --- /dev/null +++ b/app/flight-detail/group/flight-group.tpl.html @@ -0,0 +1,17 @@ + + + + +
+ +
+
+
diff --git a/app/flight-detail/group/flight-group.ts b/app/flight-detail/group/flight-group.ts new file mode 100644 index 0000000..1d950c4 --- /dev/null +++ b/app/flight-detail/group/flight-group.ts @@ -0,0 +1,81 @@ +import {controller, directive} from '../../infrastructure/Dectorators/Components'; +import {Controller as FlightDetailController} from '../detail/flight-detail'; +import Mod from '../flight-detail.mod'; +import * as InformationService from '../services/flightInformationService'; + +export interface IGroupScope { + group: string; + vm: IController; +} + +export interface IGroupParams { + group: InformationService.IFlightInformationGroup; +} +export interface IController extends IGroupScope { + model: InformationService.IFlightInformationModel; +} + +@controller(Mod, 'flightGroupController', ['$ionicPopup', '$rootScope', '$stateParams']) +export class Controller { + public group: InformationService.IFlightInformationGroup; + public model: InformationService.IFlightInformationModel; + public fieldFilter: (field: InformationService.IFlightInformation) => Boolean; + + constructor(private $ionicPopup: ionic.popup.IonicPopupService, + private $rootScope: ng.IRootScopeService, private $stateParams: IGroupParams) { + this.group = $stateParams.group; + + this.fieldFilter = (field: InformationService.IFlightInformation) => { + if (this.$stateParams && this.$stateParams.group) { + if (!field.Restrict || field.Restrict === '') { + return field.Group.toLowerCase() === this.$stateParams.group.Name.toLowerCase(); + } else { + return field.Group === this.group.Name + && this.model.Flight.Type === field.Restrict; + } + } + }; + + $rootScope.$emit('flightGroupChanged', this.group); + } + + public editorFor(field: InformationService.IFlightInformation) { + if (field.Editor.toLowerCase() === 'readonly') { return; } + let editor = field.Editor.toLowerCase(); + let modalScope: any = this.$rootScope.$new(); + let editorDefinition: InformationService.IFlightEditor; + + this.model.Editors.forEach(e => { + if (e.Name.toLowerCase() === editor) { + editorDefinition = e; + } + }); + + modalScope.model = this.model; + modalScope.field = field; + modalScope.editor = editorDefinition; + + modalScope.instance = this.$ionicPopup.show({ + templateUrl: `app/flight-detail/editors/${editor}/${editor}-holder.tpl.html`, + cssClass: `editor editor-${editor}`, + title: `Update ${field.Name}`, + scope: modalScope + }); + } + public update(): void { + this.$rootScope.$emit('chroma:flight-updated'); + } +} + +@directive(Mod, 'chromaFlightDetailGroup') +export class Directive implements ng.IDirective { + controller: string = Controller.$componentName; + controllerAs: string = 'vm'; + templateUrl: string = 'app/flight-detail/group/flight-group.tpl.html'; + restrict: string = 'E'; + replace: boolean = false; + bindToController: boolean = true; + scope: any = { + model: '=' + }; +} diff --git a/app/flight-detail/prm/prm-list.less b/app/flight-detail/prm/prm-list.less new file mode 100644 index 0000000..e69de29 diff --git a/app/flight-detail/prm/prm-list.spec.ts b/app/flight-detail/prm/prm-list.spec.ts new file mode 100644 index 0000000..e69de29 diff --git a/app/flight-detail/prm/prm-list.tpl.html b/app/flight-detail/prm/prm-list.tpl.html new file mode 100644 index 0000000..c8992ea --- /dev/null +++ b/app/flight-detail/prm/prm-list.tpl.html @@ -0,0 +1,7 @@ + + +
+ Hello World! +
+
+
\ No newline at end of file diff --git a/app/flight-detail/prm/prm-list.ts b/app/flight-detail/prm/prm-list.ts new file mode 100644 index 0000000..febf86d --- /dev/null +++ b/app/flight-detail/prm/prm-list.ts @@ -0,0 +1,53 @@ +import {controller, directive} from '../../infrastructure/Dectorators/Components'; +import {Mod} from './prm.mod'; +import {IPrmService, IPrmDetail, IPrmListRequest} from '../services/prmService'; +import * as InformationService from '../services/flightInformationService'; +import {IFlightDetail} from '../../core/service/flightService'; + +export interface PrmListParams extends ng.ui.IStateParamsService { + flightId: string; +} + +@controller(Mod, 'prmListController', ['prmService', '$stateParams', '$state', '$rootScope', 'chromaState']) +export class Controller { + public static NO_PRM = 'This flight has no passengers with reduced movement'; + public prms: Array; + public message: string; + public request: IPrmListRequest; + public flightId: string; + public model: IFlightDetail; + + constructor(private prmService: IPrmService, + private $stateParams: PrmListParams, + private $state: ng.ui.IStateService, + private $rootScope: ng.IScope) { + this.load(); + } + + private load() : void { + this.prmService.getPrmList(this.model.Id, this.model.PhysFlightId) + .then((r) => this.onPrmLoad(r)); + } + + private onPrmLoad(request: any): void { + this.request = request; + this.prms = request; + + if (!this.prms || this.prms.length === 0) { + this.message = Controller.NO_PRM; + } + } +} + +@directive(Mod, 'chromaPrmList', ['$stateParams']) +export class Directive implements ng.IDirective { + controller: string = Controller.$componentName; + controllerAs: string = 'vm'; + templateUrl: string = 'app/flight-detail/prm/prm-list.tpl.html'; + restrict: string = 'E'; + replace: boolean = false; + bindToController: boolean = true; + scope: any = { + model: '=' + }; +} \ No newline at end of file diff --git a/app/flight-detail/prm/prm.config.ts b/app/flight-detail/prm/prm.config.ts new file mode 100644 index 0000000..30c031c --- /dev/null +++ b/app/flight-detail/prm/prm.config.ts @@ -0,0 +1,19 @@ +import {inject} from '../../infrastructure/Dectorators/Components'; + +@inject(['$stateProvider']) +export class Routes { + constructor($stateProvider: ng.ui.IStateProvider) { + $stateProvider + .state('chroma.flight-detail.prm-list', { + url: '/prm-list', + params: { + prm: undefined + }, + views: { + 'detail':{ + template: '' + } + } + }); + } +} \ No newline at end of file diff --git a/app/flight-detail/prm/prm.mod.ts b/app/flight-detail/prm/prm.mod.ts new file mode 100644 index 0000000..e81ed64 --- /dev/null +++ b/app/flight-detail/prm/prm.mod.ts @@ -0,0 +1,16 @@ +import Dectorators = require('../../infrastructure/Dectorators/Components'); +import PrmListComp = require('./prm-list'); +import {PrmService} from '../services/prmService'; +import Config = require ('./prm.config'); + +@Dectorators.module('prm-list') +export class Mod { + constructor(angular: ng.IAngularStatic) { + angular.module(Mod.$componentName, []) + .factory(PrmService.$componentName, PrmService.$factory) + + .controller(PrmListComp.Controller.$componentName, PrmListComp.Controller) + .directive(PrmListComp.Directive.$componentName, PrmListComp.Directive.$factory) + .config(Config.Routes); + } +} \ No newline at end of file diff --git a/app/flight-detail/services/flightInformationService.spec.ts b/app/flight-detail/services/flightInformationService.spec.ts new file mode 100644 index 0000000..8393474 --- /dev/null +++ b/app/flight-detail/services/flightInformationService.spec.ts @@ -0,0 +1,82 @@ +import {FlightInformationService} from './flightInformationService'; +import {IFlightDetail} from '../../core/service/flightService'; + +describe('Framework: Flight info service', () => { + + let service: FlightInformationService, + sourceUrl: string = 'test'; + + beforeEach(() => { + service = new FlightInformationService(null, null, null, { + imageSource: sourceUrl + }); + }); + + it('Get Operater URL: Should concat URL based on API and Operator Code', () => { + let operator = "SteAir"; + expect(service.getOperatorUrl(operator)).toBe(`${sourceUrl}?code=${operator}`); + }); + + it('Get Time Display: Should return nothing for null flight', () => { + expect(service.getTimeDisplayEnum(undefined)).toBe(''); + }); + + it('Get Time Display: Should return A for flight with Actual', () => { + let flight: IFlightDetail = { + Id: undefined, + Operator: undefined, + Number: undefined, + Stand: undefined, + Scheduled: undefined, + Terminal: undefined, + Type: undefined, + Estimated: undefined, + Registration: undefined, + AircraftType: undefined, + Location: undefined, + Actual: '0000', + FlightConcat: undefined + } + expect(service.getTimeDisplayEnum(flight)).toBe('A'); + }); + + it('Get Time Display: Should return E for flight with Estimated', () => { + let flight: IFlightDetail = { + Id: undefined, + Operator: undefined, + Number: undefined, + Stand: undefined, + Scheduled: undefined, + Terminal: undefined, + Type: undefined, + Estimated: '0000', + Registration: undefined, + AircraftType: undefined, + Location: undefined, + Actual: undefined, + FlightConcat: undefined + }; + + expect(service.getTimeDisplayEnum(flight)).toBe('E'); + }); + + it('Get Time Display: Should return S for flight with Schedule', () => { + let flight: IFlightDetail = { + Id: undefined, + Operator: undefined, + Number: undefined, + Stand: undefined, + Scheduled: '0000', + Terminal: undefined, + Type: undefined, + Estimated: undefined, + Registration: undefined, + AircraftType: undefined, + Location: undefined, + Actual: undefined, + FlightConcat: undefined + }; + + expect(service.getTimeDisplayEnum(flight)).toBe('S'); + }); +}); diff --git a/app/flight-detail/services/flightInformationService.ts b/app/flight-detail/services/flightInformationService.ts new file mode 100644 index 0000000..ee8b98d --- /dev/null +++ b/app/flight-detail/services/flightInformationService.ts @@ -0,0 +1,154 @@ +import {factory} from '../../infrastructure/Dectorators/Components'; +import {IFlightDetail} from '../../core/service/flightService'; +import {Mod} from '../../core/core.mod'; + +export interface IFlightInformationModel { + Fields: Array; + Groups: Array; + Editors: Array; + Flight: IFlightDetail; + IsOutsideOfWindow: boolean; +} + +export class LookupModel implements ILookupModel { + public searchString: string; + public lookupList: Array; + public results: Array; + public viewScope: any; + lookupField: string; + resultField: string; + public search() { + // + }; + public onSelected(item: any) { + // + }; +} + +export interface ILookupModel { + lookupField: string; + resultField: string; + viewScope: any; + search() : any; + onSelected(item: any); +} + +export class EditorField implements IFlightInformation { + constructor(public Name: string, + public Value: string, + public Editor: string, + public Group: string, + public Mapping: string, + public Restrict?: string, + public IsRequired?: boolean, + public Invisible?: boolean, + public Invalid?: boolean) { + } + + public ChangeEventHandler() { + // + } +} + + export class LookupEditorField implements EditorField { + constructor(public Name: string, + public Value: string, + public Editor: string, + public Group: string, + public Mapping: string, + public LookupModel: LookupModel, + public Restrict?: string, + public IsRequired?: boolean, + public Invisible?: boolean, + public Invalid?: boolean) { + } + + public ChangeEventHandler() { + // + } + } + + +export interface IFlightInformation { + Value: string; + Name: string; + Editor: string; + Group: string; + Mapping: string; + Restrict?:string; +} + +export interface IFlightInformationGroup { + Name: string; + Display: string; + Icon: string; +} + +export interface IFlightEditor { + Name: string; + Type: string; + Url: string; +} + +export interface IUserAccessModel { + ProfileCode: string; + FunctionDefinition: string; + Enabled: boolean; + Update: boolean; + Add: boolean; + Delete: boolean; + View: boolean; + FuncEnabled: boolean; + FuncPackage: boolean; + FuncProcedure: boolean; + FuncParamaters: boolean; +} + +export interface IFlightInformationService { + getFlight(flight: IFlightDetail, requestId: string): ng.IPromise; + getOperatorUrl(operator: string): string; + getTimeDisplayEnum(flight: IFlightDetail): string; + getTransactionAccess(): ng.IPromise; +} + +@factory(Mod, 'flightInformationService', ['$http', '$q', '$rootScope', 'api']) +export class FlightInformationService implements IFlightInformationService { + constructor(private $http: ng.IHttpService, + private $q: ng.IQService, + private $rootScope: ng.IScope, + private api: any) { + } + public getFlight(flight: IFlightDetail, requestId: string): ng.IPromise { + let def: ng.IDeferred = this.$q.defer(); + this.$http.get(`${this.api.detail}?flightId=${flight.Id}&requestId=${requestId}`).success((data, status) => { + def.resolve(data); + }); + return def.promise; + } + + getOperatorUrl(operator: string): string { + return `${this.api.imageSource}?code=${operator}`; + } + + public getTransactionAccess(): ng.IPromise { + let def: ng.IDeferred = this.$q.defer(); + this.$http.get(this.api.getTransactionsAccess) + .success((data) => { + def.resolve(data); + }); + return def.promise; + } + + getTimeDisplayEnum(flight: IFlightDetail): string { + if (!flight) { + return ''; + } + + if (flight.Actual && flight.Actual !== '' && flight.Actual !== '/Date(-62135596800000)/') { + return 'A'; + } else if (flight.Estimated && flight.Estimated !== '' && flight.Estimated !== '/Date(-62135596800000)/') { + return 'E'; + } + return 'S'; + } +} diff --git a/app/flight-detail/services/prmService.ts b/app/flight-detail/services/prmService.ts new file mode 100644 index 0000000..1b22eb6 --- /dev/null +++ b/app/flight-detail/services/prmService.ts @@ -0,0 +1,35 @@ +import Decorators = require('../../infrastructure/Dectorators/Components'); +import Core = require('../../core/core.mod'); + +export interface IPrmListRequest { + Prms: Array; +} + +export interface IPrmDetail { + Passenger: string; + Remark: string; + Comment: string; + Status: string; +} + +export interface IPrmService { + getPrmList(flightId: string, physFlight: string) : ng.IPromise; +} + +@Decorators.factory(Core.Mod, 'prmService', ['$http', '$q', '$rootScope', 'api']) +export class PrmService implements IPrmService { + constructor(private $http: ng.IHttpService, + private $q: ng.IQService, + private $rootScope: ng.IScope, + private api: any) { + + } + + getPrmList(flightId: string, physFlight: string) : ng.IPromise { + let def: ng.IDeferred = this.$q.defer(); + this.$http.get(`${this.api.prmList}?flightId=${flightId}&physFlight=${physFlight}`).success((data: any, status) => { + def.resolve(data); + }); + return def.promise; + } +} \ No newline at end of file diff --git a/app/flight-detail/services/transactionService.ts b/app/flight-detail/services/transactionService.ts new file mode 100644 index 0000000..cf32bee --- /dev/null +++ b/app/flight-detail/services/transactionService.ts @@ -0,0 +1,141 @@ +import Decorators = require('../../infrastructure/Dectorators/Components'); +import Core = require('../../core/core.mod'); +import {IUpdateResonse} from '../editors/baseEditor'; + +export interface ITransactionListRequest { + Transactions: Array; +} + +export interface ITransactionCodesRequest { + TransactionCodes: Array; +} + +export interface IUpdateResonse { + Success: boolean; + Error: string; +} + +export interface ITransactionConfigRequest { + TransactionConfig: Array; +} + +export interface ITransactionDetail { + PublflightId: string; + PhysflightId: string; + Id: string; + Code:string; + Name:string; + Quantity: number; + Duration: string; + PONumber: string; + StartTime: string; + EndTime:string; + Confirmed: boolean; + Cancelled: boolean; + CodeType: number; + Timestamp: number; +} + +export interface ITransactionConfig { + ColumnName: string; + Index: number; + HeaderText: string; + Justify: string; + Visible: boolean; + Width: number; + Description: string; + Editable: boolean; + Highlight: boolean; + Length: number; +} + +export class TransactionCode { + Name: string; + Code: string; + CodeType: number; +} + +export interface ITransactionService { + getTransactions(flightId: string, physFlight: string): ng.IPromise; + confirmTransaction(transaction: ITransactionDetail); + cancelTransaction(transaction: ITransactionDetail); + createTransaction(transaction: ITransactionDetail); + getTransactionCodes() : ng.IPromise; + getTransactionConfig(flightId: string, physFlight: string) : ng.IPromise; +} + +@Decorators.factory(Core.Mod, 'transactionService', ['$http', '$q', '$rootScope', 'api']) +export class TransactionService implements ITransactionService { + constructor(private $http: ng.IHttpService, + private $q: ng.IQService, + private $rootScope: ng.IScope, + private api: any) { + + } + + private status: string; + private error: string; + + getTransactions(flightId: string, physFlight:string) : ng.IPromise { + let def: ng.IDeferred = this.$q.defer(); + this.$http.get(`${this.api.transactions}?flightId=${flightId}&physFlight=${physFlight}`).success((data: any, status) => { + def.resolve(data); + }); + return def.promise; + } + + getTransactionConfig(flightId: string, physFlight: string) : ng.IPromise { + let def: ng.IDeferred = this.$q.defer(); + this.$http.get(`${this.api.getTransactionConfig}?flightId=${flightId}&physFlight=${physFlight}`).success((data: any, status) => { + def.resolve(data); + }); + return def.promise; + } + + confirmTransaction(transaction: ITransactionDetail) : ng.IPromise { + let def: ng.IDeferred = this.$q.defer(); + this.$http.post(this.api.confirmTransaction, transaction) + .success((response: IUpdateResonse) => { + this.handleUpdateResult(response); + def.resolve(response); + }); + return def.promise; + } + + cancelTransaction(transaction: ITransactionDetail) : ng.IPromise { + let def: ng.IDeferred = this.$q.defer(); + this.$http.post(this.api.cancelTransaction, transaction) + .success((response: IUpdateResonse) => { + this.handleUpdateResult(response); + def.resolve(response); + }); + return def.promise; + } + + createTransaction(transaction: ITransactionDetail) : ng.IPromise { + let def: ng.IDeferred = this.$q.defer(); + this.$http.post(this.api.createTransaction, transaction) + .success((response: IUpdateResonse) => { + def.resolve(response); + }); + return def.promise; + } + + getTransactionCodes() : ng.IPromise { + let def: ng.IDeferred = this.$q.defer(); + this.$http.get(this.api.getTransactionCodes) + .success((data: any) => { + def.resolve(data); + }); + return def.promise; + } + + private handleUpdateResult(response: IUpdateResonse): void { + if ((response && response.Success)) { + this.status = 'S'; + } else { + this.status = 'E'; + this.error = response.Error; + } + } +} \ No newline at end of file diff --git a/app/flight-detail/transactions/transaction-detail.tpl.html b/app/flight-detail/transactions/transaction-detail.tpl.html new file mode 100644 index 0000000..6be32be --- /dev/null +++ b/app/flight-detail/transactions/transaction-detail.tpl.html @@ -0,0 +1,83 @@ + + + + +
+
+ +
+
+ + +
+ +
+ +
+
+ +
+
\ No newline at end of file diff --git a/app/flight-detail/transactions/transaction-detail.ts b/app/flight-detail/transactions/transaction-detail.ts new file mode 100644 index 0000000..4ecf4b2 --- /dev/null +++ b/app/flight-detail/transactions/transaction-detail.ts @@ -0,0 +1,413 @@ +import {controller, directive} from '../../infrastructure/Dectorators/Components'; +import {ITransactionDetail} from '../services/transactionService'; +import {Mod} from './transaction.mod'; +import {IFlightInformation} from '../services/flightInformationService'; +import {IFlightDetail} from '../../core/service/flightService'; +import {ITransactionService, TransactionCode, ITransactionConfig} from '../services/transactionService'; +import * as InformationService from '../services/flightInformationService'; +import {LookupModel, EditorField, LookupEditorField} from '../services/flightInformationService'; + +export interface TransactionDetailParams extends ng.ui.IStateParamsService { + transaction: ITransactionDetail; + flight: IFlightDetail; + tranAccess: InformationService.IUserAccessModel; + columnConfig: Array; +} + +export class TransactionDetail implements ITransactionDetail { + constructor(public PublflightId: string, + public Id: string, + public Code:string, + public Name:string, + public Quantity: number, + public Duration: string, + public PONumber: string, + public StartTime: string, + public EndTime: string, + public PhysflightId: string, + public Confirmed: boolean, + public Cancelled: boolean, + public CodeType: number, + public Timestamp: number) { + } +} + +enum TransactionType { + QuantityOnly = 1, + TimesOnly, + TimeDurationAndQuantity +} + + + export class Editor implements InformationService.IFlightEditor { + constructor(public Name: string, + public Type: string, + public Url:string) { + + } + } + +@controller(Mod, 'transactionDetailController', ['$state', '$scope', '$stateParams', '$ionicPopup', '$rootScope', 'transactionService']) +export class Controller { + public model: ITransactionDetail; + public fields: Array; + public editors: Array; + public columnConfig: Array; + public IsNewAdd: boolean = false; + public flightId: string; + public physFlightId: string; + public lookupModel: LookupModel; + public confirmStatus: string; + public createStatus: string; + public cancelStatus: string; + public editStatus: string; + public selectedTranCode: TransactionCode; + public recalculatingDuration: boolean = false; + public recalculationFromDuration: boolean = false; + + constructor(private $state : ng.ui.IStateService, + private $scope: ng.IScope, + private $stateParams: TransactionDetailParams, + private $ionicPopup: ionic.popup.IonicPopupService, + private $rootScope: ng.IRootScopeService, + private transactionService: ITransactionService) { + this.model = $stateParams.transaction; + this.flightId = $stateParams.flight.Id; + this.physFlightId = $stateParams.flight.PhysFlightId; + if (this.model === null) { + this.initNewModel(); + this.IsNewAdd = true; + } + + this.columnConfig = $stateParams.columnConfig; + if (this.columnConfig === null) { + console.log('failed to get column config'); + } + + this.editors = []; + this.editors.push({Name: 'readonly', Type: 'readonly', Url: ''}); + this.editors.push({Name: 'datetime', Type: 'datetime', Url: ''}); + this.editors.push({Name: 'freetext', Type: 'freetext', Url: ''}); + this.editors.push({Name: 'lookup', Type: 'lookup', Url: '' }) ; + + this.createLookupModel(); + + this.buildFieldsFromModel(); + + if (!this.IsNewAdd) { + var trancode = new TransactionCode(); + trancode.CodeType = this.model.CodeType; + this.runDisplayLogic(trancode, false); + } else { + this.editorFor(this.fields[1]); + } + + } + + private initNewModel() { + this.model = new TransactionDetail(this.flightId, '', '', '', 0, '', '', '', '', this.physFlightId, false, false, 1, 0); + } + + public OnStartTimeChanged = (newValue, oldValue) => { + if (!this.recalculationFromDuration) { + if (oldValue.Value === newValue.Value) { + return; + } + + if (this.fieldByName('EndTime').Value !== '') { + this.recalculatingDuration = true; + this.recalculateDuration(); + } + } + this.recalculationFromDuration = false; + } + + public OnEndTimeChanged = (newValue, oldValue) => { + if (!this.recalculationFromDuration) { + if (oldValue.Value === newValue.Value) { + return; + } + + if (this.fieldByName('StartTime').Value !== '') { + this.recalculatingDuration = true; + this.recalculateDuration(); + } + } + + this.recalculationFromDuration = false; + } + + private recalculateDuration() { + var start = moment(this.fieldByName('StartTime').Value); + var end = moment(this.fieldByName('EndTime').Value); + this.fieldByName('Duration').Value = Math.round(moment.duration(end.diff(start)).asMinutes()).toString(); + } + + public OnDurationChanged = (newValue, oldValue) => { + if (!this.recalculatingDuration) { + if (oldValue.Value === newValue.Value) { + return; + } + + this.recalculationFromDuration = true; + + if (this.fieldByName('StartTime').Value !== '') { + this.recalculateEndTimeFromDurationAndCurrentStartTime(); + } else { + this.recalculateEndTimeFromStartIsNowPlusDuration(); + } + } + this.recalculatingDuration = false; + } + + private recalculateEndTimeFromDurationAndCurrentStartTime() { + var currentStart = moment(this.fieldByName('StartTime').Value); + this.fieldByName('EndTime').Value = currentStart.add(this.fieldByName('Duration').Value, 'minutes').toISOString(); + } + + private recalculateEndTimeFromStartIsNowPlusDuration() { + var startIsNow = moment(new Date()); + this.fieldByName('StartTime').Value = startIsNow.toISOString(); + this.fieldByName('EndTime').Value = startIsNow.add(this.fieldByName('Duration').Value, 'minutes').toISOString(); + } + + private addWatches() { + this.$scope.$watch('vm.fields[4]', this.OnStartTimeChanged, true); + this.$scope.$watch('vm.fields[5]', this.OnEndTimeChanged, true); + this.$scope.$watch('vm.fields[6]', this.OnDurationChanged, true); + } + + private createLookupModel() { + this.lookupModel = new LookupModel(); + this.lookupModel.searchString = ''; + this.lookupModel.resultField = 'Name'; + this.transactionService.getTransactionCodes() + .then((r) => this.onTransactionCodesLoad(r)); + + var self = this; + this.lookupModel.results = []; + + this.lookupModel.onSelected = (selectedTransactionCode: any) => { + self.runDisplayLogic(selectedTransactionCode, true); + self.selectedTranCode = selectedTransactionCode; + }; + + this.lookupModel.search = () => { + this.lookupModel.results = self.lookupModel.lookupList.filter(item => + item.Code.indexOf(self.lookupModel.searchString.toUpperCase()) !== -1 || + item.Name.indexOf(self.lookupModel.searchString.toUpperCase()) !== -1); + }; + } + + private onTransactionCodesLoad(request: any) : void { + this.lookupModel.lookupList = request; + this.lookupModel.results = this.lookupModel.lookupList; + } + + private findCode(value: any, searchStr: string) { + return value.Name === searchStr; + } + + public runDisplayLogic(selectedTransactionCode, notCreatedYet: boolean) { + var trancode = selectedTransactionCode as TransactionCode; + var fields = this.fields as EditorField[]; + + if (notCreatedYet) { + this.resetFields(fields); + fields[0].Value = selectedTransactionCode.Name; + fields[1].Value = selectedTransactionCode.Code; + } + + if (trancode.CodeType === TransactionType.QuantityOnly) { + fields[6].Invisible = true; //duration + fields[4].Invisible = true; //StartTime + fields[5].Invisible = true; //EndTime + } else if (trancode.CodeType === TransactionType.TimesOnly) { + fields[3].Invisible = true; + } + } + + private resetFields(fields: EditorField[]) { + for (var i = 0; i < fields.length; i++) { + fields[i].Invisible = false; + if (fields[i].Editor === 'datetime') { + fields[i].Value = ''; + } else { + fields[i].Value = null; + } + } + } + + private confirmTransaction() { + this.buildModelFromEditorFields(); + this.confirmStatus = 'P'; + this.transactionService.confirmTransaction(this.model) + .then(() => { + this.confirmStatus = 'S'; + this.$state.go('chroma.flight-detail.transaction-list'); + }); + } + + private cancelTransaction() { + this.buildModelFromEditorFields(); + this.cancelStatus = 'P'; + this.transactionService.cancelTransaction(this.model) + .then(() => { + this.cancelStatus = 'S'; + this.$state.go('chroma.flight-detail.transaction-list'); + }); + } + + private buildFieldsFromModel() { + this.fields = []; + + this.fields.push(new EditorField('Name', this.model.Name, 'readonly', '', '', '', true, false)); + this.fields.push(new LookupEditorField('Code', this.model.Code, this.editorOrReadonly('FLGTTRAN_TRANCATG_CODE', 'lookup'), '', '', this.lookupModel, '', true, false)); + this.fields.push(new EditorField('PONumber', this.model.PONumber, this.editorOrReadonly('FLGTTRAN_PO_NUMBER', 'freetext'), '', '', '', true, false)); + this.fields.push(new EditorField('Quantity', this.model.Quantity.toString(), this.editorOrReadonly('FLGTTRAN_QUANTITY', 'freetext'), '', '', '', true, false)); + this.fields.push(new EditorField('StartTime', this.model.StartTime, this.editorOrReadonly('FLGTTRAN_START_DATE_TIME', 'datetime') , '', '', '', true, false)); + this.fields.push(new EditorField('EndTime', this.model.EndTime, this.editorOrReadonly('FLGTTRAN_END_DATE_TIME', 'datetime'), '', '', '', true, false)); + this.fields.push(new EditorField('Duration', this.model.Duration, this.editorOrReadonly('FLGTTRAN_DURATION', 'freetext'), '', '', '', true, false)); + + this.addWatches(); + } + + private editorOrReadonly(fieldName: string, type: string) { + var editable = this.columnAccessByFieldName(fieldName); + if (editable) { + return type; + } + return 'readonly'; + } + + private columnAccessByFieldName(name: string) : boolean { + if (this.IsNewAdd !== true) { + return false; //can't edit fields on modify screen + } + + let col : ITransactionConfig = this.columnConfig.filter(item => item.ColumnName.indexOf(name) !== - 1)[0]; + return col.Editable; + } + + private createTransaction() { + this.buildModelFromEditorFields(); + if (this.formIsValid()) { + this.transactionService.createTransaction(this.model) + .then(() => + this.$state.go('chroma.flight-detail.transaction-list') + ); + } + } + + private formIsValid() : boolean { + let editorFields = this.fields as Array; + var valid = true; + + editorFields.forEach(element => { + if (element.Invisible === false) { + if (!this.validateQuantity(element)) { + valid = false; + } + if (!this.validateTimes(element)) { + valid = false; + } + if (!this.validateTimesAndQuantity(element)) { + valid = false; + } + } + }); + return valid; + } + + private validateQuantity(element: EditorField) : boolean { + if (this.selectedTranCode.CodeType === TransactionType.QuantityOnly || this.selectedTranCode.CodeType === TransactionType.TimeDurationAndQuantity) { + if (element.Name === 'Quantity' && (element.Value === '' || element.Value === null)) { + element.Invalid = true; + return false; + } + } + return true; + } + + private validateTimes(element: EditorField) : boolean { + if (this.selectedTranCode.CodeType === TransactionType.TimesOnly || this.selectedTranCode.CodeType === TransactionType.TimeDurationAndQuantity) { + if ((element.Name === 'StartTime' || element.Name === 'EndTime' || element.Name === 'Duration') + && (element.Value === '' || element.Value === null)) { + element.Invalid = true; + return false; + } + } + return true; + } + + private validateTimesAndQuantity(element: EditorField) : boolean { + if (this.selectedTranCode.CodeType === TransactionType.TimeDurationAndQuantity) { + return this.validateTimes(element) && this.validateQuantity(element); + } + return true; + } + + private buildModelFromEditorFields() { + var publflgt = this.model.PublflightId; + var Id = this.model.Id; + var physFlightId = this.model.PhysflightId; + var timestamp = this.model.Timestamp; + + this.model = new TransactionDetail(publflgt, + Id, + this.fieldByName('Code').Value, + this.fieldByName('Name').Value, + Number(this.fieldByName('Quantity').Value), + this.fieldByName('Duration').Value, + this.fieldByName('PONumber').Value, + this.fieldByName('StartTime').Value, + this.fieldByName('EndTime').Value, + physFlightId, + this.model.Confirmed, + this.model.Cancelled, 1, + timestamp); + } + + private fieldByName(name: string) : IFlightInformation { + let field : IFlightInformation = this.fields.filter(item => item.Name.indexOf(name) !== -1)[0]; + return field; + } + + public editorFor(field: InformationService.IFlightInformation) { + if (field.Editor.toLowerCase() === 'readonly') { return; } + let editor = field.Editor.toLowerCase(); + let modalScope: any = this.$rootScope.$new(); + let editorDefinition: InformationService.IFlightEditor; + + this.editors.forEach(e => { + if (e.Name.toLowerCase() === editor) { + editorDefinition = e; + } + }); + + modalScope.model = this.model; + modalScope.field = field; + modalScope.editor = editorDefinition; + + if (field.Editor.toLowerCase() === 'lookup') { + modalScope.lookupModel = this.lookupModel; + } + + modalScope.instance = this.$ionicPopup.show({ + templateUrl: `app/flight-detail/editors/${editor}/${editor}-holder.tpl.html`, + cssClass: `editor editor-${editor}`, + title: `Update ${field.Name}`, + scope: modalScope + }); + } +} + +@directive(Mod, 'chromaTransactionDetail') +export class Directive implements ng.IDirective { + controller: string = Controller.$componentName; + controllerAs: string = 'vm'; + templateUrl: string = 'app/flight-detail/transactions/transaction-detail.tpl.html'; + restrict: string = 'E'; + replace: boolean = false; + scope: any = true; +} \ No newline at end of file diff --git a/app/flight-detail/transactions/transaction-list.less b/app/flight-detail/transactions/transaction-list.less new file mode 100644 index 0000000..c554d84 --- /dev/null +++ b/app/flight-detail/transactions/transaction-list.less @@ -0,0 +1,105 @@ +.icon-base{ + font-size: 110%; +} + +.icon-status-off{ + .icon-base; + color:lightgrey; +} + +.icon-status-on-green{ + .icon-base; + color:green; +} + +.icon-status-on-red{ + .icon-base; + color: red; +} + +.large-descriptor{ + font-size:15pt; +} + +body { + cursor: url("http://ionicframework.com/img/finger.png"), auto; +} + +button.button-icon.round-overlay-button { + position: absolute; + height: 56px; + width: 56px; + border-radius: 50%; + min-height: 56px; + padding: 0; + border: none; + background-color: #ffc900; + color: white; + box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.16), 0 2px 5px 0 rgba(0, 0, 0, 0.26); + transition: all linear 220ms; + transform: translate3d(0, 0, 0); + backface-visibility: hidden; +} +button.button-icon.round-overlay-button.energized { + background-color: #ffc900; + color: white; +} +button.button-icon.round-overlay-button.energized.activated { + background-color: #b38d00; +} +button.button-icon.round-overlay-button.assertive { + background-color: #567aae; + color: white; +} +button.button-icon.round-overlay-button.assertive.activated { + background-color: #00398a; +} +button.button-icon.round-overlay-button.positive { + background-color: #387ef5; + color: white; +} +button.button-icon.round-overlay-button.positive.activated { + background-color: #0b56d6; +} +button.button-icon.round-overlay-button.stable { + background-color: rgba(0, 0, 0, 0.26); + color: rgba(0, 0, 0, 0.26); +} +button.button-icon.round-overlay-button.stable.activated { + background-color: rgba(0, 0, 0, 0.26); +} +button.button-icon.round-overlay-button.icon:before { + font-size: 24px; +} +button.button-icon.round-overlay-button.small { + height: 40px; + width: 40px; + min-height: 40px; + padding: 0; + border: none; +} +button.button-icon.round-overlay-button.small.icon:before { + line-height: 40px; +} +button.button-icon.round-overlay-button.activated { + opacity: 1; + box-shadow: 0 6px 20px 0 rgba(0, 0, 0, 0.19), 0 8px 17px 0 rgba(0, 0, 0, 0.2); +} +button.button-icon.round-overlay-button.left { + left: 1px; + top: 16px; +} +button.button-icon.round-overlay-button.bottom-edge-right { + bottom: -24px; + right: 150px; + z-index: 12; +} +button.button-icon.round-overlay-button.bottom-right { + bottom: 0; + margin-bottom: 20px; + right: 10px; + z-index: 2; +} +button.button-icon.round-overlay-button.bottom-right.slide-down { + transform: translate3d(0, 88px, 0); +} \ No newline at end of file diff --git a/app/flight-detail/transactions/transaction-list.spec.ts b/app/flight-detail/transactions/transaction-list.spec.ts new file mode 100644 index 0000000..e8673d6 --- /dev/null +++ b/app/flight-detail/transactions/transaction-list.spec.ts @@ -0,0 +1,138 @@ +import {Directive, Controller, TransactionListParams} from './transaction-list' +import {ComponentTest} from '../../infrastructure/ComponentHelper'; +import {Mod as CoreModule} from '../../core/core.mod'; +import FlightDetailModule from '../../flight-detail/flight-detail.mod'; +import {ITransactionDetail} from '../services/transactionService'; +import {IFlightDetail} from '../../core/service/flightService'; + + +class TransactionListTest extends ComponentTest { + public api: any; + public $stateParams: TransactionListParams; + public $state: ng.ui.IStateService; + public transactions: Array; + public ctrl: Controller; + public testModel: IFlightDetail; + public compileString: string = ''; + + constructor(){ + super(Directive.$componentName, 'app/flight-detail/transactions/transaction-list.tpl.html'); + } + + public setup(): void { + this.testModel = { + Id: "123", + Location: undefined, + Operator: undefined, + Number: undefined, + AircraftType: undefined, + Registration: undefined, + Stand: undefined, + Terminal: undefined, + Actual: undefined, + Scheduled: undefined, + Estimated: undefined, + Type: 'D' + } + } + + public buildTransactionList(count: number): void { + this.transactions = []; + + for(let i=0; i < count; i++){ + let iStr = i.toString(); + this.transactions.push({ + Id: iStr, + Code: iStr + iStr + iStr, + Name: 'Transaction' + i, + Duration: '250', + PONumber: 'ZZZZ' + i.toString(), + StartTime: '09:00', + EndTime: '12:4' + iStr, + Quantity: i * i, + Confirmed: true, + Cancelled:false + }); + } + } + + public setupForSuccessfulGet(): void { + this.$stateParams.flightId = '123'; + console.log(this.transactions) + this.buildTransactionList(4); + console.log(this.transactions); + let expectedUrl = this.api.transactions + "?flightId=" + this.$stateParams.flightId; + + this.$httpBackend.expectGET(expectedUrl) + .respond(201, { + Transactions: this.transactions + }); + + this.ctrl = this.compile({model: this.testModel}, this.compileString); + console.log(this.ctrl); + } +} + +describe('Transaction List View Tests', () => { + let instance: TransactionListTest, + core: CoreModule, + flightDetail: FlightDetailModule; + + beforeEach(() => { + if(!instance) { + core = new CoreModule(angular); + flightDetail = new FlightDetailModule(angular); + + angular.mock.module('ui.router'); + angular.mock.module('ionic'); + angular.mock.module('chroma.configuration'); + angular.mock.module(CoreModule.$componentName); + angular.mock.module(FlightDetailModule.$componentName); + + angular.mock.inject((api, $state, $stateParams) => { + instance = new TransactionListTest(); + instance.setup(); + instance.api = api; + instance.$state = $state; + instance.$stateParams = $stateParams; + }); + } + }); + + it('Directive is compiled', () => { + instance.flushOnInit = false; + + instance.setup(); + + instance.ctrl = instance.compile({model: this.testModel}, instance.compileString); + console.log(instance.ctrl); + expect(instance.ctrl).toBeDefined(); + }); + + it('Flight has 4 transactions and 4 transactions are displayed', () => { + console.log(instance); + instance.setupForSuccessfulGet(); + + console.log(instance.ctrl); + + expect(instance.ctrl).toBeDefined(); + expect(instance.ctrl.transactions).toBeDefined(); + expect(instance.ctrl.transactions.length).toEqual(4); + expect(instance.ctrl.transactions).toEqual(instance.transactions); + }); + + it('Transaction Detail shown when transaction pressed', () => { + instance.setupForSuccessfulGet(); + + let firstTran = instance.ctrl.transactions[0]; + + spyOn(instance.$state, "go"); + + instance.ctrl.showTransactionDetail(firstTran); + + expect(instance.$state.go).toHaveBeenCalledWith('chroma.flight-detail.transaction-detail', { + transaction: firstTran + }); + }); +}); + diff --git a/app/flight-detail/transactions/transaction-list.tpl.html b/app/flight-detail/transactions/transaction-list.tpl.html new file mode 100644 index 0000000..9a3ddf8 --- /dev/null +++ b/app/flight-detail/transactions/transaction-list.tpl.html @@ -0,0 +1,69 @@ + + +
+
+ +
+
+ + + + + + + + +
+
+ + {{trn.Name}} + +
+
+
+ + +
+
+
+
+ PONum: {{trn.PONumber}}   +
+
+ Code: {{trn.Code}}   +
+
+ Dur: {{trn.Duration}} +
+
+
+
+
+ Quan: {{trn.Quantity}} +
+
+ Start: {{trn.StartTime}} +
+
+
+
+
+
+
+ End: {{trn.EndTime}} +
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/app/flight-detail/transactions/transaction-list.ts b/app/flight-detail/transactions/transaction-list.ts new file mode 100644 index 0000000..17e9a99 --- /dev/null +++ b/app/flight-detail/transactions/transaction-list.ts @@ -0,0 +1,117 @@ +import {controller, directive} from '../../infrastructure/Dectorators/Components'; +import {Mod} from './transaction.mod'; +import {ITransactionService, ITransactionDetail, ITransactionConfig, ITransactionListRequest} from '../services/transactionService'; +import * as InformationService from '../services/flightInformationService'; +import {IFlightDetail} from '../../core/service/flightService'; + +export interface TransactionListParams extends ng.ui.IStateParamsService { + flightId: string; + transaction:any; + tranAccessModel: InformationService.IUserAccessModel; +} + + +@controller(Mod, 'transactionListController', ['transactionService', '$stateParams', '$state', '$rootScope', 'chromaState']) +export class Controller { + public static NO_TRANSACTIONS = 'This flight has no transactions'; + public transactions: Array; + public message: string; + public request: ITransactionListRequest; + public flightId: string; + public model: IFlightDetail; + public columnConfig: Array; + public signalRInitiated: boolean; + public status: string; + public loading: boolean = true; + + constructor(private transactionService: ITransactionService, + private $stateParams: TransactionListParams, + private $state: ng.ui.IStateService, + private $rootScope: ng.IScope) { + this.load(); + } + + public load() : void { + this.status = 'loadingAddPage'; + this.transactionService.getTransactionConfig(this.model.Id, this.model.PhysFlightId) + .then((colConfig) => { + this.status = 'awaitingAdd'; + this.transactionService.getTransactions(this.model.Id, this.model.PhysFlightId) + .then((transactions) => this.onTransactionsLoad(transactions, colConfig)); + }); + } + + private setupSignalRHandler = () => { + this.$rootScope.$on('recieveHandlingTransactionAdd', (event, args) => { + this.load(); + console.log('transaction received in transaction list view with Id ' + args.message.TransactionId); + }); + + this.$rootScope.$on('recieveHandlingTransactionCancelled', (event, args) => { + if (this.transactions.length > 0) { + var matchedTransaction = this.transactions.filter(item => item.Id.indexOf(args.message.TransactionId) !== -1)[0]; + if (matchedTransaction) { + matchedTransaction.Cancelled = true; + this.load(); + } + } + console.log('transaction cancelled in transaction list view with Id ' + args.message.TransactionId); + }); + } + + + + private onTransactionsLoad(transactions: any, colConfig): void { + this.transactions = transactions; + this.columnConfig = colConfig; + + this.loading = false; + + if (this.signalRInitiated !== true) { + this.setupSignalRHandler(); + this.signalRInitiated = true; + } + + if (!this.transactions || this.transactions.length === 0) { + this.message = Controller.NO_TRANSACTIONS; + } + + } + + public showTransactionDetail(transaction: ITransactionDetail) { + if (this.columnConfig !== null) { + this.$state.go('chroma.flight-detail.transaction-detail', { + transaction: transaction, + tranAccess: this.$stateParams.tranAccessModel, + columnConfig: this.columnConfig + }); + } else { + console.log('columnConfig is null'); + } + } + + public showAddTransaction() { + if (this.columnConfig != null) { + this.$state.go('chroma.flight-detail.transaction-detail', { + transaction: undefined, + tranAccess: this.$stateParams.tranAccessModel, + columnConfig: this.columnConfig + }); + } else { + console.log('columnConfig is null'); + } + } +} + +@directive(Mod, 'chromaTransactionList', ['$stateParams']) +export class Directive implements ng.IDirective { + controller: string = Controller.$componentName; + controllerAs: string = 'vm'; + templateUrl: string = 'app/flight-detail/transactions/transaction-list.tpl.html'; + restrict: string = 'E'; + replace: boolean = false; + bindToController: boolean = true; + scope: any = { + model: '=' + }; +} \ No newline at end of file diff --git a/app/flight-detail/transactions/transaction.config.ts b/app/flight-detail/transactions/transaction.config.ts new file mode 100644 index 0000000..e1edd83 --- /dev/null +++ b/app/flight-detail/transactions/transaction.config.ts @@ -0,0 +1,19 @@ +import {inject} from '../../infrastructure/Dectorators/Components'; + +@inject(['$stateProvider']) +export class Routes { + constructor ($stateProvider: ng.ui.IStateProvider) { + $stateProvider + .state('chroma.flight-detail.transaction-detail', { + url: '/transaction-detail', + params: { + transaction: undefined + }, + views: { + 'detail':{ + template: '' + } + } + }); + } +} \ No newline at end of file diff --git a/app/flight-detail/transactions/transaction.mod.ts b/app/flight-detail/transactions/transaction.mod.ts new file mode 100644 index 0000000..7582a1a --- /dev/null +++ b/app/flight-detail/transactions/transaction.mod.ts @@ -0,0 +1,21 @@ +import Dectorators = require('../../infrastructure/Dectorators/Components'); +import TransactionListComp = require('./transaction-list'); +import TransactionDetailComp = require('./transaction-detail'); +import {TransactionService} from '../services/transactionService'; +import Config = require('./transaction.config'); + +@Dectorators.module('transaction-list') +export class Mod { + constructor (angular: ng.IAngularStatic) { + angular.module(Mod.$componentName, []) + .factory(TransactionService.$componentName, TransactionService.$factory) + + .controller(TransactionListComp.Controller.$componentName, TransactionListComp.Controller) + .directive(TransactionListComp.Directive.$componentName, TransactionListComp.Directive.$factory) + + .controller(TransactionDetailComp.Controller.$componentName, TransactionDetailComp.Controller) + .directive(TransactionDetailComp.Directive.$componentName, TransactionDetailComp.Directive.$factory) + + .config(Config.Routes); + } +} \ No newline at end of file diff --git a/app/flight-list/flight-list.config.ts b/app/flight-list/flight-list.config.ts new file mode 100644 index 0000000..6f7a5b8 --- /dev/null +++ b/app/flight-list/flight-list.config.ts @@ -0,0 +1,16 @@ +import FlightService = require('../core/service/flightService'); + +export class Routes { + static $inject: Array = ['$stateProvider']; + + constructor($stateProvider: ng.ui.IStateProvider) { + $stateProvider.state('chroma.flight-list', { + url: '/flight-list/:filter', + views: { + 'content': { + template: '' + } + } + }); + } +} diff --git a/app/flight-list/flight-list.mod.ts b/app/flight-list/flight-list.mod.ts new file mode 100644 index 0000000..3583f48 --- /dev/null +++ b/app/flight-list/flight-list.mod.ts @@ -0,0 +1,38 @@ +import Dectorators = require('../infrastructure/Dectorators/Components'); +import FlightListComp = require('./list/flight-list'); +import Config = require('./flight-list.config'); + +@Dectorators.module('flight-list') +export class Mod { + constructor(angular: ng.IAngularStatic) { + angular.module(Mod.$componentName, []) + .controller(FlightListComp.Controller.$componentName, FlightListComp.Controller) + .directive(FlightListComp.Directive.$componentName, FlightListComp.Directive.$factory) + .filter('fieldListFilter', () => { + return (items: any, query: any, fields: any) => { + if (items == null || query == null || fields == null) { + return items; + } + + var filtered = []; + var letterMatch = new RegExp(query, 'i'); + + for (var i = 0; i < items.length; i++) { + var item = items[i]; + + for (var j = 0; j < fields.length; j++) { + if (query && query.length > 0) { + if (letterMatch.test(item[fields[j]].substring(0, query.length))) { + filtered.push(item); + } + } else { + filtered.push(item); + } + } + } + return filtered; + }; + }) + .config(Config.Routes); + } +} diff --git a/app/flight-list/list/flight-list.less b/app/flight-list/list/flight-list.less new file mode 100644 index 0000000..cc34fb7 --- /dev/null +++ b/app/flight-list/list/flight-list.less @@ -0,0 +1,88 @@ +@arrivalColor: #f44336; +@departureColor: #1565c0; + +.search-container { + margin-top: 5px; +} + +.search-input { + padding-bottom: 0; +} + +.padding-top { + padding-top: 5px; +} + +.flight-detail { + padding-right: 0; + + &.flight-header { + padding: 10px 0 10px 0 !important; + font-size: 110%; + + img { + top: 14px !important; + left: 10px !important; + max-width: 60px !important; + max-height: 60px !important; + } + } + + img { + top: 14px !important; + left: 10px !important; + max-width: 50px !important; + max-height: 50px !important; + } + + .arrival { + border: 1px solid @arrivalColor; + + .ind-text { + color: @arrivalColor; + small { + font-size: 75%; + } + } + } + + .departure { + border: 1px solid @departureColor; + + .ind-text { + color: @departureColor; + small { + font-size: 75%; + } + } + } + + .descriptor { + font-family: Roboto-Thin; + color: #d2d2d2; + } + + .item { + color: #b6b5b5; + border-color: transparent; + } + + .item { + .row { + padding: 0; + padding-top: 5px; + + .col { + padding: 0; + } + } + } + + .shunt-down-text { + margin-top: 3px; + } +} + +.ionic-refresher-content { + color: #00398a; +} diff --git a/app/flight-list/list/flight-list.spec.ts b/app/flight-list/list/flight-list.spec.ts new file mode 100644 index 0000000..c211336 --- /dev/null +++ b/app/flight-list/list/flight-list.spec.ts @@ -0,0 +1,268 @@ +import {Mod as CoreModule} from '../../core/core.mod'; +import {Mod as FlightListModule} from '../flight-list.mod'; +import FlightDetailModule from '../../flight-detail/flight-detail.mod'; +import {Directive, Controller, FlightListParams} from './flight-list'; +import {IFlightDetail} from './../../core/service/flightService'; +import {ComponentTest} from'../../infrastructure/ComponentHelper'; + +class FlightListTest extends ComponentTest { + public api: any; + public $stateParams: FlightListParams; + public $state: ng.ui.IStateService; + public flights: Array; + public ctrl: Controller; + constructor() { + super(Directive.$componentName, + 'app/flight-list/list/flight-list.tpl.html'); + } + public buildFlights(count: number): void { + this.flights = []; + for (let i = 0; i < count; i++) { + this.flights.push({ + Id: '1', Type: 'A', Operator: 'SK', Number: '0214' + i, AircraftType: '333' + i, + Registration: 'PK-GPE' + i, Location: 'MAN', Scheduled: '09:00', Estimated: + '09:00', Actual: '09:00', Terminal: 'T1', Stand: 'A' + i, FlightConcat: 'SK' + '0214' + i + }); + } + } + public setUpForSuccessfulGet(): void { + this.$stateParams.filter = "default"; + + this.buildFlights(5); + + let expectedUrl = this.api.flightList + "?window=" + this.$stateParams.filter; + + this.$httpBackend.expectGET(expectedUrl) + .respond(201, { Flights: this.flights, RequestId: 'ste1234567' }); + + this.ctrl = this.compile(); + } + + public setUpForNoFlightsGet(): void { + this.$stateParams.filter = "default"; + + let expectedUrl = this.api.flightList + "?window=" + this.$stateParams.filter; + + this.$httpBackend.expectGET(expectedUrl) + .respond(201, { Flights: new Array(), RequestId: 'ste1234567' }); + + this.ctrl = this.compile(); + } +} + +describe('Framework: fieldListFilter', () => { + let $filter: any; + let instance: FlightListTest, + flightList: FlightListModule, + core: CoreModule, + flightDetail: FlightDetailModule; + + beforeEach(() => { + if (!instance) { + core = new CoreModule(angular); + flightList = new FlightListModule(angular); + flightDetail = new FlightDetailModule(angular); + + angular.mock.module('ui.router'); + angular.mock.module('ionic'); + angular.mock.module('chroma.configuration'); + angular.mock.module(CoreModule.$componentName); + angular.mock.module(FlightDetailModule.$componentName); + angular.mock.module(FlightListModule.$componentName); + + angular.mock.inject((_$filter_, $state, $stateParams, api) => { + instance = new FlightListTest(); + $filter = _$filter_; + instance.$state = $state; + instance.$stateParams = $stateParams; + instance.api = api; + }); + } + + }); + + it('Flight Filter: should return flight SK02141 when I search with SK02141', () => { + instance.setUpForSuccessfulGet(); + + instance.buildFlights(5); + + let result = $filter('fieldListFilter')(instance.ctrl.flights, 'SK02141', ['Number', + 'Operator', 'AircraftType', 'Location', 'Terminal', 'Registration', + 'Stand', 'FlightConcat']); + + expect(result.length).toBe(1); + + expect(result[0].FlightConcat).toBe('SK02141'); + + }); + + it('fieldListFilter: filter should be registered', () => { + let result = $filter('fieldListFilter'); + + expect(result).not.toBeUndefined(); + }); + + it('fieldListFilter: empty query string should return all flight results', () => { + instance.buildFlights(5); + + let result = $filter('fieldListFilter')(instance.ctrl.flights, '', ['Number', + 'Operator', 'AircraftType', 'Location', 'Terminal', 'Registration', + 'Stand', 'FlightConcat']); + + expect(instance.ctrl.flights.length).toBe(5); + }); + + it('fieldListFilter: should return flight with stand A1 when I search for A1', () => { + instance.setUpForSuccessfulGet(); + + instance.buildFlights(5); + + let result = $filter('fieldListFilter')(instance.ctrl.flights, 'A1', ['Number', + 'Operator', 'AircraftType', 'Location', 'Terminal', 'Registration', + 'Stand', 'FlightConcat']); + + expect(result.length).toBe(1); + + expect(result[0].Stand).toBe('A1'); + }); + + + it('fieldListFilter: should return flight with aircraft type 331 when I search for 331', () => { + instance.setUpForSuccessfulGet(); + + instance.buildFlights(5); + + let result = $filter('fieldListFilter')(instance.ctrl.flights, '3331', ['Number', + 'Operator', 'AircraftType', 'Location', 'Terminal', 'Registration', + 'Stand', 'FlightConcat']); + + expect(result.length).toBe(1); + + expect(result[0].AircraftType).toBe('3331'); + }); + + it('fieldListFilter: should return flight with registration PK-GPE2 when I search for PK-GPE2', () => { + instance.setUpForSuccessfulGet(); + + instance.buildFlights(5); + + let result = $filter('fieldListFilter')(instance.ctrl.flights, 'PK-GPE2', ['Number', + 'Operator', 'AircraftType', 'Location', 'Terminal', 'Registration', + 'Stand', 'FlightConcat']); + + expect(result.length).toBe(1); + + expect(result[0].Registration).toBe('PK-GPE2'); + }); + + it('fieldListFilter: should return all flights when I search for PK-GPE as they all start with that', () => { + instance.setUpForSuccessfulGet(); + + instance.buildFlights(5); + + let result = $filter('fieldListFilter')(instance.ctrl.flights, 'PK-GPE', ['Number', + 'Operator', 'AircraftType', 'Location', 'Terminal', 'Registration', + 'Stand', 'FlightConcat']); + + expect(result.length).toBe(5); + }); + + it('fieldListFilter: should return all flights when I search T1 as they are all assigned that terminal', () => { + instance.setUpForSuccessfulGet(); + + instance.buildFlights(5); + + let result = $filter('fieldListFilter')(instance.ctrl.flights, 'T1', ['Number', + 'Operator', 'AircraftType', 'Location', 'Terminal', 'Registration', + 'Stand', 'FlightConcat']); + + expect(result.length).toBe(5); + }); +}); + +describe('Flight List View Tests', () => { + let instance: FlightListTest, + core: CoreModule, + flightDetail: FlightDetailModule, + flightList: FlightListModule; + + beforeEach(() => { + if (!instance) { + core = new CoreModule(angular); + flightDetail = new FlightDetailModule(angular); + flightList = new FlightListModule(angular); + + angular.mock.module('ui.router'); + angular.mock.module('ionic'); + angular.mock.module('chroma.configuration'); + angular.mock.module(CoreModule.$componentName); + angular.mock.module(FlightDetailModule.$componentName); + angular.mock.module(FlightListModule.$componentName); + + angular.mock.inject((api, $state, $stateParams) => { + instance = new FlightListTest(); + instance.api = api; + instance.$state = $state; + instance.$stateParams = $stateParams; + }); + } + }); + + it('Filter has 5 flights and 5 flights displayed', () => { + instance.setUpForSuccessfulGet(); + expect(instance.ctrl).toBeDefined(); + expect(instance.ctrl.flights).toBeDefined(); + expect(instance.ctrl.flights.length).toEqual(5); + expect(instance.ctrl.flights).toEqual(instance.flights); + }); + + it('New flight is added when refreshed', () => { + + instance.setUpForSuccessfulGet(); + + var currentCount = instance.ctrl.flights.length; + + instance.buildFlights(6); + + let expectedUrl = instance.api.flightList + "?window=" + instance.$stateParams.filter; + + instance.$httpBackend.expectGET(expectedUrl) + .respond(201, { Flights: instance.flights, RequestId: 'ste1234567' }); + + instance.ctrl.load(false); + + instance.$httpBackend.flush(); + + expect(instance.ctrl.flights.length).toBe(6); + + expect(instance.ctrl.flights.length).toBeGreaterThan(currentCount); + }); + + it('Detail shown when flight pressed', () => { + + let firstFlight = instance.flights[0], + requestId = 'ste1234567'; + + spyOn(instance.$state, "go"); + + instance.ctrl.showDetail(firstFlight); + + expect(instance.$state.go).toHaveBeenCalledWith('chroma.flight-detail', { + id: firstFlight.Id, + flight: firstFlight, + requestId: requestId + }); + + }); + + it('No flights error message displayed', () => { + + instance.setUpForNoFlightsGet(); + + expect(instance.ctrl.flights.length).toBe(0); + + expect(instance.ctrl.message).toBe(Controller.NO_FLIGHTS_MESSAGE); + }); + + +}); diff --git a/app/flight-list/list/flight-list.tpl.html b/app/flight-list/list/flight-list.tpl.html new file mode 100644 index 0000000..307ecf7 --- /dev/null +++ b/app/flight-list/list/flight-list.tpl.html @@ -0,0 +1,66 @@ + + + +
+

+
{{vm.message}}
+ Go back? +

+
+ + +
+
diff --git a/app/flight-list/list/flight-list.ts b/app/flight-list/list/flight-list.ts new file mode 100644 index 0000000..3eb6c32 --- /dev/null +++ b/app/flight-list/list/flight-list.ts @@ -0,0 +1,67 @@ + +import {controller, directive} from '../../infrastructure/Dectorators/Components'; +import {FlightService, IFlightDetail, IFlightListRequest, IFlightService} from '../../core/service/flightService'; +import {IFlightInformationService} from '../../flight-detail/services/flightInformationService'; +import {Mod} from '../flight-list.mod'; + +export interface FlightListParams extends ng.ui.IStateParamsService { + filter: string; +} + +@controller(Mod, 'flightListController', ['flightService', '$stateParams', '$state', '$window', 'flightInformationService']) +export class Controller { + + public static NO_FLIGHTS_MESSAGE = 'This window has no flights'; + + public flights: Array; + public request: IFlightListRequest; + public loading: boolean = true; + public window: string; + public message: string; + + constructor(private flightService: IFlightService, + private $stateParams: FlightListParams, + private $state: ng.ui.IStateService, + private $window: ng.IWindowService, + public flightInformationService: IFlightInformationService) { + this.window = this.$stateParams.filter; + this.$window.sessionStorage.setItem('chroma:current-filter', this.window); + this.load(); + } + public load(initial: boolean = true): void { + if (!initial) { + this.loading = true; + } + + this.flightService.getFilter(this.window, !initial) + .then((r) => this.onFilterLoad(r)); + } + private onFilterLoad(request: any): void { + this.request = request; + + this.flights = request.Flights; + + if (!this.flights || this.flights.length === 0) { + this.message = Controller.NO_FLIGHTS_MESSAGE; + } + + this.loading = false; + } + public showDetail(flight: IFlightDetail): void { + this.$state.go('chroma.flight-detail', { + id: flight.Id, + flight: flight, + requestId: this.request.RequestId + }); + } +} + +@directive(Mod, 'chromaFlightList', ['$stateParams']) +export class Directive implements ng.IDirective { + controller: string = Controller.$componentName; + controllerAs: string = 'vm'; + templateUrl: string = 'app/flight-list/list/flight-list.tpl.html'; + restrict: string = 'E'; + replace: boolean = false; + scope: any = true; +} diff --git a/app/index.html b/app/index.html new file mode 100644 index 0000000..fa7c8be --- /dev/null +++ b/app/index.html @@ -0,0 +1,47 @@ + + + + Chroma AODB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/infrastructure/ComponentHelper.ts b/app/infrastructure/ComponentHelper.ts new file mode 100644 index 0000000..98c177d --- /dev/null +++ b/app/infrastructure/ComponentHelper.ts @@ -0,0 +1,72 @@ +class BaseComponentTest { + public $compile: ng.ICompileService; + public $rootScope: ng.IRootScopeService; + public $httpBackend: ng.IHttpBackendService; + public $templateCache: ng.ITemplateCacheService; + + constructor() { + angular.mock.inject(($compile, $rootScope, $httpBackend, $templateCache) => { + this.$compile = $compile; + this.$rootScope = $rootScope; + this.$httpBackend = $httpBackend; + this.$templateCache = $templateCache; + }); + } +} + + +export class ComponentTest extends BaseComponentTest { + + public templateURL: string; + public componentName: string; + public flushOnInit: boolean; + + constructor(componentName: string, templateURL: string) { + super(); + this.componentName = componentName; + this.templateURL = templateURL; + this.flushOnInit = true; + + this.$httpBackend.expectGET(this.templateURL) + .respond(201, this.$templateCache.get(this.templateURL)); + + } + public compile(args: any = null, customCompileString: string = null): T { + let actCompName = this.componentName.replace(/([a-z])([A-Z])/g, '$1:$2'); + let scope: any = this.$rootScope.$new(); + let dir: any; + if (args) { + console.log(args); + angular.extend(this.$rootScope, args); + + if (customCompileString) { + dir = this.$compile(angular.element(customCompileString))(scope); + } else { + console.log(args); + dir = this.$compile(angular.element(`<${actCompName}>`))(scope); + console.log(dir); + } + + scope.$digest(); + + if (this.flushOnInit) { + this.$httpBackend.flush(); + } + + } else { + dir = this.$compile(angular.element(`<${actCompName}>`))(scope); + scope.$digest(); + if (this.flushOnInit) { + this.$httpBackend.flush(); + } + } + if (dir.controller(this.componentName) === undefined) { + console.log(this.componentName); + console.log(dir); + } else { + console.log(dir); + } + + return dir.controller(this.componentName); + } +} diff --git a/app/infrastructure/Dectorators/Components.ts b/app/infrastructure/Dectorators/Components.ts new file mode 100644 index 0000000..acaf38f --- /dev/null +++ b/app/infrastructure/Dectorators/Components.ts @@ -0,0 +1,88 @@ +function log(text: string) { + let w: any = window; + if (w.debuging) { + console.log(text); + } +} + +export function inject(deps: Array) { + return (obj: any) => { + obj.$inject = deps; + }; +} + +export function module(name: string, dep: Array = []) { + return (obj: any) => { + + let modName = 'chroma.' + name; + + obj.$componentName = modName; + + log(`${modName} registered`); + }; +} + +export function service(mod: any, name: string, dep: Array = []) { + return (obj: any) => { + obj.$inject = dep; + + obj.$componentName = name; + + log(`Service/Provider ${name} registered.`); + }; +} + +export function controller(mod: any, name: string, dep: Array = []) { + + return (obj: any) => { + + obj.$inject = dep; + + obj.$componentName = name; + + log(`Controller ${name} registered.`); + }; +} + +export function factory(mod: any, name: string, dep: Array = []) { + + return (obj: any) => { + + obj.$componentName = name; + + obj.$inject = dep; + + const factory: Function = function(...args: any[]) { + var instance = Object.create(obj.prototype); + instance.constructor.apply(instance, arguments); + return instance; + }; + + factory.$inject = dep; + + obj.$factory = factory; + + log(`Component ${name} registered.`); + }; +} + +export function directive(mod: any, name: string, dep: Array = []) { + return (obj: any) => { + + obj.$componentName = name; + + obj.$inject = dep; + + const factory: Function = function(...args: any[]) { + var instance = Object.create(obj.prototype); + instance.constructor.apply(instance, arguments); + return instance; + }; + + factory.$inject = dep; + + obj.$factory = factory; + + log(`Component ${name} registered.`); + }; +} diff --git a/app/site-selection/service/site-selection.service.ts b/app/site-selection/service/site-selection.service.ts new file mode 100644 index 0000000..2fbb167 --- /dev/null +++ b/app/site-selection/service/site-selection.service.ts @@ -0,0 +1,45 @@ +import {factory} from '../../infrastructure/Dectorators/Components'; +import {Mod} from '../../core/core.mod'; + +export interface ISite { + siteId: string; + siteName: string; +} + +export interface ISiteReponseData { + error: string; +} + +export interface ISiteSelectionService { + setSite(siteId: number): ng.IPromise; + getSitesFromStorage(): Array; + storeAvailableSites(sites: Array); +} + +@factory(Mod, 'siteSelectionService', ['$http', '$q', '$window', 'api']) +export class SiteSelectionService implements ISiteSelectionService { + constructor(private $http: ng.IHttpService, + private $q: ng.IQService, + private $window: ng.IWindowService, + private api: any) { + + } + + public setSite(siteId: number): ng.IPromise { + var data = { SelectedSiteId: siteId }; + return this.$http.post(this.api.setSite, data) + .then((response: ng.IHttpPromiseCallbackArg) => { + if (response.data) { + return response.data; + } + }); + } + + public getSitesFromStorage(): Array { + return >JSON.parse(this.$window.sessionStorage.getItem('chroma:site-list')); + } + + public storeAvailableSites(sites: Array) { + this.$window.sessionStorage.setItem('chroma:site-list', JSON.stringify(sites)); + } +} diff --git a/app/site-selection/site-selection.config.ts b/app/site-selection/site-selection.config.ts new file mode 100644 index 0000000..62b5078 --- /dev/null +++ b/app/site-selection/site-selection.config.ts @@ -0,0 +1,14 @@ +export class Routes { + static $inject: Array = ['$stateProvider']; + + constructor($stateProvider: ng.ui.IStateProvider) { + $stateProvider.state('chroma.site-selection', { + url: '/site-selection', + views: { + 'content': { + template: '' + } + } + }); + } +} diff --git a/app/site-selection/site-selection.mod.ts b/app/site-selection/site-selection.mod.ts new file mode 100644 index 0000000..82ba01f --- /dev/null +++ b/app/site-selection/site-selection.mod.ts @@ -0,0 +1,15 @@ +import {module} from '../infrastructure/Dectorators/Components'; +import Config = require('./site-selection.config'); +import SiteSelectionComp = require('./view/site-selection'); +import{SiteSelectionService} from './service/site-selection.service'; + +@module('site-selection') +export class Mod { + constructor(angular: ng.IAngularStatic) { + angular.module(Mod.$componentName, []) + .controller(SiteSelectionComp.Controller.$componentName, SiteSelectionComp.Controller) + .directive(SiteSelectionComp.Directive.$componentName, SiteSelectionComp.Directive.$factory) + .factory(SiteSelectionService.$componentName, SiteSelectionService.$factory) + .config(Config.Routes); + } +} diff --git a/app/site-selection/view/site-selection.spec.ts b/app/site-selection/view/site-selection.spec.ts new file mode 100644 index 0000000..47e8604 --- /dev/null +++ b/app/site-selection/view/site-selection.spec.ts @@ -0,0 +1,101 @@ +import {Mod as CoreModule} from '../../core/core.mod'; +import {Mod as SiteSelectionMod} from '../site-selection.mod'; +import {ComponentTest} from '../../infrastructure/ComponentHelper'; +import {Directive, Controller} from './site-selection'; +import {SiteSelectionService} from '../service/site-selection.service'; +import {Mod as FlightListMod} from '../../flight-list/flight-list.mod'; +import {Mod as WindowListMod} from '../../window-list/window-list.mod'; + + +class SiteSelectionTest extends ComponentTest { + public api: any; + public $state: ng.ui.IStateService; + public siteSelectionService: SiteSelectionService; + + constructor() { + super(Directive.$componentName, + 'app/site-selection/view/site-selection.tpl.html'); + } +} + +describe('Site selection view Tests', () => { + let instance: SiteSelectionTest, + core: CoreModule, + siteSelection: SiteSelectionMod, + flightList: FlightListMod, + windowList: WindowListMod; + + let ctrl: Controller; + + beforeEach(() => { + if (!instance) { + angular.mock.module('ui.router'); + angular.mock.module('ionic'); + angular.mock.module('chroma.configuration'); + angular.mock.module(CoreModule.$componentName); + angular.mock.module(SiteSelectionMod.$componentName); + angular.mock.module(FlightListMod.$componentName); + angular.mock.module(WindowListMod.$componentName); + + core = new CoreModule(angular); + siteSelection = new SiteSelectionMod(angular); + flightList = new FlightListMod(angular); + windowList = new WindowListMod(angular); + + angular.mock.inject((api, $state, siteSelectionService) => { + instance = new SiteSelectionTest(); + instance.api = api; + instance.$state = $state; + instance.siteSelectionService = siteSelectionService; + }); + } + }); + + it('Directive is compiled', () => { + instance.flushOnInit = true; + ctrl = instance.compile(); + expect(ctrl).toBeDefined(); + }); + + it('There are 4 sites to select therefore 4 are displayed', () => { + //GIVEN I have acess to 4 sites + spyOn(instance.siteSelectionService, 'getSitesFromStorage').and.returnValue( + [{ SiteName: 'testSite1', SiteId: '1', IATACode: 'TES' }, + { SiteName: 'testSite2', SiteId: '2', IATACode: 'TEZ' }, + { SiteName: 'testSite3', SiteId: '3', IATACode: 'TEZ3' }, + { SiteName: 'testSite4', SiteId: '4', IATACode: 'TEZ4' }] + ); + //WHEN I am asked to select a site + instance.flushOnInit = false; + ctrl = instance.compile(); + //THEN I should have 4 sites to chose from + expect(ctrl.sites.length).toEqual(4); + }); + + it('Site is sucessfully selected flight list should be loaded', () => { + instance.flushOnInit = false; + ctrl = instance.compile(); + instance.$httpBackend.whenPOST(instance.api.setSite).respond(200, { + Data: { + Error: false, + } + }); + spyOn(instance.$state, 'go').and.callThrough(); + ctrl.setSite(23); + instance.$httpBackend.flush(); + expect(instance.$state.go).toHaveBeenCalledWith('chroma.window-list'); + }); + + it('Site selection is not Successful error should be displayed', () => { + instance.flushOnInit = false; + ctrl = instance.compile(); + instance.$httpBackend.expectPOST(instance.api.setSite).respond(200, { + Data: { + Error: true, + } + }); + ctrl.setSite(23); + instance.$httpBackend.flush(); + expect(ctrl.error).toBe('problem selecting site'); + }); +}); diff --git a/app/site-selection/view/site-selection.tpl.html b/app/site-selection/view/site-selection.tpl.html new file mode 100644 index 0000000..f8ebe6f --- /dev/null +++ b/app/site-selection/view/site-selection.tpl.html @@ -0,0 +1,18 @@ + + +
+
+ +
+
+ + + +
+ {{site.SiteName}} +
+
+
+
+
+
diff --git a/app/site-selection/view/site-selection.ts b/app/site-selection/view/site-selection.ts new file mode 100644 index 0000000..21ab8e4 --- /dev/null +++ b/app/site-selection/view/site-selection.ts @@ -0,0 +1,35 @@ +import {controller, directive} from '../../infrastructure/Dectorators/Components'; +import {Mod} from '../site-selection.mod'; +import {SiteSelectionService, ISiteSelectionService, ISite} from '../service/site-selection.service'; + + +@controller(Mod, 'siteSelectionController', ['siteSelectionService', '$state']) +export class Controller { + public sites: Array; + public error: string; + + constructor(private siteSelectionService: ISiteSelectionService, + private $state: ng.ui.IStateService) { + this.sites = siteSelectionService.getSitesFromStorage(); + } + + public setSite(siteId: number) { + this.siteSelectionService.setSite(siteId).then((response: any) => { + if (response.Data.Error) { + this.error = 'problem selecting site'; + } else { + this.$state.go('chroma.window-list'); + } + }); + } +} + +@directive(Mod, 'chromaSiteSelection') +export class Directive implements ng.IDirective { + controller: string = Controller.$componentName; + controllerAs: string = 'vm'; + templateUrl: string = 'app/site-selection/view/site-selection.tpl.html'; + restring: string = 'E'; + replace: boolean = false; + scope: any = true; +} diff --git a/app/window-list/list/window-list.spec.ts b/app/window-list/list/window-list.spec.ts new file mode 100644 index 0000000..4a7ea54 --- /dev/null +++ b/app/window-list/list/window-list.spec.ts @@ -0,0 +1,84 @@ +import {Mod as CoreModule} from '../../core/core.mod'; +import {Mod as WindowListMod} from '../window-list.mod'; +import {ComponentTest} from '../../infrastructure/ComponentHelper'; +import {Directive, Controller, IFlightWindow} from './window-list'; + + +class WindowListTest extends ComponentTest { + public api: any; + public $state: ng.ui.IStateService; + constructor() { + super(Directive.$componentName, 'app/window-list/list/window-list.tpl.html'); + } +} + +describe('Window list view Tests', () => { + let instance: WindowListTest, + core: CoreModule, + windowList: WindowListMod, + ctrl: Controller; + + beforeEach(() => { + if (!instance) { + angular.mock.module('ui.router'); + angular.mock.module('ionic'); + angular.mock.module('chroma.configuration'); + angular.mock.module(CoreModule.$componentName); + angular.mock.module(WindowListMod.$componentName); + core = new CoreModule(angular); + windowList = new WindowListMod(angular); + angular.mock.inject((api, $state) => { + instance = new WindowListTest(); + instance.api = api; + instance.$state = $state; + }); + } + }); + + it('Directive is compiled', () => { + instance.$httpBackend.expectGET(instance.api.getWindows).respond(200, []); + ctrl = instance.compile(); + expect(ctrl).toBeDefined(); + expect(ctrl.windows).toBeDefined(); + expect(ctrl.windows.length).toBe(0); + }); + + it('2 Windows are displayed and reversed', () => { + + let windows: Array = [{ Name: '1' }, { Name: '2' }]; + + instance.$httpBackend.expectGET(instance.api.getWindows).respond(200, windows); + + ctrl = instance.compile(); + + expect(ctrl.windows.length).toBe(2) + + expect(ctrl.windows[0].Name).toBe('2'); + }) + + it('2 Windows are displayed and reversed', () => { + + let windows: Array = [{ Name: '1' }, { Name: '2' }]; + + instance.$httpBackend.expectGET(instance.api.getWindows).respond(200, windows); + + ctrl = instance.compile(); + + expect(ctrl.windows.length).toBe(2) + + expect(ctrl.windows[0].Name).toBe('2'); + }) + + it('Flight list state is called on goToWindow', () => { + + spyOn(instance.$state, 'go').and.returnValue(false); + + instance.$httpBackend.expectGET(instance.api.getWindows).respond(200, []); + + ctrl = instance.compile(); + + ctrl.goToWindow({Name : 'test-123'}); + + expect(instance.$state.go).toHaveBeenCalledWith('chroma.flight-list', {filter : 'test-123'}); + }) +}); diff --git a/app/window-list/list/window-list.tpl.html b/app/window-list/list/window-list.tpl.html new file mode 100644 index 0000000..25acca8 --- /dev/null +++ b/app/window-list/list/window-list.tpl.html @@ -0,0 +1,33 @@ + + +
+
+ +
+
+ + + +
+
+ {{window.Name}} +
+ +
+
+
+ +
+ Chroma default flight filter +
+ + {{window.Description}} +
+ {{window.Type}} +
+
+
+
+
+
+
diff --git a/app/window-list/list/window-list.ts b/app/window-list/list/window-list.ts new file mode 100644 index 0000000..d4c3595 --- /dev/null +++ b/app/window-list/list/window-list.ts @@ -0,0 +1,44 @@ +import {controller, directive} from '../../infrastructure/Dectorators/Components'; +import {Mod} from '../window-list.mod'; +import {ISignalrService} from '../../core/service/signalRService'; + +export interface IFlightWindow { + Name: string; +} + +@controller(Mod, 'windowListController', ['signalrService', '$rootScope', '$http', '$state', '$window', 'api']) +export class Controller { + public loading: boolean; + public currentWindow:string; + public windows: Array; + + constructor( private signalrService: ISignalrService, + private $rootScope: ng.IScope, + private $http: ng.IHttpService, + private $state: ng.ui.IStateService, + private $window: ng.IWindowService, + private api: any) { + this.currentWindow = $window.sessionStorage.getItem('chroma:current-filter'); + this.$http.get(api.getWindows).success((response: Array) => { + this.windows = response.reverse(); + }); + } + public goToWindow(window: IFlightWindow): void { + this.signalrService.start($, this.signalRCallback, this.$rootScope); + this.$state.go('chroma.flight-list', { filter: window.Name }); + } + + public signalRCallback(event: string, scope: any, message: any) { + scope.$broadcast(event, {message: message}); + } +} + +@directive(Mod, 'chromaWindowList') +export class Directive implements ng.IDirective { + controller: string = Controller.$componentName; + controllerAs: string = 'vm'; + templateUrl: string = 'app/window-list/list/window-list.tpl.html'; + restring: string = 'E'; + replace: boolean = false; + scope: any = true; +} diff --git a/app/window-list/window-list.mod.ts b/app/window-list/window-list.mod.ts new file mode 100644 index 0000000..3fdf336 --- /dev/null +++ b/app/window-list/window-list.mod.ts @@ -0,0 +1,21 @@ +import {module} from '../infrastructure/Dectorators/Components'; +import {Controller, Directive} from './list/window-list'; + +@module('window-list') +export class Mod { + constructor(angular: ng.IAngularStatic) { + angular.module(Mod.$componentName, []) + .controller(Controller.$componentName, Controller) + .directive(Directive.$componentName, Directive.$factory) + .config(($stateProvider: ng.ui.IStateProvider) => { + $stateProvider.state('chroma.window-list', { + url: '/window-list', + views: { + 'content': { + template: '' + } + } + }); + }); + } +} diff --git a/bower.json b/bower.json new file mode 100644 index 0000000..a42c08d --- /dev/null +++ b/bower.json @@ -0,0 +1,29 @@ +{ + "name": "chroma.cordova", + "version": "0.0.0", + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ], + "dependencies": { + "angular": "~1.3.15", + "angular-ui-router": "~0.2.13", + "angular-animate": "~1.3.15", + "angular-mocks": "~1.3.15", + "jasmine-jquery": "~2.1.0", + "angular-resource": "*", + "moment": "*" + }, + "resolutions": { + "angular": ">=1.3.8" + }, + "devDependencies": { + "ionic-service-core": "~0.1.10", + "ngCordova": "~0.1.20-alpha", + "ionic-service-push": "~0.1.13" + } +} diff --git a/build.json b/build.json new file mode 100644 index 0000000..5628062 --- /dev/null +++ b/build.json @@ -0,0 +1,14 @@ +{ + "ios": { + "debug": { + "developmentTeam":"DA3XCEKC7Z", + "provisioningProfile" : "1a1555b1-8483-466e-abd4-1822170b5a4c" + + }, + "release": { + "developmentTeam":"DA3XCEKC7Z", + "provisioningProfile" : "1a1555b1-8483-466e-abd4-1822170b5a4c" + + } + } +} diff --git a/build/configuration/ConfigTransform.ps1 b/build/configuration/ConfigTransform.ps1 new file mode 100644 index 0000000..11ec539 --- /dev/null +++ b/build/configuration/ConfigTransform.ps1 @@ -0,0 +1,6 @@ +param( + [String] $APIURL = "" +) + + +(get-content app.config.js.token).Replace('__APIURL__', $APIURL) | set-content app.config.js \ No newline at end of file diff --git a/build/configuration/app.config.js b/build/configuration/app.config.js new file mode 100644 index 0000000..b24750a --- /dev/null +++ b/build/configuration/app.config.js @@ -0,0 +1,49 @@ + +var base = "http://10.14.64.82:89"; + +angular.module('chroma.configuration', []).constant('api', { + + //STE OATES MACHINE + // endpoint: 'http://10.14.30.91/api/',l + // flightList: 'http://10.14.30.91/api/flights', + // authentication: 'http://10.14.30.91/api/auth', + // detail: 'http://10.14.30.91/api/detail/', + // imageSource: 'http://10.14.30.91/api/GetOperatorImage', + // setSite: 'http://10.14.30.91/api/setSite', + // getWindows: 'http://10.14.30.91/api/getWindows' + + //JAMES DILCOCK MACHINE + endpoint: base + '/api/', + flightList: base + '/api/flights', + authentication: base +'/api/auth', + detail: base + '/api/detail/', + imageSource: base + '/api/GletOperatorImage', + setSite: base + '/api/setSite', + getWindows: base + '/api/getWindows', + transactions: base + '/api/transactions', + cancelTransaction: base + '/api/cancelTransaction', + confirmTransaction: base + '/api/confirmTransaction', + createTransaction: base + '/api/createTransaction', + getTransactionCodes: base + '/api/getTransactionCodes', + getTransactionsAccess: base + '/api/getUserAccessRightsForTransaction', + getTransactionConfig: base + '/api/getTransactionConfig', + signalrHubs: base + '/signalr/hubs' + + //TESTING MACHINE +// endpoint: 'http://t-t-v-chrapp14:81/api/', +// flightList: 'http://t-t-v-chrapp14:81/api/flights', +// authentication: 'http://t-t-v-chrapp14:81/api/auth', +// detail: 'http://t-t-v-chrapp14:81/api/detail/', +// imageSource: 'http://t-t-v-chrapp14:81/api/GetOperatorImage', +// setSite: 'http://t-t-v-chrapp14:81/api/setSite', +// getWindows: 'http://t-t-v-chrapp14:81/api/getWindows' + + //ADE CLOUD CHROMA END POINT + //endpoint: 'http://chromademo.cloudapp.net:81/api/', + //flightList: 'http://chromademo.cloudapp.net:81/api/flights', + //authentication: 'http://chromademo.cloudapp.net:81/api/auth', + //detail: 'http://chromademo.cloudapp.net:81/api/detail/', + //imageSource: 'http://chromademo.cloudapp.net:81/api/GetOperatorImage', + //setSite: 'http://chromademo.cloudapp.net:81/api/setSite', + //getWindows: 'http://chromademo.cloudapp.net:81/api/getWindows' +}); diff --git a/build/configuration/app.config.js.token b/build/configuration/app.config.js.token new file mode 100644 index 0000000..1200702 --- /dev/null +++ b/build/configuration/app.config.js.token @@ -0,0 +1,17 @@ +angular.module('chroma.configuration', []).constant('api', { + endpoint: 'http://__APIURL__/api/', + flightList: 'http://__APIURL__/api/flights/', + authentication: 'http://__APIURL__/api/auth', + detail: 'http://__APIURL__/api/detail/', + imageSource :'http://__APIURL__/api/GetOperatorImage', + setSite: 'http://__APIURL__/api/setSite', + getWindows: 'http://__APIURL__/api/getWindows', + transactions: 'http://__APIURL__/api/transactions', + cancelTransaction: 'http://__APIURL__/api/cancelTransaction', + confirmTransaction: 'http://__APIURL__/api/confirmTransaction', + createTransaction: 'http://__APIURL__/api/createTransaction', + getTransactionCodes: 'http://__APIURL__/api/getTransactionCodes', + getTransactionsAccess: 'http://__APIURL__/api/getUserAccessRightsForTransaction', + getTransactionConfig: 'http://__APIURL__/api/getTransactionConfig', + signalrHubs: 'http://__APIURL__/signalr/hubs' +}); \ No newline at end of file diff --git a/build/fastlane/Appfile b/build/fastlane/Appfile new file mode 100644 index 0000000..6d2f7e1 --- /dev/null +++ b/build/fastlane/Appfile @@ -0,0 +1,7 @@ +app_identifier "com.lmco.chroma" # The bundle identifier of your app +apple_id "MobileAppsTeam@leidos.com" # Your Apple email address + +team_id "DA3XCEKC7Z" # Developer Portal Team ID + +# you can even provide different app identifiers, Apple IDs and team names per lane: +# More information: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Appfile.md \ No newline at end of file diff --git a/build/fastlane/Fastlane b/build/fastlane/Fastlane new file mode 100644 index 0000000..7c054dc --- /dev/null +++ b/build/fastlane/Fastlane @@ -0,0 +1,68 @@ +# Shamelessly taken from here: https://github.com/xinbenlv/rent.zzn.im/tree/master/haoshiyou/fastlane +# A fastlane file, see https://fastlane.tools/ for reference + +# Update fastlane automatically if a new version is available: +update_fastlane + +fastlane_version "1.106.2" + +ios_project_path = "platforms/ios/haoshiyou.xcodeproj" + +before_all do + ENV["SLACK_URL"] = + "https://hooks.slack.com/services/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" +end + +private_lane :increment_version do + sh("node scripts/increment_build_number.js") +end + + +desc "Do a new iOS build using ionic." +private_lane :ionic_ios_build do + sh("ionic build ios --release") +endl + +desc "Do a new iOS deploy using sigh and gym" +private_lane :ios_deploy do + sigh + gym( + scheme: "haoshiyou", + project: ios_project_path) +end + +desc "Do a new iOS upload to iTunes Connect using deliver." +private_lane :ios_upload do + deliver(force: true) + slack(message: "Successfully deployed to iTunes Connect at Version " + + "#{get_version_number(xcodeproj:ios_project_path)}.") +end + + +platform :ios do + desc "Deploy a new version to the App Store/" + lane :deploy do + increment_version + ionic_ios_build + ios_deploy + ios_upload + end +end + + +desc "Deploy to all platforms." +lane :deploy_all do |options| + increment_version + + ionic_ios_build + + ios_deploy + + ios_upload +end + +# TODO(zzn): +# - 1. add deployment for web +# - 2. merge web flow into deploy_all +# - 3. add other workflows: test, pilot, prod +# - 4. add support "dev" scheme \ No newline at end of file diff --git a/build/fastlane/fastlane.old b/build/fastlane/fastlane.old new file mode 100644 index 0000000..d40c4e0 --- /dev/null +++ b/build/fastlane/fastlane.old @@ -0,0 +1,108 @@ +# A fastlane file, see https://fastlane.tools/ for reference + +# Update fastlane automatically if a new version is available: +update_fastlane + +fastlane_version "1.106.2" + +ios_project_path = "platforms/ios/haoshiyou.xcodeproj" +android_release_path = "releases/haoshiyou-android-release.apk" + +before_all do + ENV["SLACK_URL"] = + "https://hooks.slack.com/services/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" +end + +private_lane :increment_version do + sh("node scripts/increment_build_number.js") +end + + +desc "Do a new iOS build using ionic." +private_lane :ionic_ios_build do + sh("ionic build ios --release") +end + +desc "Do a new iOS deploy using sigh and gym" +private_lane :ios_deploy do + sigh + gym( + scheme: "haoshiyou", + project: ios_project_path) +end + +desc "Do a new iOS upload to iTunes Connect using deliver." +private_lane :ios_upload do + deliver(force: true) + slack(message: "Successfully deployed to iTunes Connect at Version " + + "#{get_version_number(xcodeproj:ios_project_path)}.") +end + +desc "Do a new Android build" +private_lane :ionic_android_build do + sh("ionic build android --release") +end + +desc "Do a new Android deploy using jarsigner and zipaliagn." +private_lane :android_deploy do |options| + sh("cd .. && jarsigner -verbose " + + "-storepass #{options[:storepass]} " + + "-sigalg SHA1withRSA -digestalg SHA1 " + + "-keystore fastlane/release-cred/haoshiyou-android.keystore " + + "platforms/android/build/outputs/apk/android-release-unsigned.apk alias_name") + + sh("cd .. && ${HOME}/Library/Android/sdk/build-tools/23.0.3/zipalign -f " + + "-v 4 platforms/android/build/outputs/apk/android-release-unsigned.apk " + + android_release_path) +end + +desc "Do a new Android upload to Google Play Console using supply." +private_lane :android_upload do + supply( + track: "alpha", + apk: android_release_path, + json_key: "fastlane/release-cred/haoshiyou-play-release-manager-credentials.json", + package_name: "org.haoshiyou.app" + ) + slack(message: "Successfully deployed to Google Play.") # TODO(xinbenlv): add version +end + +platform :ios do + desc "Deploy a new version to the App Store/" + lane :deploy do + increment_version + ionic_ios_build + ios_deploy + ios_upload + end +end + +platform :android do + desc "Deploy a new version to the Google Play Store." + lane :deploy do |options| + increment_version + ionic_android_build + android_deploy(options) + android_upload + end +end + +desc "Deploy to all platforms." +lane :deploy_all do |options| + increment_version + + ionic_android_build + ionic_ios_build + + android_deploy(options) + ios_deploy + + ios_upload + android_upload +end + +# TODO(zzn): +# - 1. add deployment for web +# - 2. merge web flow into deploy_all +# - 3. add other workflows: test, pilot, prod +# - 4. add support "dev" scheme \ No newline at end of file diff --git a/build/gulp.config.js b/build/gulp.config.js new file mode 100644 index 0000000..66fa276 --- /dev/null +++ b/build/gulp.config.js @@ -0,0 +1,110 @@ +module.exports = function () { + var argv = require('yargs').argv; + var build = argv.build || 'Test'; + var root = './'; + var clientApp = root + 'app/'; + var reportDir = root + 'report/'; + + var config = { + buildName: build, + sourceApp: './app/', + allInfrastructure: './app/infrastructure/**/*.ts', + allModules: './app/**/*.mod.ts', + allRoutes: './app/**/*.routes.ts', + allInterceptors: './app/**/*.interceptor.ts', + allRun: './app/**/*.run.ts', + allTypescript: './app/**/*.ts', + allTemplates: './app/**/*.tpl.html', + allHtml: './app/**/*.html', + allLess: './app/**/*.less', + allTypings: './tooling/typings/**/*.d.ts', + allFiles: './app/**', + exludeTestFiles: '!./app/**/*.spec.ts', + excludeE2ETestFiles: '!./app/**/*.e2e.js', + allOutput: './www/**/*', + allOutputJavascript: './www/**/*.js', + allOutputMinCss: './www/**/*.min.css', + allOutputCss: './www/**/*.css', + ignoreAllMinCss: '!./www/**/*.min.css', + ignoreJavascriptLib: '!**/lib/**/**', + e2eSpecs: './**/*.e2e.js', + configurationFile: './build/configuration/app.config.js', + configurationTokenFile: './build/configuration/app.config.js.token', + requiredJavascript: [ + './node_modules/local-chromaux/dist/lib/ionic/js/ionic.bundle.js', + './bower_components/jquery/dist/jquery.js', + './bower_components/jasmine-jquery/lib/jasmine-jquery.js', + './bower_components/angular-mocks/angular-mocks.js', + './node_modules/angular-cookies/angular-cookies.js', + './bower_components/angular-animate/angular-animate.js', + './bower_components/angular-ui-router/release/angular-ui-router.js', + './bower_components/moment/moment.js', + './node_modules/local-chromaux/dist/js/*.js', + './node_modules/systemjs/dist/system.js', + './angular-ios9-uiwebview.patch.js', + './lib/jquery.signalR-2.2.1.js', + './lib/push.js' + ], + requiredJavascriptDest: './www/scripts/lib', + requiredCSS: [ + './bower_components/bootstrap/dist/css/bootstrap.css', + './ionic/css/ionic.css', + './node_modules/local-chromaux/dist/css/*.css', + './node_modules/local-chromaux/dist/lib/ionic/css/*.css' + ], + requiredFonts: [ + './node_modules/local-chromaux/dist/fonts/*.*', + './node_modules/local-chromaux/dist/lib/ionic/fonts/*.*' + ], + requiredCSSDest: './www/css/lib', + root: root, + reportDir: reportDir, + /** + * plato + */ + plato: { + js: clientApp + '**/*.js' + }, + }; + + /** + * karma settings + */ + config.karma = getKarmaOptions(); + + return config; + + function getKarmaOptions() { + var options = { + files: [ + './bower_components/moment/moment.js', + './bower_components/angular/angular.js', + './bower_components/jquery/dist/jquery.js', + './node_modules/local-chromaux/dist/lib/ionic/js/ionic.bundle.js', + './node_modules/angular-cookies/angular-cookies.js', + './bower_components/angular-mocks/angular-mocks.js', + './www/scripts/lib/chroma-framework.js', + './www/scripts/chroma.templates.compiled.js', + './build/configuration/app.config.js', + './tests/compiled/lib/moment.js', + './tests/compiled/!(lib)/**/*.js' + ], + exclude: ['./tests/compiled/lib'], + coverage: { + dir: reportDir + 'coverage', + reporters: [{ + type: 'html', + subdir: 'report-html' + }, { + type: 'text-summary' + + }, + { type: 'lcov', subdir: 'report-lcov' }, ] + }, + preprocessors: {} + }; + options.preprocessors['./tests/compiled/!(lib)/**/!(*.spec)*.js'] = ['coverage']; + return options; + } + +}; diff --git a/build/gulp/add-hockeyapp.js b/build/gulp/add-hockeyapp.js new file mode 100644 index 0000000..48abddb --- /dev/null +++ b/build/gulp/add-hockeyapp.js @@ -0,0 +1,15 @@ +/** + * Created by martin on 10/31/16. + */ +var gulp = require('gulp'); +var exec = require('child_process').exec; + +module.exports = gulp.task('add-hockeyapp', function() { + + exec('cordova plugin add cordova-plugin-hockeyapp@latest', function (err, stdout, stderr) { + console.log(stdout); + console.log(stderr); + }); + + +}); diff --git a/build/gulp/add-pushnotifications.js b/build/gulp/add-pushnotifications.js new file mode 100644 index 0000000..ef57567 --- /dev/null +++ b/build/gulp/add-pushnotifications.js @@ -0,0 +1,14 @@ +/** + * Created by martin on 10/31/16. + */ +var gulp = require('gulp'); +var exec = require('child_process').exec; + +module.exports = gulp.task('add-pushnotifications', function() { + + exec('cordova plugin add phonegap-plugin-push --variable SENDER_ID=194436060542', function (err, stdout, stderr) { + console.log(stdout); + console.log(stderr); + }); + +}); diff --git a/build/gulp/compile-js.js b/build/gulp/compile-js.js new file mode 100644 index 0000000..3696353 --- /dev/null +++ b/build/gulp/compile-js.js @@ -0,0 +1,32 @@ + +var gulp = require('gulp'), + config = require('../gulp.config')(), + tsc = require('gulp-typescript'), + tsProject = tsc.createProject('./tsconfig.json'), + tslint = require('gulp-tslint'); + +var tsSource = ['./tooling/typings/tsd.d.ts', + '!./app/**/*.spec.ts', + './app/**/!(*.spec.ts)*.ts']; + +module.exports = gulp.task('ts-lint', function () { + + return gulp.src(tsSource) + .pipe(tslint({formatter:"verbose"})) + .pipe(tslint.report()); +}); + +module.exports = gulp.task('compile-js', ['ts-lint'], function () { + + if (environment !== 'development') { + tsProject.options.sourceMap = false; + } + + gulp.src(config.configurationFile) + .pipe(gulp.dest('./www/scripts/')); + + var result = gulp.src(tsSource) + .pipe(tsProject()); + + return result.js.pipe(gulp.dest('./www/js')); +}); diff --git a/build/gulp/compile-less.js b/build/gulp/compile-less.js new file mode 100644 index 0000000..e2fe198 --- /dev/null +++ b/build/gulp/compile-less.js @@ -0,0 +1,27 @@ +var gulp = require('gulp'), + less = require('gulp-less'), + config = require('../gulp.config')(), + concat = require('gulp-concat'), + sourcemaps = require('gulp-sourcemaps'), + postcss = require('gulp-postcss'), + minifyCSS = require('gulp-minify-css'); +autoprefixer = require('autoprefixer'); + +module.exports = gulp.task('compile-less', function () { + var ret; + if (environment === 'development') { + ret = gulp.src(config.allLess) + .pipe(less()) + .pipe(concat('chroma.compiled.css')) + .pipe(postcss([autoprefixer({ browsers: ['last 2 versions'] })])) + .pipe(gulp.dest('./www/css/')); + } else { + ret = gulp.src(config.allLess) + .pipe(less()) + .pipe(minifyCSS()) + .pipe(concat('chroma.compiled.css')) + .pipe(gulp.dest('./www/css/')); + } + + return ret; +}); diff --git a/build/gulp/compile-template-cache.js b/build/gulp/compile-template-cache.js new file mode 100644 index 0000000..335287e --- /dev/null +++ b/build/gulp/compile-template-cache.js @@ -0,0 +1,16 @@ +var config = require('../gulp.config')(), + gulp = require('gulp'); + +module.exports = gulp.task('compile-template-cache', function () { + var ngTemplates = require('gulp-ng-templates'); + return gulp.src(['./app/**/*.tpl.html', './app/**/*.html']) + .pipe(ngTemplates({ + filename: 'chroma.templates.compiled.js', + standalone: true, + module: 'chroma.templates', + path: function (path, base) { + return 'app/' + path.replace(base, '').replace('', ''); + } + })) + .pipe(gulp.dest('./www/scripts')); +}); diff --git a/build/gulp/compile-template.js b/build/gulp/compile-template.js new file mode 100644 index 0000000..34b0c5c --- /dev/null +++ b/build/gulp/compile-template.js @@ -0,0 +1,20 @@ +var gulp = require('gulp'), + minifyHTML = require('gulp-minify-html'); + +module.exports = gulp.task('compile-template', function () { + var ret; + if (environment === 'development') { + ret = gulp.src('./www/app/**/*.tpl.html') + .pipe(gulp.dest('./www/app/')); + } else { + var opts = { + conditionals: true, + spare: true + }; + ret = gulp.src(['./app/**/*.tpl.html', './app/**/*.html']) + .pipe(minifyHTML(opts)) + .pipe(gulp.dest('./www/app/')); + + } + return ret; +}); diff --git a/build/gulp/compile-tests.js b/build/gulp/compile-tests.js new file mode 100644 index 0000000..499ec5f --- /dev/null +++ b/build/gulp/compile-tests.js @@ -0,0 +1,30 @@ + +var gulp = require('gulp'), + config = require('../gulp.config')(), + tsc = require('gulp-typescript'), + replace = require('gulp-replace'), + sourcemaps = require('gulp-sourcemaps'); + +module.exports = gulp.task('compile-tests', function () { + + gulp.src(config.requiredJavascript).pipe(gulp.dest('./tests/compiled/lib')); + + var result = gulp.src(['./tooling/typings/tsd.d.ts', './app/**/*.ts']) + .pipe(replace(/\/\/TESTONLY/g, '')) + .pipe(sourcemaps.init()) + .pipe(tsc({ + target: "ES5", + module: "commonjs", + noImplicitAny: false, + removeComments: true, + reserveConstEnums: true, + experimentalDecorators: true + })); + + return result.js + .pipe(sourcemaps.write('./')) + .pipe(replace(/\/\/TESTONLY/g, '')) + .pipe(replace(/(var __decorate = \(this && this.__decorate\))/g, '$1/* istanbul ignore next */')) + .pipe(replace(/(var __extends = \(this && this.__extends \))/g, '$1/* istanbul ignore next */')) + .pipe(gulp.dest('./tests/compiled')); +}); diff --git a/build/gulp/copy-index.js b/build/gulp/copy-index.js new file mode 100644 index 0000000..00ebc0c --- /dev/null +++ b/build/gulp/copy-index.js @@ -0,0 +1,6 @@ +var gulp = require('gulp'); + +module.exports = gulp.task('copy-index', function () { + return gulp.src('./app/index.html') + .pipe(gulp.dest('./www/')); +}); diff --git a/build/gulp/copy-resources.js b/build/gulp/copy-resources.js new file mode 100644 index 0000000..5bc4373 --- /dev/null +++ b/build/gulp/copy-resources.js @@ -0,0 +1,11 @@ +var gulp = require('gulp'); + +module.exports = gulp.task('copy-resources', function () { + return gulp.src('./res/shared/**/*.*') + .pipe(gulp.dest('./www/res/')); +}); + +module.exports = gulp.task('copy-android-resources', function () { + return gulp.src(['res/drawable-*/**/*','res/mipmap-*/**/*']) + .pipe(gulp.dest('./platforms/android/res/')); +}); \ No newline at end of file diff --git a/build/gulp/gitversion.js b/build/gulp/gitversion.js new file mode 100644 index 0000000..6f86200 --- /dev/null +++ b/build/gulp/gitversion.js @@ -0,0 +1,23 @@ +/** + * Created by martin on 10/31/16. + */ +var gulp = require('gulp'); +var exec = require('child_process').exec; +var xmlEdit = require('gulp-edit-xml'); + +module.exports = gulp.task('gitversion', function() { + + exec('gitversion', function (err, stdout, stderr) { + + var gitJson = JSON.parse(stdout); + + gulp.src("./config.xml") + .pipe(xmlEdit(function(xml) { + xml.widget.$.version = gitJson.NuGetVersionV2; + return xml; + })) + .pipe(gulp.dest(".")); + + }); + +}); diff --git a/build/gulp/hockey-upload-android.js b/build/gulp/hockey-upload-android.js new file mode 100644 index 0000000..4ca4e60 --- /dev/null +++ b/build/gulp/hockey-upload-android.js @@ -0,0 +1,36 @@ +/** + * Created by martin on 11/8/16. + */ +var gulp = require('gulp'); +var rename = require('gulp-rename'); +var hockeyApp = require('gulp-hockeyapp'); +//var wait = require('gulp-wait'); + +gulp.task('rename-android', function () { + return gulp.src(["./platforms/android/build/outputs/apk/android-debug.apk"]) + .pipe(rename("com.lmco.chroma.apk")) + .pipe(gulp.dest('./platforms/android/build/outputs/apk/')); + +}); + +gulp.task('hockey-upload-android', ['rename-android'], function (done) { + var hockeyOptions = { + id: 'db782aaeada547618462264f1dd06e2b', + apiToken: 'ef010a5e7057469da01e98ec8c826457', + inputFile: './platforms/android/build/outputs/apk/com.lmco.chroma.apk', + notify: 1, + status: 2 + }; + + hockeyApp.upload(hockeyOptions).then( + function (response) { + // All is ok, build was uploaded + console.log(' 🏒 Hockey Android upload done'); + }, + function (err) { + // Something is wrong... + console.error(err); + } + ); + +}); \ No newline at end of file diff --git a/build/gulp/hockey-upload-ios.js b/build/gulp/hockey-upload-ios.js new file mode 100644 index 0000000..94eeadc --- /dev/null +++ b/build/gulp/hockey-upload-ios.js @@ -0,0 +1,28 @@ +/** + * Created by martin on 11/8/16. + */ +var gulp = require('gulp'); +var rename = require('gulp-rename'); +var hockeyApp = require('gulp-hockeyapp'); + + +gulp.task('hockey-upload-ios', function(done) { + var hockeyOptions = { + id: '8ca6b61ff4374109b416a476ceb29688', + apiToken: 'd4f642638f554e9296c75af2fadb49ab', + inputFile: './platforms/ios/AODBMobile.xcarchive', + notify: 1, + status: 2 + }; + + hockeyApp.upload(hockeyOptions).then( + function(response) { + // All is ok, build was uploaded + console.log(' 🏒 Hockey iOS upload done'); + }, + function(err) { + // Something is wrong... + console.error(err); + } + ); +}); diff --git a/build/gulp/install.js b/build/gulp/install.js new file mode 100644 index 0000000..6180046 --- /dev/null +++ b/build/gulp/install.js @@ -0,0 +1,9 @@ +var gulp = require('gulp'), + install = require('gulp-install'), + config = require('../gulp.config.js')(); + +module.exports = gulp.task('install', function() { + gulp.src(config.requiredJavascript).pipe(gulp.dest('./www/scripts/lib')); + gulp.src(config.requiredCSS).pipe(gulp.dest('./www/css/lib')); + gulp.src(config.requiredFonts).pipe(gulp.dest('./www/css/fonts')); +}); diff --git a/build/gulp/min-css-dependencies.js b/build/gulp/min-css-dependencies.js new file mode 100644 index 0000000..e9360a7 --- /dev/null +++ b/build/gulp/min-css-dependencies.js @@ -0,0 +1,12 @@ +var gulp = require('gulp'), + less = require('gulp-less'), + config = require('../gulp.config')(), + concat = require('gulp-concat'), + minifyCSS = require('gulp-minify-css'); + +module.exports = gulp.task('min-css-dependencies', function() { + var source = config.requiredCSSDest + '/**/*.css'; + return gulp.src(source) + .pipe(minifyCSS()) + .pipe(gulp.dest(config.requiredCSSDest)); +}); diff --git a/build/gulp/min-js-dependencies.js b/build/gulp/min-js-dependencies.js new file mode 100644 index 0000000..dae5fcc --- /dev/null +++ b/build/gulp/min-js-dependencies.js @@ -0,0 +1,11 @@ +var gulp = require('gulp'), + uglify = require('gulp-uglify'), + config = require('../gulp.config')(); + +module.exports = gulp.task('min-js-dependencies', function() { + var sourceFiles = config.requiredJavascriptDest + '/*.js'; + + return gulp.src(sourceFiles) + .pipe(uglify()) + .pipe(gulp.dest(config.requiredJavascriptDest)); +}); diff --git a/build/gulp/purge-previous-ionic.js b/build/gulp/purge-previous-ionic.js new file mode 100644 index 0000000..4ef7b8c --- /dev/null +++ b/build/gulp/purge-previous-ionic.js @@ -0,0 +1,11 @@ +/** + * Created by MobileAppsTeam on 11/11/2016. + */ + +var gulp = require('gulp'); +var clean = require('gulp-clean'); + +gulp.task('purge-previous-ionic', function () { + return gulp.src('platforms', {read: false}) + .pipe(clean()); +}); diff --git a/build/gulp/run-tests.js b/build/gulp/run-tests.js new file mode 100644 index 0000000..697a94d --- /dev/null +++ b/build/gulp/run-tests.js @@ -0,0 +1,28 @@ +var gulp = require('gulp'), + path = require('path'), + util = require('gulp-util'), + log = util.log, + config = require('../gulp.config')(), + args = require('yargs').argv, + server = require('karma').Server; + +module.exports = + gulp.task('run-tests', function (done) { + startTests(done); + }); + +/** + * Start the tests using karma. + * @param {boolean} singleRun - True means run once and end (CI), or keep running (dev) + * @param {Function} done - Callback to fire when karma is done + * @return {undefined} + */ +function startTests(done) { + log("Running Tests on Environment: " + environment); + + var karma = new server({ + configFile: path.join(__dirname, '../../karma.conf.js') + }); + + karma.start(); +} diff --git a/build/gulp/sonar.js b/build/gulp/sonar.js new file mode 100644 index 0000000..641a7b1 --- /dev/null +++ b/build/gulp/sonar.js @@ -0,0 +1,64 @@ +var gulp = require('gulp'), + sonar = require('gulp-sonar'), + config = require('../gulp.config')(), + util = require('gulp-util'), + args = require('yargs').argv; + +module.exports = gulp.task('sonar', function () { + var tsoptions = { + sonar: { + host: { + url: 'http://i-t-v-tf04:9000' + }, + jdbc: { + url: 'jdbc:postgresql://i-t-v-tf04:5432/sonar', + username: 'sonar', + password: 'sonar' + }, + projectKey: 'AODBMobile-TS', + projectName: 'AODB Mobile Application Typescript', + projectVersion: args.version, + language: 'ts', + sources: 'app, build', + // comma-delimited string of source directories + sourceEncoding: 'UTF-8', + coverage: { + exclusions: '**/*.spec.ts, **/build/**/*' + }, + ts: { + tslintpath: 'node_modules/tslint/bin/tslint' + } + } + }; + + var weboptions = { + sonar: { + host: { + url: 'http://i-t-v-tf04:9000' + }, + jdbc: { + url: 'jdbc:postgresql://i-t-v-tf04:5432/sonar', + username: 'sonar', + password: 'sonar' + }, + projectKey: 'AODBMobile-HTML', + projectName: 'AODB Mobile Application HTML', + projectVersion: args.version, + language: 'web', + sources: 'app', + // comma-delimited string of source directories + sourceEncoding: 'UTF-8', + web: { + file: { + suffixes: '.html' + } + } + } + }; + + // gulp source doesn't matter, all files are referenced in options object above + return gulp.src('thisFileDoesNotExist.js', { read: false }) + .pipe(sonar(tsoptions)) + .pipe(sonar(weboptions)) + .on('error', util.log); +}); diff --git a/build/gulp/update-url.js b/build/gulp/update-url.js new file mode 100644 index 0000000..7edc47a --- /dev/null +++ b/build/gulp/update-url.js @@ -0,0 +1,20 @@ +/** + * Created by martin on 10/31/16. + */ +var gulp = require('gulp'); +var argv = require('yargs').argv; +var replace = require('gulp-string-replace'); +var rename = require("gulp-rename"); + +module.exports = gulp.task('update-url', function() { + + // Call using gulp update-url --url=NEWURL + + var apiURL = argv.url; + + gulp.src(["./build/configuration/app.config.js.token"]) + .pipe(replace(new RegExp('__APIURL__', 'g'), apiURL)) + .pipe(rename("app.config.js")) + .pipe(gulp.dest('./build/configuration/')) + +}); diff --git a/build/gulp/watch.js b/build/gulp/watch.js new file mode 100644 index 0000000..9af24a4 --- /dev/null +++ b/build/gulp/watch.js @@ -0,0 +1,19 @@ +var gulp = require('gulp'), + config = require('../gulp.config')(), + watch = require('gulp-watch'); + +module.exports = + gulp.task('watch', function() { + watch(config.allLess, function() { + gulp.start('compile-less'); + }); + watch(config.allTemplates, function() { + gulp.start('compile-template-cache'); + }); + watch(config.allTypescript, function() { + gulp.start(['compile-js']); + }); + watch(config.allHtml, function() { + gulp.start('compile-template'); + }); + }); diff --git a/changeList.json b/changeList.json new file mode 100644 index 0000000..64e7b2c --- /dev/null +++ b/changeList.json @@ -0,0 +1,678 @@ +{ + "changedFilesIos": [ + "Scripts\\typings\\angularjs\\angular-resource.d.ts", + "Scripts\\typings\\angularjs\\angular.d.ts", + "Scripts\\typings\\angularjs\\angular-sanitize.d.ts", + "Scripts\\typings\\jquery\\jquery.d.ts", + "Scripts\\typings\\jasmine\\jasmine.d.ts", + "Scripts\\typings\\angularjs\\angular-mocks.d.ts", + "Scripts\\typings\\angularjs\\angular-route.d.ts", + "Scripts\\typings\\angularjs\\angular-animate.d.ts", + "Scripts\\typings\\angularjs\\angular-cookies.d.ts", + "build\\development\\compile-less.js", + "app\\prm\\task-workflow\\prm.less", + "ionic.project", + "www\\lib\\ionic\\js\\angular\\angular-animate.js", + "res\\icons\\ios\\Icon-60@3x.png", + "www\\lib\\ionic\\js\\angular\\angular.min.js", + "app\\prm\\models\\rejectReason.js", + "www\\font\\Nexa Bold.otf", + "bower.json", + "www\\res\\logo.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\info\\index.html", + "app\\prm\\task-workflow\\info\\info.tpl.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\services\\authentication.service.js.html", + "app\\e2e\\login\\login.e2e.js", + "mockups\\MI5-Promt-View.PNG", + "app\\prm\\task-workflow\\_view\\view.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\error\\error.routes.js.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\core\\index.html", + "build\\development\\eol.js", + "res\\icons\\android\\icon-72-hdpi.png", + "www\\lib\\ionic\\css\\ionic.min.css", + "www\\scripts\\lib\\angular-resource.js", + "build\\shared\\copy-resources.js", + "res\\screens\\android\\screen-mdpi-landscape.png", + "merges\\android\\scripts\\android2.3-jscompat.js", + "build\\server\\e2e-tests.js", + "merges\\windows\\scripts\\winstore-jscompat.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\auth.run.js.html", + "res\\icons\\ios\\icon-60.png", + "res\\icons\\ios\\Icon@2x.png", + ".jshintrc", + "app\\authentication\\components\\loginView\\loginView.js", + "www\\font\\Roboto-BlackItalic.ttf", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\detail\\detail.js.html", + "res\\screens\\ios\\screen-iphone-landscape-736h.png", + "protractor\\spec\\login.spec.js", + "app\\authentication\\specs\\auth.feature", + "app\\prm\\prm.routes.js", + "app\\authentication\\services\\authentication.service.js", + "res\\icons\\windows\\StoreLogo.scale-100.png", + "app\\authentication\\specs\\token.feature", + "www\\lib\\ionic\\js\\angular\\angular-sanitize.js", + "app\\prm\\constants\\flightType.js", + "DSCRelease\\PRMWeb.ps1", + "app\\prm\\task-workflow\\reject\\reject.less", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\index.html", + "DSCRelease\\PRMMockups.ps1", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\assigned\\assigned.js.html", + "www\\font\\Roboto-Black.ttf", + "www\\lib\\ionic\\js\\ionic.bundle.min.js", + "app\\chroma.app.js", + "build\\configuration\\app.config.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\base.css", + "mockups\\turnround.png", + "res\\icons\\android\\icon-48-mdpi.png", + "build\\shared\\copy-chroma-ux.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\core\\services\\index.html", + "app\\core\\core.mod.js", + "www\\lib\\ionic\\js\\ionic.min.js", + "app\\error\\specs\\error.spec.js", + "build\\configuration\\app.config.js.token", + "build\\development\\compile-template.js", + "www\\scripts\\lib\\angular.js", + "mockups\\M5-View.PNG", + "build\\server\\plato.js", + "app\\authentication\\components\\loginView\\loginView.tpl.html", + "www\\font\\Nexa-Bold.otf", + "www\\font\\Roboto-Bold.ttf", + "res\\icons\\ios\\icon-72.png", + "res\\icons\\ios\\icon-76.png", + "app\\core\\core.routes.js", + "res\\screens\\ios\\screen-ipad-portrait-2x.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\assigned\\index.html", + "mockups\\gating.jpg", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\core\\services\\user.service.js.html", + "www\\lib\\ionic\\js\\angular-ui\\angular-ui-router.js", + "build\\server\\compile-less.js", + "build\\development\\vet.js", + "res\\screens\\ios\\screen-iphone-portrait-2x.png", + "www\\scripts\\lib\\angular-ui-router.js", + "www\\font\\Nexa Light.otf", + "app\\authentication\\auth.run.js", + "app\\prm\\task-workflow\\reject\\reject.spec.js", + "app\\prm\\prm.mod.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\core\\services\\navigation.service.js.html", + "www\\lib\\ionic\\css\\ionic.css", + "res\\icons\\windows\\Square71x71Logo.scale-240.png", + "www\\lib\\ionic\\js\\ionic.bundle.js", + "merges\\android\\scripts\\platformOverrides.js", + "www\\font\\Roboto-LightItalic.ttf", + "res\\icons\\ios\\iTunesArtwork@2x.png", + "_references.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\_container\\index.html", + "app\\prm\\task-workflow\\assigned\\assigned.js.orig", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\components\\loginView\\loginView.controller.js.html", + "Properties\\PublishProfiles\\EndToEnd.pubxml", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\_container\\container.js.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\reject\\reject.js.html", + "app\\prm\\task-workflow\\_view\\view.spec.js", + "www\\lib\\ionic\\js\\ionic-angular.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\auth.routes.js.html", + "res\\screens\\android\\screen-hdpi-portrait.png", + "app\\authentication\\specs\\auth.spec.js", + "app\\error\\error.html", + "res\\icons\\ios\\Icon-Small-50.png", + "res\\icons\\ios\\Icon-Small-40.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\chroma.app.js.html", + "www\\font\\Roboto-ThinItalic.ttf", + "app\\authentication\\specs\\token.spec.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\detail\\index.html", + "res\\icons\\windows\\StoreLogo.scale-240.png", + "res\\icons\\ios\\Icon-72@2x.png", + "res\\icons\\ios\\Icon-76@2x.png", + "protractor.ci.firefox.conf.js", + "www\\lib\\ionic\\js\\ionic-angular.min.js", + "build\\server\\run-tests.js", + "www\\lib\\ionic\\js\\angular-ui\\angular-ui-router.min.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\reject\\reject.controller.js.html", + "www\\lib\\ionic\\fonts\\ionicons.ttf", + "www\\scripts\\lib\\bard.js", + "res\\screens\\ios\\screen-ipad-landscape.png", + "build\\server\\min-js-dependencies.js", + "res\\icons\\ios\\Icon-Small@3x.png", + "res\\icons\\ios\\Icon-Small@2x.png", + "www\\lib\\ionic\\version.json", + "www\\font\\Roboto-Italic.ttf", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\no-task-available\\index.html", + "build\\development\\browser-sync.js", + "www\\font\\Roboto-Light.ttf", + "mockups\\turnaround.jpg", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\info\\info.js.html", + "mockups\\MI5-Alt-View.PNG", + "mockups\\mockloginscreen.png", + "packages.config", + "res\\icons\\ios\\Icon-Small-50@2x.png", + "res\\icons\\ios\\icon-60-3x.png", + "karma.conf.js", + "app\\prm\\task-workflow\\assigned\\assigned.controller.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\reject\\index.html", + "app\\prm\\task-workflow\\assigned\\assigned.spec.js", + "config.xml", + "www\\lib\\ionic\\js\\angular\\angular.js", + "res\\icons\\ios\\Icon-Small-40@2x.png", + "res\\icons\\ios\\Icon-Small-40@3x.png", + "res\\screens\\wp8\\SplashScreenImage.jpg", + "app\\core\\services\\navigation.service.js", + "app\\prm\\task-workflow\\no-task-available\\noTaskAvailable.tpl.html", + "www\\font\\Nexa-Light.otf", + "build\\server\\compile-js.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\error\\components\\errorView.js.html", + "res\\screens\\ios\\screen-ipad-landscape-2x.png", + "app\\authentication\\auth.mod.js", + "app\\prm\\task-workflow\\info\\info.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\info\\info.controller.js.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\error\\components\\errorView.controller.js.html", + "www\\scripts\\chroma.compiled.js", + "www\\lib\\ionic\\js\\angular\\angular-sanitize.min.js", + "res\\screens\\ios\\screen-iphone-568h-2x.png", + "res\\icons\\windows\\Square150x150Logo.scale-100.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\_view\\view.js.html", + "www\\lib\\ionic\\js\\angular\\angular-resource.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\constants\\index.html", + "app\\authentication\\components\\loginView\\loginView.tpl.html.orig", + "app\\prm\\task-workflow\\assigned\\assigned.js", + "gulpfile.js", + "package.json", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\error\\index.html", + "mockups\\MI70-View.PNG", + "protractor.ci.ieEdge.conf.js", + "app\\prm\\constants\\stageStatus.js", + "app\\prm\\task-workflow\\assigned\\assigned.tpl.html", + "www\\font\\Roboto-BoldItalic.ttf", + "build\\shared\\vet.js", + "res\\screens\\android\\screen-ldpi-landscape.png", + "res\\icons\\windows\\Wide310x150Logo.scale-240.png", + "res\\icons\\windows\\Wide310x150Logo.scale-100.png", + "res\\icons\\ios\\icon-72-2x.png", + "res\\icons\\ios\\icon-76-2x.png", + "app\\authentication\\views\\loginView.html", + "build\\development\\e2e-tests.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\prm.routes.js.html", + "www\\css\\chroma-framework.css", + "www\\lib\\ionic\\fonts\\ionicons.svg", + "res\\icons\\ios\\icon-small.png", + "protractor.ci.ie11.conf.js", + "app\\prm\\task-workflow\\reject\\reject.controller.js", + "karma.conf.dev.js", + "mockups\\checkin.jpg", + "www\\scripts\\lib\\jquery.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\sorter.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\constants\\stageStatus.js.html", + "www\\font\\Roboto-MediumItalic.ttf", + "build\\shared\\install.js", + "res\\icons\\windows\\Square30x30Logo.scale-100.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\interceptors\\index.html", + ".jscsrc", + "res\\icons\\ios\\Icon.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\error\\components\\index.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\models\\task.js.html", + "app\\error\\components\\errorView.js", + "app\\authentication\\components\\loginView\\loginView.controller.js", + "www\\lib\\ionic\\fonts\\ionicons.eot", + "www\\css\\chroma.compiled.css", + "res\\icons\\ios\\Icon-60@2x.png", + "app\\error\\components\\errorView.less", + "res\\icons\\wp8\\Background.png", + "build\\development\\watch.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\services\\index.html", + "config.xml.orig", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\components\\loginView\\index.html", + "www\\index.html", + "res\\icons\\ios\\icon-40.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\assigned\\assigned.controller.js.html", + "res\\shared\\logo.png", + "res\\icons\\ios\\icon-60-2x.png", + "www\\lib\\ionic\\fonts\\ionicons.woff", + "Chroma.PRM.Mobile.nuspec", + "app\\prm\\task-workflow\\info\\info.spec.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\prettify.css", + "app\\error\\error.routes.js", + "res\\screens\\android\\screen-ldpi-portrait.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\_view\\view.controller.js.html", + "protractor.ci.ie10.conf.js", + "www\\font\\Roboto-Medium.ttf", + "build\\server\\compile-template.js", + "build\\development\\run-tests.js", + "BrowserStackLocal.exe.old", + "res\\native\\android\\ant.properties", + "res\\icons\\windows\\Square310x310Logo.scale-100.png", + "www\\scripts\\lib\\ionic.bundle.js", + "DSCRelease\\PRMWeb_Octo.ps1", + "app\\authentication\\components\\loginView\\loginView.less", + "build\\configuration\\app.config.js.orig", + "taco.json", + "res\\icons\\windows\\Square150x150Logo.scale-240.png", + "www\\scripts\\chroma.templates.compiled.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\models\\index.html", + "res\\icons\\android\\icon-36-ldpi.png", + "merges\\windows\\scripts\\platformOverrides.js", + "www\\font\\Roboto-Thin.ttf", + "res\\screens\\ios\\screen-iphone-portrait.png", + "app\\error\\components\\errorView.tpl.html", + "res\\screens\\android\\screen-xhdpi-portrait.png", + "res\\icons\\ios\\icon-50-2x.png", + "res\\icons\\ios\\icon-57-2x.png", + "mockups\\List-View.PNG", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\_view\\index.html", + "build\\development\\trim-whitespace.js", + "res\\icons\\ios\\icon-50.png", + "res\\icons\\ios\\icon-57.png", + "www\\font\\Roboto-Regular.ttf", + "mockups\\despatche.jpg", + "app\\core\\services\\user.service.js", + "app\\prm\\task-workflow\\_view\\view.tpl.html", + "res\\icons\\ios\\icon-small-2x.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\interceptors\\auth.interceptor.js.html", + "build\\development\\copy-resources.js", + "res\\icons\\windows\\Square70x70Logo.scale-100.png", + "protractor.ci.chrome.conf.js", + "res\\screens\\windows\\SplashScreen.scale-240.png", + "app\\prm\\models\\task.js", + "mockups\\Login-View.PNG", + "www\\scripts\\lib\\jasmine-jquery.js", + "res\\icons\\android\\icon-96-xhdpi.png", + "app\\prm\\task-workflow\\info\\info.less", + "www\\lib\\ionic\\js\\angular\\angular-animate.min.js", + "app\\prm\\task-workflow\\reject\\reject.tpl.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\index.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\index.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\no-task-available\\noTaskAvailable.js.html", + "res\\icons\\wp8\\ApplicationIcon.png", + "build\\gulp.config.js", + "protractor.conf.js", + "build\\shared\\copy-index.js", + "app\\prm\\task-workflow\\no-task-available\\noTaskAvailable.spec.js", + "app\\authentication\\interceptors\\auth.interceptor.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\auth.mod.js.html", + "build\\shared\\compile-template-cache.js", + "res\\icons\\ios\\icon-40-2x.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\prm.mod.js.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\core\\core.mod.js.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\index.html", + "res\\screens\\ios\\screen-iphone-portrait-667h.png", + "app\\prm\\task-workflow\\_view\\view.controller.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\constants\\flightType.js.html", + "res\\screens\\android\\screen-hdpi-landscape.png", + "res\\screens\\windows\\SplashScreenPhone.scale-240.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\prettify.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\sort-arrow-sprite.png", + "res\\screens\\windows\\SplashScreen.scale-100.png", + "res\\screens\\ios\\screen-iphone-portrait-736h.png", + "res\\screens\\ios\\screen-ipad-portrait.png", + "res\\screens\\ios.rar", + "www\\scripts\\lib\\angular-mocks.js", + "www\\scripts\\chroma.compiled.js.map", + "app\\authentication\\auth.routes.js", + "Chroma.PRM.Mobile.DSC.nuspec", + "www\\lib\\ionic\\js\\ionic.js", + "DSCRelease\\PRMTVDisplay.ps1", + "app\\prm\\task-workflow\\info\\info.controller.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\models\\rejectReason.js.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\components\\loginView\\loginView.js.html", + "www\\scripts\\app.config.js", + "app\\index.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\core\\core.routes.js.html", + "app\\prm\\task-workflow\\reject\\reject.js", + "app\\prm\\task-workflow\\no-task-available\\noTaskAvailable.js", + "gulpfile_server.js", + "build\\server\\min-css-dependencies.js", + "www\\scripts\\lib\\angular-animate.js", + "res\\screens\\android\\screen-xhdpi-landscape.png", + "build\\development\\copy-index.js", + "app\\prm\\task-workflow\\assigned\\assigned.less", + "app\\error\\components\\errorView.controller.js", + "www\\lib\\ionic\\js\\angular\\angular-resource.min.js", + "DSCRelease\\PRMReports.ps1", + "build\\development\\compile-js.js", + "app\\error\\error.mod.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\error\\error.mod.js.html", + "www\\js\\chroma-framework.js", + "build\\development\\copy-chroma-ux.js", + "res\\icons\\windows\\Square44x44Logo.scale-240.png", + "res\\screens\\android\\screen-mdpi-portrait.png", + "protractor.ci.safari.conf.js" + ], + "deletedFilesIos": [], + "addedPluginsIos": [], + "deletedPluginsIos": [], + "changedFiles": [ + "Scripts\\typings\\angularjs\\angular-resource.d.ts", + "Scripts\\typings\\angularjs\\angular.d.ts", + "Scripts\\typings\\angularjs\\angular-sanitize.d.ts", + "Scripts\\typings\\jquery\\jquery.d.ts", + "Scripts\\typings\\jasmine\\jasmine.d.ts", + "Scripts\\typings\\angularjs\\angular-mocks.d.ts", + "Scripts\\typings\\angularjs\\angular-route.d.ts", + "Scripts\\typings\\angularjs\\angular-animate.d.ts", + "Scripts\\typings\\angularjs\\angular-cookies.d.ts", + "build\\development\\compile-less.js", + "app\\prm\\task-workflow\\prm.less", + "ionic.project", + "www\\lib\\ionic\\js\\angular\\angular-animate.js", + "res\\icons\\ios\\Icon-60@3x.png", + "www\\lib\\ionic\\js\\angular\\angular.min.js", + "app\\prm\\models\\rejectReason.js", + "www\\font\\Nexa Bold.otf", + "bower.json", + "www\\res\\logo.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\info\\index.html", + "app\\prm\\task-workflow\\info\\info.tpl.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\services\\authentication.service.js.html", + "app\\e2e\\login\\login.e2e.js", + "mockups\\MI5-Promt-View.PNG", + "app\\prm\\task-workflow\\_view\\view.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\error\\error.routes.js.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\core\\index.html", + "build\\development\\eol.js", + "res\\icons\\android\\icon-72-hdpi.png", + "www\\lib\\ionic\\css\\ionic.min.css", + "www\\scripts\\lib\\angular-resource.js", + "build\\shared\\copy-resources.js", + "res\\screens\\android\\screen-mdpi-landscape.png", + "merges\\android\\scripts\\android2.3-jscompat.js", + "build\\server\\e2e-tests.js", + "merges\\windows\\scripts\\winstore-jscompat.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\auth.run.js.html", + "res\\icons\\ios\\icon-60.png", + "res\\icons\\ios\\Icon@2x.png", + ".jshintrc", + "app\\authentication\\components\\loginView\\loginView.js", + "www\\font\\Roboto-BlackItalic.ttf", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\detail\\detail.js.html", + "res\\screens\\ios\\screen-iphone-landscape-736h.png", + "protractor\\spec\\login.spec.js", + "app\\authentication\\specs\\auth.feature", + "app\\prm\\prm.routes.js", + "app\\authentication\\services\\authentication.service.js", + "res\\icons\\windows\\StoreLogo.scale-100.png", + "app\\authentication\\specs\\token.feature", + "www\\lib\\ionic\\js\\angular\\angular-sanitize.js", + "app\\prm\\constants\\flightType.js", + "DSCRelease\\PRMWeb.ps1", + "app\\prm\\task-workflow\\reject\\reject.less", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\index.html", + "DSCRelease\\PRMMockups.ps1", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\assigned\\assigned.js.html", + "www\\font\\Roboto-Black.ttf", + "www\\lib\\ionic\\js\\ionic.bundle.min.js", + "app\\chroma.app.js", + "build\\configuration\\app.config.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\base.css", + "mockups\\turnround.png", + "res\\icons\\android\\icon-48-mdpi.png", + "build\\shared\\copy-chroma-ux.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\core\\services\\index.html", + "app\\core\\core.mod.js", + "www\\lib\\ionic\\js\\ionic.min.js", + "app\\error\\specs\\error.spec.js", + "build\\configuration\\app.config.js.token", + "build\\development\\compile-template.js", + "www\\scripts\\lib\\angular.js", + "mockups\\M5-View.PNG", + "build\\server\\plato.js", + "app\\authentication\\components\\loginView\\loginView.tpl.html", + "www\\font\\Nexa-Bold.otf", + "www\\font\\Roboto-Bold.ttf", + "res\\icons\\ios\\icon-72.png", + "res\\icons\\ios\\icon-76.png", + "app\\core\\core.routes.js", + "res\\screens\\ios\\screen-ipad-portrait-2x.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\assigned\\index.html", + "mockups\\gating.jpg", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\core\\services\\user.service.js.html", + "www\\lib\\ionic\\js\\angular-ui\\angular-ui-router.js", + "build\\server\\compile-less.js", + "build\\development\\vet.js", + "res\\screens\\ios\\screen-iphone-portrait-2x.png", + "www\\scripts\\lib\\angular-ui-router.js", + "www\\font\\Nexa Light.otf", + "app\\authentication\\auth.run.js", + "app\\prm\\task-workflow\\reject\\reject.spec.js", + "app\\prm\\prm.mod.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\core\\services\\navigation.service.js.html", + "www\\lib\\ionic\\css\\ionic.css", + "res\\icons\\windows\\Square71x71Logo.scale-240.png", + "www\\lib\\ionic\\js\\ionic.bundle.js", + "merges\\android\\scripts\\platformOverrides.js", + "www\\font\\Roboto-LightItalic.ttf", + "res\\icons\\ios\\iTunesArtwork@2x.png", + "_references.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\_container\\index.html", + "app\\prm\\task-workflow\\assigned\\assigned.js.orig", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\components\\loginView\\loginView.controller.js.html", + "Properties\\PublishProfiles\\EndToEnd.pubxml", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\_container\\container.js.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\reject\\reject.js.html", + "app\\prm\\task-workflow\\_view\\view.spec.js", + "www\\lib\\ionic\\js\\ionic-angular.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\auth.routes.js.html", + "res\\screens\\android\\screen-hdpi-portrait.png", + "app\\authentication\\specs\\auth.spec.js", + "app\\error\\error.html", + "res\\icons\\ios\\Icon-Small-50.png", + "res\\icons\\ios\\Icon-Small-40.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\chroma.app.js.html", + "www\\font\\Roboto-ThinItalic.ttf", + "app\\authentication\\specs\\token.spec.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\detail\\index.html", + "res\\icons\\windows\\StoreLogo.scale-240.png", + "res\\icons\\ios\\Icon-72@2x.png", + "res\\icons\\ios\\Icon-76@2x.png", + "protractor.ci.firefox.conf.js", + "www\\lib\\ionic\\js\\ionic-angular.min.js", + "build\\server\\run-tests.js", + "www\\lib\\ionic\\js\\angular-ui\\angular-ui-router.min.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\reject\\reject.controller.js.html", + "www\\lib\\ionic\\fonts\\ionicons.ttf", + "www\\scripts\\lib\\bard.js", + "res\\screens\\ios\\screen-ipad-landscape.png", + "build\\server\\min-js-dependencies.js", + "res\\icons\\ios\\Icon-Small@3x.png", + "res\\icons\\ios\\Icon-Small@2x.png", + "www\\lib\\ionic\\version.json", + "www\\font\\Roboto-Italic.ttf", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\no-task-available\\index.html", + "build\\development\\browser-sync.js", + "www\\font\\Roboto-Light.ttf", + "mockups\\turnaround.jpg", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\info\\info.js.html", + "mockups\\MI5-Alt-View.PNG", + "mockups\\mockloginscreen.png", + "packages.config", + "res\\icons\\ios\\Icon-Small-50@2x.png", + "res\\icons\\ios\\icon-60-3x.png", + "karma.conf.js", + "app\\prm\\task-workflow\\assigned\\assigned.controller.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\reject\\index.html", + "app\\prm\\task-workflow\\assigned\\assigned.spec.js", + "config.xml", + "www\\lib\\ionic\\js\\angular\\angular.js", + "res\\icons\\ios\\Icon-Small-40@2x.png", + "res\\icons\\ios\\Icon-Small-40@3x.png", + "res\\screens\\wp8\\SplashScreenImage.jpg", + "app\\core\\services\\navigation.service.js", + "app\\prm\\task-workflow\\no-task-available\\noTaskAvailable.tpl.html", + "www\\font\\Nexa-Light.otf", + "build\\server\\compile-js.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\error\\components\\errorView.js.html", + "res\\screens\\ios\\screen-ipad-landscape-2x.png", + "app\\authentication\\auth.mod.js", + "app\\prm\\task-workflow\\info\\info.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\info\\info.controller.js.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\error\\components\\errorView.controller.js.html", + "www\\scripts\\chroma.compiled.js", + "www\\lib\\ionic\\js\\angular\\angular-sanitize.min.js", + "res\\screens\\ios\\screen-iphone-568h-2x.png", + "res\\icons\\windows\\Square150x150Logo.scale-100.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\_view\\view.js.html", + "www\\lib\\ionic\\js\\angular\\angular-resource.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\constants\\index.html", + "app\\authentication\\components\\loginView\\loginView.tpl.html.orig", + "app\\prm\\task-workflow\\assigned\\assigned.js", + "gulpfile.js", + "package.json", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\error\\index.html", + "mockups\\MI70-View.PNG", + "protractor.ci.ieEdge.conf.js", + "app\\prm\\constants\\stageStatus.js", + "app\\prm\\task-workflow\\assigned\\assigned.tpl.html", + "www\\font\\Roboto-BoldItalic.ttf", + "build\\shared\\vet.js", + "res\\screens\\android\\screen-ldpi-landscape.png", + "res\\icons\\windows\\Wide310x150Logo.scale-240.png", + "res\\icons\\windows\\Wide310x150Logo.scale-100.png", + "res\\icons\\ios\\icon-72-2x.png", + "res\\icons\\ios\\icon-76-2x.png", + "app\\authentication\\views\\loginView.html", + "build\\development\\e2e-tests.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\prm.routes.js.html", + "www\\css\\chroma-framework.css", + "www\\lib\\ionic\\fonts\\ionicons.svg", + "res\\icons\\ios\\icon-small.png", + "protractor.ci.ie11.conf.js", + "app\\prm\\task-workflow\\reject\\reject.controller.js", + "karma.conf.dev.js", + "mockups\\checkin.jpg", + "www\\scripts\\lib\\jquery.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\sorter.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\constants\\stageStatus.js.html", + "www\\font\\Roboto-MediumItalic.ttf", + "build\\shared\\install.js", + "res\\icons\\windows\\Square30x30Logo.scale-100.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\interceptors\\index.html", + ".jscsrc", + "res\\icons\\ios\\Icon.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\error\\components\\index.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\models\\task.js.html", + "app\\error\\components\\errorView.js", + "app\\authentication\\components\\loginView\\loginView.controller.js", + "www\\lib\\ionic\\fonts\\ionicons.eot", + "www\\css\\chroma.compiled.css", + "res\\icons\\ios\\Icon-60@2x.png", + "app\\error\\components\\errorView.less", + "res\\icons\\wp8\\Background.png", + "build\\development\\watch.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\services\\index.html", + "config.xml.orig", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\components\\loginView\\index.html", + "www\\index.html", + "res\\icons\\ios\\icon-40.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\assigned\\assigned.controller.js.html", + "res\\shared\\logo.png", + "res\\icons\\ios\\icon-60-2x.png", + "www\\lib\\ionic\\fonts\\ionicons.woff", + "Chroma.PRM.Mobile.nuspec", + "app\\prm\\task-workflow\\info\\info.spec.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\prettify.css", + "app\\error\\error.routes.js", + "res\\screens\\android\\screen-ldpi-portrait.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\_view\\view.controller.js.html", + "protractor.ci.ie10.conf.js", + "www\\font\\Roboto-Medium.ttf", + "build\\server\\compile-template.js", + "build\\development\\run-tests.js", + "BrowserStackLocal.exe.old", + "res\\native\\android\\ant.properties", + "res\\icons\\windows\\Square310x310Logo.scale-100.png", + "www\\scripts\\lib\\ionic.bundle.js", + "DSCRelease\\PRMWeb_Octo.ps1", + "app\\authentication\\components\\loginView\\loginView.less", + "build\\configuration\\app.config.js.orig", + "taco.json", + "res\\icons\\windows\\Square150x150Logo.scale-240.png", + "www\\scripts\\chroma.templates.compiled.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\models\\index.html", + "res\\icons\\android\\icon-36-ldpi.png", + "merges\\windows\\scripts\\platformOverrides.js", + "www\\font\\Roboto-Thin.ttf", + "res\\screens\\ios\\screen-iphone-portrait.png", + "app\\error\\components\\errorView.tpl.html", + "res\\screens\\android\\screen-xhdpi-portrait.png", + "res\\icons\\ios\\icon-50-2x.png", + "res\\icons\\ios\\icon-57-2x.png", + "mockups\\List-View.PNG", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\_view\\index.html", + "build\\development\\trim-whitespace.js", + "res\\icons\\ios\\icon-50.png", + "res\\icons\\ios\\icon-57.png", + "www\\font\\Roboto-Regular.ttf", + "mockups\\despatche.jpg", + "app\\core\\services\\user.service.js", + "app\\prm\\task-workflow\\_view\\view.tpl.html", + "res\\icons\\ios\\icon-small-2x.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\interceptors\\auth.interceptor.js.html", + "build\\development\\copy-resources.js", + "res\\icons\\windows\\Square70x70Logo.scale-100.png", + "protractor.ci.chrome.conf.js", + "res\\screens\\windows\\SplashScreen.scale-240.png", + "app\\prm\\models\\task.js", + "mockups\\Login-View.PNG", + "www\\scripts\\lib\\jasmine-jquery.js", + "res\\icons\\android\\icon-96-xhdpi.png", + "app\\prm\\task-workflow\\info\\info.less", + "www\\lib\\ionic\\js\\angular\\angular-animate.min.js", + "app\\prm\\task-workflow\\reject\\reject.tpl.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\index.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\index.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\task-workflow\\no-task-available\\noTaskAvailable.js.html", + "res\\icons\\wp8\\ApplicationIcon.png", + "build\\gulp.config.js", + "protractor.conf.js", + "build\\shared\\copy-index.js", + "app\\prm\\task-workflow\\no-task-available\\noTaskAvailable.spec.js", + "app\\authentication\\interceptors\\auth.interceptor.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\auth.mod.js.html", + "build\\shared\\compile-template-cache.js", + "res\\icons\\ios\\icon-40-2x.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\prm.mod.js.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\core\\core.mod.js.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\index.html", + "res\\screens\\ios\\screen-iphone-portrait-667h.png", + "app\\prm\\task-workflow\\_view\\view.controller.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\constants\\flightType.js.html", + "res\\screens\\android\\screen-hdpi-landscape.png", + "res\\screens\\windows\\SplashScreenPhone.scale-240.png", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\prettify.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\sort-arrow-sprite.png", + "res\\screens\\windows\\SplashScreen.scale-100.png", + "res\\screens\\ios\\screen-iphone-portrait-736h.png", + "res\\screens\\ios\\screen-ipad-portrait.png", + "res\\screens\\ios.rar", + "www\\scripts\\lib\\angular-mocks.js", + "www\\scripts\\chroma.compiled.js.map", + "app\\authentication\\auth.routes.js", + "Chroma.PRM.Mobile.DSC.nuspec", + "www\\lib\\ionic\\js\\ionic.js", + "DSCRelease\\PRMTVDisplay.ps1", + "app\\prm\\task-workflow\\info\\info.controller.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\prm\\models\\rejectReason.js.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\authentication\\components\\loginView\\loginView.js.html", + "www\\scripts\\app.config.js", + "app\\index.html", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\core\\core.routes.js.html", + "app\\prm\\task-workflow\\reject\\reject.js", + "app\\prm\\task-workflow\\no-task-available\\noTaskAvailable.js", + "gulpfile_server.js", + "build\\server\\min-css-dependencies.js", + "www\\scripts\\lib\\angular-animate.js", + "res\\screens\\android\\screen-xhdpi-landscape.png", + "build\\development\\copy-index.js", + "app\\prm\\task-workflow\\assigned\\assigned.less", + "app\\error\\components\\errorView.controller.js", + "www\\lib\\ionic\\js\\angular\\angular-resource.min.js", + "DSCRelease\\PRMReports.ps1", + "build\\development\\compile-js.js", + "app\\error\\error.mod.js", + "coverage\\Chrome 44.0.2403 (Windows 7 0.0.0)\\app\\error\\error.mod.js.html", + "www\\js\\chroma-framework.js", + "build\\development\\copy-chroma-ux.js", + "res\\icons\\windows\\Square44x44Logo.scale-240.png", + "res\\screens\\android\\screen-mdpi-portrait.png", + "protractor.ci.safari.conf.js" + ], + "deletedFiles": [], + "addedPlugins": [], + "deletedPlugins": [] +} \ No newline at end of file diff --git a/chroma_aodb_profile.mobileprovision b/chroma_aodb_profile.mobileprovision new file mode 100644 index 0000000000000000000000000000000000000000..6492694815095dc522bdc450ebbf13d1bbdefa8a GIT binary patch literal 7349 zcmd5>d3Y05*Kg7mXiF(tc3KDs2$VK6Nz*o1Dl^&lW?v8_nVC%Xq{%eX1QjS)1;HvG z$c}}A8zMr>s_ZDBuL`dquYf3mf`E#$iYVVr(+$*jd7kfi-tUijl5_95=bpR#&iS1g zs5WmymyFSM(z=`3jIPXv+PqazZQcqdg8^qj8C}u~dZaQ3q^Cf&-RTZBMni3PS6Xd% zy!_D`zmF9q!Vz~cFm5PZ1Px^o0W65S1LU}&MuWJpZ0MsEndL)-8iB!DDPo0u?g+)I zG@?qGfHky`%|=2YAHik|4MJ9>Ql>YsfDJZVq#nu|>Y}L7ST>uc=^}eVs|XAF6N(Xb zWjGij!cvpga}$AR2Vp0 zA#jC*emlz^#2w}A*0zo@J~w8kz!GIR5un^oHxaH36Ha$cyA^vlZ0~GND%Dq(%Js!1 zoX*zR?P`h11!1DasL)PzxPt?sf&;-Ng%Df_l^G!ZSeQGum}4tvw{*4oROz!*&S2R8 z2M5|0jA4HB7b5FOlhxB$z)<8E)bv+4T;b)6d`3YqQt2R zmdVhPfRz?%t#U=sCUZqGHKG-XQ7uA~HfxO_j>u6`Z9);N0r8m(DxHcJX{|z&R;v&q zArzCM5t|;BJN&9@m7b;*WJ{k?C{VZcSsYw>#3scVG>wGei&WHO=5eFCbVQy3p?6`1= zFX{-WNG-<{1ONSYvpU)4Mp4|N3xc^rxYSEaU6@*BFwzt`R z=0W)?U67U_R)xSO^Sf=8F{MO{B3fFZ7r6{ZA+9jSwH%d46jTYUZT>p#CN${a@De_T zFs?3UH_PD`-#kH5>orvxd^){WkD|J`$e=<+E#m}WyY92u(MQsX`^G6%h__`N>QV_z zCKXMRBDV^GBm#YvL@#r2g<28t(}*C&GE_)|^CLwHBnZx0D-=|f;iW!Pm4Z(=VgjpQ zW>ywEP#l$8q!v3Vwu)mU-xOB(O)-<#$f>FpREJc>0Rx1^H4Y0R;29_rN!PG-X0ur1 z)yheQ$L0}~hy|LeaEz8Cq(|ZRtJGSd&1ca@!gQ&QBQUC9Z>hr?lU0=|!bC)E(Ws4T zlBP%l?p4NXf)ZUxsWMvSQyR@?8iU2|<1VFYYmM;%+h^AY57zBr=j}ze1yR2Ng(Z&{G3^ggE*I%8h=;4AHmMmi=}ig^H?amG4e+ajNEG}>JpuuumC>ZLto@Ez zIa)Dd5TIq?p*yV$#1ooySXHD$oxo+tYUX)BT!=c{C}fxT;xdWahXr&Yo8RZLS^${m0bQ}j$}!P6=(lo=q=RE6af!<(lj?#tb1`Xci4DMx z8N?Mm8c*oiB;uG&fI>EloWf$L%i-6ORt_Ju`;ze`hDL2}6vjBl$RB)>0zV}_Pr`@f zxIe@a8uN=i0MCgvCFX-{X4vNl=;BHb2!b7FEYz$QD`h7@ijV|2ua=mC%K?_zv{t1;f)arsA_2G-qqIt>LRAuh zJBfF27N8x(ro>s3M&$lj0Pb5$EI_oVp7hl~(SQxLYDE$@?y~BXgt&n6#4FWmN~#dL z@nV=AHw5e&aeFE9V94Yja;L474VE)sm4Mm4dQ@ORZWYOR-cwIT2$hI z3zun?Y-O34j)x*qov_SStbh~_Na2ies`W;#RvNP@sGvzD7rXpiIay#f#Aq3h<28CJ zV+slKjrPsAatgfCDd)X4?XV#44z#bYK7BGszpI$BihBWw~0P5Edq zKM=KZ?1)T5$IYl5h7p_CtuWP4I4svlT_I7mk*cl=a!d|CYU0^-4ztD=CoD86K>bn7 zN#TZ21mx|O)C#isy_`S<=mq5?{D5Y34pJ0-}-$OIbglP7JH1XW1cBi=&0&ljZI_&`Rv)9#B9Y`~V1Y6&*h zN{9;G?Tn~Hy_G(7nip$fS4H=+tE4r+>RS07-o{FbD8lal_e{4hC^NB_ovEIvCgcwP zHNh%vAy}n&iBPLhT!Vy`aaM0=Y0p4~mR|L#7>Q0d12;%brmgNR#)V49@RJgij z7h9O90W7hDPPXf`A72|W?byZ6bG08_yRAQS7!_&M1|7meB%Q}5xTnGGCk#QQJKDiK z-2sXqiEstCgjddP6I$t}(I^wPyV$zoVuu4K%J{rOXEEd`Eaq~tLVg*iw2+7MIi;|j z>%buV{%K9gN}=6U+ca>e8QV^=oZUj_D;jFEH$t_kSD{+w$%a%WgUMv{g|gd=5k@+w zP8==8N~$rfOD@x>hjXC^x&R?FH?yU@V95el5j+AKmT1h%%}+LVP+xFdETo!p1;cJC z2KRw_CG=8rvy*zdV31-75NJ@}Y^W3}hBzmEtbP}Q1|Dg|sP(jj%VM!m{ zm9AibVEu*5P%UF<=N)0Br=-?0azN3>$Yjx#&)k>rthwFlw>DIYGfwqC_s!e${qNjdylDT0rHK0IPsG`Q zy7;LJsh_Bu4{`<0uYap^YCRBt^vD88m${ z)B|j6eh!0iH!TfZraCAmA?GIKbSM@4K>3M=9%+5jdYvyGT{QGGf3mlE{>StTI~#6z zf(H#wbU&2V59%|mSHWSoWPUW`_iNs{MdM$&DN#-BHVG<8C=5Ml=^tzJGF(~7cZTJhJSXSI_8~}-QBCG zn9^(b>8AM?8gA!IoAqIxq6tdfmTafL?kDN8Fd~(Lxg>T)`%17*Z8qFOsH`U_0#|>(g#>#Ah*`UOM(ny7?Q&Cx6cYu>S?X{!A_y`e8{ zK5}Qr6EpYz=H(xq{I`$QV^1LHin;S&??=|n?(>s)L!Nv1fn8Udp8ewBn%57lc@E`U z_|3CVj=xQ9(x<(3JhOS`l7BpZv^j81wwRs&{1ZLTKCpKlHFDz<1&ewg$Tp_DL9YBkX?SHt z?zw5~Gy6&;53amxTD^S!k83Kw#s{W!TmALM9m}Fu-?}(6a=3o`UGDK0z8$b>@Xi@2 z7pLAB_UiaEbzkQ$d^l_3lka8K2VdDg5rc-zT`=$RfFs8FQ?YvIqch3w`Juk=E`II7 z{H0w7&Eje|C0+JloaOqvwuWUk)E~cIsZ^RNp<&|I^q|mV`bG0q{2f@Yg;3PoeJ)C8GLY zf&ZZ|x9ywzYXyEFZz6iQ-@<7}ia*LdxZ8idZeQM{^ZSj4?v^b%6ZOb1r#8_Go9X|V z$$$LIDUMOqJ1*baIOT<#7Y9gp`O-(jUmch*Y<%OQ-})^1pOEL&_ma)TBX?#!=M;(O zoK|cO`M1Bip_iu7cT%H47d>%3ecDHxA9(x9<)c>5u7RrCYtHRB&EB}JJ_{CJotMXy zQZL_KJAAI@SL$-XBV#g86Qkzk_q{k@9;`u-h4Aacm;B@&c=Sx+wE>%F?cVj-f*xC* z-ts+XeEJ~S|arp(-4Ni+$9{!leVgvTV) ze``w3%56=lZQY%cD$$7rjDj9cSWC@iC9Ne{K*!s%4%HT7z=J>}fFQUGE>47k&LZ^x z#?gO86VAQ(ddA=vPY#k)UP}LdQfy}7rIJ-Nb?s1yd7)p$t;&o~ zry{Q{`sK(6&Sk^A4;*fM=iI>2`vxyq5%0cQ^4x@@eM-3>?$1$u+{=CBQ2+4ti9L=@ zeSGQ9!&A2#>s1r8f5LeW^;Yz@<~Pm1d1Kj%Pb#%9oH?`zc3O&l$)w+}YDNK$gq4G|n7XQ+@tvB663U zM7%5eNAzWGFJdJ<|4?BvaMUu{Am+`tTCLB=Uzh;#kL}w6~F1Hn{ixNRf;3`=IIj+HEkQ z>6-^kZ_*Jyw>^LnEWmpympj7hWP;_0vFw2uD`W@n*ID*Rq}oqJSczIQL?y>K!5AX( z1Xu|U0}4S0NKO&Zi`&CEt7T?j0%u{t0Paq_HIJ}@PF8h<7<11=p&%HWm<(vPFCjt2 zLt#5cfx;UW%23{TaKiG|Sj%94y3I-!h21y`Mn+!4Q`2T@H z%pL*B7!)(fExxxJX`yb*PZW-{u%C>kZA<&K;^Qq&OkK}D`nzIXct<1ueVrZWW=;D1t=<#!=j3yCmB9|_!~pL1(|PrHw#%baKINIvUW)(bszDbk*9hedTue<>p;ff?UDm0 z7#YtDLl^AGo!me3$BR>Y1U}j$6pWQ0I}6t`tpG+w@F59$>c2?Tn2f=lK4Ue27|@2X zY(_>ZoYh`Oc4a_$?LtO6oYOZOE`eY`^7t?pe1Cx+>gY{_L3NNXDnInOa`&~$s`plD zf9-qYO6(;R(sd~1z#>QhWp?S7{J56d6-1P_|4b$`Wg19m9WrA))HV6Ft?Rw*BRl6k zP}zZKky0-ukM=*gG|zH)=kq&W%^ + + AODBMobile + AODB Mobile client + Lockheed Martin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..6538ab9 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,30 @@ +/// +var util = require('gulp-util'); +environment = util.env.environment || 'development'; + +require('./build/gulp/run-tests'); +require('./build/gulp/compile-js'); +require('./build/gulp/compile-tests'); +require('./build/gulp/compile-less'); +require('./build/gulp/compile-template'); +require('./build/gulp/watch'); +require('./build/gulp/min-js-dependencies'); +require('./build/gulp/min-css-dependencies'); +require('./build/gulp/install'); +require('./build/gulp/compile-template-cache'); +require('./build/gulp/copy-resources'); +require('./build/gulp/copy-index'); +require('./build/gulp/install'); +require('./build/gulp/sonar'); +require('./build/gulp/update-url'); +require('./build/gulp/add-pushnotifications'); +require('./build/gulp/add-hockeyapp'); +require('./build/gulp/gitversion'); +require('./build/gulp/hockey-upload-android'); +require('./build/gulp/hockey-upload-ios'); +require('./build/gulp/purge-previous-ionic'); + +var g = require('gulp'); + +g.task('test', ['compile-tests', 'run-tests']); +g.task('build', ['copy-resources', 'copy-index', 'compile-js', 'compile-less', 'compile-template', 'compile-template-cache','install', 'purge-previous-ionic']); diff --git a/ionic.project b/ionic.project new file mode 100644 index 0000000..592c6ea --- /dev/null +++ b/ionic.project @@ -0,0 +1,4 @@ +{ + "name": "AODB.Mobile", + "app_id": "e5b00de9" +} diff --git a/karma.conf.js b/karma.conf.js new file mode 100644 index 0000000..4f1dd7a --- /dev/null +++ b/karma.conf.js @@ -0,0 +1,93 @@ +// Karma configurationi +// Generated on Tue Apr 21 2015 09:09:36 GMT+0100 (GMT Daylight Time) + +module.exports = function (config) { + var gulpConfig = require('./build/gulp.config')(); + config.set({ + // base path that will be used to resolve all patterns (eg. files, exclude) + basePath: '', + + // frameworks to use + // available frameworks: https://npmjs.org/browse/keyword/karma-adapter + frameworks: ['systemjs', 'jasmine'], + + // list of files / patterns to load in the browser + files: gulpConfig.karma.files, + + preprocessors: gulpConfig.karma.preprocessors, + + // list of files to exclude + exclude: gulpConfig.karma.exclude, + + systemjs: { + config: { + transpiler: 'babel', + defaultJSExtensions: true, + "baseURL": "./tests/compiled/", + "map": { + "app": './tests/compiled' + }, + "paths": { + 'systemjs': './../../jspm_packages/system.js', + 'system-polyfills': './../../jspm_packages/system-polyfills.js', + 'es6-module-loader': './../../node_modules/es6-module-loader/dist/es6-module-loader.js', + 'phantomjs-polyfill': './../../node_modules/phantomjs-polyfill/bind-polyfill.js', + 'moment': 'lib/moment.js' + } + } + }, + + + reporters: ['progress', 'coverage'], + + coverageReporter: { + reporters: gulpConfig.karma.coverage.reporters, + dir: gulpConfig.karma.coverage.dir + }, + + noResolve: false, + + htmlReporter: { + outputDir: './report/unittests', // where to put the reports + templatePath: null, // set if you moved jasmine_template.html + focusOnFailures: true, // reports show failures on start + namedFiles: false, // name files instead of creating sub-directories + pageTitle: null, // page title for reports; browser info by default + urlFriendlyName: false // simply replaces spaces with _ for files/dirs + }, + + // web server port + port: 9876, + + // enable / disable colors in the output (reporters and logs) + colors: true, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + // enable / disable watching file and executing tests whenever any file changes + autoWatch: true, + + // start these browsers + // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher + //browsers: ['PhantomJS'], + browsers: ['PhantomJS'], + + plugins: [ + 'karma-systemjs', + 'karma-typescript-preprocessor', + 'karma-chrome-launcher', + 'karma-coverage', + 'karma-html-reporter', + 'karma-jasmine', + 'karma-jasmine-html-reporter', + 'karma-phantomjs-launcher', + 'phantomjs' + ], + + // Continuous Integration mode + // if true, Karma captures browsers, runs the tests and exits + singleRun: true + }); +}; diff --git a/lib/jquery.signalR-2.2.1.js b/lib/jquery.signalR-2.2.1.js new file mode 100644 index 0000000..9e40960 --- /dev/null +++ b/lib/jquery.signalR-2.2.1.js @@ -0,0 +1,2955 @@ +/* jquery.signalR.core.js */ +/*global window:false */ +/*! + * ASP.NET SignalR JavaScript Library v2.2.1 + * http://signalr.net/ + * + * Copyright (c) .NET Foundation. All rights reserved. + * Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + * + */ + +/// +/// +(function ($, window, undefined) { + + var resources = { + nojQuery: "jQuery was not found. Please ensure jQuery is referenced before the SignalR client JavaScript file.", + noTransportOnInit: "No transport could be initialized successfully. Try specifying a different transport or none at all for auto initialization.", + errorOnNegotiate: "Error during negotiation request.", + stoppedWhileLoading: "The connection was stopped during page load.", + stoppedWhileNegotiating: "The connection was stopped during the negotiate request.", + errorParsingNegotiateResponse: "Error parsing negotiate response.", + errorDuringStartRequest: "Error during start request. Stopping the connection.", + stoppedDuringStartRequest: "The connection was stopped during the start request.", + errorParsingStartResponse: "Error parsing start response: '{0}'. Stopping the connection.", + invalidStartResponse: "Invalid start response: '{0}'. Stopping the connection.", + protocolIncompatible: "You are using a version of the client that isn't compatible with the server. Client version {0}, server version {1}.", + sendFailed: "Send failed.", + parseFailed: "Failed at parsing response: {0}", + longPollFailed: "Long polling request failed.", + eventSourceFailedToConnect: "EventSource failed to connect.", + eventSourceError: "Error raised by EventSource", + webSocketClosed: "WebSocket closed.", + pingServerFailedInvalidResponse: "Invalid ping response when pinging server: '{0}'.", + pingServerFailed: "Failed to ping server.", + pingServerFailedStatusCode: "Failed to ping server. Server responded with status code {0}, stopping the connection.", + pingServerFailedParse: "Failed to parse ping server response, stopping the connection.", + noConnectionTransport: "Connection is in an invalid state, there is no transport active.", + webSocketsInvalidState: "The Web Socket transport is in an invalid state, transitioning into reconnecting.", + reconnectTimeout: "Couldn't reconnect within the configured timeout of {0} ms, disconnecting.", + reconnectWindowTimeout: "The client has been inactive since {0} and it has exceeded the inactivity timeout of {1} ms. Stopping the connection." + }; + + if (typeof ($) !== "function") { + // no jQuery! + throw new Error(resources.nojQuery); + } + + var signalR, + _connection, + _pageLoaded = (window.document.readyState === "complete"), + _pageWindow = $(window), + _negotiateAbortText = "__Negotiate Aborted__", + events = { + onStart: "onStart", + onStarting: "onStarting", + onReceived: "onReceived", + onError: "onError", + onConnectionSlow: "onConnectionSlow", + onReconnecting: "onReconnecting", + onReconnect: "onReconnect", + onStateChanged: "onStateChanged", + onDisconnect: "onDisconnect" + }, + ajaxDefaults = { + processData: true, + timeout: null, + async: true, + global: false, + cache: false + }, + log = function (msg, logging) { + if (logging === false) { + return; + } + var m; + if (typeof (window.console) === "undefined") { + return; + } + m = "[" + new Date().toTimeString() + "] SignalR: " + msg; + if (window.console.debug) { + window.console.debug(m); + } else if (window.console.log) { + window.console.log(m); + } + }, + + changeState = function (connection, expectedState, newState) { + if (expectedState === connection.state) { + connection.state = newState; + + $(connection).triggerHandler(events.onStateChanged, [{ oldState: expectedState, newState: newState }]); + return true; + } + + return false; + }, + + isDisconnecting = function (connection) { + return connection.state === signalR.connectionState.disconnected; + }, + + supportsKeepAlive = function (connection) { + return connection._.keepAliveData.activated && + connection.transport.supportsKeepAlive(connection); + }, + + configureStopReconnectingTimeout = function (connection) { + var stopReconnectingTimeout, + onReconnectTimeout; + + // Check if this connection has already been configured to stop reconnecting after a specified timeout. + // Without this check if a connection is stopped then started events will be bound multiple times. + if (!connection._.configuredStopReconnectingTimeout) { + onReconnectTimeout = function (connection) { + var message = signalR._.format(signalR.resources.reconnectTimeout, connection.disconnectTimeout); + connection.log(message); + $(connection).triggerHandler(events.onError, [signalR._.error(message, /* source */ "TimeoutException")]); + connection.stop(/* async */ false, /* notifyServer */ false); + }; + + connection.reconnecting(function () { + var connection = this; + + // Guard against state changing in a previous user defined even handler + if (connection.state === signalR.connectionState.reconnecting) { + stopReconnectingTimeout = window.setTimeout(function () { onReconnectTimeout(connection); }, connection.disconnectTimeout); + } + }); + + connection.stateChanged(function (data) { + if (data.oldState === signalR.connectionState.reconnecting) { + // Clear the pending reconnect timeout check + window.clearTimeout(stopReconnectingTimeout); + } + }); + + connection._.configuredStopReconnectingTimeout = true; + } + }; + + signalR = function (url, qs, logging) { + /// Creates a new SignalR connection for the given url + /// The URL of the long polling endpoint + /// + /// [Optional] Custom querystring parameters to add to the connection URL. + /// If an object, every non-function member will be added to the querystring. + /// If a string, it's added to the QS as specified. + /// + /// + /// [Optional] A flag indicating whether connection logging is enabled to the browser + /// console/log. Defaults to false. + /// + + return new signalR.fn.init(url, qs, logging); + }; + + signalR._ = { + defaultContentType: "application/x-www-form-urlencoded; charset=UTF-8", + + ieVersion: (function () { + var version, + matches; + + if (window.navigator.appName === 'Microsoft Internet Explorer') { + // Check if the user agent has the pattern "MSIE (one or more numbers).(one or more numbers)"; + matches = /MSIE ([0-9]+\.[0-9]+)/.exec(window.navigator.userAgent); + + if (matches) { + version = window.parseFloat(matches[1]); + } + } + + // undefined value means not IE + return version; + })(), + + error: function (message, source, context) { + var e = new Error(message); + e.source = source; + + if (typeof context !== "undefined") { + e.context = context; + } + + return e; + }, + + transportError: function (message, transport, source, context) { + var e = this.error(message, source, context); + e.transport = transport ? transport.name : undefined; + return e; + }, + + format: function () { + /// Usage: format("Hi {0}, you are {1}!", "Foo", 100) + var s = arguments[0]; + for (var i = 0; i < arguments.length - 1; i++) { + s = s.replace("{" + i + "}", arguments[i + 1]); + } + return s; + }, + + firefoxMajorVersion: function (userAgent) { + // Firefox user agents: http://useragentstring.com/pages/Firefox/ + var matches = userAgent.match(/Firefox\/(\d+)/); + if (!matches || !matches.length || matches.length < 2) { + return 0; + } + return parseInt(matches[1], 10 /* radix */); + }, + + configurePingInterval: function (connection) { + var config = connection._.config, + onFail = function (error) { + $(connection).triggerHandler(events.onError, [error]); + }; + + if (config && !connection._.pingIntervalId && config.pingInterval) { + connection._.pingIntervalId = window.setInterval(function () { + signalR.transports._logic.pingServer(connection).fail(onFail); + }, config.pingInterval); + } + } + }; + + signalR.events = events; + + signalR.resources = resources; + + signalR.ajaxDefaults = ajaxDefaults; + + signalR.changeState = changeState; + + signalR.isDisconnecting = isDisconnecting; + + signalR.connectionState = { + connecting: 0, + connected: 1, + reconnecting: 2, + disconnected: 4 + }; + + signalR.hub = { + start: function () { + // This will get replaced with the real hub connection start method when hubs is referenced correctly + throw new Error("SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. ."); + } + }; + + // .on() was added in version 1.7.0, .load() was removed in version 3.0.0 so we fallback to .load() if .on() does + // not exist to not break existing applications + if (typeof _pageWindow.on == "function") { + _pageWindow.on("load", function () { _pageLoaded = true; }); + } + else { + _pageWindow.load(function () { _pageLoaded = true; }); + } + + function validateTransport(requestedTransport, connection) { + /// Validates the requested transport by cross checking it with the pre-defined signalR.transports + /// The designated transports that the user has specified. + /// The connection that will be using the requested transports. Used for logging purposes. + /// + + if ($.isArray(requestedTransport)) { + // Go through transport array and remove an "invalid" tranports + for (var i = requestedTransport.length - 1; i >= 0; i--) { + var transport = requestedTransport[i]; + if ($.type(transport) !== "string" || !signalR.transports[transport]) { + connection.log("Invalid transport: " + transport + ", removing it from the transports list."); + requestedTransport.splice(i, 1); + } + } + + // Verify we still have transports left, if we dont then we have invalid transports + if (requestedTransport.length === 0) { + connection.log("No transports remain within the specified transport array."); + requestedTransport = null; + } + } else if (!signalR.transports[requestedTransport] && requestedTransport !== "auto") { + connection.log("Invalid transport: " + requestedTransport.toString() + "."); + requestedTransport = null; + } else if (requestedTransport === "auto" && signalR._.ieVersion <= 8) { + // If we're doing an auto transport and we're IE8 then force longPolling, #1764 + return ["longPolling"]; + + } + + return requestedTransport; + } + + function getDefaultPort(protocol) { + if (protocol === "http:") { + return 80; + } else if (protocol === "https:") { + return 443; + } + } + + function addDefaultPort(protocol, url) { + // Remove ports from url. We have to check if there's a / or end of line + // following the port in order to avoid removing ports such as 8080. + if (url.match(/:\d+$/)) { + return url; + } else { + return url + ":" + getDefaultPort(protocol); + } + } + + function ConnectingMessageBuffer(connection, drainCallback) { + var that = this, + buffer = []; + + that.tryBuffer = function (message) { + if (connection.state === $.signalR.connectionState.connecting) { + buffer.push(message); + + return true; + } + + return false; + }; + + that.drain = function () { + // Ensure that the connection is connected when we drain (do not want to drain while a connection is not active) + if (connection.state === $.signalR.connectionState.connected) { + while (buffer.length > 0) { + drainCallback(buffer.shift()); + } + } + }; + + that.clear = function () { + buffer = []; + }; + } + + signalR.fn = signalR.prototype = { + init: function (url, qs, logging) { + var $connection = $(this); + + this.url = url; + this.qs = qs; + this.lastError = null; + this._ = { + keepAliveData: {}, + connectingMessageBuffer: new ConnectingMessageBuffer(this, function (message) { + $connection.triggerHandler(events.onReceived, [message]); + }), + lastMessageAt: new Date().getTime(), + lastActiveAt: new Date().getTime(), + beatInterval: 5000, // Default value, will only be overridden if keep alive is enabled, + beatHandle: null, + totalTransportConnectTimeout: 0 // This will be the sum of the TransportConnectTimeout sent in response to negotiate and connection.transportConnectTimeout + }; + if (typeof (logging) === "boolean") { + this.logging = logging; + } + }, + + _parseResponse: function (response) { + var that = this; + + if (!response) { + return response; + } else if (typeof response === "string") { + return that.json.parse(response); + } else { + return response; + } + }, + + _originalJson: window.JSON, + + json: window.JSON, + + isCrossDomain: function (url, against) { + /// Checks if url is cross domain + /// The base URL + /// + /// An optional argument to compare the URL against, if not specified it will be set to window.location. + /// If specified it must contain a protocol and a host property. + /// + var link; + + url = $.trim(url); + + against = against || window.location; + + if (url.indexOf("http") !== 0) { + return false; + } + + // Create an anchor tag. + link = window.document.createElement("a"); + link.href = url; + + // When checking for cross domain we have to special case port 80 because the window.location will remove the + return link.protocol + addDefaultPort(link.protocol, link.host) !== against.protocol + addDefaultPort(against.protocol, against.host); + }, + + ajaxDataType: "text", + + contentType: "application/json; charset=UTF-8", + + logging: false, + + state: signalR.connectionState.disconnected, + + clientProtocol: "1.5", + + reconnectDelay: 2000, + + transportConnectTimeout: 0, + + disconnectTimeout: 30000, // This should be set by the server in response to the negotiate request (30s default) + + reconnectWindow: 30000, // This should be set by the server in response to the negotiate request + + keepAliveWarnAt: 2 / 3, // Warn user of slow connection if we breach the X% mark of the keep alive timeout + + start: function (options, callback) { + /// Starts the connection + /// Options map + /// A callback function to execute when the connection has started + var connection = this, + config = { + pingInterval: 300000, + waitForPageLoad: true, + transport: "auto", + jsonp: false + }, + initialize, + deferred = connection._deferral || $.Deferred(), // Check to see if there is a pre-existing deferral that's being built on, if so we want to keep using it + parser = window.document.createElement("a"); + + connection.lastError = null; + + // Persist the deferral so that if start is called multiple times the same deferral is used. + connection._deferral = deferred; + + if (!connection.json) { + // no JSON! + throw new Error("SignalR: No JSON parser found. Please ensure json2.js is referenced before the SignalR.js file if you need to support clients without native JSON parsing support, e.g. IE<8."); + } + + if ($.type(options) === "function") { + // Support calling with single callback parameter + callback = options; + } else if ($.type(options) === "object") { + $.extend(config, options); + if ($.type(config.callback) === "function") { + callback = config.callback; + } + } + + config.transport = validateTransport(config.transport, connection); + + // If the transport is invalid throw an error and abort start + if (!config.transport) { + throw new Error("SignalR: Invalid transport(s) specified, aborting start."); + } + + connection._.config = config; + + // Check to see if start is being called prior to page load + // If waitForPageLoad is true we then want to re-direct function call to the window load event + if (!_pageLoaded && config.waitForPageLoad === true) { + connection._.deferredStartHandler = function () { + connection.start(options, callback); + }; + _pageWindow.bind("load", connection._.deferredStartHandler); + + return deferred.promise(); + } + + // If we're already connecting just return the same deferral as the original connection start + if (connection.state === signalR.connectionState.connecting) { + return deferred.promise(); + } else if (changeState(connection, + signalR.connectionState.disconnected, + signalR.connectionState.connecting) === false) { + // We're not connecting so try and transition into connecting. + // If we fail to transition then we're either in connected or reconnecting. + + deferred.resolve(connection); + return deferred.promise(); + } + + configureStopReconnectingTimeout(connection); + + // Resolve the full url + parser.href = connection.url; + if (!parser.protocol || parser.protocol === ":") { + connection.protocol = window.document.location.protocol; + connection.host = parser.host || window.document.location.host; + } else { + connection.protocol = parser.protocol; + connection.host = parser.host; + } + + connection.baseUrl = connection.protocol + "//" + connection.host; + + // Set the websocket protocol + connection.wsProtocol = connection.protocol === "https:" ? "wss://" : "ws://"; + + // If jsonp with no/auto transport is specified, then set the transport to long polling + // since that is the only transport for which jsonp really makes sense. + // Some developers might actually choose to specify jsonp for same origin requests + // as demonstrated by Issue #623. + if (config.transport === "auto" && config.jsonp === true) { + config.transport = "longPolling"; + } + + // If the url is protocol relative, prepend the current windows protocol to the url. + if (connection.url.indexOf("//") === 0) { + connection.url = window.location.protocol + connection.url; + connection.log("Protocol relative URL detected, normalizing it to '" + connection.url + "'."); + } + + if (this.isCrossDomain(connection.url)) { + connection.log("Auto detected cross domain url."); + + if (config.transport === "auto") { + // TODO: Support XDM with foreverFrame + config.transport = ["webSockets", "serverSentEvents", "longPolling"]; + } + + if (typeof (config.withCredentials) === "undefined") { + config.withCredentials = false; + } + + // Determine if jsonp is the only choice for negotiation, ajaxSend and ajaxAbort. + // i.e. if the browser doesn't supports CORS + // If it is, ignore any preference to the contrary, and switch to jsonp. + if (!config.jsonp) { + config.jsonp = !$.support.cors; + + if (config.jsonp) { + connection.log("Using jsonp because this browser doesn't support CORS."); + } + } + + connection.contentType = signalR._.defaultContentType; + } + + connection.withCredentials = config.withCredentials; + + connection.ajaxDataType = config.jsonp ? "jsonp" : "text"; + + $(connection).bind(events.onStart, function (e, data) { + if ($.type(callback) === "function") { + callback.call(connection); + } + deferred.resolve(connection); + }); + + connection._.initHandler = signalR.transports._logic.initHandler(connection); + + initialize = function (transports, index) { + var noTransportError = signalR._.error(resources.noTransportOnInit); + + index = index || 0; + if (index >= transports.length) { + if (index === 0) { + connection.log("No transports supported by the server were selected."); + } else if (index === 1) { + connection.log("No fallback transports were selected."); + } else { + connection.log("Fallback transports exhausted."); + } + + // No transport initialized successfully + $(connection).triggerHandler(events.onError, [noTransportError]); + deferred.reject(noTransportError); + // Stop the connection if it has connected and move it into the disconnected state + connection.stop(); + return; + } + + // The connection was aborted + if (connection.state === signalR.connectionState.disconnected) { + return; + } + + var transportName = transports[index], + transport = signalR.transports[transportName], + onFallback = function () { + initialize(transports, index + 1); + }; + + connection.transport = transport; + + try { + connection._.initHandler.start(transport, function () { // success + // Firefox 11+ doesn't allow sync XHR withCredentials: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#withCredentials + var isFirefox11OrGreater = signalR._.firefoxMajorVersion(window.navigator.userAgent) >= 11, + asyncAbort = !!connection.withCredentials && isFirefox11OrGreater; + + connection.log("The start request succeeded. Transitioning to the connected state."); + + if (supportsKeepAlive(connection)) { + signalR.transports._logic.monitorKeepAlive(connection); + } + + signalR.transports._logic.startHeartbeat(connection); + + // Used to ensure low activity clients maintain their authentication. + // Must be configured once a transport has been decided to perform valid ping requests. + signalR._.configurePingInterval(connection); + + if (!changeState(connection, + signalR.connectionState.connecting, + signalR.connectionState.connected)) { + connection.log("WARNING! The connection was not in the connecting state."); + } + + // Drain any incoming buffered messages (messages that came in prior to connect) + connection._.connectingMessageBuffer.drain(); + + $(connection).triggerHandler(events.onStart); + + // wire the stop handler for when the user leaves the page + _pageWindow.bind("unload", function () { + connection.log("Window unloading, stopping the connection."); + + connection.stop(asyncAbort); + }); + + if (isFirefox11OrGreater) { + // Firefox does not fire cross-domain XHRs in the normal unload handler on tab close. + // #2400 + _pageWindow.bind("beforeunload", function () { + // If connection.stop() runs runs in beforeunload and fails, it will also fail + // in unload unless connection.stop() runs after a timeout. + window.setTimeout(function () { + connection.stop(asyncAbort); + }, 0); + }); + } + }, onFallback); + } + catch (error) { + connection.log(transport.name + " transport threw '" + error.message + "' when attempting to start."); + onFallback(); + } + }; + + var url = connection.url + "/negotiate", + onFailed = function (error, connection) { + var err = signalR._.error(resources.errorOnNegotiate, error, connection._.negotiateRequest); + + $(connection).triggerHandler(events.onError, err); + deferred.reject(err); + // Stop the connection if negotiate failed + connection.stop(); + }; + + $(connection).triggerHandler(events.onStarting); + + url = signalR.transports._logic.prepareQueryString(connection, url); + + connection.log("Negotiating with '" + url + "'."); + + // Save the ajax negotiate request object so we can abort it if stop is called while the request is in flight. + connection._.negotiateRequest = signalR.transports._logic.ajax(connection, { + url: url, + error: function (error, statusText) { + // We don't want to cause any errors if we're aborting our own negotiate request. + if (statusText !== _negotiateAbortText) { + onFailed(error, connection); + } else { + // This rejection will noop if the deferred has already been resolved or rejected. + deferred.reject(signalR._.error(resources.stoppedWhileNegotiating, null /* error */, connection._.negotiateRequest)); + } + }, + success: function (result) { + var res, + keepAliveData, + protocolError, + transports = [], + supportedTransports = []; + + try { + res = connection._parseResponse(result); + } catch (error) { + onFailed(signalR._.error(resources.errorParsingNegotiateResponse, error), connection); + return; + } + + keepAliveData = connection._.keepAliveData; + connection.appRelativeUrl = res.Url; + connection.id = res.ConnectionId; + connection.token = res.ConnectionToken; + connection.webSocketServerUrl = res.WebSocketServerUrl; + + // The long poll timeout is the ConnectionTimeout plus 10 seconds + connection._.pollTimeout = res.ConnectionTimeout * 1000 + 10000; // in ms + + // Once the server has labeled the PersistentConnection as Disconnected, we should stop attempting to reconnect + // after res.DisconnectTimeout seconds. + connection.disconnectTimeout = res.DisconnectTimeout * 1000; // in ms + + // Add the TransportConnectTimeout from the response to the transportConnectTimeout from the client to calculate the total timeout + connection._.totalTransportConnectTimeout = connection.transportConnectTimeout + res.TransportConnectTimeout * 1000; + + // If we have a keep alive + if (res.KeepAliveTimeout) { + // Register the keep alive data as activated + keepAliveData.activated = true; + + // Timeout to designate when to force the connection into reconnecting converted to milliseconds + keepAliveData.timeout = res.KeepAliveTimeout * 1000; + + // Timeout to designate when to warn the developer that the connection may be dead or is not responding. + keepAliveData.timeoutWarning = keepAliveData.timeout * connection.keepAliveWarnAt; + + // Instantiate the frequency in which we check the keep alive. It must be short in order to not miss/pick up any changes + connection._.beatInterval = (keepAliveData.timeout - keepAliveData.timeoutWarning) / 3; + } else { + keepAliveData.activated = false; + } + + connection.reconnectWindow = connection.disconnectTimeout + (keepAliveData.timeout || 0); + + if (!res.ProtocolVersion || res.ProtocolVersion !== connection.clientProtocol) { + protocolError = signalR._.error(signalR._.format(resources.protocolIncompatible, connection.clientProtocol, res.ProtocolVersion)); + $(connection).triggerHandler(events.onError, [protocolError]); + deferred.reject(protocolError); + + return; + } + + $.each(signalR.transports, function (key) { + if ((key.indexOf("_") === 0) || (key === "webSockets" && !res.TryWebSockets)) { + return true; + } + supportedTransports.push(key); + }); + + if ($.isArray(config.transport)) { + $.each(config.transport, function (_, transport) { + if ($.inArray(transport, supportedTransports) >= 0) { + transports.push(transport); + } + }); + } else if (config.transport === "auto") { + transports = supportedTransports; + } else if ($.inArray(config.transport, supportedTransports) >= 0) { + transports.push(config.transport); + } + + initialize(transports); + } + }); + + return deferred.promise(); + }, + + starting: function (callback) { + /// Adds a callback that will be invoked before anything is sent over the connection + /// A callback function to execute before the connection is fully instantiated. + /// + var connection = this; + $(connection).bind(events.onStarting, function (e, data) { + callback.call(connection); + }); + return connection; + }, + + send: function (data) { + /// Sends data over the connection + /// The data to send over the connection + /// + var connection = this; + + if (connection.state === signalR.connectionState.disconnected) { + // Connection hasn't been started yet + throw new Error("SignalR: Connection must be started before data can be sent. Call .start() before .send()"); + } + + if (connection.state === signalR.connectionState.connecting) { + // Connection hasn't been started yet + throw new Error("SignalR: Connection has not been fully initialized. Use .start().done() or .start().fail() to run logic after the connection has started."); + } + + connection.transport.send(connection, data); + // REVIEW: Should we return deferred here? + return connection; + }, + + received: function (callback) { + /// Adds a callback that will be invoked after anything is received over the connection + /// A callback function to execute when any data is received on the connection + /// + var connection = this; + $(connection).bind(events.onReceived, function (e, data) { + callback.call(connection, data); + }); + return connection; + }, + + stateChanged: function (callback) { + /// Adds a callback that will be invoked when the connection state changes + /// A callback function to execute when the connection state changes + /// + var connection = this; + $(connection).bind(events.onStateChanged, function (e, data) { + callback.call(connection, data); + }); + return connection; + }, + + error: function (callback) { + /// Adds a callback that will be invoked after an error occurs with the connection + /// A callback function to execute when an error occurs on the connection + /// + var connection = this; + $(connection).bind(events.onError, function (e, errorData, sendData) { + connection.lastError = errorData; + // In practice 'errorData' is the SignalR built error object. + // In practice 'sendData' is undefined for all error events except those triggered by + // 'ajaxSend' and 'webSockets.send'.'sendData' is the original send payload. + callback.call(connection, errorData, sendData); + }); + return connection; + }, + + disconnected: function (callback) { + /// Adds a callback that will be invoked when the client disconnects + /// A callback function to execute when the connection is broken + /// + var connection = this; + $(connection).bind(events.onDisconnect, function (e, data) { + callback.call(connection); + }); + return connection; + }, + + connectionSlow: function (callback) { + /// Adds a callback that will be invoked when the client detects a slow connection + /// A callback function to execute when the connection is slow + /// + var connection = this; + $(connection).bind(events.onConnectionSlow, function (e, data) { + callback.call(connection); + }); + + return connection; + }, + + reconnecting: function (callback) { + /// Adds a callback that will be invoked when the underlying transport begins reconnecting + /// A callback function to execute when the connection enters a reconnecting state + /// + var connection = this; + $(connection).bind(events.onReconnecting, function (e, data) { + callback.call(connection); + }); + return connection; + }, + + reconnected: function (callback) { + /// Adds a callback that will be invoked when the underlying transport reconnects + /// A callback function to execute when the connection is restored + /// + var connection = this; + $(connection).bind(events.onReconnect, function (e, data) { + callback.call(connection); + }); + return connection; + }, + + stop: function (async, notifyServer) { + /// Stops listening + /// Whether or not to asynchronously abort the connection + /// Whether we want to notify the server that we are aborting the connection + /// + var connection = this, + // Save deferral because this is always cleaned up + deferral = connection._deferral; + + // Verify that we've bound a load event. + if (connection._.deferredStartHandler) { + // Unbind the event. + _pageWindow.unbind("load", connection._.deferredStartHandler); + } + + // Always clean up private non-timeout based state. + delete connection._.config; + delete connection._.deferredStartHandler; + + // This needs to be checked despite the connection state because a connection start can be deferred until page load. + // If we've deferred the start due to a page load we need to unbind the "onLoad" -> start event. + if (!_pageLoaded && (!connection._.config || connection._.config.waitForPageLoad === true)) { + connection.log("Stopping connection prior to negotiate."); + + // If we have a deferral we should reject it + if (deferral) { + deferral.reject(signalR._.error(resources.stoppedWhileLoading)); + } + + // Short-circuit because the start has not been fully started. + return; + } + + if (connection.state === signalR.connectionState.disconnected) { + return; + } + + connection.log("Stopping connection."); + + // Clear this no matter what + window.clearTimeout(connection._.beatHandle); + window.clearInterval(connection._.pingIntervalId); + + if (connection.transport) { + connection.transport.stop(connection); + + if (notifyServer !== false) { + connection.transport.abort(connection, async); + } + + if (supportsKeepAlive(connection)) { + signalR.transports._logic.stopMonitoringKeepAlive(connection); + } + + connection.transport = null; + } + + if (connection._.negotiateRequest) { + // If the negotiation request has already completed this will noop. + connection._.negotiateRequest.abort(_negotiateAbortText); + delete connection._.negotiateRequest; + } + + // Ensure that initHandler.stop() is called before connection._deferral is deleted + if (connection._.initHandler) { + connection._.initHandler.stop(); + } + + delete connection._deferral; + delete connection.messageId; + delete connection.groupsToken; + delete connection.id; + delete connection._.pingIntervalId; + delete connection._.lastMessageAt; + delete connection._.lastActiveAt; + + // Clear out our message buffer + connection._.connectingMessageBuffer.clear(); + + // Trigger the disconnect event + changeState(connection, connection.state, signalR.connectionState.disconnected); + $(connection).triggerHandler(events.onDisconnect); + + return connection; + }, + + log: function (msg) { + log(msg, this.logging); + } + }; + + signalR.fn.init.prototype = signalR.fn; + + signalR.noConflict = function () { + /// Reinstates the original value of $.connection and returns the signalR object for manual assignment + /// + if ($.connection === signalR) { + $.connection = _connection; + } + return signalR; + }; + + if ($.connection) { + _connection = $.connection; + } + + $.connection = $.signalR = signalR; + +}(window.jQuery, window)); +/* jquery.signalR.transports.common.js */ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +/*global window:false */ +/// + +(function ($, window, undefined) { + + var signalR = $.signalR, + events = $.signalR.events, + changeState = $.signalR.changeState, + startAbortText = "__Start Aborted__", + transportLogic; + + signalR.transports = {}; + + function beat(connection) { + if (connection._.keepAliveData.monitoring) { + checkIfAlive(connection); + } + + // Ensure that we successfully marked active before continuing the heartbeat. + if (transportLogic.markActive(connection)) { + connection._.beatHandle = window.setTimeout(function () { + beat(connection); + }, connection._.beatInterval); + } + } + + function checkIfAlive(connection) { + var keepAliveData = connection._.keepAliveData, + timeElapsed; + + // Only check if we're connected + if (connection.state === signalR.connectionState.connected) { + timeElapsed = new Date().getTime() - connection._.lastMessageAt; + + // Check if the keep alive has completely timed out + if (timeElapsed >= keepAliveData.timeout) { + connection.log("Keep alive timed out. Notifying transport that connection has been lost."); + + // Notify transport that the connection has been lost + connection.transport.lostConnection(connection); + } else if (timeElapsed >= keepAliveData.timeoutWarning) { + // This is to assure that the user only gets a single warning + if (!keepAliveData.userNotified) { + connection.log("Keep alive has been missed, connection may be dead/slow."); + $(connection).triggerHandler(events.onConnectionSlow); + keepAliveData.userNotified = true; + } + } else { + keepAliveData.userNotified = false; + } + } + } + + function getAjaxUrl(connection, path) { + var url = connection.url + path; + + if (connection.transport) { + url += "?transport=" + connection.transport.name; + } + + return transportLogic.prepareQueryString(connection, url); + } + + function InitHandler(connection) { + this.connection = connection; + + this.startRequested = false; + this.startCompleted = false; + this.connectionStopped = false; + } + + InitHandler.prototype = { + start: function (transport, onSuccess, onFallback) { + var that = this, + connection = that.connection, + failCalled = false; + + if (that.startRequested || that.connectionStopped) { + connection.log("WARNING! " + transport.name + " transport cannot be started. Initialization ongoing or completed."); + return; + } + + connection.log(transport.name + " transport starting."); + + transport.start(connection, function () { + if (!failCalled) { + that.initReceived(transport, onSuccess); + } + }, function (error) { + // Don't allow the same transport to cause onFallback to be called twice + if (!failCalled) { + failCalled = true; + that.transportFailed(transport, error, onFallback); + } + + // Returns true if the transport should stop; + // false if it should attempt to reconnect + return !that.startCompleted || that.connectionStopped; + }); + + that.transportTimeoutHandle = window.setTimeout(function () { + if (!failCalled) { + failCalled = true; + connection.log(transport.name + " transport timed out when trying to connect."); + that.transportFailed(transport, undefined, onFallback); + } + }, connection._.totalTransportConnectTimeout); + }, + + stop: function () { + this.connectionStopped = true; + window.clearTimeout(this.transportTimeoutHandle); + signalR.transports._logic.tryAbortStartRequest(this.connection); + }, + + initReceived: function (transport, onSuccess) { + var that = this, + connection = that.connection; + + if (that.startRequested) { + connection.log("WARNING! The client received multiple init messages."); + return; + } + + if (that.connectionStopped) { + return; + } + + that.startRequested = true; + window.clearTimeout(that.transportTimeoutHandle); + + connection.log(transport.name + " transport connected. Initiating start request."); + signalR.transports._logic.ajaxStart(connection, function () { + that.startCompleted = true; + onSuccess(); + }); + }, + + transportFailed: function (transport, error, onFallback) { + var connection = this.connection, + deferred = connection._deferral, + wrappedError; + + if (this.connectionStopped) { + return; + } + + window.clearTimeout(this.transportTimeoutHandle); + + if (!this.startRequested) { + transport.stop(connection); + + connection.log(transport.name + " transport failed to connect. Attempting to fall back."); + onFallback(); + } else if (!this.startCompleted) { + // Do not attempt to fall back if a start request is ongoing during a transport failure. + // Instead, trigger an error and stop the connection. + wrappedError = signalR._.error(signalR.resources.errorDuringStartRequest, error); + + connection.log(transport.name + " transport failed during the start request. Stopping the connection."); + $(connection).triggerHandler(events.onError, [wrappedError]); + if (deferred) { + deferred.reject(wrappedError); + } + + connection.stop(); + } else { + // The start request has completed, but the connection has not stopped. + // No need to do anything here. The transport should attempt its normal reconnect logic. + } + } + }; + + transportLogic = signalR.transports._logic = { + ajax: function (connection, options) { + return $.ajax( + $.extend(/*deep copy*/ true, {}, $.signalR.ajaxDefaults, { + type: "GET", + data: {}, + xhrFields: { withCredentials: connection.withCredentials }, + contentType: connection.contentType, + dataType: connection.ajaxDataType + }, options)); + }, + + pingServer: function (connection) { + /// Pings the server + /// Connection associated with the server ping + /// + var url, + xhr, + deferral = $.Deferred(); + + if (connection.transport) { + url = connection.url + "/ping"; + + url = transportLogic.addQs(url, connection.qs); + + xhr = transportLogic.ajax(connection, { + url: url, + success: function (result) { + var data; + + try { + data = connection._parseResponse(result); + } + catch (error) { + deferral.reject( + signalR._.transportError( + signalR.resources.pingServerFailedParse, + connection.transport, + error, + xhr + ) + ); + connection.stop(); + return; + } + + if (data.Response === "pong") { + deferral.resolve(); + } + else { + deferral.reject( + signalR._.transportError( + signalR._.format(signalR.resources.pingServerFailedInvalidResponse, result), + connection.transport, + null /* error */, + xhr + ) + ); + } + }, + error: function (error) { + if (error.status === 401 || error.status === 403) { + deferral.reject( + signalR._.transportError( + signalR._.format(signalR.resources.pingServerFailedStatusCode, error.status), + connection.transport, + error, + xhr + ) + ); + connection.stop(); + } + else { + deferral.reject( + signalR._.transportError( + signalR.resources.pingServerFailed, + connection.transport, + error, + xhr + ) + ); + } + } + }); + } + else { + deferral.reject( + signalR._.transportError( + signalR.resources.noConnectionTransport, + connection.transport + ) + ); + } + + return deferral.promise(); + }, + + prepareQueryString: function (connection, url) { + var preparedUrl; + + // Use addQs to start since it handles the ?/& prefix for us + preparedUrl = transportLogic.addQs(url, "clientProtocol=" + connection.clientProtocol); + + // Add the user-specified query string params if any + preparedUrl = transportLogic.addQs(preparedUrl, connection.qs); + + if (connection.token) { + preparedUrl += "&connectionToken=" + window.encodeURIComponent(connection.token); + } + + if (connection.data) { + preparedUrl += "&connectionData=" + window.encodeURIComponent(connection.data); + } + + return preparedUrl; + }, + + addQs: function (url, qs) { + var appender = url.indexOf("?") !== -1 ? "&" : "?", + firstChar; + + if (!qs) { + return url; + } + + if (typeof (qs) === "object") { + return url + appender + $.param(qs); + } + + if (typeof (qs) === "string") { + firstChar = qs.charAt(0); + + if (firstChar === "?" || firstChar === "&") { + appender = ""; + } + + return url + appender + qs; + } + + throw new Error("Query string property must be either a string or object."); + }, + + // BUG #2953: The url needs to be same otherwise it will cause a memory leak + getUrl: function (connection, transport, reconnecting, poll, ajaxPost) { + /// Gets the url for making a GET based connect request + var baseUrl = transport === "webSockets" ? "" : connection.baseUrl, + url = baseUrl + connection.appRelativeUrl, + qs = "transport=" + transport; + + if (!ajaxPost && connection.groupsToken) { + qs += "&groupsToken=" + window.encodeURIComponent(connection.groupsToken); + } + + if (!reconnecting) { + url += "/connect"; + } else { + if (poll) { + // longPolling transport specific + url += "/poll"; + } else { + url += "/reconnect"; + } + + if (!ajaxPost && connection.messageId) { + qs += "&messageId=" + window.encodeURIComponent(connection.messageId); + } + } + url += "?" + qs; + url = transportLogic.prepareQueryString(connection, url); + + if (!ajaxPost) { + url += "&tid=" + Math.floor(Math.random() * 11); + } + + return url; + }, + + maximizePersistentResponse: function (minPersistentResponse) { + return { + MessageId: minPersistentResponse.C, + Messages: minPersistentResponse.M, + Initialized: typeof (minPersistentResponse.S) !== "undefined" ? true : false, + ShouldReconnect: typeof (minPersistentResponse.T) !== "undefined" ? true : false, + LongPollDelay: minPersistentResponse.L, + GroupsToken: minPersistentResponse.G + }; + }, + + updateGroups: function (connection, groupsToken) { + if (groupsToken) { + connection.groupsToken = groupsToken; + } + }, + + stringifySend: function (connection, message) { + if (typeof (message) === "string" || typeof (message) === "undefined" || message === null) { + return message; + } + return connection.json.stringify(message); + }, + + ajaxSend: function (connection, data) { + var payload = transportLogic.stringifySend(connection, data), + url = getAjaxUrl(connection, "/send"), + xhr, + onFail = function (error, connection) { + $(connection).triggerHandler(events.onError, [signalR._.transportError(signalR.resources.sendFailed, connection.transport, error, xhr), data]); + }; + + + xhr = transportLogic.ajax(connection, { + url: url, + type: connection.ajaxDataType === "jsonp" ? "GET" : "POST", + contentType: signalR._.defaultContentType, + data: { + data: payload + }, + success: function (result) { + var res; + + if (result) { + try { + res = connection._parseResponse(result); + } + catch (error) { + onFail(error, connection); + connection.stop(); + return; + } + + transportLogic.triggerReceived(connection, res); + } + }, + error: function (error, textStatus) { + if (textStatus === "abort" || textStatus === "parsererror") { + // The parsererror happens for sends that don't return any data, and hence + // don't write the jsonp callback to the response. This is harder to fix on the server + // so just hack around it on the client for now. + return; + } + + onFail(error, connection); + } + }); + + return xhr; + }, + + ajaxAbort: function (connection, async) { + if (typeof (connection.transport) === "undefined") { + return; + } + + // Async by default unless explicitly overidden + async = typeof async === "undefined" ? true : async; + + var url = getAjaxUrl(connection, "/abort"); + + transportLogic.ajax(connection, { + url: url, + async: async, + timeout: 1000, + type: "POST" + }); + + connection.log("Fired ajax abort async = " + async + "."); + }, + + ajaxStart: function (connection, onSuccess) { + var rejectDeferred = function (error) { + var deferred = connection._deferral; + if (deferred) { + deferred.reject(error); + } + }, + triggerStartError = function (error) { + connection.log("The start request failed. Stopping the connection."); + $(connection).triggerHandler(events.onError, [error]); + rejectDeferred(error); + connection.stop(); + }; + + connection._.startRequest = transportLogic.ajax(connection, { + url: getAjaxUrl(connection, "/start"), + success: function (result, statusText, xhr) { + var data; + + try { + data = connection._parseResponse(result); + } catch (error) { + triggerStartError(signalR._.error( + signalR._.format(signalR.resources.errorParsingStartResponse, result), + error, xhr)); + return; + } + + if (data.Response === "started") { + onSuccess(); + } else { + triggerStartError(signalR._.error( + signalR._.format(signalR.resources.invalidStartResponse, result), + null /* error */, xhr)); + } + }, + error: function (xhr, statusText, error) { + if (statusText !== startAbortText) { + triggerStartError(signalR._.error( + signalR.resources.errorDuringStartRequest, + error, xhr)); + } else { + // Stop has been called, no need to trigger the error handler + // or stop the connection again with onStartError + connection.log("The start request aborted because connection.stop() was called."); + rejectDeferred(signalR._.error( + signalR.resources.stoppedDuringStartRequest, + null /* error */, xhr)); + } + } + }); + }, + + tryAbortStartRequest: function (connection) { + if (connection._.startRequest) { + // If the start request has already completed this will noop. + connection._.startRequest.abort(startAbortText); + delete connection._.startRequest; + } + }, + + tryInitialize: function (connection, persistentResponse, onInitialized) { + if (persistentResponse.Initialized && onInitialized) { + onInitialized(); + } else if (persistentResponse.Initialized) { + connection.log("WARNING! The client received an init message after reconnecting."); + } + + }, + + triggerReceived: function (connection, data) { + if (!connection._.connectingMessageBuffer.tryBuffer(data)) { + $(connection).triggerHandler(events.onReceived, [data]); + } + }, + + processMessages: function (connection, minData, onInitialized) { + var data; + + // Update the last message time stamp + transportLogic.markLastMessage(connection); + + if (minData) { + data = transportLogic.maximizePersistentResponse(minData); + + transportLogic.updateGroups(connection, data.GroupsToken); + + if (data.MessageId) { + connection.messageId = data.MessageId; + } + + if (data.Messages) { + $.each(data.Messages, function (index, message) { + transportLogic.triggerReceived(connection, message); + }); + + transportLogic.tryInitialize(connection, data, onInitialized); + } + } + }, + + monitorKeepAlive: function (connection) { + var keepAliveData = connection._.keepAliveData; + + // If we haven't initiated the keep alive timeouts then we need to + if (!keepAliveData.monitoring) { + keepAliveData.monitoring = true; + + transportLogic.markLastMessage(connection); + + // Save the function so we can unbind it on stop + connection._.keepAliveData.reconnectKeepAliveUpdate = function () { + // Mark a new message so that keep alive doesn't time out connections + transportLogic.markLastMessage(connection); + }; + + // Update Keep alive on reconnect + $(connection).bind(events.onReconnect, connection._.keepAliveData.reconnectKeepAliveUpdate); + + connection.log("Now monitoring keep alive with a warning timeout of " + keepAliveData.timeoutWarning + ", keep alive timeout of " + keepAliveData.timeout + " and disconnecting timeout of " + connection.disconnectTimeout); + } else { + connection.log("Tried to monitor keep alive but it's already being monitored."); + } + }, + + stopMonitoringKeepAlive: function (connection) { + var keepAliveData = connection._.keepAliveData; + + // Only attempt to stop the keep alive monitoring if its being monitored + if (keepAliveData.monitoring) { + // Stop monitoring + keepAliveData.monitoring = false; + + // Remove the updateKeepAlive function from the reconnect event + $(connection).unbind(events.onReconnect, connection._.keepAliveData.reconnectKeepAliveUpdate); + + // Clear all the keep alive data + connection._.keepAliveData = {}; + connection.log("Stopping the monitoring of the keep alive."); + } + }, + + startHeartbeat: function (connection) { + connection._.lastActiveAt = new Date().getTime(); + beat(connection); + }, + + markLastMessage: function (connection) { + connection._.lastMessageAt = new Date().getTime(); + }, + + markActive: function (connection) { + if (transportLogic.verifyLastActive(connection)) { + connection._.lastActiveAt = new Date().getTime(); + return true; + } + + return false; + }, + + isConnectedOrReconnecting: function (connection) { + return connection.state === signalR.connectionState.connected || + connection.state === signalR.connectionState.reconnecting; + }, + + ensureReconnectingState: function (connection) { + if (changeState(connection, + signalR.connectionState.connected, + signalR.connectionState.reconnecting) === true) { + $(connection).triggerHandler(events.onReconnecting); + } + return connection.state === signalR.connectionState.reconnecting; + }, + + clearReconnectTimeout: function (connection) { + if (connection && connection._.reconnectTimeout) { + window.clearTimeout(connection._.reconnectTimeout); + delete connection._.reconnectTimeout; + } + }, + + verifyLastActive: function (connection) { + if (new Date().getTime() - connection._.lastActiveAt >= connection.reconnectWindow) { + var message = signalR._.format(signalR.resources.reconnectWindowTimeout, new Date(connection._.lastActiveAt), connection.reconnectWindow); + connection.log(message); + $(connection).triggerHandler(events.onError, [signalR._.error(message, /* source */ "TimeoutException")]); + connection.stop(/* async */ false, /* notifyServer */ false); + return false; + } + + return true; + }, + + reconnect: function (connection, transportName) { + var transport = signalR.transports[transportName]; + + // We should only set a reconnectTimeout if we are currently connected + // and a reconnectTimeout isn't already set. + if (transportLogic.isConnectedOrReconnecting(connection) && !connection._.reconnectTimeout) { + // Need to verify before the setTimeout occurs because an application sleep could occur during the setTimeout duration. + if (!transportLogic.verifyLastActive(connection)) { + return; + } + + connection._.reconnectTimeout = window.setTimeout(function () { + if (!transportLogic.verifyLastActive(connection)) { + return; + } + + transport.stop(connection); + + if (transportLogic.ensureReconnectingState(connection)) { + connection.log(transportName + " reconnecting."); + transport.start(connection); + } + }, connection.reconnectDelay); + } + }, + + handleParseFailure: function (connection, result, error, onFailed, context) { + var wrappedError = signalR._.transportError( + signalR._.format(signalR.resources.parseFailed, result), + connection.transport, + error, + context); + + // If we're in the initialization phase trigger onFailed, otherwise stop the connection. + if (onFailed && onFailed(wrappedError)) { + connection.log("Failed to parse server response while attempting to connect."); + } else { + $(connection).triggerHandler(events.onError, [wrappedError]); + connection.stop(); + } + }, + + initHandler: function (connection) { + return new InitHandler(connection); + }, + + foreverFrame: { + count: 0, + connections: {} + } + }; + +}(window.jQuery, window)); +/* jquery.signalR.transports.webSockets.js */ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + + +/*global window:false */ +/// + +(function ($, window, undefined) { + + var signalR = $.signalR, + events = $.signalR.events, + changeState = $.signalR.changeState, + transportLogic = signalR.transports._logic; + + signalR.transports.webSockets = { + name: "webSockets", + + supportsKeepAlive: function () { + return true; + }, + + send: function (connection, data) { + var payload = transportLogic.stringifySend(connection, data); + + try { + connection.socket.send(payload); + } catch (ex) { + $(connection).triggerHandler(events.onError, + [signalR._.transportError( + signalR.resources.webSocketsInvalidState, + connection.transport, + ex, + connection.socket + ), + data]); + } + }, + + start: function (connection, onSuccess, onFailed) { + var url, + opened = false, + that = this, + reconnecting = !onSuccess, + $connection = $(connection); + + if (!window.WebSocket) { + onFailed(); + return; + } + + if (!connection.socket) { + if (connection.webSocketServerUrl) { + url = connection.webSocketServerUrl; + } else { + url = connection.wsProtocol + connection.host; + } + + url += transportLogic.getUrl(connection, this.name, reconnecting); + + connection.log("Connecting to websocket endpoint '" + url + "'."); + connection.socket = new window.WebSocket(url); + + connection.socket.onopen = function () { + opened = true; + connection.log("Websocket opened."); + + transportLogic.clearReconnectTimeout(connection); + + if (changeState(connection, + signalR.connectionState.reconnecting, + signalR.connectionState.connected) === true) { + $connection.triggerHandler(events.onReconnect); + } + }; + + connection.socket.onclose = function (event) { + var error; + + // Only handle a socket close if the close is from the current socket. + // Sometimes on disconnect the server will push down an onclose event + // to an expired socket. + + if (this === connection.socket) { + if (opened && typeof event.wasClean !== "undefined" && event.wasClean === false) { + // Ideally this would use the websocket.onerror handler (rather than checking wasClean in onclose) but + // I found in some circumstances Chrome won't call onerror. This implementation seems to work on all browsers. + error = signalR._.transportError( + signalR.resources.webSocketClosed, + connection.transport, + event); + + connection.log("Unclean disconnect from websocket: " + (event.reason || "[no reason given].")); + } else { + connection.log("Websocket closed."); + } + + if (!onFailed || !onFailed(error)) { + if (error) { + $(connection).triggerHandler(events.onError, [error]); + } + + that.reconnect(connection); + } + } + }; + + connection.socket.onmessage = function (event) { + var data; + + try { + data = connection._parseResponse(event.data); + } + catch (error) { + transportLogic.handleParseFailure(connection, event.data, error, onFailed, event); + return; + } + + if (data) { + // data.M is PersistentResponse.Messages + if ($.isEmptyObject(data) || data.M) { + transportLogic.processMessages(connection, data, onSuccess); + } else { + // For websockets we need to trigger onReceived + // for callbacks to outgoing hub calls. + transportLogic.triggerReceived(connection, data); + } + } + }; + } + }, + + reconnect: function (connection) { + transportLogic.reconnect(connection, this.name); + }, + + lostConnection: function (connection) { + this.reconnect(connection); + }, + + stop: function (connection) { + // Don't trigger a reconnect after stopping + transportLogic.clearReconnectTimeout(connection); + + if (connection.socket) { + connection.log("Closing the Websocket."); + connection.socket.close(); + connection.socket = null; + } + }, + + abort: function (connection, async) { + transportLogic.ajaxAbort(connection, async); + } + }; + +}(window.jQuery, window)); +/* jquery.signalR.transports.serverSentEvents.js */ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + + +/*global window:false */ +/// + +(function ($, window, undefined) { + + var signalR = $.signalR, + events = $.signalR.events, + changeState = $.signalR.changeState, + transportLogic = signalR.transports._logic, + clearReconnectAttemptTimeout = function (connection) { + window.clearTimeout(connection._.reconnectAttemptTimeoutHandle); + delete connection._.reconnectAttemptTimeoutHandle; + }; + + signalR.transports.serverSentEvents = { + name: "serverSentEvents", + + supportsKeepAlive: function () { + return true; + }, + + timeOut: 3000, + + start: function (connection, onSuccess, onFailed) { + var that = this, + opened = false, + $connection = $(connection), + reconnecting = !onSuccess, + url; + + if (connection.eventSource) { + connection.log("The connection already has an event source. Stopping it."); + connection.stop(); + } + + if (!window.EventSource) { + if (onFailed) { + connection.log("This browser doesn't support SSE."); + onFailed(); + } + return; + } + + url = transportLogic.getUrl(connection, this.name, reconnecting); + + try { + connection.log("Attempting to connect to SSE endpoint '" + url + "'."); + connection.eventSource = new window.EventSource(url, { withCredentials: connection.withCredentials }); + } + catch (e) { + connection.log("EventSource failed trying to connect with error " + e.Message + "."); + if (onFailed) { + // The connection failed, call the failed callback + onFailed(); + } else { + $connection.triggerHandler(events.onError, [signalR._.transportError(signalR.resources.eventSourceFailedToConnect, connection.transport, e)]); + if (reconnecting) { + // If we were reconnecting, rather than doing initial connect, then try reconnect again + that.reconnect(connection); + } + } + return; + } + + if (reconnecting) { + connection._.reconnectAttemptTimeoutHandle = window.setTimeout(function () { + if (opened === false) { + // If we're reconnecting and the event source is attempting to connect, + // don't keep retrying. This causes duplicate connections to spawn. + if (connection.eventSource.readyState !== window.EventSource.OPEN) { + // If we were reconnecting, rather than doing initial connect, then try reconnect again + that.reconnect(connection); + } + } + }, + that.timeOut); + } + + connection.eventSource.addEventListener("open", function (e) { + connection.log("EventSource connected."); + + clearReconnectAttemptTimeout(connection); + transportLogic.clearReconnectTimeout(connection); + + if (opened === false) { + opened = true; + + if (changeState(connection, + signalR.connectionState.reconnecting, + signalR.connectionState.connected) === true) { + $connection.triggerHandler(events.onReconnect); + } + } + }, false); + + connection.eventSource.addEventListener("message", function (e) { + var res; + + // process messages + if (e.data === "initialized") { + return; + } + + try { + res = connection._parseResponse(e.data); + } + catch (error) { + transportLogic.handleParseFailure(connection, e.data, error, onFailed, e); + return; + } + + transportLogic.processMessages(connection, res, onSuccess); + }, false); + + connection.eventSource.addEventListener("error", function (e) { + var error = signalR._.transportError( + signalR.resources.eventSourceError, + connection.transport, + e); + + // Only handle an error if the error is from the current Event Source. + // Sometimes on disconnect the server will push down an error event + // to an expired Event Source. + if (this !== connection.eventSource) { + return; + } + + if (onFailed && onFailed(error)) { + return; + } + + connection.log("EventSource readyState: " + connection.eventSource.readyState + "."); + + if (e.eventPhase === window.EventSource.CLOSED) { + // We don't use the EventSource's native reconnect function as it + // doesn't allow us to change the URL when reconnecting. We need + // to change the URL to not include the /connect suffix, and pass + // the last message id we received. + connection.log("EventSource reconnecting due to the server connection ending."); + that.reconnect(connection); + } else { + // connection error + connection.log("EventSource error."); + $connection.triggerHandler(events.onError, [error]); + } + }, false); + }, + + reconnect: function (connection) { + transportLogic.reconnect(connection, this.name); + }, + + lostConnection: function (connection) { + this.reconnect(connection); + }, + + send: function (connection, data) { + transportLogic.ajaxSend(connection, data); + }, + + stop: function (connection) { + // Don't trigger a reconnect after stopping + clearReconnectAttemptTimeout(connection); + transportLogic.clearReconnectTimeout(connection); + + if (connection && connection.eventSource) { + connection.log("EventSource calling close()."); + connection.eventSource.close(); + connection.eventSource = null; + delete connection.eventSource; + } + }, + + abort: function (connection, async) { + transportLogic.ajaxAbort(connection, async); + } + }; + +}(window.jQuery, window)); +/* jquery.signalR.transports.foreverFrame.js */ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + + +/*global window:false */ +/// + +(function ($, window, undefined) { + + var signalR = $.signalR, + events = $.signalR.events, + changeState = $.signalR.changeState, + transportLogic = signalR.transports._logic, + createFrame = function () { + var frame = window.document.createElement("iframe"); + frame.setAttribute("style", "position:absolute;top:0;left:0;width:0;height:0;visibility:hidden;"); + return frame; + }, + // Used to prevent infinite loading icon spins in older versions of ie + // We build this object inside a closure so we don't pollute the rest of + // the foreverFrame transport with unnecessary functions/utilities. + loadPreventer = (function () { + var loadingFixIntervalId = null, + loadingFixInterval = 1000, + attachedTo = 0; + + return { + prevent: function () { + // Prevent additional iframe removal procedures from newer browsers + if (signalR._.ieVersion <= 8) { + // We only ever want to set the interval one time, so on the first attachedTo + if (attachedTo === 0) { + // Create and destroy iframe every 3 seconds to prevent loading icon, super hacky + loadingFixIntervalId = window.setInterval(function () { + var tempFrame = createFrame(); + + window.document.body.appendChild(tempFrame); + window.document.body.removeChild(tempFrame); + + tempFrame = null; + }, loadingFixInterval); + } + + attachedTo++; + } + }, + cancel: function () { + // Only clear the interval if there's only one more object that the loadPreventer is attachedTo + if (attachedTo === 1) { + window.clearInterval(loadingFixIntervalId); + } + + if (attachedTo > 0) { + attachedTo--; + } + } + }; + })(); + + signalR.transports.foreverFrame = { + name: "foreverFrame", + + supportsKeepAlive: function () { + return true; + }, + + // Added as a value here so we can create tests to verify functionality + iframeClearThreshold: 50, + + start: function (connection, onSuccess, onFailed) { + var that = this, + frameId = (transportLogic.foreverFrame.count += 1), + url, + frame = createFrame(), + frameLoadHandler = function () { + connection.log("Forever frame iframe finished loading and is no longer receiving messages."); + if (!onFailed || !onFailed()) { + that.reconnect(connection); + } + }; + + if (window.EventSource) { + // If the browser supports SSE, don't use Forever Frame + if (onFailed) { + connection.log("Forever Frame is not supported by SignalR on browsers with SSE support."); + onFailed(); + } + return; + } + + frame.setAttribute("data-signalr-connection-id", connection.id); + + // Start preventing loading icon + // This will only perform work if the loadPreventer is not attached to another connection. + loadPreventer.prevent(); + + // Build the url + url = transportLogic.getUrl(connection, this.name); + url += "&frameId=" + frameId; + + // add frame to the document prior to setting URL to avoid caching issues. + window.document.documentElement.appendChild(frame); + + connection.log("Binding to iframe's load event."); + + if (frame.addEventListener) { + frame.addEventListener("load", frameLoadHandler, false); + } else if (frame.attachEvent) { + frame.attachEvent("onload", frameLoadHandler); + } + + frame.src = url; + transportLogic.foreverFrame.connections[frameId] = connection; + + connection.frame = frame; + connection.frameId = frameId; + + if (onSuccess) { + connection.onSuccess = function () { + connection.log("Iframe transport started."); + onSuccess(); + }; + } + }, + + reconnect: function (connection) { + var that = this; + + // Need to verify connection state and verify before the setTimeout occurs because an application sleep could occur during the setTimeout duration. + if (transportLogic.isConnectedOrReconnecting(connection) && transportLogic.verifyLastActive(connection)) { + window.setTimeout(function () { + // Verify that we're ok to reconnect. + if (!transportLogic.verifyLastActive(connection)) { + return; + } + + if (connection.frame && transportLogic.ensureReconnectingState(connection)) { + var frame = connection.frame, + src = transportLogic.getUrl(connection, that.name, true) + "&frameId=" + connection.frameId; + connection.log("Updating iframe src to '" + src + "'."); + frame.src = src; + } + }, connection.reconnectDelay); + } + }, + + lostConnection: function (connection) { + this.reconnect(connection); + }, + + send: function (connection, data) { + transportLogic.ajaxSend(connection, data); + }, + + receive: function (connection, data) { + var cw, + body, + response; + + if (connection.json !== connection._originalJson) { + // If there's a custom JSON parser configured then serialize the object + // using the original (browser) JSON parser and then deserialize it using + // the custom parser (connection._parseResponse does that). This is so we + // can easily send the response from the server as "raw" JSON but still + // support custom JSON deserialization in the browser. + data = connection._originalJson.stringify(data); + } + + response = connection._parseResponse(data); + + transportLogic.processMessages(connection, response, connection.onSuccess); + + // Protect against connection stopping from a callback trigger within the processMessages above. + if (connection.state === $.signalR.connectionState.connected) { + // Delete the script & div elements + connection.frameMessageCount = (connection.frameMessageCount || 0) + 1; + if (connection.frameMessageCount > signalR.transports.foreverFrame.iframeClearThreshold) { + connection.frameMessageCount = 0; + cw = connection.frame.contentWindow || connection.frame.contentDocument; + if (cw && cw.document && cw.document.body) { + body = cw.document.body; + + // Remove all the child elements from the iframe's body to conserver memory + while (body.firstChild) { + body.removeChild(body.firstChild); + } + } + } + } + }, + + stop: function (connection) { + var cw = null; + + // Stop attempting to prevent loading icon + loadPreventer.cancel(); + + if (connection.frame) { + if (connection.frame.stop) { + connection.frame.stop(); + } else { + try { + cw = connection.frame.contentWindow || connection.frame.contentDocument; + if (cw.document && cw.document.execCommand) { + cw.document.execCommand("Stop"); + } + } + catch (e) { + connection.log("Error occurred when stopping foreverFrame transport. Message = " + e.message + "."); + } + } + + // Ensure the iframe is where we left it + if (connection.frame.parentNode === window.document.body) { + window.document.body.removeChild(connection.frame); + } + + delete transportLogic.foreverFrame.connections[connection.frameId]; + connection.frame = null; + connection.frameId = null; + delete connection.frame; + delete connection.frameId; + delete connection.onSuccess; + delete connection.frameMessageCount; + connection.log("Stopping forever frame."); + } + }, + + abort: function (connection, async) { + transportLogic.ajaxAbort(connection, async); + }, + + getConnection: function (id) { + return transportLogic.foreverFrame.connections[id]; + }, + + started: function (connection) { + if (changeState(connection, + signalR.connectionState.reconnecting, + signalR.connectionState.connected) === true) { + + $(connection).triggerHandler(events.onReconnect); + } + } + }; + +}(window.jQuery, window)); +/* jquery.signalR.transports.longPolling.js */ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + + +/*global window:false */ +/// + +(function ($, window, undefined) { + + var signalR = $.signalR, + events = $.signalR.events, + changeState = $.signalR.changeState, + isDisconnecting = $.signalR.isDisconnecting, + transportLogic = signalR.transports._logic; + + signalR.transports.longPolling = { + name: "longPolling", + + supportsKeepAlive: function () { + return false; + }, + + reconnectDelay: 3000, + + start: function (connection, onSuccess, onFailed) { + /// Starts the long polling connection + /// The SignalR connection to start + var that = this, + fireConnect = function () { + fireConnect = $.noop; + + connection.log("LongPolling connected."); + + if (onSuccess) { + onSuccess(); + } else { + connection.log("WARNING! The client received an init message after reconnecting."); + } + }, + tryFailConnect = function (error) { + if (onFailed(error)) { + connection.log("LongPolling failed to connect."); + return true; + } + + return false; + }, + privateData = connection._, + reconnectErrors = 0, + fireReconnected = function (instance) { + window.clearTimeout(privateData.reconnectTimeoutId); + privateData.reconnectTimeoutId = null; + + if (changeState(instance, + signalR.connectionState.reconnecting, + signalR.connectionState.connected) === true) { + // Successfully reconnected! + instance.log("Raising the reconnect event"); + $(instance).triggerHandler(events.onReconnect); + } + }, + // 1 hour + maxFireReconnectedTimeout = 3600000; + + if (connection.pollXhr) { + connection.log("Polling xhr requests already exists, aborting."); + connection.stop(); + } + + connection.messageId = null; + + privateData.reconnectTimeoutId = null; + + privateData.pollTimeoutId = window.setTimeout(function () { + (function poll(instance, raiseReconnect) { + var messageId = instance.messageId, + connect = (messageId === null), + reconnecting = !connect, + polling = !raiseReconnect, + url = transportLogic.getUrl(instance, that.name, reconnecting, polling, true /* use Post for longPolling */), + postData = {}; + + if (instance.messageId) { + postData.messageId = instance.messageId; + } + + if (instance.groupsToken) { + postData.groupsToken = instance.groupsToken; + } + + // If we've disconnected during the time we've tried to re-instantiate the poll then stop. + if (isDisconnecting(instance) === true) { + return; + } + + connection.log("Opening long polling request to '" + url + "'."); + instance.pollXhr = transportLogic.ajax(connection, { + xhrFields: { + onprogress: function () { + transportLogic.markLastMessage(connection); + } + }, + url: url, + type: "POST", + contentType: signalR._.defaultContentType, + data: postData, + timeout: connection._.pollTimeout, + success: function (result) { + var minData, + delay = 0, + data, + shouldReconnect; + + connection.log("Long poll complete."); + + // Reset our reconnect errors so if we transition into a reconnecting state again we trigger + // reconnected quickly + reconnectErrors = 0; + + try { + // Remove any keep-alives from the beginning of the result + minData = connection._parseResponse(result); + } + catch (error) { + transportLogic.handleParseFailure(instance, result, error, tryFailConnect, instance.pollXhr); + return; + } + + // If there's currently a timeout to trigger reconnect, fire it now before processing messages + if (privateData.reconnectTimeoutId !== null) { + fireReconnected(instance); + } + + if (minData) { + data = transportLogic.maximizePersistentResponse(minData); + } + + transportLogic.processMessages(instance, minData, fireConnect); + + if (data && + $.type(data.LongPollDelay) === "number") { + delay = data.LongPollDelay; + } + + if (isDisconnecting(instance) === true) { + return; + } + + shouldReconnect = data && data.ShouldReconnect; + if (shouldReconnect) { + // Transition into the reconnecting state + // If this fails then that means that the user transitioned the connection into a invalid state in processMessages. + if (!transportLogic.ensureReconnectingState(instance)) { + return; + } + } + + // We never want to pass a raiseReconnect flag after a successful poll. This is handled via the error function + if (delay > 0) { + privateData.pollTimeoutId = window.setTimeout(function () { + poll(instance, shouldReconnect); + }, delay); + } else { + poll(instance, shouldReconnect); + } + }, + + error: function (data, textStatus) { + var error = signalR._.transportError(signalR.resources.longPollFailed, connection.transport, data, instance.pollXhr); + + // Stop trying to trigger reconnect, connection is in an error state + // If we're not in the reconnect state this will noop + window.clearTimeout(privateData.reconnectTimeoutId); + privateData.reconnectTimeoutId = null; + + if (textStatus === "abort") { + connection.log("Aborted xhr request."); + return; + } + + if (!tryFailConnect(error)) { + + // Increment our reconnect errors, we assume all errors to be reconnect errors + // In the case that it's our first error this will cause Reconnect to be fired + // after 1 second due to reconnectErrors being = 1. + reconnectErrors++; + + if (connection.state !== signalR.connectionState.reconnecting) { + connection.log("An error occurred using longPolling. Status = " + textStatus + ". Response = " + data.responseText + "."); + $(instance).triggerHandler(events.onError, [error]); + } + + // We check the state here to verify that we're not in an invalid state prior to verifying Reconnect. + // If we're not in connected or reconnecting then the next ensureReconnectingState check will fail and will return. + // Therefore we don't want to change that failure code path. + if ((connection.state === signalR.connectionState.connected || + connection.state === signalR.connectionState.reconnecting) && + !transportLogic.verifyLastActive(connection)) { + return; + } + + // Transition into the reconnecting state + // If this fails then that means that the user transitioned the connection into the disconnected or connecting state within the above error handler trigger. + if (!transportLogic.ensureReconnectingState(instance)) { + return; + } + + // Call poll with the raiseReconnect flag as true after the reconnect delay + privateData.pollTimeoutId = window.setTimeout(function () { + poll(instance, true); + }, that.reconnectDelay); + } + } + }); + + // This will only ever pass after an error has occurred via the poll ajax procedure. + if (reconnecting && raiseReconnect === true) { + // We wait to reconnect depending on how many times we've failed to reconnect. + // This is essentially a heuristic that will exponentially increase in wait time before + // triggering reconnected. This depends on the "error" handler of Poll to cancel this + // timeout if it triggers before the Reconnected event fires. + // The Math.min at the end is to ensure that the reconnect timeout does not overflow. + privateData.reconnectTimeoutId = window.setTimeout(function () { fireReconnected(instance); }, Math.min(1000 * (Math.pow(2, reconnectErrors) - 1), maxFireReconnectedTimeout)); + } + }(connection)); + }, 250); // Have to delay initial poll so Chrome doesn't show loader spinner in tab + }, + + lostConnection: function (connection) { + if (connection.pollXhr) { + connection.pollXhr.abort("lostConnection"); + } + }, + + send: function (connection, data) { + transportLogic.ajaxSend(connection, data); + }, + + stop: function (connection) { + /// Stops the long polling connection + /// The SignalR connection to stop + + window.clearTimeout(connection._.pollTimeoutId); + window.clearTimeout(connection._.reconnectTimeoutId); + + delete connection._.pollTimeoutId; + delete connection._.reconnectTimeoutId; + + if (connection.pollXhr) { + connection.pollXhr.abort(); + connection.pollXhr = null; + delete connection.pollXhr; + } + }, + + abort: function (connection, async) { + transportLogic.ajaxAbort(connection, async); + } + }; + +}(window.jQuery, window)); +/* jquery.signalR.hubs.js */ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +/*global window:false */ +/// + +(function ($, window, undefined) { + + var eventNamespace = ".hubProxy", + signalR = $.signalR; + + function makeEventName(event) { + return event + eventNamespace; + } + + // Equivalent to Array.prototype.map + function map(arr, fun, thisp) { + var i, + length = arr.length, + result = []; + for (i = 0; i < length; i += 1) { + if (arr.hasOwnProperty(i)) { + result[i] = fun.call(thisp, arr[i], i, arr); + } + } + return result; + } + + function getArgValue(a) { + return $.isFunction(a) ? null : ($.type(a) === "undefined" ? null : a); + } + + function hasMembers(obj) { + for (var key in obj) { + // If we have any properties in our callback map then we have callbacks and can exit the loop via return + if (obj.hasOwnProperty(key)) { + return true; + } + } + + return false; + } + + function clearInvocationCallbacks(connection, error) { + /// + var callbacks = connection._.invocationCallbacks, + callback; + + if (hasMembers(callbacks)) { + connection.log("Clearing hub invocation callbacks with error: " + error + "."); + } + + // Reset the callback cache now as we have a local var referencing it + connection._.invocationCallbackId = 0; + delete connection._.invocationCallbacks; + connection._.invocationCallbacks = {}; + + // Loop over the callbacks and invoke them. + // We do this using a local var reference and *after* we've cleared the cache + // so that if a fail callback itself tries to invoke another method we don't + // end up with its callback in the list we're looping over. + for (var callbackId in callbacks) { + callback = callbacks[callbackId]; + callback.method.call(callback.scope, { E: error }); + } + } + + // hubProxy + function hubProxy(hubConnection, hubName) { + /// + /// Creates a new proxy object for the given hub connection that can be used to invoke + /// methods on server hubs and handle client method invocation requests from the server. + /// + return new hubProxy.fn.init(hubConnection, hubName); + } + + hubProxy.fn = hubProxy.prototype = { + init: function (connection, hubName) { + this.state = {}; + this.connection = connection; + this.hubName = hubName; + this._ = { + callbackMap: {} + }; + }, + + constructor: hubProxy, + + hasSubscriptions: function () { + return hasMembers(this._.callbackMap); + }, + + on: function (eventName, callback) { + /// Wires up a callback to be invoked when a invocation request is received from the server hub. + /// The name of the hub event to register the callback for. + /// The callback to be invoked. + var that = this, + callbackMap = that._.callbackMap; + + // Normalize the event name to lowercase + eventName = eventName.toLowerCase(); + + // If there is not an event registered for this callback yet we want to create its event space in the callback map. + if (!callbackMap[eventName]) { + callbackMap[eventName] = {}; + } + + // Map the callback to our encompassed function + callbackMap[eventName][callback] = function (e, data) { + callback.apply(that, data); + }; + + $(that).bind(makeEventName(eventName), callbackMap[eventName][callback]); + + return that; + }, + + off: function (eventName, callback) { + /// Removes the callback invocation request from the server hub for the given event name. + /// The name of the hub event to unregister the callback for. + /// The callback to be invoked. + var that = this, + callbackMap = that._.callbackMap, + callbackSpace; + + // Normalize the event name to lowercase + eventName = eventName.toLowerCase(); + + callbackSpace = callbackMap[eventName]; + + // Verify that there is an event space to unbind + if (callbackSpace) { + // Only unbind if there's an event bound with eventName and a callback with the specified callback + if (callbackSpace[callback]) { + $(that).unbind(makeEventName(eventName), callbackSpace[callback]); + + // Remove the callback from the callback map + delete callbackSpace[callback]; + + // Check if there are any members left on the event, if not we need to destroy it. + if (!hasMembers(callbackSpace)) { + delete callbackMap[eventName]; + } + } else if (!callback) { // Check if we're removing the whole event and we didn't error because of an invalid callback + $(that).unbind(makeEventName(eventName)); + + delete callbackMap[eventName]; + } + } + + return that; + }, + + invoke: function (methodName) { + /// Invokes a server hub method with the given arguments. + /// The name of the server hub method. + + var that = this, + connection = that.connection, + args = $.makeArray(arguments).slice(1), + argValues = map(args, getArgValue), + data = { H: that.hubName, M: methodName, A: argValues, I: connection._.invocationCallbackId }, + d = $.Deferred(), + callback = function (minResult) { + var result = that._maximizeHubResponse(minResult), + source, + error; + + // Update the hub state + $.extend(that.state, result.State); + + if (result.Progress) { + if (d.notifyWith) { + // Progress is only supported in jQuery 1.7+ + d.notifyWith(that, [result.Progress.Data]); + } else if(!connection._.progressjQueryVersionLogged) { + connection.log("A hub method invocation progress update was received but the version of jQuery in use (" + $.prototype.jquery + ") does not support progress updates. Upgrade to jQuery 1.7+ to receive progress notifications."); + connection._.progressjQueryVersionLogged = true; + } + } else if (result.Error) { + // Server hub method threw an exception, log it & reject the deferred + if (result.StackTrace) { + connection.log(result.Error + "\n" + result.StackTrace + "."); + } + + // result.ErrorData is only set if a HubException was thrown + source = result.IsHubException ? "HubException" : "Exception"; + error = signalR._.error(result.Error, source); + error.data = result.ErrorData; + + connection.log(that.hubName + "." + methodName + " failed to execute. Error: " + error.message); + d.rejectWith(that, [error]); + } else { + // Server invocation succeeded, resolve the deferred + connection.log("Invoked " + that.hubName + "." + methodName); + d.resolveWith(that, [result.Result]); + } + }; + + connection._.invocationCallbacks[connection._.invocationCallbackId.toString()] = { scope: that, method: callback }; + connection._.invocationCallbackId += 1; + + if (!$.isEmptyObject(that.state)) { + data.S = that.state; + } + + connection.log("Invoking " + that.hubName + "." + methodName); + connection.send(data); + + return d.promise(); + }, + + _maximizeHubResponse: function (minHubResponse) { + return { + State: minHubResponse.S, + Result: minHubResponse.R, + Progress: minHubResponse.P ? { + Id: minHubResponse.P.I, + Data: minHubResponse.P.D + } : null, + Id: minHubResponse.I, + IsHubException: minHubResponse.H, + Error: minHubResponse.E, + StackTrace: minHubResponse.T, + ErrorData: minHubResponse.D + }; + } + }; + + hubProxy.fn.init.prototype = hubProxy.fn; + + // hubConnection + function hubConnection(url, options) { + /// Creates a new hub connection. + /// [Optional] The hub route url, defaults to "/signalr". + /// [Optional] Settings to use when creating the hubConnection. + var settings = { + qs: null, + logging: false, + useDefaultPath: true + }; + + $.extend(settings, options); + + if (!url || settings.useDefaultPath) { + url = (url || "") + "/signalr"; + } + return new hubConnection.fn.init(url, settings); + } + + hubConnection.fn = hubConnection.prototype = $.connection(); + + hubConnection.fn.init = function (url, options) { + var settings = { + qs: null, + logging: false, + useDefaultPath: true + }, + connection = this; + + $.extend(settings, options); + + // Call the base constructor + $.signalR.fn.init.call(connection, url, settings.qs, settings.logging); + + // Object to store hub proxies for this connection + connection.proxies = {}; + + connection._.invocationCallbackId = 0; + connection._.invocationCallbacks = {}; + + // Wire up the received handler + connection.received(function (minData) { + var data, proxy, dataCallbackId, callback, hubName, eventName; + if (!minData) { + return; + } + + // We have to handle progress updates first in order to ensure old clients that receive + // progress updates enter the return value branch and then no-op when they can't find + // the callback in the map (because the minData.I value will not be a valid callback ID) + if (typeof (minData.P) !== "undefined") { + // Process progress notification + dataCallbackId = minData.P.I.toString(); + callback = connection._.invocationCallbacks[dataCallbackId]; + if (callback) { + callback.method.call(callback.scope, minData); + } + } else if (typeof (minData.I) !== "undefined") { + // We received the return value from a server method invocation, look up callback by id and call it + dataCallbackId = minData.I.toString(); + callback = connection._.invocationCallbacks[dataCallbackId]; + if (callback) { + // Delete the callback from the proxy + connection._.invocationCallbacks[dataCallbackId] = null; + delete connection._.invocationCallbacks[dataCallbackId]; + + // Invoke the callback + callback.method.call(callback.scope, minData); + } + } else { + data = this._maximizeClientHubInvocation(minData); + + // We received a client invocation request, i.e. broadcast from server hub + connection.log("Triggering client hub event '" + data.Method + "' on hub '" + data.Hub + "'."); + + // Normalize the names to lowercase + hubName = data.Hub.toLowerCase(); + eventName = data.Method.toLowerCase(); + + // Trigger the local invocation event + proxy = this.proxies[hubName]; + + // Update the hub state + $.extend(proxy.state, data.State); + $(proxy).triggerHandler(makeEventName(eventName), [data.Args]); + } + }); + + connection.error(function (errData, origData) { + var callbackId, callback; + + if (!origData) { + // No original data passed so this is not a send error + return; + } + + callbackId = origData.I; + callback = connection._.invocationCallbacks[callbackId]; + + // Verify that there is a callback bound (could have been cleared) + if (callback) { + // Delete the callback + connection._.invocationCallbacks[callbackId] = null; + delete connection._.invocationCallbacks[callbackId]; + + // Invoke the callback with an error to reject the promise + callback.method.call(callback.scope, { E: errData }); + } + }); + + connection.reconnecting(function () { + if (connection.transport && connection.transport.name === "webSockets") { + clearInvocationCallbacks(connection, "Connection started reconnecting before invocation result was received."); + } + }); + + connection.disconnected(function () { + clearInvocationCallbacks(connection, "Connection was disconnected before invocation result was received."); + }); + }; + + hubConnection.fn._maximizeClientHubInvocation = function (minClientHubInvocation) { + return { + Hub: minClientHubInvocation.H, + Method: minClientHubInvocation.M, + Args: minClientHubInvocation.A, + State: minClientHubInvocation.S + }; + }; + + hubConnection.fn._registerSubscribedHubs = function () { + /// + /// Sets the starting event to loop through the known hubs and register any new hubs + /// that have been added to the proxy. + /// + var connection = this; + + if (!connection._subscribedToHubs) { + connection._subscribedToHubs = true; + connection.starting(function () { + // Set the connection's data object with all the hub proxies with active subscriptions. + // These proxies will receive notifications from the server. + var subscribedHubs = []; + + $.each(connection.proxies, function (key) { + if (this.hasSubscriptions()) { + subscribedHubs.push({ name: key }); + connection.log("Client subscribed to hub '" + key + "'."); + } + }); + + if (subscribedHubs.length === 0) { + connection.log("No hubs have been subscribed to. The client will not receive data from hubs. To fix, declare at least one client side function prior to connection start for each hub you wish to subscribe to."); + } + + connection.data = connection.json.stringify(subscribedHubs); + }); + } + }; + + hubConnection.fn.createHubProxy = function (hubName) { + /// + /// Creates a new proxy object for the given hub connection that can be used to invoke + /// methods on server hubs and handle client method invocation requests from the server. + /// + /// + /// The name of the hub on the server to create the proxy for. + /// + + // Normalize the name to lowercase + hubName = hubName.toLowerCase(); + + var proxy = this.proxies[hubName]; + if (!proxy) { + proxy = hubProxy(this, hubName); + this.proxies[hubName] = proxy; + } + + this._registerSubscribedHubs(); + + return proxy; + }; + + hubConnection.fn.init.prototype = hubConnection.fn; + + $.hubConnection = hubConnection; + +}(window.jQuery, window)); +/* jquery.signalR.version.js */ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + + +/*global window:false */ +/// +(function ($, undefined) { + $.signalR.version = "2.2.1"; +}(window.jQuery)); diff --git a/lib/jquery.signalR-2.2.1.min.js b/lib/jquery.signalR-2.2.1.min.js new file mode 100644 index 0000000..54a95f1 --- /dev/null +++ b/lib/jquery.signalR-2.2.1.min.js @@ -0,0 +1,9 @@ +/*! + * ASP.NET SignalR JavaScript Library v2.2.1 + * http://signalr.net/ + * + * Copyright (c) .NET Foundation. All rights reserved. + * Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + * + */ +(function(n,t,i){function w(t,i){var u,f;if(n.isArray(t)){for(u=t.length-1;u>=0;u--)f=t[u],n.type(f)==="string"&&r.transports[f]||(i.log("Invalid transport: "+f+", removing it from the transports list."),t.splice(u,1));t.length===0&&(i.log("No transports remain within the specified transport array."),t=null)}else if(r.transports[t]||t==="auto"){if(t==="auto"&&r._.ieVersion<=8)return["longPolling"]}else i.log("Invalid transport: "+t.toString()+"."),t=null;return t}function b(n){return n==="http:"?80:n==="https:"?443:void 0}function a(n,t){return t.match(/:\d+$/)?t:t+":"+b(n)}function k(t,i){var u=this,r=[];u.tryBuffer=function(i){return t.state===n.signalR.connectionState.connecting?(r.push(i),!0):!1};u.drain=function(){if(t.state===n.signalR.connectionState.connected)while(r.length>0)i(r.shift())};u.clear=function(){r=[]}}var f={nojQuery:"jQuery was not found. Please ensure jQuery is referenced before the SignalR client JavaScript file.",noTransportOnInit:"No transport could be initialized successfully. Try specifying a different transport or none at all for auto initialization.",errorOnNegotiate:"Error during negotiation request.",stoppedWhileLoading:"The connection was stopped during page load.",stoppedWhileNegotiating:"The connection was stopped during the negotiate request.",errorParsingNegotiateResponse:"Error parsing negotiate response.",errorDuringStartRequest:"Error during start request. Stopping the connection.",stoppedDuringStartRequest:"The connection was stopped during the start request.",errorParsingStartResponse:"Error parsing start response: '{0}'. Stopping the connection.",invalidStartResponse:"Invalid start response: '{0}'. Stopping the connection.",protocolIncompatible:"You are using a version of the client that isn't compatible with the server. Client version {0}, server version {1}.",sendFailed:"Send failed.",parseFailed:"Failed at parsing response: {0}",longPollFailed:"Long polling request failed.",eventSourceFailedToConnect:"EventSource failed to connect.",eventSourceError:"Error raised by EventSource",webSocketClosed:"WebSocket closed.",pingServerFailedInvalidResponse:"Invalid ping response when pinging server: '{0}'.",pingServerFailed:"Failed to ping server.",pingServerFailedStatusCode:"Failed to ping server. Server responded with status code {0}, stopping the connection.",pingServerFailedParse:"Failed to parse ping server response, stopping the connection.",noConnectionTransport:"Connection is in an invalid state, there is no transport active.",webSocketsInvalidState:"The Web Socket transport is in an invalid state, transitioning into reconnecting.",reconnectTimeout:"Couldn't reconnect within the configured timeout of {0} ms, disconnecting.",reconnectWindowTimeout:"The client has been inactive since {0} and it has exceeded the inactivity timeout of {1} ms. Stopping the connection."};if(typeof n!="function")throw new Error(f.nojQuery);var r,h,o=t.document.readyState==="complete",e=n(t),c="__Negotiate Aborted__",u={onStart:"onStart",onStarting:"onStarting",onReceived:"onReceived",onError:"onError",onConnectionSlow:"onConnectionSlow",onReconnecting:"onReconnecting",onReconnect:"onReconnect",onStateChanged:"onStateChanged",onDisconnect:"onDisconnect"},v=function(n,i){if(i!==!1){var r;typeof t.console!="undefined"&&(r="["+(new Date).toTimeString()+"] SignalR: "+n,t.console.debug?t.console.debug(r):t.console.log&&t.console.log(r))}},s=function(t,i,r){return i===t.state?(t.state=r,n(t).triggerHandler(u.onStateChanged,[{oldState:i,newState:r}]),!0):!1},y=function(n){return n.state===r.connectionState.disconnected},l=function(n){return n._.keepAliveData.activated&&n.transport.supportsKeepAlive(n)},p=function(i){var f,e;i._.configuredStopReconnectingTimeout||(e=function(t){var i=r._.format(r.resources.reconnectTimeout,t.disconnectTimeout);t.log(i);n(t).triggerHandler(u.onError,[r._.error(i,"TimeoutException")]);t.stop(!1,!1)},i.reconnecting(function(){var n=this;n.state===r.connectionState.reconnecting&&(f=t.setTimeout(function(){e(n)},n.disconnectTimeout))}),i.stateChanged(function(n){n.oldState===r.connectionState.reconnecting&&t.clearTimeout(f)}),i._.configuredStopReconnectingTimeout=!0)};if(r=function(n,t,i){return new r.fn.init(n,t,i)},r._={defaultContentType:"application/x-www-form-urlencoded; charset=UTF-8",ieVersion:function(){var i,n;return t.navigator.appName==="Microsoft Internet Explorer"&&(n=/MSIE ([0-9]+\.[0-9]+)/.exec(t.navigator.userAgent),n&&(i=t.parseFloat(n[1]))),i}(),error:function(n,t,i){var r=new Error(n);return r.source=t,typeof i!="undefined"&&(r.context=i),r},transportError:function(n,t,r,u){var f=this.error(n,r,u);return f.transport=t?t.name:i,f},format:function(){for(var t=arguments[0],n=0;n<\/script>.");}},typeof e.on=="function")e.on("load",function(){o=!0});else e.load(function(){o=!0});r.fn=r.prototype={init:function(t,i,r){var f=n(this);this.url=t;this.qs=i;this.lastError=null;this._={keepAliveData:{},connectingMessageBuffer:new k(this,function(n){f.triggerHandler(u.onReceived,[n])}),lastMessageAt:(new Date).getTime(),lastActiveAt:(new Date).getTime(),beatInterval:5e3,beatHandle:null,totalTransportConnectTimeout:0};typeof r=="boolean"&&(this.logging=r)},_parseResponse:function(n){var t=this;return n?typeof n=="string"?t.json.parse(n):n:n},_originalJson:t.JSON,json:t.JSON,isCrossDomain:function(i,r){var u;return(i=n.trim(i),r=r||t.location,i.indexOf("http")!==0)?!1:(u=t.document.createElement("a"),u.href=i,u.protocol+a(u.protocol,u.host)!==r.protocol+a(r.protocol,r.host))},ajaxDataType:"text",contentType:"application/json; charset=UTF-8",logging:!1,state:r.connectionState.disconnected,clientProtocol:"1.5",reconnectDelay:2e3,transportConnectTimeout:0,disconnectTimeout:3e4,reconnectWindow:3e4,keepAliveWarnAt:2/3,start:function(i,h){var a=this,v={pingInterval:3e5,waitForPageLoad:!0,transport:"auto",jsonp:!1},d,y=a._deferral||n.Deferred(),b=t.document.createElement("a"),k,g;if(a.lastError=null,a._deferral=y,!a.json)throw new Error("SignalR: No JSON parser found. Please ensure json2.js is referenced before the SignalR.js file if you need to support clients without native JSON parsing support, e.g. IE<8.");if(n.type(i)==="function"?h=i:n.type(i)==="object"&&(n.extend(v,i),n.type(v.callback)==="function"&&(h=v.callback)),v.transport=w(v.transport,a),!v.transport)throw new Error("SignalR: Invalid transport(s) specified, aborting start.");return(a._.config=v,!o&&v.waitForPageLoad===!0)?(a._.deferredStartHandler=function(){a.start(i,h)},e.bind("load",a._.deferredStartHandler),y.promise()):a.state===r.connectionState.connecting?y.promise():s(a,r.connectionState.disconnected,r.connectionState.connecting)===!1?(y.resolve(a),y.promise()):(p(a),b.href=a.url,b.protocol&&b.protocol!==":"?(a.protocol=b.protocol,a.host=b.host):(a.protocol=t.document.location.protocol,a.host=b.host||t.document.location.host),a.baseUrl=a.protocol+"//"+a.host,a.wsProtocol=a.protocol==="https:"?"wss://":"ws://",v.transport==="auto"&&v.jsonp===!0&&(v.transport="longPolling"),a.url.indexOf("//")===0&&(a.url=t.location.protocol+a.url,a.log("Protocol relative URL detected, normalizing it to '"+a.url+"'.")),this.isCrossDomain(a.url)&&(a.log("Auto detected cross domain url."),v.transport==="auto"&&(v.transport=["webSockets","serverSentEvents","longPolling"]),typeof v.withCredentials=="undefined"&&(v.withCredentials=!0),v.jsonp||(v.jsonp=!n.support.cors,v.jsonp&&a.log("Using jsonp because this browser doesn't support CORS.")),a.contentType=r._.defaultContentType),a.withCredentials=v.withCredentials,a.ajaxDataType=v.jsonp?"jsonp":"text",n(a).bind(u.onStart,function(){n.type(h)==="function"&&h.call(a);y.resolve(a)}),a._.initHandler=r.transports._logic.initHandler(a),d=function(i,o){var c=r._.error(f.noTransportOnInit);if(o=o||0,o>=i.length){o===0?a.log("No transports supported by the server were selected."):o===1?a.log("No fallback transports were selected."):a.log("Fallback transports exhausted.");n(a).triggerHandler(u.onError,[c]);y.reject(c);a.stop();return}if(a.state!==r.connectionState.disconnected){var p=i[o],h=r.transports[p],v=function(){d(i,o+1)};a.transport=h;try{a._.initHandler.start(h,function(){var i=r._.firefoxMajorVersion(t.navigator.userAgent)>=11,f=!!a.withCredentials&&i;a.log("The start request succeeded. Transitioning to the connected state.");l(a)&&r.transports._logic.monitorKeepAlive(a);r.transports._logic.startHeartbeat(a);r._.configurePingInterval(a);s(a,r.connectionState.connecting,r.connectionState.connected)||a.log("WARNING! The connection was not in the connecting state.");a._.connectingMessageBuffer.drain();n(a).triggerHandler(u.onStart);e.bind("unload",function(){a.log("Window unloading, stopping the connection.");a.stop(f)});i&&e.bind("beforeunload",function(){t.setTimeout(function(){a.stop(f)},0)})},v)}catch(w){a.log(h.name+" transport threw '"+w.message+"' when attempting to start.");v()}}},k=a.url+"/negotiate",g=function(t,i){var e=r._.error(f.errorOnNegotiate,t,i._.negotiateRequest);n(i).triggerHandler(u.onError,e);y.reject(e);i.stop()},n(a).triggerHandler(u.onStarting),k=r.transports._logic.prepareQueryString(a,k),a.log("Negotiating with '"+k+"'."),a._.negotiateRequest=r.transports._logic.ajax(a,{url:k,error:function(n,t){t!==c?g(n,a):y.reject(r._.error(f.stoppedWhileNegotiating,null,a._.negotiateRequest))},success:function(t){var i,e,h,o=[],s=[];try{i=a._parseResponse(t)}catch(c){g(r._.error(f.errorParsingNegotiateResponse,c),a);return}if(e=a._.keepAliveData,a.appRelativeUrl=i.Url,a.id=i.ConnectionId,a.token=i.ConnectionToken,a.webSocketServerUrl=i.WebSocketServerUrl,a._.pollTimeout=i.ConnectionTimeout*1e3+1e4,a.disconnectTimeout=i.DisconnectTimeout*1e3,a._.totalTransportConnectTimeout=a.transportConnectTimeout+i.TransportConnectTimeout*1e3,i.KeepAliveTimeout?(e.activated=!0,e.timeout=i.KeepAliveTimeout*1e3,e.timeoutWarning=e.timeout*a.keepAliveWarnAt,a._.beatInterval=(e.timeout-e.timeoutWarning)/3):e.activated=!1,a.reconnectWindow=a.disconnectTimeout+(e.timeout||0),!i.ProtocolVersion||i.ProtocolVersion!==a.clientProtocol){h=r._.error(r._.format(f.protocolIncompatible,a.clientProtocol,i.ProtocolVersion));n(a).triggerHandler(u.onError,[h]);y.reject(h);return}n.each(r.transports,function(n){if(n.indexOf("_")===0||n==="webSockets"&&!i.TryWebSockets)return!0;s.push(n)});n.isArray(v.transport)?n.each(v.transport,function(t,i){n.inArray(i,s)>=0&&o.push(i)}):v.transport==="auto"?o=s:n.inArray(v.transport,s)>=0&&o.push(v.transport);d(o)}}),y.promise())},starting:function(t){var i=this;return n(i).bind(u.onStarting,function(){t.call(i)}),i},send:function(n){var t=this;if(t.state===r.connectionState.disconnected)throw new Error("SignalR: Connection must be started before data can be sent. Call .start() before .send()");if(t.state===r.connectionState.connecting)throw new Error("SignalR: Connection has not been fully initialized. Use .start().done() or .start().fail() to run logic after the connection has started.");return t.transport.send(t,n),t},received:function(t){var i=this;return n(i).bind(u.onReceived,function(n,r){t.call(i,r)}),i},stateChanged:function(t){var i=this;return n(i).bind(u.onStateChanged,function(n,r){t.call(i,r)}),i},error:function(t){var i=this;return n(i).bind(u.onError,function(n,r,u){i.lastError=r;t.call(i,r,u)}),i},disconnected:function(t){var i=this;return n(i).bind(u.onDisconnect,function(){t.call(i)}),i},connectionSlow:function(t){var i=this;return n(i).bind(u.onConnectionSlow,function(){t.call(i)}),i},reconnecting:function(t){var i=this;return n(i).bind(u.onReconnecting,function(){t.call(i)}),i},reconnected:function(t){var i=this;return n(i).bind(u.onReconnect,function(){t.call(i)}),i},stop:function(i,h){var a=this,v=a._deferral;if(a._.deferredStartHandler&&e.unbind("load",a._.deferredStartHandler),delete a._.config,delete a._.deferredStartHandler,!o&&(!a._.config||a._.config.waitForPageLoad===!0)){a.log("Stopping connection prior to negotiate.");v&&v.reject(r._.error(f.stoppedWhileLoading));return}if(a.state!==r.connectionState.disconnected)return a.log("Stopping connection."),t.clearTimeout(a._.beatHandle),t.clearInterval(a._.pingIntervalId),a.transport&&(a.transport.stop(a),h!==!1&&a.transport.abort(a,i),l(a)&&r.transports._logic.stopMonitoringKeepAlive(a),a.transport=null),a._.negotiateRequest&&(a._.negotiateRequest.abort(c),delete a._.negotiateRequest),a._.initHandler&&a._.initHandler.stop(),delete a._deferral,delete a.messageId,delete a.groupsToken,delete a.id,delete a._.pingIntervalId,delete a._.lastMessageAt,delete a._.lastActiveAt,a._.connectingMessageBuffer.clear(),s(a,a.state,r.connectionState.disconnected),n(a).triggerHandler(u.onDisconnect),a},log:function(n){v(n,this.logging)}};r.fn.init.prototype=r.fn;r.noConflict=function(){return n.connection===r&&(n.connection=h),r};n.connection&&(h=n.connection);n.connection=n.signalR=r})(window.jQuery,window),function(n,t,i){function s(n){n._.keepAliveData.monitoring&&l(n);u.markActive(n)&&(n._.beatHandle=t.setTimeout(function(){s(n)},n._.beatInterval))}function l(t){var i=t._.keepAliveData,u;t.state===r.connectionState.connected&&(u=(new Date).getTime()-t._.lastMessageAt,u>=i.timeout?(t.log("Keep alive timed out. Notifying transport that connection has been lost."),t.transport.lostConnection(t)):u>=i.timeoutWarning?i.userNotified||(t.log("Keep alive has been missed, connection may be dead/slow."),n(t).triggerHandler(f.onConnectionSlow),i.userNotified=!0):i.userNotified=!1)}function e(n,t){var i=n.url+t;return n.transport&&(i+="?transport="+n.transport.name),u.prepareQueryString(n,i)}function h(n){this.connection=n;this.startRequested=!1;this.startCompleted=!1;this.connectionStopped=!1}var r=n.signalR,f=n.signalR.events,c=n.signalR.changeState,o="__Start Aborted__",u;r.transports={};h.prototype={start:function(n,r,u){var f=this,e=f.connection,o=!1;if(f.startRequested||f.connectionStopped){e.log("WARNING! "+n.name+" transport cannot be started. Initialization ongoing or completed.");return}e.log(n.name+" transport starting.");n.start(e,function(){o||f.initReceived(n,r)},function(t){return o||(o=!0,f.transportFailed(n,t,u)),!f.startCompleted||f.connectionStopped});f.transportTimeoutHandle=t.setTimeout(function(){o||(o=!0,e.log(n.name+" transport timed out when trying to connect."),f.transportFailed(n,i,u))},e._.totalTransportConnectTimeout)},stop:function(){this.connectionStopped=!0;t.clearTimeout(this.transportTimeoutHandle);r.transports._logic.tryAbortStartRequest(this.connection)},initReceived:function(n,i){var u=this,f=u.connection;if(u.startRequested){f.log("WARNING! The client received multiple init messages.");return}u.connectionStopped||(u.startRequested=!0,t.clearTimeout(u.transportTimeoutHandle),f.log(n.name+" transport connected. Initiating start request."),r.transports._logic.ajaxStart(f,function(){u.startCompleted=!0;i()}))},transportFailed:function(i,u,e){var o=this.connection,h=o._deferral,s;this.connectionStopped||(t.clearTimeout(this.transportTimeoutHandle),this.startRequested?this.startCompleted||(s=r._.error(r.resources.errorDuringStartRequest,u),o.log(i.name+" transport failed during the start request. Stopping the connection."),n(o).triggerHandler(f.onError,[s]),h&&h.reject(s),o.stop()):(i.stop(o),o.log(i.name+" transport failed to connect. Attempting to fall back."),e()))}};u=r.transports._logic={ajax:function(t,i){return n.ajax(n.extend(!0,{},n.signalR.ajaxDefaults,{type:"GET",data:{},xhrFields:{withCredentials:t.withCredentials},contentType:t.contentType,dataType:t.ajaxDataType},i))},pingServer:function(t){var e,f,i=n.Deferred();return t.transport?(e=t.url+"/ping",e=u.addQs(e,t.qs),f=u.ajax(t,{url:e,success:function(n){var u;try{u=t._parseResponse(n)}catch(e){i.reject(r._.transportError(r.resources.pingServerFailedParse,t.transport,e,f));t.stop();return}u.Response==="pong"?i.resolve():i.reject(r._.transportError(r._.format(r.resources.pingServerFailedInvalidResponse,n),t.transport,null,f))},error:function(n){n.status===401||n.status===403?(i.reject(r._.transportError(r._.format(r.resources.pingServerFailedStatusCode,n.status),t.transport,n,f)),t.stop()):i.reject(r._.transportError(r.resources.pingServerFailed,t.transport,n,f))}})):i.reject(r._.transportError(r.resources.noConnectionTransport,t.transport)),i.promise()},prepareQueryString:function(n,i){var r;return r=u.addQs(i,"clientProtocol="+n.clientProtocol),r=u.addQs(r,n.qs),n.token&&(r+="&connectionToken="+t.encodeURIComponent(n.token)),n.data&&(r+="&connectionData="+t.encodeURIComponent(n.data)),r},addQs:function(t,i){var r=t.indexOf("?")!==-1?"&":"?",u;if(!i)return t;if(typeof i=="object")return t+r+n.param(i);if(typeof i=="string")return u=i.charAt(0),(u==="?"||u==="&")&&(r=""),t+r+i;throw new Error("Query string property must be either a string or object.");},getUrl:function(n,i,r,f,e){var h=i==="webSockets"?"":n.baseUrl,o=h+n.appRelativeUrl,s="transport="+i;return!e&&n.groupsToken&&(s+="&groupsToken="+t.encodeURIComponent(n.groupsToken)),r?(o+=f?"/poll":"/reconnect",!e&&n.messageId&&(s+="&messageId="+t.encodeURIComponent(n.messageId))):o+="/connect",o+="?"+s,o=u.prepareQueryString(n,o),e||(o+="&tid="+Math.floor(Math.random()*11)),o},maximizePersistentResponse:function(n){return{MessageId:n.C,Messages:n.M,Initialized:typeof n.S!="undefined"?!0:!1,ShouldReconnect:typeof n.T!="undefined"?!0:!1,LongPollDelay:n.L,GroupsToken:n.G}},updateGroups:function(n,t){t&&(n.groupsToken=t)},stringifySend:function(n,t){return typeof t=="string"||typeof t=="undefined"||t===null?t:n.json.stringify(t)},ajaxSend:function(t,i){var h=u.stringifySend(t,i),c=e(t,"/send"),o,s=function(t,u){n(u).triggerHandler(f.onError,[r._.transportError(r.resources.sendFailed,u.transport,t,o),i])};return o=u.ajax(t,{url:c,type:t.ajaxDataType==="jsonp"?"GET":"POST",contentType:r._.defaultContentType,data:{data:h},success:function(n){var i;if(n){try{i=t._parseResponse(n)}catch(r){s(r,t);t.stop();return}u.triggerReceived(t,i)}},error:function(n,i){i!=="abort"&&i!=="parsererror"&&s(n,t)}})},ajaxAbort:function(n,t){if(typeof n.transport!="undefined"){t=typeof t=="undefined"?!0:t;var i=e(n,"/abort");u.ajax(n,{url:i,async:t,timeout:1e3,type:"POST"});n.log("Fired ajax abort async = "+t+".")}},ajaxStart:function(t,i){var h=function(n){var i=t._deferral;i&&i.reject(n)},s=function(i){t.log("The start request failed. Stopping the connection.");n(t).triggerHandler(f.onError,[i]);h(i);t.stop()};t._.startRequest=u.ajax(t,{url:e(t,"/start"),success:function(n,u,f){var e;try{e=t._parseResponse(n)}catch(o){s(r._.error(r._.format(r.resources.errorParsingStartResponse,n),o,f));return}e.Response==="started"?i():s(r._.error(r._.format(r.resources.invalidStartResponse,n),null,f))},error:function(n,i,u){i!==o?s(r._.error(r.resources.errorDuringStartRequest,u,n)):(t.log("The start request aborted because connection.stop() was called."),h(r._.error(r.resources.stoppedDuringStartRequest,null,n)))}})},tryAbortStartRequest:function(n){n._.startRequest&&(n._.startRequest.abort(o),delete n._.startRequest)},tryInitialize:function(n,t,i){t.Initialized&&i?i():t.Initialized&&n.log("WARNING! The client received an init message after reconnecting.")},triggerReceived:function(t,i){t._.connectingMessageBuffer.tryBuffer(i)||n(t).triggerHandler(f.onReceived,[i])},processMessages:function(t,i,r){var f;u.markLastMessage(t);i&&(f=u.maximizePersistentResponse(i),u.updateGroups(t,f.GroupsToken),f.MessageId&&(t.messageId=f.MessageId),f.Messages&&(n.each(f.Messages,function(n,i){u.triggerReceived(t,i)}),u.tryInitialize(t,f,r)))},monitorKeepAlive:function(t){var i=t._.keepAliveData;i.monitoring?t.log("Tried to monitor keep alive but it's already being monitored."):(i.monitoring=!0,u.markLastMessage(t),t._.keepAliveData.reconnectKeepAliveUpdate=function(){u.markLastMessage(t)},n(t).bind(f.onReconnect,t._.keepAliveData.reconnectKeepAliveUpdate),t.log("Now monitoring keep alive with a warning timeout of "+i.timeoutWarning+", keep alive timeout of "+i.timeout+" and disconnecting timeout of "+t.disconnectTimeout))},stopMonitoringKeepAlive:function(t){var i=t._.keepAliveData;i.monitoring&&(i.monitoring=!1,n(t).unbind(f.onReconnect,t._.keepAliveData.reconnectKeepAliveUpdate),t._.keepAliveData={},t.log("Stopping the monitoring of the keep alive."))},startHeartbeat:function(n){n._.lastActiveAt=(new Date).getTime();s(n)},markLastMessage:function(n){n._.lastMessageAt=(new Date).getTime()},markActive:function(n){return u.verifyLastActive(n)?(n._.lastActiveAt=(new Date).getTime(),!0):!1},isConnectedOrReconnecting:function(n){return n.state===r.connectionState.connected||n.state===r.connectionState.reconnecting},ensureReconnectingState:function(t){return c(t,r.connectionState.connected,r.connectionState.reconnecting)===!0&&n(t).triggerHandler(f.onReconnecting),t.state===r.connectionState.reconnecting},clearReconnectTimeout:function(n){n&&n._.reconnectTimeout&&(t.clearTimeout(n._.reconnectTimeout),delete n._.reconnectTimeout)},verifyLastActive:function(t){if((new Date).getTime()-t._.lastActiveAt>=t.reconnectWindow){var i=r._.format(r.resources.reconnectWindowTimeout,new Date(t._.lastActiveAt),t.reconnectWindow);return t.log(i),n(t).triggerHandler(f.onError,[r._.error(i,"TimeoutException")]),t.stop(!1,!1),!1}return!0},reconnect:function(n,i){var f=r.transports[i];if(u.isConnectedOrReconnecting(n)&&!n._.reconnectTimeout){if(!u.verifyLastActive(n))return;n._.reconnectTimeout=t.setTimeout(function(){u.verifyLastActive(n)&&(f.stop(n),u.ensureReconnectingState(n)&&(n.log(i+" reconnecting."),f.start(n)))},n.reconnectDelay)}},handleParseFailure:function(t,i,u,e,o){var s=r._.transportError(r._.format(r.resources.parseFailed,i),t.transport,u,o);e&&e(s)?t.log("Failed to parse server response while attempting to connect."):(n(t).triggerHandler(f.onError,[s]),t.stop())},initHandler:function(n){return new h(n)},foreverFrame:{count:0,connections:{}}}}(window.jQuery,window),function(n,t){var r=n.signalR,u=n.signalR.events,f=n.signalR.changeState,i=r.transports._logic;r.transports.webSockets={name:"webSockets",supportsKeepAlive:function(){return!0},send:function(t,f){var e=i.stringifySend(t,f);try{t.socket.send(e)}catch(o){n(t).triggerHandler(u.onError,[r._.transportError(r.resources.webSocketsInvalidState,t.transport,o,t.socket),f])}},start:function(e,o,s){var h,c=!1,l=this,a=!o,v=n(e);if(!t.WebSocket){s();return}e.socket||(h=e.webSocketServerUrl?e.webSocketServerUrl:e.wsProtocol+e.host,h+=i.getUrl(e,this.name,a),e.log("Connecting to websocket endpoint '"+h+"'."),e.socket=new t.WebSocket(h),e.socket.onopen=function(){c=!0;e.log("Websocket opened.");i.clearReconnectTimeout(e);f(e,r.connectionState.reconnecting,r.connectionState.connected)===!0&&v.triggerHandler(u.onReconnect)},e.socket.onclose=function(t){var i;this===e.socket&&(c&&typeof t.wasClean!="undefined"&&t.wasClean===!1?(i=r._.transportError(r.resources.webSocketClosed,e.transport,t),e.log("Unclean disconnect from websocket: "+(t.reason||"[no reason given]."))):e.log("Websocket closed."),s&&s(i)||(i&&n(e).triggerHandler(u.onError,[i]),l.reconnect(e)))},e.socket.onmessage=function(t){var r;try{r=e._parseResponse(t.data)}catch(u){i.handleParseFailure(e,t.data,u,s,t);return}r&&(n.isEmptyObject(r)||r.M?i.processMessages(e,r,o):i.triggerReceived(e,r))})},reconnect:function(n){i.reconnect(n,this.name)},lostConnection:function(n){this.reconnect(n)},stop:function(n){i.clearReconnectTimeout(n);n.socket&&(n.log("Closing the Websocket."),n.socket.close(),n.socket=null)},abort:function(n,t){i.ajaxAbort(n,t)}}}(window.jQuery,window),function(n,t){var i=n.signalR,u=n.signalR.events,e=n.signalR.changeState,r=i.transports._logic,f=function(n){t.clearTimeout(n._.reconnectAttemptTimeoutHandle);delete n._.reconnectAttemptTimeoutHandle};i.transports.serverSentEvents={name:"serverSentEvents",supportsKeepAlive:function(){return!0},timeOut:3e3,start:function(o,s,h){var c=this,l=!1,a=n(o),v=!s,y;if(o.eventSource&&(o.log("The connection already has an event source. Stopping it."),o.stop()),!t.EventSource){h&&(o.log("This browser doesn't support SSE."),h());return}y=r.getUrl(o,this.name,v);try{o.log("Attempting to connect to SSE endpoint '"+y+"'.");o.eventSource=new t.EventSource(y,{withCredentials:o.withCredentials})}catch(p){o.log("EventSource failed trying to connect with error "+p.Message+".");h?h():(a.triggerHandler(u.onError,[i._.transportError(i.resources.eventSourceFailedToConnect,o.transport,p)]),v&&c.reconnect(o));return}v&&(o._.reconnectAttemptTimeoutHandle=t.setTimeout(function(){l===!1&&o.eventSource.readyState!==t.EventSource.OPEN&&c.reconnect(o)},c.timeOut));o.eventSource.addEventListener("open",function(){o.log("EventSource connected.");f(o);r.clearReconnectTimeout(o);l===!1&&(l=!0,e(o,i.connectionState.reconnecting,i.connectionState.connected)===!0&&a.triggerHandler(u.onReconnect))},!1);o.eventSource.addEventListener("message",function(n){var t;if(n.data!=="initialized"){try{t=o._parseResponse(n.data)}catch(i){r.handleParseFailure(o,n.data,i,h,n);return}r.processMessages(o,t,s)}},!1);o.eventSource.addEventListener("error",function(n){var r=i._.transportError(i.resources.eventSourceError,o.transport,n);this===o.eventSource&&(h&&h(r)||(o.log("EventSource readyState: "+o.eventSource.readyState+"."),n.eventPhase===t.EventSource.CLOSED?(o.log("EventSource reconnecting due to the server connection ending."),c.reconnect(o)):(o.log("EventSource error."),a.triggerHandler(u.onError,[r]))))},!1)},reconnect:function(n){r.reconnect(n,this.name)},lostConnection:function(n){this.reconnect(n)},send:function(n,t){r.ajaxSend(n,t)},stop:function(n){f(n);r.clearReconnectTimeout(n);n&&n.eventSource&&(n.log("EventSource calling close()."),n.eventSource.close(),n.eventSource=null,delete n.eventSource)},abort:function(n,t){r.ajaxAbort(n,t)}}}(window.jQuery,window),function(n,t){var r=n.signalR,e=n.signalR.events,o=n.signalR.changeState,i=r.transports._logic,u=function(){var n=t.document.createElement("iframe");return n.setAttribute("style","position:absolute;top:0;left:0;width:0;height:0;visibility:hidden;"),n},f=function(){var i=null,f=1e3,n=0;return{prevent:function(){r._.ieVersion<=8&&(n===0&&(i=t.setInterval(function(){var n=u();t.document.body.appendChild(n);t.document.body.removeChild(n);n=null},f)),n++)},cancel:function(){n===1&&t.clearInterval(i);n>0&&n--}}}();r.transports.foreverFrame={name:"foreverFrame",supportsKeepAlive:function(){return!0},iframeClearThreshold:50,start:function(n,r,e){var l=this,s=i.foreverFrame.count+=1,h,o=u(),c=function(){n.log("Forever frame iframe finished loading and is no longer receiving messages.");e&&e()||l.reconnect(n)};if(t.EventSource){e&&(n.log("Forever Frame is not supported by SignalR on browsers with SSE support."),e());return}o.setAttribute("data-signalr-connection-id",n.id);f.prevent();h=i.getUrl(n,this.name);h+="&frameId="+s;t.document.documentElement.appendChild(o);n.log("Binding to iframe's load event.");o.addEventListener?o.addEventListener("load",c,!1):o.attachEvent&&o.attachEvent("onload",c);o.src=h;i.foreverFrame.connections[s]=n;n.frame=o;n.frameId=s;r&&(n.onSuccess=function(){n.log("Iframe transport started.");r()})},reconnect:function(n){var r=this;i.isConnectedOrReconnecting(n)&&i.verifyLastActive(n)&&t.setTimeout(function(){if(i.verifyLastActive(n)&&n.frame&&i.ensureReconnectingState(n)){var u=n.frame,t=i.getUrl(n,r.name,!0)+"&frameId="+n.frameId;n.log("Updating iframe src to '"+t+"'.");u.src=t}},n.reconnectDelay)},lostConnection:function(n){this.reconnect(n)},send:function(n,t){i.ajaxSend(n,t)},receive:function(t,u){var f,e,o;if(t.json!==t._originalJson&&(u=t._originalJson.stringify(u)),o=t._parseResponse(u),i.processMessages(t,o,t.onSuccess),t.state===n.signalR.connectionState.connected&&(t.frameMessageCount=(t.frameMessageCount||0)+1,t.frameMessageCount>r.transports.foreverFrame.iframeClearThreshold&&(t.frameMessageCount=0,f=t.frame.contentWindow||t.frame.contentDocument,f&&f.document&&f.document.body)))for(e=f.document.body;e.firstChild;)e.removeChild(e.firstChild)},stop:function(n){var r=null;if(f.cancel(),n.frame){if(n.frame.stop)n.frame.stop();else try{r=n.frame.contentWindow||n.frame.contentDocument;r.document&&r.document.execCommand&&r.document.execCommand("Stop")}catch(u){n.log("Error occurred when stopping foreverFrame transport. Message = "+u.message+".")}n.frame.parentNode===t.document.body&&t.document.body.removeChild(n.frame);delete i.foreverFrame.connections[n.frameId];n.frame=null;n.frameId=null;delete n.frame;delete n.frameId;delete n.onSuccess;delete n.frameMessageCount;n.log("Stopping forever frame.")}},abort:function(n,t){i.ajaxAbort(n,t)},getConnection:function(n){return i.foreverFrame.connections[n]},started:function(t){o(t,r.connectionState.reconnecting,r.connectionState.connected)===!0&&n(t).triggerHandler(e.onReconnect)}}}(window.jQuery,window),function(n,t){var r=n.signalR,u=n.signalR.events,e=n.signalR.changeState,f=n.signalR.isDisconnecting,i=r.transports._logic;r.transports.longPolling={name:"longPolling",supportsKeepAlive:function(){return!1},reconnectDelay:3e3,start:function(o,s,h){var a=this,v=function(){v=n.noop;o.log("LongPolling connected.");s?s():o.log("WARNING! The client received an init message after reconnecting.")},y=function(n){return h(n)?(o.log("LongPolling failed to connect."),!0):!1},c=o._,l=0,p=function(i){t.clearTimeout(c.reconnectTimeoutId);c.reconnectTimeoutId=null;e(i,r.connectionState.reconnecting,r.connectionState.connected)===!0&&(i.log("Raising the reconnect event"),n(i).triggerHandler(u.onReconnect))},w=36e5;o.pollXhr&&(o.log("Polling xhr requests already exists, aborting."),o.stop());o.messageId=null;c.reconnectTimeoutId=null;c.pollTimeoutId=t.setTimeout(function(){(function e(s,h){var g=s.messageId,nt=g===null,k=!nt,tt=!h,d=i.getUrl(s,a.name,k,tt,!0),b={};(s.messageId&&(b.messageId=s.messageId),s.groupsToken&&(b.groupsToken=s.groupsToken),f(s)!==!0)&&(o.log("Opening long polling request to '"+d+"'."),s.pollXhr=i.ajax(o,{xhrFields:{onprogress:function(){i.markLastMessage(o)}},url:d,type:"POST",contentType:r._.defaultContentType,data:b,timeout:o._.pollTimeout,success:function(r){var h,w=0,u,a;o.log("Long poll complete.");l=0;try{h=o._parseResponse(r)}catch(b){i.handleParseFailure(s,r,b,y,s.pollXhr);return}(c.reconnectTimeoutId!==null&&p(s),h&&(u=i.maximizePersistentResponse(h)),i.processMessages(s,h,v),u&&n.type(u.LongPollDelay)==="number"&&(w=u.LongPollDelay),f(s)!==!0)&&(a=u&&u.ShouldReconnect,!a||i.ensureReconnectingState(s))&&(w>0?c.pollTimeoutId=t.setTimeout(function(){e(s,a)},w):e(s,a))},error:function(f,h){var v=r._.transportError(r.resources.longPollFailed,o.transport,f,s.pollXhr);if(t.clearTimeout(c.reconnectTimeoutId),c.reconnectTimeoutId=null,h==="abort"){o.log("Aborted xhr request.");return}if(!y(v)){if(l++,o.state!==r.connectionState.reconnecting&&(o.log("An error occurred using longPolling. Status = "+h+". Response = "+f.responseText+"."),n(s).triggerHandler(u.onError,[v])),(o.state===r.connectionState.connected||o.state===r.connectionState.reconnecting)&&!i.verifyLastActive(o))return;if(!i.ensureReconnectingState(s))return;c.pollTimeoutId=t.setTimeout(function(){e(s,!0)},a.reconnectDelay)}}}),k&&h===!0&&(c.reconnectTimeoutId=t.setTimeout(function(){p(s)},Math.min(1e3*(Math.pow(2,l)-1),w))))})(o)},250)},lostConnection:function(n){n.pollXhr&&n.pollXhr.abort("lostConnection")},send:function(n,t){i.ajaxSend(n,t)},stop:function(n){t.clearTimeout(n._.pollTimeoutId);t.clearTimeout(n._.reconnectTimeoutId);delete n._.pollTimeoutId;delete n._.reconnectTimeoutId;n.pollXhr&&(n.pollXhr.abort(),n.pollXhr=null,delete n.pollXhr)},abort:function(n,t){i.ajaxAbort(n,t)}}}(window.jQuery,window),function(n){function r(n){return n+e}function s(n,t,i){for(var f=n.length,u=[],r=0;r + + + + + diff --git a/path.txt b/path.txt new file mode 100644 index 0000000..f346158 --- /dev/null +++ b/path.txt @@ -0,0 +1 @@ +PATH=C:\ProgramData\Oracle\Java\javapath;C:\RailsInstaller\Git\cmd;C:\RailsInstaller\Ruby2.1.0\bin;C:\Ruby21\bin;C:\ProgramData\chocolatey\bin;C:\Python27\;C:\Python27\Scripts;C:\Perl\site\bin;C:\Perl\bin;C:\app\james.dilcock\product\11.2.0\client_1\bin;C:\PROGRAM FILES\DELL\DW WLAN CARD;C:\Windows\SYSTEM32;C:\Windows;C:\Windows\SYSTEM32\WBEM;C:\Windows\SYSTEM32\WINDOWSPOWERSHELL\V1.0\;C:\PROGRAM FILES\INTEL\WIFI\BIN\;C:\PROGRAM FILES\COMMON FILES\INTEL\WIRELESSCOMMON\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft Team Foundation Server 2012 Power Tools\;C:\Program Files (x86)\Microsoft Team Foundation Server 2012 Power Tools\Best Practices Analyzer\;C:\Program Files\NCover v4 Desktop;C:\Program Files (x86)\Microsoft SDKs\TypeScript\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files (x86)\Calibre2\;C:\Program Files (x86)\Microsoft Team Foundation Server 2015 Power Tools\;C:\Program Files (x86)\Microsoft Team Foundation Server 2013 Power Tools\Best Practices Analyzer\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files (x86)\Git\cmd;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\nodejs\;c:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;c:\Program Files\Microsoft SQL Server\110\DTS\Binn\;C:\Windows\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files (x86)\Skype\Phone\;C:\Users\james.dilcock\.dnx\bin;C:\ProgramData\Oracle\Java\javapath;C:\RailsInstaller\Git\cmd;C:\RailsInstaller\Ruby2.1.0\bin;C:\Ruby21\bin;C:\ProgramData\chocolatey\bin;C:\Python27\;C:\Python27\Scripts;C:\Perl\site\bin;C:\Perl\bin;C:\app\james.dilcock\product\11.2.0\client_1\bin;C:\PROGRAM FILES\DELL\DW WLAN CARD;C:\Windows\SYSTEM32;C:\Windows;C:\Windows\SYSTEM32\WBEM;C:\Windows\SYSTEM32\WINDOWSPOWERSHELL\V1.0\;C:\PROGRAM FILES\INTEL\WIFI\BIN\;C:\PROGRAM FILES\COMMON FILES\INTEL\WIRELESSCOMMON\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft Team Foundation Server 2012 Power Tools\;C:\Program Files (x86)\Microsoft Team Foundation Server 2012 Power Tools\Best Practices Analyzer\;C:\Program Files\NCover v4 Desktop;C:\Program Files (x86)\Microsoft SDKs\TypeScript\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Pro diff --git a/res/native/android/ant.properties b/res/native/android/ant.properties new file mode 100644 index 0000000..433c949 --- /dev/null +++ b/res/native/android/ant.properties @@ -0,0 +1,4 @@ +key.store= +key.alias= +key.store.password= +key.alias.password= \ No newline at end of file diff --git a/res/shared/icon-96-xhdpi-TransparentText.png b/res/shared/icon-96-xhdpi-TransparentText.png new file mode 100644 index 0000000000000000000000000000000000000000..faab7062b2daa3516b49e6c95acb6dba3138c037 GIT binary patch literal 1517 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wF4y>4+Z#yxB|J>wFgJh&<%mIn<_HE zSe#lCE+Hu^C$FfiqN=8@p{b>E|C17!(p379J599TS_9mYJQCn_o~^TvA$IQCVHn(A3=B(>HO- z)af&3&z-km(b8orR;^yUe#55iJNN86aPaW)6Q|CcJAd)=)$2EJ-MRPR(UWH{UcUeM z`Rn(ezyF?jc}RkRf!Wp5#W5t~-rJd(;g=mm+Ac2%x|yXNb!2I%L)U^8IeBXp9yE0^ zHHC@@2nGl`#t5(oim-Scymjuss0jDmB`5cqPcHs4XPex}VkS2aD(<59nVx&22=m&O0BK5M(uw14j~zF@HM z&LKvom0oEl%ZzjmvK*9PKj9TQIrn-}{koFHi!3I+k-x6}Yn}dV@vt`<4Br{Fcg42e z*E@!kx9N1vR-}6S8bI01Lr;q*V zJ;b2u)_GG$;c!+%;@+7n%Vsf)NKap1u>88qX$@azuaq^%-SZyuGo3DY!dANG0+-&` zy_P12iYv@7I#mT4H5t5BvURqeBk*++M{A@jfq42fvn~7f;|M)Fp-F2XIjq%%StTGCI&a=vM7+&XEG1v)l zX-w|2jQ2WFYR8xGGGyNKx^E9>s2wPq|Gl2Oy1}osFEXp>Bg4|HnKRb$XD@%Wls(;g zoAS0-E8SLgA3P@dxo1__4e2WPul-gD4Yr9&3^AWK@1OMNzQVT#VV3_Jn1i{UGX9sE zudA5)|G-aon;V~AR5X43?{@R*ue67^O_IFBt(dLnYApLMc(2a+_tB{0zopr07=rx_W%F@ literal 0 HcmV?d00001 diff --git a/res/shared/icon.png b/res/shared/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..11656c56928e094e5f61eb75f0146cf1a0dc6312 GIT binary patch literal 2942 zcmV-^3xV{BP)L zDFwIVb^M81=!ZGjghM!kOAx~aoWvfi!bEgLMSPE^kc%W}Zn1p%@)z|Z$1ySacnxLH z9gDFa=O9t=;uN-F3L4=@Jc2Z6PFl5U)r=e#ix8JNfwA}%1#uIA5j}`1 z*aR=c<<4RcGp10EcQB&el$$Myg`I1^QI8j|4F;bYqZ7|;BwI14GHY`}+>2Qc3AJ?fe7(;B>C zb%6f^zUM3R@uVdIjIWw|AOR^OaJ#7ij5SKjAVDc!G)0Cf0gOM@20%iloWlQR1@J`l z_kyw+FGm%?_$zidBqGXSl{I)gtN`5j5LQ4;p)^8r zI033aOrz|<>mda&UM?FUrc&A>C6oY_A*NII;?;lwxbl9if>=Un7%V_>T!L6a*?@(@P}2Y4O(A&RX5225MLBi-N>up}L~x&+bH_I`Bo zPFHJ)X!{{J`a=-leNYJC==>r&l?EoKXmDy;lHutYN^9$)bJ)RJh91qE{w^+qN_q!q zgrA+6o1@uz1ouYynXh`1Vil1SA*iD@^*=>H?@q68Pf5zUzCwd zn0eeaa2E)uKN!*fR!D;67y;F}BrCasPBr+uRo2HBNV(|z19dnYDIAflla5o;mfN_$`G7#k;n z{H{JaYqvWcvR-=vI*l_ZqrIC1pc_r|2o(WY9o=-|Hm7+fsgu}-B+f{I`k@gzZ=WY! zq#|H%VTI=VuIuZa8PjI9h#`omc$7W_R z)j)@BUbvY#mDP|yA2-t*H3{gU6L+{QsK*(479pUre~9c$s}bD_ z!8J5+QHGFBXyzij^~gA=&Mu&1lBfTCSQvO9Y)F{wo&2LT`lo&_;#0O(>_< z5^$G;Zwv@1H$uSgJPXU=TwY5r2gTB>!Ep+~N%NzKWNAJZXyORGp3B#Mp2-aYJ%gj) z!K#xmur0p~`>`CvjG(BepU&Wb(piE`4?6q1fq*!@&Oet^wy?X81bVm}+~E?$DQh$D z{Jm0Du9jyM(k)zy%8&&*f#|>6J;bUnMVMJK`OI*QgP&DjiooIU-;`VtoOIOsw5ViHu_EKNZ_#Anb&`@LYBBxmpOkgkUXm`_eZzkO0e|ZJgGv}Nv2h{ze9?CfWkJc1zjx?ni5yELV{AQjmz$>G-ZA{l zp$DE<*dz2VF0cW%hy$U@KF6i&VX^4>uf2N;cw>vgFuc#HZQHhO+r6r7+qP}r)V6Kg zwvA->t*vBcqIL27jKA^BUdyoqm}lB9T~kK!OEElwwvHfxjnlX6$o6Rn>P2W_=_$!^ zhmIUcsrV%*)1bw}nKr%xtPd{O+NoQwsw)FIVtY}hl$ zk0n!lQT!o}tOqPL{+rs-{NfLDpiL)UqvFplPp<(Rw5h~t#Q0eNac~~mRAL ze<{{c&d}17VmBiFO8`MI587$sC8{`5uqi8ULOVq)L@-AJ_#Zu>9VV_Li!(+0A~`&O zTiDPZ|2bQ>GLJ)xBC!;qji?*?A6ouX0Y7mXsf;XL928Ta|42MQ1v83wNB!fuWAPGg z;m54<^~rDm`Uk>>VF+w?2aPN^2`vEFF%_Y#>LHU0r=gXwV-~_$-9;$}jw@O0Ohq_X z^$|;t-9Eg+9fnY@?xYtVOJMi0P0h9l>=wNwKhAOQweXpiWq{qgvBZJdDiU@x!;neo5J^_1sH;$k3fc;Mn@4=N*= zr#JQYgR~fnn;!7NA3$S7gaSM_fbaWIrp5rAfeqSCJjEu|MkFY}djk0WRA)@o!E)Sz z9ok~AaR%d15FwxdFAm_lFajYpnqe_6nRw#Ij>kBJ@u-OC@B;;SdH~MvN5n>PbjBR) z!xcQlOW0ul!-xDD&v6%Lun7~;09g?Z|3d+g0Dc-sDC9>gjKBiyz!}`eQ@p@)Ji;{` o#d^#{U(`ZM_=9pQA4kZ%1(HO;v_6dVNB{r;07*qoM6N<$f+vT2Pyhe` literal 0 HcmV?d00001 diff --git a/res/shared/logo.png b/res/shared/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5144848eb25396bc3157a204aa181bb62479f5be GIT binary patch literal 33660 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 KT-G@yGywp-YHsBK literal 0 HcmV?d00001 diff --git a/res/shared/screen-xhdpi-portrait.png b/res/shared/screen-xhdpi-portrait.png new file mode 100644 index 0000000000000000000000000000000000000000..365300e7af86a33f653750f38aa87659146954ed GIT binary patch literal 346260 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

20fDPGNTUI%IJ=x)9c*4|(Z#;oi8P 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 QrvLx|07*qoM6N<$f-2W*V*mgE literal 0 HcmV?d00001 diff --git a/resources/android/icon/drawable-ldpi-icon.png b/resources/android/icon/drawable-ldpi-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c686d5efb3c6f9be890361866bf6cb5d3d3218de GIT binary patch literal 1124 zcmV-q1e^PbP)5Ccwfw0jB+DY{(n#+OMNjPdq7s*O+ zl8KH`1q$U_R20I&_RM#x>btRnTeB9H%Dru;E7eDoZA}Y_c7~B^8fu#TttGoYcT5URrNU0 zJhsWcVymxEQKl`sA_D1r1!Bd_OE=@`w;%YZH)79|7YI9LDQa#%1cSwjy-!|Z!S%aX z%U}A#Y{sMuH!$|xHGDD{vGVpqEV+4K))8gR_8!NDw;!aLS8mGzywe#l?eZ;Ofg(>^ z_Ez!l*=F4N>$vjnBbx3xjyFH`a+X@}KZ#dAbV#{y17~aj!Z75aXRl?5Nf&S6%&T{Z zFm;)n&14JK;~59k^XPe;fAayC*w@@^cd+=zeZ2muL!V<8d1`_p#oVtwRT=Lr=zsMO5&Ta8eplM6Li$FjA3nbV6z21POoO-d|TOK@> zL8e^1iEkz|E_1Z|pT5G0mv5ox5{i8_hD)ZiSaA0Bdz|7--Tw3i-&wcb&Lc9={m-M~zqe z@O|8O{}gk^@+Bfrf3g!arcW|wRU1WpRe4X)*q!1lHfI%q!qX0d#%3MAd^M`i<41im z6EyOLd#W%#ypG@#D4NEPAS;yNvqC?*b0_lOkFXW!s|I17Qx3nLsYB8@FQ0Kn>J-px zPz>5k@B%x{qHuw|C?=tOUU>akPBDV|DxH`%kkv!WG>c+5`mrGz4Wo|)H+exFDZI0v zV?t0d+Ce%Ozj~~o>=eu$AFLu!d0I|Sf_M=%&^?+>g(-~dAFO-_3q@(EDJ`M9^o^`! qq0e+(4N-@ZQHY>+f9uw*D8B#^;JXeDjJZVs0000wi)*K->#`t<-6pZciE}>1l~4kbSR?@KkPlXY2atvQgo%(T!2%E&X%4SJ4`g8) zxB?a99RM~;31h$$=pS={_K+k_0bqmFumD1V5{U;4fTXbsKxBRaL;xi+ALtk307R3G zF=XC4xIwF!2GATlfUL|{C>>=0;-m5vkd-_^c+<~mzN62Rs zfcS~97f1p0Fa;!ATiYD+gCxH7+<+9~owRyycGn-@vq^Z6#IH(H5S6rUe;0Ch&ceUv z;VF>9?0fd{b1q5z8Sw#9m~Va0-KZjoe^NRig$b;@|I7e6fHOc*S|{6YV6@KUGG1=9 zjY(@kY;SJ8IF2d0Lc30EkOTMvWEKukV*fc>{pJg8`d~xN&fYQ{G}WfV)aUvm+WFa@ z4%z%L*oF7~Zak)x8xK+K6IW^DdmAI0U=@zn@zOm?zVRTnI)9rse-P`0jWGM^J1UNI zn+qcM_G7ms@duouz$YV7?mN0t#;r$@oqb$^5VeMvhikMHs?qSXo`_#}!1|%LpYeK) zPDkNdEsFrT1gg~3;@mA-@caYGB@Fvu84DH1J#P1lgEUpI9NUiacYrFY>=)a2mVO5W zk%MmlS6)7O=gaphY9Z4#j$h^HgWrDe^2IMd(l8MKvdZh~p1ekN zVBc2wD9gP4zw5KuH%muxcSE!UG|u{0Q}?t z!hj+{rbgU(PFlU5`!kx81)+bU@L*jmy3mc^PBZ{P^uPI-pRfLMG;|3u2I%~czclXt zOPYX|nE3D&J#cj6<&z)1HUzN#-8brTvr0S@^SY&qE z<2MG#G!MokI992H=Q*4I!ymI1u)lo1Dn~D)t3}#|6IbHEIkRIR&yM4lBr#V>rl7yV zev{(^>-br`js(k%wvFdDrf7@qI=NgD6RjE`h4HO%@LV@Z%o4i+Da_k3mv5Jq#GmAw zKuUsfy5Xn2U3Li%l9=Mw11UrZ#zr%8b<85+K@OlO`~p&l`_jtY>Hj*|XP5B6#QZ!d zfEosXWGl}~;DKR5N%*0J>_cXAGjo%y{3F#L+C(+Am5FEpn(SjemhfUB7GFbj@m8fq3$q%hzB|HU35s(Jd5D35E4$OvzkOPu{ d6i0l8=0A2JlTbF}Jaqs7002ovPDHLkV1hl|wyyvH literal 0 HcmV?d00001 diff --git a/resources/android/icon/drawable-xhdpi-icon.png b/resources/android/icon/drawable-xhdpi-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..11656c56928e094e5f61eb75f0146cf1a0dc6312 GIT binary patch literal 2942 zcmV-^3xV{BP)L zDFwIVb^M81=!ZGjghM!kOAx~aoWvfi!bEgLMSPE^kc%W}Zn1p%@)z|Z$1ySacnxLH z9gDFa=O9t=;uN-F3L4=@Jc2Z6PFl5U)r=e#ix8JNfwA}%1#uIA5j}`1 z*aR=c<<4RcGp10EcQB&el$$Myg`I1^QI8j|4F;bYqZ7|;BwI14GHY`}+>2Qc3AJ?fe7(;B>C zb%6f^zUM3R@uVdIjIWw|AOR^OaJ#7ij5SKjAVDc!G)0Cf0gOM@20%iloWlQR1@J`l z_kyw+FGm%?_$zidBqGXSl{I)gtN`5j5LQ4;p)^8r zI033aOrz|<>mda&UM?FUrc&A>C6oY_A*NII;?;lwxbl9if>=Un7%V_>T!L6a*?@(@P}2Y4O(A&RX5225MLBi-N>up}L~x&+bH_I`Bo zPFHJ)X!{{J`a=-leNYJC==>r&l?EoKXmDy;lHutYN^9$)bJ)RJh91qE{w^+qN_q!q zgrA+6o1@uz1ouYynXh`1Vil1SA*iD@^*=>H?@q68Pf5zUzCwd zn0eeaa2E)uKN!*fR!D;67y;F}BrCasPBr+uRo2HBNV(|z19dnYDIAflla5o;mfN_$`G7#k;n z{H{JaYqvWcvR-=vI*l_ZqrIC1pc_r|2o(WY9o=-|Hm7+fsgu}-B+f{I`k@gzZ=WY! zq#|H%VTI=VuIuZa8PjI9h#`omc$7W_R z)j)@BUbvY#mDP|yA2-t*H3{gU6L+{QsK*(479pUre~9c$s}bD_ z!8J5+QHGFBXyzij^~gA=&Mu&1lBfTCSQvO9Y)F{wo&2LT`lo&_;#0O(>_< z5^$G;Zwv@1H$uSgJPXU=TwY5r2gTB>!Ep+~N%NzKWNAJZXyORGp3B#Mp2-aYJ%gj) z!K#xmur0p~`>`CvjG(BepU&Wb(piE`4?6q1fq*!@&Oet^wy?X81bVm}+~E?$DQh$D z{Jm0Du9jyM(k)zy%8&&*f#|>6J;bUnMVMJK`OI*QgP&DjiooIU-;`VtoOIOsw5ViHu_EKNZ_#Anb&`@LYBBxmpOkgkUXm`_eZzkO0e|ZJgGv}Nv2h{ze9?CfWkJc1zjx?ni5yELV{AQjmz$>G-ZA{l zp$DE<*dz2VF0cW%hy$U@KF6i&VX^4>uf2N;cw>vgFuc#HZQHhO+r6r7+qP}r)V6Kg zwvA->t*vBcqIL27jKA^BUdyoqm}lB9T~kK!OEElwwvHfxjnlX6$o6Rn>P2W_=_$!^ zhmIUcsrV%*)1bw}nKr%xtPd{O+NoQwsw)FIVtY}hl$ zk0n!lQT!o}tOqPL{+rs-{NfLDpiL)UqvFplPp<(Rw5h~t#Q0eNac~~mRAL ze<{{c&d}17VmBiFO8`MI587$sC8{`5uqi8ULOVq)L@-AJ_#Zu>9VV_Li!(+0A~`&O zTiDPZ|2bQ>GLJ)xBC!;qji?*?A6ouX0Y7mXsf;XL928Ta|42MQ1v83wNB!fuWAPGg z;m54<^~rDm`Uk>>VF+w?2aPN^2`vEFF%_Y#>LHU0r=gXwV-~_$-9;$}jw@O0Ohq_X z^$|;t-9Eg+9fnY@?xYtVOJMi0P0h9l>=wNwKhAOQweXpiWq{qgvBZJdDiU@x!;neo5J^_1sH;$k3fc;Mn@4=N*= zr#JQYgR~fnn;!7NA3$S7gaSM_fbaWIrp5rAfeqSCJjEu|MkFY}djk0WRA)@o!E)Sz z9ok~AaR%d15FwxdFAm_lFajYpnqe_6nRw#Ij>kBJ@u-OC@B;;SdH~MvN5n>PbjBR) z!xcQlOW0ul!-xDD&v6%Lun7~;09g?Z|3d+g0Dc-sDC9>gjKBiyz!}`eQ@p@)Ji;{` o#d^#{U(`ZM_=9pQA4kZ%1(HO;v_6dVNB{r;07*qoM6N<$f+vT2Pyhe` literal 0 HcmV?d00001 diff --git a/resources/android/icon/drawable-xxhdpi-icon.png b/resources/android/icon/drawable-xxhdpi-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..12429bde94e9950c87fd51d5b3f266e78a5eb340 GIT binary patch literal 4513 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 literal 0 HcmV?d00001 diff --git a/resources/android/icon/drawable-xxxhdpi-icon.png b/resources/android/icon/drawable-xxxhdpi-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e2e4da85066a2f1dd26ecad7ba603a7078745118 GIT binary patch literal 6599 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 literal 0 HcmV?d00001 diff --git a/resources/android/splash/drawable-land-ldpi-screen.png b/resources/android/splash/drawable-land-ldpi-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..664f18acc54f302b275c9d530ef51877fb942242 GIT binary patch literal 5669 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 MLsdrw_Xr*MU*nI?^8f$< literal 0 HcmV?d00001 diff --git a/resources/android/splash/drawable-land-mdpi-screen.png b/resources/android/splash/drawable-land-mdpi-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..14653fcdc5c0d66abd64d299ec47ec3d991684f2 GIT binary patch literal 12102 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 a_p-dbKfL;Q57-!w_gqn3q2#G);Qs;u;HoSD literal 0 HcmV?d00001 diff --git a/resources/android/splash/drawable-land-xhdpi-screen.png b/resources/android/splash/drawable-land-xhdpi-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..4897c46a26971c1963da903e266d73dbd648031b GIT binary patch literal 37454 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 literal 0 HcmV?d00001 diff --git a/resources/android/splash/drawable-land-xxhdpi-screen.png b/resources/android/splash/drawable-land-xxhdpi-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..274bcd5b858a38dc9074ae325befc0ba4e3fe489 GIT binary patch literal 52804 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 z z&e?iwNh0|F@@T(X&vBq_Za<#Ds${|@#)WeD)C*Cqq*{iy=+J0eBPT^F)elDl0_0E* zY*Y))JXTyY@K*vdAH%^Byq9z^Gd=LDprM^SGAjhQtL~#`zji%&ZOZKRgLLHcghD#K zkYL}UvHX{V<{$W@)BNNBhmT6G@ESExD)N54PEpAHXr&WVd{fgppG^NY8s=rgYsm#2 z(=!VHlBN09?qfDc;MtJrTaQohIkNLY0pcHlN_=SZPUyvqjjF(23yrs5_1W1{Ik?Qz z?ubxIQjr0@C)YsEE{Z7%q}>2*p>B-GHb|Z0&=7UKAW!imcLZ<|<_71I#o80qj;O$< zb`zN?V_yC|Jl#L|@e$z1nJ?J0k(3}$`TUCY{=zdu6%7e947d5YqzfzGJ*j_=avRIT zy^)n}+A{J$Pl8V3S@sUb?!J!Z(A;N!^1tY9Qa@><+y$qK6$Vzz(4h zND}}GEf`=kz*zoc{<9>Ise;POcO}Bmf`cuF0f=0tnPVc(P@`PwjU#)4ph^(5|iW2|*=m_2j8_AjX)YK$C zTKEs%YL$z3#5?6cfiLIoo2gG)@if2{n*&dG9?adI!$bYX)q}VsWlQ870An$B0fDNC?MR@~IYh>7m+VByM~QPDG=IY4n zRsmD#O#BRy(UjN6UDM*I_?m5aQ1o8pvn-bI#p-KgOESTjPVp*> zFfRY$6!nG9`p;8)+wdp}z)||EPwo=!FlA3)zBweJ^r=d=l$x`vK^LO2(+BcijMrmg zOnYBY)lV33I@N1(iF2%y1rp!RU~qq{*J5}HzsaNU;8N55QWGLhPF|y37M5rTq`sxi zScHbFmgc+q(J&krew0zqVYzkfI%{-?e5v3?1VZN3t~bQ!FAtTaOu*E>w3SoNzdU@Z5d@TvBkFKKLW5BX~IwS3qveJS&7RKRfRFEi;hA zdpnulScb%$p!cM~db+;7LymTT`|_`n0x3CM#(}G;5h3=*q*1=EVmIs1-$WJWo!?!O zs*=mDxep0c2@%)kmfGbMA#2dz19gORPgDnaf8U80?$cA2%MnIO@CfyWhO!wBBF)nx zLHxdq@|@N{QxQfU;2bA)e{DhZ3A)3XjS*q3uUw6yP{?p`+u<(z*Qn4!~?x~jlJbzxhEJw`g z!N$h6w@{2uy4ffnfz&~`WBRe((3k-F9-Y8tk0N^5X6m*HKH7knGnsB z>$8zrv9eM%H8l|)wArI0=NrO8jQf>aNnj}oZ?7_tOuGy2Ezn%*9_?xlk}c!mShrUh zot$xbVI*iJm_P>(_pc3gw}F4#eyhR#kNXbvHC*EfPYS=&CO#we<;pV~=gqTd{cYoQ z-d!Gt0kJ4o;oXy4I@`}|c- z={3{(>0llPjnOXDwAB`Aoi3m&8mhD4&u6_T;ku}cNBN=G_0k6W)N%(V?_DkO>T^k0 z!(zk=A_KEem54!pz5g6{1Gzl)4_CTTseCIOw!qG%RP}NmbF;V8r+1S%RfArM25aqX z1g}hZ;gq6hR7WE_aS>Y{9KBu9>EwE6vATU@P8h1&-(w@w<06@M<3x%{$l9DV?s1VW zMWprBG?Uwp=Lgm78$7Q}?mtXYsLSRpum`6a&&&Y2RLlPHRM;VG&O~SYAvD-gM}~7s zQCimA>9?>FC5M->p3Z8e?G-ubMwuDQ@i76_u4+{^EtF=b`9Mko$mg9xf4oY!2(CU* z7Yz|=CKx17^Et4u|HttOxT{6Eu#-Fj)uSqT$;jS7o>wiFvJm8(>PD(jVdG-y;U1ci zxiacDnVOJq>b28&`7hhu`PtTwgP(=et#(uvN(SNY%m4Z^p$`itdu*`F_eoQ6VfTox~dfCJ!{cbk8e@TBrRe;k^ z)&)&(VC|e2fB^!>;W@Ia;O>I$*g9@~4!9f=)$oNEL7hvg+Ij``zBD@g4>vV@F@Rr+ zPi>cMMHQYM_25qf`jI=oS`E|e#Kii1C8+m*tk_Wg?XwM^-t_bi)-cKz%RK;rQ`8+J z;fdzJdtruHzW;DjfGK{GZ@~~-E&4ePeP)a?7B-pI7B{i>?AwVgR`9fIVA{`7&m@RR7{qyjM?SxjpSz4xfoUb z6#Gsbc_Al z8VW8h$T~C4_;gG*T@hSbz<6l-Jdl}cr0XtF5qcf~Ti{xQ(}ybnbghAL7SngZ>oXLEB*jQ8RhiDPjF&M=+|of9kTLEMrB^NP zD16#^J8NRwrTsOATGiiK2p_A7l}VX-#6mz96V+{M9SnC*x^9r9yeBtj<}D3{>BE+V zG$>f2p;Vvo?uM$HpfS=vr&6WCH*sxCV<1{<{~|x%;F%=2_SK#AUs;&M(WZ6Hv>^&- zUhPn)z+b_VFI7~nD})5-Rtqtc86$hyMJ)cS-y27kAHktW)O8poZ{nt#f>qxgI>%dI zXzBm-G*d8lnNhlqTs*Rlt8&`lO8hm*SK>3iQ3A9Z=E)p^GazrJ@prf6A{*}u;np2j z@)-+uNIKfjDkZx4(Oe)~nZIWToyYo51O-QY2OsE{gT&ovj7#vxb3~{S8b6cWZ6fa5 z$HB?C?z3BWPd&u3mq<|=l%ih_eIE7Q-JM2U0D9HpxvJ!|3m!&IRibFJEF3I>A3v4h z{tG(naN^L1`tc-I6b7`Yp2UF&N+M20j;3Ew3NIhSRs2NlQf1Xm7$hM@4%>9h*W2K1 ztb2hG!R2jb72WDXgH4bL6kdiy2eKX<9ah>AEe%1$SoS6G8X25I)rH0^>hEDb`BGy} z@#GuRzbb!=5P=z-AC&k?6;oFg0t<%v?eq~xU`30l`RscNj)$i(*#t+dm@1ALst)N_ znx8@mn>T?Rp05{%xBti0YS*`wwBsQ99NumO)^{iL1O?wb`DL<~5ufASOyusl9Y}kJY>02nM_n!qIu7+819q`T8f@<4>O47y&>@L##LHQAzAV;W95%)2 zDGa%!;4_x@Cn=wX{`*XcN7_64%^sVuGPkn(h0IYVCgEu{p#(g}6Oztye&CJ+p(YXI zz>t28fd6Kz=_&2wyUU!O>?S^tmE2BQZe08I?v)3jx_hBsN;5+~k-GE${RBInL5smS z8f5%Z@ILs#lOLules^%m-HT3$)E%S4Y*#rnsHc$~oO?gKplO6yU?_4$r0)Cz>4LLS zv*Yt$8)0`f9b~?g-f-C-XAlHe6$K6!YX9Om*xMW&{r22Aj#8eZ92Tva+q-m&Ms&pf z`F7qeCRX4=Ah_w^!k}}d#d?}aYRK97vUiJ+nS8q+HyN4{2rXKN&HquWEcEG=+nYSP zU4@L^fJKhPUOXXtPN!zr~XLMXq9JYM$j_ z^ugRc;vyGe)2J}TvJ1(Z{xMi5M}-w6CSad5)J|COTYHRb89`)lbj$vtcgK!|LL8PW zW@5igV#$HnuE)t-b#LHa>@#m@*LUdIUMAi!{8d!EvS>c@!**{bjyw}N3SAFnq*2jK zjoEx5E-*KjT2Oj5Xbv2}2mgp86`Bt(y;?9w=-j!Q=OhmevHx6|^26grY|jWewrAUG zv@1Vt7+mKnYRNEbYLcclq-J=X8rWFW z`GBZnU}t0kemX$MApgCepegN1M?dOako_E6W5>%X1eJ9|!8v#%`F z#{DhruZO&4^rb#L_hvkHvV^M{lBn!%?M;a&D&M;U5RfiW5NVN;7NmPXN=igPTDn1{WQG|8hAxqA1?i!?5g0n| zXAdBp^Zotq>)wBkbsVSm-fORCJ?|y>8cYFwkX%wqx4KVRS@K?+m=2%Q=(339Z@nJH zQ1u^)wLm_n{NWYq}U6kRn6IR{36@QPmqPTkqfq0^%iZ zD~CBw@VSLT?v_Vy5p>&dC|v;HV6v%%*1dlxEyiBXJr&NqYYP8a>T3I0(WeSM9|kv! zvtmVl2Y;F(z_e?W9Ip$)~5-f6ZDYV_D0e(XnnmlRwN2F zPYE4xA_qzsUOc=zSiccxu%s7V8?*bcw2^4TYN{^6kT&KcL9p7x(qFe{kEjAr0Lm58QGXCm z|NYs2661?|)DKd&p2Qb#DnE>G#EQ7wpAhT(KsB}#6-)&I45T0689Dpa29C0-KLPlk zcLyhC;6LT4o(MzKTj-GNP!X1S3m_!MT&e_2kiF#@`HHAeEg0Dj6;}~RHDRoiQ7%;_ zMo2WQOg3RKN!03$FI4()Gu)REL0;}_HY5gUy4*6?&myC>Zsg(S9%HaJpH7o$Y( zGbS%hv?{N}M%=1`SO%5^)X@yd@RtRz*qd)f9f~O2USiw+Aq$df@J`@Iu`5A|s4}rK zhUD>_O6TQ$9fhC81Gj@s7;ZdcLNITiNVk1I6*#OB8OcQ(Vy!6(<`F~P1Bs_w4; zkVFjFI)NQMOqqB4v{$P`V6bmP*=s{QJyfX=ADk*4eWoSa*HNDex;AJ1S?~)pQ6lHu zE@|;j7dJoCdFI*k6T7%kepQLhz!tw`%2K_J6r*1D9AackgakIgfr<+8F;z?ZQ4 z!H*WV$9tJ96+im<2Yxg3qz*U+AXK6uT)|KL(hJFGY4<%m!I0Iqi}yr?k!+>u=|B4E zj{Janoirxetm`=KsT9zjT-+LHy1)jZo57$AS`?rR2-NM)#X`0eIg)dw@S*W>uL!J> z@fRz1{X$E(ZiRn4iwVm0CY)C(ILRfsCddLOrNFq^cqoLSn-CnmPmeh$L#MYzi!j8G zikwX23?q#9>feapZ@c7R*C^t60m4H`1TvmXX={Ac2v%edj-1c<>$~fTc0E?-wv87f ze2L83Fz7XOy##9xSg$Ly`k?PqXXGVsvifP??FHALzwol~^JRb|rMxhNEiXG|yvpoG zS-d5xm}YTcNznpJiWj<49a&Nu_Jl348N1+{{Z#$z=Kgq(o6O7XtLMb`h%jyd64fcz zB)s<%w?+C#YUK;AhkoR>!n_u-Um(ikN6eN|K@bBN=5^?c{y?<=OI)s8^67+=GuoBZ z+GJxBw{7)D>8Q`(7kJyR2hTgg9Cef-?R1mtGGRi>h9<^}fl@|%Ys8Op(1moW4pu~l z;~4CHD-YW8sPCIe#3RWC`sproP1~2=kcvaQ%s#f)yp+6Qi{ZSR@aC4xa;G_iro4_C zeZhMnuX^qqvW`TW{vu_$0i*8%5jL^oP#VkSw&0!Mxp*3?_Zfz&(7}1I)(II)F=`*9 zt;a9(u7Q0w!j@bDzU<-2crKw_S7RZX7itx@=hjczsFsvrdR1)sMS$8lQQDkeTE=8& z8(uN+PaO2cK3eLt61%u1x3)4P`&0j%`Rq<6QQoXrla_0Jo&m>w*R4idN9C|EE!XQ@ zl0T{wob_MeVSd1)OLrA4@`h$i5;mYE*sMSMrYMYD1(D1B-M-=+#PFIKh;}g&BY=W3 zo7-1V#6z7cy?r(&1`b>64)1Kg5yeLgG-)Q2@inaKV3edG<*Ivdk;#P6mDOZ4*P8Iy zHXgrA06&{A%}bl(gnS*ODjv2T+OS300#9wF^)VQBb$BQ=3~UMgwSE~FMt8z_-aP{ z#Kh)uxRv(T1*$4{hyf+#{u9eBWMZ2$XcVu?huwLK>1cTvOLAsni$9Qz3FN$zi+DlMioi|t5_e==5a6A~|1T8bK9jB5)K6#bIXLYM z@$ERUcPFO*jz=gjN=ebU#FGXV=Pr}JGyT(s;B{_4DfgYk)46jx zQptfy$NqHyJjLefRjmq@HAp($k6=i(LFwy_;8+F}(7EOCK`nt+;93QDE=0pq5;AcV zH(jg@u)BeGS3H!&FR5X}_+3rg`fGuFQVCiJoU<7*T!6N+YmYlqEkRE7&7;y9!7Mu- zPEi4)4asysKeaM$1Y<5~1K7dA%m4xz{C|aK{@<0=qR{ml(o&ah(*@r!fAZH&ywp&HhThrl^ONpJEu$wH8!~E$Bg6y6eI?rrh zFHT?Lflgyf2WN|Iu$}&4oploHO~V=`(vtaX^de-5AXf=PGRoIm zv_?G);buadM^B*Id!|91K8I;uL77-3);yX{|B1Tuz;8MFFcu%OU&6~jY+)gv+V86P zg*|J}${*3_gH-RK|C{p$QUCk=W>TjGK}I!`q%bZ$o}6t}+%6zE$>nU&tWX1{g~oE2 zNz|^pX>_(rTm0p0CV_6LFx4w|7iI_Br@0=PhKq(sho*_bQl;o^AjGQ9k>FAvs6B|3 z-^3?S#}<5gu0MUT0SC=&`siv{`<5~7m-8mG&3K`}nn33ITA)GJ;5S7di#yL=6VAP1 z+@LpK+NvQ#!W1k7xfBhsI2_WEo3t%P5furns+Y<*dy1}l+8Ae3^?ogMgK!1IS-c#< z03gMm8Biuu3sjMB!}I~#$=mrA`h*=NNra<@=)a{FiMEN?#R`agAUvQu3ugn)5_216 zE@Q*+0A^u(q)t?OJF6LIPX&fO`$Vw_CCl@0oG5kkx?II&1ywe8383KS~I3{bTsY462xCRHnB;o=i&Eiayb{N;tcEK zk(=c~vp@r^RWPt6H1xlJ1n$bqG=tofwO+K>s?wtgI z^Q{c>`|kSY7lRDUaC-XSyZ*rGZ{^E#Fk=quZVI90u9IwW`YWjPteycS)+T9ogPues zfI3+0yoav&5~*_RDT1(g`)s6k?ucbm4M{!jRbQdv0$K3@bd&TR?6;pKalf0h_0lYiv;v3PIyhSZ)hHq0 zOdad6abXXUz9KFDxf((@eVyro%%8*TTdYO5bmmBwC6w|J|}sN;Q=CZn(tSQLbv| zd)3*6!CzL^@@?~Ry$$(V`8N}wujLUi%EF|G=GuGU-ayDqInMcJ_$?i^`FsjU8~xNg zXWlfi$6H*IJsK6kP<)d4?}QV6cBnw(c@nUVk275UxSmeSl}g*#2VQ0zWHc{8cBODR zs3CWYY$TV1(Y7jAU)9T1sE=zU)25sGZ?e~(cHhbp1Y>vK#pd;X-R;>I<+%qlt>@oV zV)?%BU0Tf|&g-O7j{O>{LP0*{`7@Yo^n3>MX0IY%y8aY_T;) zJHJ%*0df3efl8C~FY@%D{1C;GB`R=$9M?xaU(&Ch7+Dud4X4Uh%jE@$u0ow^Q4A+6 z_GyjSMN>8JlI;5$tXOJuS(sGQW?XHjDyD-G^_J(!aQ-K^7SHE%&R_RR+A;jkA#HyQ za!K^l8m5D2w*dL58U5>NsHm4^cFNgCqZc7k6t-E>rKvltWF%G!x0#1v^;ge8pdRwr z^X$rUZQGG#pUyU^YAX4tpvZ8{p~6MKQyu)d)AMzPtK=hDC)o8&avSsg9V^0wwFSK; zCVT>~cZH6d#(dUO=9D%O__%~KaT(Bj;_!`xJh@SE+SC+Fe^*j+9=*%bx|ie^(#sp_jSVhJussRxYQN{5 z=|92%slTQ)BaMs8UojYsi|i@TVe$Fk=3nib#$_`C!lh)FU>3R^YOSSUCkOOs16beu z2$IVp@gl@^ya2C%@a4yaqO7R3T0@Jy$(CrSEute&xul1>GO6-C7KqzXoJrp5zP%XcjdK(0Rj*zDkVdu-g84~EdyK0{wz7+Soma1evc zV6$kGF%?Ybj~S3*O0Vm938AA_CX_O+az(m3G=>_$yl|392D-a?a&UJAFyrf=u9IJ@>+zbKppiIHl_l>+VJdy zbSQmdKEJ$Tu&C1yi_PZPw1B$tv``*aW_*?V20JMNboweMcm}C0Vg7s1f||gQ<=JH_ zjY9&$4^E~4V!kZx&(9KnZSSX)n)OxJ%Z^i2%;@TL@TGHYtn-Al5c?$6^{gQY5NvWK zr^vfg=1Z2x`}HL1Hp$v@O|)r#aKbQcnQQTJGV$M#Rr-#J+tgm?7Ayt97nPy8&SSgi8cJSt5TzB=*Qb!07xYSyGQEJ-Fn7jAJKFq z4fu;?yYeN!#X3uVb1Q=Er-6MI)OidDkQcs&WYVvHJ22}H{KUFK(T_03DYx{6ESE!V zLH=8SD4Qx@w&!Mn5y*o_5?iNIL<_U$;cjsLTynRi9Fq!ksC$Nf8IM173Qpmh?C#y`WXo|3$;`z?! z_+2i#7U=wP6vNsSj!}1*+{qt1YoOVi4KH;yoeuJ8tec?J86(Pb-yIp?jx2RG9tY|Q z4V~Ubk31loVWJ@$g}Lgxgs#30WRpQYBbBhC1fL2MSA!~|_~dSLOuUMq>k0XOH^%RX zrCKn}i(u_@&-?ywY13=a5zo&L6MS4mBzRw8mhxoL@}h`P?$VBe6A{)?Y)GPN=V4iH zbsxYMteAi}(ftXRoAv883+mNqR*t&~z0jBP`~H^_5~VS6?DPaGI%>9a5-tT+)Ae{2yqXAcH zyVlS|nPUm1$7nvXk1yy~QKAV1j#8|L*&0{1nSpYZ5WN4r+V0M)fq#0>FMJ&LO%%F$ zi)V1Jb7@Mp7AJiVrd@vlD! zjGa*7t!{Vm>vlbLZxwu~`DpTLp5+};h-@m+}Olh^4| zn#L&hUDE05@b0KxSBlkUv|eEH^1PsiEIQSlx17poj_+~;D`to%r*|I=&wiF@OVf`_r7k;enncXEidS^P5yZRpeodwvAWOI z*H><6?yf2HKhLr_sC-iJ9zQ%4yFCWNO$J*VzRSOIjed^{D)z8c`(miRG9mb!tzk-> zk?xoc@2>lZMoQa+Booy>=p#DBPJx6@*~pr%Ws_Cs`p;n&0y6}@^2PIPPwfmYK3=9- z`a?2M*U-55Xan}!aOR_9*13rn&+L>dp2q#;>g)X**_P)Ixrhf*u}{!dtFr&QRP#Ts z!R2Z6>LXfbRIOe~n?%>%NaJ1{Rho^~O5MvH!Pc{6*iUq3{a`6 zu0S4g&;fc3u+H0@vBWEN(tA>~TaF&in1!u(BNzaZx%>Kx%$cKB2 z`Tr~%V>j0o#_MCBJ1834I2j+Wckv5j^X1#|d&H=&x--5S_1tMa>P~l(vffoLXa&GReOofGmHsRB1fc-}#Tp#BjWQz-i>So`U?Tq8sGC%>Wy9k^jLXM$14;m{{^# z(DO0`#F(BG?l&3+h;W$hCkI!QfAI79OdZ-@4&oG;)+jyCpg+|JiV2UIgiD!>w7E#( zGAf$(LloO7>tpv=Q9tV=+kF&i4^}Ni7jw!sP>;;KugY|G$2sl#C;Dm-;tF{7A<_V>#$fiHBNV0-N)+ zK-NlgkJWw!pZ(vC8>7vN&tf>$+$^D1J0%Qsbx}F~z9Vd_Xz?uY>_o!r<*A6o*8qM_ zF|=Jl7U)tiAw&xq?#Eodw0gSlUIQ#WJC_t_`dn!zLVWrbNCJ0M^o%xN&P)*v<&CfT z0=@Y7H3M;v8`03*)S7Rn3t5K(oGTgn@c&E|*JXZT1dGb>U59kXhrC;j>C8jIHHhNY zY?YLm|Ne<4$uqDO<^T58aZqRU?_D={-|_MBzX?WfkGb5W96bJJgExVKqr$*Gw|xOL zvI%Jk;Rxg{U%PmeY^8t6fDM4QVIHgygT^Z zKn)H^BxARnBQowuVu~1=Rdv)hnsFU3jRd`X4V#QVW}05ssmtWH0|q%FxJjJPlB&t& z{)*9pHh>1WXgK>p>gLF$>Z8lGr`)vMe3!&$-nQL9>@|um$etzJOzwT(8?3=92VzUr znSHjdH>YqlEdfImm_{+x3Q+a342^bh_w={-pB(6cQrDZ2s~Gv6GTqXl{Zbiwf9)Np zh_Sktr{WGc}tCYUb89J=K^S+JM4i3l&JxKNyV-({=01OOkF^Ke17V@fIOnX%P8 zT#ARVGc6}tBdRy=S4sA4_(=|^qlNiQeJnsLRTZnJc04xeBOSqOntAH zgT4?)EX~)h6MYV6=Jj?Y2*u7VwQh#Rqh9KnneIri)TE=*6vJC>&X^m93;g1hcp7N<`+aon_EIE@yq%cjn1RC+xRSMTD+q+dZS zkE)*Y&`^<|o4urv3kG<>;W3UX^KMM2$JXq!``GD!4e%0Df`^IA)>(_p5cfi*Xhew} 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 literal 0 HcmV?d00001 diff --git a/resources/android/splash/drawable-land-xxxhdpi-screen.png b/resources/android/splash/drawable-land-xxxhdpi-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..e8ba8e8ffa47909b018c72bbd1541ddc10868d26 GIT binary patch literal 72767 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 X>^_nBblZ{``m+bTB0Q=06<_@yN3DxU literal 0 HcmV?d00001 diff --git a/resources/android/splash/drawable-port-hdpi-screen.png b/resources/android/splash/drawable-port-hdpi-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..dbba9e6e304898c8453ed9626b0d7c4db1fd88bb GIT binary patch literal 29293 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 BjT!&| literal 0 HcmV?d00001 diff --git a/resources/android/splash/drawable-port-mdpi-screen.png b/resources/android/splash/drawable-port-mdpi-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..0b97b1b1a380a0e417f1be9902b05d037e8e19d5 GIT binary patch literal 13125 zcmZvj1y~gC-|m5h1u2mR$sgSfUJPz(x4!@bV$QWH%NyFOGt+(B^}b8 zXV%~Qf6sZ(IoDiVb20PGGr`RB{XF-5^Fd2fi3pz-9|Hq}NJUv*2Ll6B2KZUT0|8r> zb>uyOm8F)tp2ESw!OhLh-QC^6`336t+WFP>?d|RH@$u2o(aOQm$lBKR_4VQ5;pyq= z_08?z%EtEb>Dk%Y$>rtJ-oe$?)$Zxp$;t8f#`fHw{nOKv+3nqni;Jnvoy*J1^Yiod z!{Y|r<1`Em;cON8XL_EPJI1K$;6`E!{1g-+b66}%*WKM}N#voaXRKUeiTE7k;f(1% zP5#D95G(apHc6_w`;oG@*MPsUaxb=XnhV7un-S3ZQfm{HV380FMm`$nW@&K$>x zTH#RUk`}hN6yV3bMB26}hd*zQuG-qrq6g`4L!Z=_0OFcIvvVoWUfqT=-?}ON9 zg9R2B>$xRGJm#sIbzUu7bB1cuJJdv$MNKKb{eP-A7gW+6?Dw_B*vHh0>#O4vt^HH) zzO7BI*H&p3km`A8;YEs_oLYO)JiW|x``q?1shIrbuFz9O&t*K9$LAK)SzSmt>MAbLNO{E2!+=ZQ>CHAi2jU`xgRKz};Kj}acg57q((S@KJpzjdL-b*=9J~|&A~|Xvsc*UA4rVh7tNPLXh;*W4{IA(_A<;g1}S*N4Wa^)GzHy`0zyucVCnnrn1v#!uYRqJ(zXq?BFWr}pph#h zb>lv)A-eaC=}GkZsSl1iHaXdrWM23Z-*?U2m+@#sWN&~96rR?o-hQOlCxpoD_S#`w zk`SjSwRXN&+7Dr|R}{*Z!-7A*pZ15S@cV@sR~bzlJyyC7?$GJf9dXtnukIhhM7Izy zi6Lo0D3dhREs18baU)YW&S0-FW`1#_U6=?5Oqb(Ldq zCk8t}g^a&_>{})RGbrQf5i%=+l$#0V4A0qc#$mlA@~`+lD4qUxS{ldNt>?555~7v4 zY(L$tRM9rPp!FoHz{JrL&3(Ukc9%5V?s597nTQUN>o_l=(4IE;IhC0slbRmRQYe~Z z0y8DuqlByYmbzbuxjo@)G2yOt_w6whj{Wg_J-yA7>hpNq>wp#Hu(*umizduN4U3@2 zNrHu`_&^D>(thrXH2!$xwgGqfFc~_p-ZBV46M#ZJo5_veG zVvzEyvzLy+D3xIuq>{GolWX7DbdBh=vEu8CY@u|zf|#v#M$cvxGtCA@)`1$W;M$l2 zj2xfmj(@e^4t89xwTyf0fgl@}X>-nz1V_X;)}T67yFV0nR|}?Rkb-)8L+4h$ijWXq zHcNGB@wkXVR2i*;?T6TvHdzS8QZzIrKufK;#}C4uq-aEsDcL0rI=~WumOwWjY?*%L zar%Xz`heEkEWe_FgN+#jJG@HJyC(7)DIZqRI@pLp%r{xCv%BnIzwrFN>XV5>k_bb* z$O~e$z9_#E0#5gNj)z(u=-Z)WXk0y-4aCgQLqxp+MNWDng4MRJee-tJ*^5dAM^IV= ztcX`AnKg!<6FIz9bw(>>w<=<}m!zNJYOd6%x{kf*J~L0@C7xUv0^QFjgTf6YaJA6c zAdN2LQ}}AAWVs+@gH%lG4)7Hcw-laNs^3dokMtdh4}45zBk9((%NSr%ygPj6 zdz~liz$yK4-0Wx>|VUd)W-cY)h`f0qWsWwS=C)}GGVK&aqA(I@9sp@q`+?KY$wm=mq#G) z7~v)ynG5fH@t8c5MTFmw3!+!N%Ti!nKs@G3`a`FkEu{5?W-chTvtXO8bcp+-hd?3W zIa`hiybuF#lcq+(Y~KQ#eNY4(ne}Gr)4gCmo+mnP1U758i)Y8LdMs@m9_WHCatNlV zl&qUf^y*wm6>*a1tM#H>Wso>j7DAl5VDE~exu7Q2P4Ot%i=@ye76?4{cUVm(TEkEQ zhrR$&fz2e_e>fwL@<8pZT^C=NSmzEO7vwwa);$YjMWG;`@A}n+l!I^j@rn<8ZC8kYO zer!G_y5IwIFNZDL@XWp#UMsSlmN&b7R=HfD>atj+dNW~%QeV2KZ=F=FY}1))w8JN^ z)oI>OsOVlspW-LUOMUgh(e;MQGlo|2O=$Qw2T}QPlqP3g7i)b;5!Rv&)!e-J4G;5H z^}G`nFJzdBp1y$;Y7F3;$PQQ)-3Eii-$jni&=%z~z3gA~smQQo6Kc+4eU_r+Z5>XA zX>&$f(v3okvL(61vb)Z(SVAe*Yp3e?+_+zwc)I`Wak_f*hj`NX=AaNsdq)hclULuK} zl1XUR^nQ70WWRh}B~|(M!n*BJ(>`bbwCP|Neqhpp{RN&lYiLkMuks1aRp6rkCxcU!z;l-a6}Gx(r54NXx|Y2 zxEJZ-wejiLgw7k-kQ_+(*3d9nd2L;> z3Fpfz8k|V?nil=%C2zyZ6)!hkL{DTUwccG$gF+%{g=4dFh>xc43+#{-Nek_B$PPh` zb{d&lKAmv*cHeLC%Bk4+_S|3?#UWeO5{hp9r|^@&?fs`Nn~qxrxkV!mDJ}s99`j>V zKlP7U%{A9nJF@CB*|BR9BHGRyxIx&D&4P!!(_3keQ(sRpKjdN>Y-RX<1+%Gm-^!kT zvS`BnY8yo%>7q_z&M~eNR@n%m6(;GGZHrTBrNzj3TA8eTT2qku;rY7{_a708mo>Q_ z2}7COkmAY4%#ADFEFGRvscL0cKMP)bd-BE_{JUN_@&7Yu$^+c)MXvLT9^Sc< z-WwYjD~(gg8ZerdeOatS3)CVleP$h81WE|X6v@DLlo^kKgwfTUu=idGTgXGK=!n=k z-Yzp1#Sf`}ryl!HQKDcCu;I@`tu%sZUmg~F2&T~e!ub`-bz=XwY~_f@B|umMn!H$M z)QO!-{{*%9PybYp-doh0h_V0Mht(NQwuvClIVeF95o|IlG;`?kNf7~}3r+p(npHZA zF2n9BJCAm9@8dW#G^EnG^LRhCoawZIk((mZs(b#V*dXMDM=a`5)Y*Hdzurq#CvL(Kn?;xJ4~zHb`0{?NAo&O=UbBb0sinV$ z@zUTGiWZnSq@$Skt098p~ zZN$(@qp?A`?)tkwD4zRZTFBPOPA;_aU}d9!mStt|Qpyl{n;paAlj) zcv(KQd~=W;H#wy3;gZG>yRA&#<4VkCG>Q}(G)i@~3jM*Vn**P53t16PUH3f9a#UOK!i6`|K ztuQ@Q(A}s@;G6I0f%N70UI6TY1U_@kEq8WY0gq^C`;ZR$eKk7dY+K@pe9>i$K-3+p zgjaC4e_OGfAU=>+b8}n8a2YO6<|oIdkhXIzu@K^6USvQUrp@|1 zKC|fTPiY;?mZ;;9(2CAbRURAYz>i;&nP8l&5owXdZ8AcPuuPX#h20;5Ru*-;Zk{n( zS1~=6Gt>Xb+p>$mru4rXeLpx@#s>P_R{=eB;k$X0iVL%C>8gY0^B>^p7P+IMXRyR( zN?Bekx{c31pxhi1jZRDLj1RQTCvOZ8gInez%a`Pwow?p5y!o(%Gz($twK=mMpEvEk2e zXFUDA#yQ!OIOz|ueT1?K*z8L^6Y_8V*!2ell27t|P=A#G-FhdDP|Kyx%%hv*%P1cC zAY>iz6W42Q>_iwuY{YckcJcz%3p?XDfsCeUeUOu3Kk$8W#RhF zbc|e7f!;lb-92f-BwRX$$5q|c@A*GqLRqX-vlv@>&+D}knI0bC4jk=L>vynGy70a1 z4>-jyByXT#e7T+yFtoS+yLeAG0_EHLT_|c%yEW#M=N-u9RAfR<&vI(Ua@w}T2PZj% z*lU^PR`~<*=7ILF%S=l*Qf#a6@VLk768Ud?b<}AV`#QB~h_R`+KA4jNCA!|?Q*F?j zC0mK}+Qsv5rR9Uj2AriXtv!o(j_R&1{flZ9ma3x+XD+Q{_@x9G%zqLirKA>SJVN(a z#1yGWE!U-+dCdg!*a^`un*5g9d*#(jg2c&_w$`CmT+{nIz-!4fcGsz)ku`b$$Ky~fcOjSwg;!ACSS;U|O ztspaCf5hhuOeV)+_4a}8_ zREjPg1NHcOKnpVW-pX8j!(W=vNO|ALXzr>RiAqC4gNLHk@ z-RY|j=Zln8p(w2S`mo8!$ibiPAd2}>%^j)*_ zNl<)yigrJ15U%uxb`I%^b%BjzMAp0M@!assltC`s5Jv!{%IPzUmoElCsqC_6*=;46 zkLQP<-a*D}$HP$^vsI+Yee`#GKihuPkllP3nOgZg*iT4eDLseK#69gfv#lM~GD`7k z6DQgiaS^4og!F_zrCfy9gZ-XinWhJhNb{el;)b-UmGL|(2;m+x`@OxRbPD1|#H(0dd6%sOf$2N~kS!6^uNkXQ5S;!iK>p*AuPI&!wX18MkMG@SPG?wk(Hm zsW_xD+`Ydn%#^hzg>C^84~fnF`7gp)opD|n(-4^!9zQ}LR!2y-gbPGd>886sZ&-YK z#}0@H7?|^IzYacfbx4aKP@R2(hSxQfsdVZf8}J?7NA_^rY|t+y=k8tbU{$RRBDmx{ z@3w3p$_3&o5 zMeBX>HyfCi&Ci&$4l8oUs*PPC*I`NNcd>0W&zR9H`T7=#hU9`Ecc;*&G z4eDUBePIevW8mcFBRn=}m1P2zplP3}zd->2itZEaoijy5-pQziu%$Re6hyJeTpr`_ zI1M=ev8ME*>=FTG8+DZ&EL+KDh;PMCk zKaCtp;Z^&=E2vn-!yoCD9U2?%Yr6X?EFF=w~nG$jxK}fqp|_| z(Mf-1`v@|kTBR3FtmLL*oVLU0o8Y9|ASQjDc5aBQiHbpnVn!^9=;Hq_LrQS1)S!4?^zy zi9U2Nbc6*>Un+~Kts10dl;+P1zyJ7`6FTzLJwCsDq~%*~zO0SW1$3SD@I?yUj!w_( z>~qsNC>l{E`V+n=50$o9*u$#Rq$Tm$3*7jb+0@yFk%q#iGZ+ z+0WOvf z(vmF^%ZgU%%j#Sl>EMgw!SmU8%vSn`b67P5vu_KYfTUNpUTfG|BAhn( zHa92-2^DWIJUHB+TAuRJR6d1_@}&fg2kY`c!_G#7JFaEB1ZTEWb(o=HotGJTc+jv^ zFW7X*prAt z6mpVpnPJn|HHUzBqkZqMcq25L*Ss26xX?H@vIdDVK7ks)oP*7Cw0%zI0=16WHSDYX zGdK1{nSO(6_{&1Bt`iR;=G;XulN?^VG=rmU3j3fn#6GFa4K69Nfc zc~UiR`XjnEoy$)7bwJ^nbYYSRoE$EYJy{#&iKbH2D{uG)#nT;mcxlx=by4dMZv_I{ z2`L&e%6leETPYcg6cFQ)Yy;9G5o@L~Rt>J(MpcRSVnC-UBwslF6l*c>FoXJn-?q)d z)~+ZIs5p9Dx|i1%i*)Vz#n(9@X8j4~9>(d1_NZ2YiEhCqZfW6l`hqHuN4xpg1k7y; z4MPFT;bbHeuT`9HLgl9l%c854$stKzjf_gE1JEa~y`?o{A!`{Q1rrt1`KK@yg%2?W zclBejSyQ6NrW4-kaS1Bs$KM$hnZPnKzSjL1CY(M?*fThCb4obOVaC3YVoZXZhcOEV z#!=2+d#_DDd}*{AaeYRuPUHI&_Nxx_%O|gjbJ>Z-LxF+cg+zTgy}GJMTm=n@1xibq zkyV$i*2Ir?yfn(u<{wN@1bd0T)pjE9Y3s*6c}GcHsFnoHbA&Zg^-Lm8#sVU9fp$h8 zuy1!(A!a`BxbeE({&=;G@sBgQz2xB&;E?9z_=yFMxU76NEokBn5Dw8l^pa%0HVbpQ-^2oN!aE+HIgnLkUuaux@*Fz{_+HCRb`l?gi-%p*2L7?kMwkh4 z*ar2&rLLC`zaWifC>~bp`cbZJRd2KwA)HV$w}f@m%Mf3WEVM3j-$5eB&8Y4%5;n$j z)xA{h^SzYI#=Gc;#u^r_f`LHdyw3gbxf_YlD(WqhyIiry$pY&2Y@mzrXFa8A6M*m% zJX_Jf-s}ACT$GifXSEXfuz;%o$#TRAKDZ+}-Ex7#x24GVCN4 z8;_6XJ`AzGWe+_@KMk0@oG@dRxz+jH2$5!!Z{>L9*%!L&wV?b@k#Af%WtWXmHxM$;ME~bxY zstrFNasaxGZ2J!t8xe>#W>M}u15y*+BE*v%n2KSrP`L<0&WEtUksE24?6|2nZ+JH1JE1U9(+w+BQPYlw zA)qpM2yhf`1^6kNpL>z9tYUO zm6HCKAlVm)DB94Vp6!IGsCWIONKv(&$K*EcqqP14C04pBs8f+?U0Fvg!hM>m&5mX#oe37Ru+#Xcm;M`Ls8F?k%7g-`ci*^ z#WR8HZQLhGUTYqW=!f{1riBSF0c3Hw)$!txi$Gsye_pmC9G}nH)Ec&*qBwkIRff8E z-6L&L%Z2{KasuF)mgMjH1<+*bE50Hy2mp14&`i!E8hQB_X%@9T`AD3`1%(uvpneia za2hkuMefcAn2a92dXqn8ErZnpa_-^biGcEWf$m2ba2D$ccn4XlA|)(Vf`P&Li{N(7 zxceQ(FCBOPw)JI33LUu%tBh|=3wz(GOT#iNre9yTfppS2=iyU z=T6x&y(CtMeX_S_Q?}ki}#kOA4dN)ORE>%99GtjBRpNA?E%;a;{V0#*PRNX;?sf6vSBpQ@S6!( zIlZu|^#QCNfqQd@A~-V2!zrtqL3jTMT742Sybd8aQ>T7yG#Zy{A}Df(+g`-T0~XPZ zOc6fEH>+%W%soDrTO5TDPKjz~xfM_s$9|@Hp69YR>Xl>{n{2PcGpWAQLjanQsi!#Xt5;KuN{o4BTdu*i z^O_9$Xe%}?iwhL@#9nn_BXJ|XFWeK*JBIH|;43wRHg$SXoaOF?oE#!7D7XQ?O*L>xW6{%;o7oV969mi5R1`tjXMBr9dLIYY4G z9Vu7ry!oeN$Nbfc2E}kH*Dmi);wuK^$N*NiLF8DFb_Y13K@^phaO#(jNV_2*j7G+n{)A7VYsC@TcuaW@h z+INJ<*Thcp)L9L@P(KnZ%p@)62XD@QM&x_mG)C+Y`NcOisaWslYsCf}YZ-Ij)^pPs zZ$K2MkEVmFx_FCAW;HVLo=i=`Q*{h=MF-L=YJWLyLf}6D0ur2{|4Dg#Y%EM-@t*KH zo_~C^u~Ot&xp5w}71kM@YXTeou27ft`W9z_@>3HV%G=&12rz3KVNIbg!9rS+6XB8g zvV?V30IJxZK7Pl-5|gW=E-r+>VgwVqJ(|e&-n)S_ zFbu>*HK<&DTqa2~%CodM-cnoG>vjUa5}L@n9CIZMyvB0Y2jdBr6mP!SU|uY27}0vq z=};UttKl!5XI15p)Uajm{(WRpS^6fbkQT|XrFr8W;HoW$1{5b?kAyqCnE>`ZP+I+{Mi7+h`=$jj-}lKDH+w< zz~mdq1{@Z3)M8h9k?UFL8_NNPP%*dsmL)n<03FSPw&{{$=tsY*pI`B`Sc~N3_?XwZ z0(HJ#)~ilM(FAv{u-Y(v&1=jF!X6p4Mhh@9a_Z)jfYKA(9MCLSAXSE1VYOyDW{(#R z$JP>e!A?hYM%9^(ob7q1qYmgZA})oZMpsy&Ogn8DXtMDS7_)=D;duf!xg8p}g9YRX ziiqtZ#L@sb$rbqUE6nUTr(QPnd&&?b(X|#Wgui)_|i@XPpz&xw7wU4`>(6 zpw5IsH#H|g$h9AyHQDNC3qT$om!xQIIuNX~o$5GHoN4moHEvxDmZ8I}I~Vlx_= zvS3*s1v8z=4RfJ1ps3Gp{sF=;*)fX85op~bc8`Ir1cUp@91lAJ95AU>a#@X`n?nAog>B156cYKe88PNI!RyN5fuuH!!nM z%0sF2$t-F&N{y9N)c^IF&IrLk=Wz}vT{bWsVUpk4rcr^K;adjjbfvX$tDF^fgotJK zI5T!6N~Is2q;Wra%kEMQfFkQ zL$(952MFBIqCaz$*6%BeJ>TPY8jRx6E~*+skN7ooR29&Bs*|KP_w`q&Q|L+;!svg0 z1427}G6_o0Ca)t~KRRke^PERkKLdOzkqxk3VgsNC#iGfER+bM$W4{VyX~dI4q4@^0 zlk6PFAU}vKKrlf6U-Ql#SU1zvHM0>8LXdJNm4Nw|uy|n-rD8@xhEM~u+c4CwcI~SYz;nvXs3N54`z;fL8XKOJQ95YKvf9dBeT!G( z*@~#kdl(Sy28hT#Tz-=G9DnWE**ukw~tl31tV5es*jG_GV46#Gi}Ns zVW!0pk6I{G+i(E~)anTi)ycN5HNmVE>1$nOmED|F!c(`${5Q9Gyp&K|WJyF^=(Jya z$L~F9+PKs&Kvaz4B60AxtbmdKNM`q=LE}`+1RI0ZRxSUJ2PWCzboa0L8P3K}yZ&kY z@NHB?1eh~@Ou(Y5{B~cRJdtz8vSaF+$~v^OOFR?#Es*i+$dN!Ft_X-tyA#N*_h>@tXNh%k{#4^ho7-l-Qw5`*pq9FQS|+`UVrE)FHLzV)os3&v0|71*!P1D@O9T{Zh+$>NO>_kdRbs`9$4N9ET99 zAz0!O0q(Qn2zPIA+XYfITgMeq&mEL`=}Yj zw6iZr8vY^NZPze@3q%K@=I#!}kdqu$>jJFi(*eW_68`ItxLK5Rcl&k{@Pm3LQ|hgo zZRaSiT@4!FO$v3c+2z|Z1LHtJzBqmF?DOI1(%K_GV$Owu z_1s^>cQt>No+f_A=EDo9iEykmUs?N-^Shh3D%sz?k;xaD1>gu;_Ey;JAGo=rw0UyN z4&1(AQf;7VMCgylZf#2xJZVa;^v$mYJNwAZvVC zAm0wvOmr#R1${hQw>_MBoKXMgH}oOeIVv{)Aw4Oh|A+lP3y=&{z04i4xLm6cra$g} z&&Z?5X7;&g+wJjo;1+IajPYF=xP$Yrf@9O>HUERlP)X~MN<=kPet(hU;B006J))Du=&ao-W9V(jhn=wFo>gjonT(BuQX-b0Vqhl9umO1r z0AY3*tSxx*0tXW2ZD7@Ow6bP}3G9ev@5dB314rMXfUUvQ@iY19Cn213TN_~rH4Qk@ zpYjnR*uG82E*j;pd7OoDG=OlULz3OI@}^iAfD=_POnpk}pQxUd{j(T+Frxdjsx!JVo;O?Q z7d_zjBgFUDFg-YO%o#>1OtPk}^=F}Cy!E9Rr0w$Tr*{o%G^UHfy9ce6ynm89##L5> z-}+Jn;;kB&v07Fs_hyVZp literal 0 HcmV?d00001 diff --git a/resources/android/splash/drawable-port-xhdpi-screen.png b/resources/android/splash/drawable-port-xhdpi-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..3055e622581e6681854aec8d341b69e6f5114814 GIT binary patch literal 48016 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 be(Tg-0@fZB23^i1;73VbO)l%Ik=OqKoyPQ| literal 0 HcmV?d00001 diff --git a/resources/android/splash/drawable-port-xxhdpi-screen.png b/resources/android/splash/drawable-port-xxhdpi-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..0b22f8b45bcd20f0c5e5b1427098631cb2ad06d2 GIT binary patch literal 78827 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 X^CF9le>DjV{5UNkCmtuJ<@CP*#RkTH literal 0 HcmV?d00001 diff --git a/resources/android/splash/drawable-port-xxxhdpi-screen.png b/resources/android/splash/drawable-port-xxxhdpi-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..2c36ae6be1f5be00593e5301f33f735d183d546d GIT binary patch literal 99730 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: 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 literal 0 HcmV?d00001 diff --git a/resources/icon.png b/resources/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..88569e4bf7f20e0e3482f76fa63b4b7005b3d26b GIT binary patch literal 45616 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 V?&R-!*Mr*ux24N}EOQdX{}1ScG!y^; literal 0 HcmV?d00001 diff --git a/resources/ios/icon/icon-40.png b/resources/ios/icon/icon-40.png new file mode 100644 index 0000000000000000000000000000000000000000..fb93f1c36d07fa63cf0d9c56d3310ef1fe7bf447 GIT binary patch literal 1435 zcmV;M1!Ve(P)?otoV3nofxC9E8sNj;?YFaRD zO>1IO+tkFyL``U4`sxFXHcd3u^uhM2w$a8n(WWugqLQju9ll3j_#+B>;4yNOFP> zgGPfO2-BK#Y}~W}C0XW<$IE$_n=6kxXzJ<1JM51D>P3+>gPy#!6w0g?%Coa5S(J%p zlCa@$7_D{$O_<6X^oPQnZgO$#b|dv&JyY6LetHTA3hjKdA`g@9+2;}pg{BTz+vefm z^vSH$ZVZgQj>Y`=?)f}O#s|{+=;t?5R1u3ZfY_^F=0-UWraU{ZpvSg zlZ8Da6-kz99~ffivTSlvk`P8W71^Mq-W({y7C>r(p7}-t#?dTh3|u+p>F>x1>O>K} zD5@6vqIea5cmK!YBr_pNqR$^-@9KQIpZKXNEoRs990UZ`Su?r%r~?GBC7P+(`8FVs zX)+)n&^0s+fW>S?s}V73wU~8UY>6iBM!7aofMmT+4VavuBh8@4GddAKx*>rpt?it0 zw&3jP1z_tdR*Ebcd{BLv9eGR8j~YoscMsn;G+|3L^X;9d&R&vbuD5sL^!D=2t$T{J zzoxaFi!pxBq}4LtWQhEaUHRGL_DvY-s!EHfh=Wy^SuLD+W9@`RrU?NJS`BB)H}lRMLY7%AoO^c*Nl~FK zR?kcpOgb%RD>iem&_3&La<@H~3-7;0szLqkqBW`FkqlHfyQ!?XiL0-FMqt)N6Gt|z zVOM_kgx5N)>K2S7wI}PFIPP%b?jM{I*aDN0eFgdKFSL{XoKu@N;FyA8iA(OsoNIAY z+vee+Z-BvI2x)XGQ5eZevXacKA1z>RU1A%zk~JrQv9SO2`sf%O!sibnGm_6)%p)1| pWTB!ZNfM$c&JN&Q>!q*q{|{nc9Mx|X-Dv;-002ovPDHLkV1nj0upa;b literal 0 HcmV?d00001 diff --git a/resources/ios/icon/icon-40@2x.png b/resources/ios/icon/icon-40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4a9aed5c676f24e12aa97577a7f332563ef2d063 GIT binary patch literal 3394 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 YAOD;FrbyGN8~^|S07*qoM6N<$g2(cEP5=M^ literal 0 HcmV?d00001 diff --git a/resources/ios/icon/icon-40@3x.png b/resources/ios/icon/icon-40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5dd4bec263c01c951ce43d0ec28b750dcf4deafa GIT binary patch literal 5157 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 ThV={u00000NkvXXu0mjfphWir literal 0 HcmV?d00001 diff --git a/resources/ios/icon/icon-50.png b/resources/ios/icon/icon-50.png new file mode 100644 index 0000000000000000000000000000000000000000..5372464a8f2694f92ea968a3b30a975f91f05ec5 GIT binary patch literal 1929 zcmV;42X^?0P)?Mwk zaeTM;emTJ$%mxEH%Zu2*ri%3iImnL*6p2Jolt=S0XAmI-y&fO$UTNjntxf{b=-ez%B2|`X zDlg`bjSW;dGH0EkCj!xg;KPnC4qUiOzt5k#)iWr|WaPcZ2Hsd*i6SRoi&6&hM>LRm(ZD>3K3uM%_9ofdnE^es$(^PTszoE?XZ<8<*wt@vhBe>A*|} znROrWM_FD*B8 zVsd4~{S#2*#Dg9jxyA{PcN!$=@IZR#m~ODukjM36*qb!qYQm4HOypah0NEDMnCex@AJI0z2jEBNRw8X$3 z3x>Em<{{6Xp%3C7n@D=H1CS+&4_?~H){;WL^LVK}dWt|)qcqD-^X@HFII@U6MhyA` zynf~)iY#;Ts@*JApPE% zH^92=rED*C(J?YcwbQ{bD$6)}^A4|6lu)@Oi!<&XzUb`-pftmK?2L5`zosI|3Hx}iyV|fv)oDQztA55^N#}n^4 zaUlN4410%w{SDPbg~qR&Kj-AmP5kZ$)qK$2g~Ozx3Bez}XrXmr7yz?D=9P-#$rSv7 zcbw>ObGoy8vSUeNdzp(2qsqfcEVSFE+$+awVbC9-d)%XI&O|62_d9;oN{&JK5<9yq zN@yDzCC_Hz+WkT5a+b2a%r(_EHZRiz2`h`<;Ka&lHc^mar69wKD$A&{j4Q*Iq-lKP zxEV1kh9n&d-mF`NO;xCJF5%R!%@2$DeM1e+?j8)1#BbMBO}UoKZexkrgg5+X(&Ohi_aA;jUzo}oz@eViN`vUA;UCG|nl~e6};Rye{)ddnrlEj|c z6)|HY@P;ECYwMf>Ik>+5(R08P3e(b`7#{!y8P>SpaYx;6M#iZ=dWz7r4AZJ86ldBP z4g~4<1*XdFs)EaIW55?cLr|8Li7HQeye6R6M9s>?|)@ z2%Az;V__~ePDes{0*E9@>|axbI>UA4Vo3rHG*s)}3+r0Dz95IDr*KwYD9mL?nZ8}R zAhIO!r^W`|tIEZa$zb694Qo*i`ks>1f65)1yw})3>fe;otGCwHur5D4>GPx@k|goQ z>PlX#T0Sp^%|%;F3OTf{e#UPmGe)!`%N*JCJR6tgr`@>6RbBQ{j&9qKJfVG{S(m0v zlaY^iZRRI2r?G`nUG`F%f4YS{n`PFzkF~~TnT(undXZnQEL*Uc*;-P_+1*u*4A)nUHy#il$MX7H-|=f`{Fe|z1y3%+jSK2@xN(e#c=maNj zyE*Ib;p@Q>#)6?4&;NF#N|n>Wmf}KQtt_R+>6r5$2GR}^D@_Q7{6Q|?>*vPc2)z?N z#zT`(cB4vx&B`jLgT}&Ka;;_zPms?=qfrboS$bMQ7E@1OikqUI8Ib=2vXty#n!s1k P00000NkvXXu0mjf^be<9 literal 0 HcmV?d00001 diff --git a/resources/ios/icon/icon-50@2x.png b/resources/ios/icon/icon-50@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b944fad4126eb6d0568ff630257fa45bec63098d GIT binary patch literal 4353 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 O08lF0%9Y3`5&r{BJJiYm literal 0 HcmV?d00001 diff --git a/resources/ios/icon/icon-60@3x.png b/resources/ios/icon/icon-60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..91ece30601e808350c9d57cda27996152fe3046f GIT binary patch literal 7014 zcmaJ`WmFtZuw4iN0)zm8U>n@s-Q5$G1r~P;?gRyMU{OsH)8Wdg#S7taOK(W^p+&yHfBXL$^7v@!=31K5&FZ$2j!5Xq8HM@{~b;BkFY!mH1DPt408HcHq2MS z6Ej?7r&n#~Wsc?2m5z5i1)@j?Yn#+tH4kwv8xO^jIXe8j9HoD^M9n;d$82lrx zgjPPDi2#^}AF821#I((jQ?l~Iet4{6!v4Fq3X!~ZJZQ)1}XRS(4Ak z)^GUeB3w^kI^`aN1c2UB#Xs&M8+Lv$Nt2|(-ZN#t)@9u<-RO`uiWm&IMC4Db=-I@Z zfs6{%*GP2AK!#RqzpG0g8w$j7l2tro5ItmktQ46Dm!*5jj<2T~>{Fdm6_rT+JzRC?Eyta58B4m`j5%IESaaqBe3X-{PW6_A^%_B_;4J!W2S=x$)- zEe7_w*>`y4bt7f8dP&?Aja{<+w6B1`Nlh(St7vXD#mu^&0#m~G`jJzlmDfI&g^e(H z6{6YTt*V;z$4H6cwbHoSxVX>OzeVV#8X1^jJKf`;Bg;U-K#RjTnt^u&YqX*3lsw?k zcJK!@r}tA4IdTGlTBFSzc4Jz9`k5qOj6~6r+)qThf5AB0!yC5|`^F3mvp7+^xEBPbBJllXVSi33_U6c5&v?y6H7Vc<+r06vKDC6>|VhK#r z+~GqLWihuOaQ1Y4X*Fd(q=eArdKORABxF?fLj`q&A-$ zi!W}bRiIzPVGII4fgA%x!7$euD3-fd(E^Uz^!A4$1EiNDEJru2_;$)SE?2{LP+@pv zcz=JsLs9f2p+v^x&g0r;j{j2ahnR;YWXc4fRWB(EP=`NFM2>yk)arf5T7>k&c&_+! z^ZI#_01guByOU?TZj`=F@9w&}VvP*vpO=@4`25|-0dub+48whf1X$gJ*KQWZ-M}0& zI8=bHgCkKchIChaH6W)Kyh~CfAyY@%FM5>n^Tp@gD6_?)%oKNlhpEy8X=Usc%AC)| zHdF}yAzoHK7^0xick6AVFZZY!mEVq<^JA0OkiqzQ&)(L7*du1bUUOUSVKi})YNC)B z-_yVS+@=mz0Yp{sa16`3{^ckets0^!&R3o@eke|yADg=#>gGo6VC4Wi(Ilj z?fTfl=J?k_O7)AVs7r!DQQFiugVp6uXnhw*Pa`woM_N`>6h#XB@6~ssr~T}G{PUT! zxk%>4$s73_cRwMgr@u5VMHtj>JlWJ{U6V(p&T>C54YDfya%C4`O{p zgDs>FZPuz4&cJ#e3#Zepr=2pvetuSG-1G^juWIXYFRZfyC!hoq5{Lb6~g8Fd05#(14+qbdFMtp)^7hrT$)>g z*&2Cvt|TL*9X&qiB!_j6`Ziu8uRZwYja4 z--CkBftnyLNCzU0!J6P6lSZAy+xJ7jkqWVu)PlG@rB}WezT;wOe3+>#kqZt?d)Nvs z;bT2pC`$NwsO|HkZCtYo6+l))P$zSI+q`Cjt4++9g4um@hFD-{&!qF(twW8B6t9Y_5OJmQl^94&|33*A>~uHOo=ouIDPhVn5GeCM$|st>-UF$=j=PazH7eO z(3QIFFFE+8Po9A$tArCO9i9WnXtjACNKWzGHot*8f!#k$-^c0gWCt5pE`y-U1g2+P z-N$~IU-`}Dw;%$Otm5Ce`ileG{>)XgLE`$wRw4T{dHAxPjsA6Ag?ZCOYDGg{t{CxU zBc8zSLEdt`m8zz(Ocyh=bQyDlQt|J0q3509$=VL@tD~!<-mm|Z%V~&8W4(oc8hpPv zu`7GLT-$?Ud|+cDAFT5$_VetYA@>kf!8&y;dyIpY8Xp|&X27~P&hKn}wl|-Dzfn>& zGS<9cl|rt038ek&h>{y1VPZ3^%aYnWgSWTc;J+y7sQ!^u)1y+cZ2Bbp4sS^DPa=ifn9k%Z7S$TQcL1F_b8PLXELPRe?=~<)flIjC zYb>~$Gnumg#m3kGf0qCi>NTrtHB_t$4}N=F(?Ao6$C#(=;-{;JuYs9uph=x@#KunG zQiB43q!lvW

@YLt_D@RhWi@z{fX1dgz!=JSlST*H)|=S(TMruFXvv%BdbQ8w#F} z-$#A2dM!V5;HesgM!b{#ja{d5e7skF6NCwf4HgUYv)43^F(!xieS+)1mgn$|eTBBR zjIWxv961;;f)#0L6x%7R$f+l$TrRk0Nr(R}l`Ofm_$`4a>s8gwH!>WL;ak5co#oRiH1{Ib_x1$*(roo4kg$MezC_6XjYP^Kls!8z8|E+jepS@jjo zfz&A;RKmU0#&iq?03iAGh#k};Jjh$>Tj-|C#_otua{FzH&8wc5VzpLeTyeWTA2Yjq zgOBH3EhOlRj0c!;9W(s1207_FpU`7rwAJrFk`vp=E6Vz<5pZnUB#ON0-Bn4x>lDu> zVonD78v*c>zXuJ;1jpq#YhsI3o$pM2L(E`ZuHK*n)yE%Tx%NSBFljBM5oU3T@e>pU z+a{Fe+a+yCxv+Ym#RNoddjHee`eT)F>b-cx2R$Pltiwb9J@ma&2+hl_&c#4;<=2LM zfXMg3n}INV007oK>x1E3%RC;nr%}tn+FC?)^LNiOyK|Ws*L`X6INy$v{c$D>4~8x* z2+ozcKJZ-Jv^=44QKL?f%QQj`veV5pt|9~Qqn5@f>eaYldR5<+uOiQJf888D;Ij(^ zKmq6)YNL<-9v3qQ4PjjeMgPR%DT?efE=yvz@doO8m_o)GOiS4P+-jrq*gRc?7N-eX zgQeDJ=?GIhuNsHGnBJJX`L^LGnpO9(z13_=a|y)!OS_$vT$JaH;4wJEW~-sUp>t@R zVrMBno(#cY1-zAwxqp=sTAu-;!UYbVR@6oVgI@q}qcwgRQ~{*A8-lD*f+*7&VrB z;;j3R@+VxUgt_c9-A-v2k9+5y#?;3cgjfLm&FO-%H^dDVR0wy?b9(;5mS4o0+J0%0 z4Kn+oP}@wyxWK9{n~htT)0lAw6nT3`vYlSWjT^} zpoE&G#!T9$s^lI3Kgb2|`T?8Q+WQ=8FB0WIvuyqbwbpj8N0o(|(uc;;M#ZIR+K5 z0Jruj)o*F{jyFFAKxhGdJn!wS`o=qiIeCj7EuxN>(6EZH)-u#@+?+eLLXtGz%SYp?WKJ9OK_n={JJX9~2lg#7Z z&i4*)hm{CPfX>*^0cUq2QwWqDw4}v-r2| zif$KVrn-wt0=N;>UR?!uL{-H87VA8_kf`(vd-N7GBn@|nrpD+-DaluwPTa5I1fm0K zS})@XLc<9?MiNHV?azbO(39%FoEPLW*FMklc8q;wnpt4SG))EHH>I{JDVn**A{4ZS zYR9iAenDz0xfJ}-UPy5yxajQ@4w-%DC&9%gmkt8}>mhpKMl-I8YmiQ!iBG8Ly_x~c zT!ck((9y15ZQ#quRRuzkmaCKd;j-K>&ue=(i{pJJ!i+uV1Thz#1K%YLk$ZWCeZkC>DaUnDL;$x zOvdM~7n&&5>i@-pe0=ffgP+Gh&*=!dBG;AN zLk0zhbcP&>=NH7&S-EDKVz)WzyUw}kRcG&W<|(Q)7G)$dSdkG?>V6BM@fHNjhl#&2 zs5(yKHSHHC6q=FXMpD%xqqDF*SXpH9fC9jm{Rd(1IsJKZTER1%TV{RoZ62}p>X%) zPhhuK>$ue*AOY}U^sYzpO)Q5TpG#0q!-5~*Xz?BD`dM?FS35s4(yllFlk|i&A?)?M z`%#R6lFY`&Ot-84PsOP;x=WdBSQE%1T6ocLH+q>AlcVOv^-lL*84Sj-cV`OOD~3)< zJlDZ^*RPSnLc^R?`W>Qv%r8uA!hBa!^ceeURCr+77|~fm5Ca-;l!|gydowM%`+EoO zU686rhmKwNUY)WwbPX+3bq9a0z}Tkq@eXy9SkweJbb`L`f#alag`?@`OEhKy>D>AH zJ7cYSnT`vo82j;r(s*K~?e@N4i*{5CR+dQLJ60?v>S>1Rm!VQBcnmoTYev`l%vO`< zZpPG;!EB`36`Imc1lugQsL+Ggt>9I%5Ke_A9uwv_?xKdQD2fh+)T+@+3^W=44m`=C z`q0Kr4ekG0!&<_D`1{JLH7L7c*(y@NeinK%FH1fZ&}3pIhB;ldmX@V`F7>ov1Vmh+ zsX;^)TTUgqtC;J}Yf+vwcuRP@oVjJB`2OpbaBVaKe7oLX1?_j;rA+(Ps(iz#hL(Cf zi4H9e?q(;C&+^=?pb$K|Z4{b2J}Vpcs-Cxp?J2C$cfyav2&%-fu}K-CySTC@$VS=p zq5frqmVaqP-(Of!g5JwMkpWc>>Y7R>jVrB)f0LPM?=vvut8!leTs-YG>-94Z9^~n| zV@ke@7XEG|a|K)3)yP06NAkgiQ41Mt8?M`E;mi6)3?l-Jp|^%wI^Y(e6Y3M!?Zv3e zi8?-7BnH`3!U{tiX|90)Ku&UN;ja*1zc&di9IV3zXa4L|H9`P@V5Z7JD&3`Q5fL(r zjZ9iRm{@A`Pyi&;D$>^iG<}8al8m32MB*R;u}V(0)#-0gXeaSr#jegm`o-z{K%XNE zWhy({R{BcOLO&aV;@unV?vfb`vQoaBRMa|fS)Q|@Q40|UOV-uQ;92O|@Qh#qeyA1R zm+p|EsvAs3S4M}ay4$l;6+DPVi5{?|YNX;Z%gH7@H{?rbLv{JJ$)w=){xJ%-5FuogWHx+$;W&&NaH(YW8W|#48d-}nt$`l zQH_byBXMaLmRK79ym#?SUmR;LDppNK%xC}Jepv2~Ig0<%Ft76Y{93&Q>*tfQoC}Vx zsnKy7f#3!+FDtg8iP_^=>T6pU7K&zYin!OlkKP7rhnAhrP7mPLTnkR?IGX&IQJfY4 zKo;}Yj?SBnsW$R`{tk4pffg278{yw{0XlEZm1axyP2SRE-o;(XXy7xtVD3 z>sN3PjtbxJdO2+;EpfxGtx&3y@7I6D-0*>E{Le~z;^B|e27+g>u9S8-(C|;9@{Qx_ zRoDQFrOEBz?7~2^Su4$NAF4vG2rvLroJl8(o%_L_O-ycWA`2IdCQD5*T|83y87VJ4 zKnFuGL5ZcA(Cc}I;go@pGzm}P5B3dG3vl3NnbO7i=wX-l`~VyGuBrViAQb8Bz;@>b zA|X85RmQJeBXhl1eAx95+=xYK>zA!js?+AS#hS7K0Hhn`4#s&r{&HsO!*pAMFPQn) zAche(V_l*SjInhwr;7gJTpVS^9A9;tZu0ou`lX(35)=4*S8o zq=b$1K?=;yN#0wen1k|-b=njE{cHIZ9WBI1ds&_&BFkL8$c>QYJEUG#3&$P1eNkTX zok{7{29nmz8j#oUykqz>q>6q6#OA`w&2A9)E%AQ-n=W4Gg-$~k+q`WPXyw1GUP7QA zQfiAWGoWUrOV?L-oHT`8xv%|aKMp9p4E|?>fH7k7N@t!F5|Fp4@jzAzlMIgU@F(A5 z8&l+1{l}xxDvCd7hG0<_$gTZ^g_Xe5k&;-9B2K00f~6rE85^8X;-fLahta@2!Mw)# zuQ;Wbnp&8#X8oVGYZ?m1r;|$m?FX;UqdcsHFmb3mt<=t0IDj$<>(PjE?3 zf6nxeN>U9?R1=rMx<xkYti+B+f&Tus<5sGOf38 z^{)@r-cf28A2W!Rgv`rF#L@lz%)I-r7PC^D0phbTDC#G96+Atj;W8a0O=WKhPc`(9 zG0vh*vl?!x$ir-Gph0l)9$&__wnI5?;-QXSU)U&CqgPKcL)$%sy1DpZJZzT4&8X;r za5J=UWfwISJSDD!ozyMx;}@QkjSJ1xLIhz@TCH zKMfbpVcYhZWC<;CNQr^oLmuK`Y35-iV&P_mYydo5+yd;}-0WP!U~VoEK3)+n0ah+< m5iTyD2N>i3>fq>XX=nZA|L%ZY;+}=<08p0KkgJg~4f!8Fq=z5? literal 0 HcmV?d00001 diff --git a/resources/ios/icon/icon-72.png b/resources/ios/icon/icon-72.png new file mode 100644 index 0000000000000000000000000000000000000000..9ac96c3546313389ee6a093f63135f6663c43537 GIT binary patch literal 2877 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 V&Eo(rb}OKfNFA!9Qln%Q{y$5aOX&ar literal 0 HcmV?d00001 diff --git a/resources/ios/icon/icon-small.png b/resources/ios/icon/icon-small.png new file mode 100644 index 0000000000000000000000000000000000000000..34337095acd528b8c093ec8c6f9b25e5b5f78101 GIT binary patch literal 1048 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 literal 0 HcmV?d00001 diff --git a/resources/ios/icon/icon-small@3x.png b/resources/ios/icon/icon-small@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..d492a42493f3dbd441e42417220070a27e021f94 GIT binary patch literal 3746 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 M07*qoM6N<$f~|&7-~a#s literal 0 HcmV?d00001 diff --git a/resources/ios/icon/icon.png b/resources/ios/icon/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..441eea0534ddca2fbe6296e4da762d25e066704f GIT binary patch literal 4162 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 literal 0 HcmV?d00001 diff --git a/resources/ios/splash/Default-667h.png b/resources/ios/splash/Default-667h.png new file mode 100644 index 0000000000000000000000000000000000000000..76f113c51fcd78a024c4107a6bd3e20644b9bb9b GIT binary patch literal 52040 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 literal 0 HcmV?d00001 diff --git a/resources/ios/splash/Default-736h.png b/resources/ios/splash/Default-736h.png new file mode 100644 index 0000000000000000000000000000000000000000..d4b36762d74f4ebbde125e59206f08b1fcf1bd00 GIT binary patch literal 113044 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

UnC-(iT(~|1ByGbnF)LlX0;#C`a57D%0P1 zZk;TVwID?fxn*KszW)->ASvF@W6TC-jHKja9E93#h$H=b42&}w0r&ft))7;%hi}rpFZzV(373d zpRe6o3b0uRg9Zm0sGMGP-}4ZySl_&M8G8L7M_3LzY>oKwzqZ;oM=9Mqb-LmBNcomYyy)Gl z*Ucmb#~O+pdC2368!?zZhP8_uW3^^J-I@C4YeyZ%M&Ehq@+{?_oDJ}`W;xjce1p^d za{3NrvV}V{`9RiM>tX8ROJL~Fq%_eEObz&UC6!bru3BSAy5Lw8qeEezhmMQW;1AL@ zlB%fwMpC-b6q5`G$S?$eu;igpe~(q3UV42zUHGISWJ(!bEo#% z_c@FWufvbL)MhlFU#5{4%W~y;?5|B_16xZfb*^DQ)bxOIlB~Fok0w0cz+vDt)CiPq z(#YOQZMkmeKrdy1vZ<`k5D~pCZ~a>p7lLktLNf36*>Gy>p4`#(f!P_o_t~oet$DT; z;)1{l0~u`hn%_5H0Dx||mPLn=A}@}|FZDpl7`Yn@p!b9;b=~8%5sg%~)=rk7`414x z@f>sLO2bNs$@i}jK&Ovw2S6pN=es3<2 zm_PbmMrrOyHyiGefaZFIR0>q;FT7*#fUS$eqmXhOUUgmN4Fz7wf7O=25|p>Lgo##q zWB1N*GOAI3PcDS^nr1HFU8ytW=v#*160U!l-h^Tge0(I$G%a4>__aX#Sv0kG+JY}{zl9W*GW+Z@eR z%KV2SrrDPC?^>=@`y1BZ@S_aLogD>)8SAY$^+U$k*W_xr68B8@fT{jh^~1^87ipyC zypwfsQ+>d)ZBc-GtzEUW0My3euNqSIW z79$|tr}m)jC_*1R&M2xZ7yEdwAMovWOkr1ZnjFd>g|zDwKRkSUIcycTaMDCnuv#H! z?Zd4cz}YcO@PUQ3)R+5}(^nO+FhSR+LA*{0V*$QhNq2#T{NKu{Tl|vA+QydU=Xu)~ zGBLnezivWU<``XHdO_%Zy=PJA7>~&wJm$~o1ZJ22FbB3G39NS+OJGLB?)jKw&bh!82E?HfJ+ zUJ~Lou)Th&#Wy{Sv1H3o7sw}=@!1>R?(-CF$%{>c+DMNE!oBd>4n?#UPhi0)Svc# z0_)ktiHNvEM;^LCJ6#a@Gf9{`3)@0(`|^Xb!|I+l#|=2QmWBhzHU9Tqgy9pM=mMAN zl$JdIE1_}lB#UY(=!{V+MKlwD@Y6??@9L4pTJUNFMVCuI z{kMGArV81}7Z6V(yk=5_{LGkg^v%1MwgVQgbzXDshLf=iDv;7RbOz%m3D-h9HSagp z5_kS4jwx+8!syl{JOmV3fOP+mY-Of;!j?bezw=^glyf#j;o zVheGie=6|dIDdt|ChM>z1DRhK1o>drUXcB1^8BC3G z3+0V4`NuyzG^d_IFG^T)qXzO<^vK?8d`b9Elcbnl8pI{_|*KbMu?boO)r4bL^AS$TLz}AD^v3t7X}$}>$QQB<|2_G z2PHH#w^I_08~9ohq`wfEwkIHC5rQpEw`0s1dbFR{H)ls=s#3vW)VDq^M3#*~@@z_VXm>&U zOb@DUkG6pyBk$dMhFat2SZwaaw|?q1CNV!dM$}fTN%t}@+%$fYFxdh_fa0xU9-AVxzsDc4xkAUy_EJj39q3E>YdQRbdAR&+QhTD_9eI(cdYM`%moCQRxxatkGt=Q#b`wo6 zq5R(J(GA@4OR>;tsRvcJ@dA;j-BVCx4x5>rAaGJG#xaZ#G=+3+vvzim-DW>1x^oLLrn?bx!?f& z75_k&fU9*l1k())*DLeA!C@SK`y2aF3tkLg^g}^QX4bh_80}InA{vO5)HZlL&53oXn+u2kkiiw1ON^>{P4??;x-ahbc-?HkUy;xpWx-kux!4sg z1*kt<-3PCCyYG7Wc$iqHty+^l za;@s5wQu;yD=+N2pnh%Ejn`y<*8S=T-AKDj$yx5Vtrxs8oiX^|P&xn=`b`H>rUx6U zuxwz)B5=DgfF!C38|7+U1x?4X>$=SSb@z?;AG-TIR16+LA(d?P2ueMoLSxAiLK6An zb9II5F>9?p++VM``cBpsk;GfDu1rG+gKkNzX`0}?|vj%Ze{>lLl z2C@-%CCY16dMzGZrX6L9H0mbYxdUTUJ`v|T8>lfiOF2zH-7&a0$&LCeFIt5J+(&+S zv3VwVPv-apMmp+tFX35@EBo~#$ix9wgj=s#AJ+GpUAm6nX!dBQyAdfefW+0<^sb^IQ&tp3$t4h z;F}bLqOw2wwM?<6=XUMtq=96Ay?(~}(?^#aXJ^flw$Vqw?7;@fp{hNeQ2v@z)pp)_ z%!$K%-20zg)3lo_i(Q`=ubJu(e)Rpf2e;nMj_fD)M**2HrzQ=0;{b;Fc`|0auzP># z^xP&|+ezwr6WD$h;_N&$95|TM(F4K)*2>gh{$XyzsT-j0At{7@{ppJ zt+OV>Ic-iwNtK1MBz;eXs{PbyoVsSQLa|8&Zy$kC?zqkB^&NY(A60~|&P=(q`vy+Z zI~nlF0w;^~3W)DK8=@H8pNlnjCi~$l)Dp2ALZ(z!xcWJ^qHb(Q`*_Xi+SBaPraqlS z`6KVG-WZv!1RNCtwjextBbWKsCSB-44&7Rx2m z;Bq}%DmF9y10orScU}GXWmRkb>q4N#UQ$&0XIKlNYe#jK{LHS{Lju3rm(A`xeYWWG z4`k+A-#0x$7!ZyrTQQ69Y_ml({yo1&9)hOg1cOnz(xj|z`>={i; zoU#DoGXD_?1x$E0tkO$9HuhwfkkYCco0uId$D3^~C`>AqmbIU#=H?s5Xa8w3)Wie+ zVhw~fEOSb}k~*>7xT(ihJYj+#{}ympj)Fb5c_n+k?&lCQR+I(VR>)SeXKos9|M&#I z4Zvk~8X0q%>*!7iza`a2mUfd5#bo)Kl&ZIi@O<|wDwGql0fon*Br{KnZ`D?A#R_jM zEj|yq;;i^}*YU($XS)1~($66{j?@HiY2Il_HSUhj29OE08Ak}yNnhi(IBBC8GwGac zQ61GTANjGrT?p0P*=BBJDv@MVB-}50w7$)Nwp^uIv%PzZr95bp`h||^rPVr|3R8)E zC{;ac?WzH!%O}6QjJzeN&sJ55Of0RNsQ{D->a@dk4N{Bh8e9#W@;DFnD4K;?a*tVr zupMyFK0%abL2XAAqysHWVP--eZ%~5DaqzicmiZAE?HmnrC zU*$865v%F)+`|4o%?#$^B5}+I$3jZZyC8V^F}zg=w`tS>C6+y?;D{Q1q*FbA)V^0D z29sBTVGn={H|Rr$;dYL7iB{G92;}mArQZI(|6g%s zONI!{27(1cKaBwKu@-{n8E*9lT!rI=7)dc$ILA0vW(NLR?gHNy9bThpVxGgD?n{x? zo0(H@6S8s+K|VB)_zy;siJrabl7YU&NMP`1cp`CjBvZ%zt@Y8mx_#w{vp3Q>7RTI> zDB$rP!cQ2~l;$^PZKMA%tDp%U_f6*i_b zf_PUG$|BLkhqx`j(O>Y7Q{&rIiDE(MGyj5(S`Q?ZLAZyk=X~5-D^Ikehi|FYkRA5k zrYr2d(fH~;-5vikXW23wsr75xyyD7o$3ZKlyFryhxyvY0lf<5;^A1XR7DI!5-lS9Z zpATYSP>ZM3mfiAoF%Nn+o`8Mx8+%&V@{#+%r@8ecP9B`Nn zLpFt7B$qwYFEu^g{!kMOZ@LV@T_=Wr-)(ttqy6w?jh1)lEVsGjP9qJ0Y8t=6K@IG+ z<{B*a2}Kfnapi%v1u*rmO@k8O?%79IqaI{Vba>T=^`Fm3$o&H5s(ea9p{evnB&Cq1 z;djCFn5?)3;{gpm#M-F$;%%`@nisr?m+w<&i2i-=x;f8QsidE|>!DaYmfpJE(v9mW zpQO-v=#_utt`Jpl;}pBzexlg(%si_9=#<|w?cy1z0zWvaJ9poti;!1(a*A(3CA;8| zrN+W+hx{hf|KSOTwwuqyw<~&xzIWFw?F0+zP%7_q@-sUj%JcdW06CWQv|f4>2lE1tMwOnFL{{>q@uU#k=^2Ws!@tf8DJj;MMO9$aW=;1KFH}(jjl=g97hgoploCWM`&Wg${F5 zFIkJd3e7h~gE{uk32E8rjNgtF$Z<%yI1{ zEhc{YhjJ%7GCMSXcvskJALqR&sP+g2{fv9|T@m^QoQ2y%uUdl>OH8B!ruOcA*`u6h zzNqx*Ea%AAKe7+Yxzo9v+iQMh7wE%jS0dnQUaWcW?rZ9`sEENgX3j%YC0obkDFUUc z_EOp52~I;)2bn9-A?0rJ*SEWd;%)dRPD38x6z)7znTBR9=l!jveM2rSl$`iH_^`+C z@yOlXZHD}>#zy#WgPN!E?>gna<8tKKi&nMw){Aw6j!`Mp2#a%0({0jzI(wKJS5r$A zqi=IHC?GWw0k*Zg`2;GuTqXylE=Os;>tP3<95))@<#Lx^yh(WnfK*N)j|qK68mY^$ zKw+ioL+Wd+?Y z3mJxLDb=4gx$nlp`PLF_Wr4zXth)AB(vVX?Kd3>&$qEIS(^N;P>*%X4t2HsIC?lV- z(b9XtrpfBAzN++Ht~+EN_Kqxi`m9AzHWZbfg+fe|)uiuVIDhGc^e;DSuBZTi4n*N| z6@tAr-JaQ8bW;E6{ik`&`E{r2Aro>TorvY(NX;ouU`bm@!qK(oZ1YG-%ePzg#W3B* za!H(9wl(?Uk;@eK8SlKhZhHY3MY3>)J z-=ZgmQ-Ay*S`8h+$X0xNo|#OW%1?Fge6p@?5(Yguofu5sfgSkSd{g0_Pgp*x$d0Z* zKcGZo+mkl{^^$-4`)TW3buF-r3(15IJXf&|^Q(CD75Uudj?_#hvI@DG5H1t6!|j5H zMKnvYn0L-`BaW0meaA-vJ+e0gXorH>Ud1q zljsqq6svofj+5BMo;$)n@9T)v%d7UR&i$X)j4gTeJ&wOaB$+d{eiBN8B=G4byj!9$3|y%R$p zqZSe|gigBJA_J?HJ4CM!(mR#FBbLHhu`Au|iZxpvAqS4UJj7b#1k2+ph2gGv(h1JB%4x zKIuJk%dklj%iZCwdZESYB^l_+ktpr}aXXz(55nAusZO7YzP)EYRSb+#*al+Jitcyr z;HkhN$VIw`9;(|~6z9W!%TKgg8mueAwhZWPpdRCnxK8}PoEl`m);)?cG)UtZFVQjD zAt)w|pMl=qkyMjKxrjt-A(T*t?sx$G=#vp9HR7>m5^9y5_RsaF$nbmq^II6`vz5|qrPxX}>d$gZ_IR_)oz-1$8qp zA!|cr;V!g7fRz&$Ar2_A>r0EMY-Py7$9K&WcD$6M&r_<|)Yi>3j?#uY z(<6~SqGE-9&I!3&(g!Wn>Q!Zs;WrNRcX2jf{b`c9Ld;Iiy zT#hx$7Do6H#*~?r^xZhC1rUo2S2AO6Mk8-CJF|We&7U2l;Aj!d&k=)h1K@HE+cc+%m1-(Dk zRHXMb=(EtR*8)BA_XAo}!J=e1@jM1GbH}@Xaq9VzMAZYpp+8U8+X&!?>V}i(-b1gV9#WT>h@ zBL2{Q?(ff~?vmZqGw?OcOQTpKw7Q@cTM|uj3 z=)jz4{WB-1CwaGG&N28l-Qyfvrt*oaDB7HPu75UV`lcqre&jHpb;@!5hbdYvRNr(7 zi>i@1=|DeqW{b@JGR`op~tN(;UTNI+52V(KoxWJHrZA4 z`>^VW!RG^5+b$kS|MIBrrhi(MwWTI}ww_8=>BVXtHT5A-h`uWPxxW5I9^4c=rd*P^ z&sn*KInqT`OXrebI|t>DjvVaz{$P+{)gzOt&Z)h&vkV7{6}OsNuC&3`r4E!yfI#{x zpZ$Gm^3rD8c75&j)gs=2woM#%w&I;?g*aJ|Qm|9C%}910m;!v>49uD-j{pLZCWm{+ zpy|d?xqh(KU&CV9gWoSb#QhR8Y>&eWO)*(zHv_et@=lvI-`6!oT{uHjFrtHTUk(Ae z<>D?D0FefJzF60i|D0CcnO{Sh?CFRu{tV8F9C22)efyPB@=_pyupQ(N$On#TJ6HfA z@J73@g;2D1g+!OtF$aZumtZ=)110iLjY6zGQ5_k_`NT z5=T5x)gie}Q*%e$@%l5v53|?KRJBH(XI>OETjbC2v&J)x-ZGC|V}ugPt||L9CRz?Y zS~Z9>Tv&1P!dTb-cvfJ2?A%@l*?Fh1IvK|0nzDazjmD8`FKdnn{({a2_z1ubA9hYk zrOrWs*wJA7X52`LPzGpC_kHaz!=}@M9lE>a8-o5~Dc##k_0E`0OFtf!~GD z6vog{F524H+v%$CClt^;Hj&UaW1aAeO1Dcopz3yIm+&L^KqQ~&SI@6!5XXZeXVkD$ z5vC_;`RkFw#`AiYkTgsR? z?4IZESbT_o`>n)srJq^pWRGUVT_apG0sr)v;jxI=%Yvo=8L&$eG=FDlqNR>v&Rn_EFid30 zp@EJ3UeJ$w8`GwlT1D|VOwJ{!@h{$}4J|(Gjb7LILSUSgK&Qk)=_+HE)=a_ ziu`^Ed#~esI7)J_XDt0MWp{=mt_`@Rh>i^Xt8oY zS)w>6a_t%h5!B)-8~UFAv5o@44x!ptWVcM0j7$T;O-4HCQ4!bAep#K4*2O4F0R-D3~q-nKY_Xlo1cIg@{p=KJiQ+ZO?8tz%tWehAA z+R471G^mWZ;;QiWnMEB9=BBzzZE1st2YekxAiz2Wbv-S71H$4o(w=%+;H!cnpX{ju zFoxiVJv|LPgV)j@>fG+x0CEY}F-M(b4&+;0=ZjZpYwa)hG|5S!Cj9mSd+v-lWbmbp z5wWzn6r?_vr1pYZ(ty1QzaG&V^^DR(ALKHJ%sQp=1rc+dbXXv4RJ?Bi@+Vs+w(u`} ze`{c;B5>0(7+guA%NKaSCvFu(>V45XPltIwZV|0Q!SL_b{O>3=*DDs?w)n=P=rk!% z$i~W0@UD(b8vfSkxtzQicc-S3>-2|${UIzC+2^Meuo zIxM(EnsT#_fr&uZqqI_SLcS>kII^E$%Wp4Pv>y34Bmj#R3dc4xhy!rDgXEs2Zb1hd zl&x`jfkzHc3u|#bZ4`%_P*N)nsn8@%eNqH4sPS3gFN}J`5o$m3HVivko(fX#{waMFQ)CGbPzdd_EE7r2DwgKKVzS{^>U z#T%8%k6|2f(I#Lje@88(7K`KG0U+NF!@sde6S^)_FgkVpSrtG*1{ zCg%g0TD7|(67YA18RDG*843ouJhhz4S!%r*;abk80194>fW{YEc@lTV*`!DP=3i{^mZ!H_Jzoo-g)?W~J+S#Ax zdBq6~^92JnK%Yj4S3tbb1*Jpqg5@<9uRjXy1a$~^b5|8R)@rE6j9(3pnb(u}h&=J5 z@)y&Pzw=bFK~wzV?N@04Pfqc~gmQaVB!T|+cziutNd&11da1*}?xW1mdpHzLtvsIo`d^M%GYwiwGhUH~usF&x)^qz>`*W$h%% zNa!xLb;UL@{DG{yd>|P-{8n*o^(@E6VV|D)H6FDvRri7nz=)2sNnbMai>zDUgiJN|_VHj=MLtnJ_5MlrLcp?mmzgaErr_t&fX<%Qhw(cscS^kDV!i~} ze7kvK`-w(3j!n8onxm8sU#D zWk)ywxF$N=w^#Vv;T;VREOs~899Kfq=b9GN#YV;LlibJb479*m)={^T>LLY4LAMfj z6{=NONgZwCcoFL1Rb!r{59QE3N5}01#3~L%Yaj4Dc_U$ZuZprq%)Qpsh*!R{%!R@l z@2;g`*>=(`IHIiC8jX56$VLKh*z+dlp*5ABc=K)^;%U~C;(Xk-&dD~{cpxU=xHN8Z zdpU+@+^o}*0yy`eN7H(CKyZ+iNW}S0N$~MoaYLUaXMPg>HKERdTo?QU{ z@u3`=`z6Jj3o@QcNlWn3xk=`QWrNK29l^39f;O`kd`XxlI*t5Ew+8AK|Ju0)2N1lB z(xf-{NE9NFz)fz9$Fl(5j+=bbh=lDdL5rS}gp(L?-w2%7ZkY z$QST5A4+(dkH=F`gaI`1&xm4IFQ(fOh{%ib5`G<7Op5HCrA|T*+8=%@>dY)}y!rPW zwP-1T=9nJRkBgemq_a$Dy=i|H)vUSmx;pvz)`y1Xh)E-?=*A`b3Bwz2Tvrctl+W0! zKQg|-POTmxRWAH~u7$ZFi27kKiSM3Hg=(WOuuVjWsmGBTBRUpaLhnQ7Y`LPAG3br( zR)#bxw0G`v%A!C<)J1lD=trOR)2&3S|#LVR5%y4QT8&Yn=1dr`EZZmj9a$$ zq?APtIegyD)(1C?^O7G4Y3JKNeEHUc$;csfF}j?5_i#~JOMGmG>J@6Z1E+mLBmQhX z_pt5$Pc6-b`<&kF^74MV? zoQuX&>*465*+#ycsQz3!ODiRw+?D7_r=A3Kd)0wlIy4=Q>5}787E+)z*2u=+EqD>} zgFS1H?8v1offM`ET&5rCGR$XB>((zYYyd= ztY@mHE8g17({x*~2$Lbvlcn%=6~RvtxYP5cBL%3UgndodQHQs0@(FC(0rkTkwbJ%k zzmW3gq{2?)eRf!5r*k2xt&9$TJDxK2;McIHqd)#ym|TZKc&H;Z+UjQAsNtZb)iS$Q z^Lco3{>VddW)ER6YAp?FUf2U3H(|VoA^?=+U(q!Bk-F)4Jfm7)&)vs|w_RRD#bI3=amoTBFff8 z6Dfz!LM@#4%5&9)cn{?dqIF87?Gdbewi3LFzrrnyRU+5z1F9#bN#5__vB#yz<}a|| zu;ibH#_iFusO1B)UHW1#_Qaq&KE%#e3*M;CF&_vjz3#z9J(*muwg4)*Itn0<;A{%i zlVY9+VA7szH{}R#yPrz(chJUci}V4iERuY$Te8?+M-~kvw!<2H{J{ zJYOlqmwI;9SZQ?TgNQLU=LmtO=O6zCVp&(x9@=rvC<%1MGhDqZ2l0}~Zy}l(WvaQ? z9Q-G_0YkVCRuhFH;VR^RC8AM6Q8KmJc2;>N&rF{*kdtMJHl8Add2Z+q4Sl6z4)xyphC#3qAg&N9#(cMeevEq4*cJG+N_{R#5X#+kLI0e3{so5)CkJF-#Q~i4Wrepu!>Iu^c>hkr|N{^@~ z19CS&NU{RTC+UZO73CmH%03Jqu37G@=&g}o=sR}jfoqmMDf?obYo^R;`mz#c4jlO^ zY0l2dpMqBzatg_-8YS-a^=MrDe@-**n3L_9JEKo{@!xe;KJbGB6mT-%tM8_lUo?PemLZ8S2=h=|y zFP;;y4!!JVzsJ8F=c@&%!o%@H!#djz8u#0b1EhJ^A7o_pC(m(#nhKk)|I$B7*=D33 zI?(h~_ODZwI6CQ%mrq!NOI=y{DWt+*{or*8R}LuAl#H;0z+->wa_2#$Z27Paa#?e( zB?Lz4|I^1Qz%(15OrWE@!xkR1j6f)pu&USOCe$p|-2kBAYwfphY-uEa2rPEgKG|)+ z;$p7=Q9f)&YSY=@MVL`OeZ#zdxjT6(|DLxV7lf@^V41xJ0)hidl9#%k&-JLJFa&=S-y*{ zm4ds)!LG7v1Q*5qbypY~g%^D}<7JJdu@Tzi6uD`^*rD zV>w%tT2mK^BLgUppE&X`PVSUst;OuMK3uH1OIPUNuQSA$Hq}Bb!E_-Rh<3u5M3vQF zI2`TI8EpB-2E>VC%KaX)>tgRT^#jtQv!Pg`--0-f_gTgms+}*=jv>jX}Xx*WB2c9YVYERoW@{^c>Hy*z>&Syc;7e~a}IIMu;E!g_EjN~ zprs@1pFd(w>Acc2UmHvLWe3Kvp(I!`l=-N$`=PM7(;Z9i9ZO6`TJfBeSak$axswUz zDx6ma>=GE;Z85&VVai)cf>u2ff;Q)78CsfS9BX;*=u z1Vd=)O?)-Yr;-6K@1YU|z$4}#kU9MSospbe^r->|S&RZ>!AhJyIK5FOYT~Bg*Vns` zR;CA82t@CH2d^l^f)8_}GEQblEk(H`{3|{n*cI1q|KLx3o5!*bI`P%NSm+~`6f}K zu}c$ev<;C}8D;WS?Gnp6Kw4oqqfXs*>sBK<_`iQSDW?wI$|!HdPZb5^>&rnwQg;?S z$U>T&Zbz2}(TvWZ+qy+)cpL3}cxY}|?PWZkHr<%()wP+#TeS!|eBKvLx0ig<8h7U9 zcT2V3b+E33dr6uuXl+E)8$)$P_>BUfl4xArDzmQIkxMS@pivrgILB~9I1_!>a|7B1 zfw7Bp)4=B7hY^X_l+SiqFip%1Iy|)HNcm2Upi&aLc>`&C-p~MldzrP6y^5s{qrE>H5p>Fd#WhHlbW?}zg?a=uTSnKpQTr8ybyG_@R?e=@1t$vTFrVqkUU5+mjGAx?1MZXcWyxxD%aoYi{xVN zaAgnEzh6P#9|kV8-qHjODSrHF8PYAN!nx2)1-dFWj&|NQ8|G|%Jo(@X?JMDb>$X+Z zG*y2kFocWmX`tN&`N?~DQ%tm#52`ER(Ke6i#n!(5_y-O)Z#_43Ses$G=t_QPAuMq3r^#d~j9ek&x+PhB7l4Bolg;-B>Lt6(w>F2M)Wxo;r1q#jqG)F_t8h`EYjuO$wvy9`wL>EAkk3Ziny}|nZ|x|tbB2e zRNG1pEp)l_^t><)A~1r1)$7(P?P`6KBMJ?k=5q$CF^F>Hl3EO(pW@d9A`g3`xJ$BQXY+xx~(V}ae_19s{ z4Znjbi!(#AbR_}6h&AWI14({lBVQ_!H%RiuJq)+^V04>aYK4RUk`8N4yZfG|5)93@ zMJzL`JyP;t-7Qv_WLv%75V36W>3ytv#;yura&+DFg3)wZ9piX+aVf419G-VnI;hB+ zN>=~n&VU#mt;KZWMkEd$%Ky$aQ`l3W`Hpv!r3VxSA}7$u)=;DSxrcR1D{ ze$jfr0(OXANnJ4I{5O5u3Zjidzjeup&5_P}Qu0vpNVUuo%>amvsbW7cRx79yEzZhb4&p@K#U43x=vTAPrMvz1ZvFf#S8Nj|oykUWmp(}c4rN{514;#_g zPrr|%I~|Nwil4D7I?!XdglAP7Nh1dm#+vJvR8iz|)24KxYc-~_F zcqP>#FoT+z37YC2d7p+(C4SnpJIMw+DiKm&rEDr_H-Own1C}KsCHoOqc-G9i&8lRq zDJ^^-W~8aR#T@md(Fjp`u`A(f`nB-Psc+OjZJ9a6PEoc?tQy4AAeMYMCDyRGLk&)X z#S@<~Q8J_YXq*0L)3ip-k*bk)(ql|+I4$1#+LK(h&x*W6)E2?`9idoh`ppQpW zAX$|H2=s|J58egk7E}@4Evr@_?V%{m{8KRj5rwwf1Gz*6P{#b-eYFMHmiR<<(KKw2 zoAWmm&|)ccD+6m<==9NbWuum8~GEdE{2KRwcEa+@bUv+%Pd+mpXxbJJ{$QU zn)QPvc*P1K?Ri{o_3mZR#Ok;9Z&rj=esD&tRV2IMD?iMew(QYE4*)`PX&0!2b}GAL z9(;8zgp0Yah_NT=UKTX~oH#bfEZh+s`9aWT1uwa1GHE{04+JEY%dh&&L?3}O@YBoFcJ_A~yYtP9Nbp0~XShY6SIy;cz3+=0MB453~nm zYfA{4vyWa+m8vn}Gj&n4=YGE!TaB7@`c9e+kMucn?_0qxo0?Vtkv<#JbW>Qqz}W(E z(ZN@0X-h69-f)8y#{sm5Yo|#Yx<6PT-NEOUeEya}I?Ln=pui)2zItTyMwP)tczd)C z752=xG|-kY;H24FZXM@$?H-yD(`-K{x%q)P9%43RAuk@WnIKd;Ze(Lm`&aYsMkTfu z17EhZ?n&O{;QrjiAEm-?8!}vYNHw1018@Se21#wrP!w02qWsaU62Dq!;~Ubd{v!Y$ zwshwzVaTbZ>iVIxB~SxbmEIpM#-ae`Nqw!dSG@t`#>r>9H$khT+ODP#Qrgj(wIVi@ z2JOZjgG@RqjlnoXNQ) zB~_0t{Ko7ZbuL7EFS_5X5p=bHfyBdhcWyw2%_*(FXE5u-{bonu)sW}F5ylD1tHcHAy8xHqocY-aNZ4*sU?#Okkhix3`t_yT zL@OsG=s~88E_thL`h9_{Bf_adbe>mP8%eV$WfPv2$gp!h zrc_L6v^_L^PRpjq_c+82^qEQ|c4+v4bjSYuOvli5Ij!cH4X8j!!(3I@T`%PN{!^V| z(BfYvt#)m__R{s@OpvJi+MD?UEN`IN0q6vjV+@ZU?nRuZ*q=Utxy7Fs?4Ef4eRB3=~EBT30>Tueb&ANCz4EegaqVTLyGR+oc&B|=H$K-kCfAD@vSciHQ2WH zu~;}z8NcT^`$lqG24S=e_l@aCs#IaGd`-UE^&?k$ODGccHO|WyVkQ6S+g%OVRjQ-$=;xh~8!Iz*s+JM1uDws>3s9m|wgZO1wbyVV8 z!(GB(n>o_d%~MU*2gM3G**Bj!0FFoW6s|-&SpAKMbm5UcV&UXnfcgqvwOJ9_!`b!b;#ARb#m>X}=buZ_l85iTktF){Wq#ivm`Z8#Lo~Uq z6}u6yScX1<0=|X_RgH7o9vv;D}@Ev$EnRwydNUGLvbPoPCpFf;wymTPC)C z5!QHwv1 z?iU;NA5%c4QxiRYf8Zq#)e)!lgM~j`rdnG~k{;(f58jon7c9+-xrvyl9lamx7&#dh zuaID?7*usB{%xch=ViB0EQTuH5C><_E<6D6L?KQ!@x=j7TvO{>Hr-W02&DQ<{Zy#j zpp$5Av~V2>UJv$7ah))1FwW_;LvhVr?743WB*)@ABMuW=j@_gd!Sbihfx604+Y7uc zO`u5IiCCEQ(cX-XAMKk(9);4b%j~1r%IYkJ!;anxv=Ow)a)ri$z(Lb>8Lu5A%u-41 z17hd=MHA7}U=NGx=gm+l$LjS_e}+=YeDFN}t=^P;KK-_KCv2(PoRY`J>60yGGCoN4 zk!_b2rKL-LJU(+8_OiN$ZmTV#IkdR5O zfp-^3eWK^5sULw9g%Pd%VaA^4@q++fQFQSX*GWYiw-;1V07-)$9D*3HJNzX9{Ub) zadJG7RpRrrChl(ZXKBC!ZLjJ`GpIE>O_yYh>-i0`8S?gY}!^Ur2CRW4=HYa{&>rs`(5y|U{Go$vS~;p&>KI$(sW_l zKL!Eugy>Gld-aD5L=ei$1j!t~8xAC?d)-~3zGnE8dY9e2NssGt0 zXE~Ck$^Z01q7-=C!#{_UmffS#&bL_d9o_EDR5mVgREwUEy zV!rTuPo`}8Yj>MF%1W>0AU--%ma_<$_8-ExO^rgF(o}c3i#}gn!2Y@l`yWbK2(B#Y zpy;4&a6whU02%CvQBqP@{+#pHea79v4&SYcNzDRYl$eEh+ioQ`3RW7>Cz7k@IFsYV zyt>n`&|s`fbe-~Raa4V8_;-4vZsoun=2=zMN|Jn%3l?FKvmPW_&ZlGC;8ia@@RKe-Y2YupVptR_8fAByTif^ zb?MSv`lw*o*|>RHj`J%edK$niWiln7ud#mz-_C=noSm!t^YnFY^J{omq%nIoLFgZu#jWH~GYA2X1 ztBYmddB5JkOi-gMG@5DXJ(FWHffF!-fd{>;FPJ z`5%;&HjvoE^~Ty)fEnL%nLfa(6NZDzKx<5@MIdM$M;{QYWO94EmFww_ktlbYW3^IeUV9l{3^&RX}h0@SJ!JS9sfK{miGQuoA<91d{?zszzKN{+?rD zBJai+t3dsEYWa>EYlD4tk~kcKkXmDRK!R0dDLy*n^k`GJzo=TG)e(R%xN!Y)9&)IKg8{~uis599>Se=>Y0{l(MGyTJ$K^lmK0WIxPB&=(tq?PKBUwwoy zd$^4GinMqMG&-M_82ZL{EWQJt2~Z19Ke2_pjwi#knlv-)tLZ;j@aHjkt;4?}-WaMX z)LtHJpFz3|3IewBN~^-R)iB!2v+M``y;T2(*Cb(Y^&A2|==>KNl^hypi! z>%VjcfbPnJ^ZGg@7fb#)9oUnN_>!ejMs>7a0mReAhdON1!v0Q;0DM)t}&;V zJ12i=@{gVZEbgAyU{LmZTwpGeI_#P&qJ*7uO}H)vZ`$IsIIw3g%tH@#2C4TZ=Z$@A z{`GL&h=A{oWRIY1sc;lU_Nj0b0e~OBCf2F#&|O%IJ5F= zsp-^g_g34qcP~Xc3tvok1B5T8N6^#-@NBhFggi+&3wy7A1gaYMJwR7x8mNU!AEbMr zd=&>m;iT?leFP#Pa1Tl?yMig;Zj1e`(A zYBW;q2V9w#S(_BEdO53*$*#=4a((kOq6;VYa2&cxMrR6vB4(Zw=}_^$yVZ=by*<>+ z#?q<+>%QUS7qxXDrDt+~BA%SJX*hf_Q3;LGJ}uP0=6MnvZ8l2vyw2gu--B_Yo1BKFz$!g zbm;k|?CrHR^bI22mm*)%U!7eJE8Ml$lYOtaq=%3SgPj2Bu>Ho$Mx6Klf94r%VPL2H zdRg;p3+JQ(l8wo*W#)_TJ%-eHV^qpC+vh4@tLr^DRZcKmwu<1AVfbvF`i`G%NnK+% zia;S9nOEpT01XsD8VG;xSaYo3Hxwj6=s_olGK~!!@6{X7p6c7nX0TGZ6MWnkyLPF#s1t|#uMLH#= zL(+@x?(Xi3?)c7iA>h2T-khP3}qy~2RRu>m4?DAlPIaSe13p%o$*C*9$4Xh}XIS!NB)K|B zhL*SLRFLqaq)f!f_N0XaRm_fQ1^9z`r^Zy*qUOTJ_xHD)xN}guA)IuUaPke|j4yYb zSBQqi@E3k;9n*Z!;(#e!QAb4PwMGY==+{iK*9)5lq)EHcS^M=MFzEKZio}s)msvZ za%<6ueR2>W!*Yrtm59B-9?#tjDx@XJt}+V{Hke=$@T${H;vCg+7HH8lXT3s?I{m0S zZQyal0pV-^yIJRdw+)AZ`ks@o9X(Yvd`z*I-@9D;kAn~Zjvbui(_vGeciaTzZ3dg1;6Ras%R2ILRc(Kr+32sLL=oZ!SR@4rP&P#|1(6?fm6_duLjHEes}Yy zgeBRdI$XZWk$rgoTV7v%W^8MxCF0mqEo_NRNX3fGRax#kpn~UEK6n{+qZk#dlW6Q2 z5?w(#KcIpKu4^_-*OgKE!Hbd2QbZ3WI6~tmKh898@Vpvb!q8Hkq_sdX>z1;THU3Yv zDP@0Gvq|URhHK$Z;MWcHvPmNl84bl(BYfo4kVa5R)B-I~sIm$)4KlWtf%G%J_eM)6 znU!+sDBGFyWWjoOs$Fd|5li1{t9D-~y8PtftmIt{oY5!Gt*!czS1Xr*LAq55+{KC; z(O;LV7k^`~w#CdEf*|%>(H+*s@qtB$v)5sqb6+Q3aDEp{44PVJN0X zKhXC{==yTzbuyT6D?meokMsp_b?|{D=&XeYq!eIhv3Pu%j(rKOcIckZL<2*dKH`Zf ziTS2wLmSQw{>i6r_A*R7bQ!B|*mpr8C9~rKfH1K>`;A<*q)O%iwZm4s#5&A%R#XEV zUV(C<&RZTa%j;?!bIqa?VmEg$M42G$_10)W?u^JJ!;yd+f&(aHpJP5JUFG(&F~^`g zqC}LH!mO}@k1tw&fQ*Fr^}eT)@JmPZH*UEoRfLpD`=O}6fQ3i-5Fmx6QTDkeh5^5y zA#%AK{|qGj+`k_`*k;S?>cSbl(+xn2S*SKOWG&3wxPy9rZ6qg2$-WFHes zS0;>ClCxSnK84zz9as`t>z@Ic``9aX#m9I$EXltvDLRo%jO2UTQSwtOyc#H4Z4OYeHl$tuE6rLg|=otxItl8!2iQwTA~6WdqOj@FKvzePiM5z+aklFC2; z`wd=T>-gV4DqRdptt)B%sabTUq9+``M=C#YzXBwTysxREQ?Wg1g0(ZJtxop1nB!X> z_q_s_7Ex}|55V(UZ0)eIJDqC*Gld*{@B}%br_uNULM_Hs)eR)U*dJ7z8jk1 z-)IGC_cbl}?LN0zPFU9s(6j8(uRIual?eD_`PM$;?6{CjN$4U%iPBM#67V)wq)IU51xm920_tO*%YjI6{<&3sT=7x*sUdwTbj5m>s{D&){)Rlg3 zKY?Rx5_SN8H7)Ss0Ec~k8yKpb7^m{99ER4mCaLOZTKtKQhA?)+2lpMa%P%E|% z_kL76ly-+Rk}VOftW;?X346425OYjfl)RkSZu@2da_w0(PSUfcn>J?Vp$w848S~BJ zZxNLJ${fi;-%k}?Q28;^Taz=}J@TdM?gxB7_i#|c)4a??h5%C758E(pSVm9U^`H)( zPoXNskq(a~j2I#%nSs34u8B`hK3Oj-pFrwosL9Vh@e)YMb73_`&jr0ZyUXE(Vh$(2 zFH_gJmiAg8ysf88Stb^|tu^6V?|ua7bQ&X~%-dGkBw5n#%{Dn|RB-S^x5gQ8*&w6; zlJ}IW#qY?ApF77bd_5xA`Dk;zWv|*U!|BLZVo=%?BWD(?zchFz6i&O(j8o)}Hl#bs z`oVd)Uuh446zQ1*{0C`JiesDmmI}V}Y%PHqP2maoWaLvzes@}vE^?gybtaL6c{<%&!9yCK&VsT2p=pw7>xB6SWtSYMq(F7@gZ% zV}7@r(5}8Wl*q#LPHo;n5%=-Siipdge zu|F-C9*w+9p{Na#cEhOXVmr_>V(oTpDz~qr%v3!!6SG4P00A(j1sw#t*?Wh$ZC+&j_ej*}Ut+U=QllMi{|T1c z3cv}b=8dH0a<;|cC<0>_MTUTqr}Srl9ekkf)sm};7@4_Av~JqT1brqyu`_ySz-9NK z!Kq7$8u$C|3*}(+gBBhe@up||?p;b9tFC_$3e`%PC|-(cTj`tKhP0=+`+bt6E*HpT zbGU3NX)$w?X(B4P6vviXEqu3DHe+F4$ML@!fx`-XCQkfWGUipmV^f9%&*4fCE_)&ZQ=Ot=mW+@r^05|zc(>IF(y{7ejvN?9vZKvL^c9+JPvSISc@%1TRdeRt6fDNaJbS7}BU^aHIpj(G z;vrCClYU!Xyw043l}p=GH?t1(e|cBWlEtBCCf%KaK*^bf15}Xh$0thTDSUZ0S@GWl z=F?ZUE8o|mXsU*9zPXEQMez9#nuG3xt9F$w7di5&XsiFlzF58?KuW}?3}u~^NOyWx zFi-y#v$m54gId6%^EX*4+FZLUL)QbChnyhU&EppliF4z57{va7J(1h=qjLkHY1Wi2 zb1@JsIeWTmpqmL$7~lweCWl#vJofsyUH9x6+BPMM2Ue+Rp5-CSVC!f$o?~?BL9AxO~+-- zb*pIV4ee_@p(Bk6)v1U6E~t^pm2w%r7yG0Bc=tz0cE4Ie@+Kaeosi_khch6QOIORKm`xH$^@$5sT9x|7`?Q~R#dhYbi8!X zDtGE4o+dNvRFfswSKX3w9CrN|kUY_yRU1rkTrixXKeBh>LZqLBT)yK_9dMv@icFN# zl{!YL$HwR(C$SB1v>23(2>G{1?T9-XdrOG@+rYE>0VJq^2A=5^ysmq%>EOUIOeOF| z2Mlw_?pAkz>=Vu-o5>uhwvIM>r*)iQp!j@oC|UAo>%Iur-Ph|NZSt%YJM%H=y8T4v zcC1~9FVa#xW1pcM*vh!DlTV&MY~fwqN!uCqtA9k(-cfgyGQug!TDmi?2xEL!cK=uO z+QX?co(V`uSTfd~p-w@V+rqY1}I`VQMQ6v$0YgteSOh3?YEb&2(UP!}&XXG~*DtInvS1hHhS6|AtJSl=4lx?92mr$nUrO zS=s=Uu<2KKtUG6SDC|Y{sTTUI)hCh(1O~#s+o2y{Ld?9op>naB$-(!;wx@egk^S_C zuM9p)`L^kD>25*!ugtA)EU7MhsNHI?SYRd5Guio=C7IvK8QuM>BSQO;2|66YC`g_X z*{qK0J4mt_Pjam~fEkHU1`ptJY#@WJh5!O6noW`Y+&u4C+S)&4yo++!)j-!{14N43 zGUlJBTOOc48rmUf7LkpEvNqF_qO-Xi`>1_-g(dI(Gly%20HYM>z(j8(E@!+5Sw0$} z^2J-y2d3ichn=tXmNofnriS94)G)FR${hhgg=Fr{*QROOP20>X6ITzc5Dg+FNNV|S za>;0YZvjDfA;~rWeni~UMU$nMbY8ZvRAf!=FCwn$O+0yfzX##FA}YNS>9B|}pM?qo z2{h2(qDL`@4SwU!7zviDZ%0T%ci0(1ku43AWkGal+^Iso`OqsltND(8ymDU zglcS$e*{7)Z&Qas6FP5A+m{q)AltLSOlkd^y4p)i*FYG)tpyUgo_6pcrj*(=#}LZI z;a8^am7Ww?XxY(dB3@)^Dev0e*lziF!_nGKAp(qhdJbwyrJp=5e>dso60_+5^Y+|O*qE8R_Gl1;cRm-Mm+E+Q>p)-gZkuHiPC+lE+C=xw1!+Rbe@la=-lP2cL${l3;}c?7@t*BpQ(dmPaQq8opsCLPMO)xS?#V?@ zkKzEZA|Hbip26cE>V(tqs^_7T@kUR)=ZQ5a*N)jW3Fqx!@CM)nh&fg~Pv`%Ib3E`# z`V?mkO5gcA*wrK)hJ~Mtx5*|FM&Iy~ z?+mBxW2lq2&A8yy%;YIB1PmT~Jl47Dr`Fkf)c_Jm{)IZWSIqPt{bmdreIe<}sGBdF zTu#QCmQO+0vDDm~$;i|HyNO?g)~q{-8D)%CmXWm>XXw zg2x(q%b)DNfT0wtwh03bxHaYJx_(wLarM0sc`k1yE5XK?8|#~-WesITUvS^Q=~>xpG(@S;M3Ax{VPjT~y|SvVni1J>_zh=nj9Z?%L+0Qq#?6%` z48IIa!ui9G_RyRC6sS0%-%vynCi@G|PzN4&JtsgI935Rkawf?o9eB|pFR*hx@N`zA zb$ii3y1f!2cnjqt_$fIsLi-ZBQ0;F=Io^`07M?iU?s}owcY<=+ux$!t;-nRbu3Aqd@2-b|Hf?xDH2 zSC)Z+c!_jIQ=Pe?PqXu7r6jqPx^`vn%4-||#Ml9@jh)nAtD#)?OuXvBndw+hV3;qw z;ToEBS6cz|X}fQoh5M-Xu3K2voWFa~-|9dy7s$2)WaOtTM=Dyvkv7KDdv%IE_paJC z0uxS5yhQAyHL}SGj0uji29PNG7$nLrt_l1&bNT=h*_%9oo56#j%X;%V!J%gb!9u<5 zC<_C~v_EbrPn-VsIYJ@jqL2sW?q+t)`XdjO8GeTP1u}Tkig!gP$%Gryw!^3Afw?c7 z@*Df?I6wxzQ30g|CjR9IFnxSHy983Fq>3wh*n+pOJ5H;=tIWBNHj#Q3@%sVA=Htt- zOQSOB&e1poQ_Du^@UnncD^xDvP&Ce?BU{IigalTSOAVG%Cispak^1|*(jnVH z4zL`-=Q2tXx1BQ4S~v4^k8J{p4;IBQ-o9O^C~?OfqaSv;KTgsgDSX*!BWe4>Xi$20 zJs;&My$Jaw(G!23^!MvOj(^3Wt)k;R{tj#Q9LcrbC(%E$JUbgm&kgHxk@d5@$SYGD z8!x{#$s|n9a$kR7o3lYU?CXzt2d(ok5%Z6OwBIPd#P2MTk4BNLOf3c$&t9)T06vvuvJ*7);SK$c z>%#|WD~7PV$$yBtQod3Q#kvMp`c9*$kGt_H>)|x^8%yDXAd&tlWqMZlD5l}0TExb( zamKT6fk`(%lu_6FsAg>}z&-^9mG%gxU%(|hnS6&;WxFfZG=3SDJ?FKF*qC{JZ z*f;UF6*kl5RBJ|q5LamHzQ90}yYkp?YNKoSY`)!B*th)-Qb|t@mjO6qO(t#DD*+>Q zD?16@V0I*G>(F^AHv-O5IBPpi_d6pO0ce?$tln2z>2i5e>_BC*Dd)Y-x!_w`mJ$)~ ze~xp2?WUe>)tS?Jf2Ck}lFmHn;O@47fsi$;a6$2Z3%8c#%~holk}BN!w#o`Gc$T9R zZ)4gnJnFk&ShTqL8+wL83Hx2B>V@E8ALCm_J0IQg5!=?`wj|Z!k z$*nVbUp0RKLpuF61#~tDoJazh36$c3w3k6MqgUuoA4kLGcHZ6>=rEzDRAVb{CNiI? zC=zn-oPkaC12<1f8WTK6idVB=@fkgvWN9m>$8y&_UnQ?Z1Igss7F8tkc`jHfZ<#sL zv5o;U*l&2FW~Gvq#GWKxTN#rMqlh2N@X()lqendA=+rkg%^Nn~myVM49&znlrdvw% z8&34JG3(SLwLCa_-`g<~SgFaj(>~eUBDs)OAA}T?{ndsnb`+S8G8C)WVXeqA*3 za}od(WOB;r>VBFFS$>ShiRPGT7}xX7{Rbbe<;VC((fptgXuf7A)4B+0m=r6X&xW7LpL4EbZQGQM|0#P6Q{Np-%+=jW242hnF@EIALiNp#VfSmsT`DY{TKg+}0nz-IA71Uq#U!{|)P)X=yy~XJRC~mhgiQb7mCP(s zV5q53-=@ZzCfA@zf z_#4zW?j2UlLm)~vY)}_2Y;th#f;1_Mw3+CUMtv@OLY^0%Pf=*ag8R7CH5_BcQwjYe zmhIOeQ+=z{G_{rfZ3waqN|Di8?AF?37pY`M;^{eJ&YByU=^UoISh_iCzXkr^moEtR zsX8FsBKLwAx=B9+&f`BWb&4KkU3FYr^p(BsGuUz*mY9e^w>3{xFgrNfL{R;8|2^Z7 zOXGY->ViQqT1f!ijF;?Di(Mb;5pV;yJt5+3E4R&*j7!`$x&>`G4s5uNbBr8S!WBlw z+FYU*U8xA^Y%_-LMJG#VEQsB7Q);8QyQOkKk42vfGHKN+2_6)aKVO(nYve>ajIma$ zZ|6rRC99IwyPr)zx=`6b!{3(~&UTW5Nme%g+*+B&uOLn~*gfV_I(qaA_^(o;My_5J zJC#43e8KO-3Z4o$#@Z}a;&d=y-`bSnczsIE@NyzYq0n$74o#jyui>_#*E2!4_l&Ic zKK1y9&KXBtmIHKk<|ytri9)@y_WroUTneK#U-GUz|MmynvTvsgE`g}{5^38nENMnJ zCH-fRP=&ew%SxREGrr>(WrLF$kb&qv_;KD1vw$*!5eq7GCIC_aumi6|t2Ug*&bs_R zD8l}|*(wxapNAx`q3_<))}5l7o%;vUd~ajOSGnJpM}Z&rk1sh$P~ii;H6gzrt#Rk~ zT(CFMXazAr%-831d~^gD0v%u83Fzj66&5jLNSOj!MY_oNx|E&=h&ec&wGN=}Vq@C{ z>R!1*_-ow#ztK)Qs$KDiw3G|#d@~uOaYWZSV1!CsVrTDOAmX_XQcx_+UWVOOzCHvL zDF9}?2y{COki7*snDcHGz`?XcwcCZvSSwCE=R0OH1~BFLCsB`*_l#!&+OfV{bBcsU z*d@xFgDicXW^PNo}%qls;j`%ln7^FbyjTHQZFpY_*Fj zfFR4RL?ClEQ(Cq>pYfj$Eg+6){%ZH;qU;fm zh{@)c8QHUgi$e>Q+v{-5yjxtlh{w>3Xxuqg!IZ{+tKA9ucl78dEfJz8;m15=v(``) z?0YcdVfneprKw3EHGe6CTS1KQTw>M5$49am9$l^~)-wA2_+GjzeeeWC{xgnV{8N=+kccvhl6@E(~*zY3nuAY8WUia5Lfy7-!!Qw&Ui_(MFEGUXAX zfJr6YKb16?X&CO1VB8uw&+K=7@$#P>=Ttx5YW->a1~m=#~W(a=H_ zUI@ZZK!nKY!wOKPRXP^qnX32RYl^h%mLYdg=6i}$P%Z+31rkmc9E#58np-xP<`XN= zm?bITF)ovqv<1+HGJ^5Dwn*1SAj<#cB}0(sg|m=hR{+cMh=ul`564GC%a z77}4@3(}e>J__E98VjxN7&CVS$qmpOC!1Heu*Mwf?v%cS=oW}l03FSAxEr}QeEJDl zIq+vTi6yT1jsEN<{MoCqqswnUly989CqLgL8-+8=T+;S?M%La!sp*DFELQX{m8~et zC-}NQRV@i}qQw-^%52Q}3tEtRg42@X;1G1da78HbepzoUc=&DpfB%&3R5{=Wc&@oJ zp~)TnzU0*G+yAT}+-$msr$xkW8Yg{!4kRdg*<@P!9FbDG6v#eKh4D#+ghJmB_>HFW0>aqoZ&eWr%n(SNLZVNn|Lj>@mEvp+iJ65MCW$fjg_!~QlR9BK zr-cHdWQT?n0uxhv6lBlY49aLx5PE+PR=~geZa9=ea!$jI0yGVVQQ&VrK?O!3prPFj zh|AV{boSnhMoX$-9>_(Fk77s1To0Njew%(r=o=xL7%xbA^HqXtCh*2y><Il#VsN?DM z2XeE&arYV#VmKvC63zp7^dcWdI-=qUWhv*%fPj`1zF`OlBOw3t>0q48&c?#-5ZAHq z^c>!s&eb~CSq_^ngvVWw3gkDrkWQb|2?8X!TQ^;s(RD`KAUnp*#F;BSjpH4!ug^ zJ&8`8hZ{JYi!)UT)3dTgqU?#KqP6E_P9t=CaWNMbs zf4)-?y<)9*P^D=Zu?+Z?{plzwD5_K6WeC|`<%hBnRXFxSi{ zB%9V;TXRv!6ApbFflNH1_30*tG@$))p2y3`81EkPG`EYu-CtHM3{|ZpA>^yx<+OP) z2>KC~jx$|GB!Jk)!j?#*G&M2G_EKJte>lJ{8=D8;T_PA8!A`~k z^+=-)&yWT6md7=7==Q4m%Yy_dET)BH92ubApvE-c+?<=~gcHlbMxF}IireW%;{y+eV0$%elVzlGp|Uicjw^b~6s<=?`o zT34CF9`quKJ804~0VX~1`t8-+N{11qkH4B}dYzyee-J5WMJ34fSS@2kMN_O&sU?J_q{uruGPl=12%Ai*q!Vs|%zHvn&KQbU=*?N>(pUfCSfYUz))5<`NB#$6 za)CZBaK|16jj{W$$BZ5`nvcoc{9E?8D=2H?m$k68l3MWGvX~pw_{eS0bt17J0!50K zRxHkO-`@dGCie_c884lWfj9~4l2r>zMHdBB_$O|!ilk38z1LC*EX~qs|4Su6;tu2< zLL}o5DocJfDO+qZ%C7-WDtODrCh=eJ@%b_E>8?Xc)h3JmSO-(qu3Gy+D&fA-H`e5B zy6mlTmh*}mzknJxmIx)=XyLPT>(e4{*Zw4e;c7bMv-Pz2nSKLXO6TfV{q*FB8MD#Q ztiL{DmL@iPiQ9)-ol88VvAxxmF&-C99ry(01Gh?s|6>krkWmmKQ?N5!_dQ~hI9p;vaT|ckaOn-w{EDd z>SIWK0zAY+Q#j8TWU4;3keC?n2knp8Wz|YFU%?&wxjVJv z?eN^~)JE)j_PN%EN~rZxyU?ZCn^eLSB$$EC;ag7$<7-*)K~eUP1bxFGvV;jO>>3AT zBR=B|K-ciWgI6;@qW`lg>bYITEI-3+SJ}?}>SIU9jVfz`Dm8ZYGEzG2vz>wJYI=?iJRE{=MUOwQ)v81@gMB=e`FtK{0xiH4`KQk0C2{ zj=0kL=oo~a9Hut3$P%2Ph+H)JHX&?YWqTrcFomxwAJL)o{^j3L?Vq2uuM2$o z>MG{Cin88n9J2B+I{86*x$|)i-<$Gp7G?p#$f-OeO9SqiT#4uNtyEyF13<`3IZxb` zB*dG9Bj+EHD<_*l$A-U>@>eOEhl6OKnqjskmW=(cRKp2`XQ?S*{B>YsrN~CVVmTQl z)y6bYt(1Vc@9`r+@5IyGAhbd*L54H*0el%m({r~6Oi{20&+B&#mK=Q37HZ6fpWPEZ zsDwEm52`HonGee_VJl>gwdR|VG&@_@1xlLz9LUDOI3{O(_Ig(d*`E(_@EBe*vuKem zA)%FF_`+K#WhU;<`PpzM*&_Nn zo}<-DoE6ADEHNme3A8k75L+O8>dNzgAMx~I8hm*$@F#O6KQ{t2?<@l>V|P$dG{|XB zeE(SrZ*SUvkHbbyRz=XiMZg3KZ~t`=pPMXG(RM{k@EyO+ZrCNbYPsiT@7Ven>{Nr1 zPGfZdTEATjkgI59H(I_E&oYe=_GnS~nwnyh9+I*_#FQI!W4p0ueuohqt;s?q%~o#Z zFmPZLGj}NsA~pVj9h4JuaoQY8#aWVcf!%QY!(OW4@R|<|P+VFuoV?Hof*+s@*}xbv z3W|n2rD}j{c*~u1i1rxIo>^I~lsr?9H5vx3P|zw2()B@pno8S5!zin@)A;mX_%T9J zZ9*r+kb<%_+__EkW}TurIJ_or692a=S>NJ+%=wrmY&+LZt~IsiB415N<1fl?G<~@A zuPsZ7=Q! zG&`WwJ&_=6NUl_O`;WihXM6%3OJ^ts{XM!hRy+qQRL5c0;Q$(nP!3yTXuezmY{-Rz zob1rP;}{P1AbbOniQp4({vN-fejE>8HbPri+ph`DRuG`&Bhh zCbNa=&E24XHXJ;pR4eZe4`Gljn7Cyq&oI)6MIJYo4O8uAgYU)ip|2l~f%eSnMERtv zO7@3G>mDR=%+GcUKT5TNE>kGszJ90iN}9sXOMWm;5?8V(kYdE&&awb? z`bsxugMi0<(6Mpa*tA<83fcjYx%OadB066U2n=KC{nti+gW`U4iP4g!7}-~PgWma9(bLE zEZ?%>JEo#+9(SkN)epVIn5lBij1E^2u@kw(JN3^W@S9Ky=y_&v7#~%)$_?pd^-(?0 zO7s||BtOMdOp)yZ!7OSg1>-evz5hNll=($@-(%L#A)Ffg@SO;o?lv&b-#|%s;<8Muz_)|IL^2$bEe0b;mm15j_xd%zaRfF ziIM`5C_Yb};?PbudsUJOcUZR-IHfHBzy9~Y#zN$5zr>YCnD#oxdQ-{DKF2iUA39+5 z$Gz_%8In`F$#AWvgba}s`%~l>kd(fAxRq&O&ox3sCLtP>k_x(MqM&Y?@_SSnr=j*h z>Dn^rvV+XD$Ki03yS}xN1pg?8}YSjCR-D3lj2!IOvl(%@Org=D{Vx+M4~KJ)@jRU*`ab$fodYKI%yJ!gr`2D-$)v>+kkBoG9;Iy3^a`$h*MN`<$1hS#WI9>A@MiGbh^9V-u&zsm|%brQyKwMAUxF&&V zmjAVKQ&L(lL!8xazO`ZY2?dBxfo32RiKT|wUP6!N&(1IkUa?t0qLpy2CXoUky55Z} zSSRfcwqjN;==j5KxjPYp2psI|zgv{$JTv+d#M!N^>R7I zwLvv$gGWE2eHsV64c@Vp*cWL%HcQVnoUFR}zPPq=j+Nv}zU@1q!&m4m48IeDJXtk9 zwB>XyH(1=VJYSGiSdY@BhGLqHElSybg$vJ7wC;*Z`O7P_?$}bZ-Q2IG?W9#Bo~6h) zeO;$21vDi3Kb~$yf<$|53p1Io$65bwDciilYjSNd$k_dHkPlOY?k&&evG4PcIu_Vs z*nViI$fd8j4m|ACBGt;V?{*wqpkMImL}=jzu$yEi!fC_a8>y1@bXib3xuQv^#+)s1>7pyT*?zjDCK*?Xes^!wUUrzqz#6p#X zNp2vJZBhLyj_5ABJ@I;gS~|yQxYIP=05lyNB#;@nw{py3&~DLfZ%-J!=`_9-R?h}? z<1&dHXnc!f?=DT#h0wMOX!##zs&T+h1_y z(JZ#-yFhyxhvcuefdYT-kkVt6m1u>=6ebz`b_LtDtK^^Q=`jHc?MU`Kv}Am8}~dvek@No#=Jk~tp|X}S>5 zHW_8=LvQS!AwUEMD^s6ts(D}n-(o-YSI-c=IX{>faY-8zp~!bsk@Xp9c4O`bVW<`U zp5dby^wg3*e^59bnWz&7x~ZtWJjC1RMV11d6fDSc!<*W5w*LGwg>4ABKyDsxIB77_ zVB7&7#rDr0u$7||f+WF!fG<7aRGzwZbpA!-NUw83c>tBBRp0G=>HWr!F zHo$`F{UFNX1eVL(*PZ8)24fJ&f4ig}x1F=YK7ce-{ge4=b`*R0(?E}JO$vY$yIP;&81e_pzI%kZw4zn(H77{yQ- zwni`=*9%;W1aQ}WCGl6NC2ic|hME8YdouBbJfIqiQp2et;)YfSd2HYOWG1Vu3kK`iemH#B=aR4C_H7OQ6Gq8$vi`)R7e%U>L?J7#w4c9=0)M zN-AD@Vu=6b2xK2{o}m~gMv>?989y785+42x>N9?~hp!%-Bo6F1$1|m6F&$C%Cwq^O z-eSNZne3-Dpn>Y*`HbR!0SQXY(xH*_if00R}mDv8l zWzs*8znB#l6e~6N9?&rDZ$!>#_yB!$t(eG2jJa zbDEJ=y$-_0#DP2n6ay||ZVSW+)8HqFTW=pZ)czLFadsO;9IfVU?kvWZ&5~h#hY1|% zf{+y8GS*kUef|;$4aO}-VY|v^92?Fw5I|7@2h+245Xk!q`sXC@35TXuyM4K>9q~T# zE0-C8MrXLnvt?vsj_3L1A`QWYDZb%IY`Lr1u$J~4C_udEt50!%x^28=PJq;eG{)=H5%0uuTHm|F zbP$oNJM1&;q4S>MS4xAA_R;W|IBCt7s{P@1m1_+EP#meOglp&CTc%ttTNty@wXn^e z?IziH$gw{x(gfDO$SFdBFIeY%nTaUXdGIUs%2Ztb-7F6vKuMZ0RR{rMS!6vR$bNGV zKY9J9X@Nder4ceiKWRQ>;~-yZ^hnQq-KuH&*!>p!sVz}WFw(hAe_9PF6oh7-Al_11TcC$MteWA=&hLJUeodr_v;`N;bLa|x zd~o)Gkct@H?D=EA?#U>l9|Thjo@!A3EYzUcAp+Hab9@8kmkAr1y}`%G8EK;JaTn_W z5o0h@we$p)vYlrP3nT2h^%IRJ)c*jPF-IH_jq?949_7Q}=uNDje}V{wE&f^swRx9-it|W@Z)@4JE6-B zQJMgHMXzs0lYFQRgtT!lNq;(MvYQQYM#^DvUsg50IFeSo`+gVZLvr71PgAy(8TWBP zIT?A=Vz*3)V+ShPAM`~5*gkQBU`2!i>be!`y$Fho){7%prF?-2RRX?Ii=ci!=t?{{ z!JSsB7LDXgy5(S(095&e|2`IrylV+o_RGP3kt~NC1$S=Z2qVh+`70SXdjRhJp^z=F zjm>98PlV4Ol2BS(f`$}5*9;Kd_OT$-V^j9SG~gMaIVT9jwH0B;^3uC)Ne);4D!F>y zx~vJrpTH{dk*&pyZBjJnUxKTI+=9NR!dQZZKq3Xnv@8WbbGLBHM_w09S0f=b@ zT$}qnb8(J7@e9nd&9L{PnZO`l8c+5!?YkJNfg3g}t6^B9X3Y59>(bVIAWc;7t)_t= z`2PvYa~x8Z8zmm2ds(3o1^`XJYa~r>uE?7QC0fcK`5vRogU-C>2OwvbJF@Pz!Z{`d zIrG_|OVD-SmwdvR_towTZW~0{%$2O+YS0w;+b$rJ*(ea>98^62tlA^5dU>tUZtj5s z{AW;q#H)`m{-L(o%OJFV4(mN1g~9JUzKZk5i5WJ5wn@2jv;c0irgQ6ewCl13l%+9A zmnJeuy^TNq(0(2se@<;s;qn=MD8M}5bCfQ=ctF{>zT{^)7Iplihd1N3mScp0>OY*8Q7RIBu{ClSnj$0BvYY_u7EE|h&;NX$x1;u{lwA^ z=rgX_ZQ~4OY!4&4*&XMBUAb91+dtT#lWDoooU;0jO2QJ_rMn*d?p3;N`$H zJjp&(=A+v`;l4$a46BBE2HF7^j~}6R>_5>h5hYwEJM3OV(<7gcT4l!;4mLa)xR39w>s0*Jem&(m8V_G6EQ%lcWE^CTz3a+=80^xk{LI zz0D>TZsCQQEA8XCh2%B~!gL*mDdLE^%^Zb1VAld{Ne+%C*Otd*&xAp!%tB#KFQ|Gs zBPG@9tuu3M9Q#$kaA$m~ift&Pa|~2MYaT5YjP4Zc*k;VkRauwfc9wg74i0CsA3|8y zT0u$omUzvKC5AtH=TQa0@-`~4~Z_B-IxGX$KI%Y^@*h@B_hWEr_Pjb@mc@T($!(3#= zVB7nUp;l#IM$be8z5V|3JEQe%e;gLoYmN2$N(pxdXK=2=9XwSkjP>u&UH&%Cs&KsT zW6N#Q!BrY;t}6s;k2#OSNV%ZWpu(S?uVfo9rYt<{z4}?Rh&3-Vez~MR+rw~?7=t}q zZtIp1^YlJjZn0VM{*x2lPMn8`1{|h@%i1KyUzFJ6U%ai>!-(CsDM!E3v&}G zxk~1S1@%||r7Pai31R7kJ_$a$#$PBz*kJHAM!?ZvM*q zc%oqcV?_>jz+~s$@lErj3ODW$N977P_}kl48Vg@*g7a`?)TU98R^#fQsy*c#=)ve% z8jLl!iUo!)0LtY1(HQ>kk>iZ1Boa2ILcTGK{p8zSh+&k@+$MFgBg@jC66atg*K-vI zW$&r^$q~$2=u4P`*bzFJ0J|(ocZ}sQ)()!ix#`&X{90w|MHW1LgCgBs>P|nqEM!8~ z?9ym@C(#*Ldr-+MNAB&AD9RbN1li`!4qA#~*HoKn8%qL$G zvxi*;#vZl}!L^?b%2+#N=KHiMFya}fjK7ct_yrtw(g;|@-Eb^d$y4#>=Z%8#FE(5t z^jroM@<`+$2%xbM@s9=Co&WS7b*1bFd>+T&bQiYob-?7uOevP{?p+nEPe=EI!4|V| zf)&6v(d;VA+W+l-#_!QqbIdeR-{G9ZHv-(MWPyLyn^*$eM{j&@(WinzPxV({fs3!^p4t#5*8wUie+^|2 zilLS58aigg`!s?TGn=$5M!;=G^BtH3B$ds4A?2DhyLB<>F?stS{rRfk0DV{FU5Ule z%W82EFC=pBt&8Wya;*<}S5vTiFi`>lYJ`Gk{EhQpbIJ$O6lUk(7tPluFtR?j2tr;>zjC#AefjWMdCos1|kcs9kJ2>XnD~mal61soS`f^t%a3RVUE|G!Okd=yBjjlZhwd zi*YmDy;HHn;&qKjrUAo)Q{Hcn7Tw^gfG>zyX}Eduj(Q?u_Og-`C{q3-xV)pzmw?L? zDjg4q6#&V;QZZfuk&SrglPZ*)4LugMguRIW!`NGgMY%@r!h?V#qC+Ym3?MZi2nO9C zjWhz1f*>I|bazXa(wzcI=a7nYgGhIG_jw0J_xXL_xz71#d$DKUcb;79e(rUzXGOEC zgciP3YxfDdH1OHKpJq?7>BbYQy=$cK5#|{AcW6KgUbk`~K+2BfWg=7mhJSd%xn32F z4O0uqSF&|A6Ua!K_*{d^E4~uH@ahuCHfAmi_={TIp2Ft*Y11URPuupy!mNONV^3~8 z42k|R#{RR#-tX!2W@nU329Oe$2gj1gl;dqM1Y*Vfb+0RrK%#a*$V~Mg`SGFBPSRDA z!lmWewukC3u8U9TrW5zyNQdc&hf!*7K1?=!vln$?bTrbzMc#g*%@K<}2Yu2%Ijv7g zzdJ!TaM|JY_+PW?M>7jDAJpDodp-$6DpT+QF2==$alP%ZEe}XLc4hM02oTR}2?3%- zX%CSQLvXkM>>%O^6xz9no$wD~Z0$a(bp!;in!;x2k9FsF%3gMN?>}&es^gP8Ss39c z2TCG;`1~@DK}nXlFk#mhDqAJMa_;b|P9~hVHr4)LRK+bxIcJaT^N)?qlV-`QtmEMu zik|mIfJEbo*X``%)qQ+fbuul-8ih3<#MF5=$UB!#f8;d)=hF%kY#?XcqXOXkIXxErOdV&lA}cI0oSyD4dKcjm#HH$z<+l_ zFX9NbhW&jF_GPT{Wnt~}QPaW0dtYQbuooVB@!y=deB3QjE)nSAVHR0%xw%wrWHVf_ z?HlU7ULQdF`q1m-*)0zhC0+?bPBn)jbKE|w^OJ-!5s7|f6^s;2^ZRID8C`!hBnX;8 zoze)Y6k2@>@b{q~Q9F|dZQno;9)8iY=I2MZ&Yez+{e~AI9-BIlJt*zXd<3c`$gh8)S^Mjr*FLqN zbnyxXj*=SQ54o2-)6V|oW}nq`)maxQxonOfYY>K7j#ZoiH45A9m*fbfN1s33|NbJ$ z>;%%`uG6!^^#r_ihgWGpBhVgUCUZ~!v#XRP*MtF`mxcB@=J$Rlrfk@UQ-|7ev)BW6 zlfuFH*Ov>c+_uL>E-j`R1$mdhm|LFbPd??HdqcQb8ECj3V4=a(Gc0AvtJMDM9u~l$ z8*s?p1{fFMSD20V?A#&1Tu>&rHMROP?m6vVna8F9WPpSgeO(_IN;?5b76~4`#JjZI^+6)(BYO?{;_T ziAB`|NB(LHI4=u*!KvdZNV&PqWp0fDN*;)ro_DE@IglP?()eT%XJ@iRyS9BA@5w)* z;{|(j`D$YEXNByfJJ2^(XYhiXyjpk5s3~nSUR7hX2tgO&OfA4yDHs9gH2Kj`z!ko!SJR=+E5Wuz*JTjy7?OWg5vLUxZIbugWIKn;WjAStD7M#ho*xd+rSWU2iUt_8W6JT%&kFfl2zlVip5IT(PEDjR zwLEuF&|Q+W6wva)JAoUTgH6D_eh4px?9F--Ctd^OV&rdn^5K%i%}1Ls`q!PNCk&-T zKH4fq&+jyS8F)wNqn*?F3qKi$_h?4>~a76POsIGg%<9Zyz#g3^=r%!;#v#hPM^gAjnLO&;xO79fc2ZB)u#nVB%pLlg$-s-3P9ZKLL~dy1?A1{Y zoJaSmg+rNaWe$OQJ-kfE9uQvPu0H(=n>bTK*EFn1 z>3QItYKOv}v~gMDBqvWKcLg^@on^=%jqy}YVPljh$!q+Cuj#ZR_on^gI<|yeZoBZ_ zLE3|NSCgX?7n$w9yw=PbBP7)csT^Af&lW!iuEhZUT-hXd%xdr#>yBD;CW;s1Vc9YS z>zB_3ii_Rne)(qY_6f>ALkA)k2`jRG-l?pEtVtc~Iyy@k*Nlb|*h06%Jy0%`v6t!o9cMXtpF;Py$H%jfb#ywgR2Q7 zxtc(<3eit(;;{;{aTptYOd1V5sVdTa@p0;}%{h^^k6)0!;&|O9`U=>;{Pb6QEQEol z(yXhZ>CQ!(^*o|-3PS0GHx0=@eb)%R2|OXNe!s1jy!BWt1K5_?=vPL)(p9LsjdCAP z*;Sz0u*%K5x_gAmp?d%+&y9Xp=rtYk13CBeSDgTHx(XB=_!&@aRm%GHC}UGyc&M*B zvJOJm!2Xi8-8A^fF@^sg(=-_&Wzn)t8AhYPDanB~N&};B=Si5)iO7!b20O8a+#5ZF z-7nn+yg6j9SbP*8>(tvhF~MN-s`n4BdQYs3E}$Tz5I$|X!bDq!7lJvj6uqn&yAl0$ zjw;=dF}tcKQnxnlWcHRP2|mz*R-Dsui&B*Xx#l^+zx!+Iyy6$r`<4=3n+ZHc*rrF{W3l%@%nfQrs->2pyXdKNc`(!whqz1_XB=Nvnd@b3B}J;jDHzga#p)`( z{^Aa<9WIzJi?s(>Hi}ov#*VEZx<8kj8zI@Bl>uwV5z@)8c@##>A*Ikuq+i!1_~FL7 zk>!lQ=f}|_$@UzWz+G{Ltgz@P?t(szMwXK(PU(NEcJuy{nK4~iSRXTW50%Hfa=9JG-c#{tVk$wYNjv!827D4I zJpO6nA;yYi1>Ms8d!00upVG`^L3O9$ZKd#rA^7barFZnKLCp3KsL!f{+8|!UHENX? zxC-=>Q`W{G*Z*0EDI%w06<8*Ztxcp-NMMZXgJ#uAy5myIP^0yNjkT>3P2&vN_lI03n3Cw}!DQ`DnoZaCqZhpEukEiuG$mgys64neZ2*_6j{vA~NeO6&k76OE2RDD1^$ZEh>v|>C=2)~hUluUB%}FqTCtV}m4_@rcOig@Z#7f2y{Ed4jk--_moF}N~ zW&3;!Q@xQjO^ZchIU{g&K07BH3%*0V4Uc_n(5#^}?H(a2RrYc{2`w5xz0Pc0VB4;;V@j0}fPL3+(5 z0cY0tr)cv*lbZLvSkat&1ZZ7Rix)BXlr^Ik^7f;NYK$FAE!;|gG3nr ze~{$r)97E)_F*Xm^PS^Hdz23%IQW^afQM*|7I<%VDO1${*$JeGYJ*~L20$K2l-7f# zY6)EK^rpI#-ffKGeSc+J;m9c=>QN3K5_%+^q=U8;w5nP;%F{H58%lpPJlA^J?P+2( z0N9BVPe6Oyff5w-+P0fntPfq zaC#)pu>@lIv0TLX(70^fwaV6}F#_R30(!Idk%h4A(E@CFJBv-5lAHZe)eX>GmYcQN zSnkL1h*5L`QZkz-O%Xb8vItqtb`xJ(ALCJWE3930{R-FcJNPj{kNX%{Fo+6Lgldh- zWahy{{Yek^)1h!Gl~kJjcG_Ltr{D7eh0ozzw#&7#>4}gF;Huf~NTz7dItt&Dnz_LF zDFx(!Fkcx?>^?ebBO})2;g|iV@C*PZ4DDI^$8~_xc?H*&s=^jBU31LF3GSMPf8$?y z-t5PV)>spIDmU2=b_P2szTOc=(Xwi+`Fz?+K<&(q9EaR18zE*QpGs5k{0H)%%woJz zbzGJlrrV*l3aK=vY%nD7@Y}3hOSlQ6;88#Y>h(DLg?2nWce{Z^ApS5+JdA7KWZaf zDwvT#XneLerm*w?4?=GOhf0wExOer(H}Yw2yU_ob!98hg$${|;$fB9**lfwIwgcNL zSB11Yd5pKmri(rf+kRmy`rf<2XeO#yi?n&akq5VVOh)f5TUv$0biLGgYQs-1%eOb4 z?Y0TN!@1Ol+_YD`*OD8D{5tf?M82#LMVTBsq;P;w#@nKQ+mb4SWy2@c&3z$=${7HE z0QaNla$s|8$X0tJPY$w>E9|Sj3GEHF6D`R*Ll>BS{A1jyiw5T?Q7Q|#qb^Qp(V2Dp z#ecrLYN;=!JK=F)TJZMh;UN-#q-9fYOdykeLYuIZH_0vNkn>t~HLq@Y5+MU*SPW9_ zI2zD-XV)4u+IJjM&jl3P4_w=T`ke5}vN!s>N7NFN?%ZeAY1{=xR~Q6oNKCKH-{%L7;(uH+?#nqx1w-%V@@3il92wNOjQ{1!(PNuTRC1`f$P4I|6}o057sQ#iHS>5f1>Pi6t!;59YCqcX(ONT@nCF3u0}Q>W`_en9+`8)T>`j~`ZZ3B>8h2g2|Q9@olvW@ zL?#@wtuAiU+&*NlAV9BHK}@5wMv)3KDq11}vQ4V&W?9Sb4vnYJFbUd-hF^{vI;6LU zXt>#zQ2S{ivz4EFlVTyXDaB~_?6wAxEwKR(_^-fjKX+!aP1AFj8Ww`At25S%EZ#~1 zEQ$CZ_#x!; zJE3ET+TqGvaeJ9)#F!GCoV4)iWA7(E*0H?oF|7AiG31Jme^8LM2v%^BJ^a4UEco0+ z0}zk&G_c=4F0%R7QfP3lo}81?GkOa#L1Mrud+UlHar5KBY&BNT|6YWc%UfZIB8%I5 zx4*MWCOr8OkDD&NdJRj1Siz%zGTmx#5?_ZLYzD$jxtI2(l_U}JCe>>-kD z2hoP0@{q?D-V&Xi zMHxo2R12JjiefzY9fhyAD!$%Hx;t~AXTxTl{r>5(>vsWWA^YG_{8a{AUWaWfB`nM2 zP5!3_o$ghr{O-CUGL5;yS~m!LA_DVzV|0YHGVu@Ptb0&S;5O4pIDuTrClC<24~lc; zz>*X}GE>WhmXj}HPjpOlxZwjLa&ZUn=~wI28H{8=E;&G#u5W&$j{gVN<9{+H@@n?{ zcNdT!&s)qGWb12&pe2un_&E20dij9SIk)`=4L$x@gbFS-Da{lj!l-}i=h5zpr82W-h~wz9_}4!%H0d<)T@esOxr zeW}L`Oj-#rY)hP=hX>KD(eKDM0x=oC2;FV(biCgbaf>5xQP_E;ib+B@bP+Z@edzC( zu?!UK!Mfy4wD2_Wf=#k*_U`vXXgL^;Db5Zpa5V!CbwAaAoNjHsHj~R!d2hvxX^f1@ zGRVSyN(>AzSbyf%p_hv|3FjP|xgj%K+Cf~PWdBlY+qSQvf zbDV8~8i3hGfbWm}5!D%dBJdu<4E^EBLT#i2*NKx%&3u;w<0!5ClP6 zm)1fTEIHx5;xUi}2LX0BTQEH;o*_CcY6l&?<8QlGrbbxX2BOq@$sf|JcyqPIkH=Et z>ZEG^kWH5v56Bhr&vpaI5?NN$P88vdFBJYAf6X;$=hkG8Oc8n4ojSrpo3+HS`4HTPU(ypg@j*V9LGw+Hipa;G$W95l)>) zI6VEr?$^Jd2Yxa|>OAk)ZYtISf7PBd&Ng3=qK>H6j*Ot}0&oeSR5{{Es1OA=8zYS? z7%;9jAa7TpP1t3gI$eOrL7*G0yV;G+;$?ZEN%(OgNr~yhF-+Ve8UdsY-~((x5vtp* zNnE83UpU`B-c!WljLS!E3DAt!=BF_%0)Q$xfgI=;c9AxbJ-wc$NGNE`S)Olu%YVrg z+U6tyNj7MO zqpxm~1EVHAR5}L-7|2ICMuM=K-NJIHfQE zqUv6E0byx((~_!<@Qv9=aaHXwpX}`R_ovso^-hEVkK|FNtFbNrL|t zFge&ySU?i+qc6?mFIiNfP2x4O(ZJE2qmB+`Vc(u`0wZ_$c|=D1$?RIzCm@WYoFdv_ z8|GW*qyh{1aowV2&`pb(FDdq79w&W)9@56RPhA!0%c%=awRyJedd+D2XYJih8$aW5bC*jAr%W> zD<_EO2Jj9-)C{XM_Pr`h3V?V&-bILQiV`AfjjWuFuDLK~QXd+Lhgl2Lt1|Uxms{F) z?LdytJmAHuAfTu1uMZ)<7ppO^g5pO-VuNR_W&DCOmUql=ebtN>w9{(LSFNlkxE-B& z+Jw@+UVYJ`WFlv*4!{j;QV4ZfiA`zdOGaW-W;;l$=HCL_6-DtvuW&(fVUg1 ziD+f+Z!f%MQ2e6&@wk54PR1`WAqXw}=`_!4qa}9@-S&XJ@8~K8^B-o1=7Ef5tZ6l% za8ElY|IAbU6j9w!(FOi~cflT)pY9xPg;Q^5jjDU`X6k7|0f_=G3H2(ov%%bB`j&ks zUFOAh`CBkGE&lnhGr+y&uk&FtzF|t~L`jyiS;Q%#%&V>a$;m*@Ps8vhR4MRn0U+mR z0d#>riJ=@n&*LIG)bdi(wbO0iBK**S^>c0YS&tvr`%Mam7SFh&A1K5Vd`roZY|@eU zA}piGKAH#hB3A|`03kPkNDBLGKuPYH+>>S(i$@~8*pibelHbh8NJp5ybAY#r;@-c= zm(-vnQoYn6#MD;a%OV+&0ar*VM6H72zU80o`XOf(iDOKFNYO?`CR2#Kn3k%&>^rox zNvxlKKBPY?0)3vTEK?(Kry0`m?$ewGbYo5zU4KFf8eFwq;1a!fp5E) zVT-j#-P#kQ=8dpY9upmGXxd*A51suldTAte_NUlekWFPmaZn(Yo$Y?aQIX7Xlmt)4 z1HAe$O0qWLcc9YXpGeIA#3WZy93+c!@m|HKUD4*2i2HYGxei5E(nlP(DE2b2IvXar zfasNF@;b=NHxzdGqY##p_iLiKmE=35wnCAS$KfE;?QAXwVX$lCN!)%v?8)Mq}GAesG;GK!LO;iR@ISWcMpkFVj*5^e44)2SPN*lbAO>qEa0500OuSDb+hbZ zIg(HWy=SfJJC)*iSbK3SSC9eSjv~J)Usq*EKKi32$FXl$m9TYfC_4msN?O0#l}jV_I(Y+YJ5NI=Kh`mynro@g4ZmVq zS$^vg|7|xFVLVPi4Zq(V=y38AqaUSiknGW+HaL=mR*QiQbB>`^yOm(NE(8zR&K01Y ziqKnTWnmfZ3-RmA5L^N0Vk`;w3jzcUwe{z3QmHq@&UsR4mb|eA ztp!%zp8$1xmY4+Kx1(upQnCKQDF2Rf>8y0m@s4jHp$QEQtgMpCh{9jsK-xbxTYltJ zC$Yj~E`hzs^Ss8B;igWuLjDIU6|g$XbH-iqzd7y5EE0=g^m@3Vd>e z(BH)8sAdtx#}HA$NfS$|0ze6N!W&`IWTBA?7Vx!y&P9DwhmXsGBTCyZ<3Y|Lhxe^Z zn&?V^}*y410LkxUt?3z7)=X?;g#B@V85XF z4NI^;T)~o?*L|ykBnt<}XFngC{z97@_7Jv0)d(dGOeQ6QTU)e18(VRJBE~mo0=Odc zDKoE5lgKmj8VGO!^dOJ>jfaJuwg;eVqWso8973lGLFxgj2DEbSW zFY?rbo4zOTRC|Xf?zCJgLhXnW3_UYHOseIK`}=yg>S;BRfOpZE^8+&6TTr=+({2$` zYEbX#Sm7dRsqm@`5bJ8%tb5>i$5qH1X@`D8xGD9eu#-UYNvVGP-hOw2GB`%hU4UDm z=0API#tvTzNwX_2V~=?7i??u-|G~x18dXT1@ll?c;@I^sD*`*C<-D?XhO6*qbxz&m z?TYFZS84&jtc2qqaMhca06yVRi%!4Pa2q#WNfP9)fB_Rt-Od~E@#3s&OBwp*v%$B~ zf6jLzIIju5E9v~{5Utd2AjYOpsS7N$(*DIZWdQiop-_o2brY5B5KW5O1ZBXMd~E6) z%1qra{4$!~u< zHpRfu)1ThPq7&g4rUH|Gs7AAD5%_VzNXglMUbXTuGP-adU*CAa5&Ql8iW{HPFM&{n zrF@S~s>vyypSZo9|6at=lc|$n=g>N8Yq)=;v{N%KQ3{`^B@v-nr(j3St*honwfGSb zD;w_HscM)eS@RdaA|lg;8=}`%)!ZpbK>|wTnQ$28U=(wYXy5CQ8fT@MvcTTB@Ngmr zR>Opj=#iIE8jFALH8|TZf&w)jYFpcB!s4osU)r8pEi>DS?xAdpRDA}FGyd7~o=UeU=>z-rwy;i78~-!e z8oO6&ku4H{c4h%68Uy1<94g1LmPjcVm^Hly1Y+I zW27}1%$`ZG=@;hQ`1WfTz5Yy(!)^|-=7edv_(IB;6YO$I1;_*Mo(FKy;Bs@VGco^0 z2$L5BuMrr&s!Y@MJHJtonqqpM>)VqtQ;rp~MqtS+k%bq57dQ2?oCcZq<3|5MKC<~J z?qnHMZupxtLn59vK#X$a0DJ1!dKpZAvP0{=mm%CGUL}9?U=wUC^de-qnzFTrt}*Ip zi##64`|-=5t<+xyt+q>WCX{<3*T(~3eT<+a*R!X=^c-Gjr8@D;I2`h8E#Np;zN!ex z^+f53@m=M+3f=%`H(L-bHrkTp&os8zUI-Ei*KMK`c~WyS4KS*MWkWZ>03!|Q9-yLK z1VTF?<~vPCmtp@Wy~&^8&i_%360(4kN;VRo0-HZpidkwg$LfiAVY$&8VgUT06nHwn zHW_xv_zdj2&QJH7Dq7z6Vk>;-N#*{tc%;~}z^HZrOB|xiw?Du82FABi!I)tvS zk2u*|=q|HAUh`Hu_9E*2{q~gMMkf$=O57or(*(+X?9R7OPUOBKLreut-6P(AnTBP4 z(+B|gIOhCTorpa3Ghy_P9pH;!auy#*=WW;9RMfy;*Mp}XW>k^yqq|iB;hPMnUe2el z87S%J1A|?zFeQ>6$n?}-#gW*HP*aeLgQsc|%FW4Fvfv@ z2?GC(_ zt%AI1hBk`ar-H2z*|MkacvHYuv~4F#7{rj2N<&(>rx3~O-M^>XHPDSQz2!g#zZNTx zYOg@sF}*p;fS0R&;EkssAXC{$bj&vD8vbJc%Niat=j zhIzRV5cw~e^H)Ka514EfTuG+as!<-VH?8D}o>KD*D1^g823#`>->cgwxF+^u9HD~Q zZrAPzf@`_XteIUoud$^Sw1!N%-RL#fMqUEO+-kQ-gdI$Z%;f-kfNM8QPS7L!ftc*O z<06uv8*KQM{UhmeQ^57Gu9@_|5?cG$^s98piLQGi1vYCLgsW1-o`i2O9BQS_N6+n* zDbWZ3kVk*t?jpzBw^p_C!jQsAi@t>@YSwis`GO;EKU zJ5Q6joFUD9-WRp0PHS?kz@cmg#8zIYpTM1&vN_Lk-(!#<-`B2XWSk?x6;D8~@j zP@S?c!T(WIp@CKN95VBpqlX6x$)Qb`CYWoa!%Jeelz=w+XB`elh z>--fBd5n2vdOB~`0y_Pt!J#-(9^h5;+z!!J-ypel~6mUO- zC~wMmEL1WF@P=Z2w-A`=r}laqU9 z8*E3a8q#{+HV}LQ5caRDlND&DhNFOWAmW~ODT}+)^12?f)g0#xNbMR?eR36nN@{@)S8ZoT4 zThFdP9Kictk{D7`sFXe&Kh-t)KpD}%RqeSIW=-?mWM*#P-|?|&Uy;@w|1YUKPr;>U zR4uPBnsa7tu~RU zT0R)~ut;LWwbPpixToLTuDJWF_H@MJ3~!6$6)SelpByC!IU1)gCUgJ9pU3Wy-|3z) zFv-rLU$$pwi$+u%pykk`bEO_I@PIS)CyKSPks{fK=>u~}dCpKP#Y(DEq)y@UKhQIq z3uN(p^R?K;d7dANGlxV7`K=eaXxJ$*Jr?nCerbzFXGJJ;0lr6}kO;wlcoqJ&b|Pn@ zn|qm+$xN1R2=xbh)E_O#UV*3aQ<>0_nw3BPf2+8r39P`XEq{P6w3OuQvq-MdYDh=0-v z5~Z9EEMmANo$T0u=|?ySgNM=Hto8V|a>S4}UE`?%DCl4@Q$z$?V|s*PQ;M}4<@tc` zXs6~cAKNDZMTBJoSi2p?R(9EC12OySN;{t4h(O_v^_SWm9d$PE&>+gYRq z+xXbF=c7Mp1!)Yd0AoPQB88TIa1UKOLk7vt#7~pJC*8 z{Ms?^&gGfHYB4&^fBX6d$Q-IP$O!uIBPGjRI%FpXs2u7i0&=s9Vp`A#Dip!OG8eH4 z5I6d+jvypRi0OV*w7}qFUHn{Zvz+e_W{F7R=9&8|!u=3PK10sL-3zd=lr8)hky!E#At~5-$*#r_r z`3o~hjm!pH!=2V=vjaywqy#RBI2!uP6fi?Ut_gH91MkCcp`Wzo=VVJgmBWK?WTjem zdQrgM=+eqgkj&0Psz`>$5eE^4UAs~HHIOdmWoI-EIfm`Wx5J|2tQKJD|* z_d02J&FL@d1+Y;chU6OSQvYK*hOL|40EUQqi(Fj649t~c9?M2dGY{vF>_zUj2tr40T~_wh$zOrU<1Nh%3m25K&im{bE=!g z81{3HtO*FzV`E&;mJuqW>&6$Mnzx+$MfaD~^ud1;%zesK?)RDB7}@*$*x}F;LI1*2!zyYvJemHY#ubzS1J1x&;QUBi>B2%e684NbI!4hd7GtgAE1*~Q`Zwd1d==a zn~Hqha@}2+_7}$wbtW)`qnX-!X#wj@cp*KB`FeZfBKg3P>hs?&0n>fo8hw6=T3c(L z)570iMY75^1)pzHvbw!=2Z$H-Aqa%3byClcXEpQH74S|VUgRm;hEAtaA5RvI`G!A{JM& zxu?_7evTa(71oK+Z0_}o`rWw;KtO{4i)qX$_oF()lc zhx6=+yr?Wv|Irqx(9`ir98{^q05-cpJr?i38%GhE-gkosV@1ibRWP>TI8u|T@X+S0 z9pCd~rdn)>rj!(`8QMK#QkGB!SA`40(+W=y*VB2S{98?0zX})SLjLV&u%UVo?n-MF zlP9^K-h5hQW^o1#6ZTMQxNy?&eLAzVcNBINNM8VZbteltMz=TAz!o6zEXsIE0vTD5 zMbe2YQ}jm?+WYJf&1c46AJS$denGtKWAvcVA+mWcbyx!%h$;T!5Rb)__L2gK7Uius zL41NRelkpwD3jqka33)u+ww=B!fql>a$gcqxlqh8|A8tb-v;m|V(d=8R|$XDv*ayO zW8@q1M&W1)Y6tR@i{b@CY^O_j@Z`<7_m1BI`-B!5M!nLg2#=S3Ts%EcwD^89%v?Sj z6fHYNUZ)iR6sbq zf5Um4dGT%OXN~PC%>TfYOOMU^Bvw(LktNB-U}bei-eQcoek0-7!;C32tdvCKy^Ik% zp&5pkSZHhcIB_wPEhIv-M#Sh?h~PR7PeC)vqhJ8xA%jLkK+tHhC3-NVS6p)lI$U>) z*y440{7)tixv@HudHcN`0Id8RZFK2vjmux$H)QN?Bw1c0x#M3k;_xOS>o;2YD^#)J z&&mJ%(+ra%osyOI3alu{0A)j*i8MEc9St`X0hCQt?mz4k+z8Yc$gE@OZS~>)_rbprqCN#mh-S~(DE$B>|1o<8WNv!7tFI-Q}bXge(yUp z-)vrQUu$$K(bsnD%pyUvq%oZ)9Tu>!;E8WC$-RI5!W9T8iG=mG)Wc&@V$U4_tJKEN z9$v1=IiLv;A_53|ce|qpfpAe@!yN=TFo@oJiXQpo`0v0U`Udm_&Yi|4?1Nw?*wbTA zVT!p4$Xu|4mL%D|lK@p4GDf|`1zc7O=w(rk>iqw2vf2NesJ1PxdT>dUZGv(yEh+cF z%_Y77>HxRuPZMG)+Qy&a4S+Dda)9&(E~(yGm@0(Q{#FMG#&x~Y?7TUAqrP~=Qk5gd zA%`pgXGg(@G}08_b(~X|2q&z*rB?z)3TkV1zBx&dR|0jP-#`X_H@-u9_De5ud9SgZ z^f)@l3rJ{3!+SE+xyYbVSyzL+M`KR;Rvm+)J3l<>Sm*JJaY7qVbeCq8+=WCi=46Ikut41)D~!YuJBYR#DA+XG|e%bv}wOObPPr7 zhtAZ>CI`q^sbiyc-2*dZahvU^?T)(h)@$&5C(ox9_&F)LZ$%WN(y_H6bj@e< zSdo{B`^SFlk~X#!9~f8*ZNFkvCVw+37my;`2l0M;>a7zo4gLd2Ijy;kB;sSbZbKv5 z_kv`yzwTri1k%B$Q!A&@_!X%}ElrCnZQ6NP_?^o09U_0|r~nty`nKiUCkt75 z-?P8|d0A@^hzOBVz>VH}XHF1znz#!=aJy58NqzgS^9r5cJ97Uz3t3i#fMD?#OxtVs zU4Y7}PfKMa4k&3Yap$749d-TuIfJ*Ldh}OV1-|tYiB%r|ZQCkHx}v4mxu4>N^nhoJ z^r4y2*mPq1d=|6k3Jv2Gn16tzp_hJ|Vm$A=H%1v? zA0Az~-6oic3Z(vUA7wv^n0Hb{ipY?A%z$I-M_RDPx%7@ga)W4u%CBdI|_>x#jsR_6bVjGBH&uPUEFg4_}^dDMO454aKHlQabLRQwg zrx$anWw#JQoxC2IHY1mG&my)35DnA%yDDFuU3KJ$FYz*vs@)Q)?JrtC7f1XLc&~e} z2>oL53Y&SKnVM)L^TI=iYrEo)hSrowQkp?Z(jymBN_+?aBf(F82=oFiAo)58RSwi6 z6Mo5fO<=`BCPMPgi)>!5zFp)IKxf(9Epn)Ru=^8P?ByF9AR(49&DX1*|aA=3hFW?#9LxZ`p(QjVyIux6VEqrv~s%&aCeB z2wQKNx?cbiT4FjWg&R^ugRET`4S#$8u??4xgqi<0-jgO>!jaYB5nD+D8~S+I zwj4M_uP@TOtAvP3xa8@ltKjEvLZ$xs(a(w%^}%#W89Oc0yb5Tcr2x-#GoTqUXEb@V zf|2%aH*8j=W3~?fLZIRPTb(89E@wABE9t{Y7VTGePCt64St`6pX)zp*$Qof!T<{VM zdCCv44S)40u7)<&v@wb<#(i%!eu{iEVu{WeAyjtGnG+QqR}aWT{BQ(U1JS9;AJzGe z2b-4C^nD~I;I(bH{4b!vBK^e2DJ^twp8RitsMA&GmcTEJExXtFc(xGzLfd*kPTM`K zA~KfwLrWhexbODXx}Jc+iyko4YlrQLBZA*G$^$L!$OsA1kTG>YO*^ML6#&R+i@6;o za9gn#psN8+8Qecr@Iq#y!oT`ADY1IJY9oy#k@Ufbnr}ifjByIOh(72y!^HrUi5k~VFVTylm{kO_%AIvdD-3syEjWurAWzPy`f zO~^Zotqpk!kR?dyagrl*8^pJt5f^WHx^fSy9!SEy`whq+&IIIVPp*^}15p0sk7M>} zY#jWWUnYbOEl4ySXIW$KcIQ-+!#Gj+;W{gx{p=!4E5zj~7d=Y%GGGR3 zyR4h7iZOgoceuY@2~U3GnsnczzA&av`H0Zz2NDB$?@kq6LZ6-!$;=| z)LQsk!my6^sw5}5K3||j?VsER_W>GeqZv-mG2kB^POh(=)PTe`6*R&H{9hZ(E8uaI z*gj!sPSN)qnL#}1d#jbCAB*-1f!GxRK|>(T2mrSnphfi%iszq+HarXm= zs2f}JD^q@iHU)4C`uo161=J+K(TExnrM8QF5b3c2<>qpXQ1oXsbXo=FB68{SXJoU) zT|3^5{vraQ>KfRt(^F`594RkHw#c7eJ9$pvVia0AOh6Rd38WFL0*r^y_^jGHfgWjV zpk|McIt2H-=Rd}y7v<$9+E=0R^-c4O%x^r>fyu@|%^o(EXLBp5^-#t@duOmC<$IF# zjU5}I!E4z?B(xsY_Vt4xbKhrC5zMf*d8*E(n1U(BVjzR~{x+al!4`dG|G5guIU}Q{ zCD3{=NBpf$XQouxVW+*a?43znM~_E`o#?hpQ*rc2`~e7Xqfx_VA*E`x*M7APQolce zbJyP%$RpOm#-H#Q>s&O(b>AGZx=QV}n$Yj(x%T70cT0I~hlI-Le;h7w`jEkq_=6`v zb!Ox7k{Jma$C>#)1UDx2dR~W7DsuP4&bRCPN=SMK!!}PNB;9o08LHlAE;YW)ia*(X zs9)+0Bok|;?m>SvX|WYqyt=|5*N_l6p>DPeYQHY|IP#rOyk}t6giWfO$}cms<@`@F zaqyDyJFA~f1<5Od3gJMdob+OGU!F~HYgne9+O@MUKs7i0m5*20YrC7kVDOqNbN}n^ zhW9h3Eb^afcMOr~#HH|f=OhmuGxWk0Lz5*el6V8z^P#Y{0?om|;J3kAVAX!+@-M@<_;TNBIPjB*xrIBxf#`u1Bj`MYN zNfBCKZLweVQh?F9HJ#Jq6)EXt#xm_|_@1p6{Hu~?)Q?U8lK8@eO9qH`<_xQU#oL)D z*@iYmu&aDmu?KV_CejS_{~}%ikckg@Kqm6uYer*aHnDv~=G#Y6uC5ys18sxa$LeyF zI{Dm%yfA<_v5|8gumQ9*8fk-zQ=NAw@F^~C1L-8!QkvwHIUreAybQtAI?wsFid?`M z14!WcFr>HfssJEawr#cKE0wyqhNNkR+eFULkZFSbifN0KDCNVN*e}y=$v6Z@5 zQj^(dGTy=l{SCVlpx-bv?C6qEbCgUaT-Hgb1nj@JFAC;Hw<<+h4=3Pd?nkeS3L|KN+?V?M~VNbCu&@q|jb+Al_8wjm_XqWc?uNa)@w<~z(M z9b-*21&(k{oO^!8d4JHyRWgd{mHr*L?1a_gBh{>3hW}fUNPrMY$cv3U)Lm{jp$5-v zKLB(pZ&k9EJuM9tz9wR`#Dy^ISTJ~1@8amF%TO}+Ux{F$AKr#By;pWR3mED~kBtoi zTD$rme#Gx*acIYPWcWrBk*le2{8b!F=_dpuU(D=D;UZ;7)Y($@=*dmkqn{_^CpS8_ zd=WS{YOY-k@$HjK#M2iicJ)dsZbnGk41|R~17RV6Z}Fku*eR>Tqc>JN4pe75v>PX* zW@G>}6@z9rmJ?$NpUl#r(i^`wlvf)>NfIT@c(rA1LDn`|zov1e8bd~3tif(Fxsle? z-5H_5Dv44+CUJMMJ;j3uOY>Ekq`mEPl9t1swjTrcK!9zGzz`M|~Xu;t0UKsVy{tr2olt#`HxzE$@l zfTBG@FCrH!q`r1hOs5gZ=p%`c~ zlRm+JLNT&$2zz2AgC?wi1fR9@Z?;R4uFcL?(2gZZd&d9hP>zxSDJ*Kwe=~^xKX~JR z%P;=-DN-!^{Su3zbiaj^$N%Qu!p^PU2=W(NZL{dkL=;GQZW?261j7>`v4|_zf0EP4?wyPhZErf-cPj zQ{Gdaz-ekNG-1eC`gFRGM`aVJ2y;@Z~&A(n1OZaIZw>SZHy%m5vuGEn7xD!R#)(>9Kj zo8)wXC$u+1jojw%ggf-TimE_K5Rjil0rYzb0&N7PmVHN}`sS?!BX#$8{zmPW`K9}; zHotlRD1=3Tk4i93u?@HA5Q%Kin#bw}#y?Qr7E-qPLS~E28r+-Qd`C#|*~T>=@Ct0K zcn^=oLgW)3!J(AAp{66(Lr}Meab^T8NxLjTCYjB(U`F_5hkLQc)5ciEf z7mfxhXpUnpex9cZ_k5BM_TZqj1lNFX;0|JVooF$WAiAv21|g)+HbE>Kx5l5z2z65PbelU*NNePvH)J6csIH>;gPS z8se`}tzS70$KFMs$5C&umDyf8T()RFubk6&*ei;2Em^`gJ+O%zyOGk(fQ#L=Z5|Kp z>^Imh>13NR9!hUH$W?pm3wT**ptre9g%8JoC#$h4Rzpg`=w1{2c zy5p*fs!dppfrRX(^{-W-gwP+O)n&yon#$vO4kyQc+0?x1kUfUxF=4hR;KqFy;-

XgUeU_g7+#3PefhYTdPsV#>A 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