@tapni/auth 1.0.61 → 1.0.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/.vite/manifest.json +69 -0
  2. package/dist/Apps-CwN4b-EY.js +109 -0
  3. package/dist/CustomApp-B3pFA11P.js +83 -0
  4. package/dist/QR-nYopYeWv.js +41 -0
  5. package/dist/TapniAuth.es.js +4 -0
  6. package/dist/TapniAuth.umd.js +167 -0
  7. package/dist/install-Bdvxvbg8.js +20275 -0
  8. package/dist/style.css +1 -0
  9. package/dist/web-LIfHmYL2.js +54 -0
  10. package/dist/web-UrTMimK1.js +86 -0
  11. package/dist/web-XbruGdlD.js +121 -0
  12. package/package.json +3 -2
  13. package/src/App.vue +78 -7
  14. package/src/index.js +4 -0
  15. package/src/services/Api.js +3 -3
  16. package/src/store/auth.js +23 -19
  17. package/src/store/constants.js +2 -2
  18. package/src/store/locales/cn.js +33 -31
  19. package/src/store/locales/de.js +38 -36
  20. package/src/store/locales/en.js +454 -513
  21. package/src/store/locales/es.js +34 -32
  22. package/src/store/locales/fr.js +33 -31
  23. package/src/store/locales/it.js +34 -32
  24. package/src/store/locales/ja.js +488 -0
  25. package/src/store/locales/kr.js +34 -32
  26. package/src/store/locales/lang.js +8 -0
  27. package/src/store/locales/pt.js +488 -0
  28. package/src/store/locales/sr.js +37 -35
  29. package/src/store/locales/tr.js +40 -38
  30. package/src/views/Account.vue +14 -2
  31. package/src/views/Billing.vue +216 -40
  32. package/src/views/General.vue +152 -168
  33. package/src/views/Welcome.vue +85 -66
  34. package/dist/assets/Apps-DRNQ66T5.css +0 -1
  35. package/dist/assets/Apps-Y4SdRTLA.js +0 -1
  36. package/dist/assets/Billing-Bwm-D3JZ.js +0 -1
  37. package/dist/assets/Billing-COZeuzks.css +0 -1
  38. package/dist/assets/CustomApp-BCUrlnlC.js +0 -1
  39. package/dist/assets/CustomApp-EflPiIBk.css +0 -1
  40. package/dist/assets/Inter-ZO3WBJgw.ttf +0 -0
  41. package/dist/assets/QR-DmlpvOTV.js +0 -1
  42. package/dist/assets/fontawesome-webfont-CQDK8MU3.ttf +0 -0
  43. package/dist/assets/fontawesome-webfont-DXgy9qkh.svg +0 -2671
  44. package/dist/assets/fontawesome-webfont-G5YE5S7X.eot +0 -0
  45. package/dist/assets/index-B2NkTeng.js +0 -181
  46. package/dist/assets/index-BrLpR8cl.css +0 -1
  47. package/dist/assets/web-0Odj9drH.js +0 -1
  48. package/dist/assets/web-B6dACyEr.js +0 -5
  49. package/dist/assets/web-Cw9PHD75.js +0 -1
  50. package/dist/assets/web-CzLXrrwg.js +0 -1
  51. package/dist/assets/web-D_iNPwxM.js +0 -1
  52. package/dist/assets/web-DnM9fFvq.js +0 -1
  53. package/dist/index.html +0 -39
@@ -1,175 +1,159 @@
1
1
  <template>
