@icvdeveloper/common-module 0.0.123 → 0.0.124
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.
- package/README.md +6 -6
- package/dist/module.json +1 -1
- package/dist/runtime/assets/svg/answer.svg +14 -14
- package/dist/runtime/assets/svg/avatar.svg +1 -1
- package/dist/runtime/assets/svg/bell-icon.svg +3 -3
- package/dist/runtime/assets/svg/checkmark-icon.svg +1 -1
- package/dist/runtime/assets/svg/close-icon.svg +1 -1
- package/dist/runtime/assets/svg/icon-avatar.svg +1 -1
- package/dist/runtime/assets/svg/icon-chevron.svg +4 -4
- package/dist/runtime/assets/svg/icon-circle-plus.svg +1 -1
- package/dist/runtime/assets/svg/icon-close.svg +1 -1
- package/dist/runtime/assets/svg/icon-info.svg +2 -2
- package/dist/runtime/assets/svg/icon-new-window.svg +11 -11
- package/dist/runtime/assets/svg/icon-offline.svg +3 -3
- package/dist/runtime/assets/svg/icon-online.svg +3 -3
- package/dist/runtime/assets/svg/icon-person.svg +2 -2
- package/dist/runtime/assets/svg/icon-play.svg +2 -2
- package/dist/runtime/assets/svg/icon-star-filled.svg +29 -29
- package/dist/runtime/assets/svg/icon-star.svg +24 -24
- package/dist/runtime/assets/svg/icon-video-chat.svg +14 -14
- package/dist/runtime/assets/svg/icon-website.svg +2 -2
- package/dist/runtime/assets/svg/icon-zoom.svg +10 -10
- package/dist/runtime/assets/svg/notification-icon.svg +32 -32
- package/dist/runtime/assets/svg/offline-icon.svg +1 -1
- package/dist/runtime/assets/svg/online-icon.svg +3 -3
- package/dist/runtime/assets/svg/peer2peer.svg +3 -3
- package/dist/runtime/assets/svg/phone.svg +1 -1
- package/dist/runtime/assets/svg/plus-icon.svg +1 -1
- package/dist/runtime/assets/svg/red-icon.svg +3 -3
- package/dist/runtime/assets/svg/reject.svg +14 -14
- package/dist/runtime/assets/svg/search-icon.svg +3 -3
- package/dist/runtime/components/affiliates/AffiliatePage.vue +17 -17
- package/dist/runtime/components/agenda/AgendaList.vue +259 -259
- package/dist/runtime/components/agenda/AgendaTabbed.vue +305 -305
- package/dist/runtime/components/agenda/components/AgendaListAccordion.vue +67 -67
- package/dist/runtime/components/agenda/components/Calendar.vue +67 -67
- package/dist/runtime/components/agenda/components/InfoLink.vue +56 -56
- package/dist/runtime/components/agenda/components/PlayIcon.vue +49 -49
- package/dist/runtime/components/agenda/components/PresentationLink.vue +137 -137
- package/dist/runtime/components/agenda/components/Sponsor.vue +132 -132
- package/dist/runtime/components/auth/LoginFullWidth.vue +78 -78
- package/dist/runtime/components/auth/PasswordReset.vue +60 -60
- package/dist/runtime/components/auth/Registration.vue +27 -27
- package/dist/runtime/components/auth/Ucc.vue +129 -129
- package/dist/runtime/components/core/Accordion.vue +97 -97
- package/dist/runtime/components/core/CountdownTimer.vue +336 -336
- package/dist/runtime/components/core/DynamicHtml.vue +1 -1
- package/dist/runtime/components/core/Modal.vue +111 -111
- package/dist/runtime/components/core/Navbar.vue +154 -154
- package/dist/runtime/components/core/SvgIcon.vue +157 -157
- package/dist/runtime/components/core/ZoomModal.vue +37 -37
- package/dist/runtime/components/events/EventHeader.vue +133 -133
- package/dist/runtime/components/events/ListEvents.vue +554 -554
- package/dist/runtime/components/forms/AlertBox.vue +21 -21
- package/dist/runtime/components/forms/ErrorField.vue +17 -17
- package/dist/runtime/components/forms/Message.vue +27 -27
- package/dist/runtime/components/forms/SearchInput.vue +38 -38
- package/dist/runtime/components/forms/SupportForm.vue +112 -112
- package/dist/runtime/components/forms/SwitchInput.vue +42 -42
- package/dist/runtime/components/forms/TextArea.vue +26 -26
- package/dist/runtime/components/forms/TextInput.vue +28 -28
- package/dist/runtime/components/layouts/Accordion.vue +78 -78
- package/dist/runtime/components/media/ArchivePlayerAndContentContainer.vue +160 -160
- package/dist/runtime/components/media/ArchiveVideoPlayer.vue +186 -186
- package/dist/runtime/components/media/PlayerAndContentContainer.vue +178 -178
- package/dist/runtime/components/media/WebcastVideoPlayer.vue +140 -140
- package/dist/runtime/components/media/components/AgendaPanel.vue +43 -43
- package/dist/runtime/components/media/components/ArchiveMediaContainer.vue +91 -91
- package/dist/runtime/components/media/components/CeCreditNotification.vue +95 -95
- package/dist/runtime/components/media/components/ContentAccordion.vue +63 -63
- package/dist/runtime/components/media/components/ContentArea.vue +158 -158
- package/dist/runtime/components/media/components/ContentTabs.vue +231 -231
- package/dist/runtime/components/media/components/DocumentsPanel.vue +31 -31
- package/dist/runtime/components/media/components/JsonApi.vue +31 -31
- package/dist/runtime/components/media/components/MediaContainer.vue +63 -63
- package/dist/runtime/components/media/components/OverviewPanel.vue +52 -52
- package/dist/runtime/components/media/components/PresentersPanel.vue +52 -52
- package/dist/runtime/components/media/components/SessionReporting.vue +101 -95
- package/dist/runtime/components/media/components/SponsorsPanel.vue +71 -71
- package/dist/runtime/components/media/components/WindowContent.vue +92 -92
- package/dist/runtime/components/media/components/WindowSlide.vue +72 -72
- package/dist/runtime/components/presenters/PresenterListing.vue +164 -164
- package/dist/runtime/components/presenters/PresenterModal.vue +223 -223
- package/dist/runtime/components/profile/Profile.vue +149 -149
- package/dist/runtime/components/profile/components/Sidebar.vue +27 -27
- package/dist/runtime/components/profile/components/SidebarNavItem.vue +39 -39
- package/dist/runtime/components/profile/tabs/Favorites.vue +21 -21
- package/dist/runtime/components/profile/tabs/GeneralInformation.vue +122 -122
- package/dist/runtime/components/profile/tabs/ProfileImage.vue +75 -75
- package/dist/runtime/components/support/FAQAccordion.vue +140 -140
- package/dist/runtime/composables/useUcc.mjs +0 -14
- package/dist/runtime/store/auth.mjs +0 -3
- package/package.json +1 -1
- package/dist/runtime/components/media/components/SessionReporting.vue.d.ts +0 -35
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
import { ref, toRefs } from "vue";
|
|
3
|
-
import { useClassBinding } from "../../../composables/useClassBinding";
|
|
4
|
-
import { AgendaListAccordionClassObj } from "../../../@types/components";
|
|
5
|
-
|
|
6
|
-
type Props = {
|
|
7
|
-
itemId?: number;
|
|
8
|
-
classObject?: AgendaListAccordionClassObj;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const props = withDefaults(defineProps<Props>(), {
|
|
12
|
-
itemId: 0,
|
|
13
|
-
classObject: () => {
|
|
14
|
-
return {
|
|
15
|
-
container: "",
|
|
16
|
-
headerContainer: "",
|
|
17
|
-
headerButton: "",
|
|
18
|
-
dropdownContainer: "",
|
|
19
|
-
};
|
|
20
|
-
},
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
const { itemId } = toRefs(props);
|
|
24
|
-
|
|
25
|
-
const { classBinding } = useClassBinding();
|
|
26
|
-
|
|
27
|
-
const expanded = ref<boolean>(false);
|
|
28
|
-
|
|
29
|
-
// emits
|
|
30
|
-
const emit = defineEmits<{
|
|
31
|
-
(e: "expanded", value: number): void;
|
|
32
|
-
}>();
|
|
33
|
-
|
|
34
|
-
// methods
|
|
35
|
-
const toggle = () => {
|
|
36
|
-
expanded.value = !expanded.value;
|
|
37
|
-
if (expanded.value) {
|
|
38
|
-
emit("expanded", itemId.value);
|
|
39
|
-
} else {
|
|
40
|
-
emit("expanded", 0);
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
</script>
|
|
44
|
-
|
|
45
|
-
<template>
|
|
46
|
-
<div :class="classBinding(classObject, 'container', '')">
|
|
47
|
-
<div
|
|
48
|
-
:class="classBinding(classObject, 'headerContainer', 'font-bold mt-2')"
|
|
49
|
-
>
|
|
50
|
-
<button
|
|
51
|
-
:class="classBinding(classObject, 'headerButton', 'outline-none')"
|
|
52
|
-
@click="toggle"
|
|
53
|
-
>
|
|
54
|
-
<slot name="header"></slot>
|
|
55
|
-
</button>
|
|
56
|
-
</div>
|
|
57
|
-
|
|
58
|
-
<transition name="slide" mode="out-in">
|
|
59
|
-
<div
|
|
60
|
-
v-show="expanded"
|
|
61
|
-
:class="classBinding(classObject, 'dropdownContainer', '')"
|
|
62
|
-
>
|
|
63
|
-
<slot name="body" />
|
|
64
|
-
</div>
|
|
65
|
-
</transition>
|
|
66
|
-
</div>
|
|
67
|
-
</template>
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { ref, toRefs } from "vue";
|
|
3
|
+
import { useClassBinding } from "../../../composables/useClassBinding";
|
|
4
|
+
import { AgendaListAccordionClassObj } from "../../../@types/components";
|
|
5
|
+
|
|
6
|
+
type Props = {
|
|
7
|
+
itemId?: number;
|
|
8
|
+
classObject?: AgendaListAccordionClassObj;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
12
|
+
itemId: 0,
|
|
13
|
+
classObject: () => {
|
|
14
|
+
return {
|
|
15
|
+
container: "",
|
|
16
|
+
headerContainer: "",
|
|
17
|
+
headerButton: "",
|
|
18
|
+
dropdownContainer: "",
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
const { itemId } = toRefs(props);
|
|
24
|
+
|
|
25
|
+
const { classBinding } = useClassBinding();
|
|
26
|
+
|
|
27
|
+
const expanded = ref<boolean>(false);
|
|
28
|
+
|
|
29
|
+
// emits
|
|
30
|
+
const emit = defineEmits<{
|
|
31
|
+
(e: "expanded", value: number): void;
|
|
32
|
+
}>();
|
|
33
|
+
|
|
34
|
+
// methods
|
|
35
|
+
const toggle = () => {
|
|
36
|
+
expanded.value = !expanded.value;
|
|
37
|
+
if (expanded.value) {
|
|
38
|
+
emit("expanded", itemId.value);
|
|
39
|
+
} else {
|
|
40
|
+
emit("expanded", 0);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
</script>
|
|
44
|
+
|
|
45
|
+
<template>
|
|
46
|
+
<div :class="classBinding(classObject, 'container', '')">
|
|
47
|
+
<div
|
|
48
|
+
:class="classBinding(classObject, 'headerContainer', 'font-bold mt-2')"
|
|
49
|
+
>
|
|
50
|
+
<button
|
|
51
|
+
:class="classBinding(classObject, 'headerButton', 'outline-none')"
|
|
52
|
+
@click="toggle"
|
|
53
|
+
>
|
|
54
|
+
<slot name="header"></slot>
|
|
55
|
+
</button>
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
<transition name="slide" mode="out-in">
|
|
59
|
+
<div
|
|
60
|
+
v-show="expanded"
|
|
61
|
+
:class="classBinding(classObject, 'dropdownContainer', '')"
|
|
62
|
+
>
|
|
63
|
+
<slot name="body" />
|
|
64
|
+
</div>
|
|
65
|
+
</transition>
|
|
66
|
+
</div>
|
|
67
|
+
</template>
|
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
import { ref, toRefs, computed } from "vue";
|
|
3
|
-
import { storeToRefs } from "pinia";
|
|
4
|
-
import { useTemplateConfigsStore } from "../../../store";
|
|
5
|
-
import { usePresentation } from "../../../composables/usePresentation";
|
|
6
|
-
import "add-to-calendar-button";
|
|
7
|
-
import { Conference } from "../../../models/conference";
|
|
8
|
-
import { Presentation } from "../../../models/conference";
|
|
9
|
-
type Props = {
|
|
10
|
-
conference: Conference;
|
|
11
|
-
presentation: Presentation;
|
|
12
|
-
};
|
|
13
|
-
const props = defineProps<Props>();
|
|
14
|
-
const { conference, presentation } = toRefs(props);
|
|
15
|
-
const { pagesConfigValue } = storeToRefs(useTemplateConfigsStore());
|
|
16
|
-
const {
|
|
17
|
-
getPresentationStartTime,
|
|
18
|
-
getPresentationEndTime
|
|
19
|
-
} = usePresentation(conference);
|
|
20
|
-
|
|
21
|
-
// Computed
|
|
22
|
-
const showAddToGoogleCalendar = computed((): boolean => {
|
|
23
|
-
return pagesConfigValue.value("agenda.add_to_google_calendar", false);
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
const showAddToMicrosoftCalendar = computed((): boolean => {
|
|
27
|
-
return pagesConfigValue.value("agenda.add_to_microsoft_calendar", false);
|
|
28
|
-
});
|
|
29
|
-
const calendarOptions = computed((): string => {
|
|
30
|
-
let opts = [];
|
|
31
|
-
if (showAddToGoogleCalendar) {
|
|
32
|
-
opts.push("Google");
|
|
33
|
-
}
|
|
34
|
-
if (showAddToMicrosoftCalendar) {
|
|
35
|
-
opts.push("iCal");
|
|
36
|
-
}
|
|
37
|
-
let optsQuoted = opts.map((opt) => `'${opt}'`);
|
|
38
|
-
return optsQuoted.join(",");
|
|
39
|
-
});
|
|
40
|
-
const cssPath = computed((): string => {
|
|
41
|
-
// atcb.css required in template/playground public folder
|
|
42
|
-
return window.location.origin + "/atcb.css";
|
|
43
|
-
});
|
|
44
|
-
</script>
|
|
45
|
-
|
|
46
|
-
<template>
|
|
47
|
-
<div>
|
|
48
|
-
<add-to-calendar-button
|
|
49
|
-
:name="presentation.name"
|
|
50
|
-
:description="presentation.description"
|
|
51
|
-
:startDate="getPresentationStartTime(presentation,'yyyy-MM-dd',false)"
|
|
52
|
-
:startTime="getPresentationStartTime(presentation,'HH:mm',false)"
|
|
53
|
-
:endTime="getPresentationEndTime(presentation,'HH:mm',false)"
|
|
54
|
-
:timeZone="conference.timezone"
|
|
55
|
-
:location="conference.location"
|
|
56
|
-
listStyle="dropdown"
|
|
57
|
-
trigger="click"
|
|
58
|
-
lightMode="bodyScheme"
|
|
59
|
-
buttonStyle="custom"
|
|
60
|
-
:customCss="cssPath"
|
|
61
|
-
hideIconButton
|
|
62
|
-
hideBackground
|
|
63
|
-
hideCheckmark
|
|
64
|
-
:options="calendarOptions"
|
|
65
|
-
></add-to-calendar-button>
|
|
66
|
-
</div>
|
|
67
|
-
</template>
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { ref, toRefs, computed } from "vue";
|
|
3
|
+
import { storeToRefs } from "pinia";
|
|
4
|
+
import { useTemplateConfigsStore } from "../../../store";
|
|
5
|
+
import { usePresentation } from "../../../composables/usePresentation";
|
|
6
|
+
import "add-to-calendar-button";
|
|
7
|
+
import { Conference } from "../../../models/conference";
|
|
8
|
+
import { Presentation } from "../../../models/conference";
|
|
9
|
+
type Props = {
|
|
10
|
+
conference: Conference;
|
|
11
|
+
presentation: Presentation;
|
|
12
|
+
};
|
|
13
|
+
const props = defineProps<Props>();
|
|
14
|
+
const { conference, presentation } = toRefs(props);
|
|
15
|
+
const { pagesConfigValue } = storeToRefs(useTemplateConfigsStore());
|
|
16
|
+
const {
|
|
17
|
+
getPresentationStartTime,
|
|
18
|
+
getPresentationEndTime
|
|
19
|
+
} = usePresentation(conference);
|
|
20
|
+
|
|
21
|
+
// Computed
|
|
22
|
+
const showAddToGoogleCalendar = computed((): boolean => {
|
|
23
|
+
return pagesConfigValue.value("agenda.add_to_google_calendar", false);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const showAddToMicrosoftCalendar = computed((): boolean => {
|
|
27
|
+
return pagesConfigValue.value("agenda.add_to_microsoft_calendar", false);
|
|
28
|
+
});
|
|
29
|
+
const calendarOptions = computed((): string => {
|
|
30
|
+
let opts = [];
|
|
31
|
+
if (showAddToGoogleCalendar) {
|
|
32
|
+
opts.push("Google");
|
|
33
|
+
}
|
|
34
|
+
if (showAddToMicrosoftCalendar) {
|
|
35
|
+
opts.push("iCal");
|
|
36
|
+
}
|
|
37
|
+
let optsQuoted = opts.map((opt) => `'${opt}'`);
|
|
38
|
+
return optsQuoted.join(",");
|
|
39
|
+
});
|
|
40
|
+
const cssPath = computed((): string => {
|
|
41
|
+
// atcb.css required in template/playground public folder
|
|
42
|
+
return window.location.origin + "/atcb.css";
|
|
43
|
+
});
|
|
44
|
+
</script>
|
|
45
|
+
|
|
46
|
+
<template>
|
|
47
|
+
<div>
|
|
48
|
+
<add-to-calendar-button
|
|
49
|
+
:name="presentation.name"
|
|
50
|
+
:description="presentation.description"
|
|
51
|
+
:startDate="getPresentationStartTime(presentation,'yyyy-MM-dd',false)"
|
|
52
|
+
:startTime="getPresentationStartTime(presentation,'HH:mm',false)"
|
|
53
|
+
:endTime="getPresentationEndTime(presentation,'HH:mm',false)"
|
|
54
|
+
:timeZone="conference.timezone"
|
|
55
|
+
:location="conference.location"
|
|
56
|
+
listStyle="dropdown"
|
|
57
|
+
trigger="click"
|
|
58
|
+
lightMode="bodyScheme"
|
|
59
|
+
buttonStyle="custom"
|
|
60
|
+
:customCss="cssPath"
|
|
61
|
+
hideIconButton
|
|
62
|
+
hideBackground
|
|
63
|
+
hideCheckmark
|
|
64
|
+
:options="calendarOptions"
|
|
65
|
+
></add-to-calendar-button>
|
|
66
|
+
</div>
|
|
67
|
+
</template>
|
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
import { ref, toRefs, computed } from "vue";
|
|
3
|
-
import { Presentation } from "../../../models/conference";
|
|
4
|
-
|
|
5
|
-
type Props = {
|
|
6
|
-
linkText: string;
|
|
7
|
-
presentation: Presentation;
|
|
8
|
-
useIcon?: boolean;
|
|
9
|
-
newLine?: boolean;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
const props = withDefaults(defineProps<Props>(), {
|
|
13
|
-
useIcon: true,
|
|
14
|
-
newLine: false,
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
// data
|
|
18
|
-
const { useIcon, newLine, linkText, presentation } = toRefs(props);
|
|
19
|
-
const showDescModal = ref<boolean>(false);
|
|
20
|
-
|
|
21
|
-
// computed
|
|
22
|
-
const getLinkText = computed(() => {
|
|
23
|
-
return linkText.value.length > 0 ? linkText.value : "Session Details";
|
|
24
|
-
});
|
|
25
|
-
</script>
|
|
26
|
-
|
|
27
|
-
<template>
|
|
28
|
-
<span>
|
|
29
|
-
<a class="cursor-pointer" @click="showDescModal = true">
|
|
30
|
-
<CommonSvgIcon
|
|
31
|
-
v-if="useIcon"
|
|
32
|
-
icon="info"
|
|
33
|
-
class="align-middle"
|
|
34
|
-
style="display: inline-block; margin-bottom: 2px"
|
|
35
|
-
:icon-width="'16px'"
|
|
36
|
-
></CommonSvgIcon>
|
|
37
|
-
<span v-else class="text-xs" :class="{ 'new-line': newLine }">{{
|
|
38
|
-
getLinkText
|
|
39
|
-
}}</span>
|
|
40
|
-
</a>
|
|
41
|
-
|
|
42
|
-
<CommonModal :visible="showDescModal" @trigger="showDescModal = false">
|
|
43
|
-
<template #modal-title>
|
|
44
|
-
<div class="text-lg font-bold text-left mb-4 pb-4 border-b">
|
|
45
|
-
{{ presentation.name }}
|
|
46
|
-
</div>
|
|
47
|
-
</template>
|
|
48
|
-
<template #modal-body>
|
|
49
|
-
<div
|
|
50
|
-
class="text-base font-normal text-left"
|
|
51
|
-
v-html="presentation.description"
|
|
52
|
-
></div>
|
|
53
|
-
</template>
|
|
54
|
-
</CommonModal>
|
|
55
|
-
</span>
|
|
56
|
-
</template>
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { ref, toRefs, computed } from "vue";
|
|
3
|
+
import { Presentation } from "../../../models/conference";
|
|
4
|
+
|
|
5
|
+
type Props = {
|
|
6
|
+
linkText: string;
|
|
7
|
+
presentation: Presentation;
|
|
8
|
+
useIcon?: boolean;
|
|
9
|
+
newLine?: boolean;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
13
|
+
useIcon: true,
|
|
14
|
+
newLine: false,
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
// data
|
|
18
|
+
const { useIcon, newLine, linkText, presentation } = toRefs(props);
|
|
19
|
+
const showDescModal = ref<boolean>(false);
|
|
20
|
+
|
|
21
|
+
// computed
|
|
22
|
+
const getLinkText = computed(() => {
|
|
23
|
+
return linkText.value.length > 0 ? linkText.value : "Session Details";
|
|
24
|
+
});
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
<template>
|
|
28
|
+
<span>
|
|
29
|
+
<a class="cursor-pointer" @click="showDescModal = true">
|
|
30
|
+
<CommonSvgIcon
|
|
31
|
+
v-if="useIcon"
|
|
32
|
+
icon="info"
|
|
33
|
+
class="align-middle"
|
|
34
|
+
style="display: inline-block; margin-bottom: 2px"
|
|
35
|
+
:icon-width="'16px'"
|
|
36
|
+
></CommonSvgIcon>
|
|
37
|
+
<span v-else class="text-xs" :class="{ 'new-line': newLine }">{{
|
|
38
|
+
getLinkText
|
|
39
|
+
}}</span>
|
|
40
|
+
</a>
|
|
41
|
+
|
|
42
|
+
<CommonModal :visible="showDescModal" @trigger="showDescModal = false">
|
|
43
|
+
<template #modal-title>
|
|
44
|
+
<div class="text-lg font-bold text-left mb-4 pb-4 border-b">
|
|
45
|
+
{{ presentation.name }}
|
|
46
|
+
</div>
|
|
47
|
+
</template>
|
|
48
|
+
<template #modal-body>
|
|
49
|
+
<div
|
|
50
|
+
class="text-base font-normal text-left"
|
|
51
|
+
v-html="presentation.description"
|
|
52
|
+
></div>
|
|
53
|
+
</template>
|
|
54
|
+
</CommonModal>
|
|
55
|
+
</span>
|
|
56
|
+
</template>
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
import { toRefs } from "vue";
|
|
3
|
-
import { usePresentation } from "../../../composables/usePresentation";
|
|
4
|
-
import { Conference, Presentation } from "../../../models/conference";
|
|
5
|
-
import { Icons } from "../../../models/icons";
|
|
6
|
-
|
|
7
|
-
type Props = {
|
|
8
|
-
icon?: keyof Icons;
|
|
9
|
-
conference: Conference;
|
|
10
|
-
presentation: Presentation;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
const props = withDefaults(defineProps<Props>(), {
|
|
14
|
-
icon: "playarrow",
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
const { icon, conference, presentation } = toRefs(props);
|
|
18
|
-
|
|
19
|
-
const {
|
|
20
|
-
showPresentationPlayIcon,
|
|
21
|
-
getPresentationCustomPlayIcon,
|
|
22
|
-
getPresentationStreamingText,
|
|
23
|
-
} = usePresentation(conference);
|
|
24
|
-
</script>
|
|
25
|
-
|
|
26
|
-
<template>
|
|
27
|
-
<span class="flex-initial flex flex-row items-center py-2 lg:py-1">
|
|
28
|
-
<span v-if="showPresentationPlayIcon(presentation)">
|
|
29
|
-
<img
|
|
30
|
-
v-if="getPresentationCustomPlayIcon(presentation)"
|
|
31
|
-
style="max-width: 15px"
|
|
32
|
-
:src="(getPresentationCustomPlayIcon(presentation) as unknown as string)"
|
|
33
|
-
alt=""
|
|
34
|
-
/>
|
|
35
|
-
<CommonSvgIcon
|
|
36
|
-
v-else
|
|
37
|
-
:icon="icon"
|
|
38
|
-
class="align-middle mr-1"
|
|
39
|
-
style="display: inline-block; margin-bottom: 2px"
|
|
40
|
-
:icon-width="'20px'"
|
|
41
|
-
>
|
|
42
|
-
</CommonSvgIcon
|
|
43
|
-
>
|
|
44
|
-
</span>
|
|
45
|
-
<small class="flex-initial uppercase text-base text-red-darker">{{
|
|
46
|
-
getPresentationStreamingText(presentation)
|
|
47
|
-
}}</small>
|
|
48
|
-
</span>
|
|
49
|
-
</template>
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { toRefs } from "vue";
|
|
3
|
+
import { usePresentation } from "../../../composables/usePresentation";
|
|
4
|
+
import { Conference, Presentation } from "../../../models/conference";
|
|
5
|
+
import { Icons } from "../../../models/icons";
|
|
6
|
+
|
|
7
|
+
type Props = {
|
|
8
|
+
icon?: keyof Icons;
|
|
9
|
+
conference: Conference;
|
|
10
|
+
presentation: Presentation;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
14
|
+
icon: "playarrow",
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
const { icon, conference, presentation } = toRefs(props);
|
|
18
|
+
|
|
19
|
+
const {
|
|
20
|
+
showPresentationPlayIcon,
|
|
21
|
+
getPresentationCustomPlayIcon,
|
|
22
|
+
getPresentationStreamingText,
|
|
23
|
+
} = usePresentation(conference);
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<template>
|
|
27
|
+
<span class="flex-initial flex flex-row items-center py-2 lg:py-1">
|
|
28
|
+
<span v-if="showPresentationPlayIcon(presentation)">
|
|
29
|
+
<img
|
|
30
|
+
v-if="getPresentationCustomPlayIcon(presentation)"
|
|
31
|
+
style="max-width: 15px"
|
|
32
|
+
:src="(getPresentationCustomPlayIcon(presentation) as unknown as string)"
|
|
33
|
+
alt=""
|
|
34
|
+
/>
|
|
35
|
+
<CommonSvgIcon
|
|
36
|
+
v-else
|
|
37
|
+
:icon="icon"
|
|
38
|
+
class="align-middle mr-1"
|
|
39
|
+
style="display: inline-block; margin-bottom: 2px"
|
|
40
|
+
:icon-width="'20px'"
|
|
41
|
+
>
|
|
42
|
+
</CommonSvgIcon
|
|
43
|
+
>
|
|
44
|
+
</span>
|
|
45
|
+
<small class="flex-initial uppercase text-base text-red-darker">{{
|
|
46
|
+
getPresentationStreamingText(presentation)
|
|
47
|
+
}}</small>
|
|
48
|
+
</span>
|
|
49
|
+
</template>
|