{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/app.component.html","./src/app/components/activate/activate.component.html","./src/app/components/admin/admin.component.html","./src/app/components/apps/apps.component.html","./src/app/components/appsumo/appsumo.component.html","./src/app/components/click-through/click-through.component.html","./src/app/components/download/download.component.html","./src/app/components/footer/footer.component.html","./src/app/components/header/header.component.html","./src/app/components/hosts/hosts.component.html","./src/app/components/lock/lock.component.html","./src/app/components/login/login.component.html","./src/app/components/not-found/not-found.component.html","./src/app/components/pagination/pagination.component.html","./src/app/components/pricing/pricing.component.html","./src/app/components/profile/profile.component.html","./src/app/components/register/register.component.html","./src/app/components/term-condition/term-condition.component.html","./src/app/components/under-construction/under-construction.component.html","./node_modules/tslib/tslib.es6.js","./src/app/app-routing.module.ts","./src/app/app.component.css","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/auth/auth.guard.ts","./src/app/components/activate/activate.component.css","./src/app/components/activate/activate.component.ts","./src/app/components/admin/admin.component.css","./src/app/components/admin/admin.component.ts","./src/app/components/apps/apps.component.css","./src/app/components/apps/apps.component.ts","./src/app/components/appsumo/appsumo.component.css","./src/app/components/appsumo/appsumo.component.ts","./src/app/components/click-through/click-through.component.css","./src/app/components/click-through/click-through.component.ts","./src/app/components/download/download.component.css","./src/app/components/download/download.component.ts","./src/app/components/footer/footer.component.css","./src/app/components/footer/footer.component.ts","./src/app/components/header/header.component.css","./src/app/components/header/header.component.ts","./src/app/components/hosts/hosts.component.css","./src/app/components/hosts/hosts.component.ts","./src/app/components/lock/lock.component.css","./src/app/components/lock/lock.component.ts","./src/app/components/login/login.component.css","./src/app/components/login/login.component.ts","./src/app/components/not-found/not-found.component.css","./src/app/components/not-found/not-found.component.ts","./src/app/components/pagination/pagination.component.css","./src/app/components/pagination/pagination.component.ts","./src/app/components/pricing/pricing.component.css","./src/app/components/pricing/pricing.component.ts","./src/app/components/profile/profile.component.css","./src/app/components/profile/profile.component.ts","./src/app/components/register/register.component.css","./src/app/components/register/register.component.ts","./src/app/components/term-condition/term-condition.component.css","./src/app/components/term-condition/term-condition.component.ts","./src/app/components/under-construction/under-construction.component.css","./src/app/components/under-construction/under-construction.component.ts","./src/app/models/admin.ts","./src/app/models/app.ts","./src/app/models/developer.ts","./src/app/models/host.ts","./src/app/services/account.service.ts","./src/app/services/admin.service.ts","./src/app/services/apps.service.ts","./src/app/services/authentication.service.ts","./src/app/services/helper.service.ts","./src/app/services/host.service.ts","./src/app/services/notification.service.ts","./src/app/services/notify.service.ts","./src/app/services/payment.service.ts","./src/app/services/upload.service.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":"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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\";","export default \"
\\n
\\n \\n \\n
\\n \\n \\n
\\n \\n
\\n
\"","export default \" \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n\\n
\\n \\n \\n \\n
\\n

{{activateResult.title}}

\\n

{{activateResult.message}}

\\n \\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n

Cosync Administrator

\\n \\n\\n \\n\\n
\\n\\n
\\n\\n
\\n
\\n

Cosync AssetLink Version Settings.

\\n

\\n Configure the version for initializing.\\n

\\n
\\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n\\n
NameVersion NumberStatusDescriptionCreated AtControl
{{item.name}}{{item.versionNumber}}{{item.status}}{{item.desc}}{{item.createdAt}}
\\n
\\n
\\n\\n\\n
\\n
\\n

Cosync AUTH Version Settings.

\\n

\\n Configure the version for initializing.\\n

\\n
\\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n\\n
NameVersion NumberStatusDescriptionCreated AtControl
{{item.name}}{{item.versionNumber}}{{item.status}}{{item.desc}}{{item.createdAt}}
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n

Update your admin account.

\\n

\\n \\n

\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n
\\n \\n
\\n
\\n Loading...\\n
\\n
\\n \\n
\\n \\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n Loading...\\n
\\n
\\n \\n
\\n

{{twoFactorText}}

\\n
\\n Admin Account: {{twoFactorAuth.email}}
\\n Secret Key: {{twoFactorAuth.googleSecretKey}}\\n
\\n \\\"\\\" \\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n

Add/Update Coupon for Subscription.

\\n

\\n \\n

\\n
\\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n\\n
Coupon CodeDescriptionPercentage AmountStatusCreated AtUpdated AtControl
{{item.couponCode}}{{item.desc}}{{item.amount}}{{item.status}}{{item.createdAt}}{{item.updatedAt}} \\n \\n edit \\n query_stats \\n delete \\n
\\n
\\n\\n
\\n\\n
\\n
\\n\\n
\\n \\n
\\n\\n
\\n
\\n \\n
\\n
\\n \\n \\n
\\n\\n\\n \\n \\n
No log is found.
\\n\\n \\n
0\\\"> \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n
No user is found.
\\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
#Coupon CodePlan IDDeveloper IdCreated At
{{ (couponLogsOffset.offset * couponEntryAmount) + i + 1 }}{{log.couponCode}}{{log.developerPlanId}}{{log.developerId}}{{log.createdAt}}
{{ (couponLogsOffset.offset * couponEntryAmount) + i + 1 }}{{log.couponCode}}{{log.developerPlanId}}{{log.developerId}}{{log.createdAt}}
\\n \\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n \\n
\\n

Cosync Developer Account

\\n

\\n
\\n\\n
\\n \\n\\n
\\n\\n \\n
\\n\\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n
No record has found.
\\n
\\n \\n
0\\\" style=\\\"overflow-x: hidden;\\\">\\n
\\n
\\n
\\n Total Records: {{allDev}} \\n
\\n \\n
\\n\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
No user is found.
\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n
#User IDEmailFirst NameLast NameTypeStatusCreated At
{{ i + 1 }}{{user.uid}}{{user.email}}{{user.firstName}}{{user.lastName}}{{user.type}}{{user.status}}{{user.createdAt}}
{{ (devOffset.offset * entryAmount) + i + 1 }}{{user.uid}}{{user.email}}{{user.firstName}}{{user.lastName}}{{user.type}}{{user.status}} {{user.createdAt}}
\\n\\n
\\n\\n
\\n
\\n \\n \\n\\n \\n
\\n\\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n
No record has found.
\\n
\\n \\n
0\\\" style=\\\"overflow-x: hidden;\\\">\\n
\\n
\\n
\\n Total Records: {{freeDev}} \\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
No user is found.
\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n
#User IDEmailFirst NameLast NameTypeStatusCreated At
{{ i + 1 }}{{user.uid}}{{user.email}}{{user.firstName}}{{user.lastName}}{{user.type}}{{user.status}}{{user.createdAt}}
{{ (freeDevOffset.offset * entryAmountFreeDev) + i + 1 }}{{user.uid}}{{user.email}}{{user.firstName}}{{user.lastName}}{{user.type}}{{user.status}} {{user.createdAt}}
\\n\\n
\\n\\n
\\n
\\n \\n\\n\\n \\n
\\n\\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n
No record has found.
\\n
\\n \\n
0\\\" style=\\\"overflow-x: hidden;\\\">\\n
\\n
\\n
\\n Total Records: {{paidDev}} \\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
No user is found.
\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n
#User IDEmailFirst NameLast NameTypeStatusCreated At
{{ i + 1 }}{{user.uid}}{{user.email}}{{user.firstName}}{{user.lastName}}{{user.type}}{{user.status}}{{user.createdAt}}
{{ (paidDevOffset.offset * entryAmountPaidDev) + i + 1 }}{{user.uid}}{{user.email}}{{user.firstName}}{{user.lastName}}{{user.type}}{{user.status}} {{user.createdAt}}
\\n\\n
\\n\\n
\\n
\\n \\n\\n\\n
\\n\\n
\\n
\\n\\n\\n
\\n
\\n

Cosync Developer Account Detail: {{currentDeveloper.email}}

\\n

\\n
\\n \\n
\\n \\n \\n \\n \\n
\\n \\n
\\n \\n
\\n
\\n Loading...\\n
\\n
\\n \\n
\\n
No record has found.
\\n
\\n \\n
0\\\" style=\\\"overflow-x: hidden;\\\">\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
#NameTypeStatusTotal UserCreated AtControl
{{ i + 1 }}{{app.name}}{{app.type}}{{app.status}} {{app.totalUser}} {{app.createdAt}}
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
No record has found.
\\n
\\n \\n
0\\\" style=\\\"overflow-x: hidden;\\\">\\n
\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
#Invoice IDTitleTransaction IDAmountTypeStatusCreated AtControl
{{ i + 1 }}{{item.invoiceId}}{{item.title}}{{item.appUserChargeTransactionId || item.subscriptionTransactionId}}{{item.amount}} {{item.type}} {{item.status}} {{item.createdAt}} {{item.status == 'paid' ? 'refund' : ''}} \\n refunding...\\n
\\n \\n
\\n
\\n \\n \\n
\\n \\n

\\n Update Developer Account Status:\\n

\\n\\n
\\n
\\n \\n \\n Active\\n Disabled\\n Blocked \\n Pending \\n DELETE \\n \\n \\n
\\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n
\\n\\n\\n
\\n
\\n\\n \\n \\n \\n\\n
\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n

Enter Admin Credential

\\n \\n
\\n\\n
\\n
\\n
\\n \\n \\n \\n
\\n\\n

{{loginText}}

\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n\\n\\n \\n\\n \\n\\n \\n\\n\\n
\\n

Create Developer Self Hosting Certificate

\\n \\n
\\n\\n
\\n
\\n
\\n\\n \\n \\n
\\n \\n
\\n\\n \\n
\\n\\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n\\n
\\n\\n\\n\\n
\\n

Developer Detail: \\\"{{currentDeveloper.email}}\\\"

\\n \\n
\\n\\n
\\n \\n\\n\\n
\\n \\n
\\n\\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n
No record has found.
\\n
\\n \\n
0\\\" style=\\\"overflow-x: hidden;\\\">\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n
#NameTypeStatusCreated AtControl
{{ i + 1 }}{{app.name}}{{app.type}}{{app.status}} {{app.createdAt}}
\\n\\n
\\n
\\n\\n
\\n\\n
\\n
No record has found.
\\n
\\n \\n
0\\\" style=\\\"overflow-x: hidden;\\\">\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n
#Invoice IDTitleTransaction IDAmountTypeCreated AtControl
{{ i + 1 }}{{item.invoiceId}}{{item.title}}{{item.appUserChargeTransactionId || item.subscriptionTransactionId}}{{item.amount}} {{item.type}} {{item.createdAt}}
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n\\n\\n\\n
\\n

Create Cosync AssetLink Version

\\n \\n
\\n\\n
\\n
\\n
\\n
Enter Version Number
\\n \\n
\\n\\n
\\n
Enter Version Description
\\n \\n
\\n \\n
\\n
Version Status
\\n\\n \\n \\n
\\n \\n
\\n \\n \\n
\\n\\n
\\n
\\n\\n
\\n\\n\\n\\n\\n
\\n

Create Cosync AUTH Version

\\n \\n
\\n\\n
\\n
\\n
\\n
Enter Version Number
\\n \\n
\\n\\n
\\n
Enter Version Description
\\n \\n
\\n \\n
\\n
Version Status
\\n\\n \\n \\n
\\n \\n
\\n \\n \\n
\\n\\n
\\n
\\n\\n
\\n\\n\\n\\n\\n
\\n

Edit Cosync AUTH Version

\\n \\n
\\n\\n
\\n
\\n
\\n
Enter Version Number
\\n \\n
\\n\\n
\\n
Enter Version Description
\\n \\n
\\n \\n
\\n
Version Status
\\n\\n \\n \\n
\\n
\\n
\\n Loading...\\n
\\n
\\n \\n
\\n \\n \\n
\\n\\n
\\n
\\n\\n
\\n\\n\\n\\n\\n
\\n

Edit Cosync AssetLink Version

\\n \\n
\\n\\n
\\n
\\n
\\n
Enter Version Number
\\n \\n
\\n\\n
\\n
Enter Version Description
\\n \\n
\\n \\n
\\n
Version Status
\\n\\n \\n \\n
\\n \\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n\\n
\\n\\n\\n\\n\\n\\n
\\n

Create Coupon

\\n \\n
\\n\\n
\\n
\\n \\n\\n
\\n
Coupon Code
\\n \\n
\\n\\n
\\n
Description
\\n \\n
\\n \\n
\\n
Percentage Amount
\\n \\n
\\n\\n\\n
\\n
Status
\\n\\n \\n
\\n \\n
\\n \\n \\n
\\n\\n
\\n
\\n\\n
\\n\\n\\n\\n
\\n

Edit Coupon

\\n \\n
\\n\\n
\\n
\\n \\n\\n
\\n
Coupon Code
\\n \\n
\\n\\n
\\n
Description
\\n \\n
\\n \\n
\\n
Amount
\\n \\n
\\n\\n\\n
\\n
Status
\\n\\n \\n
\\n\\n
\\n
\\n Loading...\\n
\\n
\\n \\n
\\n \\n \\n
\\n\\n
\\n
\\n\\n
\\n\\n\"","export default \"\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n\\n
\\n
\\n
\\n \\n
\\n \\n

Sandbox App

\\n \\n

Get started quickly with testing out the capabilities of Cosync AUTH by creating a sandbox app for your Realm app

\\n
    \\n
  • Up to 20 Cosync apps
  • \\n
  • Up to 50 users per app
  • \\n
  • Free forever
  • \\n
\\n \\n
\\n\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n

{{app.name}}

\\n
\\n initializing \\n
\\n Loading...\\n
\\n
\\n Loading...\\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n Status: {{app.status}}\\n
\\n\\n
\\n\\n
\\n

Last Modified: {{app.lastModified}}

\\n
\\n\\n
\\n Details\\n \\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n \\n
\\n
\\n

{{appToEdit.name}} Application Detail

\\n
\\n \\n
\\n\\n \\n\\n
\\n
\\n
\\n

Application Setting

\\n

\\n Update your application setting here.\\n

\\n
\\n\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
App ID\\n \\n \\n\\n \\n content_copy\\n \\n \\n \\n check_circle_outline\\n \\n \\n \\n
\\n\\n \\n\\n
\\n
App Name
\\n \\n \\n \\n
\\n \\n \\n \\n
\\n\\n
\\n
\\n
\\n \\n
\\n\\n \\n\\n
\\n\\n \\n \\n\\n\\n
\\n \\n
\\n
Export App Database
\\n

This will export your app data from your cloud app database.

\\n \\n
\\n\\n
\\n\\n \\n
\\n\\n \\n\\n
\\n\\n
\\n
\\n
\\n \\n
AUTH Enable Status : {{appToEdit.jwtEnabled ? \\\"ON\\\" : \\\"OFF\\\"}}
\\n
AUTH Enable Status : {{appToEdit.jwtEnabled ? \\\"ON\\\" : \\\"OFF\\\"}}
\\n
\\n \\n
\\n\\n
\\n \\n
\\n\\n
\\n \\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n
App Status : {{appToEdit.status}}
\\n\\n\\n
\\n\\n \\n
\\n\\n
\\n
\\n\\n
\\n\\n\\n
\\n
\\n
\\n
Reset App Database
\\n

This will clear your app data from Cosync Portal.

\\n \\n
\\n\\n \\n
\\n \\n \\n
\\n\\n\\n
\\n
Delete App
\\n

This will delete your app entirely from Cosync Portal.

\\n \\n
\\n\\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n\\n \\n
\\n
\\n
\\n

Application data of the app users.

\\n

\\n \\n

\\n
\\n
\\n \\n\\n
\\n\\n \\n
\\n \\n\\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n
No Users
\\n
\\n \\n
0\\\" style=\\\"overflow-x: hidden;\\\">\\n
\\n
\\n
\\n \\n
\\n
\\n\\n
\\n
0\\\">\\n
Total User: {{appData.totalUser}}
\\n
0\\\">Total Anonnymous User: {{appData.totalAnonUser}}
\\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
No user is found.
\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
#HandleUser NameLogin ProviderLast LoginMetadataCreated AtControl
{{ i + 1 }}{{user.handle}}{{user.userName || \\\"\\\"}}{{user.loginProvider || \\\"email\\\"}}{{user.lastLogin || \\\"\\\"}}\\n Show Metadata \\n No Metadata \\n {{user.createdAt}}    
{{ (userOffset.offset * entryAmount) + i + 1 }}{{user.handle}}{{user.userName || \\\"\\\"}}{{user.loginProvider || \\\"email\\\"}}{{user.lastLogin || \\\"\\\"}}\\n Show Metadata \\n No Metadata \\n {{user.createdAt}}    
\\n
\\n \\n\\n
\\n
\\n \\n\\n\\n \\n
\\n\\n \\n\\n
\\n
No record has found.
\\n
\\n \\n
0\\\" style=\\\"overflow-x: hidden;\\\">\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
0\\\">\\n
Total Invitation: {{appData.totalInvite}}
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
No record is found.
\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
#HandleSender HandleStatusCreated AtUpdated AtControl
{{ i + 1 }}{{item.handle}}{{item.senderHandle}}{{item.status}}{{item.createdAt}}{{item.updatedAt}}
{{ (inviteOffset.offset * entryAmountInvite) + i + 1 }}{{item.handle}}{{item.senderHandle}}{{item.status}}{{item.createdAt}}{{item.updatedAt}}
\\n
\\n \\n
\\n
\\n \\n\\n
\\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n
No record has found.
\\n
\\n\\n
0\\\" style=\\\"overflow-x: hidden;\\\">\\n
\\n
\\n
\\n \\n
\\n
\\n\\n
\\n
0\\\">\\n
Total Signup: {{appData.totalSignup}}
\\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
No record is found.
\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
#HandleStatusCreated AtUpdated AtControl
{{ i + 1 }}{{item.handle}}{{item.status}}{{item.createdAt}}{{item.updatedAt}}
{{ (signUpOffset.offset * entryAmountSignUp) + i + 1 }}{{item.handle}}{{item.status}}{{item.createdAt}}{{item.updatedAt}}
\\n
\\n \\n
\\n\\n
\\n
\\n\\n
\\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n

Application keys to configure the network

\\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n \\n
\\n \\n \\n\\n \\n content_copy\\n \\n \\n \\n check_circle_outline\\n \\n\\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n\\n
\\n\\n \\n \\n
\\n \\n \\n \\n \\n content_copy\\n \\n \\n \\n check_circle_outline\\n \\n\\n\\n \\n \\n \\n
\\n\\n\\n \\n\\n \\n \\n
\\n
\\n
\\n
\\n\\n \\n\\n
\\n \\n
\\n \\n \\n
\\n\\n
\\n

Set your email template locale for user

\\n
\\n \\n
\\n \\n \\n \\n {{locale}} - {{findCountryByLocale(locale)}}\\n \\n \\n
\\n \\n \\n \\n
\\n
\\n\\n
\\n\\n
\\n

Email address verification

\\n

When a user signs up using an email address and password, you can send them a confirmation code to verify their registered email address. Learn more.

\\n \\n

Message edit

\\n \\n\\n
\\n \\n
\\n
\\n
\\n \\n
\\n\\n
\\n \\n \\n User will reply to this email.\\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n\\n
\\n\\n
\\n\\n \\n \\n \\n \\n
\\n \\n \\n \\n\\n \\n\\n
\\n\\n
\\n\\n
\\n
\\n
\\n \\n
\\n
\\n

Account signup verification

\\n

When a user signs up using an email address and password, you can send them a confirmation link to verify their registered email address. Learn more.

\\n \\n

Message edit

\\n \\n\\n
\\n \\n
\\n
\\n
\\n \\n
\\n\\n
\\n \\n \\n User will reply to this email.\\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n\\n
\\n\\n
\\n\\n \\n \\n \\n \\n
\\n \\n \\n \\n\\n \\n\\n
\\n\\n
\\n\\n
\\n
\\n
\\n \\n
\\n\\n \\n\\n
\\n

Account signup success

\\n

After a user signs up, you can send them a successed email to their email address. Learn more.

\\n \\n

Message edit

\\n \\n\\n
\\n \\n
\\n
\\n
\\n \\n
\\n\\n
\\n \\n \\n User will reply to this email.\\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n\\n
\\n\\n
\\n\\n \\n \\n \\n \\n
\\n \\n \\n \\n\\n \\n\\n
\\n\\n
\\n\\n
\\n
\\n
\\n \\n
\\n \\n\\n
\\n

Account signup confirmation

\\n

When a user signs up using an email address and password, you can customize the click through link page. Learn more.

\\n \\n

Message edit

\\n \\n\\n
\\n \\n
\\n
\\n \\n
\\n\\n
\\n\\n \\n \\n \\n \\n
\\n \\n \\n \\n\\n \\n\\n
\\n\\n
\\n\\n
\\n
\\n
\\n \\n
\\n\\n\\n
\\n \\n

Password reset

\\n

When a user forgets their password, a password reset email is sent to help them set up a new one. Learn more.

\\n \\n

Message edit

\\n \\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n \\n User will reply to this email.\\n
\\n \\n \\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n\\n
\\n

Account Invitation

\\n

When a user invites other account, an invitation email is sent to the email. Learn more.

\\n \\n

Message edit

\\n \\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n \\n User will reply to this email.\\n
\\n \\n \\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n\\n \\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n\\n
\\n

QR Code for Two Factor Verification

\\n

When a user enable two step verification, the user will recieve this email for the QR Code. Learn more.

\\n \\n

Message edit

\\n \\n \\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n \\n User will reply to this email.\\n
\\n \\n
\\n \\n \\n \\n
\\n
\\n
\\n\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n\\n
\\n

SMS verification

\\n

Allow users to sign in using a one time passcode sent as a SMS to their mobile phones. Learn more.

\\n \\n

Message edit

\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n \\n \\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n \\n
\\n\\n \\n\\n
\\n
\\n
\\n

Application logs

\\n \\n
\\n
\\n
\\n
\\n Loading...\\n
\\n
\\n \\n \\n
\\n\\n
\\n\\n
\\n
\\n\\n \\n \\n\\n Action: \\n \\n All\\n {{act}}\\n \\n\\n
\\n
\\n\\n
\\n
\\n\\n \\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n {{logDateFilterMessage}}\\n
\\n \\n
\\n \\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n\\n
\\n\\n
\\n \\n
\\n \\n \\n\\n \\n
\\n
\\n\\n
\\n\\n\\n
No log is found.
\\n\\n
0\\\"> \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
#Log TypeActionStatusValueCreated At
{{ (logsOffset.offset * entryAmount) + i + 1 }}{{log.logType}}{{log.action}}{{log.status || \\\"\\\"}}{{log.status || \\\"\\\"}}
{{log.value}}
{{log.createdAt}}
\\n \\n
\\n
\\n\\n
\\n \\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n

MongoDB Realm Application Settings.

\\n

\\n Configure the app before initializing.\\n

\\n
\\n\\n\\n
\\n\\n
\\n
\\n

MongoDB Realm App ID

\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n

Initialize Cosync AUTH

\\n

Installed Version: {{appToEdit.appData.CosyncJWTVersion}}

\\n

Latest Version: {{cosyncVersions.cosyncJWT[0].versionNumber}}

\\n\\n
\\n
\\n \\n
\\n \\n \\n
\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n\\n\\n
\\n
\\n

Initialize Cosync AssetLink

\\n

Installed Version: {{appToEdit.appData.CosyncEngineVersion}}

\\n

Latest Version: {{cosyncVersions.cosyncEngine[0].versionNumber}}

\\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n\\n
\\n
\\n\\n
\\n\\n\\n\\n
\\n
\\n\\n
\\n \\n \\n
\\n
\\n

AUTH Settings

\\n

\\n Configure the app before initializing.\\n

\\n
\\n\\n
\\n \\n
\\n\\n \\n
\\n\\n
\\n
\\n
Two Factor Verifications
\\n

Set your two factor verifications with Google Authenticator or Twilio

\\n
\\n
\\n \\n \\n None\\n Google\\n Phone \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n \\n
\\n\\n
\\n
\\n \\n
\\n \\n
\\n\\n
\\n \\n
\\n\\n
\\n \\n \\n \\n
\\n \\n
\\n\\n
\\n\\n
\\n
\\n
Maximux User of the Application
\\n

maximum number of users for a commercial application. Minimum is 1000

\\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n
Allow App Invitation
\\n

Turn on or off App Invitation.

\\n\\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n\\n
Allow User Name Login
\\n

Turn on or off App User Name Login.

\\n \\n
\\n \\n
\\n
\\n\\n\\n
\\n\\n
Allow Apple Login
\\n

Turn on or off App Apple Login.

\\n \\n
\\n \\n
\\n
\\n
\\n\\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n\\n
\\n\\n
\\n\\n
Allow Google Login
\\n

Turn on or off App Apple Login.

\\n \\n
\\n \\n
\\n\\n
\\n
\\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n\\n
\\n\\n
\\n\\n
\\n\\n
Allow Anonymous Login
\\n

Turn on or off App Anonymous Login.

\\n \\n
\\n \\n
\\n
\\n\\n\\n
\\n\\n
Allow App Signup
\\n

Turn on or off App Signup.

\\n \\n
\\n \\n
\\n
\\n\\n
Set your app sign up flow
\\n\\n
\\n\\n \\n \\n Code\\n Link \\n None \\n \\n \\n
\\n\\n\\n
\\n
\\n\\n
\\n \\n
\\n
Metadata Fields
\\n

Specify where metadata is located in your AUTH. Dot notation is supported.

\\n

\\n Automatically add email field to Metadata with handle.\\n

\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
RequiredCan EditPathField NameActions
delete
\\n \\n \\n
\\n \\n\\n
\\n\\n\\n
\\n\\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n\\n \\n
\\n\\n
\\n \\n
\\n
Invite Metadata Fields
\\n

Specify what invite metadata in your app invitation. Dot notation is supported.

\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
RequiredPathField NameActions
delete
\\n \\n \\n
\\n \\n\\n
\\n\\n\\n
\\n\\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n\\n \\n
\\n\\n\\n\\n
\\n
\\n
Password Filter
\\n\\n

Set minimum strong password for user.

\\n \\n\\n
\\n \\n
\\n\\n
\\n \\n
\\n\\n : {{appToEdit.passwordMinLength}}\\n \\n
\\n\\n
\\n : {{appToEdit.passwordMinUpper}}\\n \\n
\\n
\\n : {{appToEdit.passwordMinLower}}\\n \\n
\\n\\n
\\n : {{appToEdit.passwordMinDigit}}\\n \\n
\\n\\n
\\n : {{appToEdit.passwordMinSpecial}}\\n \\n
\\n
\\n\\n \\n\\n
\\n
\\n\\n\\n\\n
\\n
\\n
Email Extensions
\\n\\n

Set your own email extensions for your application. We only accept SendGrid Account.

\\n\\n
\\n \\n
\\n\\n
\\n\\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n \\n
\\n\\n
\\n\\n \\n\\n\\n \\n\\n
\\n
\\n\\n \\n \\n
\\n \\n\\n\\n \\n
\\n\\n
\\n
\\n
Maximux User of the Application
\\n

maximum number of users for a commercial application

\\n
\\n \\n
\\n \\n
\\n
\\n\\n \\n \\n
\\n \\n\\n
\\n\\n
\\n
\\n\\n\\n
\\n\\n\\n
\\n
\\n
\\n \\n \\n \\n\\n
\\n
\\n
\\n\\n\\n\\n\\n\\n
\\n

Update User: {{currentAppUser.handle}}

\\n \\n
\\n\\n
\\n
\\n\\n
\\n
\\n
Reset User Password
\\n

Please enter new password for the user.

\\n

Or click submit to use auto generate password.

\\n
\\n \\n \\n \\n Must have at least {{appToEdit.passwordMinLength}} characters.\\n \\n
\\n \\n

{{resetPaswordInfo}}

\\n
\\n \\n \\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n\\n \\n\\n\\n\\n
\\n

Create Application

\\n \\n \\n \\n
\\n\\n
\\n
\\n
\\n
Enter App Name
\\n \\n
\\n \\n \\n\\n
\\n \\n
AUTH Enable : {{createAppData.jwtEnabled ? \\\"ON\\\" : \\\"OFF\\\"}}
\\n
\\n \\n
\\n\\n
\\n \\n
\\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n

Create App User

\\n \\n
\\n\\n
\\n
\\n \\n \\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n\\n \\n\\n\\n\\n
\\n

Enter a phone number recieve a SMS

\\n \\n
\\n\\n
\\n
\\n \\n
\\n \\n
\\n\\n
\\n \\n \\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n

Customize account management emails

\\n \\n
\\n\\n
\\n\\n

When you customize an email template's subject line and message, you can use the following placeholder strings to represent values that will be filled in before sending:

\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
%APP_NAME%The name of your app. You can set this value by editing the App name field on the App page.
%HANDLE%The recipient's email address or phone number.
%CODE%The code to send to user for account verification.
%LINK%The link to send to user for account verification.
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n\\n\\n\\n\\n
\\n

User Metadata

\\n \\n
\\n\\n
\\n

User Handle: {{currentAppUser.handle}}

\\n \\n

Edit Metadata

\\n
\\n

User doesn't have any Metadata.

\\n \\n
\\n\\n
\\n

Update Your User Metadata:

\\n \\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n\\n \\n
\\n \\n \\n \\n\\n \\n
\\n
\\n\\n\\n
\\n

Modify App Locale

\\n \\n
\\n\\n
\\n

Please select the locale that you wish to add.

\\n\\n
\\n \\n \\n
\\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n
LocaleLanguageRemove
{{locale}}{{findCountryByLocale(locale)}}delete
\\n \\n \\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n\\n
\\n\\n\\n
\\n

MongoDB Realm Credential

\\n \\n
\\n\\n
\\n

Please enter your MongoDB Realm Credential. We don't store these infomation in the database.

\\n\\n
\\n \\n
\\n
Choose Version
\\n\\n \\n \\n
\\n\\n \\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n

MongoDB Realm Credential

\\n \\n
\\n\\n
\\n

Please enter your MongoDB Realm Credential to remove Cosync AUTH. We don't store these infomation in the database.

\\n\\n
\\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n\\n\\n\\n\\n
\\n

MongoDB Realm Credential

\\n \\n
\\n\\n
\\n

Please enter your MongoDB Realm Credential. We don't store these infomation in the database.

\\n

Please enter your Amazone S3 Credential. We don't store these infomation in the database.

\\n
\\n \\n
\\n
Choose Version
\\n \\n \\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n
\\n\\n
\\n \\n \\n \\n

S3 Private Bucket.

\\n
\\n \\n \\n
\\n\\n

S3 Public Bucket.

\\n
\\n \\n \\n
\\n\\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n

MongoDB Realm Credential

\\n \\n
\\n\\n
\\n

Please enter your MongoDB Realm Credential to remove Cosync AssetLink. We don't store these infomation in the database.

\\n \\n
\\n \\n
\\n \\n \\n \\n \\n
\\n \\n\\n
\\n \\n \\n
\\n\\n \\n\\n
\\n
\\n
\\n\"","export default \"\\n \\n
\\n \\n
\\n
\\n
\\n
\\n

Get Started

\\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n \\n
\\n \\n mail\\n \\n
\\n \\n \\n \\n
\\n
\\n \\n
\\n \\n lock_outline\\n \\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n
\\n \\n redeem\\n \\n
\\n \\n \\n \\n
\\n
\\n \\n\\n\\n
\\n

{{validateInfo}}

\\n
\\n \\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n\\n
\\n
\\n Loading...\\n
\\n
\\n \\n
\\n

Please click a confirmed link in your email. (resend link)

\\n \\n
\\n \\n
\\n \\n
\\n\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \"","export default \"\\n
\\n \\n
\\n
\\n\\n
\\n\\n
\\n \\n \\n \\n
\\n \\n
\\n

Page not found :(

\\n

{{activateResult.title}}

\\n

{{activateResult.message}}

\\n
\\n\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n\\n\\n
\\n
\\n
\"","export default \" \\n
\\n
\\n
\\n
\\n

Download Self Hosting Package

\\n
We offer a global cloud database service and subscriptions for deploying on-premises or in your private cloud.
\\n
\\n
\\n
\\n \\n\\n
\\n \\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n\\n \\n
\\n

{{subscription.plan.name}}

\\n

{{subscription.plan.desc}}

\\n

Status: {{subscription.status}}

\\n

Expired Date: {{subscription.endDate}}

\\n

Auto Renew: {{subscription.autoRenew}}

\\n

Next Billing Date: {{subscription.nextBillingDate}}

\\n

Click download button to download source code.

\\n \\n\\n
\\n \\n \\n \\n \\n content_copy\\n \\n \\n \\n check_circle_outline\\n \\n\\n\\n \\n \\n \\n
\\n\\n
\\n
\\n
\\n
\\n
\\n \\n
\"","export default \"\\n \"","export default \"\"","export default \"\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n \\n
\\n\\n
\\n \\n \\n\\n
\\n\\n\\n\\n
\\n \\n
\\n \\n\\n
\\n\\n
\\n \\n \\n
\\n Import App \\n
\\n Host Setting\\n
\\n
\\n\\n \\n
\\n\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n \\n\\n
\\n
\\n
\\n\\n
\\n

Hosts

\\n \\n

Run your own AUTH server managed through Cosync Portal

\\n
    \\n
  • Unlimited apps
  • \\n
  • Unlimited user per app
  • \\n
  • Custom user emails
  • \\n
  • Email technical support
  • \\n
  • $29/month or $228/year
  • \\n
\\n \\n
\\n\\n \\n\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n

{{host.name}}

\\n
Status: {{host.status}}
\\n
Status: {{host.status}}
\\n
\\n\\n
\\n \\n

Last Modified: {{host.lastModified}}

\\n
\\n\\n
\\n All Apps\\n \\n \\n \\n
\\n\\n
\\n
\\n\\n \\n\\n
\\n\\n\\n
\\n

No Application.

\\n
\\n
\\n
\\n

{{app.name}}

\\n
\\n initializing \\n
\\n Loading...\\n
\\n
\\n Loading...\\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n Status: {{app.status}}\\n
\\n\\n
\\n\\n
\\n

Last Modified: {{app.lastModified}}

\\n
\\n\\n
\\n Details\\n \\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n \\n\\n
\\n
\\n

{{hostToEdit.name}} Host Detail

\\n\\n
\\n\\n
\\n
\\n
\\n

Host Setting

\\n

\\n Update your host setting here.\\n

\\n
\\n\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
Host ID\\n \\n \\n\\n \\n content_copy\\n \\n \\n \\n check_circle_outline\\n \\n \\n \\n
\\n\\n \\n\\n
\\n
Host Name
\\n \\n \\n
\\n \\n
Host Server API Url
\\n \\n \\n\\n
\\n \\n \\n \\n\\n \\n\\n
\\n\\n
\\n
\\n
\\n \\n
\\n\\n \\n\\n
\\n
\\n\\n
Host Server Token
\\n \\n \\n
\\n
Host Connection Status: {{hostToEdit.status}}
\\n
Host Connection Status: {{hostToEdit.status}}
\\n
\\n\\n
\\n \\n \\n \\n
\\n \\n
\\n\\n
\\n \\n
\\n\\n
\\n\\n
\\n
\\n
\\n
Delete Host
\\n

This will delete your host entirely from Cosync Portal.

\\n \\n
\\n
\\n \\n \\n
\\n\\n
\\n
Open Your Self Hosted Application
\\n

This will get all host applications from your hosted database.

\\n \\n \\n
\\n\\n \\n
\\n\\n
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n \\n\\n
\\n\\n
\\n\\n
\\n\\n\\n\\n \\n \\n
\\n
\\n

{{appToEdit.name}} Application Detail

\\n
\\n \\n
\\n\\n \\n\\n
\\n
\\n
\\n

Application Setting

\\n

\\n Update your application setting here.\\n

\\n
\\n\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
App ID\\n \\n \\n\\n \\n content_copy\\n \\n \\n \\n check_circle_outline\\n \\n \\n \\n
\\n\\n \\n\\n
\\n
App Name
\\n \\n \\n \\n
\\n \\n \\n \\n
\\n\\n
\\n
\\n
\\n \\n
\\n\\n \\n\\n
\\n
\\n
App Status : {{appToEdit.status}}
\\n \\n
\\n\\n \\n
\\n\\n
\\n\\n
\\n \\n
AUTH Enable Status : {{appToEdit.jwtEnabled ? \\\"ON\\\" : \\\"OFF\\\"}}
\\n \\n
\\n \\n
\\n \\n\\n
\\n\\n
\\n \\n
\\n
Export App Database
\\n

This will export your app data from your server database.

\\n \\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
Reset App Database
\\n

This will clear your app data from your database.

\\n \\n
\\n\\n \\n
\\n \\n \\n
\\n\\n\\n
\\n
Delete App
\\n

This will delete your app entirely from your database.

\\n \\n
\\n\\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n\\n \\n
\\n
\\n
\\n

Application data of the app users.

\\n

\\n \\n

\\n
\\n
\\n \\n\\n
\\n\\n \\n
\\n \\n\\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n
No Users
\\n
\\n \\n
0\\\" style=\\\"overflow-x: hidden;\\\">\\n
\\n
\\n
\\n \\n
\\n
\\n\\n
\\n\\n
0\\\">\\n
Total User: {{appData.totalUser}}
\\n
0\\\">Total Anonnymous User: {{appData.totalAnonUser}}
\\n
\\n
\\n\\n\\n\\n
\\n
\\n \\n
\\n
\\n
\\n\\n
\\n \\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
No user is found.
\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
#HandleUser NameLogin ProviderLast LoginMetadataCreated AtControl
{{ i + 1 }}{{user.handle}}{{user.userName}}{{user.loginProvider || \\\"email\\\"}}{{user.lastLogin || \\\"\\\"}}\\n Show Metadata \\n No Metadata \\n {{user.createdAt}}    
{{ (userOffset.offset * entryAmount) + i + 1 }}{{user.handle}}{{user.userName}}{{user.loginProvider || \\\"email\\\"}}{{user.lastLogin || \\\"\\\"}}\\n Show Metadata \\n No Metadata \\n {{user.createdAt}}    
\\n
\\n \\n\\n
\\n
\\n \\n\\n\\n \\n
\\n\\n \\n\\n
\\n
No record has found.
\\n
\\n \\n
0\\\" style=\\\"overflow-x: hidden;\\\">\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
0\\\">\\n
Total Invitation: {{appData.totalInvite}}
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
No record is found.
\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
#HandleSender HandleStatusCreated AtUpdated AtControl
{{ i + 1 }}{{item.handle}}{{item.senderHandle}}{{item.status}}{{item.createdAt}}{{item.updatedAt}}
{{ (inviteOffset.offset * entryAmountInvite) + i + 1 }}{{item.handle}}{{item.senderHandle}}{{item.status}}{{item.createdAt}}{{item.updatedAt}}
\\n
\\n \\n
\\n
\\n \\n\\n
\\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n
No record has found.
\\n
\\n\\n
0\\\" style=\\\"overflow-x: hidden;\\\">\\n
\\n
\\n
\\n \\n
\\n
\\n\\n
\\n
0\\\">\\n
Total Signup: {{appData.totalSignup}}
\\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
No record is found.
\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
#HandleStatusCreated AtUpdated AtControl
{{ i + 1 }}{{item.handle}}{{item.status}}{{item.createdAt}}{{item.updatedAt}}
{{ (signUpOffset.offset * entryAmountSignUp) + i + 1 }}{{item.handle}}{{item.status}}{{item.createdAt}}{{item.updatedAt}}
\\n
\\n \\n
\\n\\n
\\n
\\n\\n
\\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n

Application keys to configure the network

\\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n
\\n \\n
\\n \\n \\n \\n {{copyPublicKeyIcon}}\\n \\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n \\n\\n
\\n\\n \\n \\n
\\n \\n \\n \\n \\n {{copyAppTokenIcon}}\\n \\n \\n \\n\\n\\n \\n \\n \\n
\\n\\n\\n \\n\\n \\n \\n
\\n
\\n
\\n
\\n\\n \\n\\n
\\n \\n
\\n \\n \\n
\\n\\n
\\n

Set your email template locale for user

\\n
\\n \\n
\\n \\n \\n \\n {{locale}} - {{findCountryByLocale(locale)}}\\n \\n \\n
\\n \\n \\n \\n
\\n
\\n\\n
\\n\\n
\\n

Email address verification

\\n

When a user signs up using an email address and password, you can send them a confirmation code to verify their registered email address. Learn more.

\\n \\n

Message edit

\\n \\n\\n
\\n \\n
\\n
\\n
\\n \\n
\\n\\n
\\n \\n \\n User will reply to this email.\\n
\\n\\n\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n\\n
\\n\\n \\n \\n \\n \\n
\\n \\n \\n \\n\\n \\n\\n
\\n\\n
\\n\\n
\\n
\\n
\\n \\n
\\n\\n\\n
\\n

Account signup verification

\\n

When a user signs up using an email address and password, you can send them a confirmation link to verify their registered email address. Learn more.

\\n \\n

Message edit

\\n \\n\\n
\\n \\n
\\n
\\n
\\n \\n
\\n\\n
\\n \\n \\n User will reply to this email.\\n
\\n\\n\\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n
\\n\\n \\n \\n \\n \\n
\\n \\n \\n \\n\\n \\n\\n
\\n\\n
\\n\\n
\\n
\\n
\\n \\n
\\n\\n\\n\\n
\\n

Account signup success

\\n

After a user signs up, you can send them a successed email to their email address. Learn more.

\\n \\n

Message edit

\\n \\n\\n
\\n \\n
\\n
\\n
\\n \\n
\\n\\n
\\n \\n \\n User will reply to this email.\\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n\\n
\\n\\n
\\n\\n \\n \\n \\n \\n
\\n \\n \\n \\n\\n \\n\\n
\\n\\n
\\n\\n
\\n
\\n
\\n \\n
\\n\\n\\n
\\n

Account signup confirmation

\\n

When a user signs up using an email address and password, you can customize the click through link page. Learn more.

\\n \\n

Message edit

\\n \\n\\n
\\n \\n
\\n
\\n \\n
\\n\\n
\\n\\n \\n \\n \\n \\n
\\n \\n \\n \\n\\n \\n\\n
\\n\\n
\\n\\n
\\n
\\n
\\n \\n
\\n\\n\\n
\\n \\n

Password reset

\\n

When a user forgets their password, a password reset email is sent to help them set up a new one. Learn more.

\\n \\n

Message edit

\\n \\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n \\n User will reply to this email.\\n
\\n \\n \\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n\\n
\\n

Account Invitation

\\n

When a user invites other account, an invitation email is sent to the email. Learn more.

\\n \\n

Message edit

\\n \\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n \\n User will reply to this email.\\n
\\n \\n \\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n\\n \\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n\\n
\\n

QR Code for Two Factor Verification

\\n

When a user enable two step verification, the user will recieve this email for the QR Code. Learn more.

\\n \\n

Message edit

\\n \\n \\n
\\n \\n
\\n \\n
\\n
\\n \\n
\\n \\n \\n User will reply to this email.\\n
\\n \\n
\\n \\n \\n \\n
\\n
\\n
\\n\\n
\\n \\n
\\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n\\n
\\n

SMS verification

\\n

Allow users to sign in using a one time passcode sent as a SMS to their mobile phones. Learn more.

\\n \\n

Message edit

\\n
\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n \\n \\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n \\n
\\n\\n\\n\\n
\\n
\\n
\\n

Application logs

\\n \\n
\\n
\\n
\\n
\\n Loading...\\n
\\n
\\n \\n \\n
\\n\\n
\\n\\n
\\n
\\n\\n \\n \\n\\n Action: \\n \\n All\\n {{act}}\\n \\n\\n
\\n
\\n\\n
\\n
\\n\\n \\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n {{logDateFilterMessage}}\\n
\\n \\n
\\n \\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n\\n
\\n\\n
\\n \\n
\\n \\n \\n\\n \\n
\\n
\\n\\n
\\n\\n\\n
No log is found.
\\n\\n
0\\\"> \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
#Log TypeActionStatusValueCreated At
{{ (logsOffset.offset * entryAmount) + i + 1 }}{{log.logType}}{{log.action}}{{log.status || \\\"\\\"}}{{log.status || \\\"\\\"}}
{{log.value}}
{{log.createdAt}}
\\n \\n
\\n
\\n\\n
\\n \\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n

MongoDB Realm Application Settings.

\\n

\\n Configure the app before initializing.\\n

\\n
\\n\\n\\n
\\n\\n
\\n
\\n

MongoDB Realm App ID

\\n
\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n

Initialize Cosync AUTH

\\n

Installed Version: {{appToEdit.appData.CosyncJWTVersion}}

\\n

Latest Version: {{cosyncVersions.cosyncJWT[0].versionNumber}}

\\n\\n
\\n
\\n \\n
\\n \\n \\n
\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n\\n\\n
\\n
\\n

Initialize Cosync AssetLink

\\n

Installed Version: {{appToEdit.appData.CosyncEngineVersion}}

\\n

Latest Version: {{cosyncVersions.cosyncEngine[0].versionNumber}}

\\n \\n
\\n

Upgrade your account to use Cosync AssetLink Engine

\\n \\n
\\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n\\n
\\n
\\n\\n
\\n\\n\\n\\n
\\n
\\n\\n
\\n \\n \\n
\\n
\\n

AUTH Settings

\\n

\\n Configure the app before initializing.\\n

\\n
\\n\\n
\\n \\n
\\n\\n \\n
\\n\\n
\\n
\\n
Two Factor Verifications
\\n

Set your two factor verifications with Google Authenticator or Twilio

\\n
\\n
\\n \\n \\n None\\n Google\\n Phone \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n \\n
\\n\\n
\\n
\\n \\n
\\n \\n
\\n\\n
\\n \\n
\\n\\n
\\n \\n \\n \\n
\\n \\n
\\n\\n
\\n \\n \\n
\\n
\\n
Allow App Invitation
\\n

Turn on or off App Invitation.

\\n\\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n\\n
Allow User Name Login
\\n

Turn on or off App User Name Login.

\\n \\n
\\n \\n
\\n
\\n\\n
Allow Apple Login
\\n

Turn on or off App Apple Login.

\\n \\n
\\n \\n
\\n
\\n
\\n\\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n \\n
\\n \\n\\n
\\n\\n
Allow Google Login
\\n

Turn on or off App Apple Login.

\\n \\n
\\n \\n
\\n\\n
\\n
\\n
\\n \\n
\\n
\\n\\n
\\n \\n
\\n\\n
\\n\\n \\n\\n
\\n\\n
Allow Anonymous Login
\\n

Turn on or off App Anonymous Login.

\\n \\n
\\n \\n
\\n \\n\\n
\\n\\n
Allow App Signup
\\n

Turn on or off App Signup.

\\n \\n
\\n \\n
\\n
\\n\\n
Set your app sign up flow
\\n\\n
\\n\\n \\n \\n Code\\n Link \\n None \\n \\n \\n
\\n\\n\\n
\\n
\\n\\n
\\n \\n
\\n
Metadata Fields
\\n

Specify where metadata is located in your AUTH. Dot notation is supported.

\\n

\\n Automatically add email field to Metadata with handle.\\n

\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
RequiredCan EditPathField NameActions
delete
\\n \\n \\n
\\n \\n\\n
\\n\\n\\n
\\n\\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n\\n \\n
\\n\\n
\\n \\n
\\n
Invite Metadata Fields
\\n

Specify what invite metadata in your app invitation. Dot notation is supported.

\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
RequiredPathField NameActions
delete
\\n \\n \\n
\\n \\n\\n
\\n\\n\\n
\\n\\n
\\n
\\n \\n \\n
\\n
\\n \\n
\\n\\n \\n
\\n\\n\\n\\n
\\n
\\n
Password Filter
\\n\\n

Set minimum strong password for user.

\\n \\n\\n
\\n \\n
\\n\\n
\\n \\n
\\n\\n : {{appToEdit.passwordMinLength}}\\n \\n
\\n\\n
\\n : {{appToEdit.passwordMinUpper}}\\n \\n
\\n
\\n : {{appToEdit.passwordMinLower}}\\n \\n
\\n\\n
\\n : {{appToEdit.passwordMinDigit}}\\n \\n
\\n\\n
\\n : {{appToEdit.passwordMinSpecial}}\\n \\n
\\n
\\n\\n \\n\\n
\\n
\\n\\n\\n\\n
\\n
\\n
Email Extensions
\\n\\n

Set your own email extension for your application. We only accept SendGrid Account.

\\n\\n
\\n \\n
\\n\\n
\\n\\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n \\n
\\n\\n
\\n\\n
\\n \\n \\n \\n
\\n \\n
\\n
\\n\\n \\n \\n
\\n \\n \\n
\\n\\n
\\n
\\n\\n\\n
\\n\\n\\n
\\n
\\n
\\n \\n \\n \\n\\n
\\n
\\n
\\n\\n\\n\\n\\n\\n
\\n

Update User: {{currentAppUser.handle}}

\\n \\n
\\n\\n
\\n
\\n\\n
\\n
\\n
Reset User Password
\\n

Please enter new password for the user.

\\n

Or click submit to use auto generate password.

\\n
\\n \\n \\n \\n Must have at least {{appToEdit.passwordMinLength}} characters.\\n \\n
\\n \\n

{{resetPaswordInfo}}

\\n
\\n \\n \\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n\\n\\n\\n\\n\\n
\\n

Create Host

\\n \\n \\n \\n
\\n\\n
\\n
\\n
\\n
Enter Host Name
\\n \\n
\\n\\n
\\n
Enter Host Server URL
\\n \\n
\\n\\n \\n
\\n
Enter Host Server Secret Token
\\n \\n \\n
\\n\\n\\n \\n \\n
\\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n

Create Application

\\n \\n \\n
\\n\\n
\\n
\\n
\\n
Enter App Name
\\n \\n
\\n \\n \\n\\n
\\n \\n
AUTH Enable : {{createAppData.jwtEnabled ? \\\"ON\\\" : \\\"OFF\\\"}}
\\n
\\n \\n
\\n\\n
\\n \\n
\\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n

Import Application

\\n \\n \\n
\\n\\n
\\n
\\n
\\n
Enter App Name
\\n \\n
\\n \\n \\n\\n
\\n \\n \\n\\n \\n

{{createAppData.file[0].name}}

\\n
\\n\\n

{{uploading_database_error}}

\\n \\n
\\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n\\n\\n
\\n

Create App User

\\n \\n
\\n\\n
\\n
\\n \\n \\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n\\n \\n\\n\\n\\n
\\n

Enter a phone number recieve a SMS

\\n \\n
\\n\\n
\\n
\\n \\n
\\n \\n
\\n\\n
\\n \\n \\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n

Customize account management emails

\\n \\n
\\n\\n
\\n\\n

When you customize an email template's subject line and message, you can use the following placeholder strings to represent values that will be filled in before sending:

\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
%APP_NAME%The name of your app. You can set this value by editing the App name field on the App page.
%HANDLE%The recipient's email address or phone number.
%CODE%The code to send to user for account verification.
%LINK%The link to send to user for account verification.
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n\\n\\n\\n\\n
\\n

User Metadata

\\n \\n
\\n\\n
\\n

User Handle: {{currentAppUser.handle}}

\\n \\n

Edit Metadata

\\n
\\n

User doesn't have any Metadata.

\\n \\n
\\n\\n
\\n

Update Your User Metadata:

\\n \\n \\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n

Modify App Locale

\\n \\n
\\n\\n
\\n

Please select the locale that you wish to add.

\\n\\n
\\n \\n \\n
\\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n
LocaleLanguageRemove
{{locale}}{{findCountryByLocale(locale)}}delete
\\n \\n \\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n\\n
\\n\\n\\n
\\n

MongoDB Realm Credential

\\n \\n
\\n\\n
\\n

Please enter your MongoDB Realm Credential. We don't store these infomation in the database.

\\n\\n
\\n \\n
\\n
Choose Version
\\n\\n \\n \\n
\\n\\n \\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n

MongoDB Realm Credential

\\n \\n
\\n\\n
\\n

Please enter your MongoDB Realm Credential to remove Cosync AUTH. We don't store these infomation in the database.

\\n\\n
\\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n\\n\\n\\n\\n
\\n

MongoDB Realm Credential

\\n \\n
\\n\\n
\\n

Please enter your MongoDB Realm Credential. We don't store these infomation in the database.

\\n

Please enter your Amazone S3 Credential. We don't store these infomation in the database.

\\n
\\n \\n
\\n
Choose Version
\\n \\n \\n
\\n \\n
\\n \\n \\n \\n \\n \\n \\n
\\n\\n
\\n \\n \\n \\n

S3 Private Bucket.

\\n
\\n \\n \\n
\\n\\n

S3 Public Bucket.

\\n
\\n \\n \\n
\\n \\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n

MongoDB Realm Credential

\\n \\n
\\n\\n
\\n

Please enter your MongoDB Realm Credential to remove Cosync AssetLink. We don't store these infomation in the database.

\\n \\n
\\n \\n
\\n \\n \\n \\n \\n
\\n \\n\\n
\\n \\n \\n
\\n\\n \\n\\n
\\n
\\n
\\n\"","export default \"\\n \\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n

{{currentUser.firstName}} {{currentUser.lastName}}

\\n
\\n \\n \\n Not Me\\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n\"","export default \"\\n\\n\\n
\\n \\n
\\n
\\n \\n
\\n\\n
\\n\\n
\\n
\\n

Log in

\\n
\\n
\\n

Please enter your email and password

\\n \\n \\n
\\n
\\n \\n email\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n lock_outline\\n \\n
\\n \\n
\\n
\\n\\n \\n \\n
\\n

{{loginResult}}

\\n
\\n\\n
\\n
\\n Loading...\\n
\\n
\\n\\n \\n\\n
\\n \\n
\\n \\n
\\n
\\n

Reset Password

\\n
\\n
\\n

Please enter your new password

\\n \\n
\\n
\\n \\n lock_outline\\n \\n
\\n \\n
\\n
\\n\\n \\n
\\n
\\n \\n lock_outline\\n \\n
\\n \\n
\\n
\\n\\n
\\n

{{passwordIsNotMatch}}

\\n
\\n\\n
\\n \\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n \\n
\\n\\n \\n \"","export default \"\\n \\n
\\n \\n
\\n
\\n
\\n

404

\\n

Page not found :(

\\n

Ooooups! Looks like you got lost.

\\n
\\n
\\n
\\n \\n
\\n\"","export default \"\"","export default \" \\n
\\n
\\n
\\n
\\n

Pick the best plan for you

\\n
We offer a global cloud database service and subscriptions for MongoDB Realm.
\\n
\\n
\\n
\\n \\n
\\n
\\n
Free
\\n
\\n
\\n weekend\\n
\\n

Limited Access

\\n

$0/mo

\\n
    \\n
  • For Teams Experimenting with COSYNC AUTH
  • \\n
  • Up to 20 COSYNC Apps
  • \\n
  • 50 Users per App
  • \\n
  • 5 Cosync AssetLink Installs
  • \\n
\\n
\\n \\n
\\n
\\n \\n\\n
\\n
\\n
Developer (Monthly)
\\n
\\n
\\n settings_system_daydream\\n
\\n

Unlimited Growth

\\n

$29/mo

\\n \\n
    \\n
  • Up to Three AUTH Hosts
  • \\n
  • COSYNC Portal Access
  • \\n
  • Unlimited COSYNC Apps
  • \\n
  • Unlimited Users
  • \\n
  • Unlimited COSYNC AssetLink Installs
  • \\n
  • Self Hosted Portal
  • \\n
  • Email Support
  • \\n
  • Flexible Plan
  • \\n
\\n\\n
\\n \\n
\\n
\\n\\n\\n
\\n
\\n
Enterprise
\\n
\\n
\\n settings_system_daydream\\n
\\n \\n

Custom Pricing

\\n

Call Us

\\n
    \\n
  • Private Environments
  • \\n
  • Custom Feature Development
  • \\n
  • Self Hosted Portal
  • \\n
  • Training
  • \\n
  • Custom SLA Available
  • \\n
  • Contact for Quote
  • \\n
  • Email us at info@cosync.io
  • \\n
\\n\\n
\\n \\n
\\n
\\n\\n
\\n
\\n \\n
\"","export default \"\\n \\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n

\\n Build Your Profile\\n

\\n
This information will let us know more about you.
\\n
Your account is expired. Please update your payment.
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
Let's start with the basic information
\\n \\n
\\n\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n \\n \\n \\n
\\n
Choose Picture
\\n \\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n\\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n \\n
\\n\\n \\n\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n\\n
\\n\\n
\\n\\n
\\n \\n\\n
\\n\\n

Please complete your profile information before upgrade your account.

\\n\\n
You are on an App Sumo lifetime plan for Cosync Auth.
\\n

Upgrade your account to a paid developer if you want to access Cosync AssetLink.

\\n \\n \\n
\\n\\n
\\n\\n

Please complete your profile information before upgrade your account.

\\n\\n
You are on a Hobbyist free plan account
\\n

Upgrade your account to a paid developer account.

\\n \\n \\n
\\n \\n
\\n
Your subscription is {{subscription.developerPlanId}}
\\n

Your subscription will be ended and renew at: {{subscription.nextBillingDate}}

\\n

Your subscription will be ended at: {{subscription.nextBillingDate}}

\\n \\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n \\n
\\n
\\n\\n
\\n
Your subscription {{subscription.developerPlanId}} is {{subscription.status}}
\\n

Please update your subscription to continue to use your application.

\\n \\n
\\n
\\n Loading...\\n
\\n
\\n\\n \\n\\n
\\n\\n\\n\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n
\\n
Billing Address
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
Payment Method
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
Billing History
\\n
\\n
\\n
\\n
\\n

To cancel your subscription email us at info@cosync.io

\\n
\\n
\\n\\n
\\n
\\n\\n
\\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n \\n
\\n\\n\\n\\n\\n\\n\\n
\\n
{{billingTitle}}
\\n \\n
\\n\\n
\\n\\n
\\n
\\n Loading...\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n {{addressFormInfo}}\\n
\\n\\n
\\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n\\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n \\n
\\n\\n
\\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n\\n
\\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n \\n {{ item.name }}\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n \\n\\n
\\n
\\n
\\n
\\n
\\n \\n\\n\\n \\n
\\n \\n
\\n\\n
0\\\">\\n \\n
\\n
\\n \\\"card\\\" \\n
\\n
\\n \\n
\\n \\n
\\n \\n
\\n \\n
Your your payment method is expired. Please update your payment.
\\n \\n
\\n
\\n\\n \\n\\n
\\n \\n \\n
\\n \\n
\\n \\n \\n
\\n\\n \\n \\n
\\n\\n
\\n \\n \\n
\\n
\\n\\n\\n \\n
\\n
\\n
\\n
\\n
\\n
{{plan.name}} - USD {{plan.price}}
\\n \\n {{plan.desc}} \\n \\n \\n {{plan.durationText}} \\n \\n
\\n\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n\\n \\n
\\n\\n\\n \\n
\\n \\n
\\n
\\n
\\n
Thank you for your subscription with Cosync.
\\n \\n You have successfuly subscribed {{subscriptionResult.planName}}.\\n \\n \\n Your subscription will be ended and auto renew at {{subscriptionResult.endDate}}.\\n \\n
\\n\\n
\\n
Whoop! something went wrong.
\\n \\n You can not subscribe to {{subscriptionResult.planName}}.\\n \\n \\n {{subscriptionResult.error.message}}.\\n \\n
\\n
\\n \\n
\\n \\n
\\n\\n \\n
\\n\\n
You don't have any billing transaction yet.
\\n
0\\\">\\n
\\n
\\n
\\n
{{item.title}}
\\n \\n {{item.amount}} - {{item.startDate}} \\n \\n \\n
\\n\\n
\\n \\n Download\\n \\n \\n Downloading\\n \\n
\\n
\\n
\\n
\\n
2 && billingList.length < billingHistory.length\\\"> \\n \\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n\\n\\n\\n\\n\\n
\\n

Change Password

\\n
\\n\\n
\\n
\\n
\\n \\n \\n \\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n

Update Two Factor Authentication

\\n\\n \\n\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n Loading...\\n
\\n
\\n\\n
\\n

{{twoFactorText}}

\\n
\\n Account: {{twoFactorAuth.email}}
\\n Secret Key: {{twoFactorAuth.googleSecretKey}}\\n
\\n \\\"\\\" \\n
\\n\\n
\\n
\\n\\n
\\n\\n
\\n \\n
\\n\\n
\\n \\n
\\n\\n
\\n\\n
\\n
\\n\\n\\n\\n\"","export default \"\\n \\n
\\n \\n
\\n
\\n
\\n
\\n

Get Started

\\n
\\n
\\n \\n
\\n \\n
\\n \\n \\n \\n
\\n \\n mail\\n \\n
\\n \\n \\n \\n
\\n
\\n \\n
\\n \\n lock_outline\\n \\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n\\n
\\n

{{validateInfo}}

\\n
\\n\\n \\n
\\n \\n
\\n \\n
\\n \\n
\\n\\n
\\n
\\n Loading...\\n
\\n
\\n \\n
\\n

Please click a confirmed link in your email. (resend link)

\\n \\n
\\n \\n
\\n \\n
\\n\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n \\n \"","export default \"\\n\\n
\\n
\\n
\\n
\\n

AGREEMENT

\\n
\\n
\\n\\n
\\n\\n
\\n \\n \\n
    \\n
  1. Agreement Overview\\n

    This Agreement represents a Service Level Agreement (“Agreement”) between Cosync, Inc. (“Cosync”) and the Client (the individual or entity that has ACCEPTED the Agreement) for user authentication and identity management of the Client’s users. Cosync is an authentication provider for clients building applications using MongoDB App Services using a self-hosted server. Cosync provides secure user authentication and identity management on behalf of the Client. This Agreement remains valid until superseded by a revised agreement mutually endorsed by the Parties.

    \\n

    This Agreement outlines the parameters of authentication and identity management services as they are mutually understood by the Parties. 

    \\n
  2. \\n
  3. Goals & Objectives\\n

    The purpose of this Agreement is to ensure that the proper elements and commitments are in place to provide consistent service to the Client and to document the agreement and intent of the Parties.

    \\n

    The goal of this Agreement is to obtain mutual agreement for authentication services between Cosync and Client.

    \\n

    The objectives of this Agreement are to:

    \\n
      \\n
    1. Provide clear reference to service ownership, roles and/ or responsibilities.
    2. \\n
    3. Present a clear, concise description of service provision to the Client.
    4. \\n
    5. Match perceptions of expected service provision with actual service support & delivery.

    6. \\n
    \\n
  4. \\n
  5. The Parties
    \\n

    The Parties to this Agreement are Cosync and the Client. There are no third party beneficiaries intended or implied by this Agreement whatsoever.

    \\n
  6. \\n\\n
  7. Periodic Review\\n
      \\n
    1. This Agreement is valid from the date Client accepts the Agreement and pays for any Services as required by Section 6 and is valid until further notice. 
    2. \\n
    3. This Agreement should be reviewed once per fiscal year, however, in lieu of a review during any specified period, the current Agreement will remain in effect.

    4. \\n
    \\n
  8. \\n
  9. Service Agreement
    The following detailed service parameters are the guidelines of Cosync in support of this Agreement.\\n
      \\n
    1. Scope of Service
      The following Services are currently covered by this Agreement:\\n
        \\n
      1. User authentication
      2. \\n
      3. User registration
      4. \\n
      5. User management
      6. \\n
      7. User signup
      8. \\n
      9. Two factor verification
      10. \\n
      11. Invitation functions
      12. \\n
      \\n
    2. \\n
    3. Client Requirements\\n
        \\n
      1. Authentication of the users for Client’s application into the Cosync Portal
      2. \\n
      3. Maintenance of Client’s self-hosted servers
      4. \\n
      5. Maintenance of Client’s individual user’s email, password (encrypted), telephone number (if two factor verification selected)
      6. \\n
      7. Best efforts by Cosync to continuously authenticate Client’s users seeking to access Client’s application(s).
      8. \\n
      \\n
    4. \\n
    5. Cosync Requirements\\n
        \\n
      1. Accurate entry of information by Client’s users
      2. \\n
      3. Proper transmission of Client user information from Client application(s) properly transmitting user information to log in
      4. \\n
      5. Client maintaining proper security over its superuser tokens and other appropriate security measures to safeguard its users’ authentication tokens and user information
      6. \\n
      7. Payment of all fees
      8. \\n
      \\n
    6. \\n
    7. Assumptions/ Acknowledged Limitations on Services\\n
        \\n
      1. Due to the nature of Cosync’s services, the Services are necessarily dependent upon the successful operation and proper functioning of Microsoft Azure, MongoDB Atlas, the Internet, and potentially other programs. 
      2. \\n
      3. It is understood and mutually acknowledged by the Parties that a malfunction or outage among any of these items would necessarily negatively impact Cosync’s ability to deliver the Services.

      4. \\n
      \\n
    8. \\n
    \\n
  10. \\n
  11. Fees for Services\\n
      \\n
    1. Free Tier – for 50 users or less for up to 20 applications, Client will not be charged a fee but must simply ACCEPT the terms of this Agreement. If the Client exceeds 20 applications or if any of the applications exceed 50 users, the Client will be asked to migrate to a self-hosted solution.
    2. \\n
    3. Developer Subscription Tier – for up to three self-hosted Cosync AUTH servers, each with an unlimited number of applications and users, the Client shall pay $29 per month, or $228 per year.
    4. \\n
    5. \\n

      Cosync may offer other potential additional services and/or options in the future for such additional fees as the Parties may agree.

    6. \\n
    \\n
  12. \\n
  13. No Express or Implied Warranties\\n

    Client accepts Cosync’s services “as is.” Cosync will use its best efforts to provide continuous services to Client, however Cosnyc makes no warranties express or implied that its services will be free from interruption or unexpected conditions\\n Cosync hereby disclaims any and all warranties express or implied regarding its services, and Cosync makes no representation that its services are fit for a particular purpose.

    \\n

    To the extent the Client experiences losses due to Cosync’s service, Cosync’s liability is limited to a refund of the fees it charges for its services to the Client.

    \\n
  14. \\n
  15. \\n Ownership of Data \\n

    Cosync will own all data regarding Client’s users’ activity logging into Client’s applications via’s Cosync’s authentication and identity verification processes for sandbox applications. Client shall make all necessary disclosures regarding Cosync’s ownership and use of Client’s users’ data to its users, and to the extent necessary Client warrants and represents it will procure all consents necessary by operation of law from its users to effectuate this term.

    \\n

    Client will own all data regarding Client’s users’ activity logging into Client’s applications via’s Cosync’s authentication and identity verification processes for self-hosted applications.

    \\n
  16. \\n
  17. Governing Law \\n

    The Parties agree that this Agreement was entered into in the State of North Carolina, and that this Agreement will be governed by, construed, and enforced in accordance with the laws of the State of North Carolina without regard to conflict of law principles. 

    \\n
  18. \\n
  19. Disputes\\n
      \\n
    1. Indemnification – if anyone brings a claim, cause of action, or dispute against Cosync related to services, actions, content or information, you agree to indemnify, defend and hold us harmless from and against all damages, losses, and expenses of any kind (including the cost of our defense ) related to any such claim, cause of action or dispute.
    2. \\n
    3. Dispute Resolution\\n

      If Client resides or is located wholly outside the United States any claim, cause of action, or dispute between Client and Cosync regarding any matter arising in any way from this Agreement must be resolved exclusively in the United States District Court for the Eastern District of North Carolina or a State Court located in Wake County, North Carolina, and the Parties irrevocably submit to the personal jurisdiction of either of these courts for the purpose of litigating any such claim, and that the laws of the State of North Carolina will govern this Agreement without regarding to conflict of law provisions.

      \\n

      If Client resides or is located in the United States, any claim, cause of action, or dispute between Client and Cosync regarding any matter arising in any way arising from this Agreement then the Parties shall submit the matter to binding arbitration to be held within the State of North Carolina. The Parties waive their respective rights to a trial by jury or to participate in a class or representative action. The Federal Arbitration Act shall govern the interpretation and enforcement of this arbitration provision. All issues are to be decided by an arbitrator, except.

      \\n
    4. \\n
    \\n
  20. \\n
  21. Other\\n
      \\n
    1. If any portion of this Agreement is found to be unenforceable, then (except as otherwise provided) that portion will be severed and the remaining portion will remain in full force and effect.
    2. \\n
    3. If Cosync fails to enforce any term in this Agreement it will not be considered a waiver.
    4. \\n
    5. Any amendment to or waiver of the terms in this Agreement by either party must be in writing signed by both Parties.
    6. \\n
    7. All of Cosync’s rights under this Agreement are freely assignable in connection with a merger, acquisition, sale of assets, or by operation of law or otherwise.
    8. \\n
    9. Cosync reserves all rights not expressly granted to Client in this Agreement.
    10. \\n
    \\n
  22. \\n
\\n




\\n
\\n
\\n
\\n
\\n\\n\\n \\n\\n\\n\\n \"","export default \"\\n \\n
\\n \\n
\\n
\\n
\\n

Under Construnction

\\n

Page is not available :(

\\n

Please visit us next time.

\\n
\\n
\\n
\\n \\n
\\n\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component'; \nimport { AppsComponent } from './components/apps/apps.component';\nimport { NotFoundComponent } from './components/not-found/not-found.component';\nimport { UnderConstructionComponent } from './components/under-construction/under-construction.component';\nimport { ActivateComponent } from './components/activate/activate.component';\nimport { LockComponent } from './components/lock/lock.component';\nimport { AuthGuard } from './auth/auth.guard';\nimport { ProfileComponent } from './components/profile/profile.component';\nimport { TermConditionComponent } from './components/term-condition/term-condition.component';\nimport { AdminComponent } from './components/admin/admin.component';\nimport { ClickThroughComponent } from './components/click-through/click-through.component';\nimport { PricingComponent } from './components/pricing/pricing.component';\nimport { DownloadComponent } from './components/download/download.component'; \nimport { HostsComponent } from './components/hosts/hosts.component';\nimport { AppsumoComponent } from './components/appsumo/appsumo.component';\n\n\nconst routes: Routes = [\n { path: '', component: HostsComponent, canActivate: [AuthGuard] },\n { path: 'login', component: LoginComponent },\n { path: 'pricing', component: PricingComponent },\n { path: 'profile', component: ProfileComponent, canActivate: [AuthGuard] },\n { path: 'profile/:option', component: ProfileComponent, canActivate: [AuthGuard] },\n { path: 'profile/:option/:service', component: ProfileComponent, canActivate: [AuthGuard] },\n { path: 'register', component: RegisterComponent },\n { path: 'appsumo', component: AppsumoComponent },\n { path: 'apps', component: AppsComponent, canActivate: [AuthGuard] },\n { path: 'apps/app/:id', component: AppsComponent, canActivate: [AuthGuard] },\n { path: 'sandbox/apps', component: AppsComponent, canActivate: [AuthGuard] },\n { path: 'sandbox/apps/app/:id', component: AppsComponent, canActivate: [AuthGuard] },\n { path: 'app/:id', component: AppsComponent, canActivate: [AuthGuard] },\n { path: 'hosts', component: HostsComponent, canActivate: [AuthGuard] },\n { path: 'host/:id/:action', component: HostsComponent, canActivate: [AuthGuard] },\n { path: 'host/:id/:action/:appId', component: HostsComponent, canActivate: [AuthGuard] },\n { path: 'host/:id', component: HostsComponent, canActivate: [AuthGuard] },\n { path: 'lock', component: LockComponent, canActivate: [AuthGuard] },\n { path: 'lock/:logout', component: LockComponent, canActivate: [AuthGuard] },\n { path: 'download', component: DownloadComponent, canActivate: [AuthGuard] },\n { path: 'activate/:token', component: ActivateComponent },\n { path: 'clickthrough/:token/:handle/:code', component: ClickThroughComponent },\n { path: 'clickthrough/:token/:handle/:code/:hostId', component: ClickThroughComponent },\n { path: 'resetPassword/:reset', component: LoginComponent },\n { path: 'under-construction', component: UnderConstructionComponent },\n { path: 'term-condition', component: TermConditionComponent }, \n { path: 'admin', component: AdminComponent },\n { path: '**', component: NotFoundComponent }\n];\n \n\nexport const AppRoutingModule = RouterModule.forRoot(routes);\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit } from '@angular/core'; \nimport { NotificationService } from './services/notification.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent implements OnInit{\n title = 'CosyncJWT-Website';\n\n constructor( private notiSerivce:NotificationService, ){\n\n }\n\n ngOnInit() { \n\n }\n\n\n onClickPage(){ \n this.notiSerivce.task('refreshToken'); \n }\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport {DatePipe} from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'; \nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport {NgbModule} from '@ng-bootstrap/ng-bootstrap'; \nimport { NouisliderModule } from 'ng2-nouislider';\nimport {\n MatAutocompleteModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatDialogModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatFormFieldModule,\n MatListModule,\n MatMenuModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatStepperModule,\n} from '@angular/material'; \nimport { MatDatepickerModule } from '@angular/material/datepicker';\n\nimport { AppsComponent } from './components/apps/apps.component';\nimport { NotFoundComponent } from './components/not-found/not-found.component';\nimport { UnderConstructionComponent } from './components/under-construction/under-construction.component';\nimport { ActivateComponent } from './components/activate/activate.component';\nimport { HeaderComponent } from './components/header/header.component';\nimport { LockComponent } from './components/lock/lock.component';\nimport { FooterComponent } from './components/footer/footer.component';\nimport { ProfileComponent } from './components/profile/profile.component';\nimport { LoginComponent } from './components/login/login.component';\nimport { RegisterComponent } from './components/register/register.component';\nimport { PaginationComponent } from './components/pagination/pagination.component';\nimport { TermConditionComponent } from './components/term-condition/term-condition.component';\nimport { AdminComponent } from './components/admin/admin.component';\nimport { ClickThroughComponent } from './components/click-through/click-through.component';\nimport { NgxJsonViewerModule } from 'ngx-json-viewer';\nimport { PricingComponent } from './components/pricing/pricing.component';\nimport { DownloadComponent } from './components/download/download.component'; \nimport { HostsComponent } from './components/hosts/hosts.component';\nimport { AppsumoComponent } from './components/appsumo/appsumo.component'; \n\n@NgModule({\n exports: [\n MatAutocompleteModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatStepperModule,\n MatDatepickerModule,\n MatDialogModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatFormFieldModule,\n MatListModule,\n MatMenuModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n NouisliderModule\n ],\n declarations: []\n})\nexport class MaterialModule {}\n\n@NgModule({\n declarations: [\n LockComponent, \n ActivateComponent,\n RegisterComponent,\n AppsumoComponent,\n LoginComponent,\n HeaderComponent, \n AppComponent, \n FooterComponent,\n ProfileComponent,\n AppsComponent,\n NotFoundComponent,\n UnderConstructionComponent,\n PaginationComponent,\n TermConditionComponent,\n AdminComponent,\n ClickThroughComponent,\n PricingComponent,\n DownloadComponent,\n HostsComponent\n ],\n imports: [ \n NgbModule,\n BrowserModule,\n AppRoutingModule, \n FormsModule,\n ReactiveFormsModule,\n HttpClientModule,\n MaterialModule,\n MatNativeDateModule,\n BrowserAnimationsModule,\n NgxJsonViewerModule\n ],\n providers: [DatePipe],\n bootstrap: [AppComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class AppModule { }\n","import { Injectable } from '@angular/core';\nimport { CanActivate, CanLoad, Route, UrlSegment, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { AuthenticationService } from '../services/authentication.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard implements CanActivate, CanLoad {\n\n constructor(private authService: AuthenticationService, private router: Router) {}\n\n\n canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n let url: string = state.url;\n\n return this.checkLogin(url);\n \n }\n canLoad(\n route: Route,\n segments: UrlSegment[]): Observable | Promise | boolean {\n return true;\n }\n\n checkLogin(url: string): boolean {\n if (this.authService.user) { return true; }\n\n // Store the attempted URL for redirecting\n this.authService.redirectUrl = url;\n\n // Navigate to the login page with extras\n this.router.navigate(['/login']);\n return false;\n }\n\n}\n","export default \".activate-page {\\n padding-top: 100px !important;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hY3RpdmF0ZS9hY3RpdmF0ZS5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsNkJBQTZCO0FBQy9CIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9hY3RpdmF0ZS9hY3RpdmF0ZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFjdGl2YXRlLXBhZ2Uge1xuICBwYWRkaW5nLXRvcDogMTAwcHggIWltcG9ydGFudDtcbn1cbiJdfQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { AuthenticationService } from 'src/app/services/authentication.service';\n\n@Component({\n selector: 'app-activate',\n templateUrl: './activate.component.html',\n styleUrls: ['./activate.component.css']\n})\nexport class ActivateComponent implements OnInit {\n\n activateResult:any = {};\n\n constructor(private router: Router, private route: ActivatedRoute, private authService:AuthenticationService) { \n let token = this.route.snapshot.paramMap.get('token'); \n \n \n\n if(token){\n this.authService.logout();\n \n authService.activateAccount(token).then(result => {\n let item = result as any;\n this.activateResult.message = item.message;\n this.activateResult.title = `Welcome ${item.email}`;\n this.activateResult.status = true;\n\n \n }).catch(err => {\n this.activateResult.title = `Whoop! Something went wrong.`;\n this.activateResult.message = err.error.message;\n this.activateResult.status = false;\n });\n }\n else {\n this.router.navigate(['/login']);\n }\n }\n\n ngOnInit() {\n \n\n }\n\n getStart(){\n this.router.navigate(['/login']);\n }\n\n}\n","export default \"\\ndiv.user-entry select {\\n width: auto; \\n}\\n\\n\\n.user-fillter{\\n text-align: right;\\n}\\n\\n\\ndiv.user-fillter input {\\n width: auto;\\n margin-left: .5rem;\\n display: inline-block;\\n \\n}\\n\\n\\n.pagination-wrapper{\\n text-align: right;\\n display: block;\\n}\\n\\n\\n.loader{\\n width: 20px !important;\\n margin-top: -10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hZG1pbi9hZG1pbi5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtJQUNJLFdBQVc7QUFDZjs7O0FBR0E7SUFDSSxpQkFBaUI7QUFDckI7OztBQUVBO0lBQ0ksV0FBVztJQUNYLGtCQUFrQjtJQUNsQixxQkFBcUI7O0FBRXpCOzs7QUFHQTtJQUNJLGlCQUFpQjtJQUNqQixjQUFjO0FBQ2xCOzs7QUFFQTtJQUNJLHNCQUFzQjtJQUN0QixpQkFBaUI7QUFDckIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2FkbWluL2FkbWluLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcbmRpdi51c2VyLWVudHJ5IHNlbGVjdCB7XG4gICAgd2lkdGg6IGF1dG87IFxufVxuXG5cbi51c2VyLWZpbGx0ZXJ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbmRpdi51c2VyLWZpbGx0ZXIgaW5wdXQge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgXG59XG5cblxuLnBhZ2luYXRpb24td3JhcHBlcntcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmxvYWRlcntcbiAgICB3aWR0aDogMjBweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi10b3A6IC0xMHB4O1xufSJdfQ== */\"","import { Component, OnInit, ViewChild, AfterViewInit} from '@angular/core';\nimport {DatePipe} from '@angular/common';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AdminService } from 'src/app/services/admin.service';\nimport { AuthenticationService } from 'src/app/services/authentication.service';\nimport swal from 'sweetalert2';\n@Component({\n selector: 'app-admin',\n templateUrl: './admin.component.html',\n styleUrls: ['./admin.component.css']\n})\nexport class AdminComponent implements OnInit, AfterViewInit {\n @ViewChild('developerPagination', {static: false}) developerPagination: any = {};\n @ViewChild('freeDeveloperPagination', {static: false}) freeDeveloperPagination: any = {};\n @ViewChild('paidDeveloperPagination', {static: false}) paidDeveloperPagination: any = {};\n @ViewChild('authorizedModal', {static: false}) authorizedModal: any;\n @ViewChild('couponLogsPagination', {static: false}) couponLogsPagination: any = {};\n\n currentPassword:string = \"\" ;\n newPassword:string = \"\" ;\n \n\n loading_service:boolean = false;\n sortType:string = 'all';\n authorized:boolean = false;\n searchDevResult:any;\n developerResult:any;\n freeDeveloperResult:any;\n searchFreeResult:any;\n paidDeveloperResult:any;\n searchPaidResult:any;\n loginText:string= \"\";\n loading_data:boolean = false; \n devOffset:any = {page:1, order: 1, offset: 0};\n freeDevOffset:any = {page:1, order: 1, offset: 0};\n paidDevOffset:any = {page:1, order: 1, offset: 0};\n entryAmountFreeDev:number = 25;\n entryAmountPaidDev:number = 25;\n entryAmount:number = 25;\n currentDeveloper:any;\n currentDeveloperList:any;\n developerCertificate:any = {\n licenseAmount: 1,\n developer: []\n };\n inputLicense: any = [0];\n createVersionData : any = {};\n currentApp:any;\n developerApps:any;\n developerBilling:any;\n searchBillingResult:any;\n page:string = 'main';\n devTap:string = 'all';\n freeDev:number = 0;\n paidDev:number = 0;\n allDev:number = 0;\n couponTotalLog:Number = 0\n admin:any;\n twoFactorText:string = \"\";\n twoFactorAuth:any;\n modalTitle:string = 'setting';\n infoText:string;\n cosyncVersions:any = {\n cosyncEngine:[],\n cosyncJWT: []\n };\n couponLogs : any = {list:[]}; \n searchCouponLogs:any;\n couponList = [];\n currentCouponData : any = {};\n showCouponLog = false;\n couponEntryAmount:number = 25;\n couponLogsOffset:any = {page:1, order: 1, offset: 0}; \n\n constructor( private modalService: NgbModal, private adminService:AdminService, private authService:AuthenticationService, private datePipe: DatePipe ) {\n this.authService.logout();\n } \n \n\n ngOnInit() {\n \n \n }\n\n ngAfterViewInit(){\n \n if(!this.authorized){\n let that = this;\n \n this.modalService.open(that.authorizedModal, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => {\n\n });\n }\n\n }\n\n submitCertificate(){\n \n\n if(this.developerCertificate.developer.length > this.inputLicense.length || this.developerCertificate.developer.length < this.inputLicense.length){\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: \"Invalid License Amount\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false \n });\n\n return;\n }\n\n\n for (let index = 0; index < this.inputLicense.length; index++) {\n const element = this.developerCertificate.developer[index];\n\n if(!element || element.email == \"\"){\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: \"Invalid Developer Email/Username\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false \n });\n\n return;\n } \n \n }\n\n this.developerCertificate.developerUid = this.currentDeveloper.uid;\n\n\n this.adminService.requestDeveloperCertificate(this.developerCertificate).then(res => {\n\n swal({\n title: 'Sucesses!',\n text: 'Certificate has been sent to developer email.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n }).catch(err => {\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: \"Invalid Developer Data\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false \n });\n });\n\n \n \n }\n\n onkeyUpLicenseDataEvent(item){\n let length = parseInt(item.value); \n this.inputLicense = [];\n for (let index = 0; index < length; index++) {\n let item = {email: '', index: index};\n this.inputLicense.push(item);\n }\n \n this.developerCertificate.licenseAmount = length;\n } \n\n\n onkeyUpLicenseDeveloperEvent(item, field){\n this.developerCertificate.developer[field.index] = item.value;\n }\n \n\n\n submit(username, password, twoFactorCode){\n this.loginText = \"\";\n\n this.authService.loginAdmin(username, password, twoFactorCode).then(res => {\n this.authorized = true;\n this.modalService.dismissAll();\n this.admin = res;\n this.getDevelopers();\n this.getCosyncVersions();\n this.getCoupons();\n\n }).catch(err => {\n this.loginText = \"Invalid Credential\";\n })\n }\n\n\n getCoupons(){\n let that = this;\n this.adminService.getCoupons(function(results){\n that.couponList = results\n }); \n }\n\n getCosyncVersions(){\n let that = this;\n this.adminService.getCosyncVersion(function(versions){\n versions.forEach(v => {\n if(v.service == \"CosyncEngine\") that.cosyncVersions.cosyncEngine.push(v);\n else if(v.service == \"CosyncJWT\") that.cosyncVersions.cosyncJWT.push(v);\n });\n }); \n }\n\n getDevelopers(){ \n \n\n this.adminService.getDevelopers('').then(res => {\n this.loading_data = false;\n let result = res as any; \n this.developerResult = result.list; \n this.allDev = result.total;\n\n this.developerResult.filter(u => { \n\n u.show = true;\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y');\n \n }); \n\n });\n\n this.adminService.getDevelopers({type:'free'}).then(res => { \n let result = res as any; \n this.freeDeveloperResult = result.list; \n this.freeDev = result.total;\n this.freeDeveloperResult.filter(u => { \n u.show = true;\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y'); \n }); \n\n });\n\n this.adminService.getDevelopers({type:'paid'}).then(res => { \n let result = res as any; \n this.paidDeveloperResult = result.list; \n this.paidDev = result.total;\n this.paidDeveloperResult.filter(u => { \n u.show = true;\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y'); \n }); \n\n });\n\n }\n\n searchAllDeveloper(value){\n this.adminService.searchDevelopers({search:value}).then(res => { \n let result = res as any; \n this.searchDevResult = result.list; \n this.searchDevResult.filter(u => { \n u.show = true;\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y'); \n });\n\n this.developerPagination.data = {\n totalItem: result.total, \n entryAmount: this.entryAmount,\n };\n });\n }\n\n searchFreeDeveloper(value){\n this.adminService.searchDevelopers({type:'free', search:value}).then(res => { \n let result = res as any; \n this.searchFreeResult = result.list; \n this.searchFreeResult.filter(u => { \n u.show = true;\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y'); \n });\n });\n }\n\n searchPaidDeveloper(value){\n this.adminService.searchDevelopers({type:'paid', search:value}).then(res => { \n let result = res as any; \n this.searchPaidResult = result.list;\n this.searchPaidResult.filter(u => { \n u.show = true;\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y'); \n });\n });\n }\n\n\n searchValidateCoupon(value){\n const encoded = encodeURIComponent(value);\n\n this.adminService.searchValidateCoupon(encoded).then(res => { \n let result = res as any; \n \n if (result && result.planId){\n this.searchCouponLogs = [result]; \n this.searchCouponLogs.filter(log => { \n log.show = true;\n log.createdAt = this.datePipe.transform(new Date(log.createdAt), 'MMM d, y');\n log.updatedAt = this.datePipe.transform(new Date(log.updatedAt), 'MMM d, y'); \n });\n }\n else if (result){\n swal({\n title: \"Success!\",\n text: `This is a valid coupon: ${result.couponCode}`,\n buttonsStyling: false,\n confirmButtonClass: \"btn btn-success\",\n type: \"success\"\n }).catch(swal.noop)\n }\n else {\n swal({\n type: 'error',\n title: 'Whoop! Invalid Coupon.',\n text: \"Invalid Data\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false \n });\n }\n\n }).catch(err => {\n swal({\n type: 'error',\n title: 'Whoop! Invalid Coupon.',\n text: err.error && err.error.message ? err.error.message :\"Invalid Data\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false \n });\n })\n }\n\n filterKeyChangeCouponLog(event){\n\n \n \n this.searchCouponLogs = null;\n let value = event.target.value;\n if(value == \"\") this.searchCouponLogs = null;\n\n this.\n couponLogs.list.filter(log => { \n if(log.couponCode.indexOf(value) >= 0) log.show = true;\n else log.show = false; \n });\n\n if(event.keyCode == 13) this.searchValidateCoupon(value);\n\n }\n\n filterKeyChangeFree(event){\n this.searchFreeResult = null;\n let value = event.target.value;\n if(value == \"\") this.searchFreeResult = null;\n\n this.freeDeveloperResult.filter(u => { \n if(u.email.indexOf(value) >= 0 || u.uid.indexOf(value) >= 0) u.show = true;\n else u.show = false; \n });\n\n if(event.keyCode == 13) this.searchFreeDeveloper(value);\n \n }\n\n\n filterKeyChangePaid(event){\n \n let value = event.target.value; \n if(value == \"\") this.searchPaidResult = null;\n\n this.paidDeveloperResult.filter(u => { \n if(u.email.indexOf(value) >= 0 || u.uid.indexOf(value) >= 0) u.show = true;\n else u.show = false; \n });\n if(event.keyCode == 13) this.searchPaidDeveloper(value);\n }\n\n filterKeyChange(event){\n \n let value = event.target.value;\n if(value == \"\"){\n this.developerPagination.data = {\n totalItem: this.allDev, \n entryAmount: this.entryAmount,\n };\n this.searchDevResult = null;\n } \n\n this.developerResult.filter(u => {\n if(u.email.indexOf(value) >= 0 || u.uid.indexOf(value) >= 0) u.show = true;\n else u.show = false; \n }); \n \n if(event.keyCode == 13) this.searchAllDeveloper(value);\n }\n\n\n sortDeveloper(type){\n this.sortType = type;\n this.developerResult.filter(u => { \n if(type == 'all'){\n u.show = true; \n }\n else{\n if(u.type == type) u.show = true; \n else u.show = false; \n }\n \n }); \n\n }\n\n onClickDevTap(tap){\n this.devTap = tap;\n }\n\n onkeyUpEvent(evt, username, password, twoFactorCode){\n if (evt.key === \"Enter\") this.submit(username, password, twoFactorCode)\n }\n\n clickBackButton(){\n this.page = 'main';\n if(this.devTap == 'free'){\n let element:HTMLElement = document.getElementById('free-tap') as HTMLElement;\n if (element) element.click();\n }\n else if(this.devTap == 'paid'){\n let element:HTMLElement = document.getElementById('paid-tap') as HTMLElement;\n if (element) element.click();\n }\n }\n\n updateDeveloperStatus(value){ \n\n this.adminService.updateDeveloperStatus(this.currentDeveloper.uid, value).then(res => { \n\n this.paidDeveloperResult.map(dev => { if (dev.uid === this.currentDeveloper.uid) dev.status = value })\n this.freeDeveloperResult.map(dev => { if (dev.uid === this.currentDeveloper.uid) dev.status = value })\n this.developerResult.map(dev => { if (dev.uid === this.currentDeveloper.uid) dev.status = value })\n \n swal({\n title: 'Sucesses!',\n text: 'Developer status has been updated.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n }).catch(err => {\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: \"Invalid Data\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false \n });\n })\n\n }\n\n deleteDeveloper(){\n\n swal({\n title: `Are you sure to delete this developer?`,\n text: `Developer: ${this.currentDeveloper.email}, Cannot undo this deletion.`,\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, Do it!',\n cancelButtonText: 'Cancel',\n confirmButtonClass: \"btn btn-success\",\n cancelButtonClass: \"btn btn-danger\",\n buttonsStyling: false\n }).then((result) => {\n if (result.value) {\n this.adminService.updateDeveloperStatus(this.currentDeveloper.uid, 'delete').then(res => { \n\n let deletedVev = res as any;\n\n this.paidDeveloperResult = this.paidDeveloperResult.filter(dev => dev.uid != deletedVev.developerUid)\n this.freeDeveloperResult = this.freeDeveloperResult.filter(dev => dev.uid != deletedVev.developerUid)\n this.developerResult = this.developerResult.filter(dev => dev.uid != deletedVev.developerUid)\n \n swal({\n title: 'Sucesses!',\n text: 'Developer status has been deleted.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n }).catch(err => {\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: \"Invalid Data\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false \n });\n })\n \n }\n })\n\n }\n\n handleDeveloperStatus(status){\n if (this.admin.role != \"administrator\" || !this.currentDeveloper || !this.currentDeveloper.uid) return; \n\n if (status == \"delete\") this.deleteDeveloper();\n else this.updateDeveloperStatus(status);\n\n }\n\n\n\n clickDeveloper(dev, currentList){\n\n if (this.admin.role != \"administrator\") return;\n this.currentDeveloperList = currentList;\n this.loading_data = true;\n this.currentDeveloper = dev;\n this.page = 'developer';\n this.adminService.getDeveloperApp(dev).then(res => {\n this.developerApps = res as any;\n this.loading_data = false;\n if(this.developerApps){\n this.developerApps.filter(app => {\n \n app.createdAt = this.datePipe.transform(new Date(app.createdAt), 'MMM d, y');\n app.updatedAt = this.datePipe.transform(new Date(app.updatedAt), 'MMM d, y');\n \n }); \n }\n });\n\n this.adminService.getDeveloperBilling(dev).then(res => {\n this.developerBilling = res as any; \n this.developerBilling.filter(item => { \n if(item.appUserChargeTransactionId) item.type = \"Subscription\";\n else item.type = \"App User Charge\";\n item.show = true;\n item.transactionId = item.appUserChargeTransactionId || item.subscriptionTransactionId;\n let day2:any = new Date(item.createdAt);\n let day1:any = new Date();\n var dayDif = (day1 - day2) / 1000 / 60 / 60 / 24;\n item.countDay = Math.round(dayDif);\n item.createdAt = this.datePipe.transform(new Date(item.createdAt), 'MMM d, y');\n item.updatedAt = this.datePipe.transform(new Date(item.updatedAt), 'MMM d, y'); \n \n }); \n });\n }\n\n shutdownApp(app){\n this.adminService.updateDeveloperAppStatus(app, 'blocked').then(res => { \n app.status = 'blocked';\n });\n }\n\n activateApp(app){\n this.adminService.updateDeveloperAppStatus(app, 'active').then(res => { \n app.status = 'active';\n });\n }\n\n clickDeveloperApp(app){\n this.page = 'appUser';\n }\n\n backToApp(){\n this.page = 'developer';\n }\n\n clickDeveloperTransaction(tran){\n\n }\n\n refundInvoice(item){\n let that = this;\n swal({\n title: `Are you sure to refund this invoice?`,\n text: `Invoice ID ${item.invoiceId}, Amount: ${item.amount}`,\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, refund it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-success\",\n cancelButtonClass: \"btn btn-danger\",\n buttonsStyling: false\n }).then((result) => {\n if (result.value) {\n item.status = 'refunding';\n that.adminService.refundTransaction(item).then(res => {\n \n item.status = 'refunded';\n swal({\n title: 'Sucesses!',\n text: 'Invoice has been refunded.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n }).catch(err => {\n item.status = 'paid';\n let errMsg = err as any;\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: errMsg.error.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false \n });\n });\n\n } else {\n \n }\n })\n }\n\n\n\n onChangeEntryAmount(evt){\n\n this.entryAmount = parseInt(evt.target.value);\n\n \n this.adminService.getDevelopers({limit: this.entryAmount, offset:0 }).then(res => {\n this.developerResult = res as any; \n \n this.developerResult.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y');\n \n }); \n\n this.developerPagination.data = {\n totalItem: this.allDev, \n entryAmount: this.entryAmount,\n };\n\n }); \n\n }\n\n\n\n onChangeEntryAmountFree(evt){\n\n this.entryAmountFreeDev = parseInt(evt.target.value);\n\n \n this.adminService.getDevelopers({type:'free', limit: this.entryAmountFreeDev, offset:0 }).then(res => {\n this.freeDeveloperResult = res as any; \n this.searchFreeResult = null;\n this.freeDeveloperResult.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y');\n \n }); \n\n this.freeDeveloperPagination.data = {\n totalItem: this.freeDev, \n entryAmount: this.entryAmountFreeDev,\n };\n\n }); \n\n }\n\n\n onChangeEntryAmountPaid(evt){\n\n this.entryAmountPaidDev = parseInt(evt.target.value);\n\n \n this.adminService.getDevelopers({type:'paid', limit: this.entryAmountPaidDev, offset:0 }).then(res => {\n this.paidDeveloperResult = res as any; \n this.searchPaidResult = null;\n this.paidDeveloperResult.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y');\n \n }); \n\n this.paidDeveloperPagination.data = {\n totalItem: this.paidDev, \n entryAmount: this.entryAmountPaidDev,\n };\n\n }); \n\n }\n\n\n changeFreeDevPage(page){\n this.searchFreeResult = null;\n if(this.freeDevOffset.page == page.page) return;\n this.freeDevOffset = page; \n this.freeDevOffset.offset = this.freeDevOffset.page -1;\n\n this.adminService.getDevelopers({type:'free', limit:this.entryAmountFreeDev, offset:this.freeDevOffset.offset}).then(res => {\n let result = res as any; \n this.freeDeveloperResult = result.list;\n this.freeDeveloperResult.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y'); \n }); \n }); \n }\n\n \n changePaidDevPage(page){\n this.searchPaidResult = null;\n if(this.paidDevOffset.page == page.page) return;\n \n this.paidDevOffset = page; \n this.paidDevOffset.offset = this.paidDevOffset.page -1;\n this.adminService.getDevelopers({type:'paid', limit:this.entryAmountPaidDev, offset:this.paidDevOffset.offset}).then(res => {\n let result = res as any; \n this.paidDeveloperResult = result.list;\n this.paidDeveloperResult.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y'); \n }); \n }); \n }\n\n changeDeveloperPage(page){ \n this.searchDevResult = null;\n if(this.devOffset.page == page) return;\n \n this.devOffset = page; \n this.devOffset.offset = this.devOffset.page -1;\n this.adminService.getDevelopers({type:'all', limit:this.entryAmount, offset:this.devOffset.offset }).then(res => {\n let result = res as any; \n this.developerResult = result.list;\n this.developerResult.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y'); \n }); \n }); \n }\n\n\n onCouponLogsPaginationInit(evt){\n\n\n let that = this;\n \n setTimeout(function() {\n if(that.couponLogsPagination){\n that.couponLogsPagination.data = {\n totalItem: that.couponTotalLog, \n entryAmount: that.couponEntryAmount,\n };\n }\n \n }, 1000); \n }\n\n\n \n\n onPaginationInit(evt){\n let that = this; \n setTimeout(function() {\n that.developerPagination.data = {\n totalItem: that.allDev, \n entryAmount: that.entryAmount,\n page: that.devOffset\n };\n }, 1000); \n }\n\n onFreePaginationInit(evt){\n let that = this; \n setTimeout(function() {\n that.freeDeveloperPagination.data = {\n totalItem: that.freeDev, \n entryAmount: that.entryAmountFreeDev,\n page: that.freeDevOffset\n };\n }, 1000); \n }\n\n onPaidPaginationInit(evt){\n let that = this; \n setTimeout(function() {\n that.paidDeveloperPagination.data = {\n totalItem: that.paidDev, \n entryAmount: that.entryAmountPaidDev,\n page: that.paidDevOffset\n };\n }, 1000); \n }\n\n changeBillingPagination(evt){\n\n }\n\n onBillingPaginationInit(evt){\n\n }\n\n billingKeyChange(event){\n \n let value = event.target.value; \n if(value == ''){\n this.developerBilling.filter(item => { \n item.show = true; \n });\n return;\n }\n \n this.developerBilling.filter(item => { \n \n let transactionId = item.appUserChargeTransactionId || item.subscriptionTransactionId;\n let valid = item.invoiceId.indexOf(value) >= 0 || transactionId.indexOf(value) >= 0 || item.amount.indexOf(value) >= 0 ;\n \n if(valid) item.show = true;\n else item.show = false; \n });\n }\n\n\n opendAdminSetting(content){\n this.modalTitle = 'setting';\n\n // this.modalService.open(content, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n // }, (reason) => {\n\n // });\n }\n\n requestNewTwoFactor(){\n\n this.modalTitle = 'twoFactor';\n\n this.loading_service = true;\n \n this.adminService.requestNewTwoFactor(this.admin).then(res => {\n this.twoFactorText = 'Scan the QR code or enter the secret key in Google Authenticator. Your previous code will not work anymore.';\n \n this.twoFactorAuth = res;\n this.loading_service = false;\n }).catch(err => {\n this.loading_service = false;\n let errMsg = err as any;\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: errMsg.error.message || errMsg.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false \n });\n })\n }\n\n\n updateProfileTwoFactor(){\n this.loading_service = true;\n let data = {\n googleSecretKey: this.twoFactorAuth.googleSecretKey\n };\n this.adminService.updateAdmin(data).then(res => {\n this.loading_service = false;\n this.modalTitle = 'setting';\n });\n }\n\n\n updateAdminPassowrd(){\n let data = {\n currentPassword: this.currentPassword,\n newPassword: this.newPassword\n };\n\n if( data.currentPassword == \"\" || data.newPassword == \"\" ){\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: \"Please enter a valid password\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false \n });\n\n return\n }\n \n\n if( data.currentPassword == undefined || data.newPassword == undefined ){\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: \"Please enter a valid password\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false \n });\n\n return\n }\n \n\n this.adminService.updateAdmin(data).then(res => {\n \n swal({\n title: 'Sucesses!',\n text: 'Your password has been updated.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n }).catch(err => {\n let errMsg = err as any;\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: errMsg.error.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false \n });\n })\n }\n\n submitAddVersion(service){\n this.createVersionData.service = service;\n this.loading_service = true;\n\n this.adminService.createNewCosyncVersion(this.createVersionData).then(res => {\n this.loading_service = false;\n this.modalService.dismissAll();\n swal({\n title: 'Sucesses!',\n text: 'Your password has been updated.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n }).catch(err => {\n this.loading_service = false;\n let errMsg = err as any;\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: errMsg.error.message || errMsg.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false \n });\n })\n }\n\n submitEditVersion(){\n\n this.loading_service = true;\n\n this.adminService.updateCosyncVersion(this.createVersionData).then(res => {\n this.loading_service = false;\n this.modalService.dismissAll();\n swal({\n title: 'Sucesses!',\n text: 'Your password has been updated.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n }).catch(err => {\n this.loading_service = false;\n let errMsg = err as any;\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: errMsg.error.message || errMsg.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false \n });\n })\n }\n\n\n\n\n editCosyncVersion(item, content){\n\n // this.createVersionData = { \n // versionNumber: item.versionNumber,\n // name: item.name,\n // desc: item.desc,\n // status: item.status,\n // type: item.type\n // }\n this.createVersionData = item;\n \n this.modalService.open(content, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => {\n\n }); \n }\n\n addCosyncVersion(type, content){\n\n this.createVersionData = {};\n\n this.modalService.open(content, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => {\n\n }); \n }\n\n\n showCouponModal(content, data){ \n \n this.currentCouponData = data\n this.modalService.open(content, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => {\n\n }); \n }\n\n\n\n changeCouponLogPage(page){ \n \n \n if(this.couponLogsOffset.page == page.page) return;\n this.couponLogsOffset = page; \n this.couponLogsOffset.offset = page.page - 1;\n this.adminService.getCouponLogs({couponCode:this.currentCouponData.couponCode, limit:this.couponEntryAmount, offset:this.couponLogsOffset.offset }).then(res => {\n this.couponLogs = res as any; \n this.couponLogs.list.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y'); \n }); \n }); \n\n \n }\n\n\n\n getCouponLog(item){\n\n this.couponLogs = {};\n this.currentCouponData = item\n this.showCouponLog = true;\n\n this.adminService.getCouponLogs({couponCode:item.couponCode, limit: this.couponEntryAmount, offset:0 }).then(res => {\n this.couponLogs = res as any; \n this.couponTotalLog = this.couponLogs.total;\n this.couponLogs.list.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y');\n \n }); \n \n }); \n }\n\n removeCoupon(item){\n this.currentCouponData = item\n\n\n swal({\n title: `Are you sure to remove this Coupon?`,\n text: `Coupon Code: ${item.couponCode}`,\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, remove it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).then((result) => {\n if (result.value) {\n this.modalService.dismissAll()\n this.adminService.deleteCoupon(this.currentCouponData).then(res => {\n if(res) this.couponList = this.couponList.filter(c => c.couponCode != item.couponCode)\n \n swal({\n title: 'Sucesses!',\n text: 'Your copuon has been removed.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n }).catch(err => {\n let errMsg = err as any;\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: errMsg.error.message || errMsg.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false \n });\n })\n\n \n\n } else {\n \n }\n })\n\n }\n\n\n submitEditCoupon(){\n this.loading_service = true;\n let that = this;\n this.adminService.updateCoupon(this.currentCouponData).then(res => {\n //that.couponList.push(res)\n this.loading_service = false;\n this.modalService.dismissAll();\n swal({\n title: 'Sucesses!',\n text: 'Your copuon has been update.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n }).catch(err => {\n this.loading_service = false;\n let errMsg = err as any;\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: errMsg.error.message || errMsg.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false \n });\n })\n }\n\n\n sendCreateCoupon(){\n\n this.loading_service = true;\n let that = this;\n this.adminService.createCoupon(this.currentCouponData).then(res => {\n that.couponList.push(res)\n this.loading_service = false;\n this.modalService.dismissAll();\n swal({\n title: 'Sucesses!',\n text: 'Your copuon has been created.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n }).catch(err => {\n this.loading_service = false;\n let errMsg = err as any;\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: errMsg.error.message || errMsg.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false \n });\n })\n } \n\n}\n","export default \".apps-content {\\n padding-top: 70px;\\n padding-bottom: 70px;\\n}\\n\\n.breadcrumb-container {\\n margin-top: 25px;\\n}\\n\\n.app-container {\\n padding: 20px 5px 20px 5px !important;\\n cursor: pointer;\\n}\\n\\n.app-name {\\n margin-top: auto;\\n margin-bottom: auto;\\n}\\n\\n.app-modify {\\n margin-top: auto;\\n}\\n\\n.app-detail {\\n vertical-align: super;\\n padding-right: 10px;\\n}\\n\\n.app-controler {\\n text-align: right;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n -webkit-box-align: end;\\n align-items: flex-end;\\n margin-top: auto;\\n margin-bottom: auto;\\n}\\n\\n.app-controler button {\\n margin-left: 20px !important;\\n width: 120px;\\n}\\n\\n.table-content {\\n padding-bottom: 10px;\\n}\\n\\n.user-fillter {\\n text-align: right;\\n}\\n\\ndiv.user-fillter input {\\n width: auto;\\n margin-left: 0.5rem;\\n display: inline-block;\\n}\\n\\ndiv.user-entry select {\\n width: auto;\\n}\\n\\ntable {\\n border-collapse: collapse;\\n}\\n\\ntable th {\\n font-size: 0.9rem;\\n font-weight: 400;\\n}\\n\\ntable.table th,\\ntable.table td {\\n padding-top: 1.1rem;\\n padding-bottom: 1rem;\\n}\\n\\n.table-bordered th,\\n.table-bordered td {\\n border: 1px solid #dee2e6;\\n}\\n\\n.table th,\\n.table td {\\n padding: 0.75rem;\\n vertical-align: top;\\n border-top: 1px solid #dee2e6;\\n}\\n\\n.pagination-wrapper {\\n text-align: right;\\n display: block;\\n}\\n\\n.user-controlers i {\\n padding-left: 7px;\\n}\\n\\n.align-left {\\n text-align: left;\\n}\\n\\n.nice-table {\\n display: block;\\n max-width: 100%;\\n overflow: auto;\\n}\\n\\n.email-table table {\\n border-collapse: collapse;\\n border-spacing: 0;\\n margin: 0;\\n padding: 0;\\n border: 0;\\n outline: 0;\\n}\\n\\n.main-card {\\n margin-bottom: 55px !important;\\n}\\n\\n.custom-range::-webkit-slider-thumb {\\n background: #4638ab;\\n}\\n\\n.custom-range::-moz-range-thumb {\\n background: #4638ab;\\n}\\n\\n.custom-range::-ms-thumb {\\n background: #4638ab;\\n}\\n\\n.custom-range::-moz-range-track {\\n width: 100%;\\n height: 5px;\\n cursor: pointer;\\n box-shadow: 0px 0px 0px #000000;\\n background: rgb(218, 220, 221);\\n border-radius: 1px;\\n border: 0px solid #000000;\\n}\\n\\n.custom-range::-webkit-slider-runnable-track {\\n width: 100%;\\n height: 5px;\\n cursor: pointer;\\n box-shadow: 0px 0px 0px #000000;\\n background: rgb(218, 220, 221);\\n border-radius: 1px;\\n border: 0px solid #000000;\\n}\\n\\n.custom-range::-ms-track {\\n width: 100%;\\n height: 5px;\\n cursor: pointer;\\n background: rgb(218, 220, 221);\\n border-color: transparent;\\n color: transparent;\\n}\\n\\n.material-icons.active {\\n color: #4638ab !important;\\n}\\n\\n.user-metadata-container {\\n overflow-y: auto;\\n overflow-x: hidden;\\n max-height: 400px;\\n}\\n\\n.edit-metadata-container {\\n overflow-y: auto;\\n overflow-x: hidden;\\n max-height: 400px;\\n}\\n\\n.metadata-x {\\n padding-top: 7px;\\n}\\n\\n.total-user {\\n margin-top: 8px;\\n}\\n\\n.host-link {\\n cursor: pointer;\\n text-decoration: underline;\\n color: #4638ab;\\n}\\n\\n.log-item {\\n padding-right: 10px;\\n}\\n\\n.log-filter{\\n display: -webkit-box;\\n padding-top: 10px;\\n}\\n\\n.log-filter-button{\\n -webkit-box-align: left;\\n align-items: left;\\n}\\n\\n.log-date{\\n margin-top: -5px;\\n}\\n\\n.log-to-date{\\n display: inline-block;\\n position: relative;\\n text-align: left;\\n}\\n\\n.log-date-message {\\n font-size: 10px;\\n color: #d60707;\\n margin-top: -20px;\\n position: absolute;\\n}\\n\\n.log-action{\\n width:120px;\\n\\n}\\n\\n.filter-content {\\n margin-top: 10px;\\n}\\n\\n.app-status{\\n border: none;\\n box-shadow: none;\\n}\\n\\n.plusSign {\\n \\n font-size: 1.5rem;\\n font-weight: 500;\\n line-height: 1;\\n color: #000000;\\n text-shadow: 0 1px 0 #ffffff;\\n opacity: 0.5;\\n}\\n\\nbutton.plusSign {\\n padding: 0;\\n background-color: transparent;\\n border: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hcHBzL2FwcHMuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGlCQUFpQjtFQUNqQixvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxxQ0FBcUM7RUFDckMsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxxQkFBcUI7RUFDckIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLDhCQUFtQjtFQUFuQiw2QkFBbUI7VUFBbkIsbUJBQW1CO0VBQ25CLHNCQUFxQjtVQUFyQixxQkFBcUI7RUFDckIsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLDRCQUE0QjtFQUM1QixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsbUJBQW1CO0VBQ25CLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLFdBQVc7QUFDYjs7QUFFQTtFQUNFLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixnQkFBZ0I7QUFDbEI7O0FBRUE7O0VBRUUsbUJBQW1CO0VBQ25CLG9CQUFvQjtBQUN0Qjs7QUFFQTs7RUFFRSx5QkFBeUI7QUFDM0I7O0FBRUE7O0VBRUUsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQiw2QkFBNkI7QUFDL0I7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxlQUFlO0VBQ2YsY0FBYztBQUNoQjs7QUFDQTtFQUNFLHlCQUF5QjtFQUN6QixpQkFBaUI7RUFDakIsU0FBUztFQUNULFVBQVU7RUFDVixTQUFTO0VBQ1QsVUFBVTtBQUNaOztBQUVBO0VBQ0UsOEJBQThCO0FBQ2hDOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsV0FBVztFQUNYLFdBQVc7RUFDWCxlQUFlO0VBQ2YsK0JBQStCO0VBQy9CLDhCQUE4QjtFQUM5QixrQkFBa0I7RUFDbEIseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsV0FBVztFQUNYLFdBQVc7RUFDWCxlQUFlO0VBQ2YsK0JBQStCO0VBQy9CLDhCQUE4QjtFQUM5QixrQkFBa0I7RUFDbEIseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsV0FBVztFQUNYLFdBQVc7RUFDWCxlQUFlO0VBQ2YsOEJBQThCO0VBQzlCLHlCQUF5QjtFQUN6QixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSx5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLGVBQWU7RUFDZiwwQkFBMEI7RUFDMUIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSx1QkFBaUI7VUFBakIsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UscUJBQXFCO0VBQ3JCLGtCQUFrQjtFQUNsQixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsY0FBYztFQUNkLGlCQUFpQjtFQUNqQixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxXQUFXOztBQUViOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQjtBQUNsQjs7QUFHQTs7RUFFRSxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLGNBQWM7RUFDZCxjQUFjO0VBQ2QsNEJBQTRCO0VBQzVCLFlBQVk7QUFDZDs7QUFFQTtFQUNFLFVBQVU7RUFDViw2QkFBNkI7RUFDN0IsU0FBUztFQUNULHdCQUF3QjtFQUN4QixxQkFBcUI7RUFDckIsZ0JBQWdCO0FBQ2xCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9hcHBzL2FwcHMuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcHBzLWNvbnRlbnQge1xuICBwYWRkaW5nLXRvcDogNzBweDtcbiAgcGFkZGluZy1ib3R0b206IDcwcHg7XG59XG5cbi5icmVhZGNydW1iLWNvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IDI1cHg7XG59XG5cbi5hcHAtY29udGFpbmVyIHtcbiAgcGFkZGluZzogMjBweCA1cHggMjBweCA1cHggIWltcG9ydGFudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYXBwLW5hbWUge1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiBhdXRvO1xufVxuXG4uYXBwLW1vZGlmeSB7XG4gIG1hcmdpbi10b3A6IGF1dG87XG59XG5cbi5hcHAtZGV0YWlsIHtcbiAgdmVydGljYWwtYWxpZ246IHN1cGVyO1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuXG4uYXBwLWNvbnRyb2xlciB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIG1hcmdpbi10b3A6IGF1dG87XG4gIG1hcmdpbi1ib3R0b206IGF1dG87XG59XG5cbi5hcHAtY29udHJvbGVyIGJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMjBweDtcbn1cblxuLnRhYmxlLWNvbnRlbnQge1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbn1cblxuLnVzZXItZmlsbHRlciB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG5kaXYudXNlci1maWxsdGVyIGlucHV0IHtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuZGl2LnVzZXItZW50cnkgc2VsZWN0IHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxudGFibGUgdGgge1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxudGFibGUudGFibGUgdGgsXG50YWJsZS50YWJsZSB0ZCB7XG4gIHBhZGRpbmctdG9wOiAxLjFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuXG4udGFibGUtYm9yZGVyZWQgdGgsXG4udGFibGUtYm9yZGVyZWQgdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGVlMmU2O1xufVxuXG4udGFibGUgdGgsXG4udGFibGUgdGQge1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RlZTJlNjtcbn1cblxuLnBhZ2luYXRpb24td3JhcHBlciB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnVzZXItY29udHJvbGVycyBpIHtcbiAgcGFkZGluZy1sZWZ0OiA3cHg7XG59XG5cbi5hbGlnbi1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLm5pY2UtdGFibGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogYXV0bztcbn1cbi5lbWFpbC10YWJsZSB0YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgb3V0bGluZTogMDtcbn1cblxuLm1haW4tY2FyZCB7XG4gIG1hcmdpbi1ib3R0b206IDU1cHggIWltcG9ydGFudDtcbn1cblxuLmN1c3RvbS1yYW5nZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiAjNDYzOGFiO1xufVxuXG4uY3VzdG9tLXJhbmdlOjotbW96LXJhbmdlLXRodW1iIHtcbiAgYmFja2dyb3VuZDogIzQ2MzhhYjtcbn1cblxuLmN1c3RvbS1yYW5nZTo6LW1zLXRodW1iIHtcbiAgYmFja2dyb3VuZDogIzQ2MzhhYjtcbn1cblxuLmN1c3RvbS1yYW5nZTo6LW1vei1yYW5nZS10cmFjayB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMDAwMDAwO1xuICBiYWNrZ3JvdW5kOiByZ2IoMjE4LCAyMjAsIDIyMSk7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgYm9yZGVyOiAwcHggc29saWQgIzAwMDAwMDtcbn1cblxuLmN1c3RvbS1yYW5nZTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggIzAwMDAwMDtcbiAgYmFja2dyb3VuZDogcmdiKDIxOCwgMjIwLCAyMjEpO1xuICBib3JkZXItcmFkaXVzOiAxcHg7XG4gIGJvcmRlcjogMHB4IHNvbGlkICMwMDAwMDA7XG59XG5cbi5jdXN0b20tcmFuZ2U6Oi1tcy10cmFjayB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiByZ2IoMjE4LCAyMjAsIDIyMSk7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLm1hdGVyaWFsLWljb25zLmFjdGl2ZSB7XG4gIGNvbG9yOiAjNDYzOGFiICFpbXBvcnRhbnQ7XG59XG5cbi51c2VyLW1ldGFkYXRhLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogNDAwcHg7XG59XG5cbi5lZGl0LW1ldGFkYXRhLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogNDAwcHg7XG59XG5cbi5tZXRhZGF0YS14IHtcbiAgcGFkZGluZy10b3A6IDdweDtcbn1cblxuLnRvdGFsLXVzZXIge1xuICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi5ob3N0LWxpbmsge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBjb2xvcjogIzQ2MzhhYjtcbn1cblxuLmxvZy1pdGVtIHtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbn1cblxuLmxvZy1maWx0ZXJ7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbn1cblxuLmxvZy1maWx0ZXItYnV0dG9ue1xuICBhbGlnbi1pdGVtczogbGVmdDtcbn1cblxuLmxvZy1kYXRle1xuICBtYXJnaW4tdG9wOiAtNXB4O1xufVxuXG4ubG9nLXRvLWRhdGV7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ubG9nLWRhdGUtbWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6ICNkNjA3MDc7XG4gIG1hcmdpbi10b3A6IC0yMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5sb2ctYWN0aW9ue1xuICB3aWR0aDoxMjBweDtcblxufSBcblxuLmZpbHRlci1jb250ZW50IHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmFwcC1zdGF0dXN7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuXG4ucGx1c1NpZ24ge1xuICAgXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICNmZmZmZmY7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuYnV0dG9uLnBsdXNTaWduIHtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59Il19 */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport swal from 'sweetalert2';\nimport { AppsService } from 'src/app/services/apps.service'; \nimport { HostService } from 'src/app/services/host.service'; \nimport { App } from 'src/app/models/app';\nimport { NotificationService } from 'src/app/services/notification.service';\nimport { FormGroup, FormControl} from '@angular/forms';\nimport {DatePipe} from '@angular/common';\nimport {Md5} from 'ts-md5/dist/md5';\nimport { Developer } from 'src/app/models/developer';\nimport { AuthenticationService } from 'src/app/services/authentication.service';\nimport { PaginationComponent } from '../pagination/pagination.component';\nimport { NotifyService } from 'src/app/services/notify.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { HelperService } from 'src/app/services/helper.service'; \n \nimport * as localeData from '../../../assets/locales.json';\ndeclare var $: any;\n\n\n@Component({\n selector: 'app-apps',\n templateUrl: './apps.component.html',\n styleUrls: ['./apps.component.css']\n})\nexport class AppsComponent implements OnInit {\n\n @ViewChild('userPage', {static: false}) userPagination: PaginationComponent; \n @ViewChild('signupPage', {static: false}) signupPagination: PaginationComponent;\n @ViewChild('invitePage', {static: false}) invitePagination: PaginationComponent;\n @ViewChild('logPage', {static: false}) logPagination: PaginationComponent; \n formControlSelect: FormControl;\n twoFactorSelect: FormControl;\n localeSelect: FormControl;\n formControlAppTypeSelect:FormControl;\n updating :boolean = false;\n savingEmail:boolean = false;\n breadcrumbList = [];\n hostList = [];\n page:string = 'app-list';\n header:any; \n apps = [];\n hosts = [];\n editMetadata:boolean = false;\n editMetadataList = [];\n addMetadataList = [];\n isClickAppSecret:boolean = false;\n isClickAppId:boolean = false;\n cosyncEngineStep:number = 1;\n cosyncEngineFormData:any = {};\n isClickAppToken:boolean = false;\n isClickPublicKey:boolean = false;\n appToEdit:any = {};\n appMetaData = [];\n appLocales = []\n updatingAppMetaData:boolean = false;\n updatingUserMetadata:boolean = false;\n appInviteMetaData = [];\n updatingInviteMetaData:boolean = false;\n appEmailTemplates:any = {};\n selectedAppLocale:string = \"EN\";\n selectedLocaleEmailTemplate:any = {};\n selectedEmailTemplateName:string = 'signUp';\n selectedEmailTemplate:any = {};\n appForm: FormGroup;\n currentUser:any; \n appPublicKey:string;\n loading_app_data:boolean = false;\n loading_twilio_data:boolean = false;\n loading_allapp: boolean = false;\n isSaving: boolean = false;\n clickEditVerifyEmailTemplate: boolean = false;\n cosyncVersions:any = {\n cosyncEngine:[],\n cosyncJWT: []\n };\n validFilter:boolean = true;\n filterAction = ['all'];\n logFilter:any = {\n filterAction:['all'],\n type: \"all\",\n status: \"all\",\n fromDate:\"\",\n toDate:\"\" \n };\n filterQuery:boolean = false;\n clickedFilter:boolean = false;\n logDateFilterMessage: string = \"\";\n appLogData:any = {};\n appData:any = {};\n searchUserResult:any = null;\n hideAnonUser:Boolean = true;\n searchInviteResult:any = null\n searchSignUpResult:any = null;\n userCount:number = 0;\n logsOffset:any = {page:1, order: 1, offset: 0};\n userOffset:any = {page:1, order: 1, offset: 0};\n signUpOffset:any = {page:1, order: 1, offset: 0};\n inviteOffset:any = {page:1, order: 1, offset: 0};\n userList:any = [];\n applicationLogs:any = [];\n inviteList:any;\n signUpList:any;\n entryAmount:number = 25;\n \n entryAmountSignUp:number = 25;\n entryAmountInvite:number = 25;\n currentAppUser:any;\n formResetClass = \"need-validation\";\n formCreateAppClass = \"need-validation\";\n formCreateAppUserClass = \"need-validation\";\n formClass = \"need-validation\";\n resetPaswordInfo:string = \"\";\n randomPwd:string =\"\";\n invalidPassword:string='';\n \n createAppData:any = { \n type:'development',\n jwtEnabled: true\n }; \n\n modalOption:string;\n appOption:any; \n localeList:any = localeData.list;\n applicationActions = [ \"create\", \"update\", \"reset\", \"delete\", \"testTwilio\", \"getApp\", \"removeUser\", \"addUser\", \"searchUser\", \"deleteInvite\", \"createAppInvite\", \"removeAppSignup\", \"searchInvite\", \"resetUserPassword\", \"updateAppUserPassword\", \"updateAppUserMetaData\", \"reinitCosyncEngine\", \"initCosyncEngine\", \"updateAppInviteMetaData\", \"initCosyncJWT\", \"reinitCosyncJWT\", \"removeCosyncEngine\", \"removeCosyncJWT\", \"saveUserSchema\", \"export\", \"testEmailExtension\"];\n userActions = [\"signup\", \"completeSignup\", \"invite\", \"register\", \"login\", \"loginComplete\", \"sendEmail\", \"setUserMetadata\", \"forgotPassword\", \"resetPassword\", \"changePassword\", \"getUser\", \"getApplication\", \"setAppData\", \"setPhone\", \"verifyPhone\", \"setTwoFactorGoogleVerification\", \"setTwoFactorPhoneVerification\"];\n filterActions = this.applicationActions.concat(this.userActions);\n\n \n constructor(\n private appService:AppsService, \n private hostService:HostService, \n private notiSerivce:NotificationService, \n private notifyService:NotifyService, \n private authService:AuthenticationService,\n private modalService: NgbModal,\n private helperService: HelperService,\n private router: Router,\n private route: ActivatedRoute,\n private datePipe: DatePipe) { \n\n \n\n this.appService.apps.subscribe(data =>{\n\n for (let index = 0; index < data.length; index++) { \n data[index].lastModified = this.helperService.getLastModifiedDateString(data[index].updatedAt); \n }\n\n\n this.apps = data;\n if(this.apps.length <= 3) this.notifyService.notifyOther('total-app', this.apps.length);\n });\n\n\n\n this.hostService.hosts.subscribe(data =>{\n this.hosts = data; \n \n });\n\n\n this.appOption = this.route.snapshot.paramMap; \n\n }\n\n ngOnInit() { \n\n let cache = localStorage.getItem('currentUser');\n this.currentUser = JSON.parse(cache) as Developer;\n\n if(this.currentUser.status != \"active\"){\n this.router.navigate(['/profile']);\n return;\n } \n \n\n this.loading_allapp = true;\n let that = this;\n\n this.cosyncVersions = {\n cosyncEngine:[],\n cosyncJWT: []\n };\n\n this.appService.getCosyncVersion(function(versions){\n versions.forEach(v => {\n if(v.name == \"CosyncEngine\" && v.status == 'active') that.cosyncVersions.cosyncEngine.push(v);\n else if(v.name == \"CosyncJWT\" && v.status == 'active') that.cosyncVersions.cosyncJWT.push(v);\n });\n }); \n\n \n if(that.appOption.get('id') && this.apps.length){\n let app = that.apps.filter(a => a.appId == that.appOption.get('id'))[0];\n if(app) that.clickApp(app);\n }\n else{ \n \n //this.hostService.getHosts(function(res, error){ });\n\n this.appService.getApps(function(res, error){ \n that.loading_allapp = false;\n if(error && error.error.message){\n swal({\n type: 'warning',\n title: 'Whoop! Something went wrong.',\n text: error.error ? error.error.message : \"\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n \n }).then((result) => {\n that.router.navigate(['/profile']);\n });\n }\n else if(that.appOption.get('id')){\n let app = that.apps.filter(a => a.appId == that.appOption.get('id'))[0];\n if(app) that.clickApp(app);\n else {\n that.router.navigate(['/apps']);\n swal({\n type: 'error',\n title: 'Whoop! App Does not exist.',\n text: \"Please try again\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n \n });\n }\n }\n });\n }\n }\n\n \n createApp(content){ \n\n this.createAppData = { \n type:'development',\n jwtEnabled: true\n }; \n\n this.modalService.open(content, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n }\n\n\n /* onChangeAppSetting(evt, type){\n if(type == 'type' && evt.target.value == \"commercial\"){\n\n if(this.currentUser.type == 'free' && !this.currentUser.tester ){ \n this.createAppData.type = 'development';\n evt.target.value = this.createAppData.type;\n this.updateAccountTypePopup(); \n }\n else this.createAppData.type = evt.target.value;\n\n } \n \n } */\n \n\n checkAppName(appName){\n let app = this.apps.filter(a => a.name == appName);\n \n return app[0];\n }\n\n createApplication(){\n \n\n if(!this.createAppData.appName || this.createAppData.appName == \"\"){\n this.formCreateAppClass = \"need-validation was-validated\";\n return;\n } \n\n if(this.checkAppName(this.createAppData.appName)){\n\n swal({\n type: 'error',\n title: 'Whoop! App name already exists.',\n text: \"Please enter different app name\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n\n });\n return;\n }\n\n this.modalService.dismissAll(); \n\n let that = this;\n \n this.appService.addApp(this.createAppData, function(res, err){\n \n if(res) that.notiSerivce.success(`${that.createAppData.appName} application has been created.`); \n else {\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: err.error.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n \n });\n }\n that.createAppData = { \n type:'development'\n };\n }); \n\n }\n \n goToAppId(app){\n this.router.navigate(['/apps/app/'+app.appId]);\n }\n\n showAllApps(){\n this.page = 'app-list';\n this.breadcrumbList = [];\n }\n\n\n clickApp(app){\n let appPublicKey;\n \n try {\n appPublicKey = atob(app.appPublicKey);\n } catch (error) { \n \n }\n\n let displayApp: App = {\n name: app.name,\n developerUid: app.developerUid,\n appId: app.appId,\n status: app.status,\n jwtEnabled: app.jwtEnabled,\n appPublicKey: appPublicKey, \n appToken: app.appToken, \n appSecret: app.appSecret, \n rawPublicKey: app.appPublicKey, \n type: app.type,\n handle:app.handle,\n invitationEnabled:app.invitationEnabled,\n signupEnabled:app.signupEnabled, \n anonymousLoginEnabled: app.anonymousLoginEnabled,\n userNamesEnabled: app.userNamesEnabled,\n twoFactorVerification: app.twoFactorVerification,\n TWILIOAccountSid: app.TWILIOAccountSid || \"\",\n TWILIOToken: app.TWILIOToken || \"\", \n TWILIOPhoneNumber: app.TWILIOPhoneNumber || \"\",\n googleAppName: app.googleAppName || app.name,\n maxUsers: app.maxUsers || 1000,\n userJWTExpiration: app.userJWTExpiration || 1,\n realmAppId: app.realmAppId || \"\", \n maxLoginAttempts: app.maxLoginAttempts || 0,\n passwordFilter:app.passwordFilter,\n passwordMinLength: app.passwordMinLength || 5,\n passwordMinUpper: app.passwordMinUpper || 0,\n passwordMinLower: app.passwordMinLower || 0,\n passwordMinDigit: app.passwordMinDigit || 0,\n passwordMinSpecial: app.passwordMinSpecial || 0,\n signupFlow: app.signupFlow || 'code',\n appData: app.appData,\n metaData: app.metaData || [],\n metaDataInvite: app.metaDataInvite || [],\n locales: app.locales || [],\n appleLoginEnabled: app.appleLoginEnabled,\n appleBundleId: app.appleBundleId,\n googleLoginEnabled: app.googleLoginEnabled,\n googleClientId: app.googleClientId,\n metaDataEmail: app.metaDataEmail,\n emailExtensionAPIKey: app.emailExtensionAPIKey || \"\",\n emailExtension: app.emailExtension,\n emailExtensionSenderEmail: app.emailExtensionSenderEmail || \"\",\n createdAt: app.createdAt,\n updatedAt: app.updatedAt,\n }\n this.appToEdit = displayApp; \n this.appLocales= [...this.appToEdit.locales];\n\n this.cloneAppMetaData();\n this.cloneAppInviteMetaData();\n\n this.appPublicKey = this.appToEdit.appPublicKey;\n this.formControlSelect = new FormControl(this.appToEdit.type); \n this.twoFactorSelect = new FormControl(this.appToEdit.twoFactorVerification); \n this.localeSelect = new FormControl(\"EN\");\n\n this.breadcrumbList.push(app);\n this.page = \"app-detail\";\n }\n\n cloneAppMetaData() {\n this.appMetaData = [];\n this.appToEdit.metaData.forEach(data => {\n let item = {};\n for (const key in data) { \n item[key] = data[key]; \n }\n this.appMetaData.push(item);\n });\n }\n\n\n\n cloneAppInviteMetaData() {\n this.appInviteMetaData = [];\n this.appToEdit.metaDataInvite.forEach(data => {\n let item = {};\n for (const key in data) { \n item[key] = data[key]; \n }\n this.appInviteMetaData.push(item);\n });\n }\n\n\n editApp(value: string){\n this.isSaving = true;\n let that = this;\n this.appService.editApp(value, this.appToEdit.appId, function(result, err){\n if(result){\n that.breadcrumbList[that.breadcrumbList.length - 1].name = value;\n that.isSaving = false;\n swal({\n type: 'success',\n html: 'Your app is updated: ' +\n value +\n '',\n confirmButtonClass: 'btn btn-success',\n buttonsStyling: false,\n timer: 2000\n \n });\n\n } \n else{\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: err.error.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n \n });\n }\n }); \n \n }\n\n\n onAppNameKey(event){\n if(this.appToEdit.name != event.target.value) this.updating = true;\n else this.updating = false;\n }\n\n \n\n\n copyPublicKey(item){\n item.select();\n document.execCommand('copy');\n item.setSelectionRange(0, 0);\n let that = this;\n setTimeout(function(){\n that.isClickAppSecret = false;\n that.isClickAppId = false;\n that.isClickAppToken = false;\n that.isClickPublicKey = false;\n },1000)\n }\n\n\n resetAppData(){\n let that = this;\n swal({\n title: `Reset ${that.appToEdit.name}, are you sure?`,\n text: 'You will not be able to recover this app data!',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, reset it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false, \n focusCancel: true\n\n }).then((result) => {\n if (result.value) {\n\n swal({\n title: 'Enter your account password',\n input: 'password',\n showCancelButton: true, \n confirmButtonClass: 'btn btn-success',\n cancelButtonClass: 'btn btn-danger',\n buttonsStyling: false,\n inputValidator: (value) => { \n if (!value) {\n return 'Please enter your account password'\n } \n }\n \n }).then(function(result) {\n if (result.value) {\n \n that.appService.resetApp(that.appToEdit, result.value).then(res => {\n swal({\n title: 'Reset!',\n text: 'Your app data has been reset.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n }).catch(err => {\n swal({\n title: 'Whoop!',\n text: err.error.message || 'Somehting went wrong. Please try again :(',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop)\n \n });\n }\n }); \n\n } else {\n swal({\n title: 'Cancelled',\n text: 'Your app data is safe :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop)\n }\n })\n } \n\n onInvitePaginationInit(){\n let that = this;\n \n setTimeout(function() {\n if(that.invitePagination){\n that.invitePagination.data = {\n totalItem: that.appData.totalInvite, \n entryAmount: that.entryAmountInvite,\n };\n }\n \n }, 1000); \n }\n\n signupPaginationInit(data){\n let that = this;\n \n setTimeout(function() {\n if(that.signupPagination){\n that.signupPagination.data = {\n totalItem: that.appData.totalSignup, \n entryAmount: that.entryAmountSignUp,\n };\n }\n \n }, 1000); \n }\n\n\n onPaginationInit(data){\n let that = this;\n \n setTimeout(function() {\n if(that.userPagination){\n that.userPagination.data = {\n totalItem: that.appData.totalUser, \n entryAmount: that.entryAmount,\n };\n }\n \n }, 1000); \n }\n\n\n onLogPaginationInit(data){\n let that = this;\n \n setTimeout(function() {\n\n if(that.logPagination !== undefined) {\n that.logPagination.data = {\n totalItem: that.appLogData.totalLog, \n entryAmount: that.entryAmount,\n };\n }\n }, 1000); \n \n } \n\n showAppEmailTemplate(app){\n this.appService.getAppEmailTemplates(app).then(res => {\n this.appEmailTemplates = res as any;\n\n this.selectedLocaleEmailTemplate = this.appEmailTemplates[\"EN\"]; \n this.setCurrentEmailTemplate()\n });\n }\n\n\n\n\n saveEmailTemplate(){\n this.savingEmail = true;\n this.appService.updateAppEmailTemplates(this.selectedEmailTemplate).then(res => {\n this.savingEmail = false;\n this.clickEditVerifyEmailTemplate = false;\n swal({\n title: 'Success!',\n text: 'The email template has been updated.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 4000\n }).catch(swal.noop);\n }).catch(err => {\n this.savingEmail = false;\n swal({\n title: 'Invalid',\n text: 'Whoop! Something went wrong. Please try again. :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 4000\n }).catch(swal.noop)\n });\n }\n \n showAppLogs(app){\n this.loading_app_data = true;\n\n this.appService.getAppLogData(app).then( res => {\n this.loading_app_data = false; \n this.appLogData = res; \n this.applicationLogs = this.appLogData.logs; \n\n this.applicationLogs.filter(item => {\n item.show = true;\n item.createdAt = this.datePipe.transform(new Date(item.createdAt), 'MMM d, y, h:mm:ss a');\n }); \n\n }).catch(err => {\n this.loading_app_data = false;\n\n swal({\n title: 'Invalid',\n text: 'Whoop! Something went wrong. Please try again. :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 4000\n }).catch(swal.noop)\n\n })\n }\n\n showAppData(app){\n \n this.userCount = 0;\n this.loading_app_data = true;\n this.appService.getAppData(app, this.hideAnonUser).then(res => {\n this.loading_app_data = false; \n this.appData = res; \n\n if(this.appData.invites){\n this.inviteList = this.appData.invites;\n this.inviteList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y, h:mm:ss a');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y, h:mm:ss a'); \n }); \n }\n\n if(this.appData.signups){\n this.signUpList = this.appData.signups;\n this.signUpList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y, h:mm:ss a');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y, h:mm:ss a'); \n }); \n }\n\n if(this.appData.users) {\n \n this.userList = this.appData.users;\n this.userList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y');\n //if(u.metaData) u.metaData = JSON.stringify(u.metaData,null, 5);\n if(u.lastLogin) u.lastLogin = this.datePipe.transform(new Date(u.lastLogin), 'MMM d, y');\n }); \n } \n\n }).catch(err => {\n this.loading_app_data = false;\n });\n }\n\n activateUser(user){\n this.appService.updateAppUser(user, 'active').then(res => {\n user.status = 'acitve';\n }).catch(err => {\n \n });\n }\n\n\n\n suspendUser(user){\n this.appService.updateAppUser(user, 'suspend').then(res => {\n user.status = 'suspend';\n }).catch(err => {\n \n });\n }\n\n\n\n removeAddedUserMetadata(field){\n this.addMetadataList = this.addMetadataList.filter(item => item.id != field.id)\n }\n\n addUserMetadata(){ \n this.updatingUserMetadata = true\n \n let that = this; \n this.addMetadataList.push({ \n id: that.helperService.getUUID(), \n path: \"\",\n value: \"\" \n });\n \n }\n\n editUser(user, content){\n \n this.currentAppUser = user;\n this.formResetClass = \"need-validation\";\n this.resetPaswordInfo = \"\";\n this.randomPwd = this.helperService.generatePassword(8);\n this.modalService.open(content, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title',}).result.then((result) => {\n \n }, (reason) => { \n //this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }); \n } \n \n\n resetUserPassword(value){\n\n if(!value || value == \"\"){\n this.formResetClass = \"need-validation was-validated\";\n return;\n }\n if(value.length < this.appToEdit.passwordMinLength) return;\n\n value = value.trim();\n\n if(value != this.randomPwd){\n let valid = this.validatePassword(value, this.appToEdit);\n if(!valid) return;\n } \n\n let data = {\n userId: this.currentAppUser._id,\n hashValue: Md5.hashStr(value),\n rawValue: value,\n appId: this.currentAppUser.appId\n };\n\n this.appService.resetUserPassword(data).then(res => {\n \n this.resetPaswordInfo = \"User password has been reset. The user will recieve an email for the new password.\"\n }).catch(err => {\n this.resetPaswordInfo = \"Whoop! Something went wrong. Please try again.\"\n });\n\n\n }\n\n deleteAppModal(app){\n let that = this;\n swal({\n title: `Delete ${app.name}, are you sure?`,\n text: 'You will not be able to recover this app!',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, delete it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false, \n focusCancel: true\n\n }).then((result) => {\n \n if (result.value) {\n\n swal({\n title: 'Enter your account password',\n input: 'password',\n showCancelButton: true, \n confirmButtonClass: 'btn btn-success',\n cancelButtonClass: 'btn btn-danger',\n buttonsStyling: false,\n inputValidator: (value) => { \n if (!value) {\n return 'Please enter your account password'\n } \n }\n \n }).then(function(result) {\n if (result.value) {\n\n that.appService.deleteApp(app, result.value).then(res => { \n that.page = 'app-list'; \n that.breadcrumbList = [];\n\n swal({\n title: 'Deleted!',\n text: 'Your app has been deleted.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n\n that.router.navigate(['/apps']);\n\n that.appService.getApps(function(res, err){});\n\n }).catch(err => {\n swal({\n title: 'Fails',\n text: err.error.message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop)\n \n }); \n }\n\n });\n\n }\n else {\n swal({\n title: 'Cancelled',\n text: 'Your app data is safe :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop)\n }\n })\n }\n\n \n\n removeUser(user){\n this.currentAppUser = user; \n let that = this;\n swal({\n title: `Delete ${user.handle}, are you sure?`,\n text: 'You will not be able to recover this user!',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, delete it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).then((result) => {\n if (result.value) {\n \n let data = {handle:user.handle, appId:this.appToEdit.appId};\n\n this.appService.deleteAppUser(data).then(res => {\n swal({\n title: 'Deleted!',\n text: 'Your app user has been deleted.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n\n this.userList = this.userList.filter(u => u.handle != data.handle);\n \n }).catch(err => {\n \n }); \n\n } else {\n swal({\n title: 'Cancelled',\n text: 'Your app user is safe :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop)\n }\n })\n }\n\n\n deleteAppUser(){\n let data = {handle:this.currentAppUser.handle, appId:this.appToEdit.appId};\n\n this.appService.deleteAppUser(data).then(res => {\n \n this.userList = this.userList.filter(u => u.handle != data.handle);\n \n }).catch(err => {\n \n });\n }\n\n appUserKeyChange(event){\n this.searchUserResult = null;\n let value = event.target.value;\n \n if(value == \"\") this.userList.filter(u => u.show = true);\n else {\n this.userList.filter(u => {\n if(u.handle.indexOf(value) >= 0) u.show = true;\n else if (u.userName && u.userName.indexOf(value) >= 0 ) u.show = true;\n else u.show = false; \n });\n }\n\n if(event.keyCode == 13) this.searchAppUser(value);\n }\n\n\n \n\n\n\n searchInviteKeyChange(event){\n this.searchInviteResult = null;\n let value = event.target.value;\n \n if(value == \"\") this.inviteList.filter(u => u.show = true);\n else {\n this.inviteList.filter(u => {\n if(u.handle.indexOf(value) >= 0) u.show = true;\n else u.show = false; \n });\n }\n\n if(event.keyCode == 13) this.searchInvite(value);\n }\n\n\n searchSignUpKeyChange(event){\n this.searchSignUpResult = null;\n let value = event.target.value;\n \n if(value == \"\") this.signUpList.filter(u => u.show = true);\n else {\n this.signUpList.filter(u => {\n if(u.handle.indexOf(value) >= 0) u.show = true;\n else u.show = false; \n });\n }\n\n if(event.keyCode == 13) this.searchSignUp(value);\n }\n\n\n searchSignUp(value){\n value = value.trim();\n if(!value || value == \"\") return;\n\n this.appService.searchSignup(this.appToEdit.appId, value).then(res => {\n this.searchSignUpResult = res;\n this.searchSignUpResult.filter(u =>{\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y');\n });\n \n }).catch(err => {\n \n });\n }\n\n\n searchInvite(value){\n value = value.trim();\n if(!value || value == \"\") return;\n\n this.appService.searchInvite(this.appToEdit.appId, value).then(res => {\n this.searchInviteResult = res;\n this.searchInviteResult.filter(u =>{\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y, h:mm:ss a');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y, h:mm:ss a'); \n });\n \n }).catch(err => {\n \n });\n }\n \n\n searchAppUser(value){\n value = value.trim();\n if(!value || value == \"\") return;\n\n this.appService.searchAppUser(this.appToEdit.appId, value, this.hideAnonUser).then(res => {\n this.searchUserResult = res;\n this.searchUserResult.filter(u =>{\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y');\n //if(u.metaData) u.metaData = JSON.stringify(u.metaData,null, 5);\n if(u.lastLogin) u.lastLogin = this.datePipe.transform(new Date(u.lastLogin), 'MMM d, y');\n });\n \n }).catch(err => {\n \n });\n }\n\n\n onChangeSingUpEntryAmount(evt){\n this.entryAmountSignUp = parseInt(evt.target.value);\n\n this.appService.getAppDataTarget({appId:this.appToEdit.appId, target:'signups', limit: this.entryAmountSignUp, offset:0 }).then(res => {\n let item = res as any; \n this.signUpList = item.signups; \n this.signUpList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y, h:mm:ss a');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y, h:mm:ss a');\n \n }); \n\n this.signupPagination.data = {\n totalItem: item.totalSignup, \n entryAmount: this.entryAmountSignUp,\n };\n\n }); \n\n }\n\n\n onChangeInviteEntryAmount(evt){\n this.entryAmountInvite = parseInt(evt.target.value);\n\n this.appService.getAppDataTarget({appId:this.appToEdit.appId, target:'invites', limit: this.entryAmountInvite, offset:0 }).then(res => {\n let item = res as any; \n this.inviteList = item.invites; \n this.inviteList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y, h:mm:ss a');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y, h:mm:ss a'); \n }); \n\n this.invitePagination.data = {\n totalItem: item.totalInvite, \n entryAmount: this.entryAmountInvite,\n };\n\n }); \n\n }\n\n\n onHideAnonymousUser(value){\n this.hideAnonUser = value \n this.onchangeEntryAmount(this.entryAmount)\n }\n \n\n onchangeEntryAmount(value){\n\n this.entryAmount = parseInt(value); \n this.loading_app_data = true;\n this.appService.getAppDataTarget({appId:this.appToEdit.appId, target:'users', hideAnonUser:this.hideAnonUser, limit: this.entryAmount, offset:0 }).then(res => {\n let item = res as any; \n this.loading_app_data = false;\n this.appData.totalUser = item.totalUser;\n this.appData.totalAnonUser = item.totalAnonUser;\n this.userList = item.users; \n this.userList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y');\n //if(u.metaData) u.metaData = JSON.stringify(u.metaData,null, 5);\n if(u.lastLogin) u.lastLogin = this.datePipe.transform(new Date(u.lastLogin), 'MMM d, y');\n }); \n\n \n\n if (this.userPagination){\n this.userPagination.data = {\n totalItem: item.totalUser, \n entryAmount: this.entryAmount,\n };\n }\n\n }); \n\n }\n \n\n selectActionChange(evt){ \n \n if(evt.value.indexOf(\"all\") >= 0 && this.logFilter.filterAction.indexOf(\"all\") < 0){\n this.filterAction = ['all'];\n this.logFilter.filterAction = this.filterAction;\n }\n\n else if(evt.value.indexOf(\"all\") >= 0 && this.logFilter.filterAction.indexOf(\"all\") >= 0){\n\n this.filterAction = evt.value.filter(item => item != 'all');\n this.logFilter.filterAction = this.filterAction;\n }\n else{\n this.logFilter.filterAction = evt.value;\n }\n\n \n console.log( this.logFilter.filterAction)\n \n this.filterQuery = true;\n this.clickedFilter = false;\n\n\n }\n\n onchangeLogFillter(evt, field){\n\n this.filterQuery = true;\n this.clickedFilter = false;\n \n let filterValue = (evt.target.value); \n\n this.logFilter[field] = filterValue;\n\n this.filterQuery = true;\n\n if(field == 'type'){\n if (filterValue == \"all\"){\n this.filterActions = this.applicationActions.concat(this.userActions);\n }\n else if (filterValue == 'app'){\n this.filterActions = this.applicationActions;\n }\n else if (filterValue == 'user'){ \n this.filterActions = this.userActions;\n }\n else {\n this.filterActions = this.applicationActions.concat(this.userActions);\n }\n this.logFilter.filterAction = [\"all\"];\n } \n \n }\n\n clearFilterLog(){ \n\n this.logFilter = {\n filterAction:['all'],\n type: \"all\",\n status: \"all\",\n fromDate:\"\",\n toDate:\"\" \n };\n this.logsOffset.offset = 0;\n this.logsOffset.page = 1;\n\n this.filterAction = ['all'];\n this.applyLogFilter();\n\n this.clickedFilter = false;\n this.filterQuery = false;\n\n }\n\n\n searchLog(){\n this.logsOffset.offset = 0;\n this.logsOffset.page = 1;\n\n this.applyLogFilter();\n }\n\n applyLogFilter(){ \n\n this.compareDateChange();\n if(!this.validFilter) return;\n this.clickedFilter = true;\n\n this.appService.getAppLogDataOffset({appId:this.appToEdit.appId, limit: this.entryAmount, offset:this.logsOffset.offset, type: this.logFilter.type, status: this.logFilter.status, fromDate: this.logFilter.fromDate, toDate: this.logFilter.toDate, filterAction: this.logFilter.filterAction}).then(res => {\n let item = res as any; \n this.appLogData = item; \n this.applicationLogs = item.logs; \n this.applicationLogs.filter(item => {\n item.show = true;\n item.createdAt = this.datePipe.transform(new Date(item.createdAt), 'MMM d, y, h:mm:ss a');\n }); \n\n if(this.logPagination){\n this.logPagination.data = {\n totalItem: item.totalLog, \n entryAmount: this.entryAmount,\n };\n }\n \n\n }); \n\n }\n\n\n onchangeLogEntryAmount(evt){\n\n this.entryAmount = parseInt(evt.target.value); \n this.applyLogFilter();\n \n\n }\n\n\n changeLogPage(page){ \n\n if(this.logsOffset.page == page.page) return;\n this.logsOffset = page; \n this.logsOffset.offset = page.page - 1; \n\n this.appService.getAppLogDataOffset({appId:this.appToEdit.appId, limit:this.entryAmount, offset:this.logsOffset.offset, type: this.logFilter.type, status: this.logFilter.status, fromDate: this.logFilter.fromDate, toDate: this.logFilter.toDate, filterAction: this.logFilter.filterAction }).then(res => {\n let item = res as any;\n \n this.applicationLogs = item.logs; \n this.applicationLogs.filter(item => {\n item.show = true;\n item.createdAt = this.datePipe.transform(new Date(item.createdAt), 'MMM d, y, h:mm:ss a');\n }); \n }); \n }\n\n\n \n\n changeUserPage(page){ \n\n if(this.userOffset.page == page.page) return;\n this.userOffset = page; \n this.userOffset.offset = page.page - 1;\n this.appService.getAppDataTarget({appId:this.appToEdit.appId, target:'users', limit:this.entryAmount, offset:this.userOffset.offset }).then(res => {\n let item = res as any;\n \n this.userList = item.users; \n this.userList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y');\n //if(u.metaData) u.metaData = JSON.stringify(u.metaData,null, 5);\n if(u.lastLogin) u.lastLogin = this.datePipe.transform(new Date(u.lastLogin), 'MMM d, y');\n }); \n }); \n }\n\n\n\n changeSignUpPage(page){ \n\n if(this.signUpOffset.page == page) return;\n this.signUpOffset = page;\n this.signUpOffset.offset = page.page - 1;\n this.appService.getAppDataTarget({appId:this.appToEdit.appId, target:'signups', limit:this.entryAmountSignUp, offset:this.signUpOffset.offset }).then(res => {\n let item = res as any;\n \n this.signUpList = item.signups; \n this.signUpList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y, h:mm:ss a');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y, h:mm:ss a'); \n }); \n }); \n }\n\n\n\n changeInvitePage(page){ \n\n if(this.inviteOffset.page == page.page) return;\n this.inviteOffset = page;\n this.inviteOffset.offset = page.page - 1;\n this.appService.getAppDataTarget({appId:this.appToEdit.appId, target:'invites', limit:this.entryAmountInvite, offset:this.inviteOffset.offset }).then(res => {\n let item = res as any;\n \n this.inviteList = item.invites; \n this.inviteList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y, h:mm:ss a');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y, h:mm:ss a'); \n }); \n }); \n }\n\n updateAccountTypePopup(){\n let that = this;\n swal({\n title: `Upgrade your account`,\n text: 'You need to upgrade your account to update Applciation Type to Commercial',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, upgrade it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).then((result) => {\n if (result.value) {\n this.modalService.dismissAll()\n this.router.navigate(['/profile/payment', { option: 'upgrade', appId: this.appToEdit.appId }]);\n\n } else {\n \n }\n })\n }\n\n\n upgradeAccount(){\n let that = this;\n swal({\n title: `You're almost there!`,\n text: 'Please upgrade your account to use the Cosync AssetLink Engine.',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, upgrade it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).then((result) => {\n if (result.value) {\n this.modalService.dismissAll()\n this.router.navigate(['/profile/payment', { option: 'upgrade' }]);\n\n } else {\n \n }\n })\n }\n\n compareSelectAppType(c1: {name: string}, c2: {name: string}) { \n return c1 && c2 && c1.name === c2.name; \n }\n\n \n\n submitTestTwilio(phone){\n this.loading_twilio_data = true;\n this.appService.testTwilio(phone, this.appToEdit.appId).then(res => {\n this.loading_twilio_data = false;\n\n swal({\n title: 'Success!',\n text: 'Your app TWILIO is runing.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n }).catch(err => {\n this.loading_twilio_data = false;\n \n swal({\n title: 'Whoop! Something went wrong.',\n text: err.error.message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n });\n }\n\n clickUpdatePhoneTwilio(){\n if(this.appToEdit.twoFactorVerification == 'phone'){\n\n if(this.appToEdit.TWILIOAccountSid == '' || !this.appToEdit.TWILIOAccountSid){\n swal({\n title: 'Invalid!',\n text: 'Please enter Twilio Account SID .',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n return;\n }\n\n if(this.appToEdit.TWILIOPhoneNumber == '' || !this.appToEdit.TWILIOPhoneNumber){\n swal({\n title: 'Invalid!',\n text: 'Please enter Twilio Phone Number .',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n return;\n }\n\n if(this.appToEdit.TWILIOToken == '' || !this.appToEdit.TWILIOToken){\n swal({\n title: 'Invalid!',\n text: 'Please enter Twilio Token .',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n return;\n }\n\n }\n\n this.appToEdit.TWILIOAccountSid = this.appToEdit.TWILIOAccountSid.split(\" \").join('');\n this.appToEdit.TWILIOToken = this.appToEdit.TWILIOToken.split(\" \").join('');\n this.appToEdit.TWILIOPhoneNumber = this.appToEdit.TWILIOPhoneNumber.split(\" \").join('');\n\n this.appService.updateAppSetting(this.appToEdit, 'twoFactorVerification').then(res => {\n swal({\n title: 'Updated!',\n text: 'Your Two Factor Verifications has been updated.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n });\n }\n\n\n\n clickUpdateGoogleAppName(){\n this.appService.updateAppSetting(this.appToEdit, 'twoFactorVerification').then(res => {\n swal({\n title: 'Updated!',\n text: 'Your Two Factor Verifications has been updated.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n });\n }\n\n clickUpdateSocialID(id, type){\n if(!id || id == \"\") {\n\n let text = type == \"googleClientId\" ? \"Please enter Google Client ID\" : \"Please enter Apple Bundle ID\";\n \n swal({\n title: 'Whoop! Something went wrong.',\n text: text,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n return\n }\n\n this.appService.updateAppSetting(this.appToEdit, type).then(res => {\n swal({\n title: 'Updated!',\n text: 'Your App has been updated.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n });\n }\n\n updateAppSetting(value, type){\n let that = this;\n switch (type) {\n case 'emailExtension':\n this.appToEdit.emailExtension = value ? true: false;\n this.appService.updateAppSetting(this.appToEdit, type);\n break;\n case 'emailExtensionAPIKey':\n this.appToEdit.emailExtensionAPIKey = value;\n break;\n case 'emailExtensionSenderEmail':\n this.appToEdit.emailExtensionSenderEmail = value;\n break;\n\n case 'status':\n let preStatus = this.appToEdit.status;\n this.appToEdit.status = value;\n\n this.appService.updateAppSetting(this.appToEdit, type).catch(err => {\n if(err.error.paymentRequire) {\n this.appToEdit.status = preStatus;\n\n swal({\n title: `Whoop! You have not paid the previous yet.`,\n text: `You need to pay the previous bill ($${err.error.amount}) in order to active this app.`,\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, pay it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).then((result) => {\n if (result.value) { \n // request to pay here...\n that.appService.payPreviousAppBill(this.appToEdit).then(res => {\n that.appToEdit.status = 'active';\n swal({\n title: 'Updated!',\n text: 'Your app has been updated.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n })\n .catch(err => {\n swal({\n title: 'Whoop! Something went wrong.',\n text: err.error.message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n })\n } else {\n \n }\n })\n }\n });\n\n break;\n\n case 'invite':\n this.appToEdit.invitationEnabled = value;\n this.appService.updateAppSetting(this.appToEdit, type);\n break;\n \n case 'jwtEnabled':\n \n this.appToEdit.jwtEnabled = value;\n this.appService.updateAppSetting(this.appToEdit, type);\n break;\n case 'signup':\n this.appToEdit.signupEnabled = value;\n this.appService.updateAppSetting(this.appToEdit, type).catch(err => {\n this.appToEdit.signupEnabled = !value;\n });\n break;\n case 'anonLogin':\n this.appToEdit.anonymousLoginEnabled = value;\n this.appService.updateAppSetting(this.appToEdit, type).catch(err => {\n this.appToEdit.anonymousLoginEnabled = !value;\n });\n break;\n case 'userNamesEnabled':\n this.appToEdit.userNamesEnabled = value;\n this.appService.updateAppSetting(this.appToEdit, type).catch(err => {\n this.appToEdit.userNamesEnabled = !value;\n });\n break;\n case 'signupFlow':\n let oldVal = this.appToEdit.signupFlow;\n this.appToEdit.signupFlow = value;\n this.appService.updateAppSetting(this.appToEdit, type).catch(err => {\n this.appToEdit.signupFlow = oldVal;\n });\n break;\n\n case 'type': \n \n if(this.currentUser.type == 'free' && this.appToEdit.type == 'commercial' && !this.currentUser.tester){ \n this.updateAccountTypePopup(); \n this.formControlSelect.setValue('development'); \n this.appToEdit.type = 'development';\n }\n else{\n this.appToEdit.type = value;\n this.appService.updateAppSetting(this.appToEdit, type).catch(err => {\n if(err.error.user) {\n this.currentUser = err.error.user;\n this.authService.refreshUser(err.error.user);\n if(this.appToEdit.type == 'commercial'){\n this.updateAccountTypePopup(); \n this.formControlSelect.setValue('development'); \n this.appToEdit.type = 'development';\n }\n }\n else{\n swal({\n title: 'Whoop! Something went wrong.',\n text: err.error.message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n }\n });\n } \n \n break; \n\n case 'realmAppId':\n this.appToEdit.realmAppId = value;\n this.appService.updateAppSetting(this.appToEdit, type);\n \n break;\n case 'userJWTExpiration':\n this.appToEdit.userJWTExpiration = value;\n this.appService.updateAppSetting(this.appToEdit, type);\n \n break;\n \n \n case 'twoFactorVerification': \n if(value != \"none\" && this.appToEdit.twoFactorVerification != 'none'){\n let that = this;\n swal({\n title: `Change App Two Factor Verification?`,\n text: 'All old app users two factor verification will not work.',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, change it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).then((result) => {\n if (result.value) {\n this.appToEdit.twoFactorVerification = value;\n if(this.appToEdit.twoFactorVerification != 'phone') this.appService.updateAppSetting(this.appToEdit, type);\n }\n else{\n this.twoFactorSelect.setValue(this.appToEdit.twoFactorVerification); \n } \n })\n\n }\n else{\n this.appToEdit.twoFactorVerification = value;\n this.appService.updateAppSetting(this.appToEdit, type);\n } \n \n break;\n case 'maxLoginAttempts': \n this.appService.updateAppSetting(this.appToEdit, type);\n \n break;\n\n case 'maxUsers': \n this.appToEdit.maxUsers = value;\n this.appService.updateAppSetting(this.appToEdit, type);\n \n break;\n\n case 'passwordFilter':\n this.appToEdit.passwordFilter = value;\n this.appService.updateAppSetting(this.appToEdit, type);\n \n break;\n case 'passwordSetting': \n this.appService.updateAppSetting(this.appToEdit, type);\n \n break;\n case 'appleLogin': \n this.appToEdit.appleLoginEnabled = value;\n this.appService.updateAppSetting(this.appToEdit, type);\n break; \n\n case 'googleLogin': \n this.appToEdit.googleLoginEnabled = value;\n this.appService.updateAppSetting(this.appToEdit, type);\n break;\n \n \n }\n }\n\n\n savePasswordSetting(){\n this.appService.updateAppSetting(this.appToEdit, 'passwordSetting').then(res => {\n swal({\n title: 'Success!',\n text: 'Your password filter has been updated.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n });\n }\n\n\n testEmailExtension(){\n if(this.appToEdit.emailExtensionAPIKey == \"\" || this.appToEdit.emailExtensionSenderEmail == \"\"){\n return;\n }\n\n this.appService.testEmailExtension(this.appToEdit.appId).then(res => {\n swal({\n title: 'Success!',\n text: 'Your email extension service is working.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n })\n .catch(err => {\n let message = err.error ? err.error.message : err.message;\n swal({\n title: 'Something When Wrong',\n text: `${message}. Please check your email for more detail.`,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n })\n\n }\n\n saveEmailExtension(){ \n if(this.appToEdit.emailExtensionAPIKey == \"\") {\n swal({\n title: 'Invalid Data',\n text: 'Please enter Send Grid API Secret Key',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return;\n }\n\n if(this.appToEdit.emailExtensionSenderEmail == \"\") {\n swal({\n title: 'Invalid Data',\n text: 'Please enter Sender Email',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return;\n }\n\n if(this.appToEdit.emailExtensionAPIKey.length < 60) {\n swal({\n title: 'Invalid Data',\n text: 'Please enter a valid Send Grid API Secret Key',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return;\n }\n\n\n this.appService.updateAppSetting(this.appToEdit, 'emailExtensionAPIKey').then(res => {\n swal({\n title: 'Success!',\n text: 'Your email extension has been updated.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n });\n }\n\n\n switchAppKey(raw){\n if(raw) this.appPublicKey = this.appToEdit.rawPublicKey;\n else this.appPublicKey = this.appToEdit.appPublicKey;\n }\n\n\n showModal(modal, option, size){\n this.modalOption = option;\n \n size = size ? size : '';\n this.modalService.open(modal, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title', size: size}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n }\n\n editVerifyEmailTemplate(){\n this.clickEditVerifyEmailTemplate = true;\n }\n\n\n\n removeSignup(signup){\n let that = this;\n swal({\n title: `Remove invite '${signup.handle}', are you sure?`,\n text: 'You will not be able to recover this signup data!',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, delete it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).then((result) => {\n if (result.value) {\n that.appService.removeAppSignup(signup).then(res => {\n swal({\n title: 'Deleted!',\n text: 'Your app signup has been deleted.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n this.signUpList = this.signUpList.filter(item => item._id != signup._id);\n if(this.searchSignUpResult) this.searchSignUpResult = this.searchSignUpResult.filter(item => item._id != signup._id);\n }).catch(err => { \n\n });\n \n \n\n } else {\n\n swal({\n title: 'Cancelled',\n text: 'Your app signup is safe :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n }\n });\n\n }\n\n resendInvite(invite){\n this.appService.resendAppInvite(invite).then(res => {\n swal({\n title: 'Success!',\n text: 'Your app invite has been sent.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n })\n .catch(err => {\n let message = err.error ? err.error.message : err.message;\n swal({\n title: 'Invalid Input',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n })\n }\n\n \n removeInvite(invite){\n let that = this;\n swal({\n title: `Remove invite '${invite.handle}', are you sure?`,\n text: 'You will not be able to recover this invite data!',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, delete it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).then((result) => {\n if (result.value) {\n that.appService.removeAppInvite(invite).then(res => {\n swal({\n title: 'Deleted!',\n text: 'Your app invite has been deleted.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n this.inviteList = this.inviteList.filter(item => item._id != invite._id);\n if(this.searchInviteResult) this.searchInviteResult = this.searchInviteResult.filter(item => item._id != invite._id);\n }).catch(err => { \n\n swal({\n title: 'Invalid Data',\n text: 'Your app invite is not deleted',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n });\n \n \n\n } else {\n\n swal({\n title: 'Cancelled',\n text: 'Your app invite is safe :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n }\n });\n\n }\n\n createAppInvite(){\n let that = this; \n\n swal({\n title: 'Enter User Invite',\n html: '

use camma seperation for multiple email

' +\n '' +\n \n '
',\n showCancelButton: true,\n confirmButtonClass: 'btn btn-success',\n cancelButtonClass: 'btn btn-danger',\n buttonsStyling: false,\n allowOutsideClick:false,\n allowEnterKey: true\n }).then(function(result) {\n \n if(result.dismiss) return;\n let emails = $('#input-handle').val();\n \n if (emails.indexOf(\"+\") > 0){\n\n swal({\n title: 'Invalid Input',\n text: \"Cannot use any email with '+' sign.\",\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return\n }\n else if (emails.split(\",\").length > 10 ){\n swal({\n title: 'Invalid Input',\n text: \"Your emails cannot have more 10 emails.\",\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return\n }\n\n that.appService.createAppInvite({appId:that.appToEdit.appId, handle:emails}).then(res => {\n let result = res as any;\n\n let text = '';\n if(result.invites && result.invites.length){\n let invitedEmail = result.invites.map(item => item.handle);\n text = `Your invitation has been sent to: ${invitedEmail}`;\n\n for (let index = 0; index < result.invites.length; index++) {\n const invite = result.invites[index];\n invite.show = true\n invite.createdAt = that.datePipe.transform(new Date(invite.createdAt), 'MMM d, y, h:mm:ss a');\n invite.updatedAt = that.datePipe.transform(new Date(invite.updatedAt), 'MMM d, y, h:mm:ss a'); \n that.inviteList.unshift(invite);\n }\n\n if (result.exists && result.exists.length){\n if (result.exists.length > 1) text = text + `
these emails already registered: ${result.exists}`\n else text = text + `
this email already registered: ${result.exists}`\n } \n \n swal({\n title: 'Success!',\n html: text,\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop);\n \n } \n else {\n\n text = `Fails to send invitation.`;\n\n if (result.exists && result.exists.length){\n\n if (result.exists && result.exists.length){\n if (result.exists.length > 1) text = text + `
these emails already registered: ${result.exists}`\n else text = text + `
this email already registered: ${result.exists}`\n } \n } \n swal({\n title: 'Invalid Input',\n html: text,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n } \n\n })\n .catch(err => {\n let message = err.error ? err.error.message : err.message;\n swal({\n title: 'Invalid Input',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n })\n\n });\n\n }\n\n onkeyUpEvent(evt, handle, userpass, confpassword){\n if (evt.key === \"Enter\") { \n this.createAppUser(handle, userpass, confpassword);\n }\n } \n \n\n createAppUser(handle, userpass, confpassword){\n\n let that = this;\n if(handle == '' || userpass == '' || confpassword == ''){\n this.formCreateAppUserClass = \"need-validation was-validated\";\n\n swal({\n title: 'Invalid',\n text: 'Please enter all required fields',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return;\n } \n else if(userpass != confpassword){\n\n swal({\n title: 'Invalid Password',\n text: 'Password and Confirm Password is not match',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return;\n\n } \n if(!that.helperService.emailValidation(handle)){\n swal({\n title: 'Invalid Email',\n text: 'Please enter a valid email address',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n return;\n } \n\n if(!this.validatePassword(userpass, this.appToEdit)) return;\n\n \n\n let hash = Md5.hashStr(confpassword);\n let option:any = {appId:that.appToEdit.appId, password:hash, handle:handle};\n\n \n\n that.appService.createAppUser(option).then(res => {\n\n this.modalService.dismissAll();\n this.modalOption = '';\n\n let u = res as any;\n u.show = true\n u.createdAt = that.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = that.datePipe.transform(new Date(u.updatedAt), 'MMM d, y');\n //if(u.metaData) u.metaData = JSON.stringify(u.metaData,null, 5);\n if(u.lastLogin) u.lastLogin = that.datePipe.transform(new Date(u.lastLogin), 'MMM d, y');\n\n that.userList.unshift(res);\n\n swal({\n title: 'Success!',\n text: 'Your app user has been added.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n\n }).catch(err => {\n let message = err.error ? err.error.message : err.message;\n swal({\n title: 'Invalid',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n \n });\n }\n\n\n validatePassword(password, app){\n if(app.passwordFilter){\n\n let message = `Your password must contain at least ${app.passwordMinLength} characters,`;\n \n if(app.passwordMinUpper > 0) message += ` ${app.passwordMinUpper} uper case,`\n if(app.passwordMinLower > 0) message += ` ${app.passwordMinLower} lower case,`\n if(app.passwordMinDigit > 0) message += ` ${app.passwordMinDigit} digit number,`\n if(app.passwordMinSpecial > 0) message += ` ${app.passwordMinSpecial} special characters.`\n\n if(app.passwordMinLength > password.length){\n swal({\n title: 'Invalid',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n return false;\n }\n\n if(app.passwordMinUpper > 0){\n let numUpper = (password.match(/[A-Z]/g) || []).length; \n\n if(numUpper < app.passwordMinUpper){\n swal({\n title: 'Invalid',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n return false;\n }\n } \n \n if(app.passwordMinLower > 0){\n let numUpper = (password.match(/[a-z]/g) || []).length; \n\n if(numUpper < app.passwordMinUpper){\n swal({\n title: 'Invalid',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n return false;\n }\n } \n\n if(app.passwordMinDigit > 0){\n let numUpper = (password.match(/[0-9]/g) || []).length; \n\n if(numUpper < app.passwordMinUpper){\n swal({\n title: 'Invalid',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n return false;\n }\n } \n\n if(app.passwordMinSpecial > 0){ \n let patt = /[!@#$%^()_+\\-\\[\\]':\\\\,.\\/?]/g; \n\n let numSpecial = password.match(patt);\n\n if(!numSpecial || numSpecial.length < app.passwordMinSpecial){\n swal({\n title: 'Invalid',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n return false;\n }\n } \n\n }\n return true;\n }\n\n\n\n addInviteMetaDataField(){\n\n this.updatingInviteMetaData = true;\n\n if(!this.appInviteMetaData) this.appInviteMetaData = [];\n let that = this;\n this.appInviteMetaData.push({ \n id: that.helperService.getUUID(),\n required: false,\n path: \"\",\n fieldName: \"\"\n });\n }\n\n\n addMetaDataField(){\n\n this.updatingAppMetaData = true;\n\n if(!this.appMetaData) this.appMetaData = [];\n let that = this;\n this.appMetaData.push({ \n id: that.helperService.getUUID(),\n required: false,\n canEdit: false,\n path: \"\",\n fieldName: \"\"\n });\n }\n\n \n\n updateAppMetaDataSetting(value){\n this.appToEdit.metaDataEmail = value;\n this.appService.updateAppSetting(this.appToEdit, 'metaDataEmail');\n\n }\n\n updateMetaDataField(value, field, type){ \n\n this.appMetaData.filter(f => {\n if(f.id == field.id){ \n \n if(type == \"required\" && f.required != value){\n this.updatingAppMetaData = true;\n f.required = value;\n } \n else if(type == \"canEdit\" && f.canEdit != value){\n this.updatingAppMetaData = true;\n f.canEdit = value;\n } \n else this.updatingAppMetaData = false;\n } \n }); \n }\n\n removeAppMetaData(field){ \n this.appMetaData = this.appMetaData.filter(f => f.id != field.id); \n this.updatingAppMetaData = true;\n }\n\n\n removeAppInviteMetaData(field){ \n this.appInviteMetaData = this.appInviteMetaData.filter(f => f.id != field.id); \n this.updatingInviteMetaData= true;\n }\n\n checkDuplicateMetaData(){\n let result:any = {};\n this.appMetaData.forEach(appItem => {\n if(appItem){ \n this.appInviteMetaData.forEach(inviteItem => {\n\n if(inviteItem.path == appItem.path || inviteItem.fieldName == appItem.fieldName) {\n result.app = appItem;\n result.invite = inviteItem;\n }\n\n });\n }\n });\n\n return result;\n }\n\n saveAppInviteMetaData(){ \n let field = this.checkDuplicateMetaData()\n if(field.app){\n \n swal({\n title: 'Duplicate Metadata',\n html: `App metadata and Invite metadata is the same value.
App - Path: ${field.app.path}, fieldName: ${field.app.fieldName}.
Invite - Path: ${field.invite.path}, fieldName: ${field.invite.fieldName}.`,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n return;\n }\n\n this.appToEdit.metaDataInvite = this.appInviteMetaData;\n this.appService.updateAppInviteMetaData(this.appToEdit).then(res => {\n this.updatingInviteMetaData = false;\n });\n\n this.cloneAppInviteMetaData();\n\n }\n\n saveAppMetaData(){ \n\n let field = this.checkDuplicateMetaData()\n if(field.app){\n \n swal({\n title: 'Duplicate Metadata',\n html: `App metadata and Invite Metadata is the same value.
App - Path: ${field.app.path}, fieldName: ${field.app.fieldName}.
Invite - Path: ${field.invite.path}, fieldName: ${field.invite.fieldName}.`,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n return;\n }\n\n this.appToEdit.metaData = this.appMetaData;\n this.appService.updateAppMetaData(this.appToEdit).then(res => {\n this.updatingAppMetaData = false;\n });\n\n this.cloneAppMetaData();\n \n\n }\n\n discardMetaDataChanges(){\n this.updatingAppMetaData = false;\n\n this.cloneAppMetaData();\n }\n\n\n discardInviteMetaDataChanges(){\n this.updatingInviteMetaData = false;\n\n this.cloneAppInviteMetaData();\n }\n\n\n\n updateInviteMetaDataField(value, field){ \n\n this.appInviteMetaData.filter(f => {\n if(f.id == field.id){ \n if(f.required != value){\n this.updatingInviteMetaData = true;\n f.required = value;\n } \n else this.updatingInviteMetaData = false;\n } \n }); \n }\n\n onkeyUpMetaDataEvent(field, type){ \n \n this.appMetaData.filter(f => {\n if(f.id == field.id && f[type] != field[type]){ \n this.updatingAppMetaData = true;\n } \n }); \n }\n\n\n onkeyUpInviteMetaDataEvent(field, type){ \n \n this.appInviteMetaData.filter(f => {\n if(f.id == field.id && f[type] != field[type]){ \n this.updatingInviteMetaData = true;\n } \n }); \n }\n\n\n removeCosyncEngine(contenModal){\n let that = this;\n swal({\n title: `Remove Cosync AssetLink, are you sure?`,\n text: 'This will remove your MongoDB Realm Functions.',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, remove it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false, \n focusCancel: true\n\n }).then((result) => {\n if (result.value) {\n\n this.modalService.open(contenModal, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n }\n });\n }\n\n removeCosyncJWTProvider(contenModal){\n \n swal({\n title: `Remove Cosync AUTH, are you sure?`,\n text: 'This will remove your MongoDB Realm Functions.',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, remove it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false, \n focusCancel: true\n\n }).then((result) => {\n if (result.value) {\n this.modalService.open(contenModal, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n }\n });\n }\n\n\n showInitCosyncEngine(contenModal){\n\n if(this.currentUser.subscriptions.length == 1 && this.currentUser.subscriptions[0].developerPlanId == 'appsumo'){\n swal({\n title: 'Invalid Access',\n text: \"Upgrade your account to a paid developer if you want to access Cosync AssetLink\",\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return;\n }\n\n if(this.appToEdit.realmAppId == \"\"){\n swal({\n title: 'Invalid',\n text: \"Please set up your MongoDB Realm app id first.\",\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return;\n }\n this.formClass = \"need-validation\";\n\n this.cosyncEngineFormData = {\n version: this.cosyncVersions.cosyncEngine[0].versionNumber\n };\n\n this.cosyncEngineStep = 1;\n this.modalService.open(contenModal, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n\n}\n\nmodifyAppLocale(contenModal){\n this.modalService.open(contenModal, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n}\n\n\ninitCosyncJWTProvider(contenModal){\n\n if(this.appToEdit.realmAppId == \"\"){\n swal({\n title: 'Invalid',\n text: \"Please set up your MongoDB Realm app id first.\",\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return;\n }\n\n\n this.formClass = \"need-validation\";\n\n this.modalService.open(contenModal, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n\n }\n\n\n\n async removeCosyncJWTService(projectId, publicKey, privateKey){\n\n if( !projectId || projectId == \"\" || \n !publicKey || publicKey == \"\" || \n !privateKey || privateKey == \"\" ){\n \n this.formClass = \"need-validation was-validated\";\n\n swal({\n title: 'Invalid',\n text: 'Please enter all required fields',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop)\n\n return;\n } \n\n swal({\n title: 'Please wait',\n text: 'Request is being sent....',\n type: 'info',\n confirmButtonClass: \"btn btn-success\", \n buttonsStyling: false,\n allowOutsideClick: false,\n onBeforeOpen: () => { \n swal.showLoading();\n }\n }).catch(swal.noop)\n\n \n let item = {\n projectId: projectId,\n publicKey: publicKey,\n privateKey: privateKey,\n appId: this.appToEdit.appId\n }\n this.appService.removeCosyncJWT(item).then(appData => {\n\n swal({\n title: 'Success!',\n text: 'Your MongoDB Realm Cosync AUTH has been removed.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n this.appToEdit.appData = appData;\n this.apps.find(app => app.appId == this.appToEdit.appId).appData = appData;\n\n this.modalService.dismissAll(); \n\n }).catch(err => {\n swal({\n title: 'Whoop! Something went wrong',\n text: \"Please contact us for this issue\",\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n this.modalService.dismissAll(); \n })\n\n this.formClass = \"need-validation\";\n\n }\n\n async removeCosyncEngineService(){\n\n if( !this.cosyncEngineFormData.projectId || this.cosyncEngineFormData.projectId == \"\" || \n !this.cosyncEngineFormData.publicKey || this.cosyncEngineFormData.publicKey == \"\" || \n !this.cosyncEngineFormData.serviceId || this.cosyncEngineFormData.serviceId == \"\" || \n !this.cosyncEngineFormData.privateKey || this.cosyncEngineFormData.privateKey == \"\"){\n \n this.formClass = \"need-validation was-validated\";\n\n swal({\n title: 'Invalid',\n text: 'Please enter all required fields',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop)\n\n return;\n } \n\n swal({\n title: 'Please wait',\n text: 'Request is being sent....',\n type: 'info',\n confirmButtonClass: \"btn btn-success\", \n buttonsStyling: false,\n allowOutsideClick: false,\n onBeforeOpen: () => { \n swal.showLoading();\n }\n }).catch(swal.noop)\n\n \n this.cosyncEngineFormData.appId = this.appToEdit.appId;\n this.appService.removeCosyncEngine(this.cosyncEngineFormData).then(appData => {\n\n swal({\n title: 'Success!',\n text: 'Your MongoDB Realm Cosync AssetLink has been removed.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n this.appToEdit.appData = appData;\n this.apps.find(app => app.appId == this.appToEdit.appId).appData = appData;\n\n this.modalService.dismissAll(); \n\n }).catch(err => {\n swal({\n title: 'Whoop! Something went wrong',\n text: \"Please contact us for this issue\",\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n \n })\n\n this.formClass = \"need-validation\";\n\n }\n\n async initCosyncEngineServiceStep2(){\n if( !this.cosyncEngineFormData.awsAccessKey || this.cosyncEngineFormData.awsAccessKey == \"\" || \n !this.cosyncEngineFormData.awsSecretAccessKey || this.cosyncEngineFormData.awsSecretAccessKey == \"\" || \n !this.cosyncEngineFormData.s3Bucket || this.cosyncEngineFormData.s3Bucket == \"\" || \n !this.cosyncEngineFormData.s3Region || this.cosyncEngineFormData.s3Region == \"\" ||\n !this.cosyncEngineFormData.s3BucketPublic || this.cosyncEngineFormData.s3BucketPublic == \"\" || \n !this.cosyncEngineFormData.s3RegionPublic || this.cosyncEngineFormData.s3RegionPublic == \"\"){\n \n this.formClass = \"need-validation was-validated\";\n\n swal({\n title: 'Invalid',\n text: 'Please enter all required fields',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop)\n\n return;\n } \n \n swal({\n title: 'Please wait',\n text: 'Request is being sent....',\n type: 'info',\n confirmButtonClass: \"btn btn-success\", \n buttonsStyling: false,\n allowOutsideClick: false,\n onBeforeOpen: () => { \n swal.showLoading();\n }\n }).catch(swal.noop)\n\n let that = this;\n this.cosyncEngineFormData.appId = this.appToEdit.appId;\n\n this.appService.initCosyncEngine(this.cosyncEngineFormData).then(appData => {\n\n swal({\n title: 'Success!',\n text: 'Your MongoDB Realm Cosync AssetLink has been set.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n this.appToEdit.appData = appData;\n this.apps.find(app => app.appId == this.appToEdit.appId).appData = appData;\n\n this.modalService.dismissAll(); \n\n }).catch(err => {\n\n let message = err.error && err.error.message ? err.error.message : err.message; \n\n if(err.error.status == \"Duplicate\"){\n \n swal({\n title: 'Whoop! MongoDB Realm already has Cosync AssetLink',\n text: `Do you want to re-initialize your MongoDB Realm Cosync AssetLink?`,\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, do it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false\n\n }).then((result) => {\n \n if (result.value) {\n\n swal({\n title: 'Please wait',\n text: 'Request is being sent....',\n type: 'info',\n confirmButtonClass: \"btn btn-success\", \n buttonsStyling: false,\n allowOutsideClick: false,\n onBeforeOpen: () => { \n swal.showLoading();\n }\n }).catch(swal.noop)\n\n \n that.appService.reinitCosyncEngine(this.cosyncEngineFormData).then(appData => {\n \n swal({\n title: 'Success!',\n text: 'Your MongoDB Realm Cosync AssetLink has been set.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n this.modalService.dismissAll();\n\n this.appToEdit.appData = appData; \n this.apps.find(app => app.appId == this.appToEdit.appId).appData = appData;\n\n }).catch(err => { \n let message = \"Please contact us for this issue\";\n if(err.error.message) message = err.error.message;\n\n swal({\n title: 'Whoop! Something went wrong',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n this.modalService.dismissAll(); \n \n }); \n \n } else {\n \n swal({\n title: 'Cancelled',\n text: 'Your app is safe :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n\n }).catch(swal.noop)\n }\n });\n }\n else{\n swal({\n title: 'Whoop! Something went wrong',\n text: message ,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n }\n\n \n \n })\n\n \n\n }\n\n initCosyncEngineServiceStep1(){\n\n if( !this.cosyncEngineFormData.projectId || this.cosyncEngineFormData.projectId == \"\" || \n !this.cosyncEngineFormData.publicKey || this.cosyncEngineFormData.publicKey == \"\" || \n !this.cosyncEngineFormData.serviceId || this.cosyncEngineFormData.serviceId == \"\" || \n //!this.cosyncEngineFormData.partitionKey || this.cosyncEngineFormData.partitionKey == \"\" || \n !this.cosyncEngineFormData.realmDatabase || this.cosyncEngineFormData.realmDatabase == \"\" || \n !this.cosyncEngineFormData.privateKey || this.cosyncEngineFormData.privateKey == \"\"){\n \n this.formClass = \"need-validation was-validated\";\n\n swal({\n title: 'Invalid',\n text: 'Please enter all required fields',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop)\n\n return;\n }\n\n this.cosyncEngineStep = 2;\n this.formClass = \"need-validation\";\n \n }\n\n\n async initCosyncJWT(projectId, publicKey, privateKey, cosyncJWTVersion){\n\n if(projectId == \"\" || publicKey == \"\" || privateKey == \"\"){\n \n this.formClass = \"need-validation was-validated\";\n\n swal({\n title: 'Invalid',\n text: 'Please enter all required fields',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop)\n\n return;\n }\n\n let data = {\n version: cosyncJWTVersion,\n projectId:projectId, \n publicKey: publicKey,\n privateKey: privateKey,\n appId: this.appToEdit.appId\n };\n \n swal({\n title: 'Please wait',\n text: 'Request is being sent....',\n type: 'info',\n confirmButtonClass: \"btn btn-success\", \n buttonsStyling: false,\n allowOutsideClick: false,\n onBeforeOpen: () => { \n swal.showLoading();\n }\n }).catch(swal.noop)\n\n let that = this;\n\n this.appService.initCosyncJWT(data).then(appData => {\n \n swal({\n title: 'Success!',\n text: 'Your MongoDB Realm AUTH has been set.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n this.modalService.dismissAll();\n\n this.appToEdit.appData = appData;\n this.apps.find(app => app.appId == this.appToEdit.appId).appData = appData;\n\n }).catch(err => {\n\n let message = err.error && err.error.message ? err.error.message : err.message; \n\n if(err.error.status == \"Duplicate\"){\n \n swal({\n title: 'Whoop! MongoDB Realm already has AUTH Provider',\n text: `Do you want to re-initialize your MongoDB Realm AUTH Provider?`,\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, do it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false\n\n }).then((result) => {\n \n if (result.value) {\n\n swal({\n title: 'Please wait',\n text: 'Request is being sent....',\n type: 'info',\n confirmButtonClass: \"btn btn-success\", \n buttonsStyling: false,\n allowOutsideClick: false,\n onBeforeOpen: () => { \n swal.showLoading();\n }\n }).catch(swal.noop)\n\n \n that.appService.reinitCosyncJWT(data).then(res => {\n \n swal({\n title: 'Success!',\n text: 'Your MongoDB Realm AUTH has been set.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n this.modalService.dismissAll(); \n \n }).catch(err => { \n let message2 = err.error && err.error.message ? err.error.message : err.message; \n swal({\n title: 'Whoop! Invalid Data',\n text: message2,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n this.modalService.dismissAll(); \n \n }); \n \n } else {\n \n swal({\n title: 'Cancelled',\n text: 'Your app is safe :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n\n }).catch(swal.noop)\n }\n });\n }\n else{\n swal({\n title: 'Whoop! Invalid Data',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n }\n\n \n \n })\n\n \n }\n \n\n showUserMetaData(user, content){\n this.currentAppUser = user; \n \n this.modalService.open(content, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title', size: 'lg'}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n\n }\n\n\n editUserMetadata(user){\n this.editMetadata = true;\n this.updatingUserMetadata = false;\n this.editMetadataList = []; \n this.addMetadataList = []\n let loopData = Object.entries(user.metaData); \n\n for (const [key, value] of loopData) {\n \n let path = [];\n path.push(key); \n let p = path.toString();\n if (value && typeof value === 'object') { \n this.nestedLoop(value, p.split(\",\")); \n }\n else{\n\n this.editMetadataList.push({\n path: p.split(\",\").join(\".\"),\n value: value\n });\n } \n }\n\n let that = this;\n this.appMetaData.forEach(appField => {\n let found = false;\n that.editMetadataList.forEach(userField => {\n if(appField.path == userField.path) found = true;\n\n });\n\n if(!found) that.editMetadataList.push({path: appField.path, value: undefined});\n });\n\n this.appInviteMetaData.forEach(appInviteField => {\n let found = false;\n that.editMetadataList.forEach(userField => {\n if(appInviteField.path == userField.path){\n found = true;\n userField.invite = true; \n } \n }); \n\n if(!found) that.editMetadataList.push({path: appInviteField.path, value: undefined, invite:true});\n \n });\n \n \n }\n\n\n nestedLoop(data, path) {\n\n let loopData = Object.entries(data);\n \n let objectPathStirng = path.toString();\n\n for (const [key, value] of loopData) {\n let objectPath = objectPathStirng.split(\",\");\n objectPath.push(key);\n \n \n let p = objectPath.toString();\n if (value && typeof value === 'object') { \n this.recurse(value, p.split(','));\n }\n else{ \n this.editMetadataList.push({\n path: p.split(\",\").join(\".\"),\n value: value\n });\n }\n\n }\n }\n\n recurse(data, path) {\n let loopData = Object.entries(data);\n \n let objectPathStirng = path.toString();\n \n for (const [key, value] of loopData) {\n let objectPath = objectPathStirng.split(\",\");\n objectPath.push(key);\n let p = objectPath.toString();\n if (value && typeof value === 'object') { \n this.recurse(value, p.split(\",\"));\n }\n else{ \n this.editMetadataList.push({\n path: p.split(\",\").join(\".\"),\n value: value\n });\n }\n }\n }\n\n\n saveUserMetadata(user){\n this.editMetadata = false; \n let that = this;\n this.editMetadataList.forEach(field => {\n if(field.updated){\n that.updateObjectValue(that.currentAppUser.metaData, field.path, field.value);\n }\n });\n\n this.currentAppUser.addedMetadata = this.addMetadataList; \n\n for (const key in this.currentAppUser.metaData) { \n const element = this.currentAppUser.metaData[key];\n if(element === undefined || element == \"\") delete this.currentAppUser.metaData[key]; // remove empty value\n else if(typeof element == \"object\" && !Object.keys(element).length) delete this.currentAppUser.metaData[key]; // remove empty object\n }\n\n this.addMetadataList.forEach(field => { \n this.updateObjectValue(this.currentAppUser.metaData, field.path, field.value); \n });\n\n that.appService.updateAppUserMetaData(this.currentAppUser).then(res => {\n that.updatingUserMetadata = false; \n\n });\n }\n\n\n discardUserMetadata(){\n this.editMetadata = false; \n this.updatingUserMetadata = false;\n }\n\n \n\n updateObjectValue(obj, path, value){\n\n let objLevel = path.split(\".\"); \n\n while(objLevel.length > 1){\n let itemPath = objLevel.shift();\n let item = obj[itemPath];\n if(!item || item == undefined){\n obj[itemPath] = {};\n } \n obj = obj[itemPath];\n }\n \n if(value != \"\" && value != undefined) obj[objLevel.shift()] = value; \n else delete obj[objLevel.shift()];\n \n }\n\n onkeyUpUserMetaDataEvent(event, item){\n let value = event.target.value;\n this.updatingUserMetadata = true;\n\n for (let index = 0; index < this.editMetadataList.length; index++) {\n const field = this.editMetadataList[index];\n if(field.path == item.path){\n this.editMetadataList[index].value = value;\n this.editMetadataList[index].updated = true;\n } \n }\n \n }\n\n onkeyUpAddUserMetadataEvent(event, item, key){\n let value = event.target.value;\n this.updatingUserMetadata = true;\n\n for (let index = 0; index < this.addMetadataList.length; index++) {\n const field = this.addMetadataList[index];\n if(field.id == item.id){\n this.addMetadataList[index][key] = value; \n } \n }\n \n }\n\n clearMetadata(item){\n\n if(item.value == \"\" || item.value == undefined) return;\n item.value = \"\"; \n \n this.updatingUserMetadata = true;\n\n for (let index = 0; index < this.editMetadataList.length; index++) {\n const field = this.editMetadataList[index];\n if(field.path == item.path){\n this.editMetadataList[index].value = undefined;\n this.editMetadataList[index].updated = true;\n } \n }\n\n }\n\n exportAppDatabase(){\n\n swal({\n title: 'Please wait',\n text: 'Request is being sent....',\n type: 'info',\n confirmButtonClass: \"btn btn-success\", \n buttonsStyling: false,\n allowOutsideClick: false,\n onBeforeOpen: () => { \n swal.showLoading();\n }\n }).catch(swal.noop)\n\n this.appService.exportAppDatabase(this.appToEdit).then(res => {\n swal({\n title: 'Success!',\n text: 'Your app database will be downloaded soon.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n \n }).catch(err => {\n\n let message = \"Please contact us for this issue\";\n if(err.error.message) message = err.error.message;\n\n swal({\n title: 'Whoop! Something went wrong',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n });\n }\n\n\n compareDateChange(){\n\n this.logDateFilterMessage = \"\";\n \n let compareDate = this.helperService.compareDate(this.logFilter.fromDate, this.logFilter.toDate);\n if(!compareDate){\n this.validFilter = false;\n this.logDateFilterMessage = \"Invalid To Date\";\n\n } \n else this.validFilter = true;\n\n this.filterQuery = this.validFilter;\n }\n\n onAddLocale(value){\n\n if (value == \"\") return;\n let check = this.appLocales.filter(a => a == value)[0];\n if(!check) {\n this.appLocales.push(value)\n } \n }\n\n findCountryByLocale(locale) {\n let country = this.localeList.filter(item => item.code == locale)[0];\n if (locale == \"EN\") return\" English (default)\";\n return country ? country.name : \"\";\n }\n\n removeAppLocale(locale){\n this.appLocales = this.appLocales.filter(a => a != locale);\n }\n\n saveAppLocale(){\n \n let data = {appId:this.appToEdit.appId, locales: this.appLocales}\n \n this.appService.addRemoveAppLocale(data).then(res => {\n\n let newTemplates = res as any;\n this.appEmailTemplates = newTemplates.localesTemplate;\n this.appToEdit.locales = this.appLocales;\n \n this.selectedLocaleEmailTemplate = this.appEmailTemplates[\"EN\"]; \n this.setCurrentEmailTemplate()\n this.selectedAppLocale = \"EN\";\n this.modalService.dismissAll(); \n \n }).catch(err => {\n swal({\n title: 'Fails',\n text: err.error.message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop)\n \n }); \n \n }\n\n cancelAppLocale(){\n this.appLocales = this.appToEdit.locales;\n }\n\n selectLocaleChange(value){\n \n this.selectedLocaleEmailTemplate = this.appEmailTemplates[value]; \n this.setCurrentEmailTemplate();\n\n }\n\n\n\n cancelEditVerifyEmailTemplate(templateName){\n\n this.clickEditVerifyEmailTemplate = false;\n\n if (templateName) { \n this.selectedEmailTemplateName = templateName;\n this.setCurrentEmailTemplate()\n }\n }\n\n setCurrentEmailTemplate(){\n if (this.selectedLocaleEmailTemplate && this.selectedLocaleEmailTemplate.length){\n this.selectedEmailTemplate = this.selectedLocaleEmailTemplate.filter(template => template.templateName == this.selectedEmailTemplateName)[0];\n }\n }\n\n}\n","export default \".form-group {\\n margin-top: 0px !important;\\n }\\n \\n video {\\n position: absolute;\\n top: 38%;\\n left: 50%;\\n min-width: 100%;\\n min-height: 100%;\\n width: auto;\\n height: auto;\\n z-index: 0;\\n -webkit-transform: translateX(-50%) translateY(-50%);\\n transform: translateX(-50%) translateY(-50%);\\n }\\n \\n .h1,\\n .h2,\\n .h3,\\n .h4,\\n body,\\n label,\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n font-family: Highway Gothic, Helvetica, Arial, sans-serif !important;\\n font-weight: 300;\\n line-height: 1.5em;\\n }\\n \\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9hcHBzdW1vL2FwcHN1bW8uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLDBCQUEwQjtFQUM1Qjs7RUFFQTtJQUNFLGtCQUFrQjtJQUNsQixRQUFRO0lBQ1IsU0FBUztJQUNULGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLFlBQVk7SUFDWixVQUFVO0lBR1Ysb0RBQW9EO0lBQ3BELDRDQUE0QztFQUM5Qzs7RUFFQTs7Ozs7Ozs7Ozs7O0lBWUUsb0VBQW9FO0lBQ3BFLGdCQUFnQjtJQUNoQixrQkFBa0I7RUFDcEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2FwcHN1bW8vYXBwc3Vtby5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmZvcm0tZ3JvdXAge1xuICAgIG1hcmdpbi10b3A6IDBweCAhaW1wb3J0YW50O1xuICB9XG4gIFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMzglO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgei1pbmRleDogMDtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG4gIFxuICAuaDEsXG4gIC5oMixcbiAgLmgzLFxuICAuaDQsXG4gIGJvZHksXG4gIGxhYmVsLFxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2IHtcbiAgICBmb250LWZhbWlseTogSGlnaHdheSBHb3RoaWMsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgfVxuICAiXX0= */\"","import { Component, OnInit, OnDestroy } from '@angular/core'; \nimport { AuthenticationService } from 'src/app/services/authentication.service';\nimport swal from 'sweetalert2';\nimport {FormControl, FormGroupDirective, NgForm, Validators, FormGroup, FormBuilder} from '@angular/forms';\nimport {ErrorStateMatcher} from '@angular/material/core';\n\nexport class MyErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n const isSubmitted = form && form.submitted;\n return !!(control && control.invalid && (control.dirty || control.touched || isSubmitted));\n }\n}\n\n\n@Component({\n selector: 'app-appsumo',\n templateUrl: './appsumo.component.html',\n styleUrls: ['./appsumo.component.css']\n})\nexport class AppsumoComponent implements OnInit, OnDestroy {\n\n loading:boolean = false;\n isSuccess:boolean = false;\n isAcceptTerm:boolean = false;\n registerAppSumoData:any = {};\n formClass:string = \"need-validation\";\n validateInfo:string = '';\n matcher = new MyErrorStateMatcher();\n validEmailRegister: boolean = false;\n\n emailFormControl = new FormControl('', [\n Validators.required,\n Validators.email\n ]);\n\n registerForm : FormGroup;\n\n constructor(private authService:AuthenticationService, private formBuilder: FormBuilder) {\n\n }\n\n\n validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n if (control instanceof FormControl) {\n control.markAsTouched({ onlySelf: true });\n } else if (control instanceof FormGroup) {\n this.validateAllFormFields(control);\n }\n });\n }\n\n\n emailValidationRegister(e){\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n if (re.test(String(e).toLowerCase())) {\n this.validEmailRegister = true;\n } else {\n this.validEmailRegister = false;\n }\n \n }\n\n ngOnInit() { \n const body = document.getElementsByTagName('body')[0];\n body.classList.add('register-page');\n }\n\n validatePassword(){\n return true;\n }\n\n ngOnDestroy(){\n const body = document.getElementsByTagName('body')[0];\n body.classList.remove('register-page');\n }\n\n\n register(){ \n if(this.loading) return;\n\n this.formClass = \"need-validation was-validated\"; \n \n if( !this.registerAppSumoData.email || !this.registerAppSumoData.password || !this.registerAppSumoData.couponCode){\n this.validateInfo = \"Please enter all required fields.\";\n return;\n\n } \n\n if(!this.isAcceptTerm){\n this.validateInfo = \"Please accept Term and Conditions\";\n return;\n }\n this.validateInfo = \"\";\n this.loading = true;\n \n this.authService.registerAccountAppSumo(this.registerAppSumoData).then(result => {\n\n let res = result as any; \n this.isSuccess = true;\n this.registerAppSumoData.uid = res.uid;\n this.loading = false;\n \n swal({\n title: \"Success!\",\n text: `Please confirm your email.(${res.email})`,\n buttonsStyling: false,\n confirmButtonClass: \"btn btn-success\",\n type: \"success\"\n }).catch(swal.noop)\n\n }).catch(reason => {\n \n this.loading = false;\n swal({\n title: reason.error ? reason.error.status || \"Fails\" : \"Fails\",\n text: reason.error ? reason.error.message || \"Invalid Data\" : \"Invalid Data\",\n type: 'error',\n confirmButtonClass: \"btn btn-info\",\n buttonsStyling: false\n }).catch(swal.noop)\n \n });\n }\n\n resend(){\n this.authService.resendActivate(this.registerAppSumoData.uid).then(result => {\n this.isSuccess = true;\n swal({\n title: \"Success!\",\n text: \"Please confirm your email.\",\n buttonsStyling: false,\n confirmButtonClass: \"btn btn-success\",\n type: \"success\"\n }).catch(swal.noop)\n\n }).catch(reason => {\n swal({\n title: reason.error.status,\n text: reason.error.message,\n type: 'error',\n confirmButtonClass: \"btn btn-info\",\n buttonsStyling: false\n }).catch(swal.noop)\n });\n }\n\n onkeydown(evt){\n if (evt.key === \"Enter\") { \n this.register();\n }\n }\n\n\n acceptTermCondition(value){\n this.isAcceptTerm = value;\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvY2xpY2stdGhyb3VnaC9jbGljay10aHJvdWdoLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\n \nimport { ActivatedRoute } from '@angular/router';\nimport { AuthenticationService } from 'src/app/services/authentication.service';\nimport { HostService } from 'src/app/services/host.service';\n\n@Component({\n selector: 'app-click-through',\n templateUrl: './click-through.component.html',\n styleUrls: ['./click-through.component.css']\n})\nexport class ClickThroughComponent implements OnInit {\n\n\n activateResult:any = {\n loading: true\n };\n\n constructor( private route: ActivatedRoute, private authService:AuthenticationService, private hostService:HostService) {\n let token = this.route.snapshot.paramMap.get('token'); \n let handle = this.route.snapshot.paramMap.get('handle');\n let code = this.route.snapshot.paramMap.get('code'); \n let hostId = this.route.snapshot.paramMap.get('hostId'); \n\n if(token && handle && code){\n this.authService.logout();\n\n if(hostId) {\n hostService.activateLinkAppUser(hostId, token, handle, code).then(result => {\n let item = result as any;\n this.activateResult.htmlTemplate = item.htmlTemplate; \n this.activateResult.status = true;\n this.activateResult.loading = false;\n \n \n }).catch(err => {\n this.activateResult.title = `Whoop! Something went wrong. Your link is invalid.`;\n this.activateResult.message = err.error.message;\n this.activateResult.status = false;\n this.activateResult.loading = false;\n });\n }\n else {\n authService.activateAppUser(token, handle, code).then(result => {\n let item = result as any;\n this.activateResult.htmlTemplate = item.htmlTemplate; \n this.activateResult.status = true;\n this.activateResult.loading = false;\n \n }).catch(err => {\n this.activateResult.title = `Whoop! Something went wrong. Your link is invalid.`;\n this.activateResult.message = err.error.message;\n this.activateResult.status = false;\n this.activateResult.loading = false;\n });\n }\n \n }\n \n }\n\n ngOnInit() {\n\n }\n\n}\n","export default \".download-page {\\n padding-top: 70px !important;\\n}\\n\\n\\n\\n.download-page .title {\\n color: #3c4858 !important;\\n}\\n\\n\\n\\n.download-page .description {\\n color: #3c4858 !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9kb3dubG9hZC9kb3dubG9hZC5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksNEJBQTRCO0FBQ2hDOzs7O0FBSUE7SUFDSSx5QkFBeUI7QUFDN0I7Ozs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZG93bmxvYWQvZG93bmxvYWQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5kb3dubG9hZC1wYWdlIHtcbiAgICBwYWRkaW5nLXRvcDogNzBweCAhaW1wb3J0YW50O1xufVxuXG5cblxuLmRvd25sb2FkLXBhZ2UgLnRpdGxlIHtcbiAgICBjb2xvcjogIzNjNDg1OCAhaW1wb3J0YW50O1xufVxuXG4uZG93bmxvYWQtcGFnZSAuZGVzY3JpcHRpb24ge1xuICAgIGNvbG9yOiAjM2M0ODU4ICFpbXBvcnRhbnQ7XG59Il19 */\"","import { DatePipe } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Developer } from 'src/app/models/developer';\nimport { PaymentService } from 'src/app/services/payment.service';\n\n@Component({\n selector: 'app-download',\n templateUrl: './download.component.html',\n styleUrls: ['./download.component.css']\n})\nexport class DownloadComponent implements OnInit {\n \n currentUser:any = {};\n subscription:any = {};\n loading:boolean = false;\n isClickCertToken:boolean = false;\n\n constructor( private router: Router, private paymentService: PaymentService, private datePipe: DatePipe ) { \n let cache = localStorage.getItem('currentUser');\n this.currentUser = JSON.parse(cache) as Developer;\n\n\n if(!this.currentUser) this.router.navigate(['/login']);\n\n this.currentUser.subscriptions.forEach(plan => {\n if(plan.developerPlanId == 'self-hosting-plan' ) this.subscription = plan;\n });\n \n\n this.subscription.endDate = this.datePipe.transform(new Date(this.subscription.endDate), 'MMM d, y');\n this.subscription.nextBillingDate = this.datePipe.transform(new Date(this.subscription.nextBillingDate), 'MMM d, y');\n let planId = this.subscription ? this.subscription.developerPlanId : \"\";\n \n if(planId != 'self-hosting-plan') this.router.navigate(['/profile']);\n\n }\n\n ngOnInit() {\n this.loading = true;\n this.paymentService.getSelfHostingPlans().then(data => { \n let result = data as any;\n\n this.subscription.plan = result.plan;\n this.subscription.token = result.token;\n this.loading = false;\n \n\n });\n\n }\n\n copyPublicKey(item){\n item.select();\n document.execCommand('copy');\n item.setSelectionRange(0, 0);\n let that = this;\n setTimeout(function(){\n that.isClickCertToken = false; \n },1000)\n }\n\n}\n","export default \".app-footer2 {\\n position: relative !important;\\n}\\n\\n.footer{\\n z-index: 9999;\\n background-color: black;\\n opacity: .6;\\n}\\n\\n.app-footer a{\\n color: #3c4858 !important;\\n}\\n\\n.app-footer .copyright{\\n color: #3c4858 !important;\\n}\\n\\n.copyright, .footer a {\\n color: #fff;\\n}\\n\\n\\n\\n \\n \\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSw2QkFBNkI7QUFDakM7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsdUJBQXVCO0lBQ3ZCLFdBQVc7QUFDZjs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFDQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLFdBQVc7QUFDZiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFwcC1mb290ZXIyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbn1cblxuLmZvb3RlcntcbiAgICB6LWluZGV4OiA5OTk5O1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgIG9wYWNpdHk6IC42O1xufSBcblxuLmFwcC1mb290ZXIgYXtcbiAgICBjb2xvcjogIzNjNDg1OCAhaW1wb3J0YW50O1xufVxuLmFwcC1mb290ZXIgLmNvcHlyaWdodHtcbiAgICBjb2xvcjogIzNjNDg1OCAhaW1wb3J0YW50O1xufVxuXG4uY29weXJpZ2h0LCAuZm9vdGVyIGEge1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG5cblxuIFxuICJdfQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { Router, NavigationEnd } from '@angular/router'; \nimport { NotifyService } from 'src/app/services/notify.service';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.css']\n})\nexport class FooterComponent implements OnInit {\n currentDate: any;\n footerClass:string = 'footer app-footer';\n constructor(private router:Router, private notify:NotifyService) {\n this.router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n \n if(event.url.indexOf(\"/pricing\") >= 0 || event.url.indexOf(\"/download\") >= 0 ){\n this.footerClass = 'footer app-footer app-footer2';\n }\n else this.footerClass = 'footer';\n }\n });\n\n\n }\n\n ngOnInit() {\n this.currentDate = new Date().getFullYear(); \n\n this.notify.getNoti().subscribe(res => {\n if(res.subject == 'total-app' && res.data <= 3) this.footerClass = 'footer app-footer';\n });\n }\n\n}\n","export default \".cosync-logo{\\n margin-top: -20px;\\n margin-left: -82px;\\n}\\n\\n.user-photo {\\n \\n width: 34px;\\n height: 34px;\\n overflow: hidden;\\n float: left;\\n z-index: 5;\\n cursor: pointer;\\n margin-right: 11px;\\n border-radius: 50%;\\n margin-left: 23px;\\n box-shadow: 0 16px 38px -12px rgba(0,0,0,.56), 0 4px 25px 0 rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.2);\\n}\\n\\n.user-photo img {\\n width: 100%;\\n}\\n\\n.app-header{\\n color: #3c4858 !important;\\n}\\n\\n.navbar-brand{\\n color: #fff;\\n}\\n\\n.app-brand{\\n color: #3c4858 !important;\\n}\\n\\n@media all and (max-width: 991px) {\\n .navbar .dropdown.show .dropdown-menu, .navbar .dropdown .dropdown-menu{\\n height: auto !important;\\n width: 260px !important;\\n background-color: #ffffff !important;\\n }\\n\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQkFBaUI7SUFDakIsa0JBQWtCO0FBQ3RCOztBQUVBOztJQUVJLFdBQVc7SUFDWCxZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLFdBQVc7SUFDWCxVQUFVO0lBQ1YsZUFBZTtJQUNmLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLDJHQUEyRztBQUMvRzs7QUFFQTtJQUNJLFdBQVc7QUFDZjs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLFdBQVc7QUFDZjs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJO1FBQ0ksdUJBQXVCO1FBQ3ZCLHVCQUF1QjtRQUN2QixvQ0FBb0M7SUFDeEM7O0FBRUoiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jb3N5bmMtbG9nb3tcbiAgICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgICBtYXJnaW4tbGVmdDogLTgycHg7XG59XG5cbi51c2VyLXBob3RvIHtcbiAgICBcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB6LWluZGV4OiA1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtYXJnaW4tcmlnaHQ6IDExcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAyM3B4O1xuICAgIGJveC1zaGFkb3c6IDAgMTZweCAzOHB4IC0xMnB4IHJnYmEoMCwwLDAsLjU2KSwgMCA0cHggMjVweCAwIHJnYmEoMCwwLDAsLjEyKSwgMCA4cHggMTBweCAtNXB4IHJnYmEoMCwwLDAsLjIpO1xufVxuXG4udXNlci1waG90byBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uYXBwLWhlYWRlcntcbiAgICBjb2xvcjogIzNjNDg1OCAhaW1wb3J0YW50O1xufVxuXG4ubmF2YmFyLWJyYW5ke1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4uYXBwLWJyYW5ke1xuICAgIGNvbG9yOiAjM2M0ODU4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAgLm5hdmJhciAuZHJvcGRvd24uc2hvdyAuZHJvcGRvd24tbWVudSwgLm5hdmJhciAuZHJvcGRvd24gLmRyb3Bkb3duLW1lbnV7XG4gICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogMjYwcHggIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIH1cblxufSJdfQ== */\"","import { Component, OnInit, ElementRef } from '@angular/core';\nimport { AuthenticationService } from 'src/app/services/authentication.service';\nimport { Router, RouterEvent, NavigationStart, NavigationEnd, NavigationError } from '@angular/router';\nimport { Developer } from 'src/app/models/developer';\nimport { NotificationService } from 'src/app/services/notification.service';\nimport swal from 'sweetalert2';\nconst misc: any = {\n navbar_menu_visible: 0,\n active_collapse: true,\n disabled_collapse_init: 0,\n};\n\ndeclare var $: any;\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.css']\n})\nexport class HeaderComponent implements OnInit {\n currentUser:any = {\n \n };\n isLogin:boolean = false;\n selfHostingPlan: string = '';\n private sidebarVisible: boolean;\n mobile_menu_visible: any = 0;\n headerClass:string = \"nav-link app-header\";\n brandClass:string = 'navbar-brand app-brand';\n hideHeader:boolean = false; \n private currentUrl:string = '';\n\n constructor(private authService:AuthenticationService, private router: Router, private element: ElementRef, private notification:NotificationService) { \n\n let cache = localStorage.getItem('currentUser');\n this.currentUser = JSON.parse(cache) as Developer; \n \n this.isLogin = this.authService.user ? true : false;\n let that = this;\n \n // show notification\n this.notification.getAlert().subscribe(message => {\n\n if(message && message.task == 'refreshToken') this.refreshToken(this.currentUrl);\n else if(message && message.text) that.showNotification(message.text, message.type);\n if(message && message.text == 'subscription is successed!'){\n let cache = localStorage.getItem('currentUser');\n that.currentUser = JSON.parse(cache) as Developer; \n \n }\n });\n\n\n if(this.currentUser && this.currentUser.lock){\n this.router.navigate([\"/lock\"]);\n }\n\n this.authService.user$.subscribe(user => {\n this.isLogin = this.authService.user ? true : false;\n this.currentUser = user;\n\n if(this.isLogin && this.authService.user.lock){\n this.router.navigate([\"/lock\"]);\n }\n \n });\n \n this.router.events.subscribe((event: RouterEvent) => {\n if(this.sidebarVisible) this.sidebarClose();\n\n if (event instanceof NavigationStart) {\n\n this.refreshToken(event.url);\n\n if(event.url.indexOf(\"/clickthrough\") >= 0) this.hideHeader = true; \n else this.hideHeader = false; \n\n\n if(event.url.indexOf(\"/app\") >= 0 || event.url.indexOf(\"/term\") >= 0 || event.url.indexOf(\"/admin\") >= 0){\n // this.headerClass = 'nav-link app-header';\n // this.brandClass = \"navbar-brand app-brand\";\n }\n else{\n // this.headerClass = 'nav-link';\n // this.brandClass = \"navbar-brand\";\n } \n\n \n }\n \n if(!this.authService.user) return;\n \n if (event instanceof NavigationStart) {\n if(this.authService.user.lock){\n this.router.navigate([\"/lock\"]);\n } \n\n \n\n } \n else if (event instanceof NavigationEnd) { \n \n this.currentUrl = event.url;\n\n if(this.authService.user.lock){\n this.router.navigate([\"/lock\"]);\n } \n if(event.url == \"lock\") this.authService.lock();\n\n } \n });\n\n }\n\n validateSessionLife(){ \n if(this.authService.user && this.authService.user.accessToken){ \n if(this.currentUrl.indexOf(\"/lock\") >= 0 || this.currentUrl.indexOf(\"/login\") >= 0) return true; \n\n let date = new Date(this.authService.user.sessionCreatedAt);\n let currentDate = new Date(); \n\n let difference_In_Time = currentDate.getTime() - date.getTime(); \n let hours = difference_In_Time / (1000 * 60 * 60); \n\n if(hours > 1){ // one hour\n\n swal({\n type: 'error',\n title: 'Whoop! Your session is expired.',\n text: \"Please login again.\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n }).then((result) => {\n this.router.navigate([\"/lock/logout\"]);\n });\n\n }\n }\n \n return true; \n \n }\n\n refreshToken(siteUrl){\n if(siteUrl == '' || siteUrl.indexOf(\"/lock\") >= 0 || siteUrl.indexOf(\"/login\") >= 0) return true; \n\n if(!this.authService.user || !this.authService.user.accessToken) return;\n\n this.authService.refreshToken().then(res => {\n\n this.authService.user.sessionCreatedAt = new Date(); \n\n }).catch(err => {\n swal({\n type: 'error',\n title: 'Whoop! Your session is expired.',\n text: \"Please login again.\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n }).then((result) => {\n this.router.navigate([\"/lock/logout\"]);\n });\n })\n \n }\n \n\n ngOnInit() {\n let that = this;\n \n setInterval(function(){\n that.validateSessionLife();\n }, 1000 * 60 * 10); // ten minutes\n \n \n } \n\n sidebarToggle() {\n if (this.sidebarVisible === false) {\n this.headerClass = 'nav-link';\n this.sidebarOpen();\n } else {\n this.sidebarClose();\n if(this.currentUrl.indexOf(\"/apps\") >= 0){\n this.headerClass = 'nav-link app-header';\n }\n }\n }\n\n onResize(event) {\n if ($(window).width() > 991) {\n return false;\n }\n return true;\n }\n\n sidebarOpen() {\n var $toggle = document.getElementsByClassName('navbar-toggler')[0];\n \n const body = document.getElementsByTagName('body')[0];\n setTimeout(function(){\n $toggle.classList.add('toggled');\n }, 500);\n\n body.classList.add('nav-open');\n\n setTimeout(function() {\n $toggle.classList.add('toggled');\n }, 430);\n\n var $layer = document.createElement('div');\n $layer.setAttribute('class', 'close-layer');\n\n document.getElementsByClassName('wrapper-full-page')[0].appendChild($layer);\n // if (body.querySelectorAll('.main-container')) {\n // document.getElementsByClassName('main-container')[0].appendChild($layer);\n // }else if (body.classList.contains('off-canvas-sidebar')) {\n // document.getElementsByClassName('wrapper-full-page')[0].appendChild($layer);\n // }\n\n setTimeout(function() {\n $layer.classList.add('visible');\n }, 100);\n\n $layer.onclick = function() { //asign a function\n body.classList.remove('nav-open');\n this.mobile_menu_visible = 0;\n this.sidebarVisible = false;\n\n $layer.classList.remove('visible');\n setTimeout(function() {\n $layer.remove();\n $toggle.classList.remove('toggled');\n }, 200);\n }.bind(this);\n\n body.classList.add('nav-open');\n this.mobile_menu_visible = 1;\n this.sidebarVisible = true;\n };\n\n\n sidebarClose() {\n var $toggle = document.getElementsByClassName('navbar-toggler')[0];\n const body = document.getElementsByTagName('body')[0];\n \n var $layer = document.getElementsByClassName('close-layer')[0]; \n \n body.classList.remove('nav-open');\n this.mobile_menu_visible = 0;\n this.sidebarVisible = false;\n\n if($layer) $layer.classList.remove('visible');\n setTimeout(function() {\n if($layer) $layer.remove();\n $toggle.classList.remove('toggled');\n }, 200);\n\n \n };\n\n\n\n showNotification(message: string, type: string) {\n const types = ['', 'info', 'success', 'warning', 'danger', 'error', 'primary']; \n\n $.notify({\n icon: 'notifications',\n message: message\n }, {\n type: types[type],\n timer: 3000,\n placement: {\n from: 'top',\n align: 'right'\n },\n template: '
' +\n '' +\n 'notifications ' +\n '{1} ' +\n '{2}' +\n '
' +\n '
' +\n '
' +\n '' +\n '
'\n });\n}\n\n}\n","export default \".apps-content {\\n padding-top: 70px;\\n padding-bottom: 70px;\\n}\\n\\n.breadcrumb-container {\\n margin-top: 25px;\\n}\\n\\n.app-container {\\n padding: 20px 5px 20px 5px !important;\\n cursor: pointer;\\n}\\n\\n.app-name {\\n margin-top: auto;\\n margin-bottom: auto;\\n}\\n\\n.app-modify {\\n margin-top: auto;\\n}\\n\\n.app-detail {\\n vertical-align: super;\\n padding-right: 10px;\\n}\\n\\n.app-controler {\\n text-align: right;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n flex-direction: row;\\n -webkit-box-align: end;\\n align-items: flex-end;\\n margin-top: auto;\\n margin-bottom: auto;\\n}\\n\\n.app-controler button {\\n margin-left: 20px !important;\\n width: 120px;\\n}\\n\\n.table-content {\\n padding-bottom: 10px;\\n}\\n\\n.user-fillter {\\n text-align: right;\\n}\\n\\ndiv.user-fillter input {\\n width: auto;\\n margin-left: 0.5rem;\\n display: inline-block;\\n}\\n\\ndiv.user-entry select {\\n width: auto;\\n}\\n\\ntable {\\n border-collapse: collapse;\\n}\\n\\ntable th {\\n font-size: 0.9rem;\\n font-weight: 400;\\n}\\n\\ntable.table th,\\ntable.table td {\\n padding-top: 1.1rem;\\n padding-bottom: 1rem;\\n}\\n\\n.table-bordered th,\\n.table-bordered td {\\n border: 1px solid #dee2e6;\\n}\\n\\n.table th,\\n.table td {\\n padding: 0.75rem;\\n vertical-align: top;\\n border-top: 1px solid #dee2e6;\\n}\\n\\n.pagination-wrapper {\\n text-align: right;\\n display: block;\\n}\\n\\n.user-controlers i {\\n padding-left: 7px;\\n}\\n\\n.align-left {\\n text-align: left;\\n}\\n\\n.nice-table {\\n display: block;\\n max-width: 100%;\\n overflow: auto;\\n}\\n\\n.email-table table {\\n border-collapse: collapse;\\n border-spacing: 0;\\n margin: 0;\\n padding: 0;\\n border: 0;\\n outline: 0;\\n}\\n\\n.main-card {\\n margin-bottom: 55px !important;\\n}\\n\\n.custom-range::-webkit-slider-thumb {\\n background: #4638ab;\\n}\\n\\n.custom-range::-moz-range-thumb {\\n background: #4638ab;\\n}\\n\\n.custom-range::-ms-thumb {\\n background: #4638ab;\\n}\\n\\n.custom-range::-moz-range-track {\\n width: 100%;\\n height: 5px;\\n cursor: pointer;\\n box-shadow: 0px 0px 0px #000000;\\n background: rgb(218, 220, 221);\\n border-radius: 1px;\\n border: 0px solid #000000;\\n}\\n\\n.custom-range::-webkit-slider-runnable-track {\\n width: 100%;\\n height: 5px;\\n cursor: pointer;\\n box-shadow: 0px 0px 0px #000000;\\n background: rgb(218, 220, 221);\\n border-radius: 1px;\\n border: 0px solid #000000;\\n}\\n\\n.custom-range::-ms-track {\\n width: 100%;\\n height: 5px;\\n cursor: pointer;\\n background: rgb(218, 220, 221);\\n border-color: transparent;\\n color: transparent;\\n}\\n\\n.material-icons.active {\\n color: #4638ab !important;\\n}\\n\\n.user-metadata-container {\\n overflow-y: auto;\\n overflow-x: hidden;\\n max-height: 400px;\\n}\\n\\n.edit-metadata-container {\\n overflow-y: auto;\\n overflow-x: hidden;\\n max-height: 400px;\\n}\\n\\n.metadata-x {\\n padding-top: 7px;\\n}\\n\\n.total-user {\\n margin-top: 8px;\\n}\\n\\n.app-status{\\n border: none;\\n box-shadow: none;\\n}\\n\\n.plusSign {\\n \\n font-size: 1.5rem;\\n font-weight: 500;\\n line-height: 1;\\n color: #000000;\\n text-shadow: 0 1px 0 #ffffff;\\n opacity: 0.5;\\n}\\n\\nbutton.plusSign {\\n padding: 0;\\n background-color: transparent;\\n border: 0;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n}\\n\\n.loading-host-data{\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n margin-right: -50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n z-index: 9999;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ob3N0cy9ob3N0cy5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCO0VBQ2pCLG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLHFDQUFxQztFQUNyQyxlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLHFCQUFxQjtFQUNyQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsOEJBQW1CO0VBQW5CLDZCQUFtQjtVQUFuQixtQkFBbUI7RUFDbkIsc0JBQXFCO1VBQXJCLHFCQUFxQjtFQUNyQixnQkFBZ0I7RUFDaEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsNEJBQTRCO0VBQzVCLFlBQVk7QUFDZDs7QUFFQTtFQUNFLG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtBQUNsQjs7QUFFQTs7RUFFRSxtQkFBbUI7RUFDbkIsb0JBQW9CO0FBQ3RCOztBQUVBOztFQUVFLHlCQUF5QjtBQUMzQjs7QUFFQTs7RUFFRSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLDZCQUE2QjtBQUMvQjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsY0FBYztFQUNkLGVBQWU7RUFDZixjQUFjO0FBQ2hCOztBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLGlCQUFpQjtFQUNqQixTQUFTO0VBQ1QsVUFBVTtFQUNWLFNBQVM7RUFDVCxVQUFVO0FBQ1o7O0FBRUE7RUFDRSw4QkFBOEI7QUFDaEM7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsV0FBVztFQUNYLGVBQWU7RUFDZiwrQkFBK0I7RUFDL0IsOEJBQThCO0VBQzlCLGtCQUFrQjtFQUNsQix5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsV0FBVztFQUNYLGVBQWU7RUFDZiwrQkFBK0I7RUFDL0IsOEJBQThCO0VBQzlCLGtCQUFrQjtFQUNsQix5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsV0FBVztFQUNYLGVBQWU7RUFDZiw4QkFBOEI7RUFDOUIseUJBQXlCO0VBQ3pCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQixpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxlQUFlO0FBQ2pCOztBQUdBO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQjtBQUNsQjs7QUFFQTs7RUFFRSxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLGNBQWM7RUFDZCxjQUFjO0VBQ2QsNEJBQTRCO0VBQzVCLFlBQVk7QUFDZDs7QUFFQTtFQUNFLFVBQVU7RUFDViw2QkFBNkI7RUFDN0IsU0FBUztFQUNULHdCQUF3QjtFQUN4QixxQkFBcUI7RUFDckIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixTQUFTO0VBQ1Qsa0JBQWtCO0VBQ2xCLHdDQUFnQztVQUFoQyxnQ0FBZ0M7RUFDaEMsYUFBYTtBQUNmIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9ob3N0cy9ob3N0cy5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFwcHMtY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiA3MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNzBweDtcbn1cblxuLmJyZWFkY3J1bWItY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMjVweDtcbn1cblxuLmFwcC1jb250YWluZXIge1xuICBwYWRkaW5nOiAyMHB4IDVweCAyMHB4IDVweCAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5hcHAtbmFtZSB7XG4gIG1hcmdpbi10b3A6IGF1dG87XG4gIG1hcmdpbi1ib3R0b206IGF1dG87XG59XG5cbi5hcHAtbW9kaWZ5IHtcbiAgbWFyZ2luLXRvcDogYXV0bztcbn1cblxuLmFwcC1kZXRhaWwge1xuICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG5cbi5hcHAtY29udHJvbGVyIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgbWFyZ2luLXRvcDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogYXV0bztcbn1cblxuLmFwcC1jb250cm9sZXIgYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHggIWltcG9ydGFudDtcbiAgd2lkdGg6IDEyMHB4O1xufVxuXG4udGFibGUtY29udGVudCB7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuXG4udXNlci1maWxsdGVyIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbmRpdi51c2VyLWZpbGx0ZXIgaW5wdXQge1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5kaXYudXNlci1lbnRyeSBzZWxlY3Qge1xuICB3aWR0aDogYXV0bztcbn1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xufVxuXG50YWJsZSB0aCB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG50YWJsZS50YWJsZSB0aCxcbnRhYmxlLnRhYmxlIHRkIHtcbiAgcGFkZGluZy10b3A6IDEuMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG5cbi50YWJsZS1ib3JkZXJlZCB0aCxcbi50YWJsZS1ib3JkZXJlZCB0ZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZWUyZTY7XG59XG5cbi50YWJsZSB0aCxcbi50YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDAuNzVyZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGVlMmU2O1xufVxuXG4ucGFnaW5hdGlvbi13cmFwcGVyIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4udXNlci1jb250cm9sZXJzIGkge1xuICBwYWRkaW5nLWxlZnQ6IDdweDtcbn1cblxuLmFsaWduLWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ubmljZS10YWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLmVtYWlsLXRhYmxlIHRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiAwO1xufVxuXG4ubWFpbi1jYXJkIHtcbiAgbWFyZ2luLWJvdHRvbTogNTVweCAhaW1wb3J0YW50O1xufVxuXG4uY3VzdG9tLXJhbmdlOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gIGJhY2tncm91bmQ6ICM0NjM4YWI7XG59XG5cbi5jdXN0b20tcmFuZ2U6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICBiYWNrZ3JvdW5kOiAjNDYzOGFiO1xufVxuXG4uY3VzdG9tLXJhbmdlOjotbXMtdGh1bWIge1xuICBiYWNrZ3JvdW5kOiAjNDYzOGFiO1xufVxuXG4uY3VzdG9tLXJhbmdlOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4ICMwMDAwMDA7XG4gIGJhY2tncm91bmQ6IHJnYigyMTgsIDIyMCwgMjIxKTtcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xuICBib3JkZXI6IDBweCBzb2xpZCAjMDAwMDAwO1xufVxuXG4uY3VzdG9tLXJhbmdlOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMDAwMDAwO1xuICBiYWNrZ3JvdW5kOiByZ2IoMjE4LCAyMjAsIDIyMSk7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgYm9yZGVyOiAwcHggc29saWQgIzAwMDAwMDtcbn1cblxuLmN1c3RvbS1yYW5nZTo6LW1zLXRyYWNrIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHJnYigyMTgsIDIyMCwgMjIxKTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubWF0ZXJpYWwtaWNvbnMuYWN0aXZlIHtcbiAgY29sb3I6ICM0NjM4YWIgIWltcG9ydGFudDtcbn1cblxuLnVzZXItbWV0YWRhdGEtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiA0MDBweDtcbn1cblxuLmVkaXQtbWV0YWRhdGEtY29udGFpbmVyIHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBtYXgtaGVpZ2h0OiA0MDBweDtcbn1cblxuLm1ldGFkYXRhLXgge1xuICBwYWRkaW5nLXRvcDogN3B4O1xufVxuXG4udG90YWwtdXNlciB7XG4gIG1hcmdpbi10b3A6IDhweDtcbn1cblxuXG4uYXBwLXN0YXR1c3tcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ucGx1c1NpZ24ge1xuICAgXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICNmZmZmZmY7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuYnV0dG9uLnBsdXNTaWduIHtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5sb2FkaW5nLWhvc3QtZGF0YXtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tcmlnaHQ6IC01MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB6LWluZGV4OiA5OTk5O1xufSJdfQ== */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport swal from 'sweetalert2'; \nimport { App } from 'src/app/models/app';\nimport { Host } from 'src/app/models/host';\nimport { NotificationService } from 'src/app/services/notification.service';\nimport { FormGroup, FormControl} from '@angular/forms';\nimport {DatePipe} from '@angular/common';\nimport {Md5} from 'ts-md5/dist/md5';\nimport { Developer } from 'src/app/models/developer'; \nimport { PaginationComponent } from '../pagination/pagination.component';\nimport { NotifyService } from 'src/app/services/notify.service';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { HelperService } from 'src/app/services/helper.service'; \nimport { HostService } from 'src/app/services/host.service';\nimport * as localeData from '../../../assets/locales.json';\ndeclare var $: any;\n\n\n@Component({\n selector: 'app-hosts',\n templateUrl: './hosts.component.html',\n styleUrls: ['./hosts.component.css']\n})\nexport class HostsComponent implements OnInit {\n\n @ViewChild('userPage', {static: false}) userPagination: PaginationComponent; \n @ViewChild('signupPage', {static: false}) signupPagination: PaginationComponent;\n @ViewChild('invitePage', {static: false}) invitePagination: PaginationComponent;\n @ViewChild('logPage', {static: false}) logPagination: PaginationComponent; \n \n twoFactorSelect: FormControl;\n formControlAppTypeSelect:FormControl;\n localeSelect: FormControl;\n updating :boolean = false;\n savingEmail:boolean = false;\n breadcrumbList = [];\n page:string = 'host-list';\n header:any; \n apps = [];\n hosts = [];\n editMetadata:boolean = false;\n addMetadataList = [];\n editMetadataList = [];\n isClickAppSecret:boolean = false;\n isClickAppId:boolean = false;\n cosyncEngineStep:number = 1;\n cosyncEngineFormData:any = {};\n isClickAppToken:boolean = false;\n isClickPublicKey:boolean = false;\n copyAppTokenIcon = \"content_copy\";\n copyPublicKeyIcon = \"content_copy\";\n hostToEdit:any = {};\n appToEdit:any = {};\n appMetaData = [];\n \n updatingAppMetaData:boolean = false;\n updatingUserMetadata:boolean = false;\n appInviteMetaData = [];\n updatingInviteMetaData:boolean = false;\n appEmailTemplates:any = {};\n selectedAppLocale:string = \"EN\";\n selectedLocaleEmailTemplate:any = {};\n selectedEmailTemplateName:string = 'signUp';\n selectedEmailTemplate:any = {};\n \n appLocales = [];\n \n\n appForm: FormGroup;\n currentUser:any; \n appPublicKey:string;\n loading_app_data:boolean = false;\n loading_twilio_data:boolean = false;\n loading_allapp: boolean = false;\n uploading_database_error: string = '';\n isConnecting: boolean = false;\n isSaving: boolean = false;\n clickEditVerifyEmailTemplate: boolean = false;\n cosyncVersions:any = {\n cosyncEngine:[],\n cosyncJWT: []\n };\n \n appData:any = {};\n searchUserResult:any = null;\n applicationLogs:any = [];\n searchInviteResult:any = null\n searchSignUpResult:any = null;\n userCount:number = 0;\n hideAnonUser:Boolean = true;\n userOffset:any = {page:1, order: 1, offset: 0};\n signUpOffset:any = {page:1, order: 1, offset: 0};\n inviteOffset:any = {page:1, order: 1, offset: 0};\n userList:any = [];\n \n inviteList:any;\n signUpList:any = [];\n entryAmount:number = 25;\n \n entryAmountSignUp:number = 25;\n entryAmountInvite:number = 25;\n currentAppUser:any;\n formResetClass = \"need-validation\";\n formCreateAppClass = \"need-validation\";\n formCreateAppUserClass = \"need-validation\";\n formClass = \"need-validation\";\n resetPaswordInfo:string = \"\";\n randomPwd:string =\"\";\n invalidPassword:string='';\n \n createAppData:any = {\n jwtEnabled: true\n }; \n\n\n createHostData:any = { \n \n }; \n\n modalOption:string;\n hostOption:any; \n\n validFilter:boolean = true;\n filterAction = ['all'];\n logFilter:any = {\n filterAction:['all'],\n type: \"all\",\n status: \"all\",\n fromDate:\"\",\n toDate:\"\" \n }; \n filterQuery:boolean = false;\n clickedFilter:boolean = false;\n logDateFilterMessage: string = \"\";\n appLogData:any = {};\n logsOffset:any = {page:1, order: 1, offset: 0};\n localeList:any = localeData.list;\n applicationActions = [ \"create\", \"update\", \"reset\", \"delete\", \"testTwilio\", \"getApp\", \"removeUser\", \"addUser\", \"searchUser\", \"deleteInvite\", \"createAppInvite\", \"removeAppSignup\", \"searchInvite\", \"resetUserPassword\", \"updateAppUserPassword\", \"updateAppUserMetaData\", \"reinitCosyncEngine\", \"initCosyncEngine\", \"updateAppInviteMetaData\", \"initCosyncJWT\", \"reinitCosyncJWT\", \"removeCosyncEngine\", \"removeCosyncJWT\", \"saveUserSchema\", \"export\", \"testEmailExtension\"];\n userActions = [\"signup\", \"completeSignup\", \"invite\", \"register\", \"login\", \"loginComplete\", \"sendEmail\", \"setUserMetadata\", \"forgotPassword\", \"resetPassword\", \"changePassword\", \"getUser\", \"getApplication\", \"setAppData\", \"setPhone\", \"verifyPhone\", \"setTwoFactorGoogleVerification\", \"setTwoFactorPhoneVerification\"];\n filterActions = this.applicationActions.concat(this.userActions);\n\n constructor(\n private hostService:HostService, \n private notiSerivce:NotificationService, \n private notifyService:NotifyService, \n private modalService: NgbModal,\n private helperService: HelperService,\n private router: Router,\n private route: ActivatedRoute,\n private datePipe: DatePipe) { \n\n \n\n this.hostService.apps.subscribe(data =>{\n\n for (let index = 0; index < data.length; index++) { \n data[index].lastModified = this.helperService.getLastModifiedDateString(data[index].updatedAt); \n }\n\n\n this.apps = data;\n if(this.apps.length <= 3) this.notifyService.notifyOther('total-app', this.apps.length);\n });\n\n\n this.hostService.hosts.subscribe(data =>{\n\n\n for (let index = 0; index < data.length; index++) { \n data[index].lastModified = this.helperService.getLastModifiedDateString(data[index].updatedAt); \n } \n\n this.hosts = data;\n if(this.hosts.length <= 3) this.notifyService.notifyOther('total-app', this.hosts.length);\n\n this.checkAllHostConnection(this.hosts)\n \n\n });\n\n\n this.hostOption = this.route.snapshot.paramMap; \n\n }\n\n ngOnInit() { \n\n \n let cache = localStorage.getItem('currentUser');\n this.currentUser = JSON.parse(cache) as Developer;\n\n if(this.currentUser.status != \"active\"){\n this.router.navigate(['/profile']);\n return;\n }\n this.loading_allapp = true;\n let that = this;\n\n this.cosyncVersions = {\n cosyncEngine:[],\n cosyncJWT: []\n }; \n \n if(that.hostOption.get('action') == 'apps'){\n that.page = \"app-list\"; \n }\n else if(that.hostOption.get('action') == 'app' && that.hostOption.get('appId')){\n that.page = \"app-detail\"; \n }\n\n if(this.hostOption.get('id') && this.hosts.length){\n let host = this.hosts.filter(a => a.hostId == this.hostOption.get('id'))[0];\n\n if(host) that.clickHost(host);\n else {\n that.router.navigate(['/hosts']);\n swal({\n type: 'error',\n title: 'Whoop! Host Does not exist.',\n text: \"Please try again\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n \n });\n }\n \n }\n else if(this.currentUser.type != \"free\" || this.currentUser.tester){\n \n this.hostService.getHosts(function(res, error){ \n \n if(that.hostOption.get('action') != 'app'){\n that.loading_allapp = false;\n }\n\n if(error && error.error.message){\n swal({\n type: 'warning',\n title: 'Whoop! Something went wrong.',\n text: error.error ? error.error.message : \"\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n \n }).then((result) => {\n that.router.navigate(['/profile']);\n });\n }\n else if(that.hostOption.get('id') || that.hostOption.get('action')){\n let host = that.hosts.filter(a => a.hostId == that.hostOption.get('id'))[0];\n\n if(host) that.clickHost(host);\n else {\n that.router.navigate(['/hosts']);\n swal({\n type: 'error',\n title: 'Whoop! Host Does not exist.',\n text: \"Please try again\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n \n });\n }\n }\n });\n }\n else that.loading_allapp = false;\n \n }\n\n\n\n createHost(content){ \n\n if(this.currentUser.type == \"free\" && !this.currentUser.tester){\n this.upgradeAccount(\"developer-program\")\n return;\n }\n \n\n this.createHostData = { \n \n }; \n\n this.modalService.open(content, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n }\n\n \n showCreateApp(content){ \n\n this.createAppData = { \n jwtEnabled: true\n }; \n\n this.modalService.open(content, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n }\n\n \n \n\n checkHostName(name){\n let host = this.hosts.filter(a => a.name == name); \n return host[0];\n }\n\n\n checkAppName(appName){\n let app = this.apps.filter(a => a.name == appName);\n \n return app[0];\n }\n\n\n createApplication(){\n \n\n if(!this.createAppData.appName || this.createAppData.appName == \"\"){\n this.formCreateAppClass = \"need-validation was-validated\";\n return;\n } \n\n if(this.checkAppName(this.createAppData.appName)){\n\n swal({\n type: 'error',\n title: 'Whoop! App name already exists.',\n text: \"Please enter different app name\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n\n });\n return;\n }\n\n this.modalService.dismissAll();\n\n let that = this;\n \n this.hostService.createApp(this.hostToEdit, this.createAppData, function(res, err){\n \n if(res) that.notiSerivce.success(`${that.createAppData.appName} application has been created.`); \n else {\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: err.error.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n \n });\n }\n that.createAppData = { };\n }); \n\n }\n\n\n submitCreateHost(){\n \n\n if(!this.createHostData.hostName || this.createHostData.hostName == \"\"){\n this.formCreateAppClass = \"need-validation was-validated\";\n return;\n } \n\n if(!this.createHostData.serverApiUrl || this.createHostData.serverApiUrl == \"\"){\n this.formCreateAppClass = \"need-validation was-validated\";\n return;\n } \n\n if(!this.createHostData.serverToken || this.createHostData.serverToken == \"\"){\n this.formCreateAppClass = \"need-validation was-validated\";\n return;\n } \n\n\n if(this.checkHostName(this.createHostData.hostName)){\n\n swal({\n type: 'error',\n title: 'Whoop! App name already exists.',\n text: \"Please enter different app name\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n\n });\n return;\n }\n\n this.modalService.dismissAll(); \n\n let that = this;\n \n this.hostService.addHost(this.createHostData, function(res, err){\n \n if(res){\n \n that.notiSerivce.success(`'${that.createHostData.hostName}' host has been created.`); \n\n that.hostService.getHostConnection(that.createHostData.serverApiUrl, that.createHostData.serverToken).then(conn => {\n that.createHostData = {};\n\n }).catch(err => { \n\n that.hosts.find(host => host.name == that.createHostData.hostName).status = \"offline\";\n let host = that.hosts.find(host => host.name == that.createHostData.hostName);\n let data = {\n hostId: host.hostId,\n status: 'offline'\n };\n \n that.hostService.editHost(data, function(){});\n\n swal({\n type: 'error',\n title: `Whoop! Can not connect to your host '${that.createHostData.hostName}'.`,\n text: err.error ? err.error.message : err.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n }); \n\n that.createHostData = {};\n\n })\n } \n else {\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n html: err.error.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n \n });\n\n that.createHostData = {};\n }\n\n\n\n \n }); \n\n }\n \n goToAppId(app){\n this.router.navigate([`/host/${this.hostToEdit.hostId}/app/`+app.appId]);\n }\n\n\n goToHostId(app){\n \n this.router.navigate(['/host/'+app.hostId+'/apps']);\n }\n\n showAllApps(){\n this.page = 'host-list';\n this.breadcrumbList = [];\n }\n\n showHostSetting(){\n this.router.navigate([\"/host/\" + this.hostToEdit.hostId]); \n }\n\n clickHost(host){ \n\n let displayHost: Host = {\n name: host.name, \n hostId: host.hostId,\n status: host.status, \n developerUid: host.developerUid,\n serverToken: host.serverToken, \n serverApiUrl: host.serverApiUrl, \n createdAt: host.createdAt,\n updatedAt: host.updatedAt,\n };\n\n let that = this;\n this.hostToEdit = displayHost; \n\n\n this.testHostConnection(host.serverApiUrl, host.serverToken, true).then(conn => {\n\n if(!conn) {\n\n that.page = \"host-detail\";\n that.breadcrumbList.push(displayHost); \n \n }\n else{ \n\n this.hostService.getHostApplications(host, function(res, error){ \n\n if(that.hostOption.get('action') == 'apps'){\n that.page = \"app-list\"; \n that.loading_allapp = false;\n } \n else if(that.hostOption.get('action') == 'app' && that.hostOption.get('appId')){\n \n let app = that.apps.filter(a => a.appId == that.hostOption.get('appId'))[0];\n if(app) that.clickApp(app);\n } \n else{\n that.page = \"host-detail\";\n that.breadcrumbList.push(displayHost);\n that.loading_allapp = false;\n } \n\n \n });\n \n\n this.hostService.getCosyncVersion(host, function(versions){\n versions.forEach(v => {\n if(v.service == \"CosyncEngine\" && v.status == 'active') that.cosyncVersions.cosyncEngine.push(v);\n else if(v.service == \"CosyncJWT\" && v.status == 'active') that.cosyncVersions.cosyncJWT.push(v);\n });\n });\n\n }\n });\n \n }\n\n\n clickApp(app){\n let appPublicKey;\n \n try {\n appPublicKey = atob(app.appPublicKey);\n } catch (error) { \n \n }\n\n let displayApp: App = {\n name: app.name,\n developerUid: app.developerUid,\n appId: app.appId,\n status: app.status,\n jwtEnabled: app.jwtEnabled,\n appPublicKey: appPublicKey, \n appToken: app.appToken, \n appSecret: app.appSecret, \n rawPublicKey: app.appPublicKey, \n type: app.type,\n handle:app.handle,\n invitationEnabled:app.invitationEnabled,\n signupEnabled:app.signupEnabled, \n anonymousLoginEnabled: app.anonymousLoginEnabled,\n userNamesEnabled: app.userNamesEnabled,\n twoFactorVerification: app.twoFactorVerification,\n TWILIOAccountSid: app.TWILIOAccountSid || \"\",\n TWILIOToken: app.TWILIOToken || \"\", \n TWILIOPhoneNumber: app.TWILIOPhoneNumber || \"\",\n googleAppName: app.googleAppName || app.name,\n maxUsers: app.maxUsers || 1000,\n userJWTExpiration: app.userJWTExpiration || 1,\n realmAppId: app.realmAppId || \"\", \n maxLoginAttempts: app.maxLoginAttempts || 0,\n passwordFilter:app.passwordFilter,\n passwordMinLength: app.passwordMinLength || 5,\n passwordMinUpper: app.passwordMinUpper || 0,\n passwordMinLower: app.passwordMinLower || 0,\n passwordMinDigit: app.passwordMinDigit || 0,\n passwordMinSpecial: app.passwordMinSpecial || 0,\n signupFlow: app.signupFlow || 'code',\n appData: app.appData,\n metaData: app.metaData || [],\n locales: app.locales || [\"EN\"],\n appleLoginEnabled: app.appleLoginEnabled,\n appleBundleId: app.appleBundleId,\n googleLoginEnabled: app.googleLoginEnabled,\n googleClientId: app.googleClientId,\n metaDataInvite: app.metaDataInvite || [],\n metaDataEmail: app.metaDataEmail,\n createdAt: app.createdAt,\n updatedAt: app.updatedAt,\n emailExtensionAPIKey: app.emailExtensionAPIKey || \"\",\n emailExtension: app.emailExtension,\n emailExtensionSenderEmail: app.emailExtensionSenderEmail || \"\",\n }\n this.appToEdit = displayApp; \n this.appLocales= [...this.appToEdit.locales];\n this.localeSelect = new FormControl(\"EN\");\n this.cloneAppMetaData();\n this.cloneAppInviteMetaData();\n\n this.appPublicKey = this.appToEdit.appPublicKey;\n \n this.twoFactorSelect = new FormControl(this.appToEdit.twoFactorVerification); \n\n this.breadcrumbList.push(app);\n this.page = \"app-detail\";\n\n this.loading_allapp = false;\n }\n\n cloneAppMetaData() {\n this.appMetaData = [];\n this.appToEdit.metaData.forEach(data => {\n let item = {};\n for (const key in data) { \n item[key] = data[key]; \n }\n this.appMetaData.push(item);\n });\n }\n\n\n\n cloneAppInviteMetaData() {\n this.appInviteMetaData = [];\n this.appToEdit.metaDataInvite.forEach(data => {\n let item = {};\n for (const key in data) { \n item[key] = data[key]; \n }\n this.appInviteMetaData.push(item);\n });\n }\n\n\n checkAllHostConnection(hosts){\n\n for (let index = 0; index < hosts.length; index++) {\n const host = hosts[index];\n \n this.hostService.getHostConnection(host.serverApiUrl, host.serverToken).then(res => {\n hosts[index].status = 'online'; \n }).catch(err => {\n hosts[index].status = 'offline'; \n })\n \n \n }\n \n }\n\n testHostConnection(serverApiUrl, serverToken, hide:boolean = false){\n return new Promise((resolve, reject) => {\n this.isConnecting = true;\n let that = this;\n\n this.hostService.getHostConnection(serverApiUrl, serverToken).then(res => {\n\n that.hostToEdit.status = 'online'; \n \n let data = {\n hostId: that.hostToEdit.hostId,\n status: 'online'\n };\n\n that.hostService.editHost(data, function(){});\n\n if(!hide){\n swal({\n type: 'success',\n html: 'Your host is online.',\n confirmButtonClass: 'btn btn-success',\n buttonsStyling: false,\n timer: 2000\n \n }); \n }\n\n this.isConnecting = false;\n\n resolve(true);\n\n }).catch(err => {\n\n that.hostToEdit.status = 'offline';\n let data = {\n hostId: that.hostToEdit.hostId,\n status: 'offline'\n };\n\n that.hostService.editHost(data, function(){});\n\n this.isConnecting = false; \n\n \n swal({\n type: 'error',\n title: 'Whoop! Can not connect to your host.',\n text: err.error ? err.error.message : err.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n \n });\n \n \n that.loading_allapp = false;\n resolve(false);\n \n })\n })\n }\n\n\n updateHostSetting(hostName, serverApiUrl, serverToken){\n let that = this;\n this.isSaving = true;\n\n let data = {\n hostId: this.hostToEdit.hostId,\n hostName: hostName,\n serverApiUrl: serverApiUrl,\n serverToken: serverToken\n };\n\n this.hostService.editHost(data, function(result, err){\n\n that.isSaving = false;\n\n if(result){\n that.breadcrumbList[that.breadcrumbList.length - 1].name = data.hostName;\n\n swal({\n type: 'success',\n html: 'Your host is updated: ' +\n data.hostName +\n '',\n confirmButtonClass: 'btn btn-success',\n buttonsStyling: false,\n timer: 2000\n \n });\n\n } \n else{\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: err.error.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n \n });\n }\n }); \n }\n\n editApp(appName){\n \n let that = this;\n \n let data = {\n appId : this.appToEdit.appId,\n name: appName\n }\n this.hostService.editApp(this.hostToEdit, data, function(result, err){\n if(result){\n that.breadcrumbList[that.breadcrumbList.length - 1].name = appName;\n that.appToEdit.name = appName;\n swal({\n type: 'success',\n html: 'Your app is updated: ' +\n appName +\n '',\n confirmButtonClass: 'btn btn-success',\n buttonsStyling: false,\n timer: 2000\n \n });\n\n } \n else{\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: err.error.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n \n });\n }\n }); \n \n }\n\n\n onAppNameKey(event){\n if(this.hostToEdit.name != event.target.value) this.updating = true;\n else this.updating = false;\n }\n\n \n\n\n copyPublicKey(item){\n item.select();\n document.execCommand('copy');\n item.setSelectionRange(0, 0);\n this.isClickAppToken = !this.isClickAppToken\n this.copyAppTokenIcon = \"check_circle_outline\";\n this.copyPublicKeyIcon = \"check_circle_outline\";\n let that = this;\n setTimeout(function(){\n that.isClickAppSecret = false;\n that.isClickAppId = false;\n that.isClickAppToken = false;\n that.isClickPublicKey = false;\n that.copyPublicKeyIcon = \"content_copy\";\n that.copyAppTokenIcon = \"content_copy\";\n },1000)\n }\n\n\n resetAppData(){\n let that = this;\n swal({\n title: `Reset ${that.appToEdit.name} in your host, are you sure?`,\n text: 'You will not be able to recover this app data!',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, reset it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false, \n focusCancel: true\n\n }).then((result) => {\n if (result.value) { \n \n that.hostService.resetApp(that.hostToEdit, that.appToEdit).then(res => {\n swal({\n title: 'Reset!',\n text: 'Your app data has been reset.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n }).catch(err => {\n swal({\n title: 'Whoop!',\n text: err.error.message || 'Somehting went wrong. Please try again :(',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop)\n\n });\n \n\n } else {\n swal({\n title: 'Cancelled',\n text: 'Your app data is safe :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop)\n }\n })\n }\n\n\n onInvitePaginationInit(){\n let that = this;\n \n setTimeout(function() {\n that.invitePagination.data = {\n totalItem: that.appData.totalInvite, \n entryAmount: that.entryAmountInvite,\n };\n }, 1000); \n }\n\n signupPaginationInit(data){\n let that = this;\n \n setTimeout(function() {\n that.signupPagination.data = {\n totalItem: that.appData.totalSignup, \n entryAmount: that.entryAmountSignUp,\n };\n }, 1000); \n }\n\n\n onPaginationInit(data){\n let that = this;\n if (this.userPagination) { \n setTimeout(function() { \n that.userPagination.data = {\n totalItem: that.appData.totalUser, \n entryAmount: that.entryAmount,\n }; \n }, 1000); \n }\n\n }\n\n\n\n onLogPaginationInit(data){\n let that = this;\n \n setTimeout(function() {\n\n if(that.logPagination !== undefined) {\n that.logPagination.data = {\n totalItem: that.appLogData.totalLog, \n entryAmount: that.entryAmount,\n };\n }\n }, 1000); \n \n } \n\n\n\n onAddLocale(value){\n\n if (value == \"\") return;\n let check = this.appLocales.filter(a => a == value)[0];\n if(!check) {\n this.appLocales.push(value)\n } \n }\n\n findCountryByLocale(locale) {\n let country = this.localeList.filter(item => item.code == locale)[0];\n if (locale == \"EN\") return\" English (default)\";\n return country ? country.name : \"\";\n }\n\n removeAppLocale(locale){\n this.appLocales = this.appLocales.filter(a => a != locale);\n }\n\n saveAppLocale(){\n \n let data = {appId:this.appToEdit.appId, locales: this.appLocales}\n \n this.hostService.addRemoveAppLocale(this.hostToEdit, data).then(res => {\n\n let newTemplates = res as any;\n this.appEmailTemplates = newTemplates.localesTemplate;\n this.appToEdit.locales = this.appLocales;\n \n this.selectedLocaleEmailTemplate = this.appEmailTemplates[\"EN\"]; \n this.setCurrentEmailTemplate()\n this.selectedAppLocale = \"EN\";\n this.modalService.dismissAll(); \n \n }).catch(err => {\n swal({\n title: 'Fails',\n text: err.error.message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop)\n \n }); \n \n }\n\n cancelAppLocale(){\n this.appLocales = this.appToEdit.locales;\n }\n\n selectLocaleChange(value){\n \n this.selectedLocaleEmailTemplate = this.appEmailTemplates[value]; \n this.setCurrentEmailTemplate();\n\n } \n\n showAppEmailTemplate(app){\n this.hostService.getAppEmailTemplates(this.hostToEdit, app).then(res => {\n this.appEmailTemplates = res as any;\n this.selectedLocaleEmailTemplate = this.appEmailTemplates[\"EN\"]; \n this.setCurrentEmailTemplate()\n });\n }\n\n\n\n cancelEditVerifyEmailTemplate(templateName){\n this.clickEditVerifyEmailTemplate = false;\n\n if (templateName) { \n this.selectedEmailTemplateName = templateName;\n this.setCurrentEmailTemplate()\n }\n\n }\n\n\n\n setCurrentEmailTemplate(){\n if (this.selectedLocaleEmailTemplate && this.selectedLocaleEmailTemplate.length){\n this.selectedEmailTemplate = this.selectedLocaleEmailTemplate.filter(template => template.templateName == this.selectedEmailTemplateName)[0];\n }\n }\n\n saveEmailTemplate(template){\n this.savingEmail = true;\n this.hostService.updateAppEmailTemplates(this.hostToEdit, this.selectedEmailTemplate).then(res => {\n this.savingEmail = false;\n swal({\n title: 'Success!',\n text: 'The email template has been updated.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 4000\n }).catch(swal.noop);\n }).catch(err => {\n this.savingEmail = false;\n swal({\n title: 'Invalid',\n text: 'Whoop! Something went wrong. Please try again. :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 4000\n }).catch(swal.noop)\n });\n }\n\n\n\n selectActionChange(evt){ \n\n \n if(evt.value.indexOf(\"all\") >= 0 && this.logFilter.filterAction.indexOf(\"all\") < 0){\n this.filterAction = ['all'];\n this.logFilter.filterAction = this.filterAction;\n }\n\n else if(evt.value.indexOf(\"all\") >= 0 && this.logFilter.filterAction.indexOf(\"all\") >= 0){\n\n this.filterAction = evt.value.filter(item => item != 'all');\n this.logFilter.filterAction = this.filterAction;\n }\n else{\n this.logFilter.filterAction = evt.value;\n }\n\n \n console.log( this.logFilter.filterAction)\n \n this.filterQuery = true;\n this.clickedFilter = false;\n\n\n }\n\n onchangeLogFillter(evt, field){\n\n this.filterQuery = true;\n this.clickedFilter = false;\n \n let filterValue = (evt.target.value); \n\n this.logFilter[field] = filterValue;\n\n this.filterQuery = true;\n\n if(field == 'type'){\n if (filterValue == \"all\"){\n this.filterActions = this.applicationActions.concat(this.userActions);\n }\n else if (filterValue == 'app'){\n this.filterActions = this.applicationActions;\n }\n else if (filterValue == 'user'){ \n this.filterActions = this.userActions;\n }\n else {\n this.filterActions = this.applicationActions.concat(this.userActions);\n }\n this.logFilter.filterAction = [\"all\"];\n } \n \n }\n\n clearFilterLog(){ \n\n this.logFilter = {\n filterAction:['all'],\n type: \"all\",\n status: \"all\",\n fromDate:\"\",\n toDate:\"\" \n };\n this.logsOffset.offset = 0;\n this.logsOffset.page = 1;\n \n\n this.entryAmount = 25\n this.filterAction = ['all'];\n this.applyLogFilter();\n\n this.filterQuery = false;\n this.clickedFilter = false;\n }\n\n searchLog(){\n this.logsOffset.offset = 0;\n this.logsOffset.page = 1;\n\n this.applyLogFilter();\n }\n\n\n changeLogPage(page){ \n\n if(this.logsOffset.page == page.page) return;\n this.logsOffset = page; \n this.logsOffset.offset = page.page - 1; \n\n this.hostService.getAppLogDataOffset(this.hostToEdit, {appId:this.appToEdit.appId, limit:this.entryAmount, offset:this.logsOffset.offset, type: this.logFilter.type, status: this.logFilter.status, fromDate: this.logFilter.fromDate, toDate: this.logFilter.toDate, filterAction: this.logFilter.filterAction }).then(res => {\n let item = res as any;\n \n this.applicationLogs = item.logs; \n this.applicationLogs.filter(item => {\n item.show = true;\n item.createdAt = this.datePipe.transform(new Date(item.createdAt), 'MMM d, y, h:mm:ss a');\n }); \n }); \n }\n\n\n compareDateChange(){\n\n this.logDateFilterMessage = \"\";\n \n let compareDate = this.helperService.compareDate(this.logFilter.fromDate, this.logFilter.toDate);\n if(!compareDate){\n this.validFilter = false;\n this.logDateFilterMessage = \"Invalid To Date\";\n\n } \n else this.validFilter = true;\n\n this.filterQuery = this.validFilter;\n }\n\n applyLogFilter(){ \n\n this.compareDateChange();\n if(!this.validFilter) return;\n this.clickedFilter = true;\n\n this.hostService.getAppLogDataOffset(this.hostToEdit, {appId:this.appToEdit.appId, limit: this.entryAmount, offset:this.logsOffset.offset, type: this.logFilter.type, status: this.logFilter.status, fromDate: this.logFilter.fromDate, toDate: this.logFilter.toDate, filterAction: this.logFilter.filterAction}).then(res => {\n let item = res as any; \n this.appLogData = item; \n this.applicationLogs = item.logs; \n this.applicationLogs.filter(item => {\n item.show = true;\n item.createdAt = this.datePipe.transform(new Date(item.createdAt), 'MMM d, y, h:mm:ss a');\n }); \n\n if(this.logPagination){\n this.logPagination.data = {\n totalItem: item.totalLog, \n entryAmount: this.entryAmount,\n };\n }\n \n\n }).catch(err => {\n this.loading_app_data = false;\n\n swal({\n title: 'Invalid',\n text: 'Whoop! Something went wrong. Please try again. :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 4000\n }).catch(swal.noop)\n })\n\n }\n\n\n onchangeLogEntryAmount(evt){\n\n this.entryAmount = parseInt(evt.target.value); \n this.applyLogFilter();\n \n\n }\n\n\n\n showAppLogs(app){\n this.loading_app_data = true;\n\n this.hostService.getAppLogData(this.hostToEdit, app).then( res => {\n this.loading_app_data = false; \n this.appLogData = res; \n this.applicationLogs = this.appLogData.logs; \n\n this.applicationLogs.filter(item => {\n item.show = true;\n item.createdAt = this.datePipe.transform(new Date(item.createdAt), 'MMM d, y, h:mm:ss a');\n }); \n\n }).catch(err => {\n this.loading_app_data = false;\n\n swal({\n title: 'Invalid',\n text: 'Whoop! Something went wrong. Please try again. :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 4000\n }).catch(swal.noop)\n\n })\n }\n \n\n showAppData(app){\n \n this.userCount = 0;\n this.loading_app_data = true;\n this.hostService.getAppData(this.hostToEdit, app, this.hideAnonUser).then(res => {\n this.loading_app_data = false; \n this.appData = res; \n\n if(this.appData.invites){\n this.inviteList = this.appData.invites;\n this.inviteList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y, h:mm:ss a');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y, h:mm:ss a'); \n }); \n }\n\n if(this.appData.signups){\n this.signUpList = this.appData.signups;\n this.signUpList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y, h:mm:ss a');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y, h:mm:ss a'); \n }); \n }\n\n if(this.appData.users) {\n \n this.userList = this.appData.users;\n this.userList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y');\n //if(u.metaData) u.metaData = JSON.stringify(u.metaData,null, 5);\n if(u.lastLogin) u.lastLogin = this.datePipe.transform(new Date(u.lastLogin), 'MMM d, y');\n }); \n } \n\n }).catch(err => {\n this.loading_app_data = false;\n });\n }\n\n activateUser(user){\n this.hostService.updateAppUser(this.hostToEdit, user, 'active').then(res => {\n user.status = 'acitve';\n }).catch(err => {\n \n });\n }\n\n\n\n suspendUser(user){\n this.hostService.updateAppUser(this.hostToEdit, user, 'suspend').then(res => {\n user.status = 'suspend';\n }).catch(err => {\n \n });\n }\n\n\n editUser(user, content){\n \n this.currentAppUser = user;\n this.formResetClass = \"need-validation\";\n this.resetPaswordInfo = \"\";\n this.randomPwd = this.helperService.generatePassword(8);\n this.modalService.open(content, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title',}).result.then((result) => {\n \n }, (reason) => { \n //this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\n }); \n } \n \n\n resetUserPassword(value){\n\n if(!value || value == \"\"){\n this.formResetClass = \"need-validation was-validated\";\n return;\n }\n if(value.length < this.appToEdit.passwordMinLength) return;\n\n value = value.trim();\n\n if(value != this.randomPwd){\n let valid = this.validatePassword(value, this.appToEdit);\n if(!valid) return;\n } \n\n let data = {\n userId: this.currentAppUser._id,\n hashValue: Md5.hashStr(value),\n rawValue: value,\n appId: this.currentAppUser.appId\n };\n\n this.hostService.resetUserPassword(this.hostToEdit, data).then(res => {\n \n this.resetPaswordInfo = \"User password has been reset. The user will recieve an email for the new password.\"\n }).catch(err => {\n this.resetPaswordInfo = \"Whoop! Something went wrong. Please try again.\"\n });\n\n\n }\n\n\n deleteAppModal(app){\n let that = this;\n swal({\n title: `Delete ${app.name}, are you sure?`,\n text: 'You will not be able to recover this app!',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, delete it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false, \n focusCancel: true\n\n }).then((result) => {\n \n if (result.value) { \n\n that.hostService.deleteApp(that.hostToEdit, app).then(res => {\n that.page = 'app-list'; \n that.breadcrumbList = [];\n\n swal({\n title: 'Deleted!',\n text: 'Your app has been deleted.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n\n that.router.navigate([`host/${that.hostToEdit.hostId}/apps`]);\n\n that.hostService.getHostApplications(that.hostToEdit, function(res, err){});\n\n }).catch(err => {\n swal({\n title: 'Fails',\n text: err.error.message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop)\n \n }); \n\n }\n else {\n swal({\n title: 'Cancelled',\n text: 'Your app data is safe :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop)\n }\n })\n }\n\n\n deleteHostModal(host){\n let that = this;\n swal({\n title: `Delete ${host.name}, are you sure?`,\n text: 'You will not be able to recover this host!',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, delete it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false, \n focusCancel: true\n\n }).then((result) => {\n \n if (result.value) {\n\n swal({\n title: 'Enter your account password',\n input: 'password',\n showCancelButton: true, \n confirmButtonClass: 'btn btn-success',\n cancelButtonClass: 'btn btn-danger',\n buttonsStyling: false,\n inputValidator: (value) => { \n if (!value) {\n return 'Please enter your account password'\n } \n }\n \n }).then(function(result) {\n if (result.value) {\n\n that.hostService.deleteHost(host, result.value).then(res => { \n that.page = 'host-list'; \n that.breadcrumbList = [];\n\n swal({\n title: 'Deleted!',\n text: 'Your host has been deleted.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n\n that.router.navigate(['/hosts']);\n\n that.hostService.getHosts(function(res, err){});\n\n }).catch(err => {\n swal({\n title: 'Fails',\n text: err.error.message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop)\n \n }); \n }\n\n });\n\n }\n else {\n swal({\n title: 'Cancelled',\n text: 'Your host data is safe :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop)\n }\n })\n }\n\n \n\n removeUser(user){\n this.currentAppUser = user; \n let that = this;\n swal({\n title: `Delete ${user.handle}, are you sure?`,\n text: 'You will not be able to recover this user!',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, delete it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).then((result) => {\n if (result.value) {\n \n let data = {handle:user.handle, appId:this.appToEdit.appId};\n\n this.hostService.deleteAppUser(this.hostToEdit, data).then(res => {\n swal({\n title: 'Deleted!',\n text: 'Your app user has been deleted.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n\n this.userList = this.userList.filter(u => u.handle != data.handle);\n \n }).catch(err => {\n \n }); \n\n } else {\n swal({\n title: 'Cancelled',\n text: 'Your app user is safe :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop)\n }\n })\n }\n\n\n deleteAppUser(){\n let data = {handle:this.currentAppUser.handle, appId:this.appToEdit.appId};\n\n this.hostService.deleteAppUser(this.hostToEdit, data).then(res => {\n \n this.userList = this.userList.filter(u => u.handle != data.handle);\n \n }).catch(err => {\n \n });\n }\n\n appUserKeyChange(event){\n this.searchUserResult = null;\n let value = event.target.value;\n \n if(value == \"\") this.userList.filter(u => u.show = true);\n else {\n this.userList.filter(u => { \n if(u.handle.indexOf(value) >= 0 ) u.show = true;\n else if (u.userName && u.userName.indexOf(value) >= 0 ) u.show = true;\n else u.show = false; \n });\n }\n\n if(event.keyCode == 13) this.searchAppUser(value);\n }\n\n\n \n\n\n\n searchInviteKeyChange(event){\n this.searchInviteResult = null;\n let value = event.target.value;\n \n if(value == \"\") this.inviteList.filter(u => u.show = true);\n else {\n this.inviteList.filter(u => {\n if(u.handle.indexOf(value) >= 0) u.show = true;\n else u.show = false; \n });\n }\n\n if(event.keyCode == 13) this.searchInvite(value);\n }\n\n\n searchSignUpKeyChange(event){\n this.searchSignUpResult = null;\n let value = event.target.value;\n \n if(value == \"\") this.signUpList.filter(u => u.show = true);\n else {\n this.signUpList.filter(u => {\n if(u.handle.indexOf(value) >= 0) u.show = true;\n else u.show = false; \n });\n }\n\n if(event.keyCode == 13) this.searchSignUp(value);\n }\n\n\n searchSignUp(value){\n value = value.trim();\n if(!value || value == \"\") return;\n\n this.hostService.searchSignup(this.hostToEdit, this.appToEdit.appId, value).then(res => {\n this.searchSignUpResult = res;\n this.searchSignUpResult.filter(u =>{\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y');\n });\n \n }).catch(err => {\n \n });\n }\n\n\n searchInvite(value){\n value = value.trim();\n if(!value || value == \"\") return;\n\n this.hostService.searchInvite(this.hostToEdit, this.appToEdit.appId, value).then(res => {\n this.searchInviteResult = res;\n this.searchInviteResult.filter(u =>{\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y, h:mm:ss a');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y, h:mm:ss a'); \n });\n \n }).catch(err => {\n \n });\n }\n \n\n searchAppUser(value){\n value = value.trim();\n if(!value || value == \"\") return;\n\n this.hostService.searchAppUser(this.hostToEdit, this.appToEdit.appId, value, this.hideAnonUser).then(res => {\n this.searchUserResult = res;\n this.searchUserResult.filter(u =>{\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y');\n //if(u.metaData) u.metaData = JSON.stringify(u.metaData,null, 5);\n if(u.lastLogin) u.lastLogin = this.datePipe.transform(new Date(u.lastLogin), 'MMM d, y');\n });\n \n }).catch(err => {\n \n });\n }\n\n\n onChangeSingUpEntryAmount(evt){\n this.entryAmountSignUp = parseInt(evt.target.value);\n\n this.hostService.getAppDataTarget(this.hostToEdit, {appId:this.appToEdit.appId, target:'signups', limit: this.entryAmountSignUp, offset:0 }).then(res => {\n let item = res as any; \n this.signUpList = item.signups; \n this.signUpList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y, h:mm:ss a');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y, h:mm:ss a');\n \n }); \n\n this.signupPagination.data = {\n totalItem: item.totalSignup, \n entryAmount: this.entryAmountSignUp,\n };\n\n }); \n\n }\n\n\n onChangeInviteEntryAmount(evt){\n this.entryAmountInvite = parseInt(evt.target.value);\n\n this.hostService.getAppDataTarget(this.hostToEdit, {appId:this.appToEdit.appId, target:'invites', limit: this.entryAmountInvite, offset:0 }).then(res => {\n let item = res as any; \n this.inviteList = item.invites; \n this.inviteList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y, h:mm:ss a');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y, h:mm:ss a'); \n }); \n\n this.invitePagination.data = {\n totalItem: item.totalInvite, \n entryAmount: this.entryAmountInvite,\n };\n\n }); \n\n } \n\n\n onHideAnonymousUser(value){\n this.hideAnonUser = value\n this.onchangeEntryAmount(this.entryAmount)\n }\n\n\n onchangeEntryAmount(value){\n this.loading_app_data = true;\n this.entryAmount = parseInt(value); \n \n this.hostService.getAppDataTarget(this.hostToEdit, {appId:this.appToEdit.appId, target:'users', hideAnonUser:this.hideAnonUser, limit: this.entryAmount, offset:0 }).then(res => {\n let item = res as any; \n this.appData.totalUser = item.totalUser;\n this.appData.totalAnonUser = item.totalAnonUser;\n this.loading_app_data = false;\n \n this.userList = item.users; \n this.userList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y');\n //if(u.metaData) u.metaData = JSON.stringify(u.metaData,null, 5);\n if(u.lastLogin) u.lastLogin = this.datePipe.transform(new Date(u.lastLogin), 'MMM d, y');\n }); \n\n if (this.userPagination) { \n this.userPagination.data = {\n totalItem: item.totalUser, \n entryAmount: this.entryAmount,\n };\n }\n }); \n\n }\n \n\n changeUserPage(page){ \n\n if(this.userOffset.page == page.page) return;\n this.userOffset = page; \n this.userOffset.offset = page.page - 1;\n this.hostService.getAppDataTarget(this.hostToEdit, {appId:this.appToEdit.appId, target:'users', hideAnonUser:this.hideAnonUser , limit:this.entryAmount, offset:this.userOffset.offset }).then(res => {\n let item = res as any;\n \n this.userList = item.users; \n this.userList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y');\n //if(u.metaData) u.metaData = JSON.stringify(u.metaData,null, 5);\n if(u.lastLogin) u.lastLogin = this.datePipe.transform(new Date(u.lastLogin), 'MMM d, y');\n }); \n }); \n }\n\n\n\n changeSignUpPage(page){ \n\n if(this.signUpOffset.page == page) return;\n this.signUpOffset = page;\n this.signUpOffset.offset = page.page - 1;\n this.hostService.getAppDataTarget(this.hostToEdit, {appId:this.appToEdit.appId, target:'signups', limit:this.entryAmountSignUp, offset:this.signUpOffset.offset }).then(res => {\n let item = res as any;\n \n this.signUpList = item.signups; \n this.signUpList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y, h:mm:ss a');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y, h:mm:ss a'); \n }); \n }); \n }\n\n\n\n changeInvitePage(page){ \n\n if(this.inviteOffset.page == page.page) return;\n this.inviteOffset = page;\n this.inviteOffset.offset = page.page - 1;\n this.hostService.getAppDataTarget(this.hostToEdit, {appId:this.appToEdit.appId, target:'invites', limit:this.entryAmountInvite, offset:this.inviteOffset.offset }).then(res => {\n let item = res as any;\n \n this.inviteList = item.invites; \n this.inviteList.filter(u => {\n u.show = true\n u.createdAt = this.datePipe.transform(new Date(u.createdAt), 'MMM d, y, h:mm:ss a');\n u.updatedAt = this.datePipe.transform(new Date(u.updatedAt), 'MMM d, y, h:mm:ss a'); \n }); \n }); \n }\n\n \n\n upgradeAccount(service){\n let that = this;\n swal({\n title: `You're almost there!`,\n text: 'Please upgrade your account to use the Cosync Hosts Services.',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, upgrade it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).then((result) => {\n if (result.value) {\n this.modalService.dismissAll()\n this.router.navigate(['/profile/payment', { option: 'upgrade', plan: service }]);\n\n } else {\n \n }\n })\n }\n\n compareSelectAppType(c1: {name: string}, c2: {name: string}) { \n return c1 && c2 && c1.name === c2.name; \n }\n\n \n\n submitTestTwilio(phone){\n this.loading_twilio_data = true;\n this.hostService.testTwilio(this.hostToEdit, phone, this.appToEdit.appId).then(res => {\n this.loading_twilio_data = false;\n\n swal({\n title: 'Success!',\n text: 'Your app TWILIO is runing.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n }).catch(err => {\n this.loading_twilio_data = false;\n \n swal({\n title: 'Whoop! Something went wrong.',\n text: err.error.message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n });\n }\n\n clickUpdatePhoneTwilio(){\n if(this.appToEdit.twoFactorVerification == 'phone'){\n\n if(this.appToEdit.TWILIOAccountSid == '' || !this.appToEdit.TWILIOAccountSid){\n swal({\n title: 'Invalid!',\n text: 'Please enter Twilio Account SID .',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n return;\n }\n\n if(this.appToEdit.TWILIOPhoneNumber == '' || !this.appToEdit.TWILIOPhoneNumber){\n swal({\n title: 'Invalid!',\n text: 'Please enter Twilio Phone Number .',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n return;\n }\n\n if(this.appToEdit.TWILIOToken == '' || !this.appToEdit.TWILIOToken){\n swal({\n title: 'Invalid!',\n text: 'Please enter Twilio Token .',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n return;\n }\n\n }\n\n this.appToEdit.TWILIOAccountSid = this.appToEdit.TWILIOAccountSid.split(\" \").join('');\n this.appToEdit.TWILIOToken = this.appToEdit.TWILIOToken.split(\" \").join('');\n this.appToEdit.TWILIOPhoneNumber = this.appToEdit.TWILIOPhoneNumber.split(\" \").join('');\n\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, 'twoFactorVerification').then(res => {\n swal({\n title: 'Updated!',\n text: 'Your Two Factor Verifications has been updated.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n });\n }\n\n\n\n clickUpdateGoogleAppName(){\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, 'twoFactorVerification').then(res => {\n swal({\n title: 'Updated!',\n text: 'Your Two Factor Verifications has been updated.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n });\n }\n\n\n clickUpdateSocialID(id, type){\n if(!id || id == \"\") {\n\n let text = type == \"googleClientId\" ? \"Please enter Google Client ID\" : \"Please enter Apple Bundle ID\";\n \n swal({\n title: 'Whoop! Something went wrong.',\n text: text,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n return\n }\n\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type).then(res => {\n swal({\n title: 'Updated!',\n text: 'Your App has been updated.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n });\n }\n\n\n updateAppSetting(value, type){\n let that = this;\n switch (type) {\n\n case 'emailExtension':\n this.appToEdit.emailExtension = value ? true: false;\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type);\n break;\n case 'emailExtensionAPIKey':\n this.appToEdit.emailExtensionAPIKey = value;\n break;\n case 'emailExtensionSenderEmail':\n this.appToEdit.emailExtensionSenderEmail = value;\n break;\n\n case 'status':\n \n this.appToEdit.status = value;\n\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type).catch(err => {\n \n });\n\n break;\n\n case 'invite':\n this.appToEdit.invitationEnabled = value;\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type);\n break;\n \n case 'jwtEnabled':\n \n this.appToEdit.jwtEnabled = value;\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type);\n break;\n\n\n case 'anonLogin':\n this.appToEdit.anonymousLoginEnabled = value;\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type).catch(err => {\n this.appToEdit.anonymousLoginEnabled = !value;\n });\n break;\n\n case 'userNamesEnabled':\n this.appToEdit.userNamesEnabled = value;\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type).catch(err => {\n this.appToEdit.userNamesEnabled = !value;\n });\n break;\n\n case 'signup':\n this.appToEdit.signupEnabled = value;\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type).catch(err => {\n this.appToEdit.signupEnabled = !value;\n });\n break;\n\n case 'signupFlow':\n let oldVal = this.appToEdit.signupFlow;\n this.appToEdit.signupFlow = value;\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type).catch(err => {\n this.appToEdit.signupFlow = oldVal;\n });\n break;\n \n\n case 'realmAppId':\n this.appToEdit.realmAppId = value;\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type);\n \n break;\n case 'userJWTExpiration':\n this.appToEdit.userJWTExpiration = value;\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type);\n \n break;\n \n \n case 'twoFactorVerification': \n if(value != \"none\" && this.appToEdit.twoFactorVerification != 'none'){\n let that = this;\n swal({\n title: `Change App Two Factor Verification?`,\n text: 'All old app users two factor verification will not work.',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, change it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).then((result) => {\n if (result.value) {\n this.appToEdit.twoFactorVerification = value;\n if(this.appToEdit.twoFactorVerification != 'phone') this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type);\n }\n else{\n this.twoFactorSelect.setValue(this.appToEdit.twoFactorVerification); \n } \n })\n\n }\n else{\n this.appToEdit.twoFactorVerification = value;\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type);\n } \n \n break;\n case 'maxLoginAttempts': \n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type);\n \n break;\n\n case 'maxUsers': \n this.appToEdit.maxUsers = value;\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type);\n \n break;\n\n case 'passwordFilter':\n this.appToEdit.passwordFilter = value;\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type);\n \n break;\n case 'passwordSetting': \n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type);\n \n break;\n\n case 'appleLogin': \n this.appToEdit.appleLoginEnabled = value;\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type);\n break; \n\n case 'googleLogin': \n this.appToEdit.googleLoginEnabled = value;\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, type);\n break;\n \n \n }\n }\n\n\n savePasswordSetting(){\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, 'passwordSetting').then(res => {\n swal({\n title: 'Success!',\n text: 'Your password filter has been updated.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n });\n }\n\n\n testEmailExtension(){\n if(this.appToEdit.emailExtensionAPIKey == \"\" || this.appToEdit.emailExtensionSenderEmail == \"\"){\n return;\n }\n\n this.hostService.testEmailExtension(this.hostToEdit, this.appToEdit.appId).then(res => {\n swal({\n title: 'Success!',\n text: 'Your email extension service is working.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n })\n .catch(err => {\n let message = err.error ? err.error.message : err.message;\n swal({\n title: 'Something When Wrong',\n text: `${message}. Please check your email for more detail.`,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n })\n\n }\n\n saveEmailExtension(){ \n if(this.appToEdit.emailExtensionAPIKey == \"\") {\n swal({\n title: 'Invalid Data',\n text: 'Please enter Send Grid API Secret Key',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return;\n }\n\n if(this.appToEdit.emailExtensionSenderEmail == \"\") {\n swal({\n title: 'Invalid Data',\n text: 'Please enter Sender Email',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return;\n }\n\n if(this.appToEdit.emailExtensionAPIKey.length < 60) {\n swal({\n title: 'Invalid Data',\n text: 'Please enter a valid Send Grid API Secret Key',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return;\n }\n\n\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, 'emailExtensionAPIKey').then(res => {\n swal({\n title: 'Success!',\n text: 'Your email extension has been updated.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n });\n }\n\n\n switchAppKey(raw){\n if(raw) this.appPublicKey = this.appToEdit.rawPublicKey;\n else this.appPublicKey = this.appToEdit.appPublicKey;\n }\n\n\n showModal(modal, option, size){\n this.modalOption = option;\n \n size = size ? size : '';\n this.modalService.open(modal, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title', size: size}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n }\n\n editVerifyEmailTemplate(){\n this.clickEditVerifyEmailTemplate = true;\n }\n\n\n\n removeSignup(signup){\n let that = this;\n swal({\n title: `Remove invite '${signup.handle}', are you sure?`,\n text: 'You will not be able to recover this signup data!',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, delete it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).then((result) => {\n if (result.value) {\n that.hostService.removeAppSignup(this.hostToEdit, signup).then(res => {\n swal({\n title: 'Deleted!',\n text: 'Your app signup has been deleted.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n this.signUpList = this.signUpList.filter(item => item._id != signup._id);\n if(this.searchSignUpResult) this.searchSignUpResult = this.searchSignUpResult.filter(item => item._id != signup._id);\n }).catch(err => { \n\n });\n \n \n\n } else {\n\n swal({\n title: 'Cancelled',\n text: 'Your app signup is safe :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n }\n });\n\n }\n\n\n resendInvite(invite){\n\n this.hostService.resendAppInvite(this.hostToEdit, invite).then(res => {\n swal({\n title: 'Success!',\n text: 'Your app invite has been sent.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n })\n .catch(err => {\n let message = err.error ? err.error.message : err.message;\n swal({\n title: 'Invalid Input',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n })\n }\n\n\n \n removeInvite(invite){\n let that = this;\n swal({\n title: `Remove invite '${invite.handle}', are you sure?`,\n text: 'You will not be able to recover this invite data!',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, delete it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).then((result) => {\n if (result.value) {\n that.hostService.removeAppInvite(this.hostToEdit, invite).then(res => {\n swal({\n title: 'Deleted!',\n text: 'Your app invite has been deleted.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n this.inviteList = this.inviteList.filter(item => item._id != invite._id);\n if(this.searchInviteResult) this.searchInviteResult = this.searchInviteResult.filter(item => item._id != invite._id);\n }).catch(err => { \n swal({\n title: 'Invalid Data',\n text: 'Your app invite is not deleted',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n });\n \n \n\n } else {\n\n swal({\n title: 'Cancelled',\n text: 'Your app invite is safe :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n }\n });\n\n }\n\n createAppInvite(){\n let that = this; \n\n swal({\n title: 'Enter User Invite',\n html: '

use camma seperation for multiple email

' +\n '' +\n \n '
',\n showCancelButton: true,\n confirmButtonClass: 'btn btn-success',\n cancelButtonClass: 'btn btn-danger',\n buttonsStyling: false,\n allowOutsideClick:false,\n allowEnterKey: true\n }).then(function(result) {\n \n if(result.dismiss) return;\n let emails = $('#input-handle').val();\n //if(!that.helperService.emailValidation(emails)) return;\n if (emails.indexOf(\"+\") > 0){\n\n swal({\n title: 'Invalid Input',\n text: \"Cannot use any email with '+' sign.\",\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return\n }\n\n that.hostService.createAppInvite(that.hostToEdit, {appId:that.appToEdit.appId, handle:emails}).then(res => {\n let result = res as any;\n\n let text = '';\n if(result.invites && result.invites.length){\n let invitedEmail = result.invites.map(item => item.handle);\n text = `Your invitation has been sent to: ${invitedEmail}`;\n\n for (let index = 0; index < result.invites.length; index++) {\n const invite = result.invites[index];\n invite.show = true\n invite.createdAt = that.datePipe.transform(new Date(invite.createdAt), 'MMM d, y, h:mm:ss a');\n invite.updatedAt = that.datePipe.transform(new Date(invite.updatedAt), 'MMM d, y, h:mm:ss a'); \n that.inviteList.unshift(invite);\n }\n\n if (result.exists && result.exists.length){\n if (result.exists.length > 1) text = text + `
these emails already registered: ${result.exists}`\n else text = text + `
this email already registered: ${result.exists}`\n \n } \n \n swal({\n title: 'Success!',\n html: text,\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop);\n \n }\n else {\n text = `Fails to send invitation.`;\n if (result.exists && result.exists.length){\n if (result.exists.length > 1) text = text + `
these emails already registered: ${result.exists}`\n else text = text + `
this email already registered: ${result.exists}`\n } \n\n swal({\n title: 'Invalid Input',\n html: text,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n }\n\n })\n .catch(err => {\n let message = err.error ? err.error.message : err.message;\n swal({\n title: 'Invalid Input',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n })\n\n });\n\n }\n\n onkeyUpEvent(evt, handle, userpass, confpassword){\n if (evt.key === \"Enter\") { \n this.createAppUser(handle, userpass, confpassword);\n }\n } \n \n\n createAppUser(handle, userpass, confpassword){\n\n let that = this;\n if(handle == '' || userpass == '' || confpassword == ''){\n this.formCreateAppUserClass = \"need-validation was-validated\";\n\n swal({\n title: 'Invalid',\n text: 'Please enter all required fields',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return;\n } \n else if(userpass != confpassword){\n\n swal({\n title: 'Invalid Password',\n text: 'Password and Confirm Password is not match',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return;\n\n } \n if(!that.helperService.emailValidation(handle)){\n swal({\n title: 'Invalid Email',\n text: 'Please enter a valid email address',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n return;\n } \n\n if(!this.validatePassword(userpass, this.hostToEdit)) return;\n\n \n\n let hash = Md5.hashStr(confpassword);\n let option:any = {appId:that.appToEdit.appId, password:hash, handle:handle};\n\n \n\n that.hostService.createAppUser(this.hostToEdit, option).then(res => {\n\n this.modalService.dismissAll();\n this.modalOption = '';\n\n let u = res as any;\n u.show = true\n u.createdAt = that.datePipe.transform(new Date(u.createdAt), 'MMM d, y');\n u.updatedAt = that.datePipe.transform(new Date(u.updatedAt), 'MMM d, y');\n //if(u.metaData) u.metaData = JSON.stringify(u.metaData,null, 5);\n if(u.lastLogin) u.lastLogin = that.datePipe.transform(new Date(u.lastLogin), 'MMM d, y');\n\n that.userList.unshift(res);\n\n swal({\n title: 'Success!',\n text: 'Your app user has been added.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop);\n\n }).catch(err => {\n let message = err.error ? err.error.message : err.message;\n swal({\n title: 'Invalid',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n \n });\n }\n\n\n validatePassword(password, app){\n if(app.passwordFilter){\n\n let message = `Your password must contain at least ${app.passwordMinLength} characters,`;\n \n if(app.passwordMinUpper > 0) message += ` ${app.passwordMinUpper} uper case,`\n if(app.passwordMinLower > 0) message += ` ${app.passwordMinLower} lower case,`\n if(app.passwordMinDigit > 0) message += ` ${app.passwordMinDigit} digit number,`\n if(app.passwordMinSpecial > 0) message += ` ${app.passwordMinSpecial} special characters.`\n\n if(app.passwordMinLength > password.length){\n swal({\n title: 'Invalid',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n return false;\n }\n\n if(app.passwordMinUpper > 0){\n let numUpper = (password.match(/[A-Z]/g) || []).length; \n\n if(numUpper < app.passwordMinUpper){\n swal({\n title: 'Invalid',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n return false;\n }\n } \n \n if(app.passwordMinLower > 0){\n let numUpper = (password.match(/[a-z]/g) || []).length; \n\n if(numUpper < app.passwordMinUpper){\n swal({\n title: 'Invalid',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n return false;\n }\n } \n\n if(app.passwordMinDigit > 0){\n let numUpper = (password.match(/[0-9]/g) || []).length; \n\n if(numUpper < app.passwordMinUpper){\n swal({\n title: 'Invalid',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n return false;\n }\n } \n\n if(app.passwordMinSpecial > 0){ \n let patt = /[!@#$%^()_+\\-\\[\\]':\\\\,.\\/?]/g; \n\n let numSpecial = password.match(patt);\n\n if(!numSpecial || numSpecial.length < app.passwordMinSpecial){\n swal({\n title: 'Invalid',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n return false;\n }\n } \n\n }\n return true;\n }\n\n\n\n addInviteMetaDataField(){\n\n this.updatingInviteMetaData = true;\n\n if(!this.appInviteMetaData) this.appInviteMetaData = [];\n let that = this;\n this.appInviteMetaData.push({ \n id: that.helperService.getUUID(),\n required: false,\n path: \"\",\n fieldName: \"\"\n });\n }\n\n\n addMetaDataField(){\n\n this.updatingAppMetaData = true;\n\n if(!this.appMetaData) this.appMetaData = [];\n let that = this;\n this.appMetaData.push({ \n id: that.helperService.getUUID(),\n required: false,\n path: \"\",\n fieldName: \"\"\n });\n }\n\n \n\n updateAppMetaDataSetting(value){\n this.appToEdit.metaDataEmail = value;\n this.hostService.updateAppSetting(this.hostToEdit, this.appToEdit, 'metaDataEmail');\n\n }\n\n updateMetaDataField(value, field, type){ \n\n this.appMetaData.filter(f => {\n if(f.id == field.id){ \n if(type == \"required\" && f.required != value){\n this.updatingAppMetaData = true;\n f.required = value;\n } \n else if(type == \"canEdit\" && f.canEdit != value){\n this.updatingAppMetaData = true;\n f.canEdit = value;\n } \n else this.updatingAppMetaData = false;\n } \n }); \n }\n\n removeAppMetaData(field){ \n this.appMetaData = this.appMetaData.filter(f => f.id != field.id); \n this.updatingAppMetaData = true;\n }\n\n\n removeAppInviteMetaData(field){ \n this.appInviteMetaData = this.appInviteMetaData.filter(f => f.id != field.id); \n this.updatingInviteMetaData= true;\n }\n\n checkDuplicateMetaData(){\n let result:any = {};\n this.appMetaData.forEach(appItem => {\n if(appItem){ \n this.appInviteMetaData.forEach(inviteItem => {\n\n if(inviteItem.path == appItem.path || inviteItem.fieldName == appItem.fieldName) {\n result.app = appItem;\n result.invite = inviteItem;\n }\n\n });\n }\n });\n\n return result;\n }\n\n saveAppInviteMetaData(){ \n let field = this.checkDuplicateMetaData()\n if(field.app){\n \n swal({\n title: 'Duplicate Metadata',\n html: `App metadata and Invite metadata is the same value.
App - Path: ${field.app.path}, fieldName: ${field.app.fieldName}.
Invite - Path: ${field.invite.path}, fieldName: ${field.invite.fieldName}.`,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n return;\n }\n\n this.appToEdit.metaDataInvite = this.appInviteMetaData;\n\n this.hostService.updateAppInviteMetaData(this.hostToEdit, this.appToEdit).then(res => {\n this.updatingInviteMetaData = false;\n });\n\n this.cloneAppInviteMetaData();\n\n }\n\n saveAppMetaData(){ \n\n let field = this.checkDuplicateMetaData()\n if(field.app){\n \n swal({\n title: 'Duplicate Metadata',\n html: `App metadata and Invite Metadata is the same value.
App - Path: ${field.app.path}, fieldName: ${field.app.fieldName}.
Invite - Path: ${field.invite.path}, fieldName: ${field.invite.fieldName}.`,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n return;\n }\n\n this.appToEdit.metaData = this.appMetaData;\n this.hostService.updateAppMetaData(this.hostToEdit, this.appToEdit).then(res => {\n this.updatingAppMetaData = false;\n });\n\n this.cloneAppMetaData();\n \n\n }\n\n discardMetaDataChanges(){\n this.updatingAppMetaData = false;\n\n this.cloneAppMetaData();\n }\n\n\n discardInviteMetaDataChanges(){\n this.updatingInviteMetaData = false;\n\n this.cloneAppInviteMetaData();\n }\n\n\n\n updateInviteMetaDataField(value, field){ \n\n this.appInviteMetaData.filter(f => {\n if(f.id == field.id){ \n if(f.required != value){\n this.updatingInviteMetaData = true;\n f.required = value;\n } \n else this.updatingInviteMetaData = false;\n } \n }); \n }\n\n onkeyUpMetaDataEvent(field, type){ \n \n this.appMetaData.filter(f => {\n if(f.id == field.id && f[type] != field[type]){ \n this.updatingAppMetaData = true;\n } \n }); \n }\n\n\n onkeyUpInviteMetaDataEvent(field, type){ \n \n this.appInviteMetaData.filter(f => {\n if(f.id == field.id && f[type] != field[type]){ \n this.updatingInviteMetaData = true;\n } \n }); \n }\n\n\n removeCosyncEngine(contenModal){\n let that = this;\n swal({\n title: `Remove Cosync AssetLink, are you sure?`,\n text: 'This will remove your MongoDB Realm Functions.',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, remove it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false, \n focusCancel: true\n\n }).then((result) => {\n if (result.value) {\n\n this.modalService.open(contenModal, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n }\n });\n }\n\n removeCosyncJWTProvider(contenModal){\n \n swal({\n title: `Remove Cosync AUTH, are you sure?`,\n text: 'This will remove your MongoDB Realm Functions.',\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, remove it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false, \n focusCancel: true\n\n }).then((result) => {\n if (result.value) {\n this.modalService.open(contenModal, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n }\n });\n }\n\n\n showInitCosyncEngine(contenModal){\n\n if(this.appToEdit.realmAppId == \"\"){\n swal({\n title: 'Invalid',\n text: \"Please set up your MongoDB Realm app id first.\",\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return;\n }\n this.formClass = \"need-validation\";\n\n this.cosyncEngineFormData = {\n version: this.cosyncVersions.cosyncEngine[0].versionNumber\n };\n\n this.cosyncEngineStep = 1;\n this.modalService.open(contenModal, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n\n}\n\n\n\n\ninitCosyncJWTProvider(contenModal){\n\n if(this.appToEdit.realmAppId == \"\"){\n swal({\n title: 'Invalid',\n text: \"Please set up your MongoDB Realm app id first.\",\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n return;\n }\n\n\n this.formClass = \"need-validation\";\n\n this.modalService.open(contenModal, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n\n }\n\n\n\n async removeCosyncJWTService(projectId, publicKey, privateKey){\n\n if( !projectId || projectId == \"\" || \n !publicKey || publicKey == \"\" || \n !privateKey || privateKey == \"\" ){\n \n this.formClass = \"need-validation was-validated\";\n\n swal({\n title: 'Invalid',\n text: 'Please enter all required fields',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop)\n\n return;\n } \n\n swal({\n title: 'Please wait',\n text: 'Request is being sent....',\n type: 'info',\n confirmButtonClass: \"btn btn-success\", \n buttonsStyling: false,\n allowOutsideClick: false,\n onBeforeOpen: () => { \n swal.showLoading();\n }\n }).catch(swal.noop)\n\n \n let item = {\n projectId: projectId,\n publicKey: publicKey,\n privateKey: privateKey,\n appId: this.appToEdit.appId\n }\n this.hostService.removeCosyncJWT(this.hostToEdit, item).then(appData => {\n\n swal({\n title: 'Success!',\n text: 'Your MongoDB Realm Cosync AUTH has been removed.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n this.appToEdit.appData = appData;\n this.apps.find(app => app.appId == this.appToEdit.appId).appData = appData;\n\n this.modalService.dismissAll(); \n\n }).catch(err => {\n swal({\n title: 'Whoop! Something went wrong',\n text: err.error ? err.error.message : \"Please contact us for this issue\",\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n this.modalService.dismissAll(); \n })\n\n this.formClass = \"need-validation\";\n\n }\n\n async removeCosyncEngineService(){\n\n if( !this.cosyncEngineFormData.projectId || this.cosyncEngineFormData.projectId == \"\" || \n !this.cosyncEngineFormData.publicKey || this.cosyncEngineFormData.publicKey == \"\" || \n !this.cosyncEngineFormData.serviceId || this.cosyncEngineFormData.serviceId == \"\" || \n !this.cosyncEngineFormData.privateKey || this.cosyncEngineFormData.privateKey == \"\"){\n \n this.formClass = \"need-validation was-validated\";\n\n swal({\n title: 'Invalid',\n text: 'Please enter all required fields',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop)\n\n return;\n } \n\n swal({\n title: 'Please wait',\n text: 'Request is being sent....',\n type: 'info',\n confirmButtonClass: \"btn btn-success\", \n buttonsStyling: false,\n allowOutsideClick: false,\n onBeforeOpen: () => { \n swal.showLoading();\n }\n }).catch(swal.noop)\n\n \n this.cosyncEngineFormData.appId = this.appToEdit.appId;\n this.hostService.removeCosyncEngine(this.hostToEdit, this.cosyncEngineFormData).then(appData => {\n\n swal({\n title: 'Success!',\n text: 'Your MongoDB Realm Cosync AssetLink has been removed.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n this.appToEdit.appData = appData;\n this.apps.find(app => app.appId == this.appToEdit.appId).appData = appData;\n\n this.modalService.dismissAll(); \n\n }).catch(err => {\n swal({\n title: 'Whoop! Something went wrong',\n text: \"Please contact us for this issue\",\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n \n })\n\n this.formClass = \"need-validation\";\n\n }\n\n async initCosyncEngineServiceStep2(){\n if( !this.cosyncEngineFormData.awsAccessKey || this.cosyncEngineFormData.awsAccessKey == \"\" || \n !this.cosyncEngineFormData.awsSecretAccessKey || this.cosyncEngineFormData.awsSecretAccessKey == \"\" || \n !this.cosyncEngineFormData.s3Bucket || this.cosyncEngineFormData.s3Bucket == \"\" || \n !this.cosyncEngineFormData.s3Region || this.cosyncEngineFormData.s3Region == \"\" || \n !this.cosyncEngineFormData.s3BucketPublic || this.cosyncEngineFormData.s3BucketPublic == \"\" || \n !this.cosyncEngineFormData.s3RegionPublic || this.cosyncEngineFormData.s3RegionPublic == \"\"){\n \n this.formClass = \"need-validation was-validated\";\n\n swal({\n title: 'Invalid',\n text: 'Please enter all required fields',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop)\n\n return;\n } \n \n swal({\n title: 'Please wait',\n text: 'Request is being sent....',\n type: 'info',\n confirmButtonClass: \"btn btn-success\", \n buttonsStyling: false,\n allowOutsideClick: false,\n onBeforeOpen: () => { \n swal.showLoading();\n }\n }).catch(swal.noop)\n\n let that = this;\n this.cosyncEngineFormData.appId = this.appToEdit.appId;\n\n this.hostService.initCosyncEngine(this.hostToEdit, this.cosyncEngineFormData).then(appData => {\n\n swal({\n title: 'Success!',\n text: 'Your MongoDB Realm Cosync AssetLink has been set.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n this.appToEdit.appData = appData;\n this.apps.find(app => app.appId == this.appToEdit.appId).appData = appData;\n\n this.modalService.dismissAll(); \n\n }).catch(err => {\n\n let message = err.error && err.error.message ? err.error.message : err.message; \n\n if(err.error.status == \"Duplicate\"){\n \n swal({\n title: 'Whoop! MongoDB Realm already has Cosync AssetLink',\n text: `Do you want to re-initialize your MongoDB Realm Cosync AssetLink?`,\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, do it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false\n\n }).then((result) => {\n \n if (result.value) {\n\n swal({\n title: 'Please wait',\n text: 'Request is being sent....',\n type: 'info',\n confirmButtonClass: \"btn btn-success\", \n buttonsStyling: false,\n allowOutsideClick: false,\n onBeforeOpen: () => { \n swal.showLoading();\n }\n }).catch(swal.noop)\n\n \n that.hostService.reinitCosyncEngine(that.hostToEdit, that.cosyncEngineFormData).then(appData => {\n \n swal({\n title: 'Success!',\n text: 'Your MongoDB Realm Cosync AssetLink has been set.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n that.modalService.dismissAll();\n\n that.appToEdit.appData = appData; \n that.apps.find(app => app.appId == that.appToEdit.appId).appData = appData;\n\n }).catch(err => { \n let message = \"Please contact us for this issue\";\n if(err.error.message) message = err.error.message;\n\n swal({\n title: 'Whoop! Something went wrong',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n that.modalService.dismissAll(); \n \n }); \n \n } else {\n \n swal({\n title: 'Cancelled',\n text: 'Your app is safe :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n\n }).catch(swal.noop)\n }\n });\n }\n else{\n swal({\n title: 'Whoop! Something went wrong',\n text: message ,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n }\n\n \n \n })\n\n \n\n }\n\n initCosyncEngineServiceStep1(){\n\n if( !this.cosyncEngineFormData.projectId || this.cosyncEngineFormData.projectId == \"\" || \n !this.cosyncEngineFormData.publicKey || this.cosyncEngineFormData.publicKey == \"\" || \n !this.cosyncEngineFormData.serviceId || this.cosyncEngineFormData.serviceId == \"\" || \n !this.cosyncEngineFormData.realmDatabase || this.cosyncEngineFormData.realmDatabase == \"\" || \n !this.cosyncEngineFormData.privateKey || this.cosyncEngineFormData.privateKey == \"\"){\n \n this.formClass = \"need-validation was-validated\";\n\n swal({\n title: 'Invalid',\n text: 'Please enter all required fields',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop)\n\n return;\n }\n\n this.cosyncEngineStep = 2;\n this.formClass = \"need-validation\";\n \n }\n\n\n async initCosyncJWT(projectId, publicKey, privateKey, cosyncJWTVersion){\n\n if(projectId == \"\" || publicKey == \"\" || privateKey == \"\"){\n \n this.formClass = \"need-validation was-validated\";\n\n swal({\n title: 'Invalid',\n text: 'Please enter all required fields',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false \n }).catch(swal.noop)\n\n return;\n }\n\n let data = {\n version: cosyncJWTVersion,\n projectId:projectId, \n publicKey: publicKey,\n privateKey: privateKey,\n appId: this.appToEdit.appId\n };\n \n swal({\n title: 'Please wait',\n text: 'Request is being sent....',\n type: 'info',\n confirmButtonClass: \"btn btn-success\", \n buttonsStyling: false,\n allowOutsideClick: false,\n onBeforeOpen: () => { \n swal.showLoading();\n }\n }).catch(swal.noop)\n\n let that = this;\n\n this.hostService.initCosyncJWT(this.hostToEdit, data).then(appData => {\n \n swal({\n title: 'Success!',\n text: 'Your MongoDB Realm AUTH has been set.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n this.modalService.dismissAll();\n\n this.appToEdit.appData = appData;\n this.apps.find(app => app.appId == this.appToEdit.appId).appData = appData;\n\n }).catch(err => {\n\n let message = err.error && err.error.message ? err.error.message : err.message; \n\n if(err.error.status == \"Duplicate\"){\n \n swal({\n title: 'Whoop! MongoDB Realm already has AUTH Secret Provider',\n text: `Do you want to re-initialize your MongoDB Realm AUTH Provider?`,\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, do it!',\n cancelButtonText: 'No, keep it',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false\n\n }).then((result) => {\n \n if (result.value) {\n\n swal({\n title: 'Please wait',\n text: 'Request is being sent....',\n type: 'info',\n confirmButtonClass: \"btn btn-success\", \n buttonsStyling: false,\n allowOutsideClick: false,\n onBeforeOpen: () => { \n swal.showLoading();\n }\n }).catch(swal.noop)\n\n \n that.hostService.reinitCosyncJWT(this.hostToEdit, data).then(res => {\n \n swal({\n title: 'Success!',\n text: 'Your MongoDB Realm AUTH has been set.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n\n this.modalService.dismissAll(); \n \n }).catch(err => { \n let message2 = err.error && err.error.message ? err.error.message : err.message; \n swal({\n title: 'Whoop! Invalid Data',\n text: message2,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n\n this.modalService.dismissAll(); \n \n }); \n \n } else {\n \n swal({\n title: 'Cancelled',\n text: 'Your app is safe :)',\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n\n }).catch(swal.noop)\n }\n });\n }\n else{\n swal({\n title: 'Whoop! Invalid Data',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n }\n\n \n \n })\n\n \n }\n \n\n showUserMetaData(user, content){\n this.currentAppUser = user; \n \n this.modalService.open(content, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title', size: 'lg'}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n\n }\n\n\n editUserMetadata(user){\n this.editMetadata = true;\n this.updatingUserMetadata = false;\n this.editMetadataList = []; \n\n let loopData = Object.entries(user.metaData); \n\n for (const [key, value] of loopData) {\n \n let path = [];\n path.push(key); \n let p = path.toString();\n if (value && typeof value === 'object') { \n this.nestedLoop(value, p.split(\",\")); \n }\n else{\n\n this.editMetadataList.push({\n path: p.split(\",\").join(\".\"),\n value: value\n });\n } \n }\n\n let that = this;\n this.appMetaData.forEach(appField => {\n let found = false;\n that.editMetadataList.forEach(userField => {\n if(appField.path == userField.path) found = true;\n\n });\n\n if(!found) that.editMetadataList.push({path: appField.path, value: undefined});\n });\n\n this.appInviteMetaData.forEach(appInviteField => {\n let found = false;\n that.editMetadataList.forEach(userField => {\n if(appInviteField.path == userField.path){\n found = true;\n userField.invite = true; \n } \n }); \n\n if(!found) that.editMetadataList.push({path: appInviteField.path, value: undefined, invite:true});\n \n });\n \n \n }\n\n removeAddedUserMetadata(field){\n this.addMetadataList = this.addMetadataList.filter(item => item.id != field.id)\n }\n\n addUserMetadata(){ \n this.updatingUserMetadata = true\n \n let that = this; \n this.addMetadataList.push({ \n id: that.helperService.getUUID(), \n path: \"\",\n value: \"\" \n });\n \n }\n\n nestedLoop(data, path) {\n\n let loopData = Object.entries(data);\n \n let objectPathStirng = path.toString();\n\n for (const [key, value] of loopData) {\n let objectPath = objectPathStirng.split(\",\");\n objectPath.push(key);\n \n \n let p = objectPath.toString();\n if (value && typeof value === 'object') { \n this.recurse(value, p.split(','));\n }\n else{ \n this.editMetadataList.push({\n path: p.split(\",\").join(\".\"),\n value: value\n });\n }\n\n }\n }\n\n recurse(data, path) {\n let loopData = Object.entries(data);\n \n let objectPathStirng = path.toString();\n \n for (const [key, value] of loopData) {\n let objectPath = objectPathStirng.split(\",\");\n objectPath.push(key);\n let p = objectPath.toString();\n if (value && typeof value === 'object') { \n this.recurse(value, p.split(\",\"));\n }\n else{ \n this.editMetadataList.push({\n path: p.split(\",\").join(\".\"),\n value: value\n });\n }\n }\n }\n\n\n saveUserMetadata(user){\n this.editMetadata = false; \n let that = this;\n this.editMetadataList.forEach(field => {\n if(field.updated){\n that.updateObjectValue(that.currentAppUser.metaData, field.path, field.value);\n }\n });\n \n\n for (const key in this.currentAppUser.metaData) { \n const element = this.currentAppUser.metaData[key];\n if(element === undefined || element == \"\") delete this.currentAppUser.metaData[key];\n else if(typeof element == \"object\" && !Object.keys(element).length) delete this.currentAppUser.metaData[key];\n }\n\n this.addMetadataList.forEach(field => { \n this.updateObjectValue(this.currentAppUser.metaData, field.path, field.value); \n });\n\n\n that.hostService.updateAppUserMetaData(this.hostToEdit, this.currentAppUser).then(res => {\n this.updatingUserMetadata = false;\n });\n }\n\n\n discardUserMetadata(){\n this.editMetadata = false; \n this.updatingUserMetadata = false;\n }\n\n \n\n updateObjectValue(obj, path, value){\n\n let objLevel = path.split(\".\"); \n\n while(objLevel.length > 1){\n let itemPath = objLevel.shift();\n let item = obj[itemPath];\n if(!item || item == undefined){\n obj[itemPath] = {};\n } \n obj = obj[itemPath];\n }\n \n if(value != \"\" && value != undefined) obj[objLevel.shift()] = value; \n else delete obj[objLevel.shift()];\n \n }\n\n onkeyUpUserMetaDataEvent(event, item){\n let value = event.target.value;\n this.updatingUserMetadata = true;\n\n for (let index = 0; index < this.editMetadataList.length; index++) {\n const field = this.editMetadataList[index];\n if(field.path == item.path){\n this.editMetadataList[index].value = value;\n this.editMetadataList[index].updated = true;\n } \n }\n \n }\n\n\n onkeyUpAddUserMetadataEvent(event, item, key){\n let value = event.target.value;\n this.updatingUserMetadata = true;\n\n for (let index = 0; index < this.addMetadataList.length; index++) {\n const field = this.addMetadataList[index];\n if(field.id == item.id){\n this.addMetadataList[index][key] = value; \n } \n }\n \n }\n\n\n clearMetadata(item){\n\n if(item.value == \"\" || item.value == undefined) return;\n item.value = \"\"; \n \n this.updatingUserMetadata = true;\n\n for (let index = 0; index < this.editMetadataList.length; index++) {\n const field = this.editMetadataList[index];\n if(field.path == item.path){\n this.editMetadataList[index].value = undefined;\n this.editMetadataList[index].updated = true;\n } \n }\n\n }\n \n chooseAppDatabase(file){\n this.createAppData.file = file;\n this.uploading_database_error = '';\n }\n\n\n exportAppDatabase(){\n\n swal({\n title: 'Please wait',\n text: 'Request is being sent....',\n type: 'info',\n confirmButtonClass: \"btn btn-success\", \n buttonsStyling: false,\n allowOutsideClick: false,\n onBeforeOpen: () => { \n swal.showLoading();\n }\n }).catch(swal.noop)\n\n this.hostService.exportAppDatabase(this.hostToEdit, this.appToEdit).then(res => {\n swal({\n title: 'Success!',\n text: 'Your app database will be downloaded soon.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n \n }).catch(err => {\n\n let message = \"Please contact us for this issue\";\n if(err.error.message) message = err.error.message;\n\n swal({\n title: 'Whoop! Something went wrong',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n });\n }\n\n\n\n public importAppDatabase(){ \n\n if(this.checkAppName(this.createAppData.appName)){\n\n swal({\n type: 'error',\n title: 'Whoop! App name already exists.',\n text: \"Please enter different app name\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n\n });\n return;\n }\n\n let that = this;\n\n if(!this.createAppData.appName ){\n this.uploading_database_error = \"Please enter App Name\"; \n return;\n } \n\n if(!this.createAppData.file ){\n this.uploading_database_error = \"Please choose a file to upload.\"; \n return;\n } \n\n\n let file = this.createAppData.file;\n \n swal({\n title: `Import App Database`,\n text: `Import '${file[0].name}' into '${that.createAppData.appName}', are you sure? This will take a while.`,\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, do it!',\n cancelButtonText: 'Cancel',\n confirmButtonClass: \"btn btn-danger\",\n cancelButtonClass: \"btn btn-success\",\n buttonsStyling: false, \n focusCancel: true\n\n }).then((result) => {\n if (result.value) {\n\n swal({\n title: 'Please wait',\n text: 'Request is being sent....',\n type: 'info',\n confirmButtonClass: \"btn btn-success\", \n buttonsStyling: false,\n allowOutsideClick: false,\n onBeforeOpen: () => { \n swal.showLoading();\n }\n }).catch(swal.noop)\n\n\n that.hostService.importAppDatabase(that.hostToEdit, that.createAppData.appName, file[0]).then(app => {\n\n swal({\n title: 'Success!',\n text: 'Your app database has been imported.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n \n \n that.modalService.dismissAll();\n\n }).catch(err => {\n \n let message = \"Please contact us for this issue\";\n if(err.error.message) message = err.error.message;\n \n that.modalService.dismissAll();\n \n swal({\n title: 'Whoop! Something went wrong',\n text: message,\n type: 'error',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop)\n });\n }\n else{\n\n }\n\n });\n\n\n \n }\n\n\n gotoHostApp(){\n this.router.navigate([`host/${this.hostToEdit.hostId}/apps`]);\n }\n\n patchAppLocale(){\n this.hostService.patchHostAppLocale(this.hostToEdit).then(res => {\n swal({\n title: 'Success!',\n text: 'Your app database has been patched.',\n type: 'success',\n confirmButtonClass: \"btn btn-success\",\n buttonsStyling: false\n }).catch(swal.noop);\n });\n }\n \n\n\nmodifyAppLocale(contenModal){\n this.modalService.open(contenModal, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n}\n\n}\n","export default \".lock-page {\\n padding-top: 100px;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9sb2NrL2xvY2suY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFrQjtBQUNwQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbG9jay9sb2NrLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubG9jay1wYWdlIHtcbiAgcGFkZGluZy10b3A6IDEwMHB4O1xufVxuIl19 */\"","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { AuthenticationService } from 'src/app/services/authentication.service';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { Developer } from 'src/app/models/developer';\nimport swal from 'sweetalert2';\n\n@Component({\n selector: 'app-lock',\n templateUrl: './lock.component.html',\n styleUrls: ['./lock.component.css']\n})\nexport class LockComponent implements OnInit {\n currentUser:any = {};\n \n \n constructor(private authService:AuthenticationService, private router: Router, private route: ActivatedRoute) {\n let cache = localStorage.getItem('currentUser');\n\n if(!this.authService.user){\n this.router.navigate([\"/login\"]);\n } \n else if(this.route.snapshot.paramMap.get('logout')){\n this.logout();\n }\n else {\n this.authService.user.lock = true;\n this.currentUser = JSON.parse(cache) as Developer;\n }\n\n this.authService.user$.subscribe(user => {\n this.currentUser = user;\n \n });\n\n\n }\n\n ngOnInit() {\n \n }\n\n\n\n onkeyUpEvent(evt, password){\n if (evt.key === \"Enter\") { \n this.unlock(password);\n }\n }\n\n logout(){\n this.authService.logout();\n this.router.navigate([\"/login\"]);\n }\n\n unlock(password){\n let result = this.authService.unlock(password);\n if(result) this.router.navigate([\"/apps\"]);\n else {\n swal({\n title: \"Login Fails\",\n text: \"Invalid Credential\",\n type: 'error',\n confirmButtonClass: \"btn btn-info\",\n buttonsStyling: false,\n //timer: 3000,\n focusCancel: true\n }).catch(swal.noop)\n }\n \n }\n\n}\n","export default \".text-forgot-password {\\n padding-left: 55px;\\n padding-top: 5px;\\n}\\n\\n.card-header-primary {\\n background: #4638ab !important;\\n}\\n\\nvideo {\\n position: absolute;\\n top: 36%;\\n left: 50%;\\n min-width: 100%;\\n min-height: 100%;\\n width: auto;\\n height: auto;\\n z-index: 0;\\n -webkit-transform: translateX(-50%) translateY(-50%);\\n transform: translateX(-50%) translateY(-50%);\\n}\\n\\n.login-page {\\n padding-top: 100px;\\n}\\n\\n.h1,\\n.h2,\\n.h3,\\n.h4,\\nbody,\\nlabel,\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n font-family: Highway Gothic, Helvetica, Arial, sans-serif !important;\\n font-weight: 300;\\n line-height: 1.5em;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLDhCQUE4QjtBQUNoQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IsU0FBUztFQUNULGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLFlBQVk7RUFDWixVQUFVO0VBR1Ysb0RBQW9EO0VBQ3BELDRDQUE0QztBQUM5Qzs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjs7QUFFQTs7Ozs7Ozs7Ozs7O0VBWUUsb0VBQW9FO0VBQ3BFLGdCQUFnQjtFQUNoQixrQkFBa0I7QUFDcEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIudGV4dC1mb3Jnb3QtcGFzc3dvcmQge1xuICBwYWRkaW5nLWxlZnQ6IDU1cHg7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG59XG5cbi5jYXJkLWhlYWRlci1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzQ2MzhhYiAhaW1wb3J0YW50O1xufVxuXG52aWRlbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzNiU7XG4gIGxlZnQ6IDUwJTtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICB6LWluZGV4OiAwO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4ubG9naW4tcGFnZSB7XG4gIHBhZGRpbmctdG9wOiAxMDBweDtcbn1cblxuLmgxLFxuLmgyLFxuLmgzLFxuLmg0LFxuYm9keSxcbmxhYmVsLFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgZm9udC1mYW1pbHk6IEhpZ2h3YXkgR290aGljLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbn1cbiJdfQ== */\"","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { AuthenticationService } from 'src/app/services/authentication.service';\nimport swal from 'sweetalert2';\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\nimport { HelperService } from 'src/app/services/helper.service';\nimport { Developer } from 'src/app/models/developer';\n\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n})\n\n\nexport class LoginComponent implements OnInit, OnDestroy {\n\n loginResult:string = \"\"; \n resetPassword:string;\n passwordIsNotMatch:string;\n loading:boolean = false;\n formClass:string = \"need-validation\";\n\n constructor(private authService:AuthenticationService, private router: Router, private route: ActivatedRoute, private helper:HelperService) {\n \n this.resetPassword = this.route.snapshot.paramMap.get('reset');\n \n }\n\n ngOnInit() {\n this.loginResult = \"\"; \n if(this.resetPassword) this.authService.logout();\n else{\n // redirect to home if already logged in\n if (this.authService.user) {\n this.router.navigate(['/profile']);\n }\n else this.authService.logout();\n\n }\n }\n\n ngOnDestroy(){\n \n }\n\n\n login(email, password) {\n this.formClass = \"need-validation was-validated\";\n if(email == \"\" || password == \"\" || this.loading) return;\n this.loading = true;\n let that = this;\n this.authService.login(email, password, null).then(res => { \n let user = res as any;\n if(user.token && !user.uid){\n this.showTwoFactorPopup(user, false);\n }\n else if(user.status == 'active'){\n if(user.firstName == '' || !user.firstName || user.lastName == '' || !user.lastName){\n this.router.navigate(['/profile']);\n } \n else if(user.lastLogin) this.router.navigate(['']);\n else this.router.navigate(['/profile']);\n } \n else this.router.navigate(['/profile/payment', { option: 'repay'}]);\n \n }).catch(reason => {\n\n this.loading = false;\n this.loginResult = reason.error.message;\n if(reason.error.code == 401){\n swal({\n title: \"Login Fails\",\n text: reason.error.message,\n showCancelButton: true, \n confirmButtonText: 'Resend',\n confirmButtonClass: 'btn btn-success',\n cancelButtonClass: 'btn btn-danger',\n buttonsStyling: false \n }).then(function(result) {\n \n if(result.value){\n that.resendActivate(email);\n }\n });\n\n }\n else{\n swal({\n title: \"Login Fails\",\n text: reason.error.message,\n type: 'error',\n confirmButtonClass: \"btn btn-info\",\n buttonsStyling: false\n }).catch(swal.noop)\n }\n \n });\n }\n\n showTwoFactorPopup(data, retry){\n let that = this;\n let title = 'Enter Two Factor Authentication Code';\n if(retry) title = 'You just entered invalid code please try again';\n swal({\n title: title,\n input: 'text',\n showCancelButton: true, \n confirmButtonClass: 'btn btn-success',\n cancelButtonClass: 'btn btn-danger',\n buttonsStyling: false \n \n }).then(function(result) {\n console.log(result);\n\n if(result.value){ \n\n that.authService.completeLogin(data.token, result.value).then(res => {\n let user = res as any;\n\n if(user.status == 'active'){\n if(user.lastLogin) that.router.navigate(['']);\n else that.router.navigate(['/profile']);\n } \n else that.router.navigate(['/profile/payment', { option: 'repay'}]);\n \n }).catch(e => {\n that.showTwoFactorPopup(data, true);\n }); \n }\n else if (result.value == '') that.showTwoFactorPopup(data, true);\n else{\n that.loading = false;\n \n swal({\n title: \"Login Fails\",\n text: \"Invalid Two Factor Code\",\n type: 'error',\n confirmButtonClass: \"btn btn-info\",\n buttonsStyling: false\n }).catch(swal.noop)\n }\n }).catch(swal.noop)\n }\n\n\n resendActivate(email){\n this.authService.resendActivate(email).then(result => {\n swal({\n title: \"Success!\",\n text: \"Please check your email.\",\n buttonsStyling: false,\n confirmButtonClass: \"btn btn-success\",\n type: \"success\"\n }).catch(swal.noop)\n\n }).catch(reason => {\n swal({\n title: reason.error.status,\n text: reason.error.message,\n type: 'error',\n confirmButtonClass: \"btn btn-info\",\n buttonsStyling: false\n }).catch(swal.noop)\n });\n }\n\n \n\n onkeydown(evt, email, password){\n if (evt.key === \"Enter\") {\n \n this.login(email, password);\n }\n }\n \n\n forgotPassword(){\n let that = this;\n\n swal({\n title: 'Enter your email',\n input: 'text',\n showCancelButton: true, \n confirmButtonClass: 'btn btn-success',\n cancelButtonClass: 'btn btn-danger',\n buttonsStyling: false,\n inputValidator: (value) => { \n if (!value || !that.helper.emailValidation(value)) {\n return 'Please enter valid email'\n } \n }\n \n }).then(function(result) {\n \n if(result.value){ \n that.authService.resetPassword(result.value);\n\n swal({\n type: 'success',\n html: 'Please check your email for reset password.
'+result.value+'',\n confirmButtonClass: 'btn btn-success',\n buttonsStyling: false \n })\n \n \n }\n }).catch(swal.noop)\n }\n\n clickResetPassword(password, confirm){\n if(password != confirm){\n this.passwordIsNotMatch = 'Password and Confirm Password is not match.'\n return;\n } \n\n if(password.length < 4 || confirm.length < 4 ){\n this.passwordIsNotMatch = 'Password and Confirm Password must be at least 4 charactors.'\n return;\n } \n\n this.authService.resetPasswordWithToken({token:this.resetPassword, password:password}).then(result => {\n \n this.resetPassword = null;\n this.passwordIsNotMatch = '';\n\n swal({\n type: 'success',\n html: 'Please login with your new password',\n confirmButtonClass: 'btn btn-success',\n buttonsStyling: false,\n timer: 2000\n })\n\n this.router.navigate(['/login']);\n\n }).catch(err => {\n swal({\n title: err.error.status,\n text: err.error.message,\n type: 'error',\n confirmButtonClass: \"btn btn-info\",\n buttonsStyling: false\n }).catch(swal.noop)\n });\n }\n\n onResetPasswordKeydown(evt, password, confirm){\n if (evt.key === \"Enter\") { \n this.clickResetPassword(password, confirm);\n }\n }\n\n}\n","export default \".notfound-page{\\n padding-top: 80px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ub3QtZm91bmQvbm90LWZvdW5kLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxpQkFBaUI7QUFDckIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL25vdC1mb3VuZC9ub3QtZm91bmQuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5ub3Rmb3VuZC1wYWdle1xuICAgIHBhZGRpbmctdG9wOiA4MHB4O1xufSJdfQ== */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-not-found',\n templateUrl: './not-found.component.html',\n styleUrls: ['./not-found.component.css']\n})\nexport class NotFoundComponent implements OnInit {\n\n \n\n constructor() { }\n\n ngOnInit() {\n \n \n }\n\n}\n","export default \"\\n.pagination .page-item .page-link {\\n font-size: .9rem;\\n color: #212529;\\n background-color: transparent;\\n border: 0;\\n outline: 0;\\n -webkit-transition: all 0.3s linear;\\n transition: all 0.3s linear;\\n}\\n\\n.pagination a {\\n border-radius: 0!important;\\n cursor: pointer;\\n}\\n\\n.pagination .page-item.active .page-link {\\n color: #fff;\\n background-color: #4285f4;\\n border-radius: .125rem;\\n box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12);\\n -webkit-transition: all 0.2s linear;\\n transition: all 0.2s linear;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSSxnQkFBZ0I7SUFDaEIsY0FBYztJQUNkLDZCQUE2QjtJQUM3QixTQUFTO0lBQ1QsVUFBVTtJQUNWLG1DQUFtQztJQUNuQywyQkFBMkI7QUFDL0I7O0FBRUE7SUFDSSwwQkFBMEI7SUFDMUIsZUFBZTtBQUNuQjs7QUFFQTtJQUNJLFdBQVc7SUFDWCx5QkFBeUI7SUFDekIsc0JBQXNCO0lBRXRCLHVFQUF1RTtJQUN2RSxtQ0FBbUM7SUFDbkMsMkJBQTJCO0FBQy9CIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIlxuLnBhZ2luYXRpb24gLnBhZ2UtaXRlbSAucGFnZS1saW5rIHtcbiAgICBmb250LXNpemU6IC45cmVtO1xuICAgIGNvbG9yOiAjMjEyNTI5O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBvdXRsaW5lOiAwO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgbGluZWFyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGxpbmVhcjtcbn1cblxuLnBhZ2luYXRpb24gYSB7XG4gICAgYm9yZGVyLXJhZGl1czogMCFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuICBcbi5wYWdpbmF0aW9uIC5wYWdlLWl0ZW0uYWN0aXZlIC5wYWdlLWxpbmsge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0Mjg1ZjQ7XG4gICAgYm9yZGVyLXJhZGl1czogLjEyNXJlbTtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsMC4xNiksIDAgMnB4IDEwcHggMCByZ2JhKDAsMCwwLDAuMTIpO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwwLDAsMC4xNiksIDAgMnB4IDEwcHggMCByZ2JhKDAsMCwwLDAuMTIpO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgbGluZWFyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGxpbmVhcjtcbn1cbiJdfQ== */\"","import { Component, AfterViewInit, Input, Output, EventEmitter } from '@angular/core'; \n \n\n@Component({\n selector: 'app-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.css']\n})\n\nexport class PaginationComponent implements AfterViewInit {\n\n @Output() changePage = new EventEmitter();\n @Output() init = new EventEmitter();\n currentPage:any = {page:1 , order:1};\n \n totalItem:number;\n entryAmount:number; \n pages:any = [];\n totalPage:number;\n initialized:boolean = false;\n\n constructor(\n \n ) { }\n\n ngAfterViewInit() {\n \n this.initialized = true;\n this.init.emit(true);\n }\n\n\n @Input() set data(item: any){\n this.pages = [];\n this.totalItem = item.totalItem;\n this.entryAmount = item.entryAmount || 25; \n\n this.totalPage = Math.ceil(this.totalItem / this.entryAmount);\n\n if(this.totalPage > 1){ \n\n if(item.page){\n this.redraw(item.page);\n }\n else{\n let order = 0;\n for (let index = 1; index <= this.totalPage; index++) { \n order++;\n if(order > 15) return; \n if(index == 1) this.pages.push({order:order, page:index, acitve: true , class: 'page-item active'});\n else this.pages.push({order:order, page:index, acitve: false, class: 'page-item'});\n }\n } \n }\n }\n\n redraw(item:any){\n // if(item.order <= 7 && item.page < 7) return;\n // if(item.order >= 15 && item.page > this.totalPage - 7) return;\n this.currentPage = item;\n this.pages = [];\n let order = 0;\n\n // draw all items to the last\n let val = this.totalPage - this.currentPage.page\n if(val < 15 && this.totalPage > 15){\n for (let index = this.totalPage - 15; index <= this.totalPage; index++) { \n order++;\n this.pages.push({order:order, page:index, acitve: false, class: 'page-item'}); \n } \n } \n // draw all items to the first\n else if(item.order < 7) { \n\n let start = item.page - 7;\n\n if(start <= 0) start = 1;\n\n for (let index = start; index <= this.totalPage; index++) { \n order++;\n if(order > 15) break;\n this.pages.push({order:order, page:index, acitve: false, class: 'page-item'});\n }\n }\n else{\n for (let index = this.currentPage.page; index <= this.totalPage; index++) { \n order++;\n if(order > 15) break;\n this.pages.push({order:order, page:index, acitve: false, class: 'page-item'});\n }\n } \n\n this.setActive();\n }\n\n\n @Input() set entry(amount: number){\n this.entryAmount = amount;\n }\n\n gotoPage(item:any) {\n \n if(this.currentPage.page == item.page) return; \n\n this.currentPage = item;\n this.redraw(this.currentPage);\n this.changePage.emit(this.currentPage); \n }\n\n gotoPreviousPage(){\n if(this.currentPage.page == 1) return;\n \n this.currentPage = {page:this.currentPage.page -1, order: this.currentPage.order -1};\n this.redraw(this.currentPage);\n\n this.changePage.emit(this.currentPage); \n }\n\n gotoNextPage(){\n if(this.currentPage.page == this.totalPage) return;\n this.currentPage = {page:this.currentPage.page + 1, order: this.currentPage.order + 1};\n this.redraw(this.currentPage);\n this.changePage.emit(this.currentPage); \n }\n\n setActive(){\n this.pages.filter(p =>{ \n p.acitve = false;\n p.class = \"page-item\";\n\n if(p.page == this.currentPage.page){\n p.acitve = true; \n p.class = \"page-item active\";\n } \n }); \n }\n\n}\n","export default \".pricing-page {\\n padding-top: 50px !important;\\n}\\n\\n.pricing-page .title {\\n color: #3c4858 !important;\\n}\\n\\n.pricing-page .description {\\n color: #3c4858 !important;\\n}\\n \\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcmljaW5nL3ByaWNpbmcuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLDRCQUE0QjtBQUNoQzs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3Qjs7QUFFQTtJQUNJLHlCQUF5QjtBQUM3QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcHJpY2luZy9wcmljaW5nLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIucHJpY2luZy1wYWdlIHtcbiAgICBwYWRkaW5nLXRvcDogNTBweCAhaW1wb3J0YW50O1xufVxuXG4ucHJpY2luZy1wYWdlIC50aXRsZSB7XG4gICAgY29sb3I6ICMzYzQ4NTggIWltcG9ydGFudDtcbn1cblxuLnByaWNpbmctcGFnZSAuZGVzY3JpcHRpb24ge1xuICAgIGNvbG9yOiAjM2M0ODU4ICFpbXBvcnRhbnQ7XG59XG4gIl19 */\"","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router'; \nimport { Developer } from 'src/app/models/developer'; \n\n@Component({\n selector: 'app-pricing',\n templateUrl: './pricing.component.html',\n styleUrls: ['./pricing.component.css']\n})\nexport class PricingComponent implements OnInit {\n\n currentUser:any = {}; \n totalPrice:number = 0;\n\n constructor( \n private router: Router\n \n ) {\n\n let cache = localStorage.getItem('currentUser');\n this.currentUser = JSON.parse(cache) as Developer;\n\n }\n\n \n ngOnInit() { \n\n }\n\n clickUpgradeButton(){\n this.router.navigate(['/profile/payment', { option: 'upgrade' }]);\n }\n \n \n \n\n}\n","export default \"\\n@media all and (min-width: 993px) {\\n .profile-container{\\n padding-top: 70px;\\n padding-bottom: 70px;\\n }\\n\\n}\\n\\n\\n\\n.loader{\\n width: 30px !important;\\n margin-top: -10px;\\n}\\n\\n\\n\\n.plan-controler{\\n margin-top: auto;\\n margin-bottom: auto;\\n margin-right: 10px;\\n}\\n\\n\\n\\n.popupPicture{\\n width: 200px;\\n height: 200px;\\n background-color: #999999;\\n border: 4px solid #CCCCCC;\\n color: #FFFFFF;\\n border-radius: 50%;\\n margin: 5px auto;\\n overflow: hidden;\\n transition: all 0.2s;\\n -webkit-transition: all 0.2s;\\n}\\n\\n\\n\\nvideo {\\n position: absolute;\\n top: 36%;\\n left: 50%;\\n min-width: 100%;\\n min-height: 100%;\\n width: auto;\\n height: auto;\\n z-index: 0;\\n -webkit-transform: translateX(-50%) translateY(-50%);\\n transform: translateX(-50%) translateY(-50%);\\n}\\n\\n\\n\\n.card-container{\\n overflow-y: auto;\\n max-height: 540px ;\\n}\\n\\n\\n\\n.billing-container{\\n overflow-y: auto;\\n max-height: 540px ;\\n}\\n\\n \\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7SUFDSTtRQUNJLGlCQUFpQjtRQUNqQixvQkFBb0I7SUFDeEI7O0FBRUo7Ozs7QUFJQTtJQUNJLHNCQUFzQjtJQUN0QixpQkFBaUI7QUFDckI7Ozs7QUFFQTtJQUNJLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsa0JBQWtCO0FBQ3RCOzs7O0FBRUE7SUFDSSxZQUFZO0lBQ1osYUFBYTtJQUNiLHlCQUF5QjtJQUN6Qix5QkFBeUI7SUFDekIsY0FBYztJQUNkLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLG9CQUFvQjtJQUNwQiw0QkFBNEI7QUFDaEM7Ozs7QUFHQTtJQUNJLGtCQUFrQjtJQUNsQixRQUFRO0lBQ1IsU0FBUztJQUNULGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLFlBQVk7SUFDWixVQUFVO0lBR1Ysb0RBQW9EO0lBQ3BELDRDQUE0QztBQUNoRDs7OztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLGtCQUFrQjtBQUN0Qjs7OztBQUdBO0lBQ0ksZ0JBQWdCO0lBQ2hCLGtCQUFrQjtBQUN0QiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJcbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDk5M3B4KSB7XG4gICAgLnByb2ZpbGUtY29udGFpbmVye1xuICAgICAgICBwYWRkaW5nLXRvcDogNzBweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDcwcHg7XG4gICAgfVxuXG59XG5cblxuXG4ubG9hZGVye1xuICAgIHdpZHRoOiAzMHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogLTEwcHg7XG59XG5cbi5wbGFuLWNvbnRyb2xlcntcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG4ucG9wdXBQaWN0dXJle1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBoZWlnaHQ6IDIwMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM5OTk5OTk7XG4gICAgYm9yZGVyOiA0cHggc29saWQgI0NDQ0NDQztcbiAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgbWFyZ2luOiA1cHggYXV0bztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnM7XG59XG5cblxudmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDM2JTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHotaW5kZXg6IDA7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLmNhcmQtY29udGFpbmVye1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgbWF4LWhlaWdodDogNTQwcHggO1xufVxuXG5cbi5iaWxsaW5nLWNvbnRhaW5lcntcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDU0MHB4IDtcbn1cblxuICJdfQ== */\"","// IMPORTANT: this is a plugin which requires jQuery for initialisation and data manipulation\nimport { NgbModal, ModalDismissReasons } from '@ng-bootstrap/ng-bootstrap';\nimport { Component, OnInit, OnChanges, AfterViewInit, SimpleChanges, ViewChild} from '@angular/core';\nimport {FormControl, FormGroupDirective, NgForm, Validators, FormGroup} from '@angular/forms';\nimport {ErrorStateMatcher} from '@angular/material/core';\nimport { FormBuilder } from '@angular/forms';\nimport { Developer } from 'src/app/models/developer';\nimport { UploadService } from 'src/app/services/upload.service';\nimport { AuthenticationService } from 'src/app/services/authentication.service';\nimport { AccountService } from 'src/app/services/account.service';\nimport { PaymentService } from 'src/app/services/payment.service';\nimport swal from 'sweetalert2';\nimport { ActivatedRoute, Router } from '@angular/router'; \nimport { DatePipe } from '@angular/common';\nimport { NotificationService } from 'src/app/services/notification.service';\n\ndeclare const $: any;\ndeclare const braintree: any; \n\ninterface FileReaderEventTarget extends EventTarget {\n result: string;\n}\n\ninterface FileReaderEvent extends Event {\n target: EventTarget;\n getMessage(): string;\n}\n\nexport class MyErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n const isSubmitted = form && form.submitted;\n return !!(control && control.invalid && (control.dirty || control.touched || isSubmitted));\n }\n}\n\n@Component({\n selector: 'app-profile',\n templateUrl: 'profile.component.html',\n styleUrls: ['profile.component.css']\n})\n\nexport class ProfileComponent implements OnInit, OnChanges, AfterViewInit {\n \n @ViewChild('billing', {static: false}) billingModal: any; \n \n matcher = new MyErrorStateMatcher();\n currentUser:any = {};\n currentTap:number = 1; \n profileForm : FormGroup; \n uploadAvatar:any = {\n progress : false,\n file:null \n };\n\n formAddressClass:string = \"need-validation\";\n address:any = {\n countryCodeAlpha2:\"US\"\n };\n addressFormInfo:string;\n addingAddress:boolean = false;\n twoFactorAuth:any = {}; \n twoFactorText:string = 'Scan the QR code or enter the secret key in Google Authenticator';\n twoFactorStep:number = 1;\n\n countryList: any = [\n { \"name\": \"United States\", \"code\": \"US\" },\n { \"name\": \"Afghanistan\", \"code\": \"AF\" },\n { \"name\": \"Åland Islands\", \"code\": \"AX\" },\n { \"name\": \"Albania\", \"code\": \"AL\" },\n { \"name\": \"Algeria\", \"code\": \"DZ\" },\n { \"name\": \"American Samoa\", \"code\": \"AS\" },\n { \"name\": \"Andorra\", \"code\": \"AD\" },\n { \"name\": \"Angola\", \"code\": \"AO\" },\n { \"name\": \"Anguilla\", \"code\": \"AI\" },\n { \"name\": \"Antarctica\", \"code\": \"AQ\" },\n { \"name\": \"Antigua and Barbuda\", \"code\": \"AG\" },\n { \"name\": \"Argentina\", \"code\": \"AR\" },\n { \"name\": \"Armenia\", \"code\": \"AM\" },\n { \"name\": \"Aruba\", \"code\": \"AW\" },\n { \"name\": \"Australia\", \"code\": \"AU\" },\n { \"name\": \"Austria\", \"code\": \"AT\" },\n { \"name\": \"Azerbaijan\", \"code\": \"AZ\" },\n { \"name\": \"Bahamas\", \"code\": \"BS\" },\n { \"name\": \"Bahrain\", \"code\": \"BH\" },\n { \"name\": \"Bangladesh\", \"code\": \"BD\" },\n { \"name\": \"Barbados\", \"code\": \"BB\" },\n { \"name\": \"Belarus\", \"code\": \"BY\" },\n { \"name\": \"Belgium\", \"code\": \"BE\" },\n { \"name\": \"Belize\", \"code\": \"BZ\" },\n { \"name\": \"Benin\", \"code\": \"BJ\" },\n { \"name\": \"Bermuda\", \"code\": \"BM\" },\n { \"name\": \"Bhutan\", \"code\": \"BT\" },\n { \"name\": \"Bolivia\", \"code\": \"BO\" },\n { \"name\": \"Bosnia and Herzegovina\", \"code\": \"BA\" },\n { \"name\": \"Botswana\", \"code\": \"BW\" },\n { \"name\": \"Bouvet Island\", \"code\": \"BV\" },\n { \"name\": \"Brazil\", \"code\": \"BR\" },\n { \"name\": \"British Indian Ocean Territory\", \"code\": \"IO\" },\n { \"name\": \"Brunei Darussalam\", \"code\": \"BN\" },\n { \"name\": \"Bulgaria\", \"code\": \"BG\" },\n { \"name\": \"Burkina Faso\", \"code\": \"BF\" },\n { \"name\": \"Burundi\", \"code\": \"BI\" },\n { \"name\": \"Cambodia\", \"code\": \"KH\" },\n { \"name\": \"Cameroon\", \"code\": \"CM\" },\n { \"name\": \"Canada\", \"code\": \"CA\" },\n { \"name\": \"Cape Verde\", \"code\": \"CV\" },\n { \"name\": \"Cayman Islands\", \"code\": \"KY\" },\n { \"name\": \"Central African Republic\", \"code\": \"CF\" },\n { \"name\": \"Chad\", \"code\": \"TD\" },\n { \"name\": \"Chile\", \"code\": \"CL\" },\n { \"name\": \"China\", \"code\": \"CN\" },\n { \"name\": \"Christmas Island\", \"code\": \"CX\" },\n { \"name\": \"Cocos (Keeling) Islands\", \"code\": \"CC\" },\n { \"name\": \"Colombia\", \"code\": \"CO\" },\n { \"name\": \"Comoros\", \"code\": \"KM\" },\n { \"name\": \"Congo\", \"code\": \"CG\" },\n { \"name\": \"Congo, The Democratic Republic of the\", \"code\": \"CD\" },\n { \"name\": \"Cook Islands\", \"code\": \"CK\" },\n { \"name\": \"Costa Rica\", \"code\": \"CR\" },\n { \"name\": \"Cote D'Ivoire\", \"code\": \"CI\" },\n { \"name\": \"Croatia\", \"code\": \"HR\" },\n { \"name\": \"Cuba\", \"code\": \"CU\" },\n { \"name\": \"Cyprus\", \"code\": \"CY\" },\n { \"name\": \"Czech Republic\", \"code\": \"CZ\" },\n { \"name\": \"Denmark\", \"code\": \"DK\" },\n { \"name\": \"Djibouti\", \"code\": \"DJ\" },\n { \"name\": \"Dominica\", \"code\": \"DM\" },\n { \"name\": \"Dominican Republic\", \"code\": \"DO\" },\n { \"name\": \"Ecuador\", \"code\": \"EC\" },\n { \"name\": \"Egypt\", \"code\": \"EG\" },\n { \"name\": \"El Salvador\", \"code\": \"SV\" },\n { \"name\": \"Equatorial Guinea\", \"code\": \"GQ\" },\n { \"name\": \"Eritrea\", \"code\": \"ER\" },\n { \"name\": \"Estonia\", \"code\": \"EE\" },\n { \"name\": \"Ethiopia\", \"code\": \"ET\" },\n { \"name\": \"Falkland Islands (Malvinas)\", \"code\": \"FK\" },\n { \"name\": \"Faroe Islands\", \"code\": \"FO\" },\n { \"name\": \"Fiji\", \"code\": \"FJ\" },\n { \"name\": \"Finland\", \"code\": \"FI\" },\n { \"name\": \"France\", \"code\": \"FR\" },\n { \"name\": \"French Guiana\", \"code\": \"GF\" },\n { \"name\": \"French Polynesia\", \"code\": \"PF\" },\n { \"name\": \"French Southern Territories\", \"code\": \"TF\" },\n { \"name\": \"Gabon\", \"code\": \"GA\" },\n { \"name\": \"Gambia\", \"code\": \"GM\" },\n { \"name\": \"Georgia\", \"code\": \"GE\" },\n { \"name\": \"Germany\", \"code\": \"DE\" },\n { \"name\": \"Ghana\", \"code\": \"GH\" },\n { \"name\": \"Gibraltar\", \"code\": \"GI\" },\n { \"name\": \"Greece\", \"code\": \"GR\" },\n { \"name\": \"Greenland\", \"code\": \"GL\" },\n { \"name\": \"Grenada\", \"code\": \"GD\" },\n { \"name\": \"Guadeloupe\", \"code\": \"GP\" },\n { \"name\": \"Guam\", \"code\": \"GU\" },\n { \"name\": \"Guatemala\", \"code\": \"GT\" },\n { \"name\": \"Guernsey\", \"code\": \"GG\" },\n { \"name\": \"Guinea\", \"code\": \"GN\" },\n { \"name\": \"Guinea-Bissau\", \"code\": \"GW\" },\n { \"name\": \"Guyana\", \"code\": \"GY\" },\n { \"name\": \"Haiti\", \"code\": \"HT\" },\n { \"name\": \"Heard Island and Mcdonald Islands\", \"code\": \"HM\" },\n { \"name\": \"Holy See (Vatican City State)\", \"code\": \"VA\" },\n { \"name\": \"Honduras\", \"code\": \"HN\" },\n { \"name\": \"Hong Kong\", \"code\": \"HK\" },\n { \"name\": \"Hungary\", \"code\": \"HU\" },\n { \"name\": \"Iceland\", \"code\": \"IS\" },\n { \"name\": \"India\", \"code\": \"IN\" },\n { \"name\": \"Indonesia\", \"code\": \"ID\" },\n { \"name\": \"Iran, Islamic Republic Of\", \"code\": \"IR\" },\n { \"name\": \"Iraq\", \"code\": \"IQ\" },\n { \"name\": \"Ireland\", \"code\": \"IE\" },\n { \"name\": \"Isle of Man\", \"code\": \"IM\" },\n { \"name\": \"Israel\", \"code\": \"IL\" },\n { \"name\": \"Italy\", \"code\": \"IT\" },\n { \"name\": \"Jamaica\", \"code\": \"JM\" },\n { \"name\": \"Japan\", \"code\": \"JP\" },\n { \"name\": \"Jersey\", \"code\": \"JE\" },\n { \"name\": \"Jordan\", \"code\": \"JO\" },\n { \"name\": \"Kazakhstan\", \"code\": \"KZ\" },\n { \"name\": \"Kenya\", \"code\": \"KE\" },\n { \"name\": \"Kiribati\", \"code\": \"KI\" },\n { \"name\": \"Democratic People's Republic of Korea\", \"code\": \"KP\" },\n { \"name\": \"Korea, Republic of\", \"code\": \"KR\" },\n { \"name\": \"Kosovo\", \"code\": \"XK\" },\n { \"name\": \"Kuwait\", \"code\": \"KW\" },\n { \"name\": \"Kyrgyzstan\", \"code\": \"KG\" },\n { \"name\": \"Lao People's Democratic Republic\", \"code\": \"LA\" },\n { \"name\": \"Latvia\", \"code\": \"LV\" },\n { \"name\": \"Lebanon\", \"code\": \"LB\" },\n { \"name\": \"Lesotho\", \"code\": \"LS\" },\n { \"name\": \"Liberia\", \"code\": \"LR\" },\n { \"name\": \"Libyan Arab Jamahiriya\", \"code\": \"LY\" },\n { \"name\": \"Liechtenstein\", \"code\": \"LI\" },\n { \"name\": \"Lithuania\", \"code\": \"LT\" },\n { \"name\": \"Luxembourg\", \"code\": \"LU\" },\n { \"name\": \"Macao\", \"code\": \"MO\" },\n { \"name\": \"Macedonia, The Former Yugoslav Republic of\", \"code\": \"MK\" },\n { \"name\": \"Madagascar\", \"code\": \"MG\" },\n { \"name\": \"Malawi\", \"code\": \"MW\" },\n { \"name\": \"Malaysia\", \"code\": \"MY\" },\n { \"name\": \"Maldives\", \"code\": \"MV\" },\n { \"name\": \"Mali\", \"code\": \"ML\" },\n { \"name\": \"Malta\", \"code\": \"MT\" },\n { \"name\": \"Marshall Islands\", \"code\": \"MH\" },\n { \"name\": \"Martinique\", \"code\": \"MQ\" },\n { \"name\": \"Mauritania\", \"code\": \"MR\" },\n { \"name\": \"Mauritius\", \"code\": \"MU\" },\n { \"name\": \"Mayotte\", \"code\": \"YT\" },\n { \"name\": \"Mexico\", \"code\": \"MX\" },\n { \"name\": \"Micronesia, Federated States of\", \"code\": \"FM\" },\n { \"name\": \"Moldova, Republic of\", \"code\": \"MD\" },\n { \"name\": \"Monaco\", \"code\": \"MC\" },\n { \"name\": \"Mongolia\", \"code\": \"MN\" },\n { \"name\": \"Montenegro\", \"code\": \"ME\" },\n { \"name\": \"Montserrat\", \"code\": \"MS\" },\n { \"name\": \"Morocco\", \"code\": \"MA\" },\n { \"name\": \"Mozambique\", \"code\": \"MZ\" },\n { \"name\": \"Myanmar\", \"code\": \"MM\" },\n { \"name\": \"Namibia\", \"code\": \"NA\" },\n { \"name\": \"Nauru\", \"code\": \"NR\" },\n { \"name\": \"Nepal\", \"code\": \"NP\" },\n { \"name\": \"Netherlands\", \"code\": \"NL\" },\n { \"name\": \"Netherlands Antilles\", \"code\": \"AN\" },\n { \"name\": \"New Caledonia\", \"code\": \"NC\" },\n { \"name\": \"New Zealand\", \"code\": \"NZ\" },\n { \"name\": \"Nicaragua\", \"code\": \"NI\" },\n { \"name\": \"Niger\", \"code\": \"NE\" },\n { \"name\": \"Nigeria\", \"code\": \"NG\" },\n { \"name\": \"Niue\", \"code\": \"NU\" },\n { \"name\": \"Norfolk Island\", \"code\": \"NF\" },\n { \"name\": \"Northern Mariana Islands\", \"code\": \"MP\" },\n { \"name\": \"Norway\", \"code\": \"NO\" },\n { \"name\": \"Oman\", \"code\": \"OM\" },\n { \"name\": \"Pakistan\", \"code\": \"PK\" },\n { \"name\": \"Palau\", \"code\": \"PW\" },\n { \"name\": \"Palestinian Territory, Occupied\", \"code\": \"PS\" },\n { \"name\": \"Panama\", \"code\": \"PA\" },\n { \"name\": \"Papua New Guinea\", \"code\": \"PG\" },\n { \"name\": \"Paraguay\", \"code\": \"PY\" },\n { \"name\": \"Peru\", \"code\": \"PE\" },\n { \"name\": \"Philippines\", \"code\": \"PH\" },\n { \"name\": \"Pitcairn\", \"code\": \"PN\" },\n { \"name\": \"Poland\", \"code\": \"PL\" },\n { \"name\": \"Portugal\", \"code\": \"PT\" },\n { \"name\": \"Puerto Rico\", \"code\": \"PR\" },\n { \"name\": \"Qatar\", \"code\": \"QA\" },\n { \"name\": \"Reunion\", \"code\": \"RE\" },\n { \"name\": \"Romania\", \"code\": \"RO\" },\n { \"name\": \"Russian Federation\", \"code\": \"RU\" },\n { \"name\": \"Rwanda\", \"code\": \"RW\" },\n { \"name\": \"Saint Helena\", \"code\": \"SH\" },\n { \"name\": \"Saint Kitts and Nevis\", \"code\": \"KN\" },\n { \"name\": \"Saint Lucia\", \"code\": \"LC\" },\n { \"name\": \"Saint Pierre and Miquelon\", \"code\": \"PM\" },\n { \"name\": \"Saint Vincent and the Grenadines\", \"code\": \"VC\" },\n { \"name\": \"Samoa\", \"code\": \"WS\" },\n { \"name\": \"San Marino\", \"code\": \"SM\" },\n { \"name\": \"Sao Tome and Principe\", \"code\": \"ST\" },\n { \"name\": \"Saudi Arabia\", \"code\": \"SA\" },\n { \"name\": \"Senegal\", \"code\": \"SN\" },\n { \"name\": \"Serbia\", \"code\": \"RS\" },\n { \"name\": \"Seychelles\", \"code\": \"SC\" },\n { \"name\": \"Sierra Leone\", \"code\": \"SL\" },\n { \"name\": \"Singapore\", \"code\": \"SG\" },\n { \"name\": \"Slovakia\", \"code\": \"SK\" },\n { \"name\": \"Slovenia\", \"code\": \"SI\" },\n { \"name\": \"Solomon Islands\", \"code\": \"SB\" },\n { \"name\": \"Somalia\", \"code\": \"SO\" },\n { \"name\": \"South Africa\", \"code\": \"ZA\" },\n { \"name\": \"South Georgia and the South Sandwich Islands\", \"code\": \"GS\" },\n { \"name\": \"Spain\", \"code\": \"ES\" },\n { \"name\": \"Sri Lanka\", \"code\": \"LK\" },\n { \"name\": \"Sudan\", \"code\": \"SD\" },\n { \"name\": \"Suriname\", \"code\": \"SR\" },\n { \"name\": \"Svalbard and Jan Mayen\", \"code\": \"SJ\" },\n { \"name\": \"Swaziland\", \"code\": \"SZ\" },\n { \"name\": \"Sweden\", \"code\": \"SE\" },\n { \"name\": \"Switzerland\", \"code\": \"CH\" },\n { \"name\": \"Syrian Arab Republic\", \"code\": \"SY\" },\n { \"name\": \"Taiwan\", \"code\": \"TW\" },\n { \"name\": \"Tajikistan\", \"code\": \"TJ\" },\n { \"name\": \"Tanzania, United Republic of\", \"code\": \"TZ\" },\n { \"name\": \"Thailand\", \"code\": \"TH\" },\n { \"name\": \"Timor-Leste\", \"code\": \"TL\" },\n { \"name\": \"Togo\", \"code\": \"TG\" },\n { \"name\": \"Tokelau\", \"code\": \"TK\" },\n { \"name\": \"Tonga\", \"code\": \"TO\" },\n { \"name\": \"Trinidad and Tobago\", \"code\": \"TT\" },\n { \"name\": \"Tunisia\", \"code\": \"TN\" },\n { \"name\": \"Turkey\", \"code\": \"TR\" },\n { \"name\": \"Turkmenistan\", \"code\": \"TM\" },\n { \"name\": \"Turks and Caicos Islands\", \"code\": \"TC\" },\n { \"name\": \"Tuvalu\", \"code\": \"TV\" },\n { \"name\": \"Uganda\", \"code\": \"UG\" },\n { \"name\": \"Ukraine\", \"code\": \"UA\" },\n { \"name\": \"United Arab Emirates\", \"code\": \"AE\" },\n { \"name\": \"United Kingdom\", \"code\": \"GB\" },\n { \"name\": \"United States\", \"code\": \"US\" },\n { \"name\": \"United States Minor Outlying Islands\", \"code\": \"UM\" },\n { \"name\": \"Uruguay\", \"code\": \"UY\" },\n { \"name\": \"Uzbekistan\", \"code\": \"UZ\" },\n { \"name\": \"Vanuatu\", \"code\": \"VU\" },\n { \"name\": \"Venezuela\", \"code\": \"VE\" },\n { \"name\": \"Viet Nam\", \"code\": \"VN\" },\n { \"name\": \"Virgin Islands, British\", \"code\": \"VG\" },\n { \"name\": \"Virgin Islands, U.S.\", \"code\": \"VI\" },\n { \"name\": \"Wallis and Futuna\", \"code\": \"WF\" },\n { \"name\": \"Western Sahara\", \"code\": \"EH\" },\n { \"name\": \"Yemen\", \"code\": \"YE\" },\n { \"name\": \"Zambia\", \"code\": \"ZM\" },\n { \"name\": \"Zimbabwe\", \"code\": \"ZW\" }\n ];\n clickedCard:boolean = false;\n customer:any;\n paymentMethods = [];\n loading_payment:boolean = false;\n loading_autorenew:boolean = false;\n loading_service:boolean = false;\n billingOption:String = \"\";\n billingTitle:String = \"Billing Address\"\n subscriptionResult:any;\n subscription:any;\n subscriptions:any = [];\n currentPlan: any;\n subscriptionPlans:any = [];\n braintreeInstance:any;\n paymentInfo:String = \"\"; \n payTextBtn: String = \"Cancel\";\n billingList = [];\n billingHistory:any;\n formChangePassword = \"need-validation\";\n profileOption:any;\n couonCode:String = \"\";\n\n constructor(\n private formBuilder: FormBuilder, \n private uploadService:UploadService, \n private authService:AuthenticationService, \n private accountService:AccountService,\n private notiSerivce:NotificationService, \n private paymentService: PaymentService,\n private route: ActivatedRoute,\n private router: Router,\n private datePipe: DatePipe,\n private modalService: NgbModal) {\n\n let cache = localStorage.getItem('currentUser');\n this.currentUser = JSON.parse(cache) as Developer;\n if(this.currentUser.avatar) this.currentUser.avatarUrl = this.currentUser.avatar.urlSmall;\n this.authService.user$.subscribe(user => {\n this.currentUser = user;\n if(this.currentUser && this.currentUser.avatar){\n this.currentUser.avatarUrl = this.currentUser.avatar.urlSmall;\n } \n });\n\n \n this.profileOption = this.route.snapshot.paramMap; \n \n if(this.profileOption.get('option') == 'upgrade'){ \n let url: string = this.router.url.substring(0, this.router.url.indexOf(\";\"));\n this.router.navigateByUrl(url);\n }\n }\n\n isFieldValid(form: FormGroup, field: string) {\n return !form.get(field).valid && form.get(field).touched;\n }\n\n displayFieldCss(form: FormGroup, field: string) {\n return {\n 'has-error': this.isFieldValid(form, field),\n 'has-feedback': this.isFieldValid(form, field)\n };\n }\n ngOnInit() {\n this.subscription = null;\n let that = this;\n const elemMainPanel = document.querySelector('.main-container');\n\n this.profileForm = this.formBuilder.group({\n // To add a validator, we must first convert the string value into an array. The first item in the array is the default value if any, then the next item in the array is the validator. Here we are adding a required validator meaning that the fullName attribute must have a value in it.\n company: [null, Validators.required],\n firstName: [null, Validators.required],\n lastName: [null, Validators.required],\n email: [null, [Validators.required, Validators.pattern(\"^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$\")]],\n });\n\n this.profileForm.setValue({firstName: this.currentUser.firstName || '', lastName: this.currentUser.lastName || '',company:this.currentUser.company || '', email: this.currentUser.email});\n \n \n $('.card-wizard form').validate({\n rules: {\n firstName: {\n required: true,\n minlength: 3\n },\n lastName: {\n required: true,\n minlength: 3\n },\n company: {\n required: true,\n minlength: 3\n } \n },\n\n highlight: function(element) {\n $(element).closest('.form-group').removeClass('has-success').addClass('has-danger');\n },\n success: function(element) {\n $(element).closest('.form-group').removeClass('has-danger').addClass('has-success');\n },\n errorPlacement : function(error, element) {\n $(element).append(error);\n }\n });\n\n // Wizard Initialization\n $('.card-wizard').bootstrapWizard({\n 'tabClass': 'nav nav-pills', \n onInit: function(tab: any, navigation: any, index: any){ \n\n // check number of tabs and fill the entire row\n let $total = navigation.find('li').length;\n let $wizard = navigation.closest('.card-wizard');\n \n let $first_li = navigation.find('li:first-child a').html();\n let $moving_div = $('
' + $first_li + '
');\n $('.card-wizard .wizard-navigation').append($moving_div);\n\n $total = $wizard.find('.nav li').length;\n let $li_width = 100/$total;\n\n let total_steps = $wizard.find('.nav li').length;\n let move_distance = $wizard.width() / total_steps;\n let index_temp = index;\n let vertical_level = 0;\n\n let mobile_device = $(document).width() < 600 && $total > 3;\n\n if(mobile_device){\n move_distance = $wizard.width() / 2;\n index_temp = index % 2;\n $li_width = 50;\n }\n\n $wizard.find('.nav li').css('width',$li_width + '%');\n\n let step_width = move_distance;\n move_distance = move_distance * index_temp;\n\n let $current = index + 1;\n\n if($current == 1 || (mobile_device == true && (index % 2 == 0) )){\n move_distance -= 8;\n } else if($current == total_steps || (mobile_device == true && (index % 2 == 1))){\n move_distance += 8;\n }\n\n if(mobile_device){\n let x: any = index / 2;\n vertical_level = parseInt(x);\n vertical_level = vertical_level * 38;\n }\n\n $wizard.find('.moving-tab').css('width', step_width);\n $('.moving-tab').css({\n 'transform':'translate3d(' + move_distance + 'px, ' + vertical_level + 'px, 0)',\n 'transition': 'all 0.5s cubic-bezier(0.29, 1.42, 0.79, 1)'\n\n });\n $('.moving-tab').css('transition','transform 0s');\n },\n\n onTabClick : function(tab: any, navigation: any, index: any){ \n return true;\n \n },\n\n onTabShow: function(tab: any, navigation: any, index: any) {\n let $total = navigation.find('li').length;\n let $current = index + 1; \n \n elemMainPanel.scrollTop = 0;\n const $wizard = navigation.closest('.card-wizard'); \n const button_text = navigation.find('li:nth-child(' + $current + ') a').html(); \n\n setTimeout(function(){\n $('.moving-tab').text(button_text);\n }, 150);\n\n const checkbox = $('.footer-checkbox');\n\n if ( index !== 0 ) {\n $(checkbox).css({\n 'opacity':'0',\n 'visibility':'hidden',\n 'position':'absolute'\n });\n } else {\n $(checkbox).css({\n 'opacity':'1',\n 'visibility':'visible'\n });\n }\n $total = $wizard.find('.nav li').length;\n let $li_width = 100/$total;\n\n let total_steps = $wizard.find('.nav li').length;\n let move_distance = $wizard.width() / total_steps;\n let index_temp = index;\n let vertical_level = 0;\n\n let mobile_device = $(document).width() < 600 && $total > 3;\n\n if(mobile_device){\n move_distance = $wizard.width() / 2;\n index_temp = index % 2;\n $li_width = 50;\n }\n\n $wizard.find('.nav li').css('width',$li_width + '%');\n\n let step_width = move_distance;\n move_distance = move_distance * index_temp;\n\n $current = index + 1;\n\n if($current == 1 || (mobile_device == true && (index % 2 == 0) )){\n move_distance -= 8;\n } else if($current == total_steps || (mobile_device == true && (index % 2 == 1))){\n move_distance += 8;\n }\n\n if(mobile_device){\n let x: any = index / 2;\n vertical_level = parseInt(x);\n vertical_level = vertical_level * 38;\n }\n\n $wizard.find('.moving-tab').css('width', step_width);\n $('.moving-tab').css({\n 'transform':'translate3d(' + move_distance + 'px, ' + vertical_level + 'px, 0)',\n 'transition': 'all 0.5s cubic-bezier(0.29, 1.42, 0.79, 1)'\n }); \n }\n });\n\n\n // Prepare the preview for profile picture\n $('#wizard-picture').change(function(){\n const input = $(this);\n\n if (input[0].files && input[0].files[0]) {\n const reader = new FileReader();\n\n reader.onload = function (e: any) {\n $('#wizardPicturePreview').attr('src', e.target.result).fadeIn('slow');\n };\n reader.readAsDataURL(input[0].files[0]);\n \n that.uploadAvatar.file = input[0].files[0];\n \n } \n }); \n \n $('.set-full-height').css('height', 'auto');\n \n this.paymentService.getPlans().then(items => { \n \n let plans = items as any;\n this.subscriptionPlans = plans; \n\n if(this.profileOption.get('plan') == 'developer-program' || this.profileOption.get('option') == 'upgrade'){\n this.clickAccountIcon(this.billingModal, 'subscription');\n } \n\n });\n\n this.subscription = {};\n this.customer = {};\n\n this.loading_payment = true;\n this.paymentService.getSubscriptions().then(data => {\n let item = data as any;\n \n that.loading_payment = false;\n \n for (let index = 0; index < item.plans.length; index++) {\n let plan = item.plans[index];\n if(plan.nextBillingDate) plan.nextBillingDate = this.datePipe.transform(new Date(plan.nextBillingDate), 'MMMM d, y');\n that.subscriptions.push(plan);\n }\n that.customer = item.customer; \n\n \n \n }).catch( err => {\n that.loading_payment = false;\n }); \n \n }\n\n ngOnChanges(changes: SimpleChanges) {\n const input = $(this);\n\n if (input[0].files && input[0].files[0]) {\n const reader: any = new FileReader();\n\n reader.onload = function (e: any) {\n $('#wizardPicturePreview').attr('src', e.target.result).fadeIn('slow');\n };\n reader.readAsDataURL(input[0].files[0]);\n }\n }\n\n \n ngAfterViewInit() {\n\n \n let that = this;\n $( window ).resize( () => { $('.card-wizard').each(function(){\n setTimeout(() => {\n const $wizard = $(this);\n let index = $wizard.bootstrapWizard('currentIndex'); \n\n let $total = $wizard.find('.nav li').length;\n let $li_width = 100/$total;\n\n let total_steps = $wizard.find('.nav li').length;\n let move_distance = $wizard.width() / total_steps;\n let index_temp = index;\n let vertical_level = 0;\n\n let mobile_device = $(document).width() < 600 && $total > 3;\n if(mobile_device){\n move_distance = $wizard.width() / 2;\n index_temp = index % 2;\n $li_width = 50;\n }\n\n $wizard.find('.nav li').css('width',$li_width + '%');\n\n let step_width = move_distance;\n move_distance = move_distance * index_temp;\n\n let $current = index + 1;\n\n if($current == 1 || (mobile_device == true && (index % 2 == 0) )){\n move_distance -= 8;\n } else if($current == total_steps || (mobile_device == true && (index % 2 == 1))){\n move_distance += 8;\n }\n\n if(mobile_device){\n let x: any = index / 2;\n vertical_level = parseInt(x);\n vertical_level = vertical_level * 38;\n }\n\n $wizard.find('.moving-tab').css('width', step_width);\n $('.moving-tab').css({\n 'transform':'translate3d(' + move_distance + 'px, ' + vertical_level + 'px, 0)',\n 'transition': 'all 0.5s cubic-bezier(0.29, 1.42, 0.79, 1)'\n });\n\n $('.moving-tab').css({\n 'transition': 'transform 0s'\n });\n },500)\n\n });});\n\n }\n\n clickUpdateProfile(){ \n\n if(this.uploadAvatar.progress) return;\n\n if(this.uploadAvatar.file){\n this.uploadAvatar.progress = true;\n this.uploadService.upload(this.uploadAvatar.file).then(res=> {\n this.uploadAvatar.progress = false;\n this.uploadAvatar.file = null;\n let image = res as any\n swal({\n title: \"Your uploaded picture\",\n imageUrl: image.urlSmall, \n imageClass:'img-responsive rounded', \n animation: false,\n buttonsStyling: false,\n confirmButtonClass: \"btn btn-success\" \n })\n\n \n\n }).catch(err => {\n this.uploadAvatar.progress = false;\n });\n }\n\n let fistUpdated = false; \n if (!this.currentUser.firstName || !this.profileForm.value.lastName) fistUpdated = true\n\n if(this.profileForm.value.firstName != this.currentUser.firstName || this.profileForm.value.lastName != this.currentUser.lastName || this.profileForm.value.company != this.currentUser.company ){\n this.accountService.updateProfile(this.profileForm.value).then(res=> {\n swal({\n title: \"Success!\",\n text: fistUpdated ? \"Your profile is updated. Please go to Sandbox or Hosts\" : \"Your profile is updated.\",\n buttonsStyling: false,\n confirmButtonClass: \"btn btn-success\",\n type: \"success\"\n }).catch(swal.noop)\n })\n\n } \n }\n\n\n resetPaymentView(){\n this.billingTitle = \"\"; \n //this.currentPlan = null;\n this.loading_payment = false;\n }\n\n clickAccountIcon(content, type){\n \n if(this.currentUser.firstName == \"\" || this.currentUser.lastName == \"\"){\n\n swal({\n type: 'error',\n title: 'Whoop! Incomplete Profile.',\n text: \"Please complete your profile information before upgrade your account.\",\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n }).catch(swal.noop) \n\n \n return;\n }\n\n\n this.resetPaymentView();\n\n this.billingOption = type; \n\n if(content){\n this.modalService.open(content, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => {\n \n });\n }\n \n switch (type) {\n case 'address':\n this.billingTitle = \"Billing Address\"; \n this.address = this.customer.addresses[0] || { countryCodeAlpha2:'US' };\n if(this.customer.addresses.length == 1) this.billingTitle = \"Update Billing Address\"; \n \n break;\n \n case 'card':\n this.clickedCard = true;\n this.billingTitle = \"Payment Method\";\n this.openPayment();\n break;\n case 'history':\n this.billingTitle = \"Billing History\";\n this.getBillHostory();\n break;\n case 'subscription':\n this.billingTitle = \"Select a subscription plan\"; \n break;\n } \n\n \n }\n\n\n addAddress(){ \n\n if(this.address.firstName && this.address.lastName && this.address.locality && this.address.region && this.address.postalCode && this.address.streetAddress && this.address.countryCodeAlpha2){\n \n this.addingAddress = true;\n this.paymentService.addAddress(this.address).then(res => {\n this.addingAddress = false;\n \n if(this.clickedCard || this.currentPlan) this.addNewPayment();\n else{\n let msg = `Your address has been added.`;\n if(this.customer.addresses[0]) msg = `Your address has been updated.`;\n\n swal({\n title: \"Success!\",\n text: msg,\n buttonsStyling: false,\n confirmButtonClass: \"btn btn-success\",\n type: \"success\"\n }).catch(swal.noop)\n }\n\n this.customer.addresses[0] = res;\n \n }).catch(err => {\n this.addingAddress = false;\n this.addressFormInfo = 'Whoop! Something went wrong.';\n });\n }\n else{\n this.formAddressClass = \"need-validation was-validated\";\n this.addressFormInfo = 'Please enter all required fields.';\n }\n }\n\n \n makeDefaultCard(item){\n let that = this;\n item.makingDefault = true;\n\n this.paymentService.makeDefault(item).then(res => {\n \n item.makingDefault = false;\n that.paymentMethods.forEach(card => {\n if(card.token == item.token) card.default = true;\n else card.default = false;\n \n });\n }, error => { \n item.makingDefault = false;\n //item.error = error;\n });\n }\n\n\n removeCard(item){\n let that = this;\n item.removing = true;\n this.paymentService.removeCard(item).then(res => {\n that.paymentMethods = that.paymentMethods.filter(card => card.token != item.token);\n \n that.customer.paymentMethods = that.paymentMethods;\n }, error => {\n item.removing = false;\n item.error = error;\n });\n }\n\n\n openPayment() {\n this.loading_payment = true;\n this.paymentInfo = \"\";\n \n this.paymentMethods = []; \n\n if(this.customer && this.customer.addresses && this.customer.addresses.length == 0){\n this.loading_payment = false;\n this.clickAccountIcon(null, 'address');\n } \n else if(!this.customer.paymentMethods || this.customer.paymentMethods.length == 0) this.addPayment('card');\n else{ \n this.paymentMethods = this.customer.paymentMethods; \n this.loading_payment = false;\n } \n \n \n }\n \n switchAutoRenewSubscription(value, item){\n item.autoRenew = value;\n item.loading_autorenew = true;\n this.paymentService.updateAutoRenewSubscription(item).then(res => {\n item.loading_autorenew = false;\n }).catch(err => {\n item.loading_autorenew = false;\n item.autoRenew = !value;\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong.',\n text: err.error.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n }).catch(swal.noop) \n\n });\n\n }\n\n addPayment(option){\n \n let that = this;\n this.loading_payment = true;\n this.billingOption = option; \n this.billingTitle = \"Payment Method\"\n setTimeout(function() { // set timeout to wait for div dropin-container is fully created \n //let tokenizationKeys = \"sandbox_d5j3zcpf_f3gwz3xzcfy37xnz\";\n let environment = that.accountService.getEnvironment();\n braintree.dropin.create({\n vaultManager: true,\n authorization: environment.tokenizationKeys, // get from Braintree Control Panel > API > Generate New Tokenization Key\n container: '#dropin-container',\n card: { \n makeDefault:true,\n //verifyCard:true,\n cardholderName: {\n required: true\n } \n }\n }, function (createErr, instance) { \n console.log('dropin.create createErr ', createErr);\n that.loading_payment = false;\n if(instance){ \n that.braintreeInstance = instance;\n }\n else{\n that.modalService.dismissAll();\n that.paymentInfo = \"Whoop! something went wrong.\";\n }\n });\n }, 1000);\n }\n\n savePayment(){\n let that = this;\n\n if(!this.braintreeInstance) return;\n\n this.braintreeInstance.requestPaymentMethod(function (requestPaymentMethodErr, payload) {\n that.loading_payment = true; \n \n if(requestPaymentMethodErr){\n that.loading_payment = false;\n return;\n } \n\n that.braintreeInstance.teardown(function (teardownErr) { });\n\n that.paymentService.addPaymentMethod(payload).then(res => {\n that.loading_payment = false;\n \n let result = res as any;\n if(result.success){ \n that.paymentMethods = [result.paymentMethod];\n that.customer.paymentMethods = that.paymentMethods;\n that.billingOption = 'card';\n }\n\n if(that.currentPlan) that.subscribePlan(that.currentPlan); \n \n }).catch(err => {\n that.loading_payment = false;\n that.billingOption = 'card';\n that.addNewPayment();\n swal({\n type: 'error',\n title: 'Whoop! Something went wrong with your card.',\n text: err.error.message,\n confirmButtonClass: 'btn btn-warning',\n buttonsStyling: false\n }).catch(swal.noop) \n });\n });\n }\n\n subscribePlan(plan){\n this.loading_payment = true;\n\n if(!this.customer.paymentMethods) return;\n\n let that = this;\n let payToken = this.customer.paymentMethods[0].token; \n this.paymentService.subscribe({developerPlanId:plan.developerPlanId, token:payToken, coupon: this.couonCode}).then(res => {\n that.couonCode = \"\";\n that.loading_payment = false;\n that.currentPlan = null;\n that.currentUser.type = \"paid\";\n that.currentUser.status = \"active\";\n localStorage.setItem('currentUser', JSON.stringify(that.currentUser));\n \n\n this.subscription = res;\n \n swal({\n title: \"Success! Thank you for your subscription with Cosync.\",\n text: `You have successfuly subscribed ${that.subscription.plan.name}. Your subscription will renew at ${that.subscription.nextBillingDate}.`,\n buttonsStyling: false,\n confirmButtonClass: \"btn btn-success\",\n type: \"success\"\n }).catch(swal.noop) \n\n that.subscriptions = [];\n that.paymentService.getSubscriptions().then(data => {\n let item = data as any; \n for (let index = 0; index < item.plans.length; index++) {\n let plan = item.plans[index];\n if(plan.nextBillingDate) plan.nextBillingDate = that.datePipe.transform(new Date(plan.nextBillingDate), 'MMMM d, y');\n that.subscriptions.push(plan);\n }\n that.customer = item.customer; \n\n that.currentUser.subscriptions = that.subscriptions;\n localStorage.setItem('currentUser', JSON.stringify(that.currentUser));\n\n that.notiSerivce.success(`subscription is successed!`); \n\n let appId = that.profileOption.get('appId');\n if(appId) that.router.navigate([`/app/${appId}`]);\n\n }).catch(err => {\n swal({\n title: \"Refresh your account.\",\n text: `Please log out and login again to refresh your account status.`,\n buttonsStyling: false,\n confirmButtonClass: \"btn btn-success\",\n type: \"success\"\n }).catch(swal.noop) \n }); \n\n that.modalService.dismissAll();\n\n }).catch(err => { \n this.loading_payment = false; \n this.billingOption = 'subscriptionResult';\n this.subscriptionResult = {error:err.error};\n this.subscriptionResult.planName = plan.name;\n this.subscriptionResult.status = false;\n this.currentPlan = null;\n });\n }\n\n closeBillingModal(){\n this.modalService.dismissAll(); \n this.billingOption = ''; \n this.currentPlan = null;\n this.loading_payment = false; \n }\n\n addNewPayment(){ \n \n this.addPayment('addNewCard');\n this.clickedCard = false;\n }\n\n showPlans(){\n this.billingOption = \"subscription\";\n }\n\n repaySubcription(){ \n\n this.clickAccountIcon(this.billingModal, 'subscription');\n }\n\n\n getBillHostory(){\n this.billingList = [];\n this.billingHistory = [];\n this.loading_payment = true;\n this.paymentService.getBillingHistory().then(res => {\n this.loading_payment = false;\n this.billingHistory = res; \n\n for (let index = 0; index < this.billingHistory.length; index++) {\n const element = this.billingHistory[index];\n element.startDate = this.datePipe.transform(new Date(element.createdAt), 'MMM d, y');\n if(index < 4) this.billingList.push(element);\n }\n });\n\n }\n\n loadMoreHistory(){\n let count = 0;\n for (let index = this.billingList.length - 1; index < this.billingHistory.length; index++) {\n const element = this.billingHistory[index]; \n if(count < 4) this.billingList.push(element);\n count++;\n }\n }\n\n downloadReciept(item){\n if(item.downloading) return;\n this.paymentService.getBillingPDF(item).then(res => {\n item.downloading = false;\n }, err => {});\n item.downloading = true;\n }\n\n\n showCouponBox(plan:any){\n let that = this;\n swal({\n title: 'Enter coupon code if you have once.',\n input: 'text',\n showCloseButton: true, \n confirmButtonClass: 'btn btn-success', \n buttonsStyling: false,\n confirmButtonText: \"Next\"\n }).then(function(result) {\n \n if(result.value){\n that.accountService.getCoupon(result.value).then(res => {\n that.couonCode = result.value;\n that.selectPlan(plan) \n }).catch(err => {\n swal({\n title: 'Invalid Coupon',\n text: 'Please enter a valid coupon',\n type: 'error',\n confirmButtonClass: \"btn btn-info\",\n buttonsStyling: false\n }).catch(swal.noop) \n })\n }\n else that.selectPlan(plan) \n });\n\n }\n\n selectPlan(plan:any) {\n\n this.currentPlan = plan; \n if(this.customer.paymentMethods && this.customer.paymentMethods.length == 0) this.openPayment();\n else{\n \n swal({\n title: `Confirm Your Subscription`,\n text: `You will subscribe to \"${plan.name}\"`,\n type: 'warning',\n showCancelButton: true,\n confirmButtonText: 'Yes, do it!',\n cancelButtonText: 'Cancel',\n confirmButtonClass: \"btn btn-success\",\n cancelButtonClass: \"btn btn-danger\",\n buttonsStyling: false, \n focusCancel: true\n \n }).then((result) => {\n if (result.value) this.subscribePlan(this.currentPlan); \n else this.modalService.dismissAll();\n })\n\n } \n \n }\n\n showModal(modal){\n \n this.modalService.open(modal, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => { \n \n }); \n } \n \n\n changeAccountPassword(currentPwd, newPwd, confPwd){\n\n if(currentPwd == '' || newPwd == '' || confPwd == '') this.formChangePassword = \"need-validation was-validated\";\n else if (newPwd != confPwd){\n swal({\n title: 'Invalid Password',\n text: 'Password and Confirm Password is not match',\n type: 'error',\n confirmButtonClass: \"btn btn-info\",\n buttonsStyling: false\n }).catch(swal.noop) \n }\n else if (newPwd.length < 4 || confPwd.length < 4){\n swal({\n title: 'Invalid Password',\n text: 'Password and Confirm Password must be more than 3 charactors',\n type: 'error',\n confirmButtonClass: \"btn btn-info\",\n buttonsStyling: false\n }).catch(swal.noop) \n }\n else if (!this.authService.unlock(currentPwd)){\n swal({\n title: 'Invalid Password',\n text: 'Invalid Current Password',\n type: 'error',\n confirmButtonClass: \"btn btn-info\",\n buttonsStyling: false\n }).catch(swal.noop) \n \n }\n else{\n this.accountService.updateProfilePassword(newPwd).then(res => {\n this.modalService.dismissAll();\n \n swal({\n title: \"Success!\",\n text: `Your password has been updated.`,\n buttonsStyling: false,\n confirmButtonClass: \"btn btn-success\",\n type: \"success\",\n timer: 2000\n }).catch(swal.noop) \n\n }).catch(err => {\n swal({\n title: 'Whoop! Something went wrong!',\n text: 'Invalid Data',\n type: 'error',\n confirmButtonClass: \"btn btn-info\",\n buttonsStyling: false,\n timer: 2000\n }).catch(swal.noop)\n });\n }\n }\n\n\n onkeyUpChangePasswordEvent(event, currentPwd, newPwd, confPwd){\n if (event.key === \"Enter\") { \n this.changeAccountPassword(currentPwd, newPwd, confPwd);\n }\n }\n \n switch2factor(value, content){\n this.currentUser.twoFactorVerification = value; \n\n if(value){ \n\n this.getProfileTwoFactor(null); \n\n this.modalService.open(content, {backdrop: 'static', ariaLabelledBy: 'modal-basic-title'}).result.then((result) => {\n \n }, (reason) => {\n\n });\n } \n else this.updateProfileTwoFactor('off');\n }\n\n updateProfileTwoFactor(status){\n this.loading_service = true;\n\n this.accountService.updateProfileTwoFactor(this.currentUser, status).then(res => {\n \n this.loading_service = false;\n this.twoFactorText = 'Your Two Factor Verification has been saved.';\n this.modalService.dismissAll();\n\n }).catch(err => {\n this.currentUser.twoFactorVerification = !this.currentUser.twoFactorVerification;\n this.loading_service = false;\n this.twoFactorText = \"Whoop! Something went wrong.\";\n })\n }\n\n getProfileTwoFactor(status){\n this.loading_service = true;\n this.accountService.getProfileTwoFactor(status).then(res => {\n if(status) this.twoFactorText = 'Scan the QR code or enter the secret key in Google Authenticator. Your previous code will not work anymore.';\n else this.twoFactorText = 'Scan the QR code or enter the secret key in Google Authenticator';\n this.twoFactorAuth = res;\n this.loading_service = false;\n if(this.twoFactorAuth.googleSecretKey) this.currentUser.googleSecretKey = this.twoFactorAuth.googleSecretKey;\n }).catch(err => {\n this.currentUser.twoFactorVerification = !this.currentUser.twoFactorVerification;\n this.loading_service = false;\n this.twoFactorText = \"Whoop! Something went wrong.\";\n })\n }\n\n generateNewFactor(){ \n this.getProfileTwoFactor('new'); \n }\n\n\n\n}\n","export default \".form-group {\\n margin-top: 0px !important;\\n}\\n\\nvideo {\\n position: absolute;\\n top: 38%;\\n left: 50%;\\n min-width: 100%;\\n min-height: 100%;\\n width: auto;\\n height: auto;\\n z-index: 0;\\n -webkit-transform: translateX(-50%) translateY(-50%);\\n transform: translateX(-50%) translateY(-50%);\\n}\\n\\n.h1,\\n.h2,\\n.h3,\\n.h4,\\nbody,\\nlabel,\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n font-family: Highway Gothic, Helvetica, Arial, sans-serif !important;\\n font-weight: 300;\\n line-height: 1.5em;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixTQUFTO0VBQ1QsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixXQUFXO0VBQ1gsWUFBWTtFQUNaLFVBQVU7RUFHVixvREFBb0Q7RUFDcEQsNENBQTRDO0FBQzlDOztBQUVBOzs7Ozs7Ozs7Ozs7RUFZRSxvRUFBb0U7RUFDcEUsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBQUNwQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvcmVnaXN0ZXIvcmVnaXN0ZXIuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbnZpZGVvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDM4JTtcbiAgbGVmdDogNTAlO1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIHotaW5kZXg6IDA7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi5oMSxcbi5oMixcbi5oMyxcbi5oNCxcbmJvZHksXG5sYWJlbCxcbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGZvbnQtZmFtaWx5OiBIaWdod2F5IEdvdGhpYywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMS41ZW07XG59XG4iXX0= */\"","import { Component, OnInit, OnDestroy } from '@angular/core'; \nimport { AuthenticationService } from 'src/app/services/authentication.service';\nimport swal from 'sweetalert2';\nimport {FormControl, FormGroupDirective, NgForm, Validators, FormGroup, FormBuilder} from '@angular/forms';\nimport {ErrorStateMatcher} from '@angular/material/core';\n\nexport class MyErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n const isSubmitted = form && form.submitted;\n return !!(control && control.invalid && (control.dirty || control.touched || isSubmitted));\n }\n}\n\n@Component({\n selector: 'app-register',\n templateUrl: './register.component.html',\n styleUrls: ['./register.component.css']\n})\nexport class RegisterComponent implements OnInit, OnDestroy {\n loading:boolean = false;\n isSuccess:boolean = false;\n isAcceptTerm:boolean = false;\n registerData:any = {};\n formClass:string = \"need-validation\";\n validateInfo:string = '';\n matcher = new MyErrorStateMatcher();\n validEmailRegister: boolean = false;\n\n emailFormControl = new FormControl('', [\n Validators.required,\n Validators.email,\n ]);\n\n registerForm : FormGroup;\n\n constructor(private authService:AuthenticationService, private formBuilder: FormBuilder) {\n\n }\n\n\n validateAllFormFields(formGroup: FormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n if (control instanceof FormControl) {\n control.markAsTouched({ onlySelf: true });\n } else if (control instanceof FormGroup) {\n this.validateAllFormFields(control);\n }\n });\n }\n\n\n emailValidationRegister(e){\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n if (re.test(String(e).toLowerCase())) {\n this.validEmailRegister = true;\n } else {\n this.validEmailRegister = false;\n }\n \n }\n\n ngOnInit() { \n const body = document.getElementsByTagName('body')[0];\n body.classList.add('register-page');\n }\n\n validatePassword(){\n return true;\n }\n\n ngOnDestroy(){\n const body = document.getElementsByTagName('body')[0];\n body.classList.remove('register-page');\n }\n\n\n register(){ \n if(this.loading) return;\n\n this.formClass = \"need-validation was-validated\"; \n \n if( !this.registerData.email || !this.registerData.password ){\n this.validateInfo = \"Please enter all required fields.\";\n return;\n\n } \n\n if(!this.isAcceptTerm){\n this.validateInfo = \"Please accept Term and Conditions\";\n return;\n }\n this.validateInfo = \"\";\n this.loading = true;\n \n this.authService.register(this.registerData).then(result => {\n\n let res = result as any; \n this.isSuccess = true;\n this.registerData.uid = res.uid;\n this.loading = false;\n \n swal({\n title: \"Success!\",\n text: `Please confirm your email.(${res.email})`,\n buttonsStyling: false,\n confirmButtonClass: \"btn btn-success\",\n type: \"success\"\n }).catch(swal.noop)\n\n }).catch(reason => {\n \n this.loading = false;\n swal({\n title: reason.error ? reason.error.status : \"Fails\",\n text: reason.error ? reason.error.message : \"Invalid Data\",\n type: 'error',\n confirmButtonClass: \"btn btn-info\",\n buttonsStyling: false\n }).catch(swal.noop)\n \n });\n }\n\n resend(){\n this.authService.resendActivate(this.registerData.uid).then(result => {\n this.isSuccess = true;\n swal({\n title: \"Success!\",\n text: \"Please confirm your email.\",\n buttonsStyling: false,\n confirmButtonClass: \"btn btn-success\",\n type: \"success\"\n }).catch(swal.noop)\n\n }).catch(reason => {\n swal({\n title: reason.error.status,\n text: reason.error.message,\n type: 'error',\n confirmButtonClass: \"btn btn-info\",\n buttonsStyling: false\n }).catch(swal.noop)\n });\n }\n\n onkeydown(evt){\n if (evt.key === \"Enter\") { \n this.register();\n }\n }\n\n\n acceptTermCondition(value){\n this.isAcceptTerm = value;\n }\n\n}\n","export default \".text-content{\\n padding-top: 70px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy90ZXJtLWNvbmRpdGlvbi90ZXJtLWNvbmRpdGlvbi5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksaUJBQWlCO0FBQ3JCIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy90ZXJtLWNvbmRpdGlvbi90ZXJtLWNvbmRpdGlvbi5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLnRleHQtY29udGVudHtcbiAgICBwYWRkaW5nLXRvcDogNzBweDtcbn0iXX0= */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-term-condition',\n templateUrl: './term-condition.component.html',\n styleUrls: ['./term-condition.component.css']\n})\nexport class TermConditionComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvdW5kZXItY29uc3RydWN0aW9uL3VuZGVyLWNvbnN0cnVjdGlvbi5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit, OnDestroy } from '@angular/core';\n\n@Component({\n selector: 'app-under-construction',\n templateUrl: './under-construction.component.html',\n styleUrls: ['./under-construction.component.css']\n})\nexport class UnderConstructionComponent implements OnInit, OnDestroy {\n \n constructor() { }\n\n ngOnInit() {\n \n }\n\n\n ngOnDestroy(){\n \n }\n\n}\n","export class Admin {\n password: string;\n adminToken: string; \n \n}\n","export class App {\n\n appId: string;\n name: string;\n developerUid: string; \n status: string; \n jwtEnabled: Boolean;\n appPublicKey: string;\n appToken: string;\n appSecret?: string;\n rawPublicKey: string; \n type: string;\n handle: string;\n invitationEnabled: Boolean;\n signupEnabled: Boolean; \n anonymousLoginEnabled?: Boolean;\n userNamesEnabled?:Boolean;\n twoFactorVerification?: string;\n TWILIOAccountSid?: string;\n TWILIOToken?: string;\n TWILIOPhoneNumber?: string;\n googleAppName?: string;\n maxUsers?: Number;\n maxLoginAttempts?: Number;\n passwordFilter: Boolean;\n passwordMinLength?: Number;\n passwordMinUpper?: Number;\n passwordMinLower?: Number;\n passwordMinDigit?: Number;\n passwordMinSpecial?: Number;\n userJWTExpiration?:Number;\n realmAppId?: String;\n googleLoginEnabled?: Boolean;\n googleClientId?: String;\n appleLoginEnabled?: Boolean;\n appleBundleId?: String;\n signupFlow?: String; \n appData?: Object;\n metaDataInvite?: Array;\n metaData?: Array;\n locales?:Array;\n metaDataEmail?: Boolean;\n lastModified?:String;\n emailExtensionAPIKey?:String;\n emailExtensionSenderEmail?: String;\n emailExtension?:Boolean;\n createdAt: String;\n updatedAt: String;\n}\n\n ","export class Developer {\n uid: string;\n email: string;\n password: string;\n firstName?: string; \n lastName?: string; \n accessToken?: string; \n company?:string;\n status:string;\n sessionCreatedAt?: Date;\n lock?:boolean;\n type:string;\n avatar?:any;\n twoFactorVerification:boolean;\n googleSecretKey?:string;\n lastStat?:string;\n lastLogin: String;\n tester: Boolean;\n subscriptions?: any = [];\n}\n","export class Host {\n hostId: string;\n name: string;\n developerUid: string; \n status: string; \n serverToken: string;\n serverApiUrl?: string; \n lastModified?:String;\n createdAt: String;\n updatedAt: String;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { environment } from './../../environments/environment';\nimport { AuthenticationService } from './authentication.service';\nimport { Md5 } from 'ts-md5';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AccountService {\n\n headers: any = null;\n\n constructor(private http: HttpClient, private authService:AuthenticationService) {\n if(this.authService.user){\n const headers = new HttpHeaders({\n 'access-token': this.authService.user.accessToken,\n });\n this.headers = headers;\n } \n\n this.authService.user$.subscribe(user => {\n let headers;\n if(user){\n headers = new HttpHeaders({\n 'access-token': user.accessToken\n });\n } \n this.headers = headers;\n });\n\n }\n\n getEnvironment(){\n return environment;\n }\n\n getProfileTwoFactor(status){\n return new Promise((resolve, reject) => {\n \n let that = this;\n this.http.get(`${environment.restful}/api/account/twoFactor?status=${status}`, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n }\n\n \n updateProfileTwoFactor(data, status){\n return new Promise((resolve, reject) => {\n \n let that = this;\n this.http.post(`${environment.restful}/api/account/twoFactor`, {twoFactorVerification:data.twoFactorVerification, googleSecretKey: data.googleSecretKey, status:status}, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n \n let update = {\n googleSecretKey: data.googleSecretKey,\n twoFactorVerification: data.twoFactorVerification\n }; \n that.authService.updateUser(update);\n resolve(res);\n },\n err => { \n reject(err);\n });\n });\n }\n \n updateProfile(data){\n return new Promise((resolve, reject) => {\n delete data.email;\n let that = this;\n this.http.post(`${environment.restful}/api/account/update`, data, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n that.authService.updateUser(data);\n resolve(res);\n },\n err => { \n reject(err);\n });\n });\n }\n\n\n updateProfilePassword(password){\n return new Promise((resolve, reject) => {\n let data = {\n password: Md5.hashStr(password)\n };\n let that = this;\n this.http.post(`${environment.restful}/api/account/updatePassword`, data, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n that.authService.updateUser(data);\n resolve(res);\n },\n err => { \n reject(err);\n });\n });\n }\n\n\n\n getCoupon(couponCode){\n return new Promise((resolve, reject) => { \n \n this.http.get(`${environment.restful}/api/account/getCoupon?couponCode=${couponCode}`, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n\n });\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { environment } from './../../environments/environment';\nimport { AuthenticationService } from './authentication.service';\nimport { Md5 } from 'ts-md5';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AdminService {\n\n headers: any = null;\n\n constructor(private http: HttpClient, private authService:AuthenticationService) {\n if(this.authService.admin){\n const headers = new HttpHeaders({\n 'admin-token': this.authService.admin.adminToken\n });\n this.headers = headers;\n } \n\n this.authService.admin$.subscribe(admin => {\n let headers;\n if(admin){\n headers = new HttpHeaders({\n 'admin-token': admin.adminToken\n });\n } \n this.headers = headers;\n });\n\n }\n\n\n\n getEnvironment(){\n return environment;\n } \n\n \n\n getCouponLogs(data){\n return new Promise((resolve, reject) => { \n this.http.get(`${environment.restful}/api/admin/couponLogs?couponCode=${data.couponCode}&offset=${data.offset}&limit=${data.limit}&search=${data.search}`, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n }\n\n \n getCountDeveloper(){\n return new Promise((resolve, reject) => {\n \n this.http.get(`${environment.restful}/api/admin/countDeveloper`, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n }\n\n getDevelopers(data){\n return new Promise((resolve, reject) => { \n this.http.get(`${environment.restful}/api/admin/developer?type=${data.type}&offset=${data.offset}&limit=${data.limit}&search=${data.search}`, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n }\n\n\n searchDevelopers(data){\n return new Promise((resolve, reject) => { \n this.http.get(`${environment.restful}/api/admin/searchDeveloper?type=${data.type}&offset=${data.offset}&limit=${data.limit}&search=${data.search}`, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n }\n\n \n\n getDeveloperApp(dev){\n return new Promise((resolve, reject) => {\n \n this.http.get(`${environment.restful}/api/admin/developerApp?developerUid=${dev.uid}`, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n }\n\n getDeveloperBilling(dev){\n return new Promise((resolve, reject) => {\n \n this.http.get(`${environment.restful}/api/admin/developerBilling?developerUid=${dev.uid}`, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n }\n\n\n updateDeveloperStatus(uid, status){\n return new Promise((resolve, reject) => {\n \n this.http.post(`${environment.restful}/api/admin/updateDeveloperStatus`, {developerUid: uid, status: status} ,{responseType: 'json', headers: this.headers}).subscribe((res) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n }\n\n updateDeveloperAppStatus(app, status){\n return new Promise((resolve, reject) => {\n \n this.http.post(`${environment.restful}/api/admin/updateDeveloperAppStatus`, {appId: app.appId, developerUid:app.developerUid, status: status} ,{responseType: 'json', headers: this.headers}).subscribe((res) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n }\n\n refundTransaction(tran){\n return new Promise((resolve, reject) => {\n \n this.http.post(`${environment.restful}/api/admin/refundTransaction`, tran ,{responseType: 'json', headers: this.headers}).subscribe((res) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n }\n\n\n requestNewTwoFactor(admin){\n return new Promise((resolve, reject) => {\n \n this.http.post(`${environment.restful}/api/admin/requestNewTwoFactor`, admin ,{responseType: 'json', headers: this.headers}).subscribe((res) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n }\n\n\n updateAdmin(data){\n return new Promise((resolve, reject) => {\n if(data.currentPassword && data.currentPassword != undefined) data.currentPassword = Md5.hashStr(data.currentPassword);\n if(data.newPassword && data.newPassword != undefined) data.newPassword = Md5.hashStr(data.newPassword);\n \n this.http.post(`${environment.restful}/api/admin/updateAdmin`, data ,{responseType: 'json', headers: this.headers}).subscribe((res) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n }\n\n\n\n requestDeveloperCertificate(data){\n return new Promise((resolve, reject) => {\n \n this.http.post(`${environment.restful}/api/admin/requestDeveloperCertificate`, data ,{responseType: 'json', headers: this.headers}).subscribe((res) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n }\n\n\n async getCoupons(callback) {\n let results = await this.http.get(`${environment.restful}/api/admin/getCoupons` , {responseType: 'json', headers: this.headers}).toPromise();\n callback(results);\n }\n\n\n\n async searchValidateCoupon(couponCode) {\n\n return new Promise((resolve, reject) => { \n this.http.get(`${environment.restful}/api/admin/searchValidateCoupon?couponCode=${couponCode}`, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n }); \n \n }\n\n createCoupon(data){\n return new Promise((resolve, reject) => { \n \n this.http.post(`${environment.restful}/api/admin/createCoupon`, data ,{responseType: 'json', headers: this.headers}).subscribe((res) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n }\n\n\n updateCoupon(data){\n return new Promise((resolve, reject) => { \n \n this.http.post(`${environment.restful}/api/admin/updateCoupon`, data ,{responseType: 'json', headers: this.headers}).subscribe((res) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n }\n\n\n deleteCoupon(data){\n return new Promise((resolve, reject) => { \n \n this.http.post(`${environment.restful}/api/admin/deleteCoupon`, data ,{responseType: 'json', headers: this.headers}).subscribe((res) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n }\n\n\n\n async getCosyncVersion(callback) {\n let versions = await this.http.get(`${environment.restful}/api/admin/getCosyncVersions` , {responseType: 'json', headers: this.headers}).toPromise();\n callback(versions);\n }\n\n\n createNewCosyncVersion(data){\n return new Promise((resolve, reject) => { \n \n this.http.post(`${environment.restful}/api/admin/createNewCosyncVersion`, data ,{responseType: 'json', headers: this.headers}).subscribe((res) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n }\n\n\n\n\n updateCosyncVersion(data){\n return new Promise((resolve, reject) => { \n \n this.http.post(`${environment.restful}/api/admin/updateCosyncVersion`, data ,{responseType: 'json', headers: this.headers}).subscribe((res) => {\n let result = res as any; \n resolve(result);\n },\n err => { \n reject(err);\n });\n });\n } \n\n}\n","import { Injectable } from '@angular/core';\nimport { App } from '../models/app'; \nimport { HttpClient } from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\nimport { AuthenticationService } from './authentication.service';\nimport { BehaviorSubject } from 'rxjs'; \nimport { environment } from './../../environments/environment'; \nimport { Md5 } from 'ts-md5';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppsService {\n\n public _apps$: BehaviorSubject;\n private _apps:App[]; \n headers: any = null;\n\n constructor(private http: HttpClient, private authenticationService: AuthenticationService) {\n\n if(this.authenticationService.user){\n const headers = new HttpHeaders({\n 'access-token': this.authenticationService.user.accessToken,\n });\n this.headers = headers;\n }\n this._apps$ = >new BehaviorSubject([]);\n \n\n this.authenticationService.user$.subscribe(user => {\n let headers;\n if(user){\n headers = new HttpHeaders({\n 'access-token': user ? user.accessToken : \"\"\n });\n }\n \n this.headers = headers;\n });\n \n }\n\n get apps() {\n return this._apps$.asObservable();\n }\n \n\n async getCosyncVersion(callback) {\n let versions = await this.http.get(`${environment.restful}/api/app/getCosyncVersions` , {responseType: 'json', headers: this.headers}).toPromise();\n callback(versions);\n }\n\n\n getApps(callback){\n this.http.get(`${environment.restful}/api/app/allApps`, {responseType: 'json', headers: this.headers}).subscribe((res) => {\n this._apps = res as any[]; \n this._apps$.next(this._apps);\n callback(res);\n },\n err => { \n if(err.error && err.error.user){\n this.authenticationService.updateUser(err.error.user);\n }\n \n callback(null, err);\n });\n }\n \n\n addApp(data, callback) {\n \n let tempApp = new App();\n tempApp.name = data.appName;\n this._apps.unshift(tempApp);\n this._apps$.next(this._apps);\n\n\n this.http.post(`${environment.restful}/api/app/`, data, {responseType: 'json', headers: this.headers}).subscribe((respone : any)=>{\n \n \n let index = this._apps.findIndex((element => {\n return element.name == data.appName;\n }));\n\n if (index < 0) {\n this._apps.unshift(respone);\n } else {\n this._apps[index] = respone;\n }\n this._apps$.next(this._apps);\n \n callback(true);\n\n },err => {\n \n this._apps.shift();\n this._apps$.next(this._apps);\n\n callback(null, err);\n });\n }\n\n\n editApp(name: string, appId: string, callback) {\n \n this.http.post(`${environment.restful}/api/app/update`, {name: name, appId: appId}, {responseType: 'json', headers: this.headers}).subscribe((respone : any)=>{\n callback(respone);\n \n let index = this._apps.findIndex((element => {\n return element.appId == appId;\n }));\n\n if (index < 0) {\n this._apps.unshift(respone);\n } else {\n this._apps[index] = respone;\n }\n this._apps$.next(this._apps);\n \n }, \n err => {\n callback(null, err);\n });\n }\n\n\n\n\n editAppType(type: string, appId: string, callback) {\n \n this.http.post(`${environment.restful}/api/app/updateType`, {type: type, appId: appId}, {responseType: 'json', headers: this.headers}).subscribe((respone : any)=>{\n callback(respone);\n \n let index = this._apps.findIndex((element => {\n return element.appId == appId;\n }));\n\n if (index < 0) {\n this._apps.unshift(respone);\n } else {\n this._apps[index] = respone;\n }\n this._apps$.next(this._apps);\n \n }, \n err => {\n callback(null, err);\n });\n }\n\n\n \n\n deleteApp(app: any, password:string) {\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/app/deleteApp`, {appId: app.appId, password: Md5.hashStr(password) }, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(true);\n this._apps = this._apps.filter(value => value.appId != app.appId);\n this._apps$.next(this._apps); \n },\n err => {\n reject(err);\n });\n });\n \n } \n\n\n\n resetApp(app: any, password:string) {\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/app/reset`, {appId: app.appId, password: Md5.hashStr(password) }, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(true); \n },\n err => {\n reject(err);\n });\n });\n \n } \n\n\n removeCosyncEngine(data: any) {\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/app/removeCosyncEngine`, data, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n \n } \n\n\n\n removeCosyncJWT(data: any) {\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/app/removeCosyncJWT`, data, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n \n } \n\n\n\n getAppEmailTemplates(app){\n return new Promise((resolve, reject) => {\n this.http.get(`${environment.restful}/api/app/emailTemplates?appId=${app.appId}`, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n updateAppEmailTemplates(template){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/app/updateEmailTemplate`, template, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n getAppData(app, hideAnonUser){\n return new Promise((resolve, reject) => {\n this.http.get(`${environment.restful}/api/app/stat?appId=${app.appId}&hideAnonUser=${hideAnonUser}`, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n\n getAppLogDataOffset(data){\n return new Promise((resolve, reject) => {\n this.http.get(`${environment.restful}/api/app/logs?appId=${data.appId}&type=${data.type}&status=${data.status}&offset=${data.offset}&limit=${data.limit}&fromDate=${data.fromDate}&toDate=${data.toDate}&filterAction=${data.filterAction}`, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n getAppLogData(app){\n return new Promise((resolve, reject) => {\n this.http.get(`${environment.restful}/api/app/logs?appId=${app.appId}`, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n \n\n getAppDataTarget(data){\n return new Promise((resolve, reject) => {\n this.http.get(`${environment.restful}/api/app/stat?appId=${data.appId}&target=${data.target}&offset=${data.offset}&limit=${data.limit}&hideAnonUser=${data.hideAnonUser}`, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n \n\n\n\n updateAppUser(user, status){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/app/user`, {appId: user.appId, status: status, userId:user._id}, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n searchAppUser(appId, value, hideAnonUser){\n return new Promise((resolve, reject) => {\n this.http.get(`${environment.restful}/api/app/searchUser?appId=${appId}&value=${value}&hideAnonUser=${hideAnonUser}`, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n \n\n searchSignup(appId, value){\n return new Promise((resolve, reject) => {\n this.http.get(`${environment.restful}/api/app/searchSingUp?appId=${appId}&value=${value}`, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n searchInvite(appId, value){\n return new Promise((resolve, reject) => {\n this.http.get(`${environment.restful}/api/app/searchInvite?appId=${appId}&value=${value}`, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n createAppInvite(data){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/app/createAppInvite`, data, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n resendAppInvite(data){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/app/resendAppInvite`, data, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n\n removeAppInvite(data){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/app/removeAppInvite`, data, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n\n removeAppSignup(data){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/app/removeAppSignup`, data, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n getSuperUserToken(data){\n return new Promise((resolve, reject) => {\n this.http.get(`${environment.restful}/api/app/superuser?appId=${data.appId}&password=${data.password}`, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n resetUserPassword(data){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/app/resetUserPassword`, data, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n \n\n deleteAppUser(data){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/app/removeUser`, data, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n createAppUser(data){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/app/addUser`, data, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n testEmailExtension(appId){\n return new Promise((resolve, reject) => { \n this.http.post(`${environment.restful}/api/app/testEmailExtension`, {appId: appId}, {responseType: 'json', headers: this.headers}).subscribe((respone : any )=>{\n resolve(respone);\n },\n err => {\n reject(err);\n });\n })\n }\n\n\n updateAppSetting(app, setting){\n return new Promise((resolve, reject) => { \n app.setting = setting;\n this.http.post(`${environment.restful}/api/app/updateAppSetting`, app, {responseType: 'json', headers: this.headers}).subscribe((respone : any )=>{\n resolve(respone);\n\n let index = this._apps.findIndex((element => {\n return element.appId == app.appId;\n }));\n \n if (index < 0) {\n this._apps.unshift(respone);\n } else {\n this._apps[index] = respone;\n }\n this._apps$.next(this._apps);\n },\n err => {\n reject(err);\n });\n });\n }\n\n\n updateAppMetaData(app){\n return new Promise((resolve, reject) => { \n this.http.post(`${environment.restful}/api/app/updateAppMetaData`, app, {responseType: 'json', headers: this.headers}).subscribe((respone : any )=>{\n resolve(respone);\n\n let index = this._apps.findIndex((element => {\n return element.appId == app.appId;\n }));\n \n if (index < 0) {\n this._apps.unshift(respone);\n } else {\n this._apps[index] = respone;\n }\n this._apps$.next(this._apps);\n },\n err => {\n reject(err);\n });\n });\n }\n\n\n\n updateAppInviteMetaData(app){\n return new Promise((resolve, reject) => { \n this.http.post(`${environment.restful}/api/app/updateAppInviteMetaData`, app, {responseType: 'json', headers: this.headers}).subscribe((respone : any )=>{\n resolve(respone);\n\n let index = this._apps.findIndex((element => {\n return element.appId == app.appId;\n }));\n \n if (index < 0) {\n this._apps.unshift(respone);\n } else {\n this._apps[index] = respone;\n }\n this._apps$.next(this._apps);\n },\n err => {\n reject(err);\n });\n });\n }\n\n\n\n payPreviousAppBill(app){\n return new Promise((resolve, reject) => { \n \n this.http.post(`${environment.restful}/api/payment/payPreviousAppBill`, app, {responseType: 'json', headers: this.headers}).subscribe((respone : any )=>{\n resolve(respone); \n },\n err => {\n reject(err);\n });\n });\n }\n\n testTwilio(phone, appId){\n return new Promise((resolve, reject) => { \n \n this.http.post(`${environment.restful}/api/app/testAppTwilio`, {phone:phone, appId:appId}, {responseType: 'json', headers: this.headers}).subscribe((respone : any )=>{\n resolve(respone); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n\n\n initCosyncEngine(data){\n return new Promise((resolve, reject) => { \n this.http.post(`${environment.restful}/api/app/initCosyncEngine`, data, {responseType: 'json', headers: this.headers}).subscribe((respone : any )=>{\n resolve(respone); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n\n reinitCosyncEngine(data){\n return new Promise((resolve, reject) => { \n this.http.post(`${environment.restful}/api/app/reinitCosyncEngine`, data, {responseType: 'json', headers: this.headers}).subscribe((respone : any )=>{\n resolve(respone); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n\n initCosyncJWT(data){\n return new Promise((resolve, reject) => { \n this.http.post(`${environment.restful}/api/app/initCosyncJWT`, data, {responseType: 'json', headers: this.headers}).subscribe((respone : any )=>{\n resolve(respone); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n reinitCosyncJWT(data){\n return new Promise((resolve, reject) => { \n this.http.post(`${environment.restful}/api/app/reinitCosyncJWT`, data, {responseType: 'json', headers: this.headers}).subscribe((respone : any )=>{\n resolve(respone); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n updateAppUserMetaData(data){\n return new Promise((resolve, reject) => { \n this.http.post(`${environment.restful}/api/app/updateAppUserMetaData`, data, {responseType: 'json', headers: this.headers}).subscribe((respone : any )=>{\n resolve(respone); \n },\n err => {\n reject(err);\n });\n });\n } \n\n\n exportAppDatabase(data){\n return new Promise((resolve, reject) => { \n \n this.http.get(`${environment.restful}/api/app/export?appId=${data.appId}`, { headers: this.headers, responseType: 'blob' as 'json'} )\n \n .subscribe(res => { \n let months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n let today = new Date();\n let todayString= today.getDate() +\"-\"+ months[today.getMonth()]+\"-\"+ today.getFullYear();\n let url = window.URL.createObjectURL(res);\n let a = document.createElement('a');\n document.body.appendChild(a);\n a.setAttribute('style', 'display: none');\n a.href = url;\n a.download = `${data.name}-database-export-${todayString}.zip`;\n a.click();\n window.URL.revokeObjectURL(url);\n a.remove(); // remove the element\n resolve(true);\n }, error => {\n console.log('download error:', JSON.stringify(error));\n reject(error);\n }, () => {\n console.log('Completed file download.')\n });\n\n\n });\n } \n\n addRemoveAppLocale(data){\n return new Promise((resolve, reject) => { \n this.http.post(`${environment.restful}/api/app/addRemoveAppLocale`, data, {responseType: 'json', headers: this.headers}).subscribe((respone : any )=>{\n resolve(respone); \n },\n err => {\n reject(err);\n });\n });\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { environment } from './../../environments/environment';\nimport {Md5} from 'ts-md5/dist/md5';\nimport { Developer } from '../models/developer';\nimport { BehaviorSubject, Observable, observable } from 'rxjs'; \nimport { Admin } from '../models/admin';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthenticationService {\n\n headers: any = {};\n public user$: BehaviorSubject;\n public user?: Developer;\n public admin$: BehaviorSubject;\n public admin?: any;\n public authorized?: string;\n redirectUrl:string;\n\n constructor(private http: HttpClient) {\n this.user$ = new BehaviorSubject(this.user);\n this.admin$ = new BehaviorSubject(this.admin);\n let cache = localStorage.getItem('currentUser'); \n if (cache != \"undefined\" && cache != null)\n {\n try {\n let user = JSON.parse(cache) as Developer;\n this.user = user; \n \n const headers = new HttpHeaders({\n 'access-token': this.user.accessToken,\n });\n this.headers = headers;\n\n this.user$.next(user);\n } catch (error) {\n \n this.user = null;\n }\n }\n }\n\n updateUser(data){\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n if(data[key]) this.user[key] = data[key]; \n }\n }\n\n localStorage.removeItem('currentUser');\n localStorage.setItem('currentUser', JSON.stringify(this.user));\n this.user$.next(this.user);\n }\n\n refreshToken(){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/account/refreshToken`, {}, {responseType: 'json', headers:this.headers}).subscribe((res:any[]) => {\n let data = res as any; \n\n if(data.refreshToken){\n\n this.user.accessToken = data.refreshToken;\n const headers = new HttpHeaders({\n 'access-token': this.user.accessToken,\n });\n this.headers = headers;\n\n localStorage.removeItem('currentUser');\n localStorage.setItem('currentUser', JSON.stringify(this.user)); \n this.user$.next(this.user);\n\n resolve(this.user);\n }\n else{\n reject(false);\n }\n },\n err => { \n reject(err);\n });\n });\n }\n\n\n login(email, password, twoFactorCode){\n return new Promise((resolve, reject) => {\n this.logout();\n\n password = Md5.hashStr(password);\n \n this.http.post(`${environment.restful}/api/account/login`, {email:email, password:password, twoFactorCode: twoFactorCode} , {responseType: 'json', headers:this.headers}).subscribe((res:any[]) => {\n \n let data = res as any; \n if(data.token &&! data.uid){\n resolve(data);\n }\n else{ \n this.user = new Developer();\n this.user.email = data.email;\n this.user.uid = data.uid;\n this.user.firstName = data.firstName;\n this.user.lastName = data.lastName;\n this.user.accessToken = data.accessToken;\n this.user.password = data.password;\n this.user.avatar = data.avatar;\n this.user.company = data.company;\n this.user.type = data.type;\n this.user.tester = data.tester;\n this.user.twoFactorVerification = data.twoFactorVerification; \n this.user.googleSecretKey = data.googleSecretKey;\n this.user.status = data.status; \n this.user.subscriptions = data.subscriptions; \n this.user.sessionCreatedAt = new Date(); \n localStorage.setItem('currentUser', JSON.stringify(this.user)); \n this.user$.next(this.user); \n \n const headers = new HttpHeaders({\n 'access-token': this.user.accessToken,\n });\n this.headers = headers;\n \n resolve(data);\n }\n },\n err => { \n reject(err);\n });\n });\n }\n\n\n\n completeLogin(token, twoFactorCode){\n return new Promise((resolve, reject) => {\n \n \n this.http.post(`${environment.restful}/api/account/completeLogin`, {token:token, twoFactorCode: twoFactorCode} , {responseType: 'json', headers:this.headers}).subscribe((res:any[]) => {\n this.user = new Developer();\n let data = res as any; \n\n this.user.email = data.email;\n this.user.uid = data.uid;\n this.user.firstName = data.firstName;\n this.user.lastName = data.lastName;\n this.user.accessToken = data.accessToken;\n this.user.password = data.password;\n this.user.avatar = data.avatar;\n this.user.company = data.company;\n this.user.type = data.type;\n this.user.twoFactorVerification = data.twoFactorVerification; \n this.user.googleSecretKey = data.googleSecretKey;\n this.user.status = data.status; \n localStorage.setItem('currentUser', JSON.stringify(this.user)); \n this.user$.next(this.user); \n \n\n resolve(data);\n },\n err => { \n reject(err);\n });\n });\n }\n \n\n\n loginAdmin(email, password, twoFactorCode){\n return new Promise((resolve, reject) => {\n this.logout();\n\n password = Md5.hashStr(password);\n \n this.http.post(`${environment.restful}/api/admin/loginAdmin`, {email:email, password:password, twoFactorCode: twoFactorCode} , {responseType: 'json', headers:this.headers}).subscribe((res:any[]) => {\n this.admin = new Admin();\n let data = res as any; \n this.admin = data; \n this.admin$.next(this.admin); \n resolve(data);\n },\n err => { \n reject(err);\n });\n });\n }\n \n\n logout(){ \n localStorage.removeItem('currentUser');\n this.user = null;\n this.user$.next(this.user);\n this.admin = null;\n const headers = new HttpHeaders({\n 'access-token': '',\n });\n this.headers = headers;\n }\n\n lock(){ \n if(this.user.lock) return; \n this.user.lock = true;\n localStorage.removeItem('currentUser');\n localStorage.setItem('currentUser', JSON.stringify(this.user));\n this.user$.next(this.user);\n }\n\n unlock(password){ \n const md5 = new Md5();\n password = md5.appendStr(password).end();\n \n if(password == this.user.password){\n this.user.lock = false;\n localStorage.removeItem('currentUser');\n localStorage.setItem('currentUser', JSON.stringify(this.user));\n this.user$.next(this.user);\n return true;\n }\n else return false;\n \n }\n\n refreshUser(data){\n this.user = new Developer();\n this.user.email = data.email;\n this.user.uid = data.uid;\n this.user.firstName = data.firstName;\n this.user.lastName = data.lastName;\n // this.user.accessToken = data.accessToken;\n this.user.password = data.password;\n this.user.avatar = data.avatar;\n this.user.company = data.company;\n this.user.type = data.type;\n this.user.twoFactorVerification = data.twoFactorVerification; \n this.user.googleSecretKey = data.googleSecretKey;\n this.user.status = data.status; \n localStorage.setItem('currentUser', JSON.stringify(this.user)); \n this.user$.next(this.user); \n }\n\n\n register(data){\n return new Promise((resolve, reject) => {\n const md5 = new Md5(); \n let params = {} as any;\n params.password = md5.appendStr(data.password).end();\n params.email = data.email;\n \n this.http.post(`${environment.restful}/api/account/register`, params, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n resolve(res);\n },\n err => { \n reject(err);\n });\n });\n }\n\n\n registerAccountAppSumo(data){\n return new Promise((resolve, reject) => {\n const md5 = new Md5();\n let params = {} as any;\n params.password = md5.appendStr(data.password).end();\n params.email = data.email;\n params.couponCode = data.couponCode;\n\n this.http.post(`${environment.restful}/api/account/registerAccountAppSumo`, params, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n resolve(res);\n },\n err => { \n reject(err);\n });\n });\n }\n\n\n resendActivate(value){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/account/resendActivate`, {value:value}, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n resolve(res);\n },\n err => { \n reject(err);\n });\n });\n }\n\n activateAccount(token){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/account/activate`, {token:token}, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n resolve(res);\n },\n err => { \n reject(err);\n });\n });\n }\n\n activateAppUser(appToken, handle, code){\n return new Promise((resolve, reject) => {\n this.http.get(`${environment.restful}/api/appuser/completeSignup?appToken=${appToken}&handle=${handle}&code=${code}`, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n resolve(res);\n },\n err => { \n reject(err);\n });\n });\n }\n\n resetPassword(email){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/account/resetPassword`, {email:email}, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n resolve(res);\n },\n err => { \n reject(err);\n });\n });\n }\n\n resetPasswordWithToken(data){\n return new Promise((resolve, reject) => {\n const md5 = new Md5();\n data.password = md5.appendStr(data.password).end();\n this.http.post(`${environment.restful}/api/account/verifyResetPassword`, data, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n resolve(res);\n },\n err => { \n reject(err);\n });\n });\n }\n\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { v4 as uuidv4 } from 'uuid';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HelperService {\n\n constructor() { }\n\n getUUID(){\n let uid = uuidv4();\n uid = uid.split('-').join('');\n return uid;\n }\n\n emailValidation(value){\n let re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n \n if (re.test(String(value).toLowerCase())) return true; \n else return false;\n \n }\n\n\n generatePassword(passwordLength) {\n passwordLength = passwordLength ? passwordLength : 6;\n var numberChars = \"0123456789\";\n var upperChars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n var lowerChars = \"abcdefghijklmnopqrstuvwxyz\";\n var specailChars = \"!@#$%^()_+\\-[]':\\\\,.\\/?\";\n var allChars = numberChars + upperChars + lowerChars + specailChars;\n var randPasswordArray = Array(passwordLength);\n randPasswordArray[0] = numberChars;\n randPasswordArray[1] = upperChars;\n randPasswordArray[2] = lowerChars;\n randPasswordArray[3] = specailChars;\n randPasswordArray = randPasswordArray.fill(allChars, 4);\n return this.shuffleArray(randPasswordArray.map(function(x) { return x[Math.floor(Math.random() * x.length)] })).join('');\n }\n\n\n shuffleArray(array) {\n for (var i = array.length - 1; i > 0; i--) {\n var j = Math.floor(Math.random() * (i + 1));\n var temp = array[i];\n array[i] = array[j];\n array[j] = temp;\n }\n return array;\n }\n\n compareDate(date1, date2){\n\n if(!date1 || !date2) return true;\n\n const newdate1 = new Date(date1);\n const newdate2 = new Date(date2);\n\n if(!newdate1 || !newdate2) return true;\n\n if(newdate1.getTime() > newdate2.getTime()) return false;\n return true;\n }\n \n getLastModifiedDateString(oldDate){\n if(!oldDate) oldDate = new Date();\n let today = new Date();\n oldDate = new Date(oldDate);\n let diff = Math.floor(today.getTime() - oldDate.getTime()); \n\n let startYear = oldDate.getFullYear();\n let february = (startYear % 4 === 0 && startYear % 100 !== 0) || startYear % 400 === 0 ? 29 : 28;\n let daysInMonth = [31, february, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n let years = today.getFullYear() - startYear;\n let months = today.getMonth() - oldDate.getMonth();\n if (months < 0) {\n years--;\n months += 12;\n }\n\n let days = today.getDate() - oldDate.getDate();\n if (days < 0) {\n if (months > 0) {\n months--;\n } else {\n years--;\n months = 11;\n }\n days += daysInMonth[oldDate.getMonth()];\n } \n\n let secs = Math.floor(diff/1000);\n let mins = Math.floor(secs/60);\n let hours = Math.floor(mins/60);\n \n hours = Math.floor(hours%24);\n mins = Math.floor(mins%60);\n secs = Math.floor(secs%60); \n \n\n let message = \"\"; \n\n if(days <= 0){\n \n if(years > 0 ){\n if(years > 1) message += years + \" years\";\n else message += years + \" year\";\n }\n\n if(months > 0 ){\n if(months > 1) message += months + \" months \";\n else message += months + \" month \";\n }\n\n \n if(hours > 0){\n if(hours > 1) message += hours + \" hours \";\n else message += hours + \" hour \";\n } \n\n if(mins > 0){\n if(mins > 1) message += mins + \" mins \";\n else message += mins + \" min \"; \n }\n\n }\n else{\n\n if(years > 0 ){\n if(years > 1) message += years + \" years\";\n else message += years + \" year\";\n }\n\n if(months > 0 ){\n if(months > 1) message += months + \" months \";\n else message += months + \" month \";\n }\n \n\n if(days > 1) message += days + \" days \"; \n else message += days + \" day \"; \n }\n\n if(message == \"\") return message + \" now\";\n else return message;\n }\n\n checkDeveloperPlan(dev, plan){\n let found = false;\n dev.subscriptions.forEach(sub => {\n if(sub.developerPlanId.indexOf(plan) >= 0) found = true;\n });\n\n return found;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { App } from '../models/app'; \nimport { Host } from '../models/host'; \nimport { HttpClient } from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\nimport { AuthenticationService } from './authentication.service';\nimport { BehaviorSubject } from 'rxjs'; \nimport { environment } from './../../environments/environment'; \nimport { Md5 } from 'ts-md5';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HostService {\n\n public _apps$: BehaviorSubject;\n private _apps:App[]; \n\n public _hosts$: BehaviorSubject;\n private _hosts:Host[]; \n headers: any = null;\n hostHeader: any = null;\n\n constructor(private http: HttpClient, private authenticationService: AuthenticationService) {\n\n if(this.authenticationService.user){\n const headers = new HttpHeaders({\n 'access-token': this.authenticationService.user.accessToken,\n });\n this.headers = headers;\n }\n this._apps$ = >new BehaviorSubject([]);\n this._hosts$ = >new BehaviorSubject([]);\n \n\n this.authenticationService.user$.subscribe(user => {\n let headers;\n if(user){\n headers = new HttpHeaders({\n 'access-token': user ? user.accessToken : \"\"\n });\n }\n \n this.headers = headers;\n });\n \n }\n\n get apps() {\n return this._apps$.asObservable();\n }\n\n\n get hosts() {\n return this._hosts$.asObservable();\n }\n \n\n async getCosyncVersion(host, callback) {\n if(!host.serverToken){\n return;\n }\n const header = new HttpHeaders({\n 'server-secret': host.serverToken \n });\n\n let versions = await this.http.get(`${host.serverApiUrl}/api/app/getCosyncVersions` , {responseType: 'json', headers: header}).toPromise();\n callback(versions);\n }\n\n\n getHosts(callback){\n this.http.get(`${environment.restful}/api/host/allHosts`, {responseType: 'json', headers: this.headers}).subscribe((res) => {\n this._hosts = res as any[]; \n this._hosts$.next(this._hosts);\n callback(res);\n },\n err => { \n if(err.error && err.error.user){\n this.authenticationService.updateUser(err.error.user);\n }\n \n callback(null, err);\n });\n }\n\n\n\n getHost(hostId, callback){\n this.http.get(`${environment.restful}/api/host/${hostId}`, {responseType: 'json', headers: this.headers}).subscribe((res) => {\n let host = res as any[]; \n callback(host);\n },\n err => { \n callback(null, err);\n });\n }\n\n\n getHostApplications(host, callback){\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken,\n });\n\n this.http.get(`${host.serverApiUrl}/api/app/allApps`, {responseType: 'json', headers: headers}).subscribe((res) => {\n this._apps = res as any[]; \n this._apps$.next(this._apps);\n callback(res);\n },\n err => { \n this._apps$.next([]);\n callback(null, err);\n });\n\n }\n \n\n addHost(data, callback) {\n \n let tempApp = new Host();\n tempApp.name = data.hostName;\n this._hosts.unshift(tempApp);\n this._hosts$.next(this._hosts);\n\n\n this.http.post(`${environment.restful}/api/host/`, data, {responseType: 'json', headers: this.headers}).subscribe((respone : any)=>{\n \n \n let index = this._hosts.findIndex((element => {\n return element.name == data.hostName;\n }));\n\n if (index < 0) {\n this._hosts.unshift(respone);\n } else {\n this._hosts[index] = respone;\n }\n\n this._hosts$.next(this._hosts);\n \n callback(true);\n\n },err => {\n \n this._hosts.shift();\n this._hosts$.next(this._hosts);\n\n callback(null, err);\n });\n }\n\n getHostConnection(apiUrl, token){\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': token\n });\n\n this.http.get(`${apiUrl}/api/app/connection`, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n\n });\n\n }\n\n editHost(data, callback) {\n \n this.http.post(`${environment.restful}/api/host/update`, data, {responseType: 'json', headers: this.headers}).subscribe((respone : any)=>{\n callback(respone);\n \n let index = this._hosts.findIndex((element => {\n return element.hostId == data.hostId;\n }));\n\n if (index < 0) {\n this._hosts.unshift(respone);\n } else {\n this._hosts[index] = respone;\n }\n this._hosts$.next(this._hosts);\n \n }, \n err => {\n callback(null, err);\n });\n }\n\n\n\n createApp(host, data, callback) {\n \n let tempApp = new App();\n tempApp.name = data.appName;\n this._apps.unshift(tempApp);\n this._apps$.next(this._apps);\n \n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n data.name = data.appName;\n\n this.http.post(`${host.serverApiUrl}/api/app`, data, {responseType: 'json', headers: headers}).subscribe((respone : any)=>{\n callback(respone);\n \n let index = this._apps.findIndex((element => {\n return element.appId == data.appId;\n }));\n\n if (index < 0) {\n this._apps.unshift(respone);\n } else {\n this._apps[index] = respone;\n }\n this._apps$.next(this._apps);\n \n }, \n err => {\n callback(null, err);\n });\n }\n\n\n\n editApp(host, data, callback) {\n \n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/update`, data, {responseType: 'json', headers: headers}).subscribe((respone : any)=>{\n callback(respone);\n \n let index = this._apps.findIndex((element => {\n return element.appId == data.appId;\n }));\n\n if (index < 0) {\n this._apps.unshift(respone);\n } else {\n this._apps[index] = respone;\n }\n this._apps$.next(this._apps);\n \n }, \n err => {\n callback(null, err);\n });\n }\n\n \n deleteHost(host: any, password:string) {\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/host/deleteHost`, {hostId: host.hostId, password: Md5.hashStr(password) }, {responseType: 'json', headers: this.headers}).subscribe((res : any )=>{\n resolve(true);\n this._hosts = this._hosts.filter(value => value.hostId != host.hostId);\n this._hosts$.next(this._hosts); \n },\n err => {\n reject(err);\n });\n });\n \n } \n\n\n deleteApp(host, app: any) {\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n \n this.http.delete(`${host.serverApiUrl}/api/app/${app.appId}`, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(true);\n this._apps = this._apps.filter(value => value.appId != app.appId);\n this._apps$.next(this._apps); \n },\n err => {\n reject(err);\n });\n });\n \n } \n\n\n\n resetApp(host: any, app:any) {\n return new Promise((resolve, reject) => {\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/reset`, {appId: app.appId }, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(true); \n },\n err => {\n reject(err);\n });\n });\n \n } \n\n\n removeCosyncEngine(host, data: any) {\n return new Promise((resolve, reject) => {\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/removeCosyncEngine`, data, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n \n } \n\n\n\n removeCosyncJWT(host, data: any) {\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/removeCosyncJWT`, data, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n \n } \n\n\n\n getAppEmailTemplates(host, app){\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.get(`${host.serverApiUrl}/api/app/emailTemplates?appId=${app.appId}`, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n updateAppEmailTemplates(host, template){\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/updateEmailTemplate`, template, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n getAppLogData(host, app){\n return new Promise((resolve, reject) => {\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n\n this.http.get(`${host.serverApiUrl}/api/app/logs?appId=${app.appId}`, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n\n getAppLogDataOffset(host, data){\n return new Promise((resolve, reject) => {\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n\n this.http.get(`${host.serverApiUrl}/api/app/logs?appId=${data.appId}&type=${data.type}&status=${data.status}&offset=${data.offset}&limit=${data.limit}&fromDate=${data.fromDate}&toDate=${data.toDate}&filterAction=${data.filterAction}`, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n\n getAppData(host, app, hideAnonUser){\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n\n this.http.get(`${host.serverApiUrl}/api/app/stat?appId=${app.appId}&hideAnonUser=${hideAnonUser}`, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n \n\n getAppDataTarget(host, data){\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.get(`${host.serverApiUrl}/api/app/stat?appId=${data.appId}&target=${data.target}&offset=${data.offset}&limit=${data.limit}&hideAnonUser=${data.hideAnonUser}`, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n \n\n\n\n updateAppUser(host, user, status){\n return new Promise((resolve, reject) => {\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/user`, {appId: user.appId, status: status, userId:user._id}, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n searchAppUser(host, appId, value, hideAnonUser){\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.get(`${host.serverApiUrl}/api/app/searchUser?appId=${appId}&value=${value}&hideAnonUser=${hideAnonUser}`, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n \n\n searchSignup(host, appId, value){\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.get(`${host.serverApiUrl}/api/app/searchSingUp?appId=${appId}&value=${value}`, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n searchInvite(host, appId, value){\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.get(`${host.serverApiUrl}/api/app/searchInvite?appId=${appId}&value=${value}`, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n createAppInvite(host, data){\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/createAppInvite`, data, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n\n resendAppInvite(host, data){\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/resendAppInvite`, data, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n\n removeAppInvite(host, data){\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/removeAppInvite`, data, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n\n removeAppSignup(host, data){\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/removeAppSignup`, data, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n getSuperUserToken(host, data){\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.get(`${host.serverApiUrl}/api/app/superuser?appId=${data.appId}&password=${data.password}`, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n resetUserPassword(host, data){\n return new Promise((resolve, reject) => {\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/resetUserPassword`, data, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n \n\n deleteAppUser(host, data){\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/removeUser`, data, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n testEmailExtension(host, appId){\n return new Promise((resolve, reject) => { \n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n\n this.http.post(`${host.serverApiUrl}/api/app/testEmailExtension`, {appId: appId}, {responseType: 'json', headers: headers}).subscribe((respone : any )=>{\n resolve(respone);\n },\n err => {\n reject(err);\n });\n })\n }\n\n\n createAppUser(host, data){\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/addUser`, data, {responseType: 'json', headers: headers}).subscribe((res : any )=>{\n resolve(res); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n updateAppSetting(host, app, setting){\n return new Promise((resolve, reject) => { \n app.setting = setting;\n\n const header = new HttpHeaders({\n 'server-secret': host.serverToken \n });\n\n this.http.post(`${host.serverApiUrl}/api/app/updateAppSetting`, app, {responseType: 'json', headers: header}).subscribe((respone : any )=>{\n resolve(respone);\n\n let index = this._apps.findIndex((element => {\n return element.appId == app.appId;\n }));\n \n if (index < 0) {\n this._apps.unshift(respone);\n } else {\n this._apps[index] = respone;\n }\n this._apps$.next(this._apps);\n },\n err => {\n reject(err);\n });\n });\n }\n\n\n updateAppMetaData(host, app){\n return new Promise((resolve, reject) => { \n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/updateAppMetaData`, app, {responseType: 'json', headers: headers}).subscribe((respone : any )=>{\n resolve(respone);\n\n let index = this._apps.findIndex((element => {\n return element.appId == app.appId;\n }));\n \n if (index < 0) {\n this._apps.unshift(respone);\n } else {\n this._apps[index] = respone;\n }\n this._apps$.next(this._apps);\n },\n err => {\n reject(err);\n });\n });\n }\n\n\n\n updateAppInviteMetaData(host, app){\n return new Promise((resolve, reject) => {\n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/updateAppInviteMetaData`, app, {responseType: 'json', headers: headers}).subscribe((respone : any )=>{\n resolve(respone);\n\n let index = this._apps.findIndex((element => {\n return element.appId == app.appId;\n }));\n \n if (index < 0) {\n this._apps.unshift(respone);\n } else {\n this._apps[index] = respone;\n }\n this._apps$.next(this._apps);\n },\n err => {\n reject(err);\n });\n });\n }\n\n\n \n\n testTwilio(host, phone, appId){\n return new Promise((resolve, reject) => { \n \n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/testAppTwilio`, {phone:phone, appId:appId}, {responseType: 'json', headers: headers}).subscribe((respone : any )=>{\n resolve(respone); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n\n\n initCosyncEngine(host, data){\n return new Promise((resolve, reject) => { \n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/initCosyncEngine`, data, {responseType: 'json', headers: headers}).subscribe((respone : any )=>{\n resolve(respone); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n\n reinitCosyncEngine(host, data){\n return new Promise((resolve, reject) => { \n \n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/reinitCosyncEngine`, data, {responseType: 'json', headers: headers}).subscribe((respone : any )=>{\n resolve(respone); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n\n initCosyncJWT(host, data){\n return new Promise((resolve, reject) => { \n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/initCosyncJWT`, data, {responseType: 'json', headers: headers}).subscribe((respone : any )=>{\n resolve(respone); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n reinitCosyncJWT(host, data){\n return new Promise((resolve, reject) => { \n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/reinitCosyncJWT`, data, {responseType: 'json', headers: headers}).subscribe((respone : any )=>{\n resolve(respone); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n updateAppUserMetaData(host,data){\n return new Promise((resolve, reject) => { \n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n \n\n this.http.post(`${host.serverApiUrl}/api/app/updateAppUserMetaData`, data, {responseType: 'json', headers: headers}).subscribe((respone : any )=>{\n resolve(respone); \n },\n err => {\n reject(err);\n });\n });\n } \n\n\n\n\n public importAppDatabase(host, appName, file){\n return new Promise((resolve, reject) => { \n const formData = new FormData(); \n \n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n\n formData.append('file', file);\n formData.append('appName', appName);\n headers.append('Content-Type', 'multipart/form-data');\n \n\n this.http.post(`${host.serverApiUrl}/api/app/importDatabase`, formData, {responseType: 'json', headers: headers}).subscribe((respone : any)=>{\n resolve(respone); \n this._apps.unshift(respone);\n this._apps$.next(this._apps);\n \n },\n err => {\n reject(err);\n });\n }); \n }\n\n\n activateLinkAppUser(hostId, appToken, handle, code){\n return new Promise((resolve, reject) => {\n\n this.getHost(hostId, function(host, error){\n\n if(error){\n reject(error);\n return;\n }\n\n this.http.get(`${host.serverApiUrl}/api/appuser/completeSignup?appToken=${appToken}&handle=${handle}&code=${code}`, {responseType: 'json', headers: this.headers}).subscribe((res:any[]) => {\n resolve(res);\n },\n err => { \n reject(err);\n });\n\n })\n });\n }\n\n\n\n exportAppDatabase(host, data){\n return new Promise((resolve, reject) => { \n \n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n\n this.http.get(`${host.serverApiUrl}/api/app/export?appId=${data.appId}`, { headers: headers, responseType: 'blob' as 'json'} )\n \n .subscribe(res => { \n let months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n let today = new Date();\n let todayString= today.getDate() +\"-\"+ months[today.getMonth()]+\"-\"+ today.getFullYear();\n let url = window.URL.createObjectURL(res);\n let a = document.createElement('a');\n document.body.appendChild(a);\n a.setAttribute('style', 'display: none');\n a.href = url;\n a.download = `${data.name}-database-export-${todayString}.zip`;\n a.click();\n window.URL.revokeObjectURL(url);\n a.remove(); // remove the element\n resolve(true);\n }, error => {\n console.log('download error:', JSON.stringify(error));\n reject(error);\n }, () => {\n console.log('Completed file download.')\n });\n\n\n });\n } \n\n\n\n addRemoveAppLocale(host, data){\n return new Promise((resolve, reject) => { \n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n\n\n this.http.post(`${host.serverApiUrl}/api/app/addRemoveAppLocale`, data, {responseType: 'json', headers: headers}).subscribe((respone : any )=>{\n resolve(respone); \n },\n err => {\n reject(err);\n });\n });\n }\n\n patchHostAppLocale(host){\n return new Promise((resolve, reject) => { \n\n const headers = new HttpHeaders({\n 'server-secret': host.serverToken\n });\n\n\n this.http.post(`${host.serverApiUrl}/api/app/patchAppLocales`, {}, {responseType: 'json', headers: headers}).subscribe((respone : any )=>{\n resolve(respone); \n },\n err => {\n reject(err);\n });\n });\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { Router, NavigationStart } from '@angular/router';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n private subject = new Subject();\n private keepAfterRouteChange = false;\n\n constructor(private router: Router) {\n this.router.events.subscribe(event => {\n if (event instanceof NavigationStart) {\n if (this.keepAfterRouteChange) {\n // only keep for a single route change\n this.keepAfterRouteChange = false;\n } else {\n // clear alert message\n this.clear();\n }\n }\n });\n }\n\n\n getAlert(): Observable {\n return this.subject.asObservable();\n }\n\n task(task, keepAfterRouteChange = false) {\n this.keepAfterRouteChange = keepAfterRouteChange;\n this.subject.next({ task: task });\n}\n\n success(message: string, keepAfterRouteChange = false) {\n this.keepAfterRouteChange = keepAfterRouteChange;\n this.subject.next({ type: 'success', text: message });\n }\n\n error(message: string, keepAfterRouteChange = false) {\n this.keepAfterRouteChange = keepAfterRouteChange;\n this.subject.next({ type: 'error', text: message });\n }\n\n clear() {\n // clear by calling subject.next() without parameters\n this.subject.next();\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotifyService {\n private subject = new Subject();\n\n constructor() { }\n\n\n getNoti(): Observable {\n return this.subject.asObservable();\n }\n\n notifyOther(subject:string, param) { \n this.subject.next({subject:subject, data:param});\n }\n\n}\n","import { Injectable } from '@angular/core'; \nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\nimport { AuthenticationService } from './authentication.service';\nimport { environment } from './../../environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PaymentService {\n\n headers: any = null;\n uid: string;\n\n constructor(private http: HttpClient, private authenticationService: AuthenticationService) {\n if(this.authenticationService.user){\n const headers = new HttpHeaders({\n 'access-token': this.authenticationService.user.accessToken,\n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n });\n this.headers = headers;\n }\n\n this.authenticationService.user$.subscribe(user => {\n let headers;\n if(user){\n headers = new HttpHeaders({\n 'access-token': user.accessToken,\n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n });\n }\n \n this.headers = headers;\n });\n\n } \n\n\n public getPaymentMethod(){\n return new Promise((resolve, reject) => {\n let res = this.http.get(`${environment.restful}/api/payment/`, {responseType: 'json', headers: this.headers});\n res.subscribe( \n response => {resolve(response);},\n err => { reject(err) } \n )\n }); \n } \n \n\n public addPaymentMethod(payload: any){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/payment/`, {nonce: payload.nonce}, {responseType: 'json', headers: this.headers}).subscribe(\n respone =>{ resolve(respone) },\n err => { reject(err) } \n );\n }); \n }\n\n public makeDefault(card){\n return new Promise((resolve, reject) => {\n \n this.http.post(`${environment.restful}/api/payment/makeDefault`, {token: card.token}, {responseType: 'json', headers: this.headers}).subscribe(\n respone =>{ resolve(respone) },\n err => { reject(err) } \n );\n }); \n }\n\n public removeCard(card){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/payment/removeCard`, {token: card.token}, {responseType: 'json', headers: this.headers}).subscribe(\n respone =>{ resolve(respone) },\n err => { reject(err) } \n );\n }); \n }\n\n public getSubscriptions(){\n return new Promise((resolve, reject) => {\n this.http.get(`${environment.restful}/api/payment/subscriptions`, {responseType: 'json', headers: this.headers}).subscribe(\n respone =>{ resolve(respone) },\n err => { reject(err) } \n );\n }); \n }\n\n\n public subscribe(data){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/payment/subscribe`, data, {responseType: 'json', headers: this.headers}).subscribe(\n respone =>{ resolve(respone) },\n err => { reject(err) } \n );\n }); \n }\n\n\n\n public updateAutoRenewSubscription(data){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/payment/updateAutoRenewSubscription`, data, {responseType: 'json', headers: this.headers}).subscribe(\n respone =>{ resolve(respone) },\n err => { reject(err) } \n );\n }); \n }\n\n\n public getPlans(){\n return new Promise((resolve, reject) => {\n this.http.get(`${environment.restful}/api/payment/plan`, {responseType: 'json', headers: this.headers}).subscribe(\n respone =>{ resolve(respone) },\n err => { reject(err) } \n );\n }); \n }\n\n\n\n public getSelfHostingPlans(){\n return new Promise((resolve, reject) => {\n this.http.get(`${environment.restful}/api/payment/selfHostingPlan`, {responseType: 'json', headers: this.headers}).subscribe(\n respone =>{ resolve(respone) },\n err => { reject(err) } \n );\n }); \n }\n\n\n\n public addAddress(address){\n return new Promise((resolve, reject) => {\n this.http.post(`${environment.restful}/api/payment/address`, address, {responseType: 'json', headers: this.headers}).subscribe(\n respone =>{ resolve(respone) },\n err => { reject(err) } \n );\n }); \n }\n\n\n public getBillingHistory(){\n return new Promise((resolve, reject) => {\n this.http.get(`${environment.restful}/api/payment/billingHistory`, {responseType: 'json', headers: this.headers}).subscribe(\n respone =>{ \n resolve(respone) \n },\n err => { reject(err);} \n );\n }); \n }\n\n\n\n public getBillingPDF(item){\n return new Promise((resolve, reject) => {\n \n this.http.get(`${environment.restful}/api/payment/report?invoiceId=${item.invoiceId}`, { headers: this.headers, responseType: 'blob' as 'json'} )\n \n .subscribe(res => { \n var url = window.URL.createObjectURL(res);\n var a = document.createElement('a');\n document.body.appendChild(a);\n a.setAttribute('style', 'display: none');\n a.href = url;\n a.download = item.invoiceId;\n a.click();\n window.URL.revokeObjectURL(url);\n a.remove(); // remove the element\n resolve(true);\n }, error => {\n console.log('download error:', JSON.stringify(error));\n reject(error);\n }, () => {\n console.log('Completed file download.')\n });\n \n }); \n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { environment } from './../../environments/environment';\nimport { AuthenticationService } from './authentication.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UploadService {\n\n headers: any = null;\n\n constructor(private http: HttpClient, private authService:AuthenticationService) {\n if(this.authService.user){\n const headers = new HttpHeaders({\n 'access-token': this.authService.user.accessToken,\n });\n this.headers = headers;\n }\n\n this.authService.user$.subscribe(user => {\n let headers;\n if(user){\n headers = new HttpHeaders({\n 'access-token': user.accessToken\n });\n } \n this.headers = headers;\n });\n\n }\n\n\n public upload(image: File){\n return new Promise((resolve, reject) => { \n const formData = new FormData(); \n \n formData.append('file', image);\n this.headers.append('Content-Type', 'multipart/form-data');\n \n\n this.http.post(`${environment.restful}/api/upload`, formData, {responseType: 'json', headers: this.headers}).subscribe((respone : any)=>{\n resolve(respone);\n this.authService.updateUser({avatar:respone});\n },\n err => {\n reject(err);\n });\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: true,\n restful: 'https://sandbox.cosync.net',\n webUrl: 'https://portal.cosync.net',\n tokenizationKeys:\"production_x6z6h86y_nysd7fnxdddcmysz\"\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.error(err));\n"],"sourceRoot":"webpack:///"}