{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/@ionic/core/dist/esm lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","./src/app/app.component.html","./src/app/dialogs/edit-object-properties/edit-object-properties.page.html","./src/app/dialogs/edit-team/edit-team.page.html","./src/app/dialogs/edit-user/edit-user.page.html","./src/app/app-routing.module.ts","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/dialogs/edit-object-properties/edit-object-properties.page.scss","./src/app/dialogs/edit-object-properties/edit-object-properties.page.ts","./src/app/dialogs/edit-team/edit-team.page.scss","./src/app/dialogs/edit-team/edit-team.page.ts","./src/app/dialogs/edit-user/edit-user.page.scss","./src/app/dialogs/edit-user/edit-user.page.ts","./src/app/services/authentication-api/authentication-api.service.ts","./src/app/services/cricket-club-api/app-helper.worker.ts","./src/app/services/cricket-club-api/app.config.model.ts","./src/app/services/cricket-club-api/cricket-club-api.model.ts","./src/app/services/cricket-club-api/cricket-club-api.service.ts","./src/app/services/cricket-club-api/cricket-club-storage.helper.ts","./src/app/services/cricket-club-api/notifications.helper.ts","./src/app/services/mailgun-api/mailgun-api.service.ts","./src/app/services/platform-api/blob-platform-api.service.ts","./src/app/services/platform-api/platform-configuration-api.service.ts","./src/app/services/platform-api/table-platform-api.service.ts","./src/app/services/service-api-helper/azure-storage-broker.worker.ts","./src/app/services/service-api-helper/service-api-debug-log.ts","./src/app/services/service-api-helper/service-api-helper.service.ts","./src/app/services/service-api-helper/service-api-xml-dom-helper.worker.ts","./src/app/services/service-api-helper/ux-api-helper.service.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA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","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./ion-action-sheet.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-action-sheet.entry.js\",\n\t\t\"common\",\n\t\t0\n\t],\n\t\"./ion-alert.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-alert.entry.js\",\n\t\t\"common\",\n\t\t1\n\t],\n\t\"./ion-app_8.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-app_8.entry.js\",\n\t\t\"common\",\n\t\t2\n\t],\n\t\"./ion-avatar_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-avatar_3.entry.js\",\n\t\t\"common\",\n\t\t3\n\t],\n\t\"./ion-back-button.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-back-button.entry.js\",\n\t\t\"common\",\n\t\t4\n\t],\n\t\"./ion-backdrop.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-backdrop.entry.js\",\n\t\t5\n\t],\n\t\"./ion-button_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-button_2.entry.js\",\n\t\t\"common\",\n\t\t6\n\t],\n\t\"./ion-card_5.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-card_5.entry.js\",\n\t\t\"common\",\n\t\t7\n\t],\n\t\"./ion-checkbox.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-checkbox.entry.js\",\n\t\t\"common\",\n\t\t8\n\t],\n\t\"./ion-chip.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-chip.entry.js\",\n\t\t\"common\",\n\t\t9\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-col_3.entry.js\",\n\t\t10\n\t],\n\t\"./ion-datetime_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-datetime_3.entry.js\",\n\t\t\"common\",\n\t\t11\n\t],\n\t\"./ion-fab_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-fab_3.entry.js\",\n\t\t\"common\",\n\t\t12\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-img.entry.js\",\n\t\t13\n\t],\n\t\"./ion-infinite-scroll_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-infinite-scroll_2.entry.js\",\n\t\t14\n\t],\n\t\"./ion-input.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-input.entry.js\",\n\t\t\"common\",\n\t\t15\n\t],\n\t\"./ion-item-option_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-item-option_3.entry.js\",\n\t\t\"common\",\n\t\t16\n\t],\n\t\"./ion-item_8.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-item_8.entry.js\",\n\t\t\"common\",\n\t\t17\n\t],\n\t\"./ion-loading.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-loading.entry.js\",\n\t\t\"common\",\n\t\t18\n\t],\n\t\"./ion-menu_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-menu_3.entry.js\",\n\t\t\"common\",\n\t\t19\n\t],\n\t\"./ion-modal.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-modal.entry.js\",\n\t\t\"common\",\n\t\t20\n\t],\n\t\"./ion-nav_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-nav_2.entry.js\",\n\t\t\"common\",\n\t\t21\n\t],\n\t\"./ion-popover.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-popover.entry.js\",\n\t\t\"common\",\n\t\t22\n\t],\n\t\"./ion-progress-bar.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-progress-bar.entry.js\",\n\t\t\"common\",\n\t\t23\n\t],\n\t\"./ion-radio_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-radio_2.entry.js\",\n\t\t\"common\",\n\t\t24\n\t],\n\t\"./ion-range.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-range.entry.js\",\n\t\t\"common\",\n\t\t25\n\t],\n\t\"./ion-refresher_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-refresher_2.entry.js\",\n\t\t\"common\",\n\t\t26\n\t],\n\t\"./ion-reorder_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-reorder_2.entry.js\",\n\t\t\"common\",\n\t\t27\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-ripple-effect.entry.js\",\n\t\t28\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-route_4.entry.js\",\n\t\t\"common\",\n\t\t29\n\t],\n\t\"./ion-searchbar.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-searchbar.entry.js\",\n\t\t\"common\",\n\t\t30\n\t],\n\t\"./ion-segment_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-segment_2.entry.js\",\n\t\t\"common\",\n\t\t31\n\t],\n\t\"./ion-select_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-select_3.entry.js\",\n\t\t\"common\",\n\t\t32\n\t],\n\t\"./ion-slide_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-slide_2.entry.js\",\n\t\t33\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-spinner.entry.js\",\n\t\t\"common\",\n\t\t34\n\t],\n\t\"./ion-split-pane.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-split-pane.entry.js\",\n\t\t35\n\t],\n\t\"./ion-tab-bar_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-tab-bar_2.entry.js\",\n\t\t\"common\",\n\t\t36\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-tab_2.entry.js\",\n\t\t\"common\",\n\t\t37\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-text.entry.js\",\n\t\t\"common\",\n\t\t38\n\t],\n\t\"./ion-textarea.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-textarea.entry.js\",\n\t\t\"common\",\n\t\t39\n\t],\n\t\"./ion-toast.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-toast.entry.js\",\n\t\t\"common\",\n\t\t40\n\t],\n\t\"./ion-toggle.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-toggle.entry.js\",\n\t\t\"common\",\n\t\t41\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-virtual-scroll.entry.js\",\n\t\t42\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./node_modules/@ionic/core/dist/esm lazy recursive ^\\\\.\\\\/.*\\\\.entry\\\\.js$ include: \\\\.entry\\\\.js$ exclude: \\\\.system\\\\.entry\\\\.js$\";\nmodule.exports = webpackAsyncContext;","module.exports = \"\\n \\n\\n\"","module.exports = \"\\n \\n {{config.dialogTitle}}\\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n {{ok_button_text}}\\n \\n \\n \\n\\n\\n\\n\\n\\n
\\n \\n \\n \\n {{g.title}}\\n \\n \\n\\n \\n {{f.label}}*\\n \\n \\n \\n \\n \\n\\n \\n \\n {{v.name}}\\n \\n \\n\\n \\n\\n \\n\\n \\n\\n\\n
\\n\\n
\\n\"","module.exports = \"\\n \\n {{dialogTitle}}\\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n Save\\n \\n \\n \\n\\n\\n\\n\\n
\\n
\\n \\n \\n Final Team:\\n \\n \\n\\n \\n \\n {{u.user.firstName}} {{u.user.lastName}}\\n \\n \\n
\\n\\n

\\n The team for this fixture has not been finalized yet. If you are signed up for this match, you will\\n get an e-mail when the team is finalized. Or, you could check back later.\\n

\\n
\\n\\n\\n
\\n \\n \\n \\n Select Players: {{getSelectedUsers().length}} selected\\n \\n \\n\\n \\n \\n \\n {{i+1}}) {{u.user.firstName}} {{u.user.lastName}}\\n \\n \\n\\n \\n \\n Select Roles\\n \\n \\n\\n \\n Captain\\n\\n \\n (None)\\n \\n {{u.user.firstName}} {{u.user.lastName}}\\n \\n \\n \\n\\n \\n Wicket Keeper\\n\\n \\n (None)\\n \\n {{u.user.firstName}} {{u.user.lastName}}\\n \\n \\n \\n\\n \\n \\n Options\\n \\n \\n\\n \\n \\n \\n Is Team Final\\n \\n \\n\\n \\n \\n \\n Upon Save, notify team via email\\n \\n \\n \\n
\\n\\n
\\n\"","module.exports = \"\\n \\n {{dialogTitle}}\\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n Save\\n \\n \\n \\n\\n\\n\\n\\n
\\n \\n \\n \\n Properties\\n \\n \\n\\n \\n {{f.label}}*:\\n \\n \\n\\n\\n \\n \\n Super User\\n \\n \\n\\n \\n \\n \\n Rights:\\n \\n \\n\\n \\n {{rightNames[i]}}\\n \\n\\n \\n \\n\\n \\n \\n \\n Fixtures this user is signed up for:\\n \\n \\n\\n \\n \\n

{{formatDateToString(f.date)}}

