@icvdeveloper/common-module 0.0.114 → 0.0.116

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 (93) hide show
  1. package/README.md +6 -6
  2. package/dist/module.json +1 -1
  3. package/dist/runtime/assets/svg/answer.svg +14 -14
  4. package/dist/runtime/assets/svg/avatar.svg +1 -1
  5. package/dist/runtime/assets/svg/bell-icon.svg +3 -3
  6. package/dist/runtime/assets/svg/checkmark-icon.svg +1 -1
  7. package/dist/runtime/assets/svg/close-icon.svg +1 -1
  8. package/dist/runtime/assets/svg/icon-avatar.svg +1 -1
  9. package/dist/runtime/assets/svg/icon-chevron.svg +4 -4
  10. package/dist/runtime/assets/svg/icon-circle-plus.svg +1 -1
  11. package/dist/runtime/assets/svg/icon-close.svg +1 -1
  12. package/dist/runtime/assets/svg/icon-info.svg +2 -2
  13. package/dist/runtime/assets/svg/icon-new-window.svg +11 -11
  14. package/dist/runtime/assets/svg/icon-offline.svg +3 -3
  15. package/dist/runtime/assets/svg/icon-online.svg +3 -3
  16. package/dist/runtime/assets/svg/icon-person.svg +2 -2
  17. package/dist/runtime/assets/svg/icon-play.svg +2 -2
  18. package/dist/runtime/assets/svg/icon-star-filled.svg +29 -29
  19. package/dist/runtime/assets/svg/icon-star.svg +24 -24
  20. package/dist/runtime/assets/svg/icon-video-chat.svg +14 -14
  21. package/dist/runtime/assets/svg/icon-website.svg +2 -2
  22. package/dist/runtime/assets/svg/icon-zoom.svg +10 -10
  23. package/dist/runtime/assets/svg/notification-icon.svg +32 -32
  24. package/dist/runtime/assets/svg/offline-icon.svg +1 -1
  25. package/dist/runtime/assets/svg/online-icon.svg +3 -3
  26. package/dist/runtime/assets/svg/peer2peer.svg +3 -3
  27. package/dist/runtime/assets/svg/phone.svg +1 -1
  28. package/dist/runtime/assets/svg/plus-icon.svg +1 -1
  29. package/dist/runtime/assets/svg/red-icon.svg +3 -3
  30. package/dist/runtime/assets/svg/reject.svg +14 -14
  31. package/dist/runtime/assets/svg/search-icon.svg +3 -3
  32. package/dist/runtime/components/affiliates/AffiliatePage.vue +17 -17
  33. package/dist/runtime/components/agenda/AgendaList.vue +271 -271
  34. package/dist/runtime/components/agenda/AgendaTabbed.vue +309 -309
  35. package/dist/runtime/components/agenda/components/AgendaListAccordion.vue +67 -67
  36. package/dist/runtime/components/agenda/components/Calendar.vue +81 -81
  37. package/dist/runtime/components/agenda/components/InfoLink.vue +56 -56
  38. package/dist/runtime/components/agenda/components/PlayIcon.vue +49 -49
  39. package/dist/runtime/components/agenda/components/PresentationLink.vue +137 -137
  40. package/dist/runtime/components/agenda/components/Sponsor.vue +132 -132
  41. package/dist/runtime/components/auth/LoginFullWidth.vue +78 -78
  42. package/dist/runtime/components/auth/PasswordReset.vue +60 -60
  43. package/dist/runtime/components/auth/Registration.vue +27 -27
  44. package/dist/runtime/components/auth/Ucc.vue +132 -132
  45. package/dist/runtime/components/core/Accordion.vue +97 -97
  46. package/dist/runtime/components/core/CountdownTimer.vue +357 -357
  47. package/dist/runtime/components/core/DynamicHtml.vue +1 -1
  48. package/dist/runtime/components/core/Modal.vue +111 -111
  49. package/dist/runtime/components/core/Navbar.vue +154 -154
  50. package/dist/runtime/components/core/SvgIcon.vue +157 -157
  51. package/dist/runtime/components/core/ZoomModal.vue +37 -37
  52. package/dist/runtime/components/events/EventHeader.vue +133 -133
  53. package/dist/runtime/components/events/ListEvents.vue +554 -567
  54. package/dist/runtime/components/forms/AlertBox.vue +21 -21
  55. package/dist/runtime/components/forms/ErrorField.vue +17 -17
  56. package/dist/runtime/components/forms/Message.vue +27 -27
  57. package/dist/runtime/components/forms/SearchInput.vue +38 -38
  58. package/dist/runtime/components/forms/SupportForm.vue +112 -112
  59. package/dist/runtime/components/forms/SwitchInput.vue +42 -42
  60. package/dist/runtime/components/forms/TextArea.vue +26 -26
  61. package/dist/runtime/components/forms/TextInput.vue +28 -28
  62. package/dist/runtime/components/layouts/Accordion.vue +78 -78
  63. package/dist/runtime/components/media/ArchivePlayerAndContentContainer.vue +160 -160
  64. package/dist/runtime/components/media/ArchiveVideoPlayer.vue +186 -186
  65. package/dist/runtime/components/media/PlayerAndContentContainer.vue +178 -178
  66. package/dist/runtime/components/media/WebcastVideoPlayer.vue +167 -167
  67. package/dist/runtime/components/media/components/AgendaPanel.vue +43 -43
  68. package/dist/runtime/components/media/components/ArchiveMediaContainer.vue +91 -91
  69. package/dist/runtime/components/media/components/CeCreditNotification.vue +95 -95
  70. package/dist/runtime/components/media/components/ContentAccordion.vue +63 -63
  71. package/dist/runtime/components/media/components/ContentArea.vue +158 -158
  72. package/dist/runtime/components/media/components/ContentTabs.vue +231 -231
  73. package/dist/runtime/components/media/components/DocumentsPanel.vue +31 -31
  74. package/dist/runtime/components/media/components/JsonApi.vue +31 -31
  75. package/dist/runtime/components/media/components/MediaContainer.vue +63 -63
  76. package/dist/runtime/components/media/components/OverviewPanel.vue +52 -52
  77. package/dist/runtime/components/media/components/PresentersPanel.vue +52 -52
  78. package/dist/runtime/components/media/components/SessionReporting.vue +93 -93
  79. package/dist/runtime/components/media/components/SponsorsPanel.vue +71 -71
  80. package/dist/runtime/components/media/components/WindowContent.vue +92 -92
  81. package/dist/runtime/components/media/components/WindowSlide.vue +72 -72
  82. package/dist/runtime/components/presenters/PresenterListing.vue +164 -164
  83. package/dist/runtime/components/presenters/PresenterModal.vue +223 -223
  84. package/dist/runtime/components/profile/Profile.vue +149 -149
  85. package/dist/runtime/components/profile/components/Sidebar.vue +27 -27
  86. package/dist/runtime/components/profile/components/SidebarNavItem.vue +39 -39
  87. package/dist/runtime/components/profile/tabs/Favorites.vue +21 -21
  88. package/dist/runtime/components/profile/tabs/GeneralInformation.vue +122 -122
  89. package/dist/runtime/components/profile/tabs/ProfileImage.vue +75 -75
  90. package/dist/runtime/components/support/FAQAccordion.vue +140 -140
  91. package/dist/runtime/plugin.mjs +32 -4
  92. package/dist/runtime/store/portal.mjs +1 -1
  93. package/package.json +1 -1
