@icvdeveloper/common-module 0.0.33 → 0.0.36

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/dist/module.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "v3plus-common-module",
3
3
  "configKey": "v3plusCommonModule",
4
- "version": "0.0.33"
4
+ "version": "0.0.36"
5
5
  }
@@ -0,0 +1,60 @@
1
+ export declare type countdownTimerClassObj = {
2
+ container?: string | null;
3
+ countdownContainer?: string | null;
4
+ beginText?: string | null;
5
+ unitsContainer?: string | null;
6
+ itemContainer?: string | null;
7
+ unitLabel?: string | null;
8
+ unitContainer?: string | null;
9
+ unit?: string | null;
10
+ };
11
+ export declare type sponsorClassObj = {
12
+ container?: string | null;
13
+ sponsorContainer?: string | null;
14
+ labelImageContainer?: string | null;
15
+ labelContainer?: string | null;
16
+ sponsorLabel?: string | null;
17
+ imageContainer?: string | null;
18
+ sponsorImage?: string | null;
19
+ };
20
+ export declare type listEventsCompObj = {
21
+ countdownTimer?: countdownTimerClassObj | null;
22
+ sponsor?: sponsorClassObj | null;
23
+ modal?: string | null;
24
+ login?: string | null;
25
+ };
26
+ export declare type listEventsClassObj = {
27
+ container?: string | null;
28
+ listContainer?: string | null;
29
+ eventContainer?: string | null;
30
+ eventImageContainer?: string | null;
31
+ eventImage?: string | null;
32
+ eventContentContainer?: string | null;
33
+ eventDetailsContainer?: string | null;
34
+ eventDetails?: string | null;
35
+ eventBrand?: string | null;
36
+ eventName?: string | null;
37
+ eventDate?: string | null;
38
+ countdownContainerTop?: string | null;
39
+ countdownContainerRight?: string | null;
40
+ countdownContainerBottom?: string | null;
41
+ buttonCountdownSponsorsContainer?: string | null;
42
+ buttonCountdownContainer?: string | null;
43
+ buttonContainer?: string | null;
44
+ buttonItem?: string | null;
45
+ sponsorsContainer?: string | null;
46
+ components?: listEventsCompObj;
47
+ };
48
+ export declare type presenterListingClassObj = {
49
+ container?: string | null;
50
+ presenterImageContainer?: string | null;
51
+ presenterImage?: string | null;
52
+ presenterContainer?: string | null;
53
+ presenterTextContainer?: string | null;
54
+ presenterNameLink?: string | null;
55
+ presenterName?: string | null;
56
+ presenterRole?: string | null;
57
+ presenterTitle?: string | null;
58
+ presenterBio?: string | null;
59
+ presenterBioLink?: string | null;
60
+ };
File without changes
@@ -2,6 +2,8 @@
2
2
  import { find } from "lodash-es";
3
3
  import { ref, toRefs } from "vue";
4
4
  import { Sponsor as SponsorModel } from "../../../models/conference";
5
+ import { sponsorClassObj } from "../../../@types/components";
6
+ import { useClassBinding } from "../../../composables/useClassBinding";
5
7
 
6
8
  type Props = {
7
9
  sponsor: SponsorModel;
@@ -9,18 +11,32 @@ type Props = {
9
11
  inline?: boolean;
10
12
  hideLabel?: boolean;
11
13
  enabledSponsors?: SponsorModel[];
14
+ classObject?: sponsorClassObj;
12
15
  };
13
16
 
14
17
  const props = withDefaults(defineProps<Props>(), {
15
18
  size: "default",
16
19
  inline: false,
17
- hideLabel: false,
20
+ hideLabel: true,
18
21
  enabledSponsors: () => {
19
22
  return [];
20
23
  },
24
+ classObject: () => {
25
+ return {
26
+ container: "",
27
+ sponsorContainer: "",
28
+ labelImageContainer: "",
29
+ labelContainer: "",
30
+ sponsorLabel: "",
31
+ imageContainer: "",
32
+ sponsorImage: "",
33
+ };
34
+ },
21
35
  });
22
36
 
23
- const { sponsor, size, inline, hideLabel, enabledSponsors } = toRefs(props);
37
+ const { sponsor, size, inline, hideLabel, enabledSponsors, classObject } =
38
+ toRefs(props);
39
+ const { classBinding } = useClassBinding();
24
40
 
25
41
  // data
26
42
  const showModal = ref<boolean>(false);
@@ -43,24 +59,59 @@ const handleClick = () => {
43
59
  </script>
44
60
 
45
61
  <template>
46
- <div class="flex flex-col lg:flex-row flex-1 items-center">
47
- <div :class="size">
48
- <div :class="inline ? 'flex-1 items-center' : 'w-full'">
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
+ >
49
80
  <h2
50
- v-if="!hideLabel"
51
- :class="{
52
- 'inline-block lg:pr-5 pb-2 lg:pb-0': inline,
53
- 'pb-2': !inline,
54
- }"
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
+ "
55
90
  class="text-center uppercase font-medium"
56
91
  >
57
92
  {{ sponsor.label }}
58
93
  </h2>
59
94
  </div>
60
- <div :class="inline ? 'flex-1 items-center pb-2 lg:pb-0' : 'w-full'">
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
+ >
61
106
  <img
62
- :class="{ block: !inline }"
63
- class="sponsor-img m-auto cursor-pointer"
107
+ :class="[
108
+ { block: !inline },
109
+ classBinding(
110
+ classObject,
111
+ 'sponsorImage',
112
+ 'sponsor-img m-auto cursor-pointer'
113
+ ),
114
+ ]"
64
115
  :src="sponsor.photo"
65
116
  @click="handleClick()"
66
117
  />
@@ -12,6 +12,8 @@ import {
12
12
  addMinutes,
13
13
  } from "date-fns";
14
14
  import { useTemplateConfigsStore } from "../../store";
15
+ import { countdownTimerClassObj } from "../../@types/components";
16
+ import { useClassBinding } from "../../composables/useClassBinding";
15
17
 
16
18
  interface Props {
17
19
  date: string;
@@ -20,6 +22,7 @@ interface Props {
20
22
  showHours?: boolean;
21
23
  showMinutes?: boolean;
22
24
  showSeconds?: boolean;
25
+ classObject?: countdownTimerClassObj;
23
26
  }
24
27
 
25
28
  const props = withDefaults(defineProps<Props>(), {
@@ -28,8 +31,31 @@ const props = withDefaults(defineProps<Props>(), {
28
31
  showHours: true,
29
32
  showMinutes: true,
30
33
  showSeconds: true,
34
+ classObject: () => {
35
+ return {
36
+ container: "",
37
+ countdownContainer: "",
38
+ beginText: "",
39
+ unitsContainer: "",
40
+ itemContainer: "",
41
+ unitLabel: "",
42
+ unitContainer: "",
43
+ unit: "",
44
+ };
45
+ },
31
46
  });
32
47
 
48
+ const {
49
+ isCompact,
50
+ showDays,
51
+ showHours,
52
+ showMinutes,
53
+ showSeconds,
54
+ classObject,
55
+ } = toRefs(props);
56
+
57
+ const { classBinding } = useClassBinding();
58
+
33
59
  // reactive data
34
60
  const isCounting = ref<boolean>(true);
35
61
  const days = ref<number>(0);
@@ -104,36 +130,83 @@ onMounted(() => {
104
130
 
105
131
  <template>
106
132
  <div
107
- class="countdown-timer"
108
- :class="{ compact: isCompact, fullsize: !isCompact }"
133
+ :class="[
134
+ { compact: isCompact, fullsize: !isCompact },
135
+ classBinding(classObject, 'container', 'countdown-timer'),
136
+ ]"
109
137
  >
110
138
  <div
111
- class="countdown-container flex flex-col pt-8 mx-4 text-center justify-center items-center content-center"
139
+ :class="
140
+ classBinding(
141
+ classObject,
142
+ 'countdownContainer',
143
+ 'countdown-container flex flex-col pt-8 mx-4 text-center justify-center items-center content-center'
144
+ )
145
+ "
112
146
  >
113
147
  <div class="flex-initial">
114
- <h1 v-if="isCounting" class="m-0 p-0 heading-color-3">EVENT BEGINS</h1>
115
- <h1 v-if="!isCounting" class="m-0 p-0 heading-color-3">
116
- {{ eventHasBegunText }}
148
+ <h1
149
+ :class="
150
+ classBinding(
151
+ classObject,
152
+ 'beginText',
153
+ 'm-0 p-0 uppercase heading-color-3'
154
+ )
155
+ "
156
+ >
157
+ {{ isCounting ? "event begins" : eventHasBegunText }}
117
158
  </h1>
118
159
  </div>
119
160
 
120
161
  <div
121
162
  v-if="isCounting"
122
- class="units-container flex text-center p-6 pt-4 mt-4 items-center border border-color-accent-1 accent-color-3"
163
+ :class="
164
+ classBinding(
165
+ classObject,
166
+ 'unitsContainer',
167
+ 'units-container flex text-center p-6 pt-4 mt-4 items-center border border-color-accent-1 accent-color-3'
168
+ )
169
+ "
123
170
  >
124
171
  <!-- Days -->
125
172
  <div
126
173
  v-if="showDays"
127
- class="item-container"
128
- :class="{ dropshade: clockStyle == 'dials' }"
174
+ :class="[
175
+ { dropshade: clockStyle == 'dials' },
176
+ classBinding(classObject, 'itemContainer', 'item-container'),
177
+ ]"
129
178
  >
130
- <div class="unit-label-container" :class="clockStyle">days</div>
131
- <div class="unit-container contrast-border" :class="clockStyle">
132
- <div v-if="clockStyle == 'windows'" :class="fontClass">
179
+ <div
180
+ :class="[
181
+ clockStyle,
182
+ classBinding(classObject, 'unitLabel', 'unit-label-container'),
183
+ ]"
184
+ >
185
+ days
186
+ </div>
187
+ <div
188
+ :class="[
189
+ clockStyle,
190
+ classBinding(
191
+ classObject,
192
+ 'unitContainer',
193
+ 'unit-container contrast-border'
194
+ ),
195
+ ]"
196
+ >
197
+ <div
198
+ v-if="clockStyle == 'windows'"
199
+ :class="[fontClass, classBinding(classObject, 'unit', '')]"
200
+ >
133
201
  {{ days }}
134
202
  </div>
135
203
  <transition v-if="clockStyle == 'dials'" name="slide" mode="out-in">
136
- <div :key="days" :class="fontClass">{{ days }}</div>
204
+ <div
205
+ :key="days"
206
+ :class="[fontClass, classBinding(classObject, 'unit', '')]"
207
+ >
208
+ {{ days }}
209
+ </div>
137
210
  </transition>
138
211
  </div>
139
212
  </div>
@@ -144,13 +217,37 @@ onMounted(() => {
144
217
  class="item-container"
145
218
  :class="{ dropshade: clockStyle == 'dials' }"
146
219
  >
147
- <div class="unit-label-container" :class="clockStyle">min</div>
148
- <div class="unit-container contrast-border" :class="clockStyle">
149
- <div v-if="clockStyle == 'windows'" :class="fontClass">
220
+ <div
221
+ :class="[
222
+ clockStyle,
223
+ classBinding(classObject, 'unitLabel', 'unit-label-container'),
224
+ ]"
225
+ >
226
+ min
227
+ </div>
228
+ <div
229
+ :class="[
230
+ clockStyle,
231
+ classBinding(
232
+ classObject,
233
+ 'unitContainer',
234
+ 'unit-container contrast-border'
235
+ ),
236
+ ]"
237
+ >
238
+ <div
239
+ v-if="clockStyle == 'windows'"
240
+ :class="[fontClass, classBinding(classObject, 'unit', '')]"
241
+ >
150
242
  {{ minutes }}
151
243
  </div>
152
244
  <transition v-if="clockStyle == 'dials'" name="slide" mode="out-in">
153
- <div :key="minutes" :class="fontClass">{{ minutes }}</div>
245
+ <div
246
+ :key="minutes"
247
+ :class="[fontClass, classBinding(classObject, 'unit', '')]"
248
+ >
249
+ {{ minutes }}
250
+ </div>
154
251
  </transition>
155
252
  </div>
156
253
  </div>
@@ -161,13 +258,41 @@ onMounted(() => {
161
258
  class="item-container last"
162
259
  :class="{ dropshade: clockStyle == 'dials' }"
163
260
  >
164
- <div class="unit-label-container last" :class="clockStyle">sec</div>
165
- <div class="unit-container contrast-border" :class="clockStyle">
166
- <div v-if="clockStyle == 'windows'" :class="fontClass">
261
+ <div
262
+ :class="[
263
+ clockStyle,
264
+ classBinding(
265
+ classObject,
266
+ 'unitLabel',
267
+ 'unit-label-container last'
268
+ ),
269
+ ]"
270
+ >
271
+ sec
272
+ </div>
273
+ <div
274
+ :class="[
275
+ clockStyle,
276
+ classBinding(
277
+ classObject,
278
+ 'unitContainer',
279
+ 'unit-container contrast-border'
280
+ ),
281
+ ]"
282
+ >
283
+ <div
284
+ v-if="clockStyle == 'windows'"
285
+ :class="[fontClass, classBinding('unit', '')]"
286
+ >
167
287
  {{ seconds }}
168
288
  </div>
169
289
  <transition v-if="clockStyle == 'dials'" name="slide" mode="out-in">
170
- <div :key="seconds" :class="fontClass">{{ seconds }}</div>
290
+ <div
291
+ :key="seconds"
292
+ :class="[fontClass, classBinding(classObject, 'unit', '')]"
293
+ >
294
+ {{ seconds }}
295
+ </div>
171
296
  </transition>
172
297
  </div>
173
298
  </div>