toggle-components-library 1.36.1 → 1.36.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 (34) hide show
  1. package/dist/img/airship-feedback-hover.a207c947.svg +10 -0
  2. package/dist/img/airship-feedback.1f7c858c.svg +10 -0
  3. package/dist/toggle-components-library.common.js +39123 -13087
  4. package/dist/toggle-components-library.common.js.map +1 -1
  5. package/dist/toggle-components-library.css +1 -1
  6. package/dist/toggle-components-library.umd.js +39123 -13087
  7. package/dist/toggle-components-library.umd.js.map +1 -1
  8. package/dist/toggle-components-library.umd.min.js +285 -8
  9. package/dist/toggle-components-library.umd.min.js.map +1 -1
  10. package/package-lock.json +83 -89
  11. package/package.json +2 -1
  12. package/src/assets/icons/airship-feedback-hover.svg +10 -0
  13. package/src/assets/icons/airship-feedback.svg +10 -0
  14. package/src/components/buttons/ToggleMetricsButton.vue +22 -3
  15. package/src/components/cards/ToggleCommentCard.vue +55 -0
  16. package/src/components/carousel/ToggleCarousel.vue +29 -16
  17. package/src/components/carousel/ToggleCarouselSlide.vue +1 -1
  18. package/src/components/forms/ToggleDatePicker.vue +229 -138
  19. package/src/components/forms/ToggleInputSelect.vue +7 -13
  20. package/src/components/forms/ToggleInputText.vue +6 -15
  21. package/src/components/metrics/ToggleMetricSingleMetric.vue +12 -7
  22. package/src/components/metrics/ToggleMetricSparkLine.vue +7 -3
  23. package/src/components/mixins/mixins.js +2 -2
  24. package/src/components/tables/ToggleTable.vue +49 -114
  25. package/src/index.js +4 -4
  26. package/src/sass/includes/_as_buttons.scss +47 -4
  27. package/src/sass/includes/_as_cards.scss +33 -0
  28. package/src/sass/includes/_as_carousels.scss +12 -0
  29. package/src/sass/includes/_as_inputs.scss +832 -832
  30. package/src/sass/includes/_as_metrics.scss +5 -0
  31. package/src/sass/includes/_as_navs.scss +18 -2
  32. package/src/sass/includes/_as_table.scss +163 -163
  33. package/dist/img/contacts-greyblue.ef6f8a9a.svg +0 -1
  34. package/dist/img/contacts-white.95d07c7a.svg +0 -1
package/package-lock.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "toggle-components-library",
3
- "version": "1.36.1",
3
+ "version": "1.36.3",
4
4
  "lockfileVersion": 1,
5
5
  "requires": true,
6
6
  "dependencies": {
@@ -3957,16 +3957,6 @@
3957
3957
  "@types/node": "*"
3958
3958
  }
3959
3959
  },
3960
- "ansi-styles": {
3961
- "version": "4.3.0",
3962
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3963
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3964
- "dev": true,
3965
- "optional": true,
3966
- "requires": {
3967
- "color-convert": "^2.0.1"
3968
- }
3969
- },
3970
3960
  "array-union": {
3971
3961
  "version": "1.0.2",
3972
3962
  "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
@@ -4005,34 +3995,6 @@
4005
3995
  }
4006
3996
  }
4007
3997
  },
4008
- "chalk": {
4009
- "version": "4.1.2",
4010
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
4011
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
4012
- "dev": true,
4013
- "optional": true,
4014
- "requires": {
4015
- "ansi-styles": "^4.1.0",
4016
- "supports-color": "^7.1.0"
4017
- }
4018
- },
4019
- "color-convert": {
4020
- "version": "2.0.1",
4021
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
4022
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
4023
- "dev": true,
4024
- "optional": true,
4025
- "requires": {
4026
- "color-name": "~1.1.4"
4027
- }
4028
- },
4029
- "color-name": {
4030
- "version": "1.1.4",
4031
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
4032
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
4033
- "dev": true,
4034
- "optional": true
4035
- },
4036
3998
  "dir-glob": {
4037
3999
  "version": "2.2.2",
4038
4000
  "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
@@ -4116,13 +4078,6 @@
4116
4078
  "slash": "^2.0.0"
4117
4079
  }
4118
4080
  },
