wickes-css2 2.106.0-develop.6 → 2.106.0-develop.8

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 (114) hide show
  1. package/Readme.md +1 -2
  2. package/build/css/category-main.css +1 -1
  3. package/build/css/components/checkout-payment-details-v2.css +1 -1
  4. package/build/css/components/global-search.css +1 -1
  5. package/build/css/homepage-main.css +1 -1
  6. package/build/css/kitchen-plp-main.css +1 -1
  7. package/build/css/main.css +1 -1
  8. package/build/css/my-account-main-v2.css +1 -1
  9. package/build/css/my-account-main.css +1 -1
  10. package/build/css/pages/page_checkout_delivery-new.css +1 -1
  11. package/build/css/pages/page_products-list-combined.css +1 -1
  12. package/build/css/pdp-main-before-combine.css +1 -1
  13. package/build/css/pdp-main-critical.css +1 -1
  14. package/build/css/pdp-main.css +1 -1
  15. package/build/css/plp-main.css +1 -1
  16. package/build/css/store-locator-main.css +1 -1
  17. package/build/img/billie-pay-later.svg +13 -0
  18. package/build/img/giftcard.svg +28 -0
  19. package/build/js/account-members.min.js +1 -1
  20. package/build/js/add-project-list-id.min.js +1 -1
  21. package/build/js/address-book.min.js +1 -1
  22. package/build/js/basket.min.js +2 -2
  23. package/build/js/bundle.min.js +1 -1
  24. package/build/js/change-password.min.js +1 -1
  25. package/build/js/checkout.min.js +2 -2
  26. package/build/js/emulation.min.js +2119 -1842
  27. package/build/js/general.bundle.min.js +1 -1
  28. package/build/js/gift-cards.min.js +1 -0
  29. package/build/js/merged-checkout.min.js +2 -2
  30. package/build/js/mini-basket-slider.min.js +1 -1
  31. package/build/js/page/basket/basket-update-cart-action.js +4 -1
  32. package/build/js/page/basket/klarna.js +13 -3
  33. package/build/js/page/basket-v2.js +6 -2
  34. package/build/js/page/components/gift-cards.js +915 -0
  35. package/build/js/page/components/order-summary.js +42 -25
  36. package/build/js/page/components/toggle-password-visibility.js +22 -0
  37. package/build/js/page/components/voucher.js +52 -47
  38. package/build/js/page/filters/plp-filters-mobile.js +7 -4
  39. package/build/js/page/filters/plp-filters-utils.js +0 -9
  40. package/build/js/page/filters/plp-filters.js +3 -11
  41. package/build/js/page/plp-img-v2.js +25 -0
  42. package/build/js/page/share-project-list.js +33 -151
  43. package/build/js/page/utils/gift-cards-utils.js +188 -0
  44. package/build/js/page/utils/input-handling.js +92 -0
  45. package/build/js/page/utils/show-hide-input.js +28 -0
  46. package/build/js/page/utils/validation.js +46 -1
  47. package/build/js/pdp.bundle.min.js +1 -1
  48. package/build/js/personal-details.min.js +1 -1
  49. package/build/js/plp-filters.min.js +2 -2
  50. package/build/js/plp.bundle.min.js +1 -1
  51. package/build/js/project-list.min.js +44 -1
  52. package/build/js/quiz.min.js +1 -1
  53. package/build/js/share-project-list.min.js +1 -1
  54. package/build/js/track-my-order.min.js +1 -1
  55. package/package.json +2 -2
  56. package/src/components/card_product_v2.hbs +6 -1
  57. package/src/components/checkout-payment-details-v2.hbs +4 -3
  58. package/src/components/gift-cards-hint.hbs +9 -0
  59. package/src/components/gift-cards.hbs +90 -0
  60. package/src/components/giftcard-chip.hbs +23 -0
  61. package/src/components/giftcard-summary.hbs +6 -0
  62. package/src/components/price-block-v2.hbs +16 -15
  63. package/src/data/data_search-results_v2.json +2 -1
  64. package/src/elements/form-row.hbs +1 -1
  65. package/src/elements/input.hbs +31 -2
  66. package/src/img/billie-pay-later.svg +13 -0
  67. package/src/img/giftcard.svg +28 -0
  68. package/src/js/components/general/notification.js +2 -1
  69. package/src/js/components/general/switchVat.js +1 -4
  70. package/src/js/components/share-project-list.js +56 -0
  71. package/src/js/emulation/basket-data.js +2126 -2038
  72. package/src/js/emulation/checkLocalEnv.js +6 -5
  73. package/src/js/emulation/checkout-data.js +35 -0
  74. package/src/js/emulation/checkout-payment-details.js +28 -26
  75. package/src/js/emulation/forms.js +16 -10
  76. package/src/js/emulation/gift-cards.js +205 -0
  77. package/src/js/emulation/mock.js +10 -0
  78. package/src/js/emulation/plp-load-more.js +4 -1
  79. package/src/js/page/basket/basket-update-cart-action.js +4 -1
  80. package/src/js/page/basket/klarna.js +13 -3
  81. package/src/js/page/basket-v2.js +6 -2
  82. package/src/js/page/components/gift-cards.js +915 -0
  83. package/src/js/page/components/order-summary.js +42 -25
  84. package/src/js/page/components/toggle-password-visibility.js +22 -0
  85. package/src/js/page/components/voucher.js +52 -47
  86. package/src/js/page/filters/plp-filters-mobile.js +7 -4
  87. package/src/js/page/filters/plp-filters-utils.js +0 -9
  88. package/src/js/page/filters/plp-filters.js +3 -11
  89. package/src/js/page/plp-img-v2.js +25 -0
  90. package/src/js/page/share-project-list.js +33 -151
  91. package/src/js/page/utils/gift-cards-utils.js +188 -0
  92. package/src/js/page/utils/input-handling.js +92 -0
  93. package/src/js/page/utils/show-hide-input.js +28 -0
  94. package/src/js/page/utils/validation.js +46 -1
  95. package/src/layouts/checkout.hbs +1 -5
  96. package/src/page_my-account_change-password.html +1 -0
  97. package/src/page_payment-details-with-gift-card.html +8 -5
  98. package/src/page_plp-with-paint.html +1 -1
  99. package/src/page_plp_v2-energy-efficiency.html +1 -1
  100. package/src/page_plp_v2-favourite-products.html +1 -1
  101. package/src/page_plp_v2-vat.html +32 -27
  102. package/src/page_plp_v2.html +1 -1
  103. package/src/page_product-details-cnc-success-notification-vat.html +3 -2
  104. package/src/page_product_search-vat.html +1 -1
  105. package/src/page_product_search.html +1 -1
  106. package/src/page_search-results.html +1 -1
  107. package/src/partials/scripts.hbs +3 -0
  108. package/src/scss/components/_custom-slider.scss +2 -2
  109. package/src/scss/components/_gift-cards.scss +360 -0
  110. package/src/scss/components/checkout-payment-details-v2.scss +6 -2
  111. package/src/scss/helpers/_variables.scss +15 -6
  112. package/src/scss/pages/page_checkout_delivery-new.scss +26 -0
  113. package/src/scss/pages/page_products-list-combined.scss +2 -34
  114. package/src/js/components/toggle-password-visibility.js +0 -58
