@icvdeveloper/common-module 0.0.125 → 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,137 +1,137 @@
1
- <script lang="ts" setup>
2
- import { toRefs, computed } from "vue";
3
- import { useAgenda } from "../../../composables/useAgenda";
4
- import { useConferenceHelpers } from "../../../composables/useConferenceHelpers";
5
- import { usePresentation } from "../../../composables/usePresentation";
6
- import {
7
- Conference,
8
- Presentation,
9
- Track,
10
- TrackGroup,
11
- } from "../../../models/conference";
12
- import InfoLink from "./InfoLink.vue";
13
- import PlayIcon from "./PlayIcon.vue";
14
-
15
- type Props = {
16
- conference: Conference;
17
- presentation: Presentation;
18
- track: Track | TrackGroup;
19
- showInfoLink?: boolean;
20
- simpleLayout?: boolean;
21
- };
22
-
23
- const props = withDefaults(defineProps<Props>(), {
24
- showInfoLink: true,
25
- simpleLayout: false,
26
- });
27
-
28
- const { conference, track, presentation } = toRefs(props);
29
-
30
- // Methods
31
- const { conferenceIsLiveOrMixed, conferenceIsArchived } =
32
- useConferenceHelpers(conference);
33
- const { isSmallGroupedTrack } = useAgenda(conference);
34
- const {
35
- getPresentationLinkTarget,
36
- getLivePresentationLinkDestination,
37
- showPresentationLinkIcon,
38
- getPresentationLinkText,
39
- presentationIsLiveOrMixed,
40
- getArchivePresentationLinkDestination,
41
- } = usePresentation(conference);
42
-
43
- // Computed
44
- const presentationNameClass = computed(() => {
45
- return isSmallGroupedTrack(track.value) ? "text-base" : "text-lg";
46
- });
47
- </script>
48
-
49
- <template>
50
- <div>
51
- <div v-if="!simpleLayout">
52
- <!-- LIVE AGENDA GO TO WEBCAST PAGE -->
53
- <div>
54
- <h2 class="flex flex-initial flex-row" :class="presentationNameClass">
55
- <!-- zoom text & icon link -->
56
- <CommonZoomModal
57
- v-if="
58
- isAgenda &&
59
- conferenceIsLiveOrMixed(conference) &&
60
- presentation.type == 'zoom'
61
- "
62
- :presentation-id="presentation.id"
63
- modal-size="full"
64
- >
65
- <template #modal-link>
66
- <span class="font-semibold no-underline heading-link"
67
- >{{ presentation.name }}
68
- <PlayIcon
69
- :presentation="presentation"
70
- :conference="conference"
71
- :class="'justify-center md:justify-start'"
72
- icon="zoom"
73
- ></PlayIcon>
74
- </span>
75
- </template>
76
- </CommonZoomModal>
77
-
78
- <!-- live/archive stream text & icon link -->
79
- <a
80
- v-else-if="
81
- (isAgenda && conferenceIsLiveOrMixed(conference)) ||
82
- (conferenceIsArchived(conference) && presentation.type != 'zoom')
83
- "
84
- class="font-semibold no-underline heading-link"
85
- :href="getLivePresentationLinkDestination(presentation, track)"
86
- :target="getPresentationLinkTarget(presentation)"
87
- @click="playPresentation(track, presentation, conference)"
88
- >
89
- {{ presentation.name
90
- }}<transition name="fade">
91
- <PlayIcon
92
- v-if="presentationIsLiveOrMixed(presentation)"
93
- :presentation="presentation"
94
- :conference="conference"
95
- :class="'justify-center md:justify-start'"
96
- icon="playarrow"
97
- ></PlayIcon>
98
- </transition>
99
- </a>
100
-
101
- <!-- text only catchall -->
102
- <span v-else class="font-semibold" :class="presentationNameClass"
103
- >{{ presentation.name }}</span
104
- >
105
-
106
- <!-- session details -->
107
- <InfoLink
108
- v-if="showInfoLink && presentation.description"
109
- :presentation="presentation"
110
- :use-icon="useIcon"
111
- :link-text="infoLinkText"
112
- :new-line="isSmallGroupedTrack"
113
- class="ml-2"
114
- />
115
-
116
- <!-- favorites -->
117
- <favorite
118
- v-if="allowFavorites && currentUser.token"
119
- class="ml-1"
120
- :presentation="presentation"
121
- @click="handleFavoriteClick"
122
- />
123
- </h2>
124
- </div>
125
- </div>
126
-
127
- <!-- SIMPLE LAYOUT -->
128
- <div v-else>
129
- <a
130
- class="underline cursor-pointer"
131
- @click="playPresentation(track, presentation, conference)"
132
- >
133
- {{ presentation.name }}
134
- </a>
135
- </div>
136
- </div>
137
- </template>
1
+ <script lang="ts" setup>
2
+ import { toRefs, computed } from "vue";
3
+ import { useAgenda } from "../../../composables/useAgenda";
4
+ import { useConferenceHelpers } from "../../../composables/useConferenceHelpers";
5
+ import { usePresentation } from "../../../composables/usePresentation";
6
+ import {
7
+ Conference,
8
+ Presentation,
9
+ Track,
10
+ TrackGroup,
11
+ } from "../../../models/conference";
12
+ import InfoLink from "./InfoLink.vue";
13
+ import PlayIcon from "./PlayIcon.vue";
14
+
15
+ type Props = {
16
+ conference: Conference;
17
+ presentation: Presentation;
18
+ track: Track | TrackGroup;
19
+ showInfoLink?: boolean;
20
+ simpleLayout?: boolean;
21
+ };
22
+
23
+ const props = withDefaults(defineProps<Props>(), {
24
+ showInfoLink: true,
25
+ simpleLayout: false,
26
+ });
27
+
28
+ const { conference, track, presentation } = toRefs(props);
29
+
30
+ // Methods
31
+ const { conferenceIsLiveOrMixed, conferenceIsArchived } =
32
+ useConferenceHelpers(conference);
33
+ const { isSmallGroupedTrack } = useAgenda(conference);
34
+ const {
35
+ getPresentationLinkTarget,
36
+ getLivePresentationLinkDestination,
37
+ showPresentationLinkIcon,
38
+ getPresentationLinkText,
39
+ presentationIsLiveOrMixed,
40
+ getArchivePresentationLinkDestination,
41
+ } = usePresentation(conference);
42
+
43
+ // Computed
44
+ const presentationNameClass = computed(() => {
45
+ return isSmallGroupedTrack(track.value) ? "text-base" : "text-lg";
46
+ });
47
+ </script>
48
+
49
+ <template>
50
+ <div>
51
+ <div v-if="!simpleLayout">
52
+ <!-- LIVE AGENDA GO TO WEBCAST PAGE -->
53
+ <div>
54
+ <h2 class="flex flex-initial flex-row" :class="presentationNameClass">
55
+ <!-- zoom text & icon link -->
56
+ <CommonZoomModal
57
+ v-if="
58
+ isAgenda &&
59
+ conferenceIsLiveOrMixed(conference) &&
60
+ presentation.type == 'zoom'
61
+ "
62
+ :presentation-id="presentation.id"
63
+ modal-size="full"
64
+ >
65
+ <template #modal-link>
66
+ <span class="font-semibold no-underline heading-link"
67
+ >{{ presentation.name }}
68
+ <PlayIcon
69
+ :presentation="presentation"
70
+ :conference="conference"
71
+ :class="'justify-center md:justify-start'"
72
+ icon="zoom"
73
+ ></PlayIcon>
74
+ </span>
75
+ </template>
76
+ </CommonZoomModal>
77
+
78
+ <!-- live/archive stream text & icon link -->
79
+ <a
80
+ v-else-if="
81
+ (isAgenda && conferenceIsLiveOrMixed(conference)) ||
82
+ (conferenceIsArchived(conference) && presentation.type != 'zoom')
83
+ "
84
+ class="font-semibold no-underline heading-link"
85
+ :href="getLivePresentationLinkDestination(presentation, track)"
86
+ :target="getPresentationLinkTarget(presentation)"
87
+ @click="playPresentation(track, presentation, conference)"
88
+ >
89
+ {{ presentation.name
90
+ }}<transition name="fade">
91
+ <PlayIcon
92
+ v-if="presentationIsLiveOrMixed(presentation)"
93
+ :presentation="presentation"
94
+ :conference="conference"
95
+ :class="'justify-center md:justify-start'"
96
+ icon="playarrow"
97
+ ></PlayIcon>
98
+ </transition>
99
+ </a>
100
+
101
+ <!-- text only catchall -->
102
+ <span v-else class="font-semibold" :class="presentationNameClass"
103
+ >{{ presentation.name }}</span
104
+ >
105
+
106
+ <!-- session details -->
107
+ <InfoLink
108
+ v-if="showInfoLink && presentation.description"
109
+ :presentation="presentation"
110
+ :use-icon="useIcon"
111
+ :link-text="infoLinkText"
112
+ :new-line="isSmallGroupedTrack"
113
+ class="ml-2"
114
+ />
115
+
116
+ <!-- favorites -->
117
+ <favorite
118
+ v-if="allowFavorites && currentUser.token"
119
+ class="ml-1"
120
+ :presentation="presentation"
121
+ @click="handleFavoriteClick"
122
+ />
123
+ </h2>
124
+ </div>
125
+ </div>
126
+
127
+ <!-- SIMPLE LAYOUT -->
128
+ <div v-else>
129
+ <a
130
+ class="underline cursor-pointer"
131
+ @click="playPresentation(track, presentation, conference)"
132
+ >
133
+ {{ presentation.name }}
134
+ </a>
135
+ </div>
136
+ </div>
137
+ </template>
@@ -1,134 +1,134 @@
1
- <script lang="ts" setup>
2
- import { find } from "lodash-es";
3
- import { ref, toRefs } from "vue";
4
- import { Sponsor as SponsorModel } from "../../../models/conference";
5
- import { sponsorClassObj } from "../../../@types/components";
6
- import { useClassBinding } from "../../../composables/useClassBinding";
7
-
8
- type Props = {
9
- sponsor: SponsorModel;
10
- size?: string;
11
- inline?: boolean;
12
- hideLabel?: boolean;
13
- enabledSponsors?: SponsorModel[];
14
- classObject?: sponsorClassObj;
15
- };
16
-
17
- const props = withDefaults(defineProps<Props>(), {
18
- size: "default",
19
- inline: false,
20
- hideLabel: true,
21
- enabledSponsors: () => {
22
- return [];
23
- },
24
- classObject: () => {
25
- return {
26
- container: "",
27
- sponsorContainer: "",
28
- labelImageContainer: "",
29
- labelContainer: "",
30
- sponsorLabel: "",
31
- imageContainer: "",
32
- sponsorImage: "",
33
- };
34
- },
35
- });
36
-
37
- const { sponsor, size, inline, hideLabel, enabledSponsors, classObject } =
38
- toRefs(props);
39
- const { classBinding } = useClassBinding();
40
-
41
- // data
42
- const showModal = ref<boolean>(false);
43
- const enabledSponsor = ref<SponsorModel | null>(null);
44
-
45
- // methods
46
- const handleClick = () => {
47
- if (enabledSponsors.value.length > 0) {
48
- const sponsorResult = find(enabledSponsors.value, { id: sponsor.value.id });
49
-
50
- if (sponsorResult && sponsorResult.vanity === 1) {
51
- enabledSponsor.value = sponsorResult;
52
- showModal.value = true;
53
- return;
54
- }
55
- }
56
-
57
- window.open(sponsor.value.website, "_blank");
58
- };
59
- </script>
60
-
61
- <template>
62
- <div
63
- :class="
64
- classBinding(
65
- classObject,
66
- 'sponsorContainer',
67
- 'flex flex-col lg:flex-row flex-1 items-center'
68
- )
69
- "
70
- >
71
- <div :class="classBinding(classObject, 'labelImageContainer', size)">
72
- <div
73
- v-if="!hideLabel"
74
- :class="
75
- inline
76
- ? classBinding(classObject, 'labelContainer', 'flex-1 items-center')
77
- : classBinding(classObject, 'labelContainer', 'w-full')
78
- "
79
- >
80
- <h2
81
- :class="
82
- inline
83
- ? classBinding(
84
- classObject,
85
- 'sponsorLabel',
86
- 'inline-block lg:pr-5 pb-2 lg:pb-0'
87
- )
88
- : classBinding(classObject, 'sponsorLabel', 'pb-2')
89
- "
90
- class="text-center uppercase font-medium"
91
- >
92
- {{ sponsor.label }}
93
- </h2>
94
- </div>
95
- <div
96
- :class="
97
- inline
98
- ? classBinding(
99
- classObject,
100
- 'imageContainer',
101
- 'flex-1 items-center pb-2 lg:pb-0'
102
- )
103
- : classBinding(classObject, 'imageContainer', 'w-full')
104
- "
105
- >
106
- <img
107
- :class="[
108
- { block: !inline },
109
- classBinding(
110
- classObject,
111
- 'sponsorImage',
112
- 'sponsor-img m-auto cursor-pointer'
113
- ),
114
- ]"
115
- :src="sponsor.photo"
116
- @click="handleClick()"
117
- />
118
- </div>
119
- </div>
120
-
121
- <CommonModal :visible="showModal">
122
- <template #modal-body>
123
- <CommonAffiliatePage
124
- v-if="enabledSponsor"
125
- :affiliate="enabledSponsor"
126
- ></CommonAffiliatePage>
127
- </template>
128
- </CommonModal>
129
- </div>
130
- </template>
131
-
1
+ <script lang="ts" setup>
2
+ import { find } from "lodash-es";
3
+ import { ref, toRefs } from "vue";
4
+ import { Sponsor as SponsorModel } from "../../../models/conference";
5
+ import { sponsorClassObj } from "../../../@types/components";
6
+ import { useClassBinding } from "../../../composables/useClassBinding";
7
+
8
+ type Props = {
9
+ sponsor: SponsorModel;
10
+ size?: string;
11
+ inline?: boolean;
12
+ hideLabel?: boolean;
13
+ enabledSponsors?: SponsorModel[];
14
+ classObject?: sponsorClassObj;
15
+ };
16
+
17
+ const props = withDefaults(defineProps<Props>(), {
18
+ size: "default",
19
+ inline: false,
20
+ hideLabel: true,
21
+ enabledSponsors: () => {
22
+ return [];
23
+ },
24
+ classObject: () => {
25
+ return {
26
+ container: "",
27
+ sponsorContainer: "",
28
+ labelImageContainer: "",
29
+ labelContainer: "",
30
+ sponsorLabel: "",
31
+ imageContainer: "",
32
+ sponsorImage: "",
33
+ };
34
+ },
35
+ });
36
+
37
+ const { sponsor, size, inline, hideLabel, enabledSponsors, classObject } =
38
+ toRefs(props);
39
+ const { classBinding } = useClassBinding();
40
+
41
+ // data
42
+ const showModal = ref<boolean>(false);
43
+ const enabledSponsor = ref<SponsorModel | null>(null);
44
+
45
+ // methods
46
+ const handleClick = () => {
47
+ if (enabledSponsors.value.length > 0) {
48
+ const sponsorResult = find(enabledSponsors.value, { id: sponsor.value.id });
49
+
50
+ if (sponsorResult && sponsorResult.vanity === 1) {
51
+ enabledSponsor.value = sponsorResult;
52
+ showModal.value = true;
53
+ return;
54
+ }
55
+ }
56
+
57
+ window.open(sponsor.value.website, "_blank");
58
+ };
59
+ </script>
60
+
61
+ <template>
62
+ <div
63
+ :class="
64
+ classBinding(
65
+ classObject,
66
+ 'sponsorContainer',
67
+ 'flex flex-col lg:flex-row flex-1 items-center'
68
+ )
69
+ "
70
+ >
71
+ <div :class="classBinding(classObject, 'labelImageContainer', size)">
72
+ <div
73
+ v-if="!hideLabel"
74
+ :class="
75
+ inline
76
+ ? classBinding(classObject, 'labelContainer', 'flex-1 items-center')
77
+ : classBinding(classObject, 'labelContainer', 'w-full')
78
+ "
79
+ >
80
+ <h2
81
+ :class="
82
+ inline
83
+ ? classBinding(
84
+ classObject,
85
+ 'sponsorLabel',
86
+ 'inline-block lg:pr-5 pb-2 lg:pb-0'
87
+ )
88
+ : classBinding(classObject, 'sponsorLabel', 'pb-2')
89
+ "
90
+ class="text-center uppercase font-medium"
91
+ >
92
+ {{ sponsor.label }}
93
+ </h2>
94
+ </div>
95
+ <div
96
+ :class="
97
+ inline
98
+ ? classBinding(
99
+ classObject,
100
+ 'imageContainer',
101
+ 'flex-1 items-center pb-2 lg:pb-0'
102
+ )
103
+ : classBinding(classObject, 'imageContainer', 'w-full')
104
+ "
105
+ >
106
+ <img
107
+ :class="[
108
+ { block: !inline },
109
+ classBinding(
110
+ classObject,
111
+ 'sponsorImage',
112
+ 'sponsor-img m-auto cursor-pointer'
113
+ ),
114
+ ]"
115
+ :src="sponsor.photo"
116
+ @click="handleClick()"
117
+ />
118
+ </div>
119
+ </div>
120
+
121
+ <CommonModal :visible="showModal">
122
+ <template #modal-body>
123
+ <CommonAffiliatePage
124
+ v-if="enabledSponsor"
125
+ :affiliate="enabledSponsor"
126
+ ></CommonAffiliatePage>
127
+ </template>
128
+ </CommonModal>
129
+ </div>
130
+ </template>
131
+
132
132
  <style>
133
133
  .small h2 {
134
134
  font-size: 14px;
@@ -150,4 +150,4 @@ const handleClick = () => {
150
150
  .default img {
151
151
  max-height: 60px;
152
152
  }
153
- </style>
153
+ </style>