2
- <div class="page-login content-boxed content-boxed-padding tapni-auth-general">
3
- <a v-if="isModal" @click="close" class="color-black pull-right pointer" style="margin-top: 0px; position: absolute; right: -20px; text-align: right;">
4
- <i class="font-17 color-black">
5
- <img src="https://cdn.tapni.co/icons/down-arrow.png" class="responsive-image" style="width: 35%;"/>
6
- </i>
7
- </a>
8
- <div class="subheaderContainer full-top">
9
- <!-- Back Button -->
10
- <div v-if="isModal" class="pointer left-button" @click="$emit('update:viewProp', 'AuthAccount')">
11
- <img
12
- :src="getIcon('arrow-gray-right.svg')"
13
- height="20"
14
- width="20"
15
- class="btn-icon"
16
- style="rotate: 180deg;"
17
- />
18
- </div>
19
- <router-link v-else to="/account" class="button gray-button pointer left-button" >
20
- <img
21
- :src="getIcon('arrow-gray-right.svg')"
22
- height="20"
23
- width="20"
24
- class="btn-icon"
25
- style="rotate: 180deg;"
26
- />
27
- </router-link>
28
-
29
- <!-- Centered Text -->
30
- <h2 class="center-text" style="flex-grow: 1; text-align: center; margin: 0; font-weight: 600;">
31
- {{ssoLang[appLanguage].general }}
32
- </h2>
33
- </div>
34
-
35
- <div class="container left-text">
36
- <p class="center-text">{{ssoLang[appLanguage].general_p }}</p>
37
-
38
- <form class="full-top" @submit.prevent="submitGeneralUpdate">
39
-
40
- <h3 class="full-top bold small-bottom">{{ssoLang[appLanguage].personal_details}}</h3>
41
-
42
- <input type="text" v-model="account.name" :placeholder="ssoLang[appLanguage].name"
43
- class="edit-input h-40 lh-40 small-bottom" required style="width: 100%"/>
44
-
45
- <input disabled type="email" v-model="account.email" :placeholder="ssoLang[appLanguage].email"
46
- class="bg-white edit-input h-40 lh-40 small-bottom" required style="width: 100%"/>
47
-
48
-
49
- <h3 class="full-top bold">{{ssoLang[appLanguage].app_region}}</h3>
50
- <VueSelect v-if="account.billing"
51
- v-model="account.billing.region"
52
- :options="[
53
- { label: 'United States', value: 'us' },
54
- { label: 'United Kingdom', value: 'uk' },
55
- { label: 'European Union', value: 'eu' },
56
- { label: 'Mexico', value: 'mx' },
57
- { label: 'Mauritius', value: 'mu' },
58
- { label: 'Colombia', value: 'co' },
59
- { label: 'Serbia', value: 'sr' },
60
- { label: 'Singapore', value: 'sg' },
61
- { label: 'China', value: 'cn' },
62
- ]"
63
- :isClearable="false"
64
- placeholder="Select region"
65
- />
66
- <p v-if="false">Default currency for this region is {{account.billing?.currency?.toUpperCase()}}</p>
67
-
68
-
69
- <h3 class="full-top bold">{{ssoLang[appLanguage].app_language}}</h3>
70
- <VueSelect
71
- v-model="account.lang"
72
- :options="[
73
- { label: ssoLang[appLanguage].english, value: 'en' },
74
- { label: ssoLang[appLanguage].german, value: 'de' },
75
- { label: ssoLang[appLanguage].spanish, value: 'es' },
76
- { label: ssoLang[appLanguage].italian, value: 'it' },
77
- { label: ssoLang[appLanguage].french, value: 'fr' },
78
- { label: ssoLang[appLanguage].turkish, value: 'tr' },
79
- { label: ssoLang[appLanguage].serbian, value: 'sr' },
80
- { label: ssoLang[appLanguage].korean, value: 'kr' },
81
- { label: ssoLang[appLanguage].chinese, value: 'cn' },
82
- ]"
83
- :isClearable="false"
84
- placeholder="Select language"
85
- />
86
- <p>Translate the app on your preferred language.</p>
87
-
88
- <button
89
- type="submit"
90
- class="button black-button button-full google-button bg-tapni-grey button-90 button-center uppercase bold full-top pointer"
91
- >
92
- <span v-if="!loading">{{ ssoLang[appLanguage].save }}</span>
93
- <span v-else class="button--loading button__loader"></span>
94
- </button>
95
- </form>
96
- </div>
97
- </div>
2
+ <div class="page-login content-boxed content-boxed-padding tapni-auth-general">
3
+ <a v-if="isModal" @click="close" class="color-black pull-right pointer" style="margin-top: 0px; position: absolute; right: -20px; text-align: right">
4
+ <i class="font-17 color-black">
5
+ <img src="https://cdn.tapni.co/icons/down-arrow.png" class="responsive-image" style="width: 35%" />
6
+ </i>
7
+ </a>
8
+ <div class="subheaderContainer full-top">
9
+ <!-- Back Button -->
10
+ <div v-if="isModal" class="pointer left-button" @click="$emit('update:viewProp', 'AuthAccount')">
11
+ <img :src="getIcon('arrow-gray-right.svg')" height="20" width="20" class="btn-icon" style="rotate: 180deg" />
12
+ </div>
13
+ <router-link v-else to="/account" class="button gray-button pointer left-button">
14
+ <img :src="getIcon('arrow-gray-right.svg')" height="20" width="20" class="btn-icon" style="rotate: 180deg" />
15
+ </router-link>
16
+
17
+ <!-- Centered Text -->
18
+ <h2 class="center-text" style="flex-grow: 1; text-align: center; margin: 0; font-weight: 600">
19
+ {{ ssoLang[appLanguage].general }}
20
+ </h2>
21
+ </div>
22
+
23
+ <div class="container left-text">
24
+ <p class="center-text">{{ ssoLang[appLanguage].general_p }}</p>
25
+
26
+ <form class="full-top" @submit.prevent="submitGeneralUpdate">
27
+ <h3 class="full-top bold small-bottom">{{ ssoLang[appLanguage].personal_details }}</h3>
28
+
29
+ <input type="text" v-model="account.name" :placeholder="ssoLang[appLanguage].name" class="edit-input h-40 lh-40 small-bottom" required style="width: 100%" />
30
+
31
+ <input disabled type="email" v-model="account.email" :placeholder="ssoLang[appLanguage].email" class="bg-white edit-input h-40 lh-40 small-bottom" required style="width: 100%" />
32
+
33
+ <h3 class="full-top bold">{{ ssoLang[appLanguage].app_region }}</h3>
34
+ <VueSelect
35
+ v-if="account.billing"
36
+ v-model="account.billing.region"
37
+ :options="[
38
+ { label: 'United States', value: 'us' },
39
+ { label: 'United Kingdom', value: 'uk' },
40
+ { label: 'European Union', value: 'eu' },
41
+ { label: 'Mexico', value: 'mx' },
42
+ { label: 'Mauritius', value: 'mu' },
43
+ { label: 'Colombia', value: 'co' },
44
+ { label: 'Serbia', value: 'sr' },
45
+ { label: 'Singapore', value: 'sg' },
46
+ { label: 'China', value: 'cn' }
47
+ ]"
48
+ :isClearable="false"
49
+ placeholder="Select region"
50
+ />
51
+ <p v-if="false">Default currency for this region is {{ account.billing?.currency?.toUpperCase() }}</p>
52
+
53
+ <h3 class="full-top bold">{{ ssoLang[appLanguage].app_language }}</h3>
54
+ <VueSelect
55
+ v-model="account.lang"
56
+ :options="[
57
+ { label: ssoLang[appLanguage].english, value: 'en' },
58
+ { label: ssoLang[appLanguage].german, value: 'de' },
59
+ { label: ssoLang[appLanguage].spanish, value: 'es' },
60
+ { label: ssoLang[appLanguage].italian, value: 'it' },
61
+ { label: ssoLang[appLanguage].french, value: 'fr' },
62
+ { label: ssoLang[appLanguage].turkish, value: 'tr' },
63
+ { label: ssoLang[appLanguage].serbian, value: 'sr' },
64
+ { label: ssoLang[appLanguage].korean, value: 'kr' },
65
+ { label: ssoLang[appLanguage].chinese, value: 'cn' },
66
+ { label: ssoLang[appLanguage].portuguese, value: 'pt' },
67
+ { label: ssoLang[appLanguage].japanese, value: 'ja' }
68
+ ]"
69
+ :isClearable="false"
70
+ placeholder="Select language"
71
+ />
72
+ <p>Translate the app on your preferred language.</p>
73
+
74
+ <button type="submit" class="button black-button button-full google-button bg-tapni-grey button-90 button-center uppercase bold full-top pointer">
75
+ <span v-if="!loading">{{ ssoLang[appLanguage].save }}</span>
76
+ <span v-else class="button--loading button__loader"></span>
77
+ </button>
78
+ </form>
79
+ </div>
80
+ </div>
98
81
  </template>