4119
- "has-flag": {
4120
- "version": "4.0.0",
4121
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
4122
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
4123
- "dev": true,
4124
- "optional": true
4125
- },
4126
4081
  "html-webpack-plugin": {
4127
4082
  "version": "3.2.0",
4128
4083
  "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz",
@@ -4312,16 +4267,6 @@
4312
4267
  "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
4313
4268
  "dev": true
4314
4269
  },
4315
- "supports-color": {
4316
- "version": "7.2.0",
4317
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
4318
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
4319
- "dev": true,
4320
- "optional": true,
4321
- "requires": {
4322
- "has-flag": "^4.0.0"
4323
- }
4324
- },
4325
4270
  "terser-webpack-plugin": {
4326
4271
  "version": "1.4.5",
4327
4272
  "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz",
@@ -4378,39 +4323,6 @@
4378
4323
  "mime": "^2.4.4",
4379
4324
  "schema-utils": "^2.5.0"
4380
4325
  }
4381
- },
4382
- "vue-loader-v16": {
4383
- "version": "npm:vue-loader@16.8.3",
4384
- "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
4385
- "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
4386
- "dev": true,
4387
- "optional": true,
4388
- "requires": {
4389
- "chalk": "^4.1.0",
4390
- "hash-sum": "^2.0.0",
4391
- "loader-utils": "^2.0.0"
4392
- },
4393
- "dependencies": {
4394
- "json5": {
4395
- "version": "2.2.3",
4396
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
4397
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
4398
- "dev": true,
4399
- "optional": true
4400
- },
4401
- "loader-utils": {
4402
- "version": "2.0.4",
4403
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
4404
- "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
4405
- "dev": true,
4406
- "optional": true,
4407
- "requires": {
4408
- "big.js": "^5.2.2",
4409
- "emojis-list": "^3.0.0",
4410
- "json5": "^2.1.2"
4411
- }
4412
- }
4413
- }
4414
4326
  }
4415
4327
  }
4416
4328
  },
@@ -7706,6 +7618,11 @@
7706
7618
  "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz",
7707
7619
  "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw=="
7708
7620
  },
7621
+ "date-format-parse": {
7622
+ "version": "0.2.7",
7623
+ "resolved": "https://registry.npmjs.org/date-format-parse/-/date-format-parse-0.2.7.tgz",
7624
+ "integrity": "sha512-/+lyMUKoRogMuTeOVii6lUwjbVlesN9YRYLzZT/g3TEZ3uD9QnpjResujeEqUW+OSNbT7T1+SYdyEkTcRv+KDQ=="
7625
+ },
7709
7626
  "de-indent": {
7710
7627
  "version": "1.0.2",
7711
7628
  "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
@@ -18670,6 +18587,75 @@
18670
18587
  }
18671
18588
  }
18672
18589
  },
18590
+ "vue-loader-v16": {
18591
+ "version": "npm:vue-loader@16.8.3",
18592
+ "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
18593
+ "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
18594
+ "dev": true,
18595
+ "optional": true,
18596
+ "requires": {
18597
+ "chalk": "^4.1.0",
18598
+ "hash-sum": "^2.0.0",
18599
+ "loader-utils": "^2.0.0"
18600
+ },
18601
+ "dependencies": {
18602
+ "ansi-styles": {
18603
+ "version": "4.3.0",
18604
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
18605
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
18606
+ "dev": true,
18607
+ "optional": true,
18608
+ "requires": {
18609
+ "color-convert": "^2.0.1"
18610
+ }
18611
+ },
18612
+ "chalk": {
18613
+ "version": "4.1.2",
18614
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
18615
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
18616
+ "dev": true,
18617
+ "optional": true,
18618
+ "requires": {
18619
+ "ansi-styles": "^4.1.0",
18620
+ "supports-color": "^7.1.0"
18621
+ }
18622
+ },
18623
+ "color-convert": {
18624
+ "version": "2.0.1",
18625
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
18626
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
18627
+ "dev": true,
18628
+ "optional": true,
18629
+ "requires": {
18630
+ "color-name": "~1.1.4"
18631
+ }
18632
+ },
18633
+ "color-name": {
18634
+ "version": "1.1.4",
18635
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
18636
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
18637
+ "dev": true,
18638
+ "optional": true
18639
+ },
18640
+ "has-flag": {
18641
+ "version": "4.0.0",
18642
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
18643
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
18644
+ "dev": true,
18645
+ "optional": true
18646
+ },
18647
+ "supports-color": {
18648
+ "version": "7.2.0",
18649
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
18650
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
18651
+ "dev": true,
18652
+ "optional": true,
18653
+ "requires": {
18654
+ "has-flag": "^4.0.0"
18655
+ }
18656
+ }
18657
+ }
18658
+ },
18673
18659
  "vue-moment": {
18674
18660
  "version": "4.1.0",
18675
18661
  "resolved": "https://registry.npmjs.org/vue-moment/-/vue-moment-4.1.0.tgz",
@@ -18742,6 +18728,14 @@
18742
18728
  "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
18743
18729
  "dev": true
18744
18730
  },
