@tapni/auth 0.0.2 → 0.0.3

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 (50) hide show
  1. package/dist/TapniAuth.es.js +1 -1
  2. package/dist/TapniAuth.umd.js +1 -1
  3. package/package.json +3 -2
  4. package/src/App.vue +269 -0
  5. package/src/components/Language.vue +158 -0
  6. package/src/components/LinkIcon.vue +288 -0
  7. package/src/components/ModalOverlay.vue +67 -0
  8. package/src/components/SSO.vue +126 -0
  9. package/src/components/SSOPick.vue +166 -0
  10. package/src/install.js +8 -0
  11. package/src/main.js +96 -0
  12. package/src/mixins/apple.mixin.js +60 -0
  13. package/src/mixins/auth.mixin.js +525 -0
  14. package/src/mixins/facebook.mixin.js +78 -0
  15. package/src/mixins/global.mixin.js +110 -0
  16. package/src/mixins/google.mixin.js +61 -0
  17. package/src/mixins/microsoft.mixin.js +88 -0
  18. package/src/mixins/okta.mixin.js +132 -0
  19. package/src/mixins/qr-auth.mixin.js +112 -0
  20. package/src/mixins/saml.mixin.js +84 -0
  21. package/src/router/index.js +9 -0
  22. package/src/routes.js +55 -0
  23. package/src/services/Api.js +55 -0
  24. package/src/services/AuthService.js +71 -0
  25. package/src/services/CompanyService.js +13 -0
  26. package/src/services/DeviceService.js +10 -0
  27. package/src/services/UserService.js +49 -0
  28. package/src/services/UtilService.js +221 -0
  29. package/src/store/constants.js +8 -0
  30. package/src/store/event-bus.js +30 -0
  31. package/src/store/locales/cn.js +462 -0
  32. package/src/store/locales/de.js +528 -0
  33. package/src/store/locales/en.js +514 -0
  34. package/src/store/locales/es.js +536 -0
  35. package/src/store/locales/fr.js +520 -0
  36. package/src/store/locales/it.js +518 -0
  37. package/src/store/locales/kr.js +496 -0
  38. package/src/store/locales/lang.js +47 -0
  39. package/src/store/locales/sr.js +497 -0
  40. package/src/store/locales/tr.js +491 -0
  41. package/src/styles/framework.css +4012 -0
  42. package/src/styles/inter.ttf +0 -0
  43. package/src/styles/style.css +618 -0
  44. package/src/views/Callback.vue +47 -0
  45. package/src/views/Login.vue +389 -0
  46. package/src/views/QR.vue +39 -0
  47. package/src/views/Register.vue +217 -0
  48. package/src/views/Reset.vue +155 -0
  49. package/src/views/Verify.vue +170 -0
  50. package/src/views/Welcome.vue +69 -0