99
82
 
100
-
101
83
  <script>
102
- import AuthMixin from "../mixins/auth.mixin";
103
- import UserService from '../services/UserService'
104
- import to from "await-to-js";
105
- import {EventBus} from "@/store/event-bus.js";
106
- import VueSelect from "vue3-select-component";
84
+ import AuthMixin from '../mixins/auth.mixin';
85
+ import UserService from '../services/UserService';
86
+ import to from 'await-to-js';
87
+ import { EventBus } from '@/store/event-bus.js';
88
+ import VueSelect from 'vue3-select-component';
107
89
 
108
90
  export default {
109
- name: "AuthGeneral",
110
- mixins: [AuthMixin],
111
- components: {
112
- VueSelect
113
- },
114
- props: {
115
- isModal: {
116
- type: Boolean,
117
- default: false
118
- },
119
- payload: {
120
- type: Object,
121
- default: {}
122
- },
123
- },
124
- data () {
125
- return {
126
- loading: false,
127
- }
128
- },
129
- watch: {
130
- 'account.lang': {
131
- handler(newLang) {
132
- if (newLang) {
133
- this.updateLang(newLang);
134
- if (this.display === 'npm') {
135
- this.$store.commit('setLanguage', newLang);
136
- }
137
- }
138
- },
139
- immediate: true
140
- }
141
- },
142
- async mounted() {
143
- if (!this.isLoggedIn) this.$router.push('/login');
144
- if (this.isEmpty(this.account)) this.$router.push('/account');
145
- },
146
- methods: {
147
- close () {
148
- EventBus.$emit('ssoEvent', {name: 'toggleAuthModal', data: true})
149
- },
150
- async submitGeneralUpdate () {
151
- this.loading = true;
152
- console.log(this.account);
153
- const data = {
154
- name: this.account.name,
155
- lang: this.account.lang,
156
- email: this.account.email,
157
- billing: this.account.billing ? {
158
- region: this.account.billing.region
159
- } : undefined
160
- };
161
-
162
- const [err, response] = await to(UserService.updateAccount(data));
163
-
164
- if (err) {
165
- this.errorHandler(err);
166
- } else if (response.data.success) {
167
- this.successSnack(this.ssoLang[this.appLanguage].profile_update_success);
168
- await this.getAccountSettings();
169
- }
170
-
171
- this.loading = false;
172
- },
173
- }
91
+ name: 'AuthGeneral',
92
+ mixins: [AuthMixin],
93
+ components: {
94
+ VueSelect
95
+ },
96
+ props: {
97
+ isModal: {
98
+ type: Boolean,
99
+ default: false
100
+ },
101
+ payload: {
102
+ type: Object,
103
+ default: {}
104
+ }
105
+ },
106
+ data() {
107
+ return {
108
+ loading: false
109
+ };
110
+ },
111
+ watch: {
112
+ 'account.lang': {
113
+ handler(newLang) {
114
+ if (newLang) {
115
+ this.updateLang(newLang);
116
+ if (this.display === 'npm') {
117
+ this.$store.commit('setLanguage', newLang);
118
+ }
119
+ }
120
+ },
121
+ immediate: true
122
+ }
123
+ },
124
+ async mounted() {
125
+ if (!this.isLoggedIn) this.$router.push('/login');
126
+ await this.getAccountSettings();
127
+ },
128
+ methods: {
129
+ close() {
130
+ EventBus.$emit('ssoEvent', { name: 'toggleAuthModal', data: true });
131
+ },
132
+ async submitGeneralUpdate() {
133
+ this.loading = true;
134
+ console.log(this.account);
135
+ const data = {
136
+ name: this.account.name,
137
+ lang: this.account.lang,
138
+ email: this.account.email,
139
+ billing: this.account.billing
140
+ ? {
141
+ region: this.account.billing.region
142
+ }
143
+ : undefined
144
+ };
145
+
146
+ const [err, response] = await to(UserService.updateAccount(data));
147
+
148
+ if (err) {
149
+ this.errorHandler(err);
150
+ } else if (response.data.success) {
151
+ this.successSnack(this.ssoLang[this.appLanguage].profile_update_success);
152
+ await this.getAccountSettings();
153
+ }
154
+
155
+ this.loading = false;
156
+ }
157
+ }
174
158
  };
