@opengovsg/mockpass 2.7.9

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 (85) hide show
  1. package/.eslintrc.json +13 -0
  2. package/.gitattributes +2 -0
  3. package/.github/dependabot.yml +14 -0
  4. package/.github/mergify.yml +12 -0
  5. package/.github/workflows/ci.yml +27 -0
  6. package/.github/workflows/npmpublish.yml +22 -0
  7. package/.gitpod.yml +5 -0
  8. package/.husky/pre-commit +4 -0
  9. package/.husky/pre-push +4 -0
  10. package/.prettierrc.js +5 -0
  11. package/Dockerfile +11 -0
  12. package/LICENSE +21 -0
  13. package/README.md +99 -0
  14. package/commitlint.config.js +7 -0
  15. package/index.js +87 -0
  16. package/lib/assertions.js +319 -0
  17. package/lib/crypto/index.js +61 -0
  18. package/lib/crypto/myinfo-signature.js +153 -0
  19. package/lib/express/index.js +6 -0
  20. package/lib/express/myinfo/consent.js +160 -0
  21. package/lib/express/myinfo/controllers.js +179 -0
  22. package/lib/express/myinfo/index.js +10 -0
  23. package/lib/express/oidc.js +131 -0
  24. package/lib/express/saml.js +171 -0
  25. package/lib/express/sgid.js +168 -0
  26. package/lib/saml-artifact.js +32 -0
  27. package/package.json +81 -0
  28. package/public/mockpass/resources/css/animate.css +43 -0
  29. package/public/mockpass/resources/css/common.css +121 -0
  30. package/public/mockpass/resources/css/reset.css +95 -0
  31. package/public/mockpass/resources/css/style-baseline-small-media.css +567 -0
  32. package/public/mockpass/resources/css/style-baseline.css +1006 -0
  33. package/public/mockpass/resources/css/style-common-small-media.css +156 -0
  34. package/public/mockpass/resources/css/style-common.css +510 -0
  35. package/public/mockpass/resources/css/style-homepage-small-media.css +588 -0
  36. package/public/mockpass/resources/css/style-homepage.css +674 -0
  37. package/public/mockpass/resources/css/style-main.css +9 -0
  38. package/public/mockpass/resources/img/ajax-loader.gif +0 -0
  39. package/public/mockpass/resources/img/ask_cheryl_tab.png +0 -0
  40. package/public/mockpass/resources/img/background/large-device/sp_bg.jpg +0 -0
  41. package/public/mockpass/resources/img/background/medium-device/ipad-bg.jpg +0 -0
  42. package/public/mockpass/resources/img/background/medium-device/ipad-landscape-sp-bg.jpg +0 -0
  43. package/public/mockpass/resources/img/background/small-device/mobile-sp-bg.jpg +0 -0
  44. package/public/mockpass/resources/img/carousel/large-device/how-to-setup-2fa-icon.png +0 -0
  45. package/public/mockpass/resources/img/carousel/large-device/register-icon.png +0 -0
  46. package/public/mockpass/resources/img/carousel/large-device/reset-password-icon.png +0 -0
  47. package/public/mockpass/resources/img/carousel/large-device/setup-2fa-icon.png +0 -0
  48. package/public/mockpass/resources/img/carousel/large-device/update-acct-icon.png +0 -0
  49. package/public/mockpass/resources/img/carousel/medium-device/ipad-register-icon.png +0 -0
  50. package/public/mockpass/resources/img/carousel/medium-device/ipad-reset-password-icon.png +0 -0
  51. package/public/mockpass/resources/img/carousel/medium-device/ipad-setup-2fa-icon.png +0 -0
  52. package/public/mockpass/resources/img/carousel/medium-device/ipad-update-acct-icon.png +0 -0
  53. package/public/mockpass/resources/img/carousel/small-device/mobile-register.png +0 -0
  54. package/public/mockpass/resources/img/carousel/small-device/mobile-reset-password-icon.png +0 -0
  55. package/public/mockpass/resources/img/carousel/small-device/mobile-update-acct-icon.png +0 -0
  56. package/public/mockpass/resources/img/close.png +0 -0
  57. package/public/mockpass/resources/img/id-pw-icon.png +0 -0
  58. package/public/mockpass/resources/img/logo/mockpass-logo.png +0 -0
  59. package/public/mockpass/resources/img/logo/mockpass-placeholder-logo.png +0 -0
  60. package/public/mockpass/resources/img/logo/mockpass_watermark.png +0 -0
  61. package/public/mockpass/resources/img/qr-icon.png +0 -0
  62. package/public/mockpass/resources/img/qr-shadow.png +0 -0
  63. package/public/mockpass/resources/img/refresh.jpg +0 -0
  64. package/public/mockpass/resources/img/sidebar-icons.png +0 -0
  65. package/public/mockpass/resources/img/sp-qr-unavailable.png +0 -0
  66. package/public/mockpass/resources/img/utility-icon-black.png +0 -0
  67. package/public/mockpass/resources/js/bootstrap.min.js +7 -0
  68. package/public/mockpass/resources/js/jquery-3.5.1.js +10872 -0
  69. package/public/mockpass/resources/js/login-common.js +849 -0
  70. package/public/mockpass/resources/plugins/bootstrap-3.3.6/css/bootstrap.min.css +6 -0
  71. package/public/mockpass/resources/plugins/bootstrap-3.3.6/fonts/glyphicons-halflings-regular.woff2 +0 -0
  72. package/static/certs/csr.pem +17 -0
  73. package/static/certs/key.pem +28 -0
  74. package/static/certs/key.pub +9 -0
  75. package/static/certs/server.crt +21 -0
  76. package/static/certs/spcp-csr.pem +17 -0
  77. package/static/certs/spcp-key.pem +28 -0
  78. package/static/certs/spcp.crt +20 -0
  79. package/static/html/consent.html +40 -0
  80. package/static/html/login-page.html +271 -0
  81. package/static/myinfo/v2.json +6154 -0
  82. package/static/myinfo/v3.json +29386 -0
  83. package/static/saml/corppass.xml +21 -0
  84. package/static/saml/unsigned-assertion.xml +24 -0
  85. package/static/saml/unsigned-response.xml +19 -0