@@ -1,359 +1,359 @@
1
- <script lang="ts" setup>
2
- import { ref, toRefs, computed, onMounted } from "vue";
3
- import { storeToRefs } from "pinia";
4
- import {
5
- isBefore,
6
- differenceInDays,
7
- differenceInHours,
8
- differenceInMinutes,
9
- differenceInSeconds,
10
- addDays,
11
- addHours,
12
- addMinutes,
13
- } from "date-fns";
14
- import { useTemplateConfigsStore } from "../../store";
15
- import { countdownTimerClassObj } from "../../@types/components";
16
- import { useClassBinding } from "../../composables/useClassBinding";
17
-
18
- interface Props {
19
- date: string;
20
- isCompact?: boolean;
21
- showDays?: boolean;
22
- showHours?: boolean;
23
- showMinutes?: boolean;
24
- showSeconds?: boolean;
25
- showStatusText?: boolean;
26
- classObject?: countdownTimerClassObj;
27
- }
28
-
29
- const props = withDefaults(defineProps<Props>(), {
30
- isCompact: false,
31
- showDays: true,
32
- showHours: true,
33
- showMinutes: true,
34
- showSeconds: true,
35
- showStatusText: true,
36
- classObject: () => {
37
- return {
38
- container: "",
39
- countdownContainer: "",
40
- beginText: "",
41
- unitsContainer: "",
42
- itemContainer: "",
43
- unitLabel: "",
44
- unitContainer: "",
45
- unit: "",
46
- };
47
- },
48
- });
49
-
50
- const {
51
- isCompact,
52
- showDays,
53
- showHours,
54
- showMinutes,
55
- showSeconds,
56
- classObject,
57
- } = toRefs(props);
58
-
59
- const { classBinding } = useClassBinding();
60
-
61
- // reactive data
62
- const isCounting = ref<boolean>(true);
63
- const days = ref<number>(0);
64
- const hours = ref<number>(0);
65
- const minutes = ref<number>(0);
66
- const seconds = ref<number>(0);
67
- const loopTimer = ref<NodeJS.Timer | null>(null);
68
- const { pagesConfigValue } = storeToRefs(useTemplateConfigsStore());
69
-
70
- // emits
71
- const emit = defineEmits(["complete"]);
72
-
73
- // computed
74
- const eventHasBegunText = computed(() => {
75
- return (
76
- pagesConfigValue.value("main.countdown_event_has_begun_text") ||
77
- "The Event Has Begun"
78
- );
79
- });
80
-
81
- const clockStyle = computed(() => {
82
- return pagesConfigValue.value("main.countdown_timer_style", "windows");
83
- });
84
-
85
- const fontClass = computed(() => {
86
- const fontBase = "font-bold";
87
- return props.isCompact === true
88
- ? fontBase + " text-xl lg:text-2xl"
89
- : fontBase + " text-2xl lg:text-4xl";
90
- });
91
-
92
- // methods
93
- const updateCountdown = () => {
94
- if (!isBefore(new Date(), new Date(props.date))) {
95
- isCounting.value = false;
96
- emit("complete");
97
- clearInterval(loopTimer.value);
98
- return;
99
- }
100
-
101
- days.value = differenceInDays(new Date(props.date), new Date());
102
- hours.value = differenceInHours(
103
- new Date(props.date),
104
- addDays(new Date(), days.value)
105
- );
106
-
107
- minutes.value = differenceInHours(
108
- new Date(props.date),
109
- addDays(addHours(new Date(), hours.value), days.value)
110
- );
111
- minutes.value = differenceInMinutes(
112
- new Date(props.date),
113
- addDays(addHours(new Date(), hours.value), days.value)
114
- );
115
- seconds.value = differenceInSeconds(
116
- new Date(props.date),
117
- addDays(
118
- addHours(addMinutes(new Date(), minutes.value), hours.value),
119
- days.value
120
- )
121
- );
122
- };
123
-
124
- const startCountdown = () => {
125
- updateCountdown();
126
- loopTimer.value = setInterval(() => {
127
- updateCountdown();
128
- }, 1000);
129
- };
130
-
131
- // on mount
132
- onMounted(() => {
133
- startCountdown();
134
- });
135
- </script>
136
-
137
- <template>
138
- <div
139
- :class="[
140
- { compact: isCompact, fullsize: !isCompact },
141
- classBinding(classObject, 'container', 'countdown-timer'),
142
- ]"
143
- >
144
- <div
145
- :class="
146
- classBinding(
147
- classObject,
148
- 'countdownContainer',
149
- 'countdown-container flex flex-col pt-8 mx-4 text-center justify-center items-center content-center'
150
- )
151
- "
152
- >
153
- <div v-if="showStatusText" class="flex-initial">
154
- <h1
155
- :class="
156
- classBinding(
157
- classObject,
158
- 'beginText',
159
- 'm-0 p-0 uppercase heading-color-3'
160
- )
161
- "
162
- >
163
- {{ !isCounting ? "event begins" : eventHasBegunText }}
164
- </h1>
165
- </div>
166
-
167
- <div
168
- v-if="isCounting"
169
- :class="
170
- classBinding(
171
- classObject,
172
- 'unitsContainer',
173
- 'units-container flex text-center p-6 pt-4 mt-4 items-center border border-color-accent-1 accent-color-3'
174
- )
175
- "
176
- >
177
- <!-- Days -->
178
- <div
179
- v-if="showDays"
180
- :class="[
181
- { dropshade: clockStyle == 'dials' },
182
- classBinding(classObject, 'itemContainer', 'item-container'),
183
- ]"
184
- >
185
- <div
186
- :class="[
187
- clockStyle,
188
- classBinding(classObject, 'unitLabel', 'unit-label-container'),
189
- ]"
190
- >
191
- Days
192
- </div>
193
- <div
194
- :class="[
195
- clockStyle,
196
- classBinding(
197
- classObject,
198
- 'unitContainer',
199
- 'unit-container contrast-border'
200
- ),
201
- ]"
202
- >
203
- <div
204
- v-if="clockStyle == 'windows'"
205
- :class="[fontClass, classBinding(classObject, 'unit', '')]"
206
- >
207
- {{ days }}
208
- </div>
209
- <transition v-if="clockStyle == 'dials'" name="slide" mode="out-in">
210
- <div
211
- :key="days"
212
- :class="[fontClass, classBinding(classObject, 'unit', '')]"
213
- >
214
- {{ days }}
215
- </div>
216
- </transition>
217
- </div>
218
- </div>
219
-
220
- <!-- Hours -->
221
- <div
222
- v-if="showHours"
223
- :class="[
224
- { dropshade: clockStyle == 'dials' },
225
- classBinding(classObject, 'itemContainer', 'item-container'),
226
- ]"
227
- >
228
- <div
229
- :class="[
230
- clockStyle,
231
- classBinding(classObject, 'unitLabel', 'unit-label-container'),
232
- ]"
233
- >
234
- Hours
235
- </div>
236
- <div
237
- :class="[
238
- clockStyle,
239
- classBinding(
240
- classObject,
241
- 'unitContainer',
242
- 'unit-container contrast-border'
243
- ),
244
- ]"
245
- >
246
- <div
247
- v-if="clockStyle == 'windows'"
248
- :class="[fontClass, classBinding(classObject, 'unit', '')]"
249
- >
250
- {{ hours }}
251
- </div>
252
- <transition v-if="clockStyle == 'dials'" name="slide" mode="out-in">
253
- <div
254
- :key="hours"
255
- :class="[fontClass, classBinding(classObject, 'unit', '')]"
256
- >
257
- {{ hours }}
258
- </div>
259
- </transition>
260
- </div>
261
- </div>
262
-
263
- <!-- Minutes -->
264
- <div
265
- v-if="showMinutes"
266
- :class="[
267
- { dropshade: clockStyle == 'dials' },
268
- classBinding(classObject, 'itemContainer', 'item-container'),
269
- ]"
270
- >
271
- <div
272
- :class="[
273
- clockStyle,
274
- classBinding(classObject, 'unitLabel', 'unit-label-container'),
275
- ]"
276
- >
277
- Minutes
278
- </div>
279
- <div
280
- :class="[
281
- clockStyle,
282
- classBinding(
283
- classObject,
284
- 'unitContainer',
285
- 'unit-container contrast-border'
286
- ),
287
- ]"
288
- >
289
- <div
290
- v-if="clockStyle == 'windows'"
291
- :class="[fontClass, classBinding(classObject, 'unit', '')]"
292
- >
293
- {{ minutes }}
294
- </div>
295
- <transition v-if="clockStyle == 'dials'" name="slide" mode="out-in">
296
- <div
297
- :key="minutes"
298
- :class="[fontClass, classBinding(classObject, 'unit', '')]"
299
- >
300
- {{ minutes }}
301
- </div>
302
- </transition>
303
- </div>
304
- </div>
305
-
306
- <!-- Seconds -->
307
- <div
308
- v-if="showSeconds"
309
- :class="[
310
- { dropshade: clockStyle == 'dials' },
311
- classBinding(classObject, 'itemContainer', 'item-container last'),
312
- ]"
313
- >
314
- <div
315
- :class="[
316
- clockStyle,
317
- classBinding(
318
- classObject,
319
- 'unitLabel',
320
- 'unit-label-container last'
321
- ),
322
- ]"
323
- >
324
- Seconds
325
- </div>
326
- <div
327
- :class="[
328
- clockStyle,
329
- classBinding(
330
- classObject,
331
- 'unitContainer',
332
- 'unit-container contrast-border'
333
- ),
334
- ]"
335
- >
336
- <div
337
- v-if="clockStyle == 'windows'"
338
- :class="[fontClass, classBinding(classObject, 'unit', '')]"
339
- >
340
- {{ seconds }}
341
- </div>
342
- <transition v-if="clockStyle == 'dials'" name="slide" mode="out-in">
343
- <div
344
- :key="seconds"
345
- :class="[fontClass, classBinding(classObject, 'unit', '')]"
346
- >
347
- {{ seconds }}
348
- </div>
349
- </transition>
350
- </div>
351
- </div>
352
- </div>
353
- </div>
354
- </div>
355
- </template>
356
-
1
+ <script lang="ts" setup>
2
+ import { ref, toRefs, computed, onMounted } from "vue";
3
+ import { storeToRefs } from "pinia";
4
+ import {
5
+ isBefore,
6
+ differenceInDays,
7
+ differenceInHours,
8
+ differenceInMinutes,
9
+ differenceInSeconds,
10
+ addDays,
11
+ addHours,
12
+ addMinutes,
13
+ } from "date-fns";
14
+ import { useTemplateConfigsStore } from "../../store";
15
+ import { countdownTimerClassObj } from "../../@types/components";
16
+ import { useClassBinding } from "../../composables/useClassBinding";
17
+
18
+ interface Props {
19
+ date: string;
20
+ isCompact?: boolean;
21
+ showDays?: boolean;
22
+ showHours?: boolean;
23
+ showMinutes?: boolean;
24
+ showSeconds?: boolean;
25
+ showStatusText?: boolean;
26
+ classObject?: countdownTimerClassObj;
27
+ }
28
+
29
+ const props = withDefaults(defineProps<Props>(), {
30
+ isCompact: false,
31
+ showDays: true,
32
+ showHours: true,
33
+ showMinutes: true,
34
+ showSeconds: true,
35
+ showStatusText: true,
36
+ classObject: () => {
37
+ return {
38
+ container: "",
39
+ countdownContainer: "",
40
+ beginText: "",
41
+ unitsContainer: "",
42
+ itemContainer: "",
43
+ unitLabel: "",
44
+ unitContainer: "",
45
+ unit: "",
46
+ };
47
+ },
48
+ });
49
+
50
+ const {
51
+ isCompact,
52
+ showDays,
53
+ showHours,
54
+ showMinutes,
55
+ showSeconds,
56
+ classObject,
57
+ } = toRefs(props);
58
+
59
+ const { classBinding } = useClassBinding();
60
+
61
+ // reactive data
62
+ const isCounting = ref<boolean>(true);
63
+ const days = ref<number>(0);
64
+ const hours = ref<number>(0);
65
+ const minutes = ref<number>(0);
66
+ const seconds = ref<number>(0);
67
+ const loopTimer = ref<NodeJS.Timer | null>(null);
68
+ const { pagesConfigValue } = storeToRefs(useTemplateConfigsStore());
69
+
70
+ // emits
71
+ const emit = defineEmits(["complete"]);
72
+
73
+ // computed
74
+ const eventHasBegunText = computed(() => {
75
+ return (
76
+ pagesConfigValue.value("main.countdown_event_has_begun_text") ||
77
+ "The Event Has Begun"
78
+ );
79
+ });
80
+
81
+ const clockStyle = computed(() => {
82
+ return pagesConfigValue.value("main.countdown_timer_style", "windows");
83
+ });
84
+
85
+ const fontClass = computed(() => {
86
+ const fontBase = "font-bold";
87
+ return props.isCompact === true
88
+ ? fontBase + " text-xl lg:text-2xl"
89
+ : fontBase + " text-2xl lg:text-4xl";
90
+ });
91
+
92
+ // methods
93
+ const updateCountdown = () => {
94
+ if (!isBefore(new Date(), new Date(props.date))) {
95
+ isCounting.value = false;
96
+ emit("complete");
97
+ clearInterval(loopTimer.value);
98
+ return;
99
+ }
100
+
101
+ days.value = differenceInDays(new Date(props.date), new Date());
102
+ hours.value = differenceInHours(
103
+ new Date(props.date),
104
+ addDays(new Date(), days.value)
105
+ );
106
+
107
+ minutes.value = differenceInHours(
108
+ new Date(props.date),
109
+ addDays(addHours(new Date(), hours.value), days.value)
110
+ );
111
+ minutes.value = differenceInMinutes(
112
+ new Date(props.date),
113
+ addDays(addHours(new Date(), hours.value), days.value)
114
+ );
115
+ seconds.value = differenceInSeconds(
116
+ new Date(props.date),
117
+ addDays(
118
+ addHours(addMinutes(new Date(), minutes.value), hours.value),
119
+ days.value
120
+ )
121
+ );
122
+ };
123
+
124
+ const startCountdown = () => {
125
+ updateCountdown();
126
+ loopTimer.value = setInterval(() => {
127
+ updateCountdown();
128
+ }, 1000);
129
+ };
130
+
131
+ // on mount
132
+ onMounted(() => {
133
+ startCountdown();
134
+ });
135
+ </script>
136
+
137
+ <template>
138
+ <div
139
+ :class="[
140
+ { compact: isCompact, fullsize: !isCompact },
141
+ classBinding(classObject, 'container', 'countdown-timer'),
142
+ ]"
143
+ >
144
+ <div
145
+ :class="
146
+ classBinding(
147
+ classObject,
148
+ 'countdownContainer',
149
+ 'countdown-container flex flex-col pt-8 mx-4 text-center justify-center items-center content-center'
150
+ )
151
+ "
152
+ >
153
+ <div v-if="showStatusText" class="flex-initial">
154
+ <h1
155
+ :class="
156
+ classBinding(
157
+ classObject,
158
+ 'beginText',
159
+ 'm-0 p-0 uppercase heading-color-3'
160
+ )
161
+ "
162
+ >
163
+ {{ !isCounting ? "event begins" : eventHasBegunText }}
164
+ </h1>
165
+ </div>
166
+
167
+ <div
168
+ v-if="isCounting"
169
+ :class="
170
+ classBinding(
171
+ classObject,
172
+ 'unitsContainer',
173
+ 'units-container flex text-center p-6 pt-4 mt-4 items-center border border-color-accent-1 accent-color-3'
174
+ )
175
+ "
176
+ >
177
+ <!-- Days -->
178
+ <div
179
+ v-if="showDays"
180
+ :class="[
181
+ { dropshade: clockStyle == 'dials' },
182
+ classBinding(classObject, 'itemContainer', 'item-container'),
183
+ ]"
184
+ >
185
+ <div
186
+ :class="[
187
+ clockStyle,
188
+ classBinding(classObject, 'unitLabel', 'unit-label-container'),
189
+ ]"
190
+ >
191
+ Days
192
+ </div>
193
+ <div
194
+ :class="[
195
+ clockStyle,
196
+ classBinding(
197
+ classObject,
198
+ 'unitContainer',
199
+ 'unit-container contrast-border'
200
+ ),
201
+ ]"
202
+ >
203
+ <div
204
+ v-if="clockStyle == 'windows'"
205
+ :class="[fontClass, classBinding(classObject, 'unit', '')]"
206
+ >
207
+ {{ days }}
208
+ </div>
209
+ <transition v-if="clockStyle == 'dials'" name="slide" mode="out-in">
210
+ <div
211
+ :key="days"
212
+ :class="[fontClass, classBinding(classObject, 'unit', '')]"
213
+ >
214
+ {{ days }}
215
+ </div>
216
+ </transition>
217
+ </div>
218
+ </div>
219
+
220
+ <!-- Hours -->
221
+ <div
222
+ v-if="showHours"
223
+ :class="[
224
+ { dropshade: clockStyle == 'dials' },
225
+ classBinding(classObject, 'itemContainer', 'item-container'),
226
+ ]"
227
+ >
228
+ <div
229
+ :class="[
230
+ clockStyle,
231
+ classBinding(classObject, 'unitLabel', 'unit-label-container'),
232
+ ]"
233
+ >
234
+ Hours
235
+ </div>
236
+ <div
237
+ :class="[
238
+ clockStyle,
239
+ classBinding(
240
+ classObject,
241
+ 'unitContainer',
242
+ 'unit-container contrast-border'
243
+ ),
244
+ ]"
245
+ >
246
+ <div
247
+ v-if="clockStyle == 'windows'"
248
+ :class="[fontClass, classBinding(classObject, 'unit', '')]"
249
+ >
250
+ {{ hours }}
251
+ </div>
252
+ <transition v-if="clockStyle == 'dials'" name="slide" mode="out-in">
253
+ <div
254
+ :key="hours"
255
+ :class="[fontClass, classBinding(classObject, 'unit', '')]"
256
+ >
257
+ {{ hours }}
258
+ </div>
259
+ </transition>
260
+ </div>
261
+ </div>
262
+
263
+ <!-- Minutes -->
264
+ <div
265
+ v-if="showMinutes"
266
+ :class="[
267
+ { dropshade: clockStyle == 'dials' },
268
+ classBinding(classObject, 'itemContainer', 'item-container'),
269
+ ]"
270
+ >
271
+ <div
272
+ :class="[
273
+ clockStyle,
274
+ classBinding(classObject, 'unitLabel', 'unit-label-container'),
275
+ ]"
276
+ >
277
+ Minutes
278
+ </div>
279
+ <div
280
+ :class="[
281
+ clockStyle,
282
+ classBinding(
283
+ classObject,
284
+ 'unitContainer',
285
+ 'unit-container contrast-border'
286
+ ),
287
+ ]"
288
+ >
289
+ <div
290
+ v-if="clockStyle == 'windows'"
291
+ :class="[fontClass, classBinding(classObject, 'unit', '')]"
292
+ >
293
+ {{ minutes }}
294
+ </div>
295
+ <transition v-if="clockStyle == 'dials'" name="slide" mode="out-in">
296
+ <div
297
+ :key="minutes"
298
+ :class="[fontClass, classBinding(classObject, 'unit', '')]"
299
+ >
300
+ {{ minutes }}
301
+ </div>
302
+ </transition>
303
+ </div>
304
+ </div>
305
+
306
+ <!-- Seconds -->
307
+ <div
308
+ v-if="showSeconds"
309
+ :class="[
310
+ { dropshade: clockStyle == 'dials' },
311
+ classBinding(classObject, 'itemContainer', 'item-container last'),
312
+ ]"
313
+ >
314
+ <div
315
+ :class="[
316
+ clockStyle,
317
+ classBinding(
318
+ classObject,
319
+ 'unitLabel',
320
+ 'unit-label-container last'
321
+ ),
322
+ ]"
323
+ >
324
+ Seconds
325
+ </div>
326
+ <div
327
+ :class="[
328
+ clockStyle,
329
+ classBinding(
330
+ classObject,
331
+ 'unitContainer',
332
+ 'unit-container contrast-border'
333
+ ),
334
+ ]"
335
+ >
336
+ <div
337
+ v-if="clockStyle == 'windows'"
338
+ :class="[fontClass, classBinding(classObject, 'unit', '')]"
339
+ >
340
+ {{ seconds }}
341
+ </div>
342
+ <transition v-if="clockStyle == 'dials'" name="slide" mode="out-in">
343
+ <div
344
+ :key="seconds"
345
+ :class="[fontClass, classBinding(classObject, 'unit', '')]"
346
+ >
347
+ {{ seconds }}
348
+ </div>
349
+ </transition>
350
+ </div>
351
+ </div>
352
+ </div>
353
+ </div>
354
+ </div>
355
+ </template>
356
+
357
357
  <style scoped>
358
358
  .countdown-timer.compact .countdown-container {
359
359
  @apply pt-0 mx-0;
@@ -485,4 +485,4 @@ onMounted(() => {
485
485
  .slide-leave-active {
486
486
  transform: translate(0, 100%);
487
487
  }
488
- </style>
488
+ </style>