\\n {{f.opponent}}\\n
\\n\\n \\n Sign Up\\n \\n \\n Sign Off\\n \\n\\n
\\n\\n
\\n\\n
\\n\\n
\\n\"","import { NgModule } from '@angular/core';\nimport { PreloadAllModules, RouterModule, Routes } from '@angular/router';\n\nconst routes: Routes = [\n {\n path: '',\n loadChildren: () => import('./tabs/tabs.module').then(m => m.TabsPageModule)\n },\n {\n path: 'edit-team',\n loadChildren: () => import('./dialogs/edit-team/edit-team.module').then( m => m.EditTeamPageModule)\n },\n {\n path: 'login',\n loadChildren: () => import('./pages/login/login.module').then( m => m.LoginPageModule)\n },\n {\n path: 'edit-user',\n loadChildren: () => import('./dialogs/edit-user/edit-user.module').then( m => m.EditUserPageModule)\n }\n];\n@NgModule({\n imports: [\n RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })\n ],\n exports: [RouterModule]\n})\nexport class AppRoutingModule {}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component } from '@angular/core';\n\nimport { Platform } from '@ionic/angular';\nimport { SplashScreen } from '@ionic-native/splash-screen/ngx';\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\nimport { AppVariables } from './services/cricket-club-api/app.config.model';\n\n@Component({\n selector: 'app-root',\n templateUrl: 'app.component.html',\n styleUrls: ['app.component.scss']\n})\nexport class AppComponent {\n constructor(\n private platform: Platform,\n private splashScreen: SplashScreen,\n private statusBar: StatusBar\n ) {\n this.initializeApp();\n }\n\n initializeApp() {\n document.title = AppVariables.clubFullName;\n\n this.platform.ready().then(() => {\n this.statusBar.styleDefault();\n this.splashScreen.hide();\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { HttpClientModule } from '@angular/common/http';\nimport { FormsModule } from '@angular/forms';\nimport { RouteReuseStrategy } from '@angular/router';\nimport { HashLocationStrategy, LocationStrategy } from '@angular/common';\n\nimport { IonicModule, IonicRouteStrategy } from '@ionic/angular';\nimport { SplashScreen } from '@ionic-native/splash-screen/ngx';\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { IonicStorageModule } from '@ionic/storage';\n\nimport { EditObjectPropertiesPage } from './dialogs/edit-object-properties/edit-object-properties.page';\nimport { EditTeamPage } from './dialogs/edit-team/edit-team.page';\nimport { EditUserPage } from './dialogs/edit-user/edit-user.page';\n\n@NgModule({\n declarations: [AppComponent,\n EditObjectPropertiesPage,\n EditTeamPage,\n EditUserPage\n ],\n entryComponents: [\n EditObjectPropertiesPage,\n EditTeamPage,\n EditUserPage\n ],\n imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule,\n FormsModule,\n HttpClientModule,\n IonicStorageModule.forRoot({\n name: '__com_digix_pp_mobileapp',\n driverOrder: ['indexeddb', 'sqlite', 'websql']\n })\n ],\n providers: [\n StatusBar,\n SplashScreen,\n { provide: LocationStrategy, useClass: HashLocationStrategy },\n { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule {}\n","module.exports = \".item-field {\\n border: 1px solid #ddd;\\n /* Gray border */\\n border-radius: 8px;\\n /* Rounded border */\\n margin: 5px;\\n}\\n.item-field ion-label {\\n font-weight: bold;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9raGFucy9Eb2N1bWVudHMvR2l0SHViL2NvbS5kaWctaXguY3JpY2tldC1jbHViLm1vYmlsZS1hcHAvc3JjL2FwcC9kaWFsb2dzL2VkaXQtb2JqZWN0LXByb3BlcnRpZXMvZWRpdC1vYmplY3QtcHJvcGVydGllcy5wYWdlLnNjc3MiLCJzcmMvYXBwL2RpYWxvZ3MvZWRpdC1vYmplY3QtcHJvcGVydGllcy9lZGl0LW9iamVjdC1wcm9wZXJ0aWVzLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNJLHNCQUFBO0VBQXdCLGdCQUFBO0VBQ3hCLGtCQUFBO0VBQXFCLG1CQUFBO0VBQ3JCLFdBQUE7QUNFSjtBREFJO0VBQ0ksaUJBQUE7QUNFUiIsImZpbGUiOiJzcmMvYXBwL2RpYWxvZ3MvZWRpdC1vYmplY3QtcHJvcGVydGllcy9lZGl0LW9iamVjdC1wcm9wZXJ0aWVzLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIlxuLml0ZW0tZmllbGQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7IC8qIEdyYXkgYm9yZGVyICovXG4gICAgYm9yZGVyLXJhZGl1czogOHB4OyAgLyogUm91bmRlZCBib3JkZXIgKi9cbiAgICBtYXJnaW46IDVweDtcblxuICAgIGlvbi1sYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbiAgfVxuXG4iLCIuaXRlbS1maWVsZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gIC8qIEdyYXkgYm9yZGVyICovXG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgLyogUm91bmRlZCBib3JkZXIgKi9cbiAgbWFyZ2luOiA1cHg7XG59XG4uaXRlbS1maWVsZCBpb24tbGFiZWwge1xuICBmb250LXdlaWdodDogYm9sZDtcbn0iXX0= */\"","import { Component, OnInit, } from '@angular/core';\n\nimport { EditObjectPropertiesConfig, EditObjectPropertiesArray } from './edit-object-properties.model';\nimport { UxApiHelperService } from '../../services/service-api-helper/ux-api-helper.service';\n\n@Component({\n selector: 'app-edit-object-properties',\n templateUrl: './edit-object-properties.page.html',\n styleUrls: ['./edit-object-properties.page.scss'],\n})\nexport class EditObjectPropertiesPage implements OnInit {\n\n modified = false;\n config: EditObjectPropertiesConfig;\n data: object;\n initialized = false;\n commitIcon = 'checkmark-circle-outline';\n ok_button_text = 'Save';\n\n constructor(\n private ux: UxApiHelperService\n ) { }\n\n ngOnInit() {\n //console.log('config', this.config);\n\n for(let g of this.config.fieldGroups) {\n if(g.fields!=null) {\n for(let f of g.fields) {\n if(f.type==null) { f.type = 'text' };\n if(f.required==null) { f.required = false; }\n if(f.placeholder==null) { f.placeholder = '' }\n if(f.multiple==null) { f.multiple = false; }\n }\n }\n\n if(g.arrays!=null) {\n for(let a of g.arrays) {\n if(this.data[a.fieldName]==null) {\n this.data[a.fieldName]=[];\n }\n }\n }\n }\n\n if(this.config.ok_button_text!=null) {\n this.ok_button_text = this.config.ok_button_text;\n }\n\n this.modified = false;\n this.initialized = true;\n }\n\n async editObjectArray(a: EditObjectPropertiesArray, item: object) {\n let obj = {};\n if(item!=null) {\n obj = JSON.parse(JSON.stringify(item))\n }\n\n const data = await this.ux.showModalDialog(EditObjectPropertiesPage, {\n config: a.config,\n data: obj\n });\n\n if(data == null) {\n return;\n }\n\n //console.log('array', a);\n //console.log('data', data);\n const items = this.data[a.fieldName];\n if(item==null) {\n items.push(data);\n }\n else {\n const pos = items.indexOf(item);\n if(pos>=0) {\n items.splice(pos, 1, data);\n }\n }\n\n //console.log('object', this.data);\n this.modified = true;\n }\n\n async discardChanges() {\n if(this.modified) {\n await this.ux.confirm('Cancel changes', 'You have made changes that are not saved yet. Click OK to discard changes?', async () => {\n this.ux.dismissModalDialog(null);\n });\n }\n else {\n this.ux.dismissModalDialog(null);\n }\n }\n\n changed() {\n this.modified = true;\n }\n\n commitChanges() {\n this.ux.dismissModalDialog(this.data);\n }\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2RpYWxvZ3MvZWRpdC10ZWFtL2VkaXQtdGVhbS5wYWdlLnNjc3MifQ== */\"","import { Component, OnInit, AfterViewInit } from '@angular/core';\n\nimport { CricketClubApiService } from '../../services/cricket-club-api/cricket-club-api.service';\nimport { Fixture, User, Team } from '../../services/cricket-club-api/cricket-club-api.model';\nimport { NotificationHelper } from '../../services/cricket-club-api/notifications.helper';\nimport { MailgunApiService } from '../../services/mailgun-api/mailgun-api.service';\nimport { UxApiHelperService } from '../../services/service-api-helper/ux-api-helper.service';\nimport { AuthenticationService } from '../../services/authentication-api/authentication-api.service';\n\nexport interface SignedUpUser {\n selected: boolean;\n user: User;\n}\n\n@Component({\n selector: 'app-edit-team',\n templateUrl: './edit-team.page.html',\n styleUrls: ['./edit-team.page.scss'],\n})\nexport class EditTeamPage implements OnInit, AfterViewInit {\n\n editMode = false;\n dialogTitle = 'Edit Team';\n initialized = false;\n modified = false;\n signUps: SignedUpUser[];\n team: Team;\n notifyTeam = false;\n\n fixture: Fixture;\n currentUser: User;\n userCanModifyTeam: boolean;\n\n constructor(\n private cricketApi: CricketClubApiService,\n private mailApi: MailgunApiService,\n private auth_api: AuthenticationService,\n private ux: UxApiHelperService,\n ) { }\n\n ngOnInit() {\n }\n\n ngAfterViewInit() {\n this.initialize();\n }\n\n async initialize() {\n const loading = await this.ux.showLoading();\n\n try {\n this.team = {} as Team;\n\n if(this.fixture.teamId!=null) {\n try {\n this.team = await this.cricketApi.getTeam(this.fixture.teamId);\n }\n catch(err) {\n console.log('error in fetching team', err);\n }\n }\n if(this.team.selectedUserIdList==null) { this.team.selectedUserIdList=[]; }\n if(this.fixture.signedUserIdList==null) { this.fixture.signedUserIdList=[]; }\n\n const signUps: SignedUpUser[] = [];\n for(let i=this.fixture.signedUserIdList.length-1; i>=0; i--) {\n const id = this.fixture.signedUserIdList[i];\n let user = null;\n if(id!=null) {\n try {\n user = await this.cricketApi.getUser(id);\n }\n catch(err) {\n console.log('error in fetching user', err);\n this.fixture.signedUserIdList.splice(i, 1);\n }\n }\n\n if(user!=null) {\n const selected = this.team.selectedUserIdList.indexOf(id) >= 0;\n\n signUps.push({selected: selected, user: user});\n }\n }\n\n this.signUps = signUps.sort((a,b)=> {\n return (a.user.firstName+a.user.lastName).toLowerCase()>(b.user.firstName+b.user.lastName).toLowerCase() ? 1 : -1\n });\n\n this.dialogTitle = 'Team vs. ' + this.fixture.opponent;\n //console.log('state', this);\n\n //console.log('initialized!');\n this.editMode = this.userCanModifyTeam;\n\n this.initialized = true;\n }\n finally {\n loading.dismiss();\n }\n }\n\n async discardChanges() {\n if(this.modified) {\n await this.ux.confirm('Cancel changes', 'You have made changes that are not saved yet. Click OK to discard changes?', async () => {\n this.ux.dismissModalDialog(null);\n });\n }\n else {\n this.ux.dismissModalDialog(null);\n }\n\n }\n\n async commitChanges() {\n const loading = await this.ux.showLoading();\n\n try {\n this.team.selectedUserIdList = [];\n for(let u of this.signUps) {\n if(u.selected) {\n this.team.selectedUserIdList.push(u.user.id);\n }\n }\n const team = await this.cricketApi.storeTeam(this.team);\n //console.log('team', team);\n\n this.fixture.teamId = team.id;\n const fixture = await this.cricketApi.storeFixture(this.fixture);\n //console.log('fixture', fixture);\n\n if(this.notifyTeam && this.fixture.isTeamFinal) {\n const obj = new NotificationHelper(this.cricketApi, this.mailApi, this.auth_api);\n await obj.sendFinalTeamEmail(this.fixture, this.team, this.currentUser);\n\n await this.ux.presentAlert('Email notifications were successfully sent.');\n }\n\n this.ux.dismissModalDialog(fixture);\n }\n catch(err) {\n await this.ux.presentAlert('An unexpected error occured in the saving Team. Please try again in a few minutes or contact support.')\n throw err;\n }\n finally {\n loading.dismiss();\n }\n }\n\n changed() {\n this.modified = true;\n }\n\n getSelectedUsers(): SignedUpUser[] {\n return this.signUps.filter( u => u.selected==true );\n }\n\n}\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2RpYWxvZ3MvZWRpdC11c2VyL2VkaXQtdXNlci5wYWdlLnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\n\nimport { CricketClubApiService } from '../../services/cricket-club-api/cricket-club-api.service';\nimport { Fixture, User, UserRightsEnum } from '../../services/cricket-club-api/cricket-club-api.model';\nimport { AppHelper } from '../../services/cricket-club-api/app-helper.worker';\nimport { UxApiHelperService } from '../../services/service-api-helper/ux-api-helper.service';\n\nimport { EditObjectPropertiesConfigField } from '../edit-object-properties/edit-object-properties.model';\n\n@Component({\n selector: 'app-edit-user',\n templateUrl: './edit-user.page.html',\n styleUrls: ['./edit-user.page.scss'],\n})\nexport class EditUserPage implements OnInit {\n\n dialogTitle = 'Edit User';\n isNewUser = false;\n modified = false;\n initialized = false;\n fixtures: Fixture[];\n user: User;\n readonly fields: EditObjectPropertiesConfigField[] = [\n { label: 'First Name', fieldName: 'firstName', type: 'text', required: true },\n { label: 'Last Name', fieldName: 'lastName', type: 'text', required: true },\n { label: 'E-mail', fieldName: 'email', type: 'text', required: true },\n { label: 'Password', fieldName: 'password', type: 'text', required: true },\n { label: 'Phone', fieldName: 'phone', type: 'text', placeholder: 'Provide a contact phone number' },\n { label: 'Image Url', fieldName: 'avatarUrl', type: 'text' },\n ];\n rights: string[] = []; // {key: UserRightsEnum, title: string}[];\n rightNames: string[] = [];\n\n constructor(\n private cricketApi: CricketClubApiService,\n private ux: UxApiHelperService,\n ) { }\n\n\n ngOnInit() {\n this.initialize();\n }\n\n async discardChanges() {\n if(this.modified) {\n await this.ux.confirm('Cancel changes', 'You have made changes that are not saved yet. Click OK to discard changes?', async () => {\n this.ux.dismissModalDialog(null);\n });\n }\n else {\n this.ux.dismissModalDialog(null);\n }\n\n }\n\n /*\n discardChanges() {\n\n if(this.modified && !confirm('You have made changes that are not saved yet. Are you sure you want to discard changes?')) {\n return;\n }\n\n this.modalCtrl.dismiss(null);\n }\n */\n\n async commitChanges() {\n let rights = {};\n if(!this.user.isSuperUser) {\n for(let r of Object.keys(this.user.rights)) {\n if(this.user.rights[r]==true) {\n rights[r] = true;\n }\n }\n }\n this.user.rights = rights;\n\n this.ux.dismissModalDialog(this.user);\n }\n\n async initialize() {\n const loading = await this.ux.showLoading();\n\n try {\n this.isNewUser = this.user.id==null || this.user.id==0;\n\n if(this.user.rights==null) { this.user.rights = {}};\n\n this.rightNames = Object.values(UserRightsEnum);\n this.rights = Object.keys(UserRightsEnum);\n\n if(!this.isNewUser) {\n this.fixtures = await this.cricketApi.getFixtures();\n }\n\n this.initialized = true;\n }\n finally {\n loading.dismiss();\n }\n }\n\n isUserSignedUp(f: Fixture) {\n if(this.isNewUser) { return false; }\n return this.cricketApi.isUserSignedUp(f, this.user.id);\n }\n\n async signUpForFixture(f: Fixture) {\n const loading = await this.ux.showLoading();\n\n try {\n const result = await this.cricketApi.signUpForFixture(f, this.user.id);\n const pos = this.fixtures.indexOf(f);\n if(pos>=0) {\n this.fixtures.splice(pos, 1, result);\n }\n }\n finally {\n loading.dismiss();\n }\n }\n\n formatDateToString(d: Date): string {\n return AppHelper.formatDateToString(d);\n }\n\n\n async changed() {\n this.modified = true;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from \"rxjs\";\n\nimport { User, UserRightsEnum } from '../cricket-club-api/cricket-club-api.model'\nimport { AppContext, AppVariables } from '../cricket-club-api/app.config.model';\n\nimport { ServiceApiHelperService } from '../service-api-helper/service-api-helper.service';\nimport { CricketClubApiService } from '../cricket-club-api/cricket-club-api.service';\n\nexport interface SavedUser {\n id: number;\n loggedIn: Date;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthenticationService {\n\n public isLoginSubject = new BehaviorSubject(this.getCurrentUser());\n\n constructor(\n private cricketApi: CricketClubApiService,\n private apiHelper: ServiceApiHelperService,\n ) {\n\n }\n\n async rememberUser(u: User) {\n if(u==null) {\n await this.apiHelper.saveObjectToStore(AppVariables.key_loggedInUser, null);\n }\n else {\n const obj: SavedUser = {\n id: u.id,\n loggedIn: new Date()\n };\n await this.apiHelper.saveObjectToStore(AppVariables.key_loggedInUser, obj);\n }\n\n }\n\n\n public async initialize() {\n const savedUser = await this.apiHelper.loadObjectFromStore(AppVariables.key_loggedInUser) as SavedUser;\n if(savedUser!=null) {\n let user = null;\n try {\n user = await this.cricketApi.getUser(savedUser.id);\n }\n catch(err) {\n console.log('Error in fetching user', err);\n }\n\n //const user = await this.cricketApi.getUser(savedUser.id);\n if(user!=null) {\n this.rememberUser(user); // no need to wait\n AppContext.user = user;\n }\n }\n\n this.isLoginSubject.next(AppContext.user);\n\n }\n\n public isAuthenticated(): boolean {\n return AppContext.user != null;\n }\n\n public getCurrentUser(): User {\n return AppContext.user;\n }\n\n public user_right_exists(u: User, right: UserRightsEnum): boolean {\n let flag = u.isSuperUser==true;\n if(flag==false) {\n const keys = Object.keys(UserRightsEnum).filter(x => UserRightsEnum[x] == right);\n if(keys.length>0) {\n if(u.isSuperUser==true) { return true; }\n flag = u.rights!=null && u.rights[keys[0]]==true;\n }\n //console.log(u.email + \": \" + flag, u);\n }\n\n\n return flag;\n }\n\n public userHasRight(right: UserRightsEnum): boolean {\n let keys = Object.keys(UserRightsEnum).filter(x => UserRightsEnum[x] == right);\n if(keys.length==0) {\n return false; // right not found\n }\n let key = keys[0];\n\n //console.log('in here', key);\n if(!this.isAuthenticated()) {\n //console.log('no authenticated user');\n return false;\n }\n const u = this.getCurrentUser();\n //console.log('right', right, 'u', u);\n\n if(u.isSuperUser==true) { return true; }\n //if(u.rights==null) { return false; }\n //console.log('right', right, 'user', u);\n const result = u.rights!=null && u.rights[key]==true;\n //console.log(UserRightsEnum[right], result, u);\n return result;\n }\n\n public async loginUser(userName: string, password: string, rememberMe: boolean): Promise {\n const users = await this.cricketApi.getUsers();\n //console.log('users', users);\n\n const list = users.filter(u => u.email.toLowerCase()==userName.toLowerCase() && u.password.toLowerCase()==password.toLowerCase());\n\n if(list!=null && list.length>0) {\n const u = list[0];\n const user = await this.cricketApi.getUser(u.id);\n //console.log('found', user);\n AppContext.user = user;\n this.isLoginSubject.next(user);\n\n if(rememberMe) {\n this.rememberUser(u); // no need to wait\n }\n\n return Promise.resolve(true);\n }\n else {\n return Promise.resolve(false);\n }\n\n }\n\n public async logoutUser() {\n await this.rememberUser(null);\n AppContext.user = null;\n this.isLoginSubject.next(null);\n }\n}\n","\nexport class AppHelper {\n\n public static getDateWithoutTime(src: Date): Date {\n return new Date(src.getFullYear(), src.getMonth(), src.getDate());\n }\n\n public static replaceAll(str: string, key: string, value: string) {\n if(str==null || str.length==0) {\n return str;\n }\n else {\n return str.replace(new RegExp(key, 'g'), value);\n }\n }\n\n\n public static formatDateToString(date : Date) : string\n {\n const options : any = {\n weekday: \"long\",\n month: \"long\",\n day: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n timeZone: 'America/New_York' // doesn't work on safari\n };\n\n var d = new Date(date); // convert to a javascript date type\n //var offsetHours = d.getTimezoneOffset()/60; // calculate the difference in hours\n //var td = new Date(d.getFullYear(), d.getMonth(), d.getDay(), d.getHours()+offsetHours, d.getMinutes()); // apply +4 time zone\n return d.toLocaleString('en-us', options);\n }\n\n\n public static removeItemFromArray(list: any[], item: any): boolean {\n if(list==null || item==null) { return false; }\n\n const pos = list.indexOf(item);\n if(pos>=0) {\n list.splice(pos, 1);\n return true;\n }\n else {\n return false;\n }\n\n }\n\n static idSeed: number;\n static idSeedCounter: number;\n\n public static getNewId(): number {\n if(AppHelper.idSeed==null) {\n AppHelper.idSeed = new Date().valueOf();\n AppHelper.idSeedCounter = 0;\n }\n\n AppHelper.idSeedCounter++;\n return AppHelper.idSeed + AppHelper.idSeedCounter;\n }\n\n}\n","import { User } from './cricket-club-api.model';\n\nexport class AppContext {\n public static appConfig: AppConfig = null;\n public static user: User;\n}\n\nexport class AppVariables {\n public static app_version = 2000004;\n public static clubFullName = 'Merion Cricket Club';\n public static clubShortName = 'Merion';\n //public static clubContactEMail = 'shariq@shariqkhan.com';\n //public static clubContactName = 'Shariq Khan';\n public static clubUrl = 'http://cricketatmerion.com'; // this sets up redirect; don't use https://\n\n public static readonly key_loggedInUser = 'key.loggedInUser';\n\n public static configurationUrl = '/assets/data/app.config.json';\n public static email_Final_Team_TemplateName = '/assets/data/email.final-team.template.html';\n public static email_Weekly_Digest_TemplateName = '/assets/data/email.weekly-digest.template.html';\n public static mailgunConfigurationName = '/assets/data/app.config.mailgun.json';\n}\n\nexport interface AppConfig {\n app_version: number;\n ui: UiConfiguration;\n storage: AzureStorageConfiguration;\n mail: MailgunConfiguration;\n}\n\nexport interface AzureStorageConfiguration {\n accountName: string;\n\n dataContainer: AzureStorageContainerInfo;\n}\n\nexport interface AzureStorageContainerInfo {\n name: string;\n sas: string;\n}\n\nexport interface MailgunConfiguration {\n apiKey: string;\n apiUrl: string;\n fromEmail: string;\n //domain: string;\n //proxyApiUrl: string;\n}\n\n\nexport interface UiConfiguration {\n appName: string;\n}\n","import * as internal from \"assert\";\n\nexport enum UserRightsEnum {\n canSignUpForFixture = 'Can Signup for Fixture',\n canEditFixture = 'Can Edit Fixture',\n canEditUser = 'Can Edit Users',\n canModifyTeam = 'Can Modify Team',\n canEditScore = 'Can Edit Score',\n canEditVenue = 'Can Edit Venue',\n canSendMessage = 'Can Send Message',\n isPaidMember = 'Is Paid Member',\n isHighPriorityGuest = 'High Priority Guest',\n isClubStaff = 'Club Staff',\n}\n\nexport interface UserInfo {\n id: number;\n firstName: string;\n lastName: string;\n email: string;\n password: string;\n phone?: string;\n avatarUrl?: string;\n\n isSuperUser?: boolean;\n}\n\nexport interface User extends UserInfo {\n rights?: {};\n}\n\n//First Name,Last Name,Mobile,Home,Work,E-mail\n\nexport interface MCUser {\n firstName: string;\n lastName: string;\n mobile: string;\n email: string;\n home: string;\n work: string;\n}\n\nexport interface Fixture {\n id: number;\n date: Date;\n opponent: string;\n type: string;\n notes: string;\n venueId: number;\n\n signedUserIdList: number[];\n isTeamFinal: boolean;\n userCanSignUp: boolean;\n\n forPaidMembersOnly: boolean;\n ignoreSignUpDuration: boolean;\n\n teamId: number;\n}\n\nexport interface Team {\n id: number;\n\n selectedUserIdList: number[];\n skipperUserId: number;\n keeperUserId: number;\n\n score: Scorecard;\n}\n\nexport interface Scorecard {\n notes: string;\n}\n\nexport interface Venue {\n id: number;\n title: string;\n address: string;\n venueUrl?: string;\n notes: string;\n}\n\nexport interface EmailTemplate {\n finalTeam: string;\n\n}\n\n\nexport interface WeeklyDigestOptions {\n administrators: boolean;\n paid_members: boolean;\n playing_members: boolean;\n everyone: boolean;\n club_staff: boolean;\n high_priority_guests : boolean;\n include_sign_up_list: boolean;\n}","import { Injectable } from '@angular/core';\n\nimport { ServiceApiHelperService } from '../service-api-helper/service-api-helper.service';\nimport { AppConfig, AppContext, AppVariables, MailgunConfiguration } from './app.config.model';\nimport { AppHelper } from './app-helper.worker';\n//import { AzureStorageBroker } from '../service-api-helper/azure-storage-broker.worker';\nimport { StorageHelper, StorageBrokerObjectEnum } from './cricket-club-storage.helper';\nimport { User, Fixture, Team, Venue, EmailTemplate } from './cricket-club-api.model';\nimport { BlobPlatformApiService } from '../platform-api/blob-platform-api.service';\nimport { TablePlatformApiService } from '../platform-api/table-platform-api.service';\n//import { ObjectType, CricketClubSqlDataApiService } from './cricket-club-sql-data-api.service'\n\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CricketClubApiService {\n config: AppConfig;\n\n constructor(\n// private cc_sql_api: CricketClubSqlDataApiService, \n private table_api: TablePlatformApiService,\n private apiHelper: ServiceApiHelperService,\n private blob_api: BlobPlatformApiService\n )\n {\n }\n\n public readonly tables = {\n fixture: 'Fixture',\n venue: 'Venue',\n app_user: 'AppUser',\n //user_group: 'UserGroup',\n //channel: 'Channel',\n team: 'Team',\n }\n \n public isUserSignedUp(f: Fixture, userId: number): boolean {\n if(f.signedUserIdList==null) { return false; }\n\n const pos = f.signedUserIdList.indexOf(userId);\n return pos>=0;\n }\n\n public async signUpForFixture(f: Fixture, userId: number): Promise {\n if(f.signedUserIdList==null) { f.signedUserIdList = [] };\n\n const pos = f.signedUserIdList.indexOf(userId);\n if(pos>=0) {\n f.signedUserIdList.splice(pos, 1);\n }\n else {\n f.signedUserIdList.push(userId);\n }\n const result = await this.storeFixture(f);\n\n return Promise.resolve(result);\n }\n\n public async getObjectFromUrlAsString(url: string): Promise {\n return await this.apiHelper.getXmlResponseFromUrl(url) as string;\n /*\n const storage = new StorageHelper(this.apiHelper);\n const result = await storage.getObjectByName(AppVariables.emailTemplateConfigName) as EmailTemplate;\n console.log('result', result);\n return Promise.resolve(result);\n */\n }\n\n public async getMailConfiguration(): Promise {\n /*\n const storage = new StorageHelper(this.blob_api);\n const config = await storage.getObjectByName(AppVariables.mailgunConfigurationName) as MailgunConfiguration;\n return Promise.resolve(config);\n */\n\n const json = await this.getObjectFromUrlAsString(AppVariables.mailgunConfigurationName);\n const config = JSON.parse(json) as MailgunConfiguration;\n return Promise.resolve(config);\n\n }\n\n\n fixFixtureProperties(f: Fixture) {\n if(f.signedUserIdList==null) { f.signedUserIdList = []; }\n\n // fix the date issue\n if(f.date==null) {\n f.date = new Date();\n }\n else {\n f.date = new Date(f.date);\n }\n }\n\n public async store_entity(table_name: string, obj: Object) {\n await this.table_api.insertOrReplaceEntity(table_name, obj);\n\n }\n\n public get_all_table_names(): string[] {\n const list: string[] = [];\n for(let key of Object.keys(this.tables)) {\n list.push(this.tables[key]);\n }\n return list;\n }\n\n public async export_all_data_from_blob_to_table() {\n\n const mappings: { target_table: string, src_type: StorageBrokerObjectEnum }[] = [\n { target_table: this.tables.app_user, src_type: StorageBrokerObjectEnum.user },\n { target_table: this.tables.team, src_type: StorageBrokerObjectEnum.team },\n { target_table: this.tables.fixture, src_type: StorageBrokerObjectEnum.fixture },\n { target_table: this.tables.venue, src_type: StorageBrokerObjectEnum.venue },\n ]\n\n const storage = new StorageHelper(this.blob_api);\n for(let map of mappings) {\n console.log('*** fetching', map);\n const objects = await storage.getObjects(map.src_type);\n console.log('exporting', objects);\n const results = this.table_api.insertOrReplace(map.target_table, objects);\n console.log('finished');\n }\n\n }\n\n public async getFixtures(): Promise {\n //let results = await this.cc_sql_api.getAllObjects(ObjectType.fixture) as Fixture[];\n //const storage = new StorageHelper(this.blobApi);\n //let results = await storage.getObjects(StorageBrokerObjectEnum.fixture) as Fixture[];\n //console.log('fixtures', results);\n\n let results = await this.table_api.getEntities(this.tables.fixture);\n\n for(let r of results) {\n this.fixFixtureProperties(r);\n }\n\n // remove old fixtures\n const today = AppHelper.getDateWithoutTime(new Date());\n for(let i=results.length-1; i>=0; i--) {\n const d = AppHelper.getDateWithoutTime(results[i].date);\n if(d < today) {\n results.splice(i, 1);\n }\n }\n\n results = results.sort((a,b) => {\n //return Date.parse(a.toString()).valueOf()>Date.parse(b.toString()).valueOf() ? 1 : -1;\n return a.date>b.date ? 1 : -1;\n });\n\n //console.log('fixtures', results);\n return Promise.resolve(results);\n }\n\n public async getFixture(id: number): Promise {\n //const storage = new StorageHelper(this.blobApi);\n //let result = await storage.getObject(StorageBrokerObjectEnum.fixture, id) as Fixture;\n\n const result = await this.table_api.getEntity(this.tables.fixture, id.toString());\n return Promise.resolve(result);\n }\n\n public async storeFixture(obj: Fixture): Promise {\n //const storage = new StorageHelper(this.blobApi);\n //const result = await storage.storeObject(StorageBrokerObjectEnum.fixture, obj.id, obj) as Fixture;\n\n const result = await this.table_api.insertOrReplaceEntity(this.tables.fixture, obj);\n this.fixFixtureProperties(result);\n return Promise.resolve(result);\n }\n\n public async deleteFixture(id: number): Promise {\n //const storage = new StorageHelper(this.blobApi);\n //const result = await storage.deleteObject(StorageBrokerObjectEnum.fixture, id) as any;\n\n const result = await this.table_api.deleteEntity(this.tables.fixture, id.toString());\n return Promise.resolve(result);\n }\n\n public async getUsers(): Promise {\n //const storage = new StorageHelper(this.blobApi);\n //const results = await storage.getObjects(StorageBrokerObjectEnum.user) as User[];\n\n const results = await this.table_api.getEntities(this.tables.app_user);\n return Promise.resolve(results);\n }\n\n public async getUser(id: number): Promise {\n //const storage = new StorageHelper(this.blobApi);\n //const result = await storage.getObject(StorageBrokerObjectEnum.user, id) as User;\n\n const result = await this.table_api.getEntity(this.tables.app_user, id.toString());\n return Promise.resolve(result);\n }\n\n public async storeUser(obj: User): Promise {\n //const storage = new StorageHelper(this.blobApi);\n //const result = await storage.storeObject(StorageBrokerObjectEnum.user, obj.id, obj) as User;\n\n const result = await this.table_api.insertOrReplaceEntity(this.tables.app_user, obj);\n return Promise.resolve(result);\n }\n\n public async deleteUser(id: number): Promise {\n const result = await this.table_api.deleteEntity(this.tables.app_user, id.toString());\n return Promise.resolve(result);\n }\n\n public async getVenues(): Promise {\n //const storage = new StorageHelper(this.blobApi);\n //let results = await storage.getObjects(StorageBrokerObjectEnum.venue) as Venue[];\n\n let results = await this.table_api.getEntities(this.tables.venue);\n\n results = results.sort((a,b) => {\n return a.title>b.title ? 1 : -1;\n });\n\n return Promise.resolve(results);\n }\n\n public async getVenue(id: number): Promise {\n //const storage = new StorageHelper(this.blobApi);\n //const result = await storage.getObject(StorageBrokerObjectEnum.venue, id) as Venue;\n\n const result = await this.table_api.getEntity(this.tables.venue, id.toString());\n return Promise.resolve(result);\n }\n\n public async storeVenue(obj: Venue): Promise {\n //const storage = new StorageHelper(this.blobApi);\n //const result = await storage.storeObject(StorageBrokerObjectEnum.venue, obj.id, obj) as Venue;\n\n const result = await this.table_api.insertOrReplaceEntity(this.tables.venue, obj);\n return Promise.resolve(result);\n }\n\n public async getTeams(): Promise {\n //const storage = new StorageHelper(this.blobApi);\n //let results = await storage.getObjects(StorageBrokerObjectEnum.team) as Team[];\n\n const results = await this.table_api.getEntities(this.tables.team);\n return Promise.resolve(results);\n }\n\n public async getTeam(id: number): Promise {\n //const storage = new StorageHelper(this.blobApi);\n //const result = await storage.getObject(StorageBrokerObjectEnum.team, id) as Team;\n\n const result = await this.table_api.getEntity(this.tables.team, id.toString());\n return Promise.resolve(result);\n }\n\n public async storeTeam(obj: Team): Promise {\n //const storage = new StorageHelper(this.blobApi);\n //const result = await storage.storeObject(StorageBrokerObjectEnum.team, obj.id, obj) as Team;\n\n const result = await this.table_api.insertOrReplaceEntity(this.tables.team, obj);\n return Promise.resolve(result);\n }\n\n\n\n}\n","import { AppConfig, AppContext, AppVariables } from './app.config.model';\nimport { AzureStorageBroker, AzureStorageBrokerContext, AzureBlobItemMetadata } from '../service-api-helper/azure-storage-broker.worker';\n//import { ServiceApiHelperService } from '../service-api-helper/service-api-helper.service';\nimport { BlobPlatformApiService } from '../platform-api/blob-platform-api.service';\n\n\nexport enum StorageBrokerObjectEnum {\n user = 'user',\n fixture = 'fixture',\n team = 'team',\n venue = 'venue',\n}\n\nexport class StorageHelper {\n //readonly apiHelper: ServiceApiHelperService;\n readonly blobApi: BlobPlatformApiService;\n autoStoreMetadata = false;\n\n constructor(blobApi: BlobPlatformApiService, autoStoreMetadata?: boolean) {\n //this.apiHelper = apiHelper;\n this.blobApi = blobApi;\n this.autoStoreMetadata = autoStoreMetadata!=null ? autoStoreMetadata : false;\n }\n\n async getStorageBroker(): Promise {\n //const config = await this.getAppConfiguration();\n const context: AzureStorageBrokerContext = {\n //accountName: config.storage.accountName,\n //container: config.storage.dataContainer,\n //apiHelper: this.apiHelper,\n blobApi: this.blobApi\n };\n const storage = AzureStorageBroker.create(context);\n //console.log('storage', storage);\n\n return Promise.resolve(storage);\n }\n\n \n private async getInfoObjects(type: StorageBrokerObjectEnum): Promise\n {\n const typeName = type.toString()\n const storage = await this.getStorageBroker();\n const objects = await storage.getObjects(typeName);\n //console.log('objects', objects);\n\n const list = [];\n for(let obj of objects) {\n if(obj.metadata!=null) {\n const item = {};\n for(let m of obj.metadata) {\n item[m.key] = m.value;\n }\n list.push(item);\n }\n }\n\n return Promise.resolve(list);\n }\n\n public async getObjects(type: StorageBrokerObjectEnum): Promise\n {\n const typeName = type.toString()\n const storage = await this.getStorageBroker();\n const objects = await storage.getObjects(typeName);\n\n const list = [];\n for(let obj of objects) {\n list.push(await storage.getObject(typeName, obj.id));\n }\n\n return Promise.resolve(list);\n }\n\n public async getObject(type: StorageBrokerObjectEnum, id: number): Promise\n {\n const typeName = type.toString()\n const storage = await this.getStorageBroker();\n const result = await storage.getObject(typeName, id);\n return Promise.resolve(result);\n }\n\n getNewObjectId(): number {\n return new Date().valueOf();\n }\n\n public async storeObject(type: StorageBrokerObjectEnum, id: number, data: Object): Promise\n {\n if(id==null || id==0) {\n id = this.getNewObjectId();\n data['id'] = id;\n }\n const metadata = this.autoStoreMetadata? this.createMetadata(data) : null;\n //console.log('metadata', metadata);\n\n const typeName = type.toString();\n const storage = await this.getStorageBroker();\n\n const result = await storage.storeObject(typeName, id, data, metadata);\n return Promise.resolve(result);\n }\n\n public async deleteObject(type: StorageBrokerObjectEnum, id: number): Promise\n {\n const typeName = type.toString()\n const storage = await this.getStorageBroker();\n const result = await storage.deleteObject(typeName, id);\n return Promise.resolve(result);\n }\n\n //async getAppConfiguration(): Promise {\n // if(AppContext.appConfig==null) {\n // const url = AppVariables.configurationUrl;\n // AppContext.appConfig = await this.apiHelper.getObjectFromUrl(url) as AppConfig;\n // }\n\n // return Promise.resolve(AppContext.appConfig);\n //}\n\n public async getObjectByName(name: string): Promise {\n const storage = await this.getStorageBroker();\n const result = await storage.getObjectByName(name);\n return Promise.resolve(result);\n }\n\n\n createMetadata(item: object, fields?: string[]): AzureBlobItemMetadata[] {\n const list: AzureBlobItemMetadata[] = [];\n if(fields==null) {\n fields = Object.keys(item);\n }\n for(let f of fields) {\n const v = item[f];\n if(typeof v !== 'object' && v !== null) {\n list.push({key: f, value: v});\n }\n }\n\n return list;\n }\n\n\n}\n","\r\nimport { AppVariables } from './app.config.model';\r\nimport { AppHelper } from './app-helper.worker';\r\nimport { CricketClubApiService } from './cricket-club-api.service';\r\nimport { Fixture, Team, User, UserRightsEnum, WeeklyDigestOptions } from './cricket-club-api.model';\r\nimport { Message, MailgunApiService } from '../mailgun-api/mailgun-api.service';\r\nimport { AuthenticationService } from '../../services/authentication-api/authentication-api.service';\r\n\r\nexport class NotificationHelper {\r\n private readonly cricketApi: CricketClubApiService;\r\n private readonly mailApi: MailgunApiService;\r\n private readonly auth_api: AuthenticationService;\r\n\r\n constructor(cricketApi: CricketClubApiService, mailApi: MailgunApiService, auth_api: AuthenticationService) {\r\n this.cricketApi = cricketApi;\r\n this.mailApi = mailApi;\r\n this.auth_api = auth_api;\r\n }\r\n\r\n public async sendWeekdlyDigestEmail(sender: User, options: WeeklyDigestOptions) {\r\n const venues = await this.cricketApi.getVenues();\r\n const users = await this.cricketApi.getUsers();\r\n\r\n let count = 0;\r\n let html = ''; // '';\r\n const fixtures = await this.cricketApi.getFixtures();\r\n for(let f of fixtures) {\r\n count++;\r\n const v = venues.filter(venue => venue.id==f.venueId)[0];\r\n\r\n //html += '';\r\n }\r\n //html += '
';\r\n html += '