175
- </script>
159
+ </script>
@@ -1,79 +1,98 @@
1
1
  <template>
2
- <div class="page-login content-boxed content-boxed-padding center-text" style="margin-top: -1px; overflow: hidden; border: solid 0px #ffffff;">
3
- <video id="tapniVideo" muted loop playsinline width="350" style="margin: 0 auto; max-width: 100%; margin-top: 63px; overflow: hidden;" :autoplay="isNative">
4
- <source src="https://cdn.tapni.co/images/tapni-card-tap-video-white.mp4" type="video/mp4">
5
- </video>
6
- <h1 class="bold full-top no-bottom center-text text-[24px]">{{ssoLang[this.appLanguage].welcome}}</h1>
7
- <p class="full-bottom half-top center-text color-black font-16">{{ssoLang[this.appLanguage].welcome_p1}}</p>
8
- <router-link v-if="false" to="/help" class="button-center button button-90 google-button pointer edit-shadow full-top full-bottom">
9
- <span> {{ssoLang[this.appLanguage].how_it_works}}? </span>
10
- </router-link>
11
- <div v-if="false" class="decoration decoration-lines-thin full-top"></div>
12
- <router-link to="register" exact class="button-center button button-90 google-button bg-tapni-grey pointer">
13
- <span> {{ssoLang[this.appLanguage].create_account}} </span>
14
- </router-link>
15
- <div class="page-login-links center-text">
16
- <router-link to="/login">{{ssoLang[this.appLanguage].already_registered}}? <b>{{ssoLang[this.appLanguage].sign_in}}</b></router-link>
17
- <div class="clear"></div>
18
- </div>
19
- <a v-if="false && display === 'redirect'"
20
- @click="toggleSSOLanguageModal"
21
- class="font-18 no-border pointer color-black"
22
- style="position: absolute; right: 20px; top: -10px; z-index: 1;">
23
- <span class="lang-icon">{{ appLanguage.toUpperCase() }}</span>
24
- </a>
25
- <div v-if=(!this.isNative) style="display: flex; flex-direction: row; justify-content: space-around; width: 90%; margin: 0 auto; margin-top: 40px;" >
26
- <a href="https://play.google.com/store/apps/details?id=co.tapni.app" target="_blank"><img src="https://cdn.tapni.co/images/playstore.png" class="app-store-icon pointer" style="width:55px"/></a>
27
- <a href="https://apps.apple.com/ag/app/tapni/id1552930233" target="_blank"><img src="https://cdn.tapni.co/images/appstore.png" class="app-store-icon pointer" style="width:55px"/></a>
28
- <a href="https://appgallery.huawei.com/#/app/C103931997" target="_blank"><img src="https://cdn.tapni.co/images/appgallery.png" class="app-store-icon pointer" style="width:55px"/></a>
29
- </div>
30
- </div>
2
+ <div class="page-login content-boxed content-boxed-padding center-text" style="margin-top: -1px; overflow: hidden; border: solid 0px #ffffff">
3
+ <video id="tapniVideo" muted loop playsinline width="350" style="margin: 0 auto; max-width: 100%; margin-top: 63px; overflow: hidden" :autoplay="isNative">
4
+ <source :src="videoSource" type="video/mp4" />
5
+ </video>
6
+ <h1 class="bold full-top no-bottom center-text text-[24px]">{{ welcomeTitle }}</h1>
7
+ <p class="full-bottom half-top center-text color-black font-16">{{ welcomeSubtitle }}</p>
8
+ <router-link v-if="false" to="/help" class="button-center button button-90 google-button pointer edit-shadow full-top full-bottom">
9
+ <span> {{ ssoLang[this.appLanguage].how_it_works }}? </span>
10
+ </router-link>
11
+ <div v-if="false" class="decoration decoration-lines-thin full-top"></div>
12
+ <router-link to="register" exact class="button-center button button-90 google-button bg-tapni-grey pointer">
13
+ <span> {{ ssoLang[this.appLanguage].create_account }} </span>
14
+ </router-link>
15
+ <div class="page-login-links center-text">
16
+ <router-link to="/login"
17
+ >{{ ssoLang[this.appLanguage].already_registered }}? <b>{{ ssoLang[this.appLanguage].sign_in }}</b></router-link
18
+ >
19
+ <div class="clear"></div>
20
+ </div>
21
+ <a v-if="false && display === 'redirect'" @click="toggleSSOLanguageModal" class="font-18 no-border pointer color-black" style="position: absolute; right: 20px; top: -10px; z-index: 1">
22
+ <span class="lang-icon">{{ appLanguage.toUpperCase() }}</span>
23
+ </a>
24
+ <div v-if="!this.isNative" style="display: flex; flex-direction: row; justify-content: space-around; width: 90%; margin: 0 auto; margin-top: 40px">
25
+ <a href="https://play.google.com/store/apps/details?id=co.tapni.app" target="_blank"><img src="https://cdn.tapni.co/images/playstore.png" class="app-store-icon pointer" style="width: 55px" /></a>
26
+ <a href="https://apps.apple.com/ag/app/tapni/id1552930233" target="_blank"><img src="https://cdn.tapni.co/images/appstore.png" class="app-store-icon pointer" style="width: 55px" /></a>
27
+ <a href="https://appgallery.huawei.com/#/app/C103931997" target="_blank"><img src="https://cdn.tapni.co/images/appgallery.png" class="app-store-icon pointer" style="width: 55px" /></a>
28
+ </div>
29
+ </div>
31
30
  </template>