@@ -0,0 +1,360 @@
1
+ .giftcard-row {
2
+ position: relative;
3
+ display: flex;
4
+ gap: 16px;
5
+ }
6
+
7
+ .giftcard {
8
+ border: 1px solid $gray;
9
+ border-radius: 4px;
10
+ background: $white;
11
+ padding: 12px 16px;
12
+ width: 100%;
13
+ order: 3;
14
+ position: relative;
15
+
16
+ .giftcard__field {
17
+ .form-row {
18
+ margin-bottom: 0;
19
+ }
20
+ }
21
+ }
22
+
23
+ .giftcard-add {
24
+ display: inline-flex;
25
+ align-items: center;
26
+ gap: 8px;
27
+ color: $blue;
28
+ text-decoration: none;
29
+ cursor: pointer;
30
+
31
+ &__icon {
32
+ width: 16px;
33
+ height: 16px;
34
+ }
35
+
36
+ &__text {
37
+ font-size: .875rem;
38
+ line-height: 1.375rem;
39
+ font-weight: 500;
40
+ }
41
+ }
42
+
43
+ .giftcard-hint {
44
+ display: block;
45
+ color: $squant;
46
+ font-size: .875rem;
47
+ line-height: 1.375rem;
48
+ font-weight: 400;
49
+ margin-left: 32px;
50
+ }
51
+
52
+ .giftcard-inline {
53
+ padding: 12px 8px;
54
+
55
+ &__header {
56
+ display: flex;
57
+ justify-content: space-between;
58
+ margin-bottom: 16px;
59
+ }
60
+
61
+ &__title {
62
+ font-weight: 500;
63
+ font-size: 1.125rem;
64
+ line-height: 1.5rem;
65
+ white-space: nowrap;
66
+ }
67
+
68
+ &__balance {
69
+ color: $blue;
70
+ font-weight: 400;
71
+ font-size: .875rem;
72
+ line-height: 1.375rem;
73
+ text-decoration: underline;
74
+ white-space: nowrap;
75
+ }
76
+
77
+ &__close {
78
+ position: absolute;
79
+ width: 24px;
80
+ height: 24px;
81
+ top: 8px;
82
+ right: 8px;
83
+ cursor: pointer;
84
+ display: flex;
85
+ justify-content: center;
86
+ align-items: center;
87
+ color: $warm-grey;
88
+ }
89
+
90
+ &__fields {
91
+ display: flex;
92
+ flex-direction: column;
93
+ gap: 24px;
94
+ }
95
+
96
+ .notification {
97
+ margin-bottom: 16px;
98
+ }
99
+ }
100
+
101
+ .form-row__label {
102
+ margin-bottom: 8px;
103
+ }
104
+
105
+ .giftcard__btn {
106
+ width: 100%;
107
+ }
108
+
109
+ .giftcard__field {
110
+ position: relative;
111
+ display: flex;
112
+ flex-direction: column;
113
+ padding-bottom: 18px;
114
+ min-width: 0;
115
+ }
116
+
117
+ .giftcard-inline .giftcard-inline__fields > .form-row.giftcard__field {
118
+ margin-bottom: 0;
119
+ }
120
+
121
+ .giftcard-field--error .giftcard__input {
122
+ border-color: $red;
123
+ }
124
+
125
+ .giftcard__error-text {
126
+ font-weight: 400;
127
+ font-size: .75rem;
128
+ line-height: 1rem;
129
+ color: $red;
130
+ margin-top: 8px;
131
+ }
132
+
133
+ .giftcard .toggle-show svg {
134
+ pointer-events: none;
135
+ }
136
+
137
+ .form-row .toggle-show {
138
+ font-size: 1rem;
139
+ cursor: pointer;
140
+ position: absolute;
141
+ right: 8px;
142
+ top: 0;
143
+ height: 100%;
144
+ display: inline-flex;
145
+ align-items: center;
146
+ justify-content: center;
147
+ width: 24px;
148
+ }
149
+
150
+ .giftcard-applied {
151
+ width: 100%;
152
+ border: 1px solid $gray-light;
153
+ border-radius: 4px;
154
+ background: $white;
155
+ padding: 15px 16px;
156
+ order: 2;
157
+
158
+ &__inner {
159
+ display: flex;
160
+ align-items: center;
161
+ justify-content: center;
162
+ gap: 12px;
163
+ }
164
+
165
+ &__icon {
166
+ display: inline-flex;
167
+ align-items: center;
168
+ justify-content: center;
169
+ }
170
+
171
+ .fa-check-circle {
172
+ text-align: center;
173
+ color: $green;
174
+ font-size: 1rem;
175
+ }
176
+
177
+ &__text {
178
+ margin: 0;
179
+ font-size: .875rem;
180
+ line-height: 1.5rem;
181
+ font-weight: 500;
182
+ word-break: break-word;
183
+ }
184
+ }
185
+
186
+ .giftcard-summary {
187
+ position: relative;
188
+ width: 100%;
189
+
190
+ &__hint {
191
+ margin-top: 16px;
192
+ margin-bottom: 0;
193
+ font-size: .875rem;
194
+ font-weight: 400;
195
+ line-height: 1.375rem;
196
+ }
197
+
198
+ &__add {
199
+ text-decoration: underline;
200
+ cursor: pointer;
201
+ color: $blue;
202
+ }
203
+ }
204
+
205
+ .giftcard-chip-list {
206
+ display: flex;
207
+ flex-direction: column;
208
+ gap: 16px;
209
+ }
210
+
211
+ .giftcard-chip {
212
+ display: flex;
213
+ align-items: center;
214
+ width: 100%;
215
+ gap: 12px;
216
+ padding: 12px 16px;
217
+ border: 1px solid $gray;
218
+ border-radius: 4px;
219
+ background: $white;
220
+ min-height: 44px;
221
+ position: relative;
222
+
223
+ &__close {
224
+ position: absolute;
225
+ width: 24px;
226
+ height: 24px;
227
+ top: 8px;
228
+ right: 8px;
229
+ cursor: pointer;
230
+ display: flex;
231
+ justify-content: center;
232
+ align-items: center;
233
+ color: $warm-grey;
234
+ }
235
+ }
236
+
237
+ .giftcard-chip__icon {
238
+ width: 48px;
239
+ height: 30px;
240
+ display: inline-flex;
241
+ align-items: center;
242
+ justify-content: center;
243
+ }
244
+
245
+ .giftcard-chip__content {
246
+ flex: 1 1 auto;
247
+ min-width: 0;
248
+ }
249
+
250
+ .giftcard-chip__line {
251
+ display: block;
252
+ line-height: 1.25rem;
253
+
254
+ .giftcard-chip__applied {
255
+ font-size: .875rem;
256
+ font-weight: 400;
257
+ line-height: 1.5rem;
258
+ color: $gray-dark;
259
+ }
260
+ }
261
+
262
+ .giftcard-chip__number {
263
+ font-weight: 500;
264
+ line-height: 1.5rem;
265
+ font-size: 1rem;
266
+ color: $gray-dark;
267
+ }
268
+
269
+ .giftcard-chip__applied {
270
+ white-space: nowrap;
271
+ }
272
+
273
+ @include media-breakpoint-up(sm) {
274
+ .giftcard-inline__fields {
275
+ display: flex;
276
+ flex-direction: row;
277
+ justify-content: space-between;
278
+ gap: 16px;
279
+ }
280
+
281
+ .giftcard-inline__fields > .form-row.giftcard__field--pin.giftcard__field--pin {
282
+ width: 116px;
283
+ }
284
+
285
+ .giftcard-inline__fields > .form-row.giftcard__field--number.giftcard__field--number {
286
+ width: 224px;
287
+ }
288
+
289
+ .giftcard__actions {
290
+ display: flex;
291
+ align-items: flex-end;
292
+ height: 72px;
293
+ }
294
+
295
+ .giftcard-summary {
296
+ &__hint {
297
+ width: 354px;
298
+
299
+ &--max {
300
+ width: 100%;
301
+ }
302
+ }
303
+ }
304
+ }
305
+
306
+ @include media-breakpoint-up(md) {
307
+ .giftcard-inline__fields > .form-row.giftcard__field--pin.giftcard__field--pin {
308
+ width: 214px;
309
+ }
310
+
311
+ .giftcard-inline__fields > .form-row.giftcard__field--number.giftcard__field--number {
312
+ width: 240px;
313
+ }
314
+
315
+
316
+ .giftcard-inline__title {
317
+ font-weight: 700;
318
+ }
319
+
320
+ .giftcard-summary {
321
+ &__hint {
322
+ width: 100%;
323
+
324
+ &--max {
325
+ width: 460px;
326
+ }
327
+ }
328
+ }
329
+ }
330
+
331
+ @include media-breakpoint-up(lg) {
332
+ .giftcard-inline__fields {
333
+ max-width: 470px;
334
+ }
335
+
336
+ .giftcard-summary {
337
+ &__hint {
338
+ width: 100%;
339
+
340
+ &--max {
341
+ width: 100%;
342
+ }
343
+ }
344
+ }
345
+ }
346
+
347
+ @include media-breakpoint-up(xl) {
348
+ .giftcard-inline__fields {
349
+ max-width: 100%;
350
+ }
351
+
352
+ .giftcard__btn {
353
+ width: 140px;
354
+ }
355
+
356
+ .giftcard__field--number,
357
+ .giftcard__field--pin {
358
+ width: 100%;
359
+ }
360
+ }
@@ -1,5 +1,6 @@
1
1
  @import '../helpers/helpers';
