@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 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm3.445 17.827c-3.684 1.684-9.401-9.43-5.8-11.308l1.053-.519 1.746 3.409-1.042.513c-1.095.587 1.185 5.04 2.305 4.497l1.032-.505 1.76 3.397-1.054.516z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm3.445 17.827c-3.684 1.684-9.401-9.43-5.8-11.308l1.053-.519 1.746 3.409-1.042.513c-1.095.587 1.185 5.04 2.305 4.497l1.032-.505 1.76 3.397-1.054.516z"/></svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" fill="#e3effa" width="15" height="15" viewBox="0 0 24 24"><path d="M24 10h-10v-10h-4v10h-10v4h10v10h4v-10h10z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="#e3effa" width="15" height="15" viewBox="0 0 24 24"><path d="M24 10h-10v-10h-4v10h-10v4h10v10h4v-10h10z"/></svg>
@@ -1,3 +1,3 @@
1
- <svg class="h-2 w-2 fill-current text-red mr-2" viewBox="0 0 20 20">
2
- <circle cx="10" cy="10" r="10"/>
3
- </svg>
1
+ <svg class="h-2 w-2 fill-current text-red mr-2" viewBox="0 0 20 20">
2
+ <circle cx="10" cy="10" r="10"/>
3
+ </svg>
@@ -1,14 +1,14 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <svg width="50px" height="50px" viewBox="0 0 525 525" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
- <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
4
- <title>reject</title>
5
- <desc>Created with Sketch.</desc>
6
- <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
7
- <g id="Video-Call-yes-no-(1)" transform="translate(-622.000000, -134.000000)">
8
- <g id="reject" transform="translate(622.000000, 134.000000)">
9
- <circle id="Oval" fill="#9F2214" cx="262.32" cy="262.62" r="262.12"></circle>
10
- <path d="M431.13,324.68 C439.848013,309.180629 442.302617,290.932119 437.99,273.68 C416.99,187.68 263.99,190.13 263.99,190.13 C263.99,190.13 111,182.69 87.24,267.92 C82.3719639,285.020231 84.2288246,303.334817 92.43,319.11 L92.5,319.26 C96.787592,327.204682 105.735171,331.447697 114.6,329.74 L185.18,316.46 C185.18,316.46 208.36,310.18 206.24,290.15 C205.764001,286.286139 204.631018,282.532076 202.89,279.05 C199.05,267.58 192.23,250.83 184.23,247.22 C194.73,243.76 220.14,237.37 263.05,238.07 C305.96,238.77 331.14,246 341.52,249.8 C333.41,253.15 326.05,269.66 321.82,281.01 C319.970001,284.440405 318.715528,288.159869 318.11,292.01 C315.33,311.95 338.29,319.01 338.29,319.01 L408.61,334.65 C417.413254,336.643207 426.492273,332.696687 431.04,324.9 L431.13,324.68 Z" id="Path" fill="#FFFFFF"></path>
11
- </g>
12
- </g>
13
- </g>
14
- </svg>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="50px" height="50px" viewBox="0 0 525 525" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch -->
4
+ <title>reject</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
7
+ <g id="Video-Call-yes-no-(1)" transform="translate(-622.000000, -134.000000)">
8
+ <g id="reject" transform="translate(622.000000, 134.000000)">
9
+ <circle id="Oval" fill="#9F2214" cx="262.32" cy="262.62" r="262.12"></circle>
10
+ <path d="M431.13,324.68 C439.848013,309.180629 442.302617,290.932119 437.99,273.68 C416.99,187.68 263.99,190.13 263.99,190.13 C263.99,190.13 111,182.69 87.24,267.92 C82.3719639,285.020231 84.2288246,303.334817 92.43,319.11 L92.5,319.26 C96.787592,327.204682 105.735171,331.447697 114.6,329.74 L185.18,316.46 C185.18,316.46 208.36,310.18 206.24,290.15 C205.764001,286.286139 204.631018,282.532076 202.89,279.05 C199.05,267.58 192.23,250.83 184.23,247.22 C194.73,243.76 220.14,237.37 263.05,238.07 C305.96,238.77 331.14,246 341.52,249.8 C333.41,253.15 326.05,269.66 321.82,281.01 C319.970001,284.440405 318.715528,288.159869 318.11,292.01 C315.33,311.95 338.29,319.01 338.29,319.01 L408.61,334.65 C417.413254,336.643207 426.492273,332.696687 431.04,324.9 L431.13,324.68 Z" id="Path" fill="#FFFFFF"></path>
11
+ </g>
12
+ </g>
13
+ </g>
14
+ </svg>
@@ -1,3 +1,3 @@
1
- <svg class="fill-current text-grey h-4 w-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
2
- <path d="M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z" />
3
- </svg>
1
+ <svg class="fill-current text-grey h-4 w-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
2
+ <path d="M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z" />
3
+ </svg>
@@ -1,17 +1,17 @@
1
- <script lang="ts" setup>
2
- import { toRefs } from "vue";
3
- import { Affiliate } from "../../models/affiliate";
4
- import { Sponsor } from "../../models/conference";
5
-
6
- type Props = {
7
- affiliate: Affiliate | Sponsor;
8
- };
9
-
10
- const props = defineProps<Props>();
11
-
12
- const { affiliate } = toRefs(props);
13
- </script>
14
-
15
- <template>
16
- <div class="flex w-full flex-col"></div>
17
- </template>
1
+ <script lang="ts" setup>
2
+ import { toRefs } from "vue";
3
+ import { Affiliate } from "../../models/affiliate";
4
+ import { Sponsor } from "../../models/conference";
5
+
6
+ type Props = {
7
+ affiliate: Affiliate | Sponsor;
8
+ };
9
+
10
+ const props = defineProps<Props>();
11
+
12
+ const { affiliate } = toRefs(props);
13
+ </script>
14
+
15
+ <template>
16
+ <div class="flex w-full flex-col"></div>
17
+ </template>
@@ -1,273 +1,273 @@
1
- <script lang="ts" setup>
2
- import { ref, toRefs } from "vue";
3
- import { add } from "date-fns";
4
- import type { Conference } from "../../models/conference";
5
- import { useAgenda } from "../../composables/useAgenda";
6
- import { useDateFormat } from "../../composables/useDateFormat";
7
- import { usePresenter } from "../../composables/usePresenter";
8
- import { useClassBinding } from "../../composables/useClassBinding";
9
- import { Presenter } from "../../models/conference";
10
- import {
11
- AgendaListClassObj,
12
- AgendaListCompObj,
13
- AgendaListAccordionClassObj,
14
- } from "../../@types/components";
15
- import AgendaAccordion from "./components/AgendaListAccordion.vue";
16
- import Calendar from "./components/Calendar.vue";
17
-
18
- type Props = {
19
- conference: Conference;
20
- useCalendar?: boolean;
21
- classObject?: AgendaListClassObj;
22
- };
23
-
24
- const props = withDefaults(defineProps<Props>(), {
25
- useCalendar: true,
26
- classObject: () => {
27
- return {
28
- container: "",
29
- accordionContainer: "",
30
- titleContainer: "",
31
- timeElement: "",
32
- iconTextElement: "",
33
- iconElement: "",
34
- iconWidth: "20px",
35
- dropdownContainer: "",
36
- marginElement: "",
37
- presentersContainer: "",
38
- presentersHeader: "",
39
- presenterListContainer: "",
40
- presenterElement: "",
41
- presenterName: "",
42
- presenterTitle: "",
43
- components: ref<AgendaListCompObj>({
44
- agendaListAccordion: ref<AgendaListAccordionClassObj>({}),
45
- }),
46
- };
47
- },
48
- });
49
-
50
- const { conference } = toRefs(props);
51
-
52
- const { days, getCombinedTrackList } = useAgenda(conference);
53
- const { formatTimezoneToLocal } = useDateFormat();
54
- const { classBinding } = useClassBinding();
55
-
56
- // data
57
- const presentersToComposables = (presenters: Presenter[]) => {
58
- const data = [];
59
-
60
- presenters.forEach((presenter) => {
61
- data.push({
62
- presenter,
63
- ...usePresenter(presenter),
64
- });
65
- });
66
-
67
- return data;
68
- };
69
-
70
- const expandedPres = ref<number>(0);
71
-
72
- // methods
73
- const setPres = (_expanded: number) => {
74
- expandedPres.value = _expanded;
75
- };
76
-
77
- const logPres = (_presId: number, _expanded: number) => {
78
- console.log(_presId, typeof _presId);
79
- };
80
-
81
- const isPres = (_presId: number): boolean => {
82
- return expandedPres.value === _presId;
83
- };
84
- </script>
85
-
86
- <template>
87
- <div
88
- :class="
89
- classBinding(
90
- classObject,
91
- 'container',
92
- 'flex flex-col space-y-5 text-neutral-700'
93
- )
94
- "
95
- >
96
- <template v-for="day in days">
97
- <template v-for="track in getCombinedTrackList(day)">
98
- <div
99
- v-for="presentation in track.presentations"
100
- :key="presentation.id"
101
- :class="classBinding(classObject, 'accordionContainer', '')"
102
- >
103
- <AgendaAccordion
104
- :item-id="presentation.id"
105
- :class-object="classObject.components.agendaListAccordion"
106
- @expanded="setPres"
107
- >
108
- <template #header="isExpanded">
109
- <div
110
- :class="
111
- classBinding(
112
- classObject,
113
- 'titleContainer',
114
- 'text-left text-xl flex-col md:flex-row flex'
115
- )
116
- "
117
- >
118
- <span
119
- :class="
120
- classBinding(classObject, 'timeElement', 'time-width')
121
- "
122
- >
123
- {{
124
- formatTimezoneToLocal(
125
- presentation.date,
126
- "h:mm",
127
- conference.timezone
128
- )
129
- }}
130
- -
131
- {{
132
- formatTimezoneToLocal(
133
- add(new Date(presentation.date), {
134
- seconds: presentation.duration,
135
- }),
136
- "h:mm",
137
- conference.timezone
138
- )
139
- }}
140
- </span>
141
- <span
142
- :class="
143
- classBinding(
144
- classObject,
145
- 'iconTextElement',
146
- 'flex flex-row md:ml-5'
147
- )
148
- "
149
- >
150
- <CommonSvgIcon
151
- v-if="!isPres(presentation.id)"
152
- :class-object="{ svgElement: 'fill-neutral-700' }"
153
- :class="
154
- classBinding(classObject, 'iconElement', 'mr-1 pt-1')
155
- "
156
- icon="circlePlus"
157
- :width="classObject.iconWidth"
158
- />
159
- <CommonSvgIcon
160
- v-else
161
- :class-object="{ svgElement: 'fill-neutral-700' }"
162
- :class="
163
- classBinding(classObject, 'iconElement', 'mr-1 pt-1')
164
- "
165
- icon="circleMinus"
166
- :width="classObject.iconWidth"
167
- />
168
- {{ presentation.name }}
169
- </span>
170
- </div>
171
- </template>
172
- <template #body>
173
- <div
174
- :class="
175
- classBinding(
176
- classObject,
177
- 'dropdownContainer',
178
- 'flex flex-row'
179
- )
180
- "
181
- >
182
- <!-- left margin element -->
183
- <span
184
- :class="
185
- classBinding(
186
- classObject,
187
- 'marginElement',
188
- 'text-lg hidden md:block md:flex-initial time-width md:mr-8'
189
- )
190
- "
191
- />
192
- <div
193
- :class="
194
- classBinding(
195
- classObject,
196
- 'presentersContainer',
197
- 'flex-1 my-3'
198
- )
199
- "
200
- >
201
- <!-- ADD TO CALENDAR -->
202
- <calendar
203
- v-if="useCalendar"
204
- :key="conference.id"
205
- class="mb-3"
206
- :presentation="presentation"
207
- :conference="conference"
208
- />
209
- <h3
210
- :class="
211
- classBinding(
212
- classObject,
213
- 'presentersHeader',
214
- 'font-bold text-lg'
215
- )
216
- "
217
- >
218
- Presenters
219
- </h3>
220
- <div
221
- :class="
222
- classBinding(
223
- classObject,
224
- 'presenterListContainer',
225
- 'flex flex-col space-y-3'
226
- )
227
- "
228
- >
229
- <div
230
- v-for="presenter in presentersToComposables(
231
- presentation.presenters
232
- )"
233
- :key="presenter.presenter.id"
234
- :class="classBinding(classObject, 'presenterElement', '')"
235
- >
236
- <p
237
- :class="
238
- classBinding(
239
- classObject,
240
- 'presenterName',
241
- 'text-lg pb-0 mb-0'
242
- )
243
- "
244
- >
245
- {{ presenter.fullName.value }}
246
- </p>
247
- <p
248
- v-if="presenter.titleCompany.value"
249
- :class="
250
- classBinding(
251
- classObject,
252
- 'presenterTitle',
253
- 'text-sm pt-0 mb-1'
254
- )
255
- "
256
- >
257
- {{ presenter.titleCompany.value }}
258
- </p>
259
- </div>
260
- </div>
261
- </div>
262
- </div>
263
- </template>
264
- </AgendaAccordion>
265
- </div>
266
- </template>
267
- </template>
268
- </div>
269
- </template>
270
-
1
+ <script lang="ts" setup>
2
+ import { ref, toRefs } from "vue";
3
+ import { add } from "date-fns";
4
+ import type { Conference } from "../../models/conference";
5
+ import { useAgenda } from "../../composables/useAgenda";
6
+ import { useDateFormat } from "../../composables/useDateFormat";
7
+ import { usePresenter } from "../../composables/usePresenter";
8
+ import { useClassBinding } from "../../composables/useClassBinding";
9
+ import { Presenter } from "../../models/conference";
10
+ import {
11
+ AgendaListClassObj,
12
+ AgendaListCompObj,
13
+ AgendaListAccordionClassObj,
14
+ } from "../../@types/components";
15
+ import AgendaAccordion from "./components/AgendaListAccordion.vue";
16
+ import Calendar from "./components/Calendar.vue";
17
+
18
+ type Props = {
19
+ conference: Conference;
20
+ useCalendar?: boolean;
21
+ classObject?: AgendaListClassObj;
22
+ };
23
+
24
+ const props = withDefaults(defineProps<Props>(), {
25
+ useCalendar: true,
26
+ classObject: () => {
27
+ return {
28
+ container: "",
29
+ accordionContainer: "",
30
+ titleContainer: "",
31
+ timeElement: "",
32
+ iconTextElement: "",
33
+ iconElement: "",
34
+ iconWidth: "20px",
35
+ dropdownContainer: "",
36
+ marginElement: "",
37
+ presentersContainer: "",
38
+ presentersHeader: "",
39
+ presenterListContainer: "",
40
+ presenterElement: "",
41
+ presenterName: "",
42
+ presenterTitle: "",
43
+ components: ref<AgendaListCompObj>({
44
+ agendaListAccordion: ref<AgendaListAccordionClassObj>({}),
45
+ }),
46
+ };
47
+ },
48
+ });
49
+
50
+ const { conference } = toRefs(props);
51
+
52
+ const { days, getCombinedTrackList } = useAgenda(conference);
53
+ const { formatTimezoneToLocal } = useDateFormat();
54
+ const { classBinding } = useClassBinding();
55
+
56
+ // data
57
+ const presentersToComposables = (presenters: Presenter[]) => {
58
+ const data = [];
59
+
60
+ presenters.forEach((presenter) => {
61
+ data.push({
62
+ presenter,
63
+ ...usePresenter(presenter),
64
+ });
65
+ });
66
+
67
+ return data;
68
+ };
69
+
70
+ const expandedPres = ref<number>(0);
71
+
72
+ // methods
73
+ const setPres = (_expanded: number) => {
74
+ expandedPres.value = _expanded;
75
+ };
76
+
77
+ const logPres = (_presId: number, _expanded: number) => {
78
+ console.log(_presId, typeof _presId);
79
+ };
80
+
81
+ const isPres = (_presId: number): boolean => {
82
+ return expandedPres.value === _presId;
83
+ };
84
+ </script>
85
+
86
+ <template>
87
+ <div
88
+ :class="
89
+ classBinding(
90
+ classObject,
91
+ 'container',
92
+ 'flex flex-col space-y-5 text-neutral-700'
93
+ )
94
+ "
95
+ >
96
+ <template v-for="day in days">
97
+ <template v-for="track in getCombinedTrackList(day)">
98
+ <div
99
+ v-for="presentation in track.presentations"
100
+ :key="presentation.id"
101
+ :class="classBinding(classObject, 'accordionContainer', '')"
102
+ >
103
+ <AgendaAccordion
104
+ :item-id="presentation.id"
105
+ :class-object="classObject.components.agendaListAccordion"
106
+ @expanded="setPres"
107
+ >
108
+ <template #header="isExpanded">
109
+ <div
110
+ :class="
111
+ classBinding(
112
+ classObject,
113
+ 'titleContainer',
114
+ 'text-left text-xl flex-col md:flex-row flex'
115
+ )
116
+ "
117
+ >
118
+ <span
119
+ :class="
120
+ classBinding(classObject, 'timeElement', 'time-width')
121
+ "
122
+ >
123
+ {{
124
+ formatTimezoneToLocal(
125
+ presentation.date,
126
+ "h:mm",
127
+ conference.timezone
128
+ )
129
+ }}
130
+ -
131
+ {{
132
+ formatTimezoneToLocal(
133
+ add(new Date(presentation.date), {
134
+ seconds: presentation.duration,
135
+ }),
136
+ "h:mm",
137
+ conference.timezone
138
+ )
139
+ }}
140
+ </span>
141
+ <span
142
+ :class="
143
+ classBinding(
144
+ classObject,
145
+ 'iconTextElement',
146
+ 'flex flex-row md:ml-5'
147
+ )
148
+ "
149
+ >
150
+ <CommonSvgIcon
151
+ v-if="!isPres(presentation.id)"
152
+ :class-object="{ svgElement: 'fill-neutral-700' }"
153
+ :class="
154
+ classBinding(classObject, 'iconElement', 'mr-1 pt-1')
155
+ "
156
+ icon="circlePlus"
157
+ :width="classObject.iconWidth"
158
+ />
159
+ <CommonSvgIcon
160
+ v-else
161
+ :class-object="{ svgElement: 'fill-neutral-700' }"
162
+ :class="
163
+ classBinding(classObject, 'iconElement', 'mr-1 pt-1')
164
+ "
165
+ icon="circleMinus"
166
+ :width="classObject.iconWidth"
167
+ />
168
+ {{ presentation.name }}
169
+ </span>
170
+ </div>
171
+ </template>
172
+ <template #body>
173
+ <div
174
+ :class="
175
+ classBinding(
176
+ classObject,
177
+ 'dropdownContainer',
178
+ 'flex flex-row'
179
+ )
180
+ "
181
+ >
182
+ <!-- left margin element -->
183
+ <span
184
+ :class="
185
+ classBinding(
186
+ classObject,
187
+ 'marginElement',
188
+ 'text-lg hidden md:block md:flex-initial time-width md:mr-8'
189
+ )
190
+ "
191
+ />
192
+ <div
193
+ :class="
194
+ classBinding(
195
+ classObject,
196
+ 'presentersContainer',
197
+ 'flex-1 my-3'
198
+ )
199
+ "
200
+ >
201
+ <!-- ADD TO CALENDAR -->
202
+ <calendar
203
+ v-if="useCalendar"
204
+ :key="conference.id"
205
+ class="mb-3"
206
+ :presentation="presentation"
207
+ :conference="conference"
208
+ />
209
+ <h3
210
+ :class="
211
+ classBinding(
212
+ classObject,
213
+ 'presentersHeader',
214
+ 'font-bold text-lg'
215
+ )
216
+ "
217
+ >
218
+ Presenters
219
+ </h3>
220
+ <div
221
+ :class="
222
+ classBinding(
223
+ classObject,
224
+ 'presenterListContainer',
225
+ 'flex flex-col space-y-3'
226
+ )
227
+ "
228
+ >
229
+ <div
230
+ v-for="presenter in presentersToComposables(
231
+ presentation.presenters
232
+ )"
233
+ :key="presenter.presenter.id"
234
+ :class="classBinding(classObject, 'presenterElement', '')"
235
+ >
236
+ <p
237
+ :class="
238
+ classBinding(
239
+ classObject,
240
+ 'presenterName',
241
+ 'text-lg pb-0 mb-0'
242
+ )
243
+ "
244
+ >
245
+ {{ presenter.fullName.value }}
246
+ </p>
247
+ <p
248
+ v-if="presenter.titleCompany.value"
249
+ :class="
250
+ classBinding(
251
+ classObject,
252
+ 'presenterTitle',
253
+ 'text-sm pt-0 mb-1'
254
+ )
255
+ "
256
+ >
257
+ {{ presenter.titleCompany.value }}
258
+ </p>
259
+ </div>
260
+ </div>
261
+ </div>
262
+ </div>
263
+ </template>
264
+ </AgendaAccordion>
265
+ </div>
266
+ </template>
267
+ </template>
268
+ </div>
269
+ </template>
270
+
271
271
  <style>
272
272
  .accord {
273
273
  transition: height var(--vc-auto-duration) ease-out;
@@ -276,4 +276,4 @@ const isPres = (_presId: number): boolean => {
276
276
  .time-width {
277
277
  min-width: 10ch;
278
278
  }
279
- </style>
279
+ </style>