@@ -0,0 +1,674 @@
1
+ /** Last Updated Date : 2018-12-28 11:00 AM */
2
+
3
+ body {
4
+ font-family: "Open Sans", sans-serif;
5
+ color: #2a2d33;
6
+ background: #fff;
7
+ overflow-x: hidden;
8
+ }
9
+
10
+ .dropdown-menu{
11
+ height: auto;
12
+ max-height: 300px;
13
+ overflow-x: hidden;
14
+ }
15
+
16
+ .sp-img-bg {
17
+ background: url(../../resources/img/background/large-device/sp_bg.jpg) no-repeat bottom;
18
+ -webkit-background-size: cover;
19
+ -moz-background-size: cover;
20
+ -o-background-size: cover;
21
+ background-size: cover;
22
+ height: calc(100vh - 55px);
23
+ position: relative;
24
+ min-height: 675px;
25
+ }
26
+
27
+ /* Login Modal START */
28
+ #myModalHorizontal {
29
+ position:absolute;
30
+ margin: 0px;
31
+ left: 0px;
32
+ right: 0px;
33
+ padding: 0px !important;
34
+ width: 100%;
35
+ height: 100%;
36
+ }
37
+
38
+ #cr_fonts_frame {
39
+ position: absolute;
40
+ }
41
+
42
+ .homepageLogin.modal-dialog {
43
+ position: relative;
44
+ top: 168px;
45
+ margin: 0px;
46
+ right: 3%;
47
+ float: right;
48
+ }
49
+ .eserviceLoginForm.modal-dialog {
50
+ position: relative;
51
+ margin: 0;
52
+ }
53
+ .eserviceLoginForm.st-login.modal-dialog .login-form-body {
54
+ margin: 85px 0 15px;
55
+ }
56
+ .eserviceLoginForm.st-login.modal-dialog .modal-content{
57
+ border-radius: 0;
58
+ }
59
+ .singpass-mobile-tab-note {
60
+ text-align: center;
61
+ font-size: 0.875em;
62
+ display: block;
63
+ margin: 10px 10px 10px 10px;
64
+ }
65
+ .passwordless-field-lbl {
66
+ text-align: center;
67
+ font-size: 0.875em;
68
+ display: block;
69
+ }
70
+ /* Login Modal END */
71
+
72
+ /* Login Modal Tooltip START */
73
+ .sp-mobile-tooltip {
74
+ line-height: 13.5px;
75
+ transform-origin: calc(100% + 20px) center;
76
+ font-family: 'Open Sans', sans-serif;
77
+ position: absolute;
78
+ font-size: 12px;
79
+ max-width: 155px;
80
+ padding: 10px;
81
+ border-radius: 5px;
82
+ background: #ED1C2E;
83
+ color: white;
84
+ right: 92px;
85
+ top: 10px;
86
+ z-index: 10;
87
+ cursor: pointer;
88
+ }
89
+ .sp-mobile-tooltip::after {
90
+ content: '';
91
+ display: block;
92
+ width: 0;
93
+ height: 0;
94
+ border-top: 5px solid transparent;
95
+ border-bottom: 5px solid transparent;
96
+ position: absolute;
97
+ border-left: 20px solid #ed1c2e;
98
+ top: 50%;
99
+ right: -20px;
100
+ transform: translateY(-50%);
101
+ }
102
+ /* Login Modal Tooltip END */
103
+
104
+ /* Carousel START */
105
+ .carousel-container {
106
+ position: absolute;
107
+ width: 100%;
108
+ bottom: 0;
109
+ margin-bottom: 55px;
110
+ }
111
+ .carousel-indicators {
112
+ top: -15px;
113
+ position: relative;
114
+ margin: 0 0 0 0;
115
+ left: 0;
116
+ width: 100%;
117
+ padding: 0px;
118
+ }
119
+ .carousel {
120
+ position: relative;
121
+ width: 80%;
122
+ height : 100%;
123
+ margin: 0 auto;
124
+ left: 0px;
125
+ top: 0px;
126
+ }
127
+ a.right.carousel-control {
128
+ text-decoration: none !important;
129
+ position: absolute;
130
+ top: 60px;
131
+ right: -20px;
132
+ font-size: 40px;
133
+ opacity: 1;
134
+ }
135
+ a.left.carousel-control {
136
+ text-decoration: none !important;
137
+ position: absolute;
138
+ top: 60px;
139
+ left: -20px;
140
+ font-size: 40px;
141
+ opacity: 1;
142
+ }
143
+ .carousel-control.left,
144
+ .carousel-control.right {
145
+ background-image: none !important;
146
+ }
147
+ .carousel-control {
148
+ left: -12px;
149
+ height: 40px;
150
+ width: 40px;
151
+ font-size: 3em;
152
+ background: none;
153
+ border: none;
154
+ border-radius: 23px 23px 23px 23px;
155
+ margin-top: 0px;
156
+ opacity: 1;
157
+ }
158
+ a.regsp-icon, a.setup2fa-icon, a.resetpwd-icon, a.myinfo-icon, a.updateAcctDetails-icon,
159
+ a.changePwd-icon, a.viewTransactionHistory-icon, a.setUp2Step2FA-icon,
160
+ a.checkapplication-icon, a.retrieveid-icon {
161
+ width: auto;
162
+ height: 200px;
163
+ margin: 0 auto 0 auto;
164
+ }
165
+ a.regsp-icon {
166
+ background: url(../../resources/img/carousel/large-device/register-icon.png);
167
+ background-repeat: no-repeat;
168
+ background-position: center center;
169
+ }
170
+ a.setup2fa-icon {
171
+ background: url(../../resources/img/carousel/large-device/how-to-setup-2fa-icon.png);
172
+ background-repeat: no-repeat;
173
+ background-position: center center;
174
+ }
175
+ a.resetpwd-icon {
176
+ background: url(../../resources/img/carousel/large-device/reset-password-icon.png);
177
+ background-repeat: no-repeat;
178
+ background-position: center center;
179
+ }
180
+ a.myinfo-icon {
181
+ background: url(../../resources/img/carousel/large-device/my-info-icon.png);
182
+ background-repeat: no-repeat;
183
+ background-position: center center;
184
+ }
185
+ a.updateAcctDetails-icon {
186
+ background: url(../../resources/img/carousel/large-device/update-acct-icon.png);
187
+ background-repeat: no-repeat;
188
+ background-position: center center;
189
+ }
190
+ a.changePwd-icon {
191
+ background: url(../../resources/img/carousel/large-device/change-pwd-icon.png);
192
+ background-repeat: no-repeat;
193
+ background-position: center center;
194
+ }
195
+ a.viewTransactionHistory-icon {
196
+ background: url(../../resources/img/carousel/large-device/view-transaction-icon.png);
197
+ background-repeat: no-repeat;
198
+ background-position: center center;
199
+ }
200
+ a.setUp2Step2FA-icon {
201
+ background:
202
+ url(../../resources/img/carousel/large-device/setup-2fa-icon.png);
203
+ background-repeat: no-repeat;
204
+ background-position: center center;
205
+ }
206
+ a.checkapplication-icon {
207
+ background: url(../../resources/img/carousel/large-device/chk-app-status-icon.png);
208
+ background-repeat: no-repeat;
209
+ background-position: center center;
210
+ }
211
+ a.retrieveid-icon {
212
+ background: url(../../resources/img/carousel/large-device/retrieve-spid-icon.png);
213
+ background-repeat: no-repeat;
214
+ background-position: center center;
215
+ }
216
+ /* Carousel END*/
217
+
218
+ .login-captcha-refresh {
219
+ position: relative;
220
+ top: -20px;
221
+ margin-left: 5px;
222
+ }
223
+
224
+ .modal-dialog {
225
+ width: 396px;
226
+ }
227
+
228
+ /*------ LOGIN STYLE ------*/
229
+ .modal-backdrop.in {
230
+ filter: alpha(opacity=50);
231
+ opacity: .5;
232
+ }
233
+
234
+ .modal-body .form-horizontal .col-sm-10,
235
+ .modal-body .form-horizontal .col-sm-2 {
236
+ width: 100%;
237
+ }
238
+
239
+ .modal-body .form-horizontal .control-label {
240
+ text-align: left;
241
+ }
242
+
243
+ .modal-body .form-horizontal .col-sm-offset-2 {
244
+ margin-left: 15px;
245
+ }
246
+
247
+ .login-modal-content {
248
+ background-color: transparent;
249
+ overflow: hidden;
250
+ }
251
+
252
+ .modal-dialog {
253
+ box-shadow: 0 0 10px 1px black;
254
+ }
255
+ /*custimize */
256
+ #myModalHorizontal .hidden-label, .eserviceLoginForm .hidden-label {
257
+ clip: rect(0,0,0,0);
258
+ height: 1px;
259
+ width: 1px;
260
+ overflow: hidden;
261
+ padding: 0;
262
+ position: absolute;
263
+ margin: -1px;
264
+ }
265
+
266
+ /*Form start */
267
+ .login-note {
268
+ font-size: 0.9375em;
269
+ color: #696671;
270
+ padding-bottom: 13px;
271
+ padding-top: 20px;
272
+ position: relative;
273
+ }
274
+ #sectionB .login-note {
275
+ padding-top: 10px;
276
+ }
277
+ .login-note p.note {
278
+ font-weight: 600;
279
+ font-size: 0.9em;
280
+ white-space: nowrap;
281
+ }
282
+ .login-note p.note a {
283
+ font-weight: 600;
284
+ }
285
+ .login-note p.userguide {
286
+ font-size: 0.9em;
287
+ padding-top: 15px;
288
+ }
289
+ /*Form start */
290
+ .qr-refresh-btn, .qr-get-new-qr-btn {
291
+ font-size: 1.3em !important;
292
+ font-weight: bold;
293
+ height: auto;
294
+ margin: 24px 0 39px !important;
295
+ display: none;
296
+ }
297
+ .qr-image {
298
+ position: relative;
299
+ height: 195px;
300
+ margin-top: -41px;
301
+ z-index: 2;
302
+ perspective: 400px;
303
+ perspective-origin: center center;
304
+ transform-style: preserve-3d;
305
+ }
306
+ .qr-logo-overlay {
307
+ display: block;
308
+ position: absolute;
309
+ left: 50%;
310
+ top: 50%;
311
+ width: 65px;
312
+ height: 65px;
313
+ -webkit-transform: translate(-50%, 50%);
314
+ -moz-transform: translate(-50%, 50%);
315
+ -ms-transform: translate(-50%, 50%);
316
+ transform: translate(-50%, -50%);
317
+ }
318
+ .qr-image #qrImage[src=""] + .qr-logo-overlay {
319
+ display: none;
320
+ }
321
+
322
+ .qr-image::after {
323
+ content: "";
324
+ pointer-events: none;
325
+ display: block;
326
+ width: 90%;
327
+ height: 100%;
328
+ background-color: rgba(255,255,255, 0.0);
329
+ position: absolute;
330
+ top: 0;
331
+ left: 0;
332
+ transition: background-color 0.2s ease-out;
333
+ }
334
+ .qr-image #qrcodelink {
335
+ display: block;
336
+ position: absolute;
337
+ left: 50%;
338
+ -webkit-transform: translateX(-50%);
339
+ -moz-transform: translateX(-50%);
340
+ -ms-transform: translateX(-50%);
341
+ transform: translateX(-50%);
342
+ width: 195px;
343
+ height: 195px;
344
+ -webkit-transition: all 750ms cubic-bezier(0.860, 0.000, 0.070, 1.000);
345
+ -moz-transition: all 750ms cubic-bezier(0.860, 0.000, 0.070, 1.000);
346
+ -o-transition: all 750ms cubic-bezier(0.860, 0.000, 0.070, 1.000);
347
+ transition: all 750ms cubic-bezier(0.860, 0.000, 0.070, 1.000);
348
+ }
349
+ .qr-image #qrcodelink.flip {
350
+ -webkit-transform: translateX(-50%) scale(.8);
351
+ -moz-transform: translateX(-50%) scale(.8);;
352
+ -ms-transform: translateX(-50%) scale(.8);;
353
+ transform: translateX(-50%) scale(.8);
354
+ opacity: 0;
355
+ }
356
+ .qr-image img#qrImage{
357
+ display: block;
358
+ width: 195px;
359
+ height: 195px;
360
+ -webkit-image-rendering: pixelated;
361
+ image-rendering: pixelated;
362
+ cursor: pointer;
363
+ transform: scale(1);
364
+ opacity: 1;
365
+ -webkit-user-select: none;
366
+ -moz-user-select: none;
367
+ -ms-user-select: none;
368
+ user-select: none;
369
+ }
370
+ .qr-image .qr-image__success {
371
+ display: block;
372
+ position: absolute;
373
+ opacity: 0;
374
+ left: 100%;
375
+ -webkit-transform: translateX(-50%);
376
+ -moz-transform: translateX(-50%);
377
+ -ms-transform: translateX(-50%);
378
+ transform: translateX(-50%);
379
+ width: auto;
380
+ height: 185px;
381
+ margin-top: 5px;
382
+ -webkit-transition: all 750ms cubic-bezier(0.860, 0.000, 0.070, 1.000);
383
+ -moz-transition: all 750ms cubic-bezier(0.860, 0.000, 0.070, 1.000);
384
+ -o-transition: all 750ms cubic-bezier(0.860, 0.000, 0.070, 1.000);
385
+ transition: all 750ms cubic-bezier(0.860, 0.000, 0.070, 1.000);
386
+ }
387
+ .qr-label__wrapper {
388
+ position:relative;
389
+ height: 54px;
390
+ }
391
+ .qr-label {
392
+ font-size: 1.1em;
393
+ font-weight: bold;
394
+ color: #696671;
395
+ padding-top: 8px;
396
+ position: absolute;
397
+ left: 50%;
398
+ -webkit-transform: translateX(-50%);
399
+ -moz-transform: translateX(-50%);
400
+ -ms-transform: translateX(-50%);
401
+ transform: translateX(-50%);
402
+ -moz-user-select: none;
403
+ -ms-user-select: none;
404
+ user-select: none;
405
+ width: 100%;
406
+ }
407
+ .qr-label--main {
408
+ -webkit-transition: all 750ms cubic-bezier(0.860, 0.000, 0.070, 1.000) 50ms;
409
+ -moz-transition: all 750ms cubic-bezier(0.860, 0.000, 0.070, 1.000) 50ms;
410
+ -o-transition: all 750ms cubic-bezier(0.860, 0.000, 0.070, 1.000) 50ms;
411
+ transition: all 750ms cubic-bezier(0.860, 0.000, 0.070, 1.000) 50ms;
412
+ }
413
+ .qr-label--success {
414
+ opacity: 0;
415
+ position: absolute;
416
+ left: 100%;
417
+ -webkit-transform: translateX(-50%);
418
+ -moz-transform: translateX(-50%);
419
+ -ms-transform: translateX(-50%);
420
+ transform: translateX(-50%);
421
+ -webkit-transition: all 750ms cubic-bezier(0.860, 0.000, 0.070, 1.000) 50ms;
422
+ -moz-transition: all 750ms cubic-bezier(0.860, 0.000, 0.070, 1.000) 50ms;
423
+ -o-transition: all 750ms cubic-bezier(0.860, 0.000, 0.070, 1.000) 50ms;
424
+ transition: all 750ms cubic-bezier(0.860, 0.000, 0.070, 1.000) 50ms;
425
+ }
426
+ .qr-label.qr-label--small {
427
+ font-size: 0.9375em;
428
+ font-weight: normal;
429
+ }
430
+ .qr-main {
431
+ display: block;
432
+ height: 301px;
433
+ }
434
+ .qr-unavailable, .qr-suspended-account, .qr-locked-account {
435
+ margin-top: -20px;
436
+ height: 264px;
437
+ display: none;
438
+ }
439
+ .qr-unavailable img{
440
+ display: block;
441
+ margin: 16px auto 9px;
442
+ width: 60px;
443
+ height: 60px;
444
+ }
445
+ .qr__wrapper .qr-image .qr-error {
446
+ -moz-user-select: none;
447
+ -webkit-user-select: none;
448
+ -ms-user-select: none;
449
+ user-select: none;
450
+ width: 100%;
451
+ color: #696671;
452
+ font-weight: bold;
453
+ font-size: 1.1em;
454
+ position: absolute;
455
+ top: 50%;
456
+ -webkit-transform: translateY(-50%) scale(1.5);
457
+ -moz-transform: translateY(-50%) scale(1.5);
458
+ -ms-transform: translateY(-50%) scale(1.5);
459
+ transform: translateY(-50%) scale(1.5);
460
+ z-index: 1;
461
+ opacity: 0;
462
+ display: block;
463
+ padding: 0;
464
+ pointer-events: none;
465
+ -webkit-transition: all 250ms cubic-bezier(0.175, 0.885, 0.320, 1) 50ms;
466
+ -webkit-transition: all 250ms cubic-bezier(0.175, 0.885, 0.320, 1.275) 50ms;
467
+ -moz-transition: all 250ms cubic-bezier(0.175, 0.885, 0.320, 1.275) 50ms;
468
+ -o-transition: all 250ms cubic-bezier(0.175, 0.885, 0.320, 1.275) 50ms;
469
+ transition: all 250ms cubic-bezier(0.175, 0.885, 0.320, 1.275) 50ms;
470
+ }
471
+ .qr__wrapper .qr-image .qr-error.qr-error--suspended, .qr__wrapper .qr-image .qr-error.qr-error--locked {
472
+ padding: 40px 22px 0;
473
+ }
474
+ .qr__wrapper .qr-image .qr-error span {
475
+ font-size: 0.9375em;
476
+ font-weight: normal;
477
+ display: block;
478
+ padding-top: 8px;
479
+ }
480
+ .qr__wrapper.has-scanned .qr-image #qrcodelink, .qr__wrapper.has-scanned .qr-label--main {
481
+ opacity: 0;
482
+ left: 0%;
483
+ }
484
+ .qr__wrapper.has-scanned .qr-image .qr-image__success {
485
+ opacity: 1;
486
+ left: 50%;
487
+ }
488
+ .qr__wrapper.has-scanned .qr-label--success {
489
+ left: 50%;
490
+ opacity: 1;
491
+ }
492
+
493
+ .qr__wrapper.is-expired .qr-image::after {
494
+ pointer-events: all;
495
+ background-color: rgba(255,255,255, 0.95);
496
+ }
497
+ .qr__wrapper.cant-gen .qr-image::after, .qr__wrapper.is-suspended .qr-image::after, .qr__wrapper.is-locked .qr-image::after {
498
+ pointer-events: all;
499
+ background-color: rgba(255,255,255, 1);
500
+ }
501
+ .qr__wrapper.is-expired .qr-image .qr-error:not(.qr-error--cant-gen):not(.qr-error--suspended):not(.qr-error--locked),
502
+ .qr__wrapper.cant-gen .qr-image .qr-error:not(.qr-error--expired):not(.qr-error--suspended):not(.qr-error--locked),
503
+ .qr__wrapper.is-suspended .qr-image .qr-error:not(.qr-error--expired):not(.qr-error--cant-gen):not(.qr-error--locked),
504
+ .qr__wrapper.is-locked .qr-image .qr-error:not(.qr-error--expired):not(.qr-error--cant-gen):not(.qr-error--suspended) {
505
+ opacity: 1;
506
+ -webkit-transform: translateY(-50%) scale(1);
507
+ -moz-transform: translateY(-50%) scale(1);
508
+ -ms-transform: translateY(-50%) scale(1);
509
+ transform: translateY(-50%) scale(1);
510
+ }
511
+
512
+
513
+ .qr__wrapper.is-expired .qr-label__wrapper, .qr__wrapper.cant-gen .qr-label__wrapper,
514
+ .qr__wrapper.is-suspended .qr-label__wrapper, .qr__wrapper.is-locked .qr-label__wrapper {
515
+ display: none;
516
+ }
517
+ .qr__wrapper.is-expired .qr-refresh-btn:not(.qr-get-new-qr-btn) {
518
+ display: block;
519
+ }
520
+ .qr__wrapper.cant-gen .qr-get-new-qr-btn:not(.qr-refresh-btn) {
521
+ display: block;
522
+ }
523
+
524
+ .qr__wrapper.is-unavailable .qr-unavailable {
525
+ display: block;
526
+ }
527
+ .qr__wrapper.is-unavailable .qr-label {
528
+ position: relative;
529
+ }
530
+ .qr__wrapper.is-unavailable .qr-main {
531
+ display: none;
532
+ }
533
+
534
+ .login__footer {
535
+ position: relative;
536
+ height: 100px;
537
+ }
538
+
539
+ .login__footer::before {
540
+ content: "";
541
+ display: block;
542
+ background-color: #E2DEDF;
543
+ width: calc(100% + 96px);
544
+ height: 100%;
545
+ position: absolute;
546
+ left: -48px;
547
+ top: 0;
548
+ }
549
+ .login__footer a {
550
+ font-weight: normal;
551
+ }
552
+ .login-label {
553
+ font-size: 1.1em;
554
+ font-weight: bold;
555
+ margin: -42px 0 15px;
556
+ color: #696671;
557
+ }
558
+ .login-form-body {
559
+ background: #fff;
560
+ padding: 0;
561
+ position: relative;
562
+ perspective: 800px;
563
+ perspective-origin: right top;
564
+ }
565
+
566
+ .login-form {
567
+ background: rgba(255, 255, 255, 0.8);
568
+ padding: 20px;
569
+ border-top: 3px solid #3e4043;
570
+ }
571
+
572
+ .innter-form {
573
+ padding: 0px 48px;
574
+ background-color: #fff;
575
+ border-radius: 4px;
576
+ }
577
+
578
+ .final-login {
579
+ width: 100%;
580
+ position: relative;
581
+ height: 96px;
582
+ padding: 0;
583
+ margin: 0;
584
+ z-index: 1;
585
+ }
586
+ .final-login li {
587
+ list-style: none;
588
+ z-index: 1;
589
+ width: 96px;
590
+ height: 96px;
591
+ position: absolute;
592
+ top: 0;
593
+ right: 0;
594
+ -webkit-clip-path: polygon(0 0, 96px 0, 96px 96px, 0 0);
595
+ clip-path: polygon(0 0, 96px 0, 96px 96px, 0 0);
596
+ }
597
+ .final-login li a {
598
+ -webkit-user-drag: none;
599
+ position: absolute;
600
+ width: 100%;
601
+ height: 100%;
602
+ top: 0;
603
+ right: 0;
604
+ -webkit-transition: all 250ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
605
+ -moz-transition: all 250ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
606
+ -o-transition: all 250ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
607
+ transition: all 250ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
608
+ }
609
+ .final-login li#loginli a {
610
+ background: url('../../resources/img/id-pw-icon.png');
611
+ }
612
+ .final-login li#qrcodeloginli a {
613
+ background: url('../../resources/img/qr-icon.png');
614
+ }
615
+ .final-login li:hover a, .final-login li.hovered a {
616
+ top: -5px;
617
+ right: -5px;
618
+ }
619
+ .final-login li:hover:active a {
620
+ top: 0px;
621
+ right: 0px;
622
+ }
623
+ .final-login li.active {
624
+ z-index: -1;
625
+ opacity: 0;
626
+ }
627
+ .final-login li.active a {
628
+ top: 0;
629
+ right: 0;
630
+ opacity: 0;
631
+ }
632
+
633
+ .final-login::before {
634
+ content: "";
635
+ display: block;
636
+ position: absolute;
637
+ top: 0;
638
+ right: 0;
639
+ z-index: 1;
640
+ width: 0;
641
+ height: 0;
642
+ border-top: 48px solid #FAE2E2;
643
+ border-right: 48px solid #FAE2E2;
644
+ border-left: 48px solid transparent;
645
+ border-bottom: 48px solid transparent;
646
+ }
647
+ .final-login.final-login--hidden::before {
648
+ display: none;
649
+ }
650
+ .white-area{
651
+ display: block;
652
+ background: url("../../resources/img/qr-shadow.png") no-repeat 0 0;
653
+ position: absolute;
654
+ width: 96px;
655
+ height: 96px;
656
+ right: 0;
657
+ top: 0;
658
+ z-index: 2;
659
+ cursor: pointer;
660
+ pointer-events: none;
661
+ }
662
+ .white-area::after {
663
+ content: "";
664
+ width: 0;
665
+ height: 0;
666
+ border-left: 48px solid #ffffff;
667
+ border-bottom: 48px solid #ffffff;
668
+ border-right: 48px solid transparent;
669
+ border-top: 48px solid transparent;
670
+ left: 0;
671
+ top: 0;
672
+ position: absolute;
673
+ z-index: 2;
674
+ }
@@ -0,0 +1,9 @@
1
+ /** Last Updated Date : 2018-12-28 11:00 AM */
2
+ @import "reset.css";
3
+ @import "style-baseline.css";
4
+ @import "style-homepage.css";
5
+ @import "style-common.css";
6
+
7
+ @import "style-baseline-small-media.css";
8
+ @import "style-homepage-small-media.css";
9
+ @import "style-common-small-media.css";