Binary file
@@ -0,0 +1,618 @@
1
+ @charset "utf-8";
2
+
3
+ @font-face {
4
+ font-family: 'Inter', sans-serif;
5
+ src: url(./inter.ttf) format('truetype');
6
+ }
7
+
8
+ .footer-logo {
9
+ height: 25px;
10
+ background-size: 120px 23px;
11
+ }
12
+
13
+ .footer-light .footer-logo {
14
+ background-image: url(https://cdn.tapni.co/images/logo-dark-app.png);
15
+ }
16
+
17
+ .footer-dark .footer-logo {
18
+ background-image: url(https://cdn.tapni.co/images/logo-light-color.png);
19
+ }
20
+
21
+ .menu-dark.menu-large .menu-logo {
22
+ background-image: url(https://cdn.tapni.co/images/logo-light-color.png);
23
+ }
24
+
25
+ .menu-light.menu-large .menu-logo {
26
+ background-image: url(https://cdn.tapni.co/images/logo-dark-app.png);
27
+ }
28
+
29
+ .menu-large .menu-logo {
30
+ background-size: 105px 40px;
31
+ }
32
+
33
+ .menu-thumbnails .menu-logo .menu-logo-image {
34
+ height: 20px;
35
+ background-size: 100px 19px;
36
+ }
37
+
38
+ .menu-dark.menu-thumbnails .menu-logo .menu-logo-image {
39
+ background-image: url(https://cdn.tapni.co/images/logo-light-color.png);
40
+ }
41
+
42
+ .menu-light.menu-thumbnails .menu-logo .menu-logo-image {
43
+ background-image: url(https://cdn.tapni.co/images/logo-dark-app.png);
44
+ }
45
+
46
+ .preloader-dark h1 {
47
+ background: url(https://cdn.tapni.co/images/logo-dark-app.png) center center no-repeat;
48
+ }
49
+
50
+ .preloader-light h1 {
51
+ background: url(https://cdn.tapni.co/images/logo-light-color.png) center center no-repeat;
52
+ }
53
+
54
+ .profile-logo {
55
+ background-image: url(https://cdn.tapni.co/images/logo-dark-app.png);
56
+ background-size: 74px 14px;
57
+ height: 55px;
58
+ }
59
+
60
+
61
+ /*----Preloader----*/
62
+ .preloader-dark {
63
+ background: linear-gradient(#000000, #107be5) !important;
64
+ }
65
+
66
+ .preloader-dark .cp1,
67
+ .preloader-dark .cp2 {
68
+ opacity: 0.05;
69
+ background-color: #FFFFFF !important;
70
+ }
71
+
72
+ .preloader-dark em {
73
+ color: rgba(255, 255, 255, 0.3);
74
+ }
75
+
76
+ .preloader-light {
77
+ background-color: #FFFFFF !important;
78
+ }
79
+
80
+ .preloader-light .cp1,
81
+ .preloader-dark .cp2 {
82
+ opacity: 0.05;
83
+ background-color: #000000 !important;
84
+ }
85
+
86
+ .preloader-light em {
87
+ color: rgba(0, 0, 0, 0.8);
88
+ }
89
+
90
+ #preloader h1 {
91
+ width: 100%;
92
+ height: 132px;
93
+ margin-top: 110px;
94
+ }
95
+
96
+ #preloader em {
97
+ position: fixed;
98
+ width: 100%;
99
+ max-width: 500px;
100
+ bottom: 20px;
101
+ font-style: normal;
102
+ color: #ffffff;
103
+ text-align: center;
104
+ font-size: 14px;
105
+ line-height: 22px;
106
+ }
107
+
108
+ #preloader p {
109
+ text-align: center;
110
+ color: #bcd3e8;
111
+ top: 60px;
112
+ font-size: 17px;
113
+ }
114
+
115
+ #preloader {
116
+ position: fixed;
117
+ top: 0;
118
+ left: 0;
119
+ right: 0;
120
+ bottom: 0;
121
+ background-color: #000;
122
+ z-index: 999999999 !important;
123
+ pointer-events: none;
124
+ opacity: 1;
125
+ transition: all 500ms ease;
126
+ }
127
+
128
+ #preload-spinner,
129
+ .preload-spinner {
130
+ animation: preload-spin1 1.2s ease infinite;
131
+ clip: rect(0, 40px, 40px, 20px);
132
+ height: 40px;
133
+ width: 40px;
134
+ position: absolute;
135
+ left: 50%;
136
+ margin-left: -20px;
137
+ top: 65%;
138
+ margin-top: -20px;
139
+ }
140
+
141
+ #preload-spinner:after,
142
+ .preload-spinner:after {
143
+ animation: preload-spin2 1.2s ease-in-out infinite;
144
+ clip: rect(0, 40px, 40px, 20px);
145
+ content: '';
146
+ border-radius: 50%;
147
+ height: 40px;
148
+ width: 40px;
149
+ position: absolute;
150
+ box-shadow: inset #000000 0 0 0 1px;
151
+
152
+ }
153
+
154
+ @keyframes preload-spin1 {
155
+ 25% {
156
+ transform: rotate(0deg)
157
+ }
158
+
159
+ 100% {
160
+ transform: rotate(185deg)
161
+ }
162
+ }
163
+
164
+ @keyframes preload-spin2 {
165
+ 0% {
166
+ transform: rotate(-175deg);
167
+ }
168
+
169
+ 100% {
170
+ transform: rotate(175deg);
171
+ }
172
+ }
173
+
174
+ .regtype {
175
+ display: block;
176
+ width: 100%;
177
+ height: 20px;
178
+ }
179
+
180
+ .regtype>a {
181
+ font-size: 16px;
182
+ color: #444;
183
+ }
184
+
185
+ .dot-left:before {
186
+ content: "\2022";
187
+ color: #05668D;
188
+ }
189
+
190
+ .dot-right:after {
191
+ content: "\2022";
192
+ color: #05668D;
193
+ }
194
+
195
+ .register {
196
+ overflow: hidden;
197
+ min-width: 270px;
198
+ max-width: 450px;
199
+ margin: 0px auto 30px auto;
200
+ }
201
+
202
+ .lazy-scroll {
203
+ /*
204
+ overflow: scroll;
205
+ -webkit-overflow-scrolling: touch;
206
+ */
207
+ /* lets it scroll lazy */
208
+ }
209
+
210
+ .vue-rate-it-rating {
211
+ margin: 0 auto;
212
+ }
213
+
214
+ @media only screen and (min-width: 450px) {
215
+ .circle-green-button {
216
+ width: 300px;
217
+ height: 60px;
218
+ bottom: 30px;
219
+ left: 50%;
220
+ margin-top: -120px;
221
+ margin-left: -150px;
222
+ border-radius: 16px !important;
223
+ cursor: pointer;
224
+ }
225
+
226
+ .circle-green-button:before {
227
+ content: "Internet";
228
+ font-size: 20px;
229
+ margin: -5px 15px 10px 30px;
230
+ line-height: 30px;
231
+ }
232
+ }
233
+
234
+ .pulse-border {
235
+ border-radius: 23%;
236
+ }
237
+
238
+ .pulse {
239
+ box-shadow: 0 0 0 rgba(33, 255, 11, 0.9);
240
+ animation: pulse 1.5s infinite;
241
+ }
242
+
243
+ .pulse:hover,
244
+ .pulse:active,
245
+ .pulse:focus {
246
+ animation: pulse 1.5s infinite;
247
+ }
248
+
249
+ @-webkit-keyframes pulse {
250
+ 0% {
251
+ -webkit-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.4);
252
+ }
253
+
254
+ 70% {
255
+ -webkit-box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);
256
+ }
257
+
258
+ 100% {
259
+ -webkit-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);
260
+ }
261
+ }
262
+
263
+ @keyframes pulse {
264
+ 0% {
265
+ -moz-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.4);
266
+ box-shadow: 0 0 0 0 rgba(204, 169, 44, 0.4);
267
+ }
268
+
269
+ 70% {
270
+ -moz-box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);
271
+ box-shadow: 0 0 0 10px rgba(204, 169, 44, 0);
272
+ }
273
+
274
+ 100% {
275
+ -moz-box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);
276
+ box-shadow: 0 0 0 0 rgba(204, 169, 44, 0);
277
+ }
278
+ }
279
+
280
+ /* Button like */
281
+ .button-like {
282
+ position: relative;
283
+ text-align: center;
284
+ color: #8a8a8a;
285
+ transition: all ease 0.4s;
286
+ }
287
+
288
+ .button-like .fa,
289
+ .button-like span {
290
+ transition: all ease 0.4s;
291
+ }
292
+
293
+ .liked .fa,
294
+ .liked span {
295
+ color: #e74c3c;
296
+ }
297
+
298
+ .button-like-card {
299
+ width: 54px;
300
+ height: 54px;
301
+ border-radius: 60px;
302
+ position: absolute;
303
+ background-color: #e7e7e7;
304
+ right: 15px;
305
+ z-index: 15;
306
+ }
307
+
308
+ h1,
309
+ h2,
310
+ h3,
311
+ h4,
312
+ h5,
313
+ h6,
314
+ strong {
315
+ color: #1d1d1d;
316
+ ;
317
+ }
318
+
319
+ .back-button {
320
+ padding: 12px;
321
+ text-align: center;
322
+ color: #3e5674;
323
+ width: 60%;
324
+ border-radius: 14px;
325
+ margin: 10px auto 20px;
326
+ background-color: rgba(0, 0, 0, 0);
327
+
328
+ }
329
+
330
+ .back-button:before {
331
+ content: "\f104";
332
+ font-size: 20px;
333
+ vertical-align: bottom;
334
+ margin-right: 15px;
335
+ margin-left: -15px;
336
+ }
337
+
338
+ @media only screen and (max-width: 450px) {
339
+ .link-grid .user-link-img {
340
+ width: 100%;
341
+ display: inline-block;
342
+ }
343
+ }
344
+
345
+ @media only screen and (max-width: 400px) {
346
+ .link-grid .user-link-img {
347
+ width: 100%;
348
+ display: inline-block;
349
+ }
350
+ }
351
+
352
+ @media only screen and (max-width: 380px) {
353
+ .link-grid .user-link-img {
354
+ width: 100%;
355
+ display: inline-block;
356
+ }
357
+
358
+ /* Home */
359
+ .user-name {
360
+ margin-top: 10px !important;
361
+ }
362
+
363
+ .user-username {
364
+ margin-top: 50px !important;
365
+ }
366
+
367
+ .user-bio {
368
+ font-size: 14px !important;
369
+ width: 100% !important;
370
+ padding: 7px 10px;
371
+ color: #1d1d1d;
372
+ border-radius: 12px !important;
373
+ }
374
+
375
+ .user-work {
376
+ margin-top: 10px;
377
+ font-size: 14px !important;
378
+ }
379
+
380
+ .user-location {
381
+ margin-top: 5px !important;
382
+ font-size: 14px !important;
383
+ padding-left: 25px !important;
384
+ }
385
+
386
+ .post-text {
387
+ font-size: 11px !important;
388
+ }
389
+
390
+ .post-title {
391
+ font-size: 14px !important;
392
+ }
393
+
394
+
395
+ .photo-upload {
396
+ font-size: 10px !important;
397
+ margin-top: -30px !important;
398
+ margin-left: 65px !important;
399
+ height: 25px !important;
400
+ line-height: 16px !important;
401
+ }
402
+
403
+ #public-section h5 {
404
+ font-size: 14px !important;
405
+ }
406
+
407
+ #public-section p {
408
+ font-size: 12px !important;
409
+ }
410
+
411
+ #direct-section {
412
+ height: 90px !important;
413
+ }
414
+
415
+ #direct-section h5 {
416
+ font-size: 14px !important;
417
+ }
418
+
419
+ #direct-section p {
420
+ font-size: 12px !important;
421
+ }
422
+
423
+ /* Company Page */
424
+ .company-name-company {
425
+ font-size: 19px !important;
426
+ }
427
+
428
+ .company-logo-company {
429
+ width: 90px !important;
430
+ height: 90px !important;
431
+ }
432
+
433
+ .company-short-desc-company {
434
+ font-size: 13px !important;
435
+ }
436
+ }
437
+
438
+ .fade-enter-active,
439
+ .fade-leave-active {
440
+ transition: opacity .5s;
441
+ }
442
+
443
+ .fade-enter,
444
+ .fade-leave-to
445
+
446
+ /* .fade-leave-active below version 2.1.8 */
447
+ {
448
+ opacity: 0;
449
+ }
450
+
451
+ .user-tag {
452
+ padding: 0 10px;
453
+ text-align: center;
454
+ display: inline-block;
455
+ }
456
+
457
+ .user-tag-img {
458
+ width: 150px;
459
+ max-width: 80%;
460
+ border-radius: 10px;
461
+ margin: 0 auto;
462
+ box-shadow: 0px 2px 10px rgba(200, 200, 200, 0.8);
463
+ }
464
+
465
+ /* Safari input color */
466
+ input[disabled],
467
+ textarea[disabled],
468
+ select[disabled='disabled'] {
469
+ -webkitf-text-fill-color: rgba(0, 0, 0, 1);
470
+ -webkit-opacity: 1;
471
+ color: rgba(0, 0, 0, 1);
472
+ }
473
+
474
+ #bodyId {
475
+ padding-top: 3%;
476
+ max-width: 550px !important;
477
+ margin: auto;
478
+ height: 95%!important;
479
+ margin-top: 1.5%;
480
+ border-radius: 20px;
481
+ }
482
+
483
+ .body-box-shadow {
484
+ box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.22);
485
+ }
486
+
487
+ .user-photo {
488
+ border-radius: 50%;
489
+ border: 1px solid #dddddd;
490
+ height: 100%;
491
+ object-fit: cover;
492
+ }
493
+
494
+ .transform-z {
495
+ transform: translate3d(0, 0, 0);
496
+ -webkit-transform: translate3d(0, 0, 0);
497
+ -webkit-overflow-scrolling: touch;
498
+ -webkit-backface-visibility: hidden;
499
+ -webkit-perspective: 1000;
500
+ }
501
+
502
+
503
+ .red-text {
504
+ color: #FF0000FF;
505
+ }
506
+
507
+ .underline {
508
+ text-decoration: underline;
509
+ text-underline-position: under;
510
+ }
511
+
512
+ .button--loading::after {
513
+ content: "";
514
+ position: absolute;
515
+ width: 16px;
516
+ height: 16px;
517
+ top: 0;
518
+ left: 0;
519
+ right: 0;
520
+ bottom: 0;
521
+ margin: auto;
522
+ border: 4px solid transparent;
523
+ border-top-color: #ffffff;
524
+ border-radius: 50%;
525
+ animation: button-loading-spinner 1s ease infinite;
526
+ }
527
+
528
+ .button--loading-black::after {
529
+ content: "";
530
+ position: absolute;
531
+ width: 16px;
532
+ height: 16px;
533
+ top: 0;
534
+ left: 0;
535
+ right: 0;
536
+ bottom: 0;
537
+ margin: auto;
538
+ border: 4px solid #eeeeee;
539
+ border-top-color: #0c1117;
540
+ border-radius: 50%;
541
+ animation: button-loading-spinner 1s ease infinite;
542
+ }
543
+
544
+ .button__loader {
545
+ font: bold 20px "Quicksand", san-serif;
546
+ color: #ffffff;
547
+ transition: all 0.2s;
548
+ }
549
+
550
+ .action-button {
551
+ height: 50px;
552
+ width: 95%;
553
+ text-align: center;
554
+ margin: 0 auto;
555
+ }
556
+
557
+ .float-button {
558
+ z-index: 999;
559
+ position: fixed;
560
+ left: 0;
561
+ right: 0;
562
+ margin-left: auto;
563
+ margin-right: auto;
564
+ width: 90%;
565
+ background: rgba(238, 238, 238, 0.7);
566
+ border: 2px solid #E4E4E4;
567
+ backdrop-filter: blur(15px);
568
+ -webkit-backdrop-filter: blur(25px);
569
+ max-width: 460px;
570
+ }
571
+ .bounce-button {
572
+ animation: 5s linear 0s infinite normal none running bounce;
573
+ }
574
+
575
+ .nv {
576
+ /* prevent vibration | reserved class | do not delete */
577
+ }
578
+
579
+ @keyframes button-loading-spinner {
580
+ from {
581
+ transform: rotate(0turn);
582
+ }
583
+
584
+ to {
585
+ transform: rotate(1turn);
586
+ }
587
+ }
588
+
589
+
590
+ @keyframes bounce {
591
+ 4.16% {
592
+ transform: translateY(4px);
593
+ }
594
+ 8.33% {
595
+ transform: translateY(-3px);
596
+ }
597
+ 12.48% {
598
+ transform: translateY(2px);
599
+ }
600
+ 16.66% {
601
+ transform: translateY(-1px);
602
+ }
603
+ 20.81% {
604
+ transform: translateY(1px);
605
+ }
606
+ 25% {
607
+ transform: translateY(0px);
608
+ }
609
+ }
610
+
611
+ .user-image img {
612
+ overflow: hidden;
613
+ text-indent: -10000px;
614
+ }
615
+
616
+ .input-disabled {
617
+ background-color: #eeeeee !important;
618
+ }
@@ -0,0 +1,47 @@
1
+ <template>
2
+ <div>
3
+ <h5 v-if="($route.query.platform ==='android' || $route.query.platform ==='ios') && !isNative" style="text-align: center; width: 80%; margin: 0 auto; margin-top: 260px; ">
4
+ {{ssoLang[this.appLang].you_will_be_redirected}}<br>
5
+ {{ssoLang[this.appLang].if_redirect_not_directly}}, <span @click="inAppRedirect" style="color: blue; cursor: pointer">{{ssoLang[this.appLang].click_here}}</span>.</h5>
6
+ <h4 v-else style="text-align: center; width: 80%; margin: 0 auto; margin-top: 260px; ">{{ssoLang[this.appLang].please_wait}}</h4>
7
+ </div>
8
+ </template>
9
+
10
+ <script>
11
+ /* eslint-disable */
12
+ import OktaMixin from "../mixins/okta.mixin";
13
+ import SamlMixin from "../mixins/saml.mixin";
14
+ import AuthMixin from "../mixins/auth.mixin";
15
+ import { sanitizeUrl } from '@braintree/sanitize-url';
16
+ export default {
17
+ name: "AuthCallback",
18
+ mixins: [OktaMixin, SamlMixin, AuthMixin],
19
+
20
+ data() {
21
+ return {
22
+
23
+ };
24
+ },
25
+
26
+ async mounted() {
27
+ if(this.$route.path === '/callback/auth') {
28
+ this.exchangeAuthCode({
29
+ code: this.$route.query.code
30
+ })
31
+ }
32
+ if(this.$route.path === '/callback/okta') return await this.handleOktaRedirect();
33
+ if(this.$route.path === '/callback/saml') return await this.handleSamlRedirect();
34
+ },
35
+ methods: {
36
+ inAppRedirect() {
37
+ let url = sanitizeUrl(location.href);
38
+ url = url.replace('http', 'tapni')
39
+ url = url.replace('https', 'tapni')
40
+ return window.open(url);
41
+ }
42
+ },
43
+
44
+ };
45
+ </script>
46
+
47
+ <style scoped></style>