18731
+ "vue2-datepicker": {
18732
+ "version": "3.11.1",
18733
+ "resolved": "https://registry.npmjs.org/vue2-datepicker/-/vue2-datepicker-3.11.1.tgz",
18734
+ "integrity": "sha512-6PU/+pnp2mgZAfnSXmbdwj9516XsEvTiw61Q5SNrvvdy8W/FCxk1GAe9UZn/m9YfS5A47yK6XkcjMHbp7aFApA==",
18735
+ "requires": {
18736
+ "date-format-parse": "^0.2.7"
18737
+ }
18738
+ },
18745
18739
  "vue2-dropzone": {
18746
18740
  "version": "3.6.0",
18747
18741
  "resolved": "https://registry.npmjs.org/vue2-dropzone/-/vue2-dropzone-3.6.0.tgz",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "toggle-components-library",
3
- "version": "1.36.1",
3
+ "version": "1.36.3",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -38,6 +38,7 @@
38
38
  "vue-moment": "^4.1.0",
39
39
  "vue-multiselect": "^2.0.8",
40
40
  "vue-router": "^3.6.4",
41
+ "vue2-datepicker": "^3.11.1",
41
42
  "vue2-dropzone": "^3.6.0",
42
43
  "vuedraggable": "^2.24.3",
43
44
  "webfontloader": "^1.6.28"
@@ -0,0 +1,10 @@
1
+ <svg id="Group_10" data-name="Group 10" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="624.048" height="499" viewBox="0 0 624.048 499">
2
+ <defs>
3
+ <clipPath id="clip-path">
4
+ <rect id="Rectangle_25" data-name="Rectangle 25" width="624.048" height="499" fill="none"/>
5
+ </clipPath>
6
+ </defs>
7
+ <g id="Group_9" data-name="Group 9" clip-path="url(#clip-path)">
8
+ <path id="Path_3" data-name="Path 3" d="M617.3,465.069l-.384-.318c-.385-.317-.9-.738-1.674-1.49-1.419-1.279-3.616-3.309-6.36-6.112a225.664,225.664,0,0,1-20.162-23.534c-.136-.182-.271-.367-.406-.55-22.957-31.214-26.261-72.555-9.486-107.484,16.327-34,23.783-71.208,20.13-109.472C586.148,81.9,441.91-14.07,276.747,1.694S-11.9,138.983.914,273.192,157.963,503.371,323.126,487.608a364.7,364.7,0,0,0,89.545-20,77.522,77.522,0,0,1,58.556,2.224,367.136,367.136,0,0,0,38.334,14.95c29.035,9.42,63.567,16.569,96.922,13.5A19.281,19.281,0,0,0,622.561,486.8a18.785,18.785,0,0,0-5.261-21.731m-446.79-153.1A50.455,50.455,0,1,1,216.243,257.2a50.456,50.456,0,0,1-45.733,54.772m138.931-12.493a50.454,50.454,0,1,1,45.734-54.77,50.454,50.454,0,0,1-45.734,54.77m134.991-12.137a50.455,50.455,0,1,1,45.733-54.769,50.455,50.455,0,0,1-45.733,54.769" transform="translate(0 0)" fill="#477ef6"/>
9
+ </g>
10
+ </svg>
@@ -0,0 +1,10 @@
1
+ <svg id="Group_10" data-name="Group 10" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="624.048" height="499" viewBox="0 0 624.048 499">
2
+ <defs>
3
+ <clipPath id="clip-path">
4
+ <rect id="Rectangle_25" data-name="Rectangle 25" width="624.048" height="499" fill="none"/>
5
+ </clipPath>
6
+ </defs>
7
+ <g id="Group_9" data-name="Group 9" clip-path="url(#clip-path)">
8
+ <path id="Path_3" data-name="Path 3" d="M617.3,465.069l-.384-.318c-.385-.317-.9-.738-1.674-1.49-1.419-1.279-3.616-3.309-6.36-6.112a225.664,225.664,0,0,1-20.162-23.534c-.136-.182-.271-.367-.406-.55-22.957-31.214-26.261-72.555-9.486-107.484,16.327-34,23.783-71.208,20.13-109.472C586.148,81.9,441.91-14.07,276.747,1.694S-11.9,138.983.914,273.192,157.963,503.371,323.126,487.608a364.7,364.7,0,0,0,89.545-20,77.522,77.522,0,0,1,58.556,2.224,367.136,367.136,0,0,0,38.334,14.95c29.035,9.42,63.567,16.569,96.922,13.5A19.281,19.281,0,0,0,622.561,486.8a18.785,18.785,0,0,0-5.261-21.731m-446.79-153.1A50.455,50.455,0,1,1,216.243,257.2a50.456,50.456,0,0,1-45.733,54.772m138.931-12.493a50.454,50.454,0,1,1,45.734-54.77,50.454,50.454,0,0,1-45.734,54.77m134.991-12.137a50.455,50.455,0,1,1,45.733-54.769,50.455,50.455,0,0,1-45.733,54.769" transform="translate(0 0)" fill="#354b64"/>
9
+ </g>
10
+ </svg>
@@ -1,6 +1,6 @@
1
1
  <template>
2
- <button :class="['toggle-metrics-button', buttonStyle]" @click="click">
3
- <div :class="icon"></div>
2
+ <button :class="['toggle-metrics-button', buttonStyle, 'toggle-metrics-button-' + size, {'toggle-metrics-button-disabled': disabled }]" :style="styles" @click="click" :disabled="disabled">
3
+ <div :class="icon" :style="styles ? 'background-color:' + styles.color : ''"></div>
4
4
  <slot>{{buttonText}}</slot>
5
5
  </button>
6
6
  </template>
@@ -19,8 +19,27 @@
19
19
  },