' + count + ') ' + f.opponent + '
' +\r\n '@ ' + v.title + '
' +\r\n 'on ' + AppHelper.formatDateToString(f.date) + '

';\r\n\r\n if(f.notes!=null && f.notes.length>0) {\r\n html += 'Notes: ' + f.notes;\r\n }\r\n\r\n if(f.isTeamFinal) {\r\n html += '

Team for this fixture has been announced. For any changes or requests, please reach out to the skipper(s) directly.

';\r\n\r\n html += '

Team

';\r\n html += '
    '\r\n const team = await this.cricketApi.getTeam(f.teamId);\r\n const players = users.filter(u => team.selectedUserIdList.indexOf(u.id)>=0)\r\n .sort((a, b) => a.firstName + a.lastName > b.firstName + b.lastName ? 1 : -1);\r\n \r\n for(let u of players) {\r\n //const u = users.filter(user => user.id == uId)[0];\r\n\r\n html += ('
  1. ' + u.firstName + ' ' + u.lastName);\r\n if(team.keeperUserId == u.id && team.skipperUserId==u.id) {\r\n html += ' (Captain, Wicket Keeper)'; }\r\n else if(team.keeperUserId==u.id) {\r\n html += ' (Wicket Keeper)'; }\r\n else if (team.skipperUserId==u.id) {\r\n html+= ' (Captain)'; }\r\n\r\n html += '
  2. ';\r\n }\r\n html += '