2
2
  @import '../components/tooltip';
3
+ @import '../components/gift-cards';
3
4
 
4
5
  .checkout-payment-details-v2 {
5
6
  .checkout-payment-details {
@@ -73,6 +74,7 @@
73
74
  font-size: 14px;
74
75
  font-weight: 400;
75
76
  line-height: 24px;
77
+ vertical-align: top;
76
78
  }
77
79
 
78
80
  .form-row {
@@ -331,8 +333,10 @@
331
333
  }
332
334
  }
333
335
 
334
- .google {
335
- &-logo {
336
+ .google,
337
+ .billie {
338
+ &-logo,
339
+ &-badge-container {
336
340
  margin: -3px 0;
337
341
  }
338
342
  }
@@ -33,6 +33,7 @@ $error-bg: #fcf2f3; // Error notification background colour
33
33
  $positive: #8dc63f; // Positive colour
34
34
  $negative: #ed1c24; // Negative colour
35
35
  $blue-badge: #019ee3;
36
+ $pacific-depths: #004587;
36
37
  $usp-icon-color: #1a77bc; // Usp icon color
37
38
  $pacific-depths: #004587;
38
39
  $line-through: #242424;
@@ -46,6 +47,10 @@ $footer-gray: #f5f5f5;
46
47
  $footer-bullet: #c8c8c8;
47
48
  $footer-copyright: #626262;
48
49
 
50
+ $footer-gray: #f5f5f5;
51
+ $footer-bullet: #c8c8c8;
52
+ $footer-copyright: #626262;
53
+
49
54
  $white: #fff;
50
55
  $black: #000;
51
56
  $black-lite: #111;
@@ -62,6 +67,7 @@ $blue-ocean: #003058;
62
67
  $blue-ocean-dark: #0a3054;
63
68
  $gray-middle: #aaa;
64
69
  $light-blue: #e6f1f8;
70
+
65
71
  // Colour block colours
66
72
  $moon-shadow: #658089;
67
73
  $fawn: #f0ddce;
@@ -105,7 +111,7 @@ $black-transparent75: rgba(0, 0, 0, 0.75);
105
111
  $black-transparent80: rgba(0, 0, 0, 0.8);
106
112
  $blue-transparent20: rgba(2, 119, 189, 0.2);
107
113
  $blue-transparent10: rgba(2, 119, 189, 0.1);
108
- $blue-transparent3: rgba(2, 119, 189, 0.32);
114
+ $blue-transparent3: #0277bd52;
109
115
  $blue-transparent5: rgba(2, 119, 189, 0.05);
110
116
  $blue-transparent5-rgb: rgb(242, 248, 251);
111
117
  $dark-blue-transparent10: rgba(10, 48, 85, 0.1);
@@ -299,7 +305,7 @@ $btn-line-height-sm: $input-btn-line-height-sm !default;
299
305
 
300
306
  $btn-padding-y-lg: $input-btn-padding-y-lg !default;
301
307
  $btn-padding-x-lg: $input-btn-padding-x-lg !default;
302
- $btn-line-height-lg: $input-btn-line-height-lg !default;
308
+ $btn-line-height-lg: $input-btn_line-height-lg !default;
303
309
 
304
310
  $btn-border-radius: $border-radius !default;
305
311
  $btn-border-radius-lg: $border-radius-lg !default;
@@ -379,7 +385,8 @@ $zindex-share: 1 !default;
379
385
 
380
386
  // This variable affects the `.h-*` and `.w-*` classes.
381
387
  $sizes: () !default;
382
- // sass-lint:disable indentation
388
+
389
+ /* sass-lint:disable indentation */
383
390
  $sizes: map-merge(
384
391
  (
385
392
  25: 25%,
@@ -389,7 +396,8 @@ $sizes: map-merge(
389
396
  ),
390
397
  $sizes
391
398
  );
392
- // sass-lint:enable indentation
399
+ /* sass-lint:enable indentation */
400
+
393
401
  // Spacing
394
402
  //
395
403
  // Control the default styling of most Bootstrap elements by modifying these
@@ -399,7 +407,8 @@ $sizes: map-merge(
399
407
  // stylelint-disable
400
408
  $spacer: 1rem !default;
401
409
  $spacers: () !default;
402
- // sass-lint:disable indentation
410
+
411
+ /* sass-lint:disable indentation */
403
412
  $spacers: map-merge(
404
413
  (
405
414
  0: 0,
@@ -419,7 +428,7 @@ $spacers: map-merge(
419
428
  ),
420
429
  $spacers
421
430
  );
422
- // sass-lint:enable indentation
431
+ /* sass-lint:enable indentation */
423
432
 
424
433
  // Bootstrap Printing checked
425
434
  $print-page-size: a3 !default;
@@ -27,6 +27,8 @@
27
27
  .checkout-widget {
28
28
  &__details {
29
29
  font-size: 1rem;
30
+ display: flex;
31
+ flex-direction: column;
30
32
 
31
33
  .checkout-widget {
32
34
  &__item {
@@ -53,6 +55,19 @@
53
55
  &__details-discount {
54
56
  order: 1;
55
57
  }
58
+
59
+ &__gift-card {
60
+ order: 2;
61
+ margin-bottom: 0;
62
+ margin-top: 20px;
63
+ font-weight: 700;
64
+
65
+ .checkout-widget__item-value {
66
+ ::first-letter {
67
+ font-size: 1rem;
68
+ }
69
+ }
70
+ }
56
71
  }
57
72
  }
58
73
 
@@ -194,6 +209,10 @@
194
209
  margin: 40px 0;
195
210
  }
196
211
 
212
+ .loader-wrapper.page-loader {
213
+ position: fixed;
214
+ }
215
+
197
216
  .oos-block {
198
217
  @include make-col(12);
199
218
 
@@ -399,6 +418,13 @@
399
418
  margin-bottom: 13px;
400
419
  }
401
420
  }
421
+
422
+ .notification {
423
+ &:only-child,
424
+ &:last-child {
425
+ margin-bottom: 30px;
426
+ }
427
+ }
402
428
  }
403
429
 
404
430
  #modalDeliveryEdit,
@@ -303,7 +303,6 @@ $color-bar-radius: 3px;
303
303
  margin-right: -4px;
304
304
  padding-left: 5px;
305
305
  padding-right: 5px;
306
- width: 50%;
307
306
  }
308
307
 
309
308
  &:nth-of-type(1)::before,
@@ -339,27 +338,6 @@ $color-bar-radius: 3px;
339
338
  align-items: center;
340
339
  justify-content: center;
341
340
  border-bottom: 1px solid $gray;
342
- width: 100%;
343
-
344
- @supports (aspect-ratio: 1 / 1) {
345
- aspect-ratio: 1 / 1;
346
- }
347
-
348
- @supports not (aspect-ratio: 1 / 1) {
349
- &:before {
350
- content: '';
351
- display: block;
352
- padding-top: 100%;
353
- }
354
- }
355
-
356
- .card__img-v2 {
357
- position: absolute;
358
- inset: 0;
359
- width: 100%;
360
- height: 100%;
361
- object-fit: contain;
362
- }
363
341
 
364
342
  @include media-breakpoint-down(sm) {
365
343
  border: 1px solid $gray;
@@ -389,16 +367,6 @@ $color-bar-radius: 3px;
389
367
  }
390
368
  }
391
369
 
392
- .card-sponsor-product {
393
- @include media-breakpoint-down(sm) {
394
- width: 50%;
395
-
396
- .card {
397
- width: 100%;
398
- }
399
- }
400
- }
401
-
402
370
  .product-card {
403
371
  & .card__inner-v2:hover {
404
372
  border: 1px solid $gray-dark;
@@ -618,8 +586,8 @@ $color-bar-radius: 3px;
618
586
  .sort-products-list {
619
587
  &__section {
620
588
  @include make-col(6);
621
- color: $black;
622
- border: 0;
589
+ color: black;
590
+ border: none;
623
591
 
624
592
  > .form-row {
625
593
  margin-bottom: 0;
@@ -1,58 +0,0 @@
1
- var Wick = window.Wick || {};
2
-
3
- Wick.TogglePasswordVisibility = {
4
- el: {
5
- $toggleShow: $('[data-show-content] .toggle-show'),
6
- inputWrap: $('.form-row[data-show-content] .input-wrap'),
7
- toggleIcon: '.toggle-show',
8
- },
9
-
10
- updateIconVisibility(inputField, toggleIcon) {
11
- const valueLength = inputField.val().length;
12
- if (valueLength > 0) {
13
- toggleIcon.show();
14
- } else {
15
- toggleIcon.hide();
16
- }
17
- },
18
-
19
- attachInputListener(inputField, toggleIcon) {
20
- inputField.on('input', function () {
21
- Wick.TogglePasswordVisibility.updateIconVisibility($(this), toggleIcon);
22
- });
23
- },
24
-
25
- attachToggleClickListener(inputField, toggleIcon) {
26
- toggleIcon.on('click', function () {
27
- const isPasswordType = inputField.attr('type') === 'password';
28
- const iconSvg = $(this).find('svg');
29
-
30
- if (isPasswordType) {
31
- inputField.attr('type', 'text');
32
- iconSvg.removeClass('fa-eye-slash').addClass('fa-eye');
33
- } else {
34
- inputField.attr('type', 'password');
35
- iconSvg.removeClass('fa-eye').addClass('fa-eye-slash');
36
- }
37
- });
38
- },
39
-
40
- init() {
41
- Wick.TogglePasswordVisibility.el.inputWrap.each(function () {
42
- const inputField = $(this).find('input');
43
- const toggleIcon = $(this).find(Wick.TogglePasswordVisibility.el.toggleIcon);
44
-
45
- Wick.TogglePasswordVisibility.attachInputListener(inputField, toggleIcon);
46
- Wick.TogglePasswordVisibility.updateIconVisibility(inputField, toggleIcon);
47
- Wick.TogglePasswordVisibility.attachToggleClickListener(inputField, toggleIcon);
48
- });
49
- },
50
- };
51
-
52
- $(document).ready(function () {
53
- if (!Wick.TogglePasswordVisibility.el.$toggleShow.length) {
54
- return;
55
- }
56
-
57
- Wick.TogglePasswordVisibility.init();
58
- });