32
31
 
33
32
  <script>
34
- import AuthMixin from "../mixins/auth.mixin";
35
- import {EventBus} from "../store/event-bus";
33
+ import AuthMixin from '../mixins/auth.mixin';
34
+ import { EventBus } from '../store/event-bus';
36
35
 
37
36
  export default {
38
- name: 'AuthWelcome',
39
- mixins: [AuthMixin],
40
- data () {
41
- return {
42
- loading: true
43
- }
44
- },
45
- async mounted () {
46
- // Autoplay video - iOS 12 controls fix
47
- let videoElement = document.getElementById('tapniVideo');
48
- // Ensure the video is ready to play
49
- videoElement.addEventListener('canplay', function() {
50
- // Check if the video element is still in the DOM
51
- if (document.body.contains(videoElement)) {
52
- try {
53
- videoElement.play()
54
- } catch (error) {
55
- console.error('Play was interrupted:', error);
56
- }
57
- }
58
- });
37
+ name: 'AuthWelcome',
38
+ mixins: [AuthMixin],
39
+ data() {
40
+ return {
41
+ loading: true
42
+ };
43
+ },
44
+ computed: {
45
+ isTapstackOrigin() {
46
+ if (typeof window === 'undefined') return false;
47
+ try {
48
+ const hostname = new URL(window.location.origin).hostname;
49
+ return /(^|\.)tapstack\.com$/i.test(hostname);
50
+ } catch (e) {
51
+ return false;
52
+ }
53
+ },
54
+ videoSource() {
55
+ return this.isTapstackOrigin ? 'https://cdn.tapni.co/images/tapstack-video.mp4' : 'https://cdn.tapni.co/images/tapni-card-tap-video-white.mp4';
56
+ },
57
+ welcomeTitle() {
58
+ return this.isTapstackOrigin ? 'Welcome' : this.ssoLang[this.appLanguage].welcome;
59
+ },
60
+ welcomeSubtitle() {
61
+ // Custom tagline for tapstack.com (alternative to tanstack)
62
+ return this.isTapstackOrigin ? 'The modern stack for interactive docs and tools' : this.ssoLang[this.appLanguage].welcome_p1;
63
+ }
64
+ },
65
+ async mounted() {
66
+ // Autoplay video - iOS 12 controls fix
67
+ let videoElement = document.getElementById('tapniVideo');
68
+ // Ensure the video is ready to play
69
+ videoElement.addEventListener('canplay', function () {
70
+ // Check if the video element is still in the DOM
71
+ if (document.body.contains(videoElement)) {
72
+ try {
73
+ videoElement.play();
74
+ } catch (error) {
75
+ console.error('Play was interrupted:', error);
76
+ }
77
+ }
78
+ });
59
79
 
60
- setTimeout(() => {
61
- if (this.$storex && this.$storex.token) {
62
- if (import.meta.env.VITE_APP_MODE === 'npm') this.$router.push(this.home);
63
- else if (import.meta.env.VITE_APP_MODE === 'redirect') location.href = this.home
64
- } else {
65
- EventBus.$emit('ssoEvent', {name: 'setLoading', data: false})
66
- }
67
- }, 500)
68
- },
69
- methods: {
70
- }
71
- }
80
+ setTimeout(() => {
81
+ if (this.$storex && this.$storex.token) {
82
+ if (import.meta.env.VITE_APP_MODE === 'npm') this.$router.push(this.home);
83
+ else if (import.meta.env.VITE_APP_MODE === 'redirect') location.href = this.home;
84
+ } else {
85
+ EventBus.$emit('ssoEvent', { name: 'setLoading', data: false });
86
+ }
87
+ }, 500);
88
+ },
89
+ methods: {}
90
+ };
72
91
  </script>