'\r\n }\r\n else {\r\n if(options.include_sign_up_list==true) {\r\n if(f.signedUserIdList.length==0) {\r\n html += '

Sign Ups: No one has signed up for this fixture yet.

';\r\n }\r\n else {\r\n html += '

Sign Ups:

    ';\r\n \r\n const players = users.filter(u => f.signedUserIdList.indexOf(u.id)>=0)\r\n .sort((a, b) => a.firstName + a.lastName > b.firstName + b.lastName ? 1 : -1);\r\n \r\n for(let u of players) {\r\n html += ('
  1. ' + u.firstName + ' ' + u.lastName + '
  2. ');\r\n }\r\n html += '
'\r\n }\r\n }\r\n }\r\n //html += '
';\r\n\r\n console.log(options);\r\n //console.log(users);\r\n const user_list = users.filter(u =>\r\n (options.everyone==true) ||\r\n (options.administrators==true && this.auth_api.user_right_exists(u, UserRightsEnum.canEditFixture)) ||\r\n (options.paid_members==true && this.auth_api.user_right_exists(u, UserRightsEnum.isPaidMember)) || \r\n (options.club_staff==true && this.auth_api.user_right_exists(u, UserRightsEnum.isClubStaff)) || \r\n (options.high_priority_guests==true && this.auth_api.user_right_exists(u, UserRightsEnum.isHighPriorityGuest)) || \r\n (options.playing_members==true && this.auth_api.user_right_exists(u, UserRightsEnum.canSignUpForFixture))\r\n );\r\n if(user_list.length==0) {\r\n user_list.push(this.auth_api.getCurrentUser());\r\n }\r\n\r\n const bccList = [] as string[];\r\n for(let u of user_list) {\r\n bccList.push(u.email);\r\n }\r\n\r\n console.log('bccList', bccList);\r\n\r\n let htmlBody = await this.cricketApi.getObjectFromUrlAsString(AppVariables.email_Weekly_Digest_TemplateName);\r\n htmlBody = AppHelper.replaceAll(htmlBody, '{{club_name}}', AppVariables.clubShortName);\r\n htmlBody = AppHelper.replaceAll(htmlBody, '{{club_url}}', AppVariables.clubUrl);\r\n htmlBody = AppHelper.replaceAll(htmlBody, '{{club_contact_name}}', sender.firstName + ' ' + sender.lastName);\r\n htmlBody = AppHelper.replaceAll(htmlBody, '{{club_contact_email}}', sender.email);\r\n htmlBody = AppHelper.replaceAll(htmlBody, '{{weekly_digest_content}}', html);\r\n htmlBody = AppHelper.replaceAll(htmlBody, '{{senderName}}', sender.firstName + ' ' + sender.lastName);\r\n\r\n const m: Message = {\r\n subject: AppVariables.clubFullName + ': Fixtures and signups update',\r\n toList: [ sender.email ],\r\n bccList: bccList,\r\n fromEmail: sender.email,\r\n htmlBody: htmlBody\r\n };\r\n\r\n console.log('m', m);\r\n await this.mailApi.sendMessage(m);\r\n\r\n }\r\n\r\n public async sendFinalTeamEmail(fixture: Fixture, team: Team, sender: User) {\r\n\r\n let players: User[] = [];\r\n for(let userId of team.selectedUserIdList) {\r\n players.push(await this.cricketApi.getUser(userId));\r\n }\r\n players = players.sort((a,b) => {\r\n return (a.firstName + ' ' + a.lastName) < (b.firstName + ' ' + b.lastName) ?\r\n -1 : 1\r\n });\r\n\r\n let playerList = '';\r\n\r\n const toList: string[] = [];\r\n for(let u of players) {\r\n toList.push(u.email);\r\n\r\n let str = ('
  • ' + u.firstName + ' ' + u.lastName);\r\n if(team.keeperUserId == u.id && team.skipperUserId==u.id) {\r\n str += ' (Captain, Wicket Keeper)'; }\r\n else if(team.keeperUserId==u.id) {\r\n str += ' (Wicket Keeper)'; }\r\n else if (team.skipperUserId==u.id) {\r\n str+= ' (Captain)'; }\r\n\r\n playerList += str;\r\n }\r\n\r\n let htmlBody = await this.cricketApi.getObjectFromUrlAsString(AppVariables.email_Final_Team_TemplateName);\r\n htmlBody = htmlBody.replace('{{clubName}}', AppVariables.clubShortName);\r\n htmlBody = htmlBody.replace('{{opponentName}}', fixture.opponent);\r\n htmlBody = htmlBody.replace('{{fixtureDate}}', AppHelper.formatDateToString(fixture.date));\r\n\r\n\r\n const v = await this.cricketApi.getVenue(fixture.venueId);\r\n const venueName = v!=null? v.title : 'Unspecified venue';\r\n const venueAddress = v!=null ? v.address : 'Unspecified venue address';\r\n\r\n htmlBody = htmlBody.replace('{{venueName}}', venueName);\r\n htmlBody = htmlBody.replace('{{venueAddress}}', venueAddress);\r\n//formatDateToTimeString\r\n htmlBody = htmlBody.replace('{{playerList}}', playerList);\r\n htmlBody = htmlBody.replace('{{senderName}}', sender.firstName + ' ' + sender.lastName);\r\n\r\n const m: Message = {\r\n subject: 'Team for ' + fixture.opponent + ' has been announced',\r\n toList: toList,\r\n fromEmail: sender.email,\r\n htmlBody: htmlBody\r\n };\r\n\r\n console.log('m', m);\r\n\r\n await this.mailApi.sendMessage(m);\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport * as FormData from 'form-data';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\nimport { CricketClubApiService } from '../cricket-club-api/cricket-club-api.service';\r\nimport { ServiceApiHelperService } from '../service-api-helper/service-api-helper.service';\r\nimport { HttpProxyApiHelper } from '../service-api-helper/http-proxy-api-helper.worker';\r\n\r\nexport interface Message {\r\n subject: string;\r\n htmlBody: string;\r\n fromEmail?: string;\r\n\r\n toList: string[];\r\n ccList?: string[];\r\n bccList?: string[];\r\n}\r\n\r\nexport interface MailgunApiResponse {\r\n id: string;\r\n message: string;\r\n}\r\n\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MailgunApiService {\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private cricketApi: CricketClubApiService,\r\n private apiHelper: ServiceApiHelperService,\r\n\r\n ) { }\r\n\r\n public async sendMessage(m: Message) {\r\n const config = await this.cricketApi.getMailConfiguration();\r\n\r\n const body = new FormData();\r\n body.append('from', config.fromEmail);\r\n for(let to of m.toList) {\r\n body.append('to', to);\r\n }\r\n if(m.ccList!=null) {\r\n for(let cc of m.ccList) {\r\n body.append('cc', cc);\r\n }\r\n } \r\n if(m.bccList!=null) {\r\n for(let bcc of m.bccList) {\r\n body.append('bcc', bcc);\r\n } \r\n }\r\n body.append('subject', m.subject);\r\n body.append('html', m.htmlBody);\r\n\r\n for(let [key, value] of (body as any).entries()) {\r\n console.log(key, value)\r\n }\r\n\r\n return this.http.post(`${config.apiUrl}`, body, {\r\n headers: {\r\n Authorization: `Basic ${btoa(`api:${config.apiKey}`)}`\r\n }\r\n }).subscribe(\r\n result => {\r\n console.log('result', result)\r\n },\r\n error => {\r\n console.log('error: ', error);\r\n }\r\n );\r\n }\r\n\r\n /*\r\n public async sendMessage_(m: Message): Promise {\r\n const config = await this.cricketApi.getMailConfiguration();\r\n\r\n let headers = new HttpHeaders();\r\n const authHeader = 'Basic ' + window.btoa('api:' + config.apiKey);\r\n //console.log('authHeader', authHeader);\r\n headers = headers.set('Authorization', authHeader);\r\n\r\n let url = config.apiUrl.replace('{domain}', config.domain);\r\n\r\n //const fromEmail = m.fromEmail != null ? m.fromEmail : config.fromEmail;\r\n const fromEmail = config.fromEmail;\r\n\r\n url += '?from=' + encodeURI(fromEmail);\r\n\r\n for(let to of m.toList) {\r\n url += '&to=' + encodeURI(to);\r\n }\r\n if(m.ccList!=null) {\r\n for(let cc of m.ccList) {\r\n url += '&cc=' + encodeURI(cc);\r\n }\r\n }\r\n if(m.bccList!=null) {\r\n for(let bcc of m.bccList) {\r\n url += '&bcc=' + encodeURI(bcc);\r\n }\r\n }\r\n\r\n url += '&subject=' + encodeURI(m.subject);\r\n url += '&html=' + encodeURI(m.htmlBody);\r\n\r\n console.log('config', config);\r\n\r\n const proxyApi = new HttpProxyApiHelper(config.proxyApiUrl, this.apiHelper, {\r\n scheme: 'Basic',\r\n parameter: window.btoa('api:' + config.apiKey)\r\n });\r\n\r\n const result = await proxyApi.postObjectToUrl(url, '', 'application/json') as MailgunApiResponse;\r\n console.log('result', result, 'url', url, 'auth', authHeader);\r\n return Promise.resolve(result);\r\n\r\n //header: Authorization Basic api: and encode it\r\n//https://api.mailgun.net/v3/mail.purplepeace.app/messages?from=shariq@shariqkhan.com&to=shariq.khan@dell.com&subject=Test Postman message&html=data\r\n }\r\n */\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\nimport { HttpHeaders } from '@angular/common/http';\n\nimport { ServiceApiHelperService } from '../service-api-helper/service-api-helper.service';\nimport { PlatformConfigurationApiService } from './platform-configuration-api.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BlobPlatformApiService {\n\n readonly blobUri: string;\n readonly default_resourceType = 'container';\n\n constructor(\n private config: PlatformConfigurationApiService,\n private http: ServiceApiHelperService\n ) {\n\n this.blobUri = this.config.platformUri + '/blobs';\n\n }\n\n getRequestHeaders(): HttpHeaders {\n const obj = {};\n obj[this.config.key_platform_appId] = this.config.appId;\n obj[this.config.key_platform_storageId] = this.config.storageId;\n\n const authHeader = 'Basic ' + window.btoa(JSON.stringify(obj));\n\n let headers = new HttpHeaders()\n .set('Authorization', authHeader);\n\n return headers;\n }\n\n public async getBlob(blobName: string): Promise {\n const url = this.blobUri + \"/\" + blobName;\n const headers = this.getRequestHeaders();\n\n const result = await this.http.getObjectFromUrlWithHeaders(url, headers);\n //console.log('result', result);\n return Promise.resolve(result);\n }\n\n public async getBlobByPathName(blobPathName: string): Promise {\n const url = this.blobUri + \"/getBlobByPathName?blobPathName=\" + blobPathName;\n //console.log('getting', url);\n const headers = this.getRequestHeaders();\n\n const result = await this.http.getObjectFromUrlWithHeaders(url, headers);\n //console.log('result', result);\n return Promise.resolve(result);\n }\n\n public async list(prefix?: string, resourceType?: string, includeMetadata?: boolean, maxResults?: number): Promise {\n if(prefix==null) { prefix = ''; }\n if(resourceType==null) { resourceType = this.default_resourceType; }\n if(includeMetadata==null) { includeMetadata = true; }\n if(maxResults==null) { maxResults = 5000; }\n\n const url = this.blobUri + '/query?' +\n 'comp=list&prefix=' + prefix +\n '&restype=' + resourceType +\n (includeMetadata==true ? '&include=metadata' : '') +\n '&maxresults=' + maxResults;\n\n //console.log('url', url);\n const headers = this.getRequestHeaders();\n\n const result = this.http.getXmlResponseFromUrl(url, headers);\n return Promise.resolve(result);\n }\n\n\n public async deleteBlob(blobName: string): Promise\n {\n const headers = this.getRequestHeaders();\n\n const url = this.blobUri + \"/delete?name=\" + blobName;\n const result = await this.http.deleteObjectAtUrlWithHeaders(url, headers);\n return Promise.resolve(result);\n }\n\n public async getBlobUrl(blobName: string):Promise {\n try {\n const headers = this.getRequestHeaders();\n\n const url = this.blobUri + \"/getBlobUrl?name=\" + blobName;\n const result = await this.http.getObjectFromUrlWithHeaders(url, headers) as {url: string};\n return Promise.resolve(result.url);\n }\n catch(err) {\n return Promise.reject(err);\n }\n }\n\n public async storeBlob(blobName: string, data: object, metadata?: AzureBlobItemMetadata[], contentType?: string): Promise\n {\n if(contentType==null) { 'application/json' };\n\n let headers = this.getRequestHeaders();\n\n if(metadata!=null && metadata.length>0) {\n for(let m of metadata) {\n headers = headers.append('x-ms-meta-' + m.key.toString(), m.value.toString());\n }\n }\n //console.log('storeBlob.headers', headers);\n\n try {\n const url = this.blobUri + \"/store?name=\" + blobName;\n await this.http.postObjectToUrlWithHeaders(url, data, headers, false);\n return Promise.resolve(data);\n }\n catch(err) {\n return Promise.reject(err);\n }\n }\n\n}\n\n\nexport interface AzureBlobItemMetadata {\n key: string;\n value: string;\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlatformConfigurationApiService {\n\n public readonly appId: string;\n public readonly platformUri: string;\n public readonly storageId: string;\n\n public readonly key_platform_storageId = 'blobStorageId';\n public readonly key_platform_appId = 'appId';\n\n constructor() {\n this.appId = \"1621569600000\";\n\n //this.platformUri = 'https://api.dig-ix.com/api';\n //this.platformUri = 'https://localhost:44319/api';\n //this.platformUri = 'https://localhost:5001/api';\n this.platformUri = 'https://com-shariqkhan-platform-api-service.azurewebsites.net/api'\n\n this.storageId = '1621569600010';\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpHeaders } from '@angular/common/http';\n\nimport { ServiceApiHelperService } from '../service-api-helper/service-api-helper.service';\nimport { PlatformConfigurationApiService } from './platform-configuration-api.service';\nimport { AppHelper } from '../cricket-club-api/app-helper.worker';\n\nexport interface TableQueryResult {\n value: TableEntity[];\n}\n\nexport interface TableEntity {\n PartitionKey?: string;\n RowKey?: string;\n Timestamp?: Date;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TablePlatformApiService {\n\n readonly tableUri: string;\n\n private readonly field_id = 'id';\n private readonly field_row_key = 'RowKey';\n private readonly field_partition_key = 'PartitionKey';\n\n constructor(\n private config: PlatformConfigurationApiService,\n private http: ServiceApiHelperService\n ) {\n\n this.tableUri = this.config.platformUri + '/tables';\n }\n\n private getRequestHeaders(): HttpHeaders {\n const obj = {};\n obj[this.config.key_platform_appId] = this.config.appId;\n obj[this.config.key_platform_storageId] = this.config.storageId;\n\n const authHeader = 'Basic ' + window.btoa(JSON.stringify(obj));\n\n const headers = new HttpHeaders()\n .set('Content-Type', 'application/json')\n .set('Accept', 'application/json')\n .set('Authorization', authHeader);\n\n return headers;\n }\n\n public async deleteEntity(tableName: string, rowKey: string): Promise {\n const headers = this.getRequestHeaders();\n\n const url = this.tableUri + \"/delete?tableName=\" + tableName + '&partitionKey=' + tableName + '&rowKey=' + rowKey;\n const result = await this.http.deleteObjectAtUrlWithHeaders(url, headers);\n //console.log('result', result);\n return Promise.resolve(result);\n }\n\n public async insertOrReplaceEntity(tableName: string, item: T): Promise {\n const results = await this.insertOrReplace(tableName, [item]);\n if(results.length>0) {\n return Promise.resolve(results[0]);\n } else {\n return Promise.resolve(null);\n }\n }\n\n\n public async insertOrReplace(tableName: string, objects: T[]): Promise\n {\n const headers = this.getRequestHeaders();\n\n try {\n const url = this.tableUri + \"/store?tableName=\" + tableName;\n\n const entities = JSON.parse(JSON.stringify(objects));\n\n for(let entity of entities) {\n if(entity[this.field_id]==null) { entity[this.field_id] = AppHelper.getNewId(); }\n if(entity[this.field_partition_key]==null) { entity[this.field_partition_key] = tableName; }\n if(entity[this.field_row_key]==null) { entity[this.field_row_key] = entity[this.field_id].toString(); }\n\n const keys = Object.keys(entity);\n\n for(let k of keys) {\n const v = entity[k];\n if(typeof v == 'object' && v != null && (!(v instanceof Date))) {\n entity[k + this.const_json_type] = 'json';\n }\n }\n\n this.removeNullValues(entity);\n }\n\n //console.log('entities', entities);\n\n await this.http.postObjectToUrlWithHeaders(url, entities, headers, false);\n return Promise.resolve(entities);\n }\n catch(err) {\n return Promise.reject(err);\n }\n }\n\n public async getEntity(tableName: string, rowKey: string): Promise {\n var query = { RowKey: rowKey };\n var results = await this.query(tableName, query);\n\n if(results.length>0) {\n return Promise.resolve(results[0] as T);\n }\n else {\n return Promise.resolve(null);\n }\n }\n\n public async getEntities(tableName: string): Promise {\n const results = await this.query(tableName, {});\n return Promise.resolve(results as T[]);\n\n }\n\n private readonly const_odata_type = '@odata.type';\n private readonly const_json_type = '___data_type';\n private readonly const_json_type_value = 'json';\n\n public async query(tableName: string, query: object): Promise\n {\n const headers = this.getRequestHeaders();\n\n try {\n const url = this.tableUri + \"/query2?tableName=\" + tableName;\n const json = await this.http.postObjectToUrlWithHeaders(url, query, headers, false) as string;\n //console.log('json', json);\n const query_results = JSON.parse(json) as TableQueryResult[];\n //console.log('query_results', query_results);\n\n let results: TableEntity[] = [];\n for(let qr of query_results) {\n results = results.concat(qr.value);\n }\n\n for(var e of results) {\n const keys = Object.keys(e);\n //console.log('keys', keys);\n\n for(let k of keys) {\n let typeInfo = e[k + this.const_odata_type] as string;\n if(e[k]!=null && typeInfo!=null) {\n if(typeInfo.endsWith('.Int64')) {\n e[k] = parseInt(e[k]);\n }\n else if(typeInfo.endsWith('.DateTime')) {\n e[k] = new Date(Date.parse(e[k].toString()));\n }\n }\n\n if(e[k]!=null && e[k + this.const_json_type]==this.const_json_type_value) {\n e[k] = JSON.parse(e[k]);\n delete e[k + this.const_json_type];\n }\n }\n\n e.Timestamp = new Date(Date.parse(e.Timestamp.toString()));\n\n for(let k of keys) {\n if(k.endsWith(this.const_odata_type)) {\n delete e[k];\n }\n }\n delete e['odata.etag'];\n\n }\n\n //console.log(tableName, results);\n\n return Promise.resolve(results);\n }\n catch(err) {\n return Promise.reject(err);\n }\n\n }\n\n removeNullValues(obj: object) {\n //console.log('Removing null values', obj);\n\n for(let key of Object.keys(obj))\n if (key.startsWith('$') || obj[key] == null) {\n //console.log('removing key', key);\n delete obj[key];\n }\n else if (obj[key] && typeof obj[key] === 'object') {\n this.removeNullValues(obj[key]);\n }\n\n }\n \n\n}\n","//import { HttpHeaders } from '@angular/common/http';\n\n//import { ServiceApiHelperService } from './service-api-helper.service';\nimport { Debug } from './service-api-debug-log';\nimport { XmlDomHelper } from './service-api-xml-dom-helper.worker'\nimport { BlobPlatformApiService } from '../platform-api/blob-platform-api.service';\n\nexport interface AzureStorageContainer {\n name: string;\n sas: string;\n}\n\n\nexport interface AzureBlobItemMetadata {\n key: string;\n value: string;\n}\n\nexport interface AzureBlobItem {\n id: number;\n name: string;\n lastModified: string;\n //secureUrl: string;\n\n metadata: AzureBlobItemMetadata[];\n}\n\nexport interface AzureStorageBrokerContext {\n //accountName: string;\n //container: AzureStorageContainer;\n //apiHelper: ServiceApiHelperService;\n blobApi: BlobPlatformApiService;\n}\n\nexport class AzureStorageBroker {\n //blobUri: string;\n //apiHelper: ServiceApiHelperService;\n //container: AzureStorageContainer;\n blobApi: BlobPlatformApiService;\n\n public static create(context: AzureStorageBrokerContext): AzureStorageBroker {\n const obj = new AzureStorageBroker();\n //obj.blobUri = 'https://' + context.accountName + '.blob.core.windows.net';\n //obj.container = context.container;\n //obj.apiHelper = context.apiHelper;\n obj.blobApi = context.blobApi;\n\n return obj;\n }\n\n getObjectPrefix(type: string): string {\n return type + \"-\";\n }\n\n getObjectName(type: string, id: number): string {\n return this.getObjectPrefix(type) + id.toString() + '.json';\n }\n\n getObjectIdFromName(type: string, name: string): number {\n const prefix = this.getObjectPrefix(type);\n name = name.replace(prefix, '');\n name = name.replace('.json', '');\n return parseInt(name);\n }\n\n public async getObjects(type: string): Promise\n {\n const prefix = this.getObjectPrefix(type);\n //const maxResults = 1000;\n //const url = this.blobUri + '/' + this.container.name + this.container.sas +\n // '&comp=list&prefix=' + prefix + '&restype=container&include=metadata&maxresults'+maxResults;\n\n try {\n //const result = await this.apiHelper.getXmlResponseFromUrl(url);\n const result = await this.blobApi.list(prefix);\n\n const items = this.parseXmlToBlobItems(type, result);\n return Promise.resolve(items);\n }\n catch(err) {\n Debug.logO('getObjects: type=' + type, err);\n return Promise.reject(err);\n\n }\n }\n\n public async getObjectByName(name: string): Promise {\n //const url = this.generateSecureUrlForBlob(name, this.container);\n //const result = await this.apiHelper.getObjectFromUrl(url);\n const result = await this.blobApi.getBlob(name);\n\n return Promise.resolve(result);\n }\n\n public async getObject(type: string, id: number): Promise\n {\n const name = this.getObjectName(type, id);\n const obj = await this.getObjectByName(name);\n return Promise.resolve(obj);\n }\n\n public async storeObject(type: string, id: number, data: object, metadata?: AzureBlobItemMetadata[], contentType?: string): Promise\n {\n const name = this.getObjectName(type, id);\n\n const result = this.blobApi.storeBlob(name, data, metadata, contentType);\n return Promise.resolve(result);\n\n /*\n const url = this.generateSecureUrlForBlob(name, this.container);\n if(contentType==null) {\n contentType = 'application/json';\n }\n\n let headers = new HttpHeaders();\n headers = headers.set('Content-Type', contentType);\n headers = headers.set('x-ms-blob-type', 'BlockBlob')\n //headers = headers.set('x-ms-meta-dude', 'shariq');\n\n if(metadata!=null && metadata.length>0) {\n for(let m of metadata) {\n headers = headers.append('x-ms-meta-' + m.key.toString(), m.value.toString());\n }\n }\n //console.log('headers', headers);\n\n try {\n const result = await this.apiHelper.putObjectAtUrl(url, data, headers, true);\n //console.log('result', result);\n\n const items = this.parseXmlToBlobItems(type, result, this.container);\n if(items.length>0) {\n return Promise.resolve(items[0]);\n }\n else {\n return Promise.resolve(data);\n }\n }\n catch(err) {\n Debug.logO('storeObject', err);\n return Promise.reject(err);\n }\n */\n }\n\n public async deleteObject(type: string, id: number): Promise\n {\n const name = this.getObjectName(type, id);\n const result = await this.blobApi.deleteBlob(name);\n return Promise.resolve(result);\n\n /*\n const url = this.generateSecureUrlForBlob(name, this.container);\n const result = await this.apiHelper.deleteObjectAtUrl(url);\n return Promise.resolve(result);\n */\n }\n\n\n\n //generateSecureUrlForBlob(blobName: string, container: AzureStorageContainer): string {\n // return this.blobUri + '/' + container.name + '/' + blobName + container.sas;\n //}\n\n\n parseXmlToBlobItems(type: string, xml: string) : AzureBlobItem[] {\n //console.log('parsing', xml);\n const parser = new DOMParser();\n const doc = parser.parseFromString(xml, 'text/xml');\n const dom = new XmlDomHelper();\n const blobs = doc.getElementsByTagName('Blob');\n //console.log('blobs', blobs);\n const items: AzureBlobItem[] = [];\n\n for(let i=0; i0) {\n item.metadata = [];\n\n for(let m=0; m {\n return new Promise((resolve, reject) => {\n this.storage.remove(key).then(() => {\n resolve(true);\n }, error => {\n reject(error);\n });\n });\n}\n\npublic saveObjectToStore(key: string, obj: object): Promise {\n return new Promise((resolve, reject) => {\n var data = (obj==null) ? '' : JSON.stringify(obj);\n this.storage.set(key, data)\n .then((result) => {\n resolve(result);\n }, error => { console.log('saveObjectToStore', error); reject(error); });\n });\n }\n\npublic loadObjectFromStore(key: string): Promise {\n //console.log('loadObjectFromStore(\"' + key + '\")', key);\n return new Promise((resolve, reject) => {\n this.storage.get(key)\n .then((json) => {\n if(json == null || json=='') {\n resolve(null);\n }\n else {\n let result = JSON.parse(json);\n //console.log('result', result);\n resolve(result);\n }\n }, error => { console.log('loadObjectFromStore', error); reject(error); });\n });\n }\n\npublic getXmlResponseFromUrl(url: string, request_headers?: HttpHeaders) : Promise {\n let ctx = this;\n\n return new Promise(function(resolve, reject) {\n //console.log('getting xml response from', url);\n let headers = new HttpHeaders();\n if(request_headers!=null) {\n for(let key of request_headers.keys()) {\n headers = headers.set(key, request_headers.get(key));\n }\n }\n ctx.http.get(url, { headers: headers, responseType: 'text'})\n .subscribe(\n result => {\n resolve(result);\n },\n error => {\n console.log('error: ', error);\n reject(error)\n }\n );\n });\n\n}\n\npublic getObjectFromUrlWithHeaders(url: string, headers: HttpHeaders) : Promise {\n const ctx = this;\n\n return new Promise(function(resolve, reject) {\n //console.log('getting', url);\n ctx.http.get(url, {headers: headers})\n .subscribe(\n result => {\n resolve(result);\n },\n error => {\n console.log('error: ', error);\n reject(error)\n }\n );\n });\n\n }\n\n public deleteObjectAtUrl(url: string, isResponseTypeText?: boolean): Promise {\n const ctx = this;\n\n let options;\n if(isResponseTypeText==true) {\n options = { headers: new HttpHeaders(), responseType: 'text'};\n }\n else {\n options = { headers: new HttpHeaders() };\n }\n\n return new Promise(function(resolve, reject) {\n ctx.http.delete(url, options)\n .subscribe(\n result => {\n resolve(result);\n },\n error => {\n //console.log('error', error);\n reject(error)\n }\n );\n });\n }\n\n public deleteObjectAtUrlWithHeaders(url: string, headers: HttpHeaders): Promise\n {\n const ctx = this;\n\n return new Promise(function(resolve, reject) {\n ctx.http.delete(url, {headers: headers})\n .subscribe(\n result => {\n resolve(result);\n },\n error => {\n //console.log('error', error);\n reject(error)\n }\n );\n });\n }\n\n\n public getObjectFromUrl(url: string) : Promise {\n let ctx = this;\n\n return new Promise(function(resolve, reject) {\n //console.log('getting', url);\n ctx.http.get(url)\n .subscribe(\n result => {\n resolve(result);\n },\n error => {\n console.log('error: ', error, '=> for url: ', url);\n reject(error)\n }\n );\n });\n\n }\n\n public postObjectToUrlWithHeaders(url: string, data: object, headers: HttpHeaders, isResponseTypeText: boolean) : Promise {\n let ctx = this;\n\n return new Promise(function(resolve, reject) {\n //console.log('posting to', url, 'data', data);\n const body = data!=null ? JSON.stringify(data) : '';\n\n const options = ctx.createHttpOptions(headers, isResponseTypeText);\n\n ctx.http.post(url, body, options)\n .subscribe(\n result => {\n resolve(result);\n },\n error => {\n console.log('error: ', error);\n reject(error)\n }\n );\n });\n\n }\n\n\n public postObjectToUrl(url: string, data: object) : Promise {\n let ctx = this;\n\n return new Promise(function(resolve, reject) {\n //console.log('posting to', url, 'data', data);\n const body = data!=null ? JSON.stringify(data) : '';\n\n\n ctx.http.post(url, body)\n .subscribe(\n result => {\n resolve(result);\n },\n error => {\n console.log('error: ', error);\n reject(error)\n }\n );\n });\n\n }\n\n stringifyObject(data: object): string {\n //console.log('in stringifyObject');\n if(data==null) {\n return '';\n }\n else {\n if (typeof data === 'string') {\n //console.log('data is string');\n return data as string;\n }\n else if(data instanceof String) {\n //console.log('data is string object');\n return data.toString();\n }\n else {\n //console.log('data is object');\n return JSON.stringify(data);\n }\n }\n }\n\n private createHttpOptions(headers?: HttpHeaders, isResponseTypeText?: boolean): any {\n let options: any = null;\n if(headers!=null && isResponseTypeText!=null) {\n options = { headers: headers, responseType: 'text'};\n }\n else if(headers!=null && isResponseTypeText==null) {\n options = { headers: headers }\n }\n else if(headers==null && isResponseTypeText!=null) {\n options = { responseType: 'text '}\n }\n\n return options;\n }\n\n public putObjectAtUrl(url: string, data: object, headers?: HttpHeaders, isResponseTypeText?: boolean) : Promise {\n let ctx = this;\n\n return new Promise(function(resolve, reject) {\n Debug.logO('putting at: ' + url, data);\n const body = ctx.stringifyObject(data); // data!=null ? JSON.stringify(data) : '';\n const options = ctx.createHttpOptions(headers, isResponseTypeText);\n\n ctx.http.put(url, body, options)\n .subscribe(\n result => {\n resolve(result);\n },\n error => {\n Debug.logO('error: ', error);\n reject(error)\n }\n );\n });\n\n }\n\n public downloadFileFromUrl(url: string, headers?: HttpHeaders) : Promise {\n let ctx = this;\n\n return new Promise(function(resolve, reject) {\n ctx.http.get(url, { headers: headers, responseType: 'blob'})\n .subscribe(\n result => {\n resolve(result);\n },\n error => {\n Debug.logO('error: ', error);\n reject(error)\n }\n );\n });\n }\n\n\n\n public b64toBlob(b64Data:string, contentType:string, sliceSize? :number) : Blob {\n contentType = contentType || '';\n sliceSize = sliceSize || 512;\n\n var byteCharacters = atob(b64Data);\n var byteArrays = [];\n\n for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n var slice = byteCharacters.slice(offset, offset + sliceSize);\n\n var byteNumbers = new Array(slice.length);\n for (var i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i);\n }\n\n var byteArray = new Uint8Array(byteNumbers);\n\n byteArrays.push(byteArray);\n }\n\n var blob = new Blob(byteArrays, {type: contentType});\n return blob;\n }\n\n\n}\n","\nexport class XmlDomHelper {\n public createXmlDocument(xml: string): Document {\n let parser = new DOMParser();\n let doc = parser.parseFromString(xml, 'text/xml');\n return doc;\n }\n\n public getElements(doc: Document, tagName: string): HTMLCollectionOf {\n return doc.getElementsByTagName(tagName);\n }\n\n public findDomNode(node: Element, path: string) : Element {\n let tags = path.split('/');\n //let n: Element = node;\n\n for(let tag of tags) {\n let list = node.getElementsByTagName(tag);\n //console.log('looking for '+tag+', found: ' + list.length);\n if(list.length>0) {\n node = list[0];\n }\n else {\n node = null;\n break;\n }\n }\n\n return node;\n }\n\n public findDomNodeText(node: Element, path: string) : string {\n let result = this.findDomNode(node, path);\n\n if(result==null) {\n return null;\n }\n else {\n return result.textContent;\n }\n\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ModalController, LoadingController, ToastController, AlertController, ActionSheetController } from '@ionic/angular';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UxApiHelperService {\n\n constructor(\n private loadingCtrl: LoadingController,\n private modalCtrl: ModalController,\n private toastCtrl: ToastController,\n private alertCtrl: AlertController,\n private actionCtrl: ActionSheetController,\n ) { }\n\n public async showLoading(message?: string): Promise {\n return new Promise(async (resolve, reject) => {\n if(message==null) {\n message = \"Please wait...\";\n }\n\n const loading = await this.loadingCtrl.create({\n message: message,\n spinner: 'crescent',\n });\n await loading.present();\n\n return resolve(loading);\n\n });\n }\n\n public async showModalDialog(component: any, componentProps: any): Promise {\n let dialog = await this.modalCtrl.create({\n component: component,\n componentProps: componentProps,\n cssClass: 'my-custom-modal-css',\n backdropDismiss: false,\n });\n\n await dialog.present();\n\n const { data } = await dialog.onWillDismiss();\n return Promise.resolve(data);\n }\n\n public dismissModalDialog(result?: object) {\n this.modalCtrl.dismiss(result);\n }\n\n public showConfirmationDialog(message: string, handler: any) {\n if(confirm(message)) {\n handler();\n }\n }\n\n public getConfirmation(message: string): boolean {\n return confirm(message);\n }\n\n public async confirm(header: string, message: string, okHandler?: any, cancelHandler?: any, subHeader?: string) {\n const alert = await this.alertCtrl.create({\n header: header,\n subHeader: subHeader,\n message: message,\n cssClass: 'confirmation-dialog',\n buttons: [\n {\n text: 'OK',\n handler: () => {\n if(okHandler!=null) {\n okHandler();\n }\n }\n },\n {\n text: 'Cancel',\n handler: () => {\n if(cancelHandler!=null) {\n cancelHandler();\n }\n }\n }\n ]\n });\n\n await alert.present();\n }\n\n public async showToast(message: string, durationInSeconds?: number): Promise {\n if(durationInSeconds==null) { durationInSeconds = 5; }\n\n const toast = await this.toastCtrl.create({\n message: message,\n duration: durationInSeconds*1000,\n position: 'bottom',\n });\n toast.present();\n return toast;\n }\n\n public async presentActionSheet(header: string, buttons: any[]) {\n const actionSheet = await this.actionCtrl.create({\n header: header,\n buttons: buttons\n });\n await actionSheet.present();\n\n }\n\n\n public async presentAlert(message: string, header?: string, subHeader?: string, buttonText?: string) {\n if(buttonText==null) { buttonText = 'OK' }\n\n const alert = await this.alertCtrl.create({\n header: header,\n subHeader: subHeader,\n message: message,\n cssClass: 'alert-dialog',\n buttons: [{\n text: buttonText,\n role: 'cancel'\n }]\n });\n\n await alert.present();\n }\n\n\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n"],"sourceRoot":""}