@icvdeveloper/common-module 0.0.126 → 0.0.127

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