20
20
  icon: {
21
21
  type: String,
22
- required: true,
22
+ required: false,
23
+ validator: function(value) {
24
+ return ["heatmap-icon", "email-icon", "contacts-icon"].indexOf(value) !== -1;
25
+ }
23
26
  },
27
+ size: {
28
+ type: String,
29
+ default: "medium",
30
+ required: false,
31
+ validator: function(value) {
32
+ return ["small", "medium", "large"].indexOf(value) !== -1;
33
+ }
34
+ },
35
+ styles: {
36
+ type: Object,
37
+ required: false,
38
+ },
39
+ disabled: {
40
+ type: Boolean,
41
+ default: false
42
+ }
24
43
  },
25
44
  methods: {
26
45
  click() {
@@ -0,0 +1,55 @@
1
+ <template>
2
+ <div class="toggle-comment-card">
3
+ <div class="toggle-comment-card-info" :style="{ backgroundColor: cardColor }">
4
+ <div class="toggle-comment-card-text">
5
+ <p>"{{ comment }}"</p>
6
+ </div>
7
+ <div class="toggle-comment-card-name">
8
+ <slot name="button_contacts"></slot>
9
+ </div>
10
+ </div>
11
+ </div>
12
+ </template>
13
+ <script>
14
+ export default {
15
+ data() {
16
+ return {};
17
+ },
18
+ props: {
19
+ cardIndex: {
20
+ type: Number,
21
+ required: true,
22
+ },
23
+ totalCards: {
24
+ type: Number,
25
+ required: true,
26
+ },
27
+ comment: {
28
+ type: String,
29
+ required: true,
30
+ }
31
+ },
32
+ computed: {
33
+ cardColor() {
34
+ // adjust colour palette below to change the Reward Cards colors
35
+ const colorPalette = [
36
+ "#2c7da0",
37
+ "#f3c570",
38
+ "#8bbcbe",
39
+ "#a0a789",
40
+ "#cbae78",
41
+ "#a284b6",
42
+ "#d39999",
43
+ "#9b7361",
44
+ "#64aaa8",
45
+ "#799194",
46
+ ];
47
+
48
+ // pick random number to return random index of colourPalette
49
+ const paletteOrder = (this.cardIndex + 1) % colorPalette.length
50
+ const index = (paletteOrder === 0 ? colorPalette.length : paletteOrder) -1
51
+ return colorPalette[index];
52
+ }
53
+ }
54
+ };
55
+ </script>
@@ -1,28 +1,34 @@
1
1
  <template>
2
- <swiper
3
- ref="swiper"
4
- class="swiper toggle-carousel"
5
- :class="[
6
- carouselStyle == 'voucher' && slidesLength > 1 ? 'toggle-carousel--voucher' : '',
7
- carouselStyle == 'voucher' && isEnd && slidesLength > 1 ? 'toggle-carousel--voucher-end' : ''
8
- ]"
9
- :options="carouselOptions"
10
- @slideChangeTransitionStart="onSlideTransition"
11
- >
12
- <slot></slot>
13
- <div v-if="carouselPrev && slidesLength > 1"
2
+ <div class="toggle-carousel-wrapper">
3
+ <swiper
4
+ ref="swiper"
5
+ class="swiper toggle-carousel"
6
+ :class="[
7
+ carouselStyle == 'voucher' && slidesLength > 1 ? 'toggle-carousel--voucher' : '',
8
+ carouselStyle == 'voucher' && isEnd && slidesLength > 1 ? 'toggle-carousel--voucher-end' : ''
9
+ ]"
10
+ :options="carouselOptions"
11
+ @slideChangeTransitionStart="onSlideTransition"
12
+ >
13
+ <slot></slot>
14
+ </swiper>
15
+ <div v-if="carouselPrev && shouldShowArrows"
14
16
  class="toggle-carousel-button toggle-carousel-button--prev"
