{"version":3,"sources":["../../src/pages/add-card/add-card.module.ts","../../src/pages/add-card/add-card.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAyC;AACO;AACP;AAazC;IAAA;IAAgC,CAAC;IAApB,iBAAiB;QAX7B,+DAAQ,CAAC;YACR,YAAY,EAAE;gBACZ,8DAAW;aACZ;YACD,OAAO,EAAE;gBACP,sEAAe,CAAC,QAAQ,CAAC,8DAAW,CAAC;aACtC;YACD,eAAe,EAAE;gBACf,8DAAW;aACZ;SACF,CAAC;OACW,iBAAiB,CAAG;IAAD,wBAAC;CAAA;AAAH;;;;;;;;;;;;;;;;;;;;;;;ACfY;AAC4G;AAEpG;AAKU;AAI5D;;;;;GAKG;AAQH;IASE,qBAAmB,OAAsB,EAAS,SAAoB,EAAS,SAA0B,EAChG,SAA0B,EAAS,KAAY,EAAS,QAAwB,EAAS,SAA0B,EAAS,OAA0B;QAD5I,YAAO,GAAP,OAAO,CAAe;QAAS,cAAS,GAAT,SAAS,CAAW;QAAS,cAAS,GAAT,SAAS,CAAiB;QAChG,cAAS,GAAT,SAAS,CAAiB;QAAS,UAAK,GAAL,KAAK,CAAO;QAAS,aAAQ,GAAR,QAAQ,CAAgB;QAAS,cAAS,GAAT,SAAS,CAAiB;QAAS,YAAO,GAAP,OAAO,CAAmB;QAR/J,WAAM,GAAG,MAAM,CAAC,6EAAW,CAAC,SAAS,CAAC,CAAC;QAGvC,YAAO,GAAW,6EAAW,CAAC,gBAAgB,CAAC;QAC/C,kBAAa,GAAW,6EAAW,CAAC,aAAa,CAAC;QAClD,WAAM,GAAW,YAAY,CAAC;QAI1B,IAAI,CAAC,QAAQ,GAAa,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,sCAAgB,GAAhB;QACE,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEhD,2CAA2C;QAC3C,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;QAElC,2BAA2B;QAC3B,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE3B,qBAAqB;QACrB,IAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAEhE,wDAAwD;QACxD,0BAA0B,GAAG;YACzB,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,CAAC,gCAAgC;YACtE,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;gBACf,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC;gBACpB,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC;gBACpB,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC;gBACpB,SAAS,MAAM,CAAC,IAAI,CAAC;YACzB,CAAC;QACL,CAAC;QAED,oCAAoC;QACpC,IAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAM,YAAY,GAAG,KAAG,GAAG,GAAG,aAAe,CAAC;QAE9C,4BAA4B;QAC5B,IAAM,aAAa,GAAM,YAAY,SAAI,KAAO,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;IAC9B,CAAC;IAED,iCAAW,GAAX;QAAA,iBA6EC;QA5EC,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,KAAK,GAAG;YACV,IAAI,EAAE;gBACJ,SAAS,EAAE,SAAS;gBACpB,KAAK,EAAE,SAAS;gBAChB,UAAU,EAAE,yCAAyC;gBACrD,aAAa,EAAE,aAAa;gBAC5B,QAAQ,EAAE,MAAM;gBAChB,eAAe,EAAE;oBACf,KAAK,EAAE,SAAS;iBACjB;aACF;YACD,OAAO,EAAE;gBACP,KAAK,EAAE,SAAS;gBAChB,SAAS,EAAE,SAAS;aACrB;SACF,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAChG,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAEjC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,eAAK;YACxC,IAAI,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC1D,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChB,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;YACjD,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,YAAY,CAAC,WAAW,GAAG,EAAE,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,eAAK;YACnC,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,KAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAM;gBAC5C,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACjB,IAAI,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;oBAC1D,YAAY,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;oBAChD,wBAAwB;gBAC1B,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,IAAI,SAAO,GAAG,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,2CAAyC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,yBAAyB,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;oBAChN,SAAO,CAAC,OAAO,EAAE,CAAC;oBAEjB,MAAc,CAAC,UAAU,CAAC,KAAK,CAAC;wBAC9B,MAAc,CAAC,UAAU;6BACvB,OAAO,CAAC,KAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;6BACnD,IAAI,CAAC,UAAC,cAAsB;4BAC3B,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;4BAEhD,IAAI,IAAS,CAAC;4BACd,IAAI,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,KAAI,CAAC,aAAa,EAAE;4BACpG,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAClD,cAAI;gCACF,KAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAC,OAAO,EAAC,YAAY,EAAC,CAAC,CAAC;gCAC9C,SAAO,CAAC,UAAU,EAAE,CAAC;4BACvB,CAAC,EACD,aAAG;gCAED,IAAM,KAAK,GAAG,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC;oCAClC,KAAK,EAAE,eAAe;oCACtB,QAAQ,EAAE,0FAA0F;oCACpG,OAAO,EAAE,CAAC,IAAI,CAAC;iCAChB,CAAC,CAAC;gCACH,SAAO,CAAC,UAAU,EAAE,CAAC;gCACrB,KAAK,CAAC,OAAO,EAAE,CAAC;gCAChB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4BACnB,CAAC,CAEF,CAAC;wBACJ,CAAC,CAAC;6BACD,KAAK,CAAC,UAAC,GAAQ,IAAK,cAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,EAAtC,CAAsC,CAAC,CAAC;oBACjE,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kCAAY,GAAZ,UAAa,GAAG;QACd,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAChC,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;IAED,4BAAM,GAAN;QACE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAC,OAAO,EAAC,QAAQ,EAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IACvB,CAAC;IA1IU,WAAW;QALvB,gEAAS,CAAC;YACT,QAAQ,EAAE,eAAe;WACG;SAC7B,CAAC;8NAW4B,wEAA8D,0EAAe;YACrF,QAA2I;OAVpJ,WAAW,CA2IvB;IAAD,CAAC;AAAA;SA3IY,WAAW,gB","file":"59.117150393dc3eeb1908d.chunk.js","sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { IonicPageModule } from 'ionic-angular';\r\nimport { AddCardPage } from './add-card';\r\n\r\n@NgModule({\r\n declarations: [\r\n AddCardPage,\r\n ],\r\n imports: [\r\n IonicPageModule.forChild(AddCardPage),\r\n ],\r\n entryComponents: [\r\n AddCardPage\r\n ]\r\n})\r\nexport class AddCardPageModule {}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/add-card/add-card.module.ts","import { Component } from '@angular/core';\r\nimport { IonicPage, NavController, NavParams, ModalController, ViewController, Modal, AlertController, ToastController, LoadingController } from 'ionic-angular';\r\n\r\nimport { Items } from '../../providers/providers';\r\nimport { Client } from '../../models/client';\r\nimport { Assessment } from '../../models/assessment';\r\nimport { UserAccount } from '../../models/account';\r\nimport { UserData } from '../../models/user';\r\nimport { environment } from '../../environment/environment';\r\n\r\ndeclare var Stripe: any;\r\n\r\n/**\r\n * Generated class for the ClientPage page.\r\n *\r\n * See http://ionicframework.com/docs/components/#navigation for more info\r\n * on Ionic pages and navigation.\r\n */\r\n\r\n@IonicPage()\r\n@Component({\r\n selector: 'page-add-card',\r\n templateUrl: 'add-card.html',\r\n})\r\n\r\nexport class AddCardPage {\r\n currentItems: Client[];\r\n stripe = Stripe(environment.stripeKey);\r\n card: any;\r\n userData: UserData;\r\n siteKey: string = environment.recaptchaSiteKey;\r\n webappVersion: string = environment.webappVersion;\r\n expiry: string = '';\r\n\r\n constructor(public navCtrl: NavController, public navParams: NavParams, public toastCtrl: ToastController,\r\n public modalCtrl: ModalController, public items: Items, public viewCtrl: ViewController, public alertCtrl: AlertController, public loading: LoadingController) {\r\n this.userData = JSON.parse(localStorage.getItem('userData'));\r\n }\r\n\r\n ionViewWillEnter(){\r\n this.setupStripe();\r\n const dateString = this.navParams.get('expiry');\r\n\r\n // Parse the date string into a Date object\r\n const date = new Date(dateString);\r\n\r\n // Get the day of the month\r\n const day = date.getDate();\r\n\r\n // Get the month name\r\n const month = date.toLocaleString('default', { month: 'long' });\r\n\r\n // Function to add the correct ordinal suffix to the day\r\n function getOrdinalSuffix(day) {\r\n if (day > 3 && day < 21) return 'th'; // Handle 11th, 12th, 13th, etc.\r\n switch (day % 10) {\r\n case 1: return 'st';\r\n case 2: return 'nd';\r\n case 3: return 'rd';\r\n default: return 'th';\r\n }\r\n }\r\n\r\n // Add the ordinal suffix to the day\r\n const ordinalSuffix = getOrdinalSuffix(day);\r\n const formattedDay = `${day}${ordinalSuffix}`;\r\n\r\n // Combine the day and month\r\n const formattedDate = `${formattedDay} ${month}`;\r\n this.expiry = formattedDate;\r\n }\r\n\r\n setupStripe() {\r\n let elements = this.stripe.elements();\r\n var style = {\r\n base: {\r\n iconColor: '#aab7c4',\r\n color: '#32325d',\r\n fontFamily: '\"Helvetica Neue\", Helvetica, sans-serif',\r\n fontSmoothing: 'antialiased',\r\n fontSize: '16px',\r\n '::placeholder': {\r\n color: '#aab7c4'\r\n }\r\n },\r\n invalid: {\r\n color: '#fa755a',\r\n iconColor: '#fa755a'\r\n }\r\n };\r\n\r\n this.card = elements.create('card', { iconStyle: 'solid', style: style, hidePostalCode: true });\r\n // console.log(this.card);\r\n this.card.mount('#card-element');\r\n\r\n this.card.addEventListener('change', event => {\r\n var displayError = document.getElementById('card-errors');\r\n if (event.error) {\r\n displayError.textContent = event.error.message;\r\n } else {\r\n displayError.textContent = '';\r\n }\r\n });\r\n\r\n var form = document.getElementById('payment-form');\r\n form.addEventListener('submit', event => {\r\n event.preventDefault();\r\n \r\n this.stripe.createToken(this.card).then(result => {\r\n if (result.error) {\r\n var errorElement = document.getElementById('card-errors');\r\n errorElement.textContent = result.error.message;\r\n // loading.dismissAll();\r\n } else {\r\n let loading = this.loading.create({ spinner: 'hide', content: ``, duration: 50000, cssClass: 'activity-detail-loading', showBackdrop: true, dismissOnPageChange: true });\r\n loading.present();\r\n \r\n (window as any).grecaptcha.ready(() => {\r\n (window as any).grecaptcha\r\n .execute(this.siteKey, { action: 'promo_add_card' })\r\n .then((recaptchatoken: string) => {\r\n console.log('reCAPTCHA token:', recaptchatoken);\r\n \r\n let body: any;\r\n body = { token: result.token.id, recaptchatoken: recaptchatoken, webappVersion: this.webappVersion }\r\n this.items.addCard(body, this.userData.id).subscribe(\r\n data => {\r\n this.viewCtrl.dismiss({dismiss:'saved-card'});\r\n loading.dismissAll();\r\n },\r\n err => {\r\n \r\n const alert = this.alertCtrl.create({\r\n title: 'Payment Issue',\r\n subTitle: 'There was a problem with the payment. Please ensure that your card details are accurate.',\r\n buttons: ['OK']\r\n });\r\n loading.dismissAll();\r\n alert.present();\r\n console.log(err);\r\n },\r\n \r\n );\r\n })\r\n .catch((err: any) => console.error('reCAPTCHA error:', err));\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n presentToast(msg) {\r\n let toast = this.toastCtrl.create({\r\n message: msg,\r\n duration: 5000,\r\n position: 'top'\r\n });\r\n toast.present();\r\n }\r\n\r\n cancel() {\r\n this.viewCtrl.dismiss({dismiss:'cancel'});\r\n console.log('cancel')\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/add-card/add-card.ts"],"sourceRoot":""}