73
92
 
74
93
  <style scoped>
75
94
  .app-store-icon {
76
- box-shadow: 0px 4px 10px 0px rgb(0 0 0 / 9%);
77
- border-radius: 12px;
95
+ box-shadow: 0px 4px 10px 0px rgb(0 0 0 / 9%);
96
+ border-radius: 12px;
78
97
  }
79
98
  </style>
@@ -1 +0,0 @@
1
- .withBackground[data-v-2f7f5584]{height:50px}
@@ -1 +0,0 @@
1
- import{e as l,_ as g,A as u,E as _,c as n,a as s,f as r,g as h,w as f,t as i,F as m,h as b,r as y,o}from"./index-B2NkTeng.js";const w={async getRecordById(t){return l().post("/objects/record/"+t.id,t)},async getRecords(t){return l().post("/objects/records",t)}},k={name:"AuthApps",mixins:[u],props:{payload:{type:Object,default:{}}},data(){return{loading:!1,apps:[]}},async mounted(){this.isLoggedIn||this.$router.push("/login");const t=await w.getRecords({objectId:"6dc545ea-2e2f-4720-b4fe-c5ebdd8af063",query:{fields:["t_apps_name","t_apps_icon","t_apps_url"],relations:[]}});this.apps=t.data.records},methods:{close(){_.$emit("ssoEvent",{name:"toggleAuthModal",data:!0})}}},v={class:"page-login content-boxed content-boxed-padding"},x={class:"subheaderContainer full-top"},B=["src"],I={class:"center-text",style:{"flex-grow":"1","text-align":"center",margin:"0","font-weight":"600"}},A={class:"container left-text"},L={class:"center-text"},C={class:"full-top"},M=["href"],R={class:"firstRow"},j=["src"],E=["src"];function $(t,a,F,N,d,c){const p=y("router-link");return o(),n("div",v,[t.isModal?(o(),n("a",{key:0,onClick:a[0]||(a[0]=(...e)=>c.close&&c.close(...e)),class:"color-black pull-right pointer",style:{"margin-top":"0px",position:"absolute",right:"-20px","text-align":"right"}},a[1]||(a[1]=[s("i",{class:"font-17 color-black"},[s("img",{src:"https://cdn.tapni.co/icons/down-arrow.png",class:"responsive-image",style:{width:"35%"}})],-1)]))):r("",!0),s("div",x,[t.isModal?r("",!0):(o(),h(p,{key:0,to:"/account",class:"button gray-button pointer left-button"},{default:f(()=>[s("img",{src:t.getIcon("arrow-gray-right.svg"),height:"20",width:"20",class:"btn-icon",style:{rotate:"180deg"}},null,8,B)]),_:1})),s("h2",I,i(t.ssoLang[t.appLanguage].apps),1)]),s("div",A,[s("p",L,i(t.ssoLang[t.appLanguage].apps_p),1),s("div",C,[r("",!0),(o(!0),n(m,null,b(d.apps,e=>(o(),n("a",{key:e.id,href:e.t_apps_url,target:"_blank",class:"settingRow half-bottom"},[s("div",R,[s("img",{src:t.getIcon(e.t_apps_icon),class:"withBackground"},null,8,j),s("h4",null,i(e.t_apps_name),1),s("img",{src:t.getIcon("arrow-gray-right.svg")},null,8,E)])],8,M))),128))])])])}const V=g(k,[["render",$],["__scopeId","data-v-2f7f5584"]]);export{V as default};
@@ -1 +0,0 @@
1
- import{_ as p,A as u,i as g,E as _,c as i,a as s,f as r,g as h,w as b,t as a,d as m,F as f,h as y,r as v,o as e}from"./index-B2NkTeng.js";const w={name:"AuthBilling",mixins:[u],props:{payload:{type:Object,default:{}}},data(){return{loading:!1,subscriptions:[]}},async mounted(){this.isLoggedIn||this.$router.push("/login");const t=await g.getRecords({objectId:"6dc545ea-2e2f-4720-b4fe-c5ebdd8af066",query:{where:{account:this.account.id},fields:["t_subscriptions_name","t_subscriptions_desc","t_subscriptions_type","t_subscriptions_active","t_subscriptions_app"],relations:{t_subscriptions_app:{fields:["t_apps_name","t_apps_icon","t_apps_url"],relations:{}}}}});this.subscriptions=t.data.records},methods:{close(){_.$emit("ssoEvent",{name:"toggleAuthModal",data:!0})}}},k={class:"page-login content-boxed content-boxed-padding"},B={class:"subheaderContainer full-top"},x=["src"],I={class:"center-text",style:{"flex-grow":"1","text-align":"center",margin:"0","font-weight":"600"}},L={class:"container left-text"},A={class:"center-text"},C={class:"full-top"},E={class:"firstRow"},M=["src"],N=["src"];function R(t,o,V,$,l,c){const d=v("router-link");return e(),i("div",k,[t.isModal?(e(),i("a",{key:0,onClick:o[0]||(o[0]=(...n)=>c.close&&c.close(...n)),class:"color-black pull-right pointer",style:{"margin-top":"0px",position:"absolute",right:"-20px","text-align":"right"}},o[1]||(o[1]=[s("i",{class:"font-17 color-black"},[s("img",{src:"https://cdn.tapni.co/icons/down-arrow.png",class:"responsive-image",style:{width:"35%"}})],-1)]))):r("",!0),s("div",B,[t.isModal?r("",!0):(e(),h(d,{key:0,to:"/account",class:"button gray-button pointer left-button"},{default:b(()=>[s("img",{src:t.getIcon("arrow-gray-right.svg"),height:"20",width:"20",class:"btn-icon",style:{rotate:"180deg"}},null,8,x)]),_:1})),s("h2",I,a(t.ssoLang[t.appLanguage].billing),1)]),s("div",L,[s("p",A,a(t.ssoLang[t.appLanguage].billing_p),1),s("div",C,[r("",!0),m(" "+a(t.account.billing)+" ",1),(e(!0),i(f,null,y(l.subscriptions,n=>(e(),i("div",{key:n.id,class:"settingRow half-bottom"},[s("div",E,[s("img",{src:t.getIcon(t.app.t_apps_icon),class:"withBackground"},null,8,M),s("h4",null,a(n.t_subscriptions_name),1),s("img",{src:t.getIcon("arrow-gray-right.svg")},null,8,N)])]))),128))])])])}const F=p(w,[["render",R],["__scopeId","data-v-4d3e1bec"]]);export{F as default};
@@ -1 +0,0 @@
1
- .withBackground[data-v-4d3e1bec]{height:50px}
@@ -1 +0,0 @@
1
- import{_ as d,A as u,i as g,E as _,c as n,a as t,f as i,g as h,w as m,t as r,r as f,o}from"./index-B2NkTeng.js";const y={name:"AuthCustomApp",mixins:[u],props:{payload:{type:Object,default:{}}},data(){return{loading:!1,app:{}}},async mounted(){this.isLoggedIn||this.$router.push("/login");const e=await g.getRecordById({id:this.$route.params.app,query:{fields:["t_apps_name","t_apps_icon","t_apps_url"],relations:[]}});this.app=e.data.record},methods:{close(){_.$emit("ssoEvent",{name:"toggleAuthModal",data:!0})}}},b={class:"page-login content-boxed content-boxed-padding"},v={class:"subheaderContainer full-top"},x=["src"],k={class:"center-text",style:{"flex-grow":"1","text-align":"center",margin:"0","font-weight":"600"}},w={class:"container left-text"},A={class:"center-text"};function C(e,s,B,E,l,a){const p=f("router-link");return o(),n("div",b,[e.isModal?(o(),n("a",{key:0,onClick:s[0]||(s[0]=(...c)=>a.close&&a.close(...c)),class:"color-black pull-right pointer",style:{"margin-top":"0px",position:"absolute",right:"-20px","text-align":"right"}},s[1]||(s[1]=[t("i",{class:"font-17 color-black"},[t("img",{src:"https://cdn.tapni.co/icons/down-arrow.png",class:"responsive-image",style:{width:"35%"}})],-1)]))):i("",!0),t("div",v,[e.isModal?i("",!0):(o(),h(p,{key:0,to:"/apps",class:"button gray-button pointer left-button"},{default:m(()=>[t("img",{src:e.getIcon("arrow-gray-right.svg"),height:"20",width:"20",class:"btn-icon",style:{rotate:"180deg"}},null,8,x)]),_:1})),t("h2",k,r(l.app.t_apps_name),1)]),t("div",w,[t("p",A,r(e.ssoLang[e.appLanguage].apps_p),1),s[2]||(s[2]=t("div",{class:"full-top"},null,-1))])])}const M=d(y,[["render",C],["__scopeId","data-v-36b27d1f"]]);export{M as default};
@@ -1 +0,0 @@
1
- .withBackground[data-v-36b27d1f]{height:50px}
Binary file
@@ -1 +0,0 @@
1
- import{_ as a,A as l,Q as i,c as r,a as o,t,b as u,w as p,r as d,o as g,d as _}from"./index-B2NkTeng.js";const m={name:"AuthQR",mixins:[l,i]},L={class:"page-login content-boxed content-boxed-padding"},b={style:{"text-align":"center",width:"80%",margin:"0 auto","margin-top":"130px"}},h={class:"center-text"},f={style:{margin:"0 auto",width:"85%","text-align":"left"}},y={class:"center-text"};function v(e,n,w,k,C,q){const s=d("router-link");return g(),r("div",L,[o("h5",b,t(e.ssoLang[e.appLanguage].use_tapni_on_the_web),1),n[6]||(n[6]=o("br",null,null,-1)),o("div",h,[n[3]||(n[3]=o("div",{id:"qrCodeContainer",class:"qrCodeRounded",style:{"max-width":"100%"}},null,-1)),n[4]||(n[4]=o("br",null,null,-1)),n[5]||(n[5]=o("br",null,null,-1)),o("div",f,[o("h2",y,t(e.ssoLang[e.appLanguage].login_by_scanning_qr_code),1),n[0]||(n[0]=o("br",null,null,-1)),o("h4",null,t(e.ssoLang[e.appLanguage].open_tapni_app_on_your_phone),1),o("h4",null,t(e.ssoLang[e.appLanguage].go_to_settings_link_a_device),1),o("h4",null,t(e.ssoLang[e.appLanguage].point_your_phone_at_this_qr_code),1),n[1]||(n[1]=o("br",null,null,-1)),n[2]||(n[2]=o("br",null,null,-1))]),u(s,{to:"/login"},{default:p(()=>[_(t(e.ssoLang[e.appLanguage].choose_other_login_methods),1)]),_:1})])])}const A=a(m,[["render",v]]);export{A as default};