15
- :class="['toggle-carousel-button--' + carouselNavPosition, {'toggle-carousel-button--disabled': prevDisabled}]"
17
+ :class="['toggle-carousel-button--' + carouselNavPosition,
18
+ {'toggle-carousel-button--disabled': prevDisabled},
19
+ {'toggle-carousel-button--comments-left-arrow': carouselStyle == 'comments'}]"
16
20
  @click="slidePrev"
17
21
  slot="button-prev"
18
22
  ></div>
19
- <div v-if="carouselNext && slidesLength > 1"
23
+ <div v-if="carouselNext && shouldShowArrows"
20
24
  class="toggle-carousel-button toggle-carousel-button--next"
21
- :class="['toggle-carousel-button--' + carouselNavPosition, {'toggle-carousel-button--disabled': nextDisabled}]"
25
+ :class="['toggle-carousel-button--' + carouselNavPosition,
26
+ {'toggle-carousel-button--disabled': nextDisabled},
27
+ {'toggle-carousel-button--comments-right-arrow': carouselStyle == 'comments'}]"
22
28
  @click="$refs.swiper.swiperInstance.slideNext()"
23
29
  slot="button-next"
24
30
  ></div>
25
- </swiper>
31
+ </div>
26
32
  </template>
27
33
 
28
34
  <script>
@@ -38,6 +44,7 @@ export default {
38
44
  prevDisabled: false,
39
45
  nextDisabled: false,
40
46
  slidesLength: 0,
47
+ slidesShownPerView: 0,
41
48
  isEnd: false
42
49
  };
43
50
  },
@@ -98,6 +105,7 @@ export default {
98
105
  },
99
106
  refreshCarousel(){
100
107
  this.slidesLength = this.$refs.swiper.swiperInstance.slides.length;
108
+ this.slidesShownPerView = this.$refs.swiper.swiperInstance.slidesPerViewDynamic()
101
109
  this.onSlideTransition();
102
110
  },
103
111
  onSlideTransition(){
@@ -121,6 +129,11 @@ export default {
121
129
  this.nextDisabled = false;
122
130
  }
123
131
  }
132
+ },
133
+ computed: {
134
+ shouldShowArrows() {
135
+ return this.slidesLength > this.slidesShownPerView
136
+ }
124
137
  }
125
138
  }
126
139
  </script>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <swiper-slide class="toggle-carousel-slide" :style="'width:' + slideWidth + '; height:' + slideHeight">
2
+ <swiper-slide class="toggle-carousel-slide">
3
3
  <slot></slot>
4
4
  </swiper-slide>
5
5
  </template>