@@ -21,17 +21,7 @@ const props = defineProps({
2121const uid = ref (` vue-ui-rating-${ Math .random ()} ` );
2222
2323const defaultConfig = ref (mainConfig .vue_ui_rating );
24-
25- const isPrinting = ref (false );
26- const ratingChart = ref (null );
27- const tooltip = ref (null );
28- const details = ref (null );
29- const clientPosition = ref ({
30- x: 0 ,
31- y: 0
32- });
3324const isTooltip = ref (false );
34- const tooltipContent = ref (" " );
3525
3626const hoveredValue = ref (undefined );
3727const units = ref ([]);
@@ -138,16 +128,16 @@ defineExpose({
138128 <div :style =" `background:${ratingConfig.style.backgroundColor};font-family:${ratingConfig.style.fontFamily};width:100%`" class =" vue-ui-rating" @mouseover =" isTooltip = true" @mouseleave =" isTooltip = false; hoveredValue = undefined" >
139129 <!-- TITLE -->
140130 <div class =" vue-ui-rating-title" v-if =" ratingConfig.style.title.text" style =" width :100% " >
141- <div :style =" `color:${ratingConfig.style.title.color};font-weight:${ratingConfig.style.title.bold ? 'bold' : 'normal'};text-align:${ratingConfig.style.title.textAlign};margin-bottom:${ratingConfig.style.title.offsetY}px;font-size:${ratingConfig.style.title.fontSize}px`" >
131+ <div data-cy = " rating-title " :style =" `color:${ratingConfig.style.title.color};font-weight:${ratingConfig.style.title.bold ? 'bold' : 'normal'};text-align:${ratingConfig.style.title.textAlign};margin-bottom:${ratingConfig.style.title.offsetY}px;font-size:${ratingConfig.style.title.fontSize}px`" >
142132 {{ ratingConfig.style.title.text }}
143133 </div >
144- <div v-if =" ratingConfig.style.title.subtitle.text" :style =" `color:${ratingConfig.style.title.subtitle.color};font-size:${ratingConfig.style.title.subtitle.fontSize}px;text-align:${ratingConfig.style.title.textAlign};margin-bottom:${ratingConfig.style.title.subtitle.offsetY}px;font-weight:${ratingConfig.style.title.subtitle.bold ? 'bold' : 'normal'}`" >
134+ <div data-cy = " rating-subtitle " v-if =" ratingConfig.style.title.subtitle.text" :style =" `color:${ratingConfig.style.title.subtitle.color};font-size:${ratingConfig.style.title.subtitle.fontSize}px;text-align:${ratingConfig.style.title.textAlign};margin-bottom:${ratingConfig.style.title.subtitle.offsetY}px;font-weight:${ratingConfig.style.title.subtitle.bold ? 'bold' : 'normal'}`" >
145135 {{ ratingConfig.style.title.subtitle.text }}
146136 </div >
147137 </div >
148138
149139 <!-- RATING POSITION TOP -->
150- <div v-if =" ratingConfig.style.rating.show && ratingConfig.style.rating.position === 'top'" :style =" `width:100%;text-align:center;margin-bottom:${ratingConfig.style.rating.offsetY}px;font-size:${ratingConfig.style.rating.fontSize}px;font-weight:${ratingConfig.style.rating.bold ? 'bold' : 'normal'};margin-left:${ratingConfig.style.rating.offsetX}px`" >
140+ <div data-cy = " rating-position-top " v-if =" ratingConfig.style.rating.show && ratingConfig.style.rating.position === 'top'" :style =" `width:100%;text-align:center;margin-bottom:${ratingConfig.style.rating.offsetY}px;font-size:${ratingConfig.style.rating.fontSize}px;font-weight:${ratingConfig.style.rating.bold ? 'bold' : 'normal'};margin-left:${ratingConfig.style.rating.offsetX}px`" >
151141 {{ isNaN(currentRating) ? '' : currentRating.toFixed(ratingConfig.style.rating.roundingValue) }}
152142 </div >
153143
@@ -158,7 +148,7 @@ defineExpose({
158148 >
159149
160150 <!-- RATING POSITION LEFT -->
161- <div v-if =" ratingConfig.style.rating.show && ratingConfig.style.rating.position === 'left'" :style =" `width:fit-content;text-align:center;margin-bottom:${ratingConfig.style.rating.offsetY}px;font-size:${ratingConfig.style.rating.fontSize}px;font-weight:${ratingConfig.style.rating.bold ? 'bold' : 'normal'};padding-right:${ratingConfig.style.rating.offsetX}px`" >
151+ <div data-cy = " rating-position-left " v-if =" ratingConfig.style.rating.show && ratingConfig.style.rating.position === 'left'" :style =" `width:fit-content;text-align:center;margin-bottom:${ratingConfig.style.rating.offsetY}px;font-size:${ratingConfig.style.rating.fontSize}px;font-weight:${ratingConfig.style.rating.bold ? 'bold' : 'normal'};padding-right:${ratingConfig.style.rating.offsetX}px`" >
162152 {{ isNaN(currentRating) ? '' : currentRating.toFixed(ratingConfig.style.rating.roundingValue) }}
163153 </div >
164154
@@ -169,7 +159,8 @@ defineExpose({
169159 :style =" `position:relative;height:${ratingConfig.style.itemSize}px;width:${ratingConfig.style.itemSize}px`"
170160 >
171161 <!-- IMAGE FIRST LAYER -->
172- <img
162+ <img
163+ :data-cy =" `rating-image-${i}`"
173164 v-if =" isImage"
174165 :src =" ratingConfig.style.image.src"
175166 :height =" ratingConfig.style.itemSize"
@@ -196,6 +187,7 @@ defineExpose({
196187 </radialGradient >
197188 </defs >
198189 <polygon
190+ :data-cy =" `rating-shape-${i}`"
199191 :points =" createStar({
200192 plot: { x: 50, y: 50 },
201193 radius: 30,
@@ -220,7 +212,8 @@ defineExpose({
220212 </svg >
221213
222214 <!-- IMAGE SECOND LAYER -->
223- <img
215+ <img
216+ :data-cy =" `rating-image-overlay-${i}`"
224217 v-if =" isImage"
225218 :src =" ratingConfig.style.image.src"
226219 :alt =" `${ratingConfig.style.image.alt} ${value}`"
@@ -233,6 +226,7 @@ defineExpose({
233226
234227 <!-- STAR SECOND LAYER -->
235228 <svg
229+ :data-cy =" `rating-shape-overlay-${i}`"
236230 v-else
237231 :viewBox =" `0 0 ${calcShapeFill(i)} 100`"
238232 :height =" ratingConfig.style.itemSize"
@@ -269,6 +263,7 @@ defineExpose({
269263 :style =" `position:absolute;top:0;left:0;${isReadonly ? '' : 'cursor:pointer'}`"
270264 >
271265 <rect
266+ :data-cy =" `rating-active-trap-${i}`"
272267 class =" vue-ui-rating-mouse-trap"
273268 v-if =" !isReadonly"
274269 :x =" 0"
@@ -283,6 +278,7 @@ defineExpose({
283278 @keyup.enter =" rate(value)"
284279 />
285280 <rect
281+ :data-cy =" `rating-readonly-trap-${i}`"
286282 class =" vue-ui-rating-mouse-trap"
287283 v-if =" isReadonly"
288284 :x =" 0"
@@ -296,7 +292,7 @@ defineExpose({
296292 </svg >
297293 <template v-if =" ratingConfig .style .tooltip .show && hasBreakdown && isReadonly " >
298294 <div class =" vue-ui-rating-tooltip" :style =" `border:1px solid ${ratingConfig.style.tooltip.borderColor};position:absolute;top:${-48 + ratingConfig.style.tooltip.offsetY}px;left:50%;transform:translateX(-50%);width:fit-content;text-align:center;background:${ratingConfig.style.tooltip.backgroundColor};display:${hoveredValue === value ? 'block' : 'none'};padding:2px 12px;border-radius:${ratingConfig.style.tooltip.borderRadius}px;box-shadow:${ratingConfig.style.tooltip.boxShadow}`" >
299- <div :style =" `width:100%;display:flex;flex-direction:row;gap:6px;position:relative;text-align:center;color:${ratingConfig.style.tooltip.color}`" >
295+ <div :data-cy = " `rating-tooltip-${i}` " : style =" `width:100%;display:flex;flex-direction:row;gap:6px;position:relative;text-align:center;color:${ratingConfig.style.tooltip.color}`" >
300296 <span :style =" `font-size:${ratingConfig.style.tooltip.fontSize}px`" >{{ value }}</span > : <span :style =" `font-weight:${ratingConfig.style.tooltip.bold ? 'bold' : 'normal'};font-size:${ratingConfig.style.tooltip.fontSize}px`" >{{ props.dataset.rating[value] }}</span >
301297 <div :style =" `font-family:Arial !important;position:absolute;top:calc(100% - 4px);left:50%;transform:translateX(-50%);color:${ratingConfig.style.tooltip.borderColor}`" >
302298 ▼
@@ -309,14 +305,14 @@ defineExpose({
309305
310306
311307 <!-- RATING POSITION RIGHT -->
312- <div v-if =" ratingConfig.style.rating.show && ratingConfig.style.rating.position === 'right'" :style =" `width:fit-content;text-align:center;margin-bottom:${ratingConfig.style.rating.offsetY}px;font-size:${ratingConfig.style.rating.fontSize}px;font-weight:${ratingConfig.style.rating.bold ? 'bold' : 'normal'};padding-left:${ratingConfig.style.rating.offsetX}px`" >
308+ <div data-cy = " rating-position-right " v-if =" ratingConfig.style.rating.show && ratingConfig.style.rating.position === 'right'" :style =" `width:fit-content;text-align:center;margin-bottom:${ratingConfig.style.rating.offsetY}px;font-size:${ratingConfig.style.rating.fontSize}px;font-weight:${ratingConfig.style.rating.bold ? 'bold' : 'normal'};padding-left:${ratingConfig.style.rating.offsetX}px`" >
313309 {{ isNaN(currentRating) ? '' : currentRating.toFixed(ratingConfig.style.rating.roundingValue) }}
314310 </div >
315311
316312 </div >
317313
318314 <!-- RATING POSITION BOTTOM -->
319- <div v-if =" ratingConfig.style.rating.show && ratingConfig.style.rating.position === 'bottom'" :style =" `width:100%;text-align:center;margin-top:${ratingConfig.style.rating.offsetY}px;font-size:${ratingConfig.style.rating.fontSize}px;font-weight:${ratingConfig.style.rating.bold ? 'bold' : 'normal'};margin-left:${ratingConfig.style.rating.offsetX}px`" >
315+ <div data-cy = " rating-position-bottom " v-if =" ratingConfig.style.rating.show && ratingConfig.style.rating.position === 'bottom'" :style =" `width:100%;text-align:center;margin-top:${ratingConfig.style.rating.offsetY}px;font-size:${ratingConfig.style.rating.fontSize}px;font-weight:${ratingConfig.style.rating.bold ? 'bold' : 'normal'};margin-left:${ratingConfig.style.rating.offsetX}px`" >
320316 {{ isNaN(currentRating) ? '' : currentRating.toFixed(ratingConfig.style.rating.roundingValue) }}
321317 </div >
322318
0 commit comments