landing-pages.yotpo.com
Open in
urlscan Pro
2a02:26f0:1700:182::1d72
Public Scan
Submitted URL: http://em.yotpo.com/ls/click?upn=u001.v8pUSzLQyuRoSj1F7dBz92adrK6PA88NJePqYv0B-2Fnr0UTHpVEbCkxb6ecWrnt2kfL7J0qZ8qXqj...
Effective URL: https://landing-pages.yotpo.com/custom/J0HdWwHJYOSy5bpyK5Onl4iZc5PnYlmoQCIjkHeA/1/
Submission: On November 19 via manual from MY — Scanned from DE
Effective URL: https://landing-pages.yotpo.com/custom/J0HdWwHJYOSy5bpyK5Onl4iZc5PnYlmoQCIjkHeA/1/
Submission: On November 19 via manual from MY — Scanned from DE
Form analysis
10 forms found in the DOM<form ng-submit="submitForm(true)" class="ui form ng-pristine ng-valid" ng-class="{ disabled: showReviewBody && isSubmitClicked }" data-cy="review-form">
<!-- ngIf: showReviewBody -->
<div class="review-header ng-scope ng-isolate-scope" ng-if="showReviewBody" star-color="E7721B" star-rating-value="baseFields.reviewScore" show-validation-errors="!cleanForm" show-product-image="showProductImage"
product-image-url="//cdn-yotpo-images-production.yotpo.com/Product/646826440/542662143/thumb.jpg?1711962277" product-name="RÅGBLOMMA">
<div class="header-container">
<div ng-show="showProductImage" class="product-img-container" data-cy="product-image-container">
<!-- ngIf: productImageUrl --><img ng-if="productImageUrl" ng-src="//cdn-yotpo-images-production.yotpo.com/Product/646826440/542662143/thumb.jpg?1711962277" class="product-img ng-scope" alt="Product image"
src="//cdn-yotpo-images-production.yotpo.com/Product/646826440/542662143/thumb.jpg?1711962277" style=""><!-- end ngIf: productImageUrl -->
<!-- ngIf: !productImageUrl -->
</div>
<div class="stars-container">
<div class="product-name" style="display: -webkit-box;">
<span ng-bind-html="productName" data-cy="product-name" class="ng-binding">RÅGBLOMMA</span>
</div>
<div class="stars">
<ul class="stars ng-isolate-scope" ng-class="{'error': !ratingValue && showError}" rating-value="starRatingValue" show-error="showError(starRatingValue)" data-cy="star-rating">
<!-- ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="1 Star Rating" class="ng-scope" style="">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="ng-hide">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="2 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="ng-hide">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="3 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="ng-hide">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="4 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="5 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
</ul>
<span class="rate-error ng-binding ng-hide" ng-show="showError(starRatingValue)" ng-bind="'REVIEW.RATING_REQUIRED' | translate" style="">Required</span>
</div>
</div>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: showReviewBody -->
<div class="review-body ng-scope animation-done" ng-if="showReviewBody" ng-class="{collapsed: !expanded, loading: expanded && !loaded, 'animation-done': expandAnimationDone}" style="">
<div class="title-and-content">
<div class="loading-container loading ng-isolate-scope ng-hide" data-cy="loading-container" review-body-mode="true" ng-show="expanded && !loaded">
<!-- ngIf: !reviewBodyMode -->
<div class="ls-body-container">
<div class="left-margin line-masker"></div>
<div class="ls-body-content">
<!-- ngIf: !reviewBodyMode -->
<div>
<div class="ls-review-title"></div>
<div class="ls-review-content"></div>
<div class="fields-line-1">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-2">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-3">
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-margin-right line-masker"></div>
</div>
</div>
</div>
<div class="right-margin line-masker"></div>
</div>
</div>
<!-- ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div ng-if="reviewTitleRequired && !suggestedTopicsEnabled" class="review-title-container ng-scope" ng-class="{error: showError(baseFields.reviewTitle, 'title')}" data-cy="title-without-topics">
<input class="review-title ng-pristine ng-untouched ng-valid ng-empty" name="review_title" aria-label="Review title" type="text" ng-model="baseFields.reviewTitle" placeholder="Review title" data-cy="title-free-text-input">
</div><!-- end ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div class="review-content-container error" ng-class="{error: showError(baseFields.reviewContent, 'content'), 'small-spacing': suggestedTopicsEnabled}">
<!-- ngIf: !suggestedTopicsEnabled --><textarea ng-if="!suggestedTopicsEnabled" rows="4" class="review-content yotpo-textarea ng-pristine ng-untouched ng-valid ng-scope ng-empty" aria-label="Review content" type="text"
ng-model="baseFields.reviewContent" name="review_content" placeholder="* Write your review here!" data-cy="content-without-topics-free-text-input"></textarea><!-- end ngIf: !suggestedTopicsEnabled -->
<!-- ngIf: loaded && suggestedTopicsEnabled -->
<span class="content-error ng-binding" ng-bind="'REVIEW.CONTENT_REQUIRED' | translate">Required</span>
</div>
<!-- ngIf: reviewTitleRequired && suggestedTopicsEnabled -->
<!-- ngIf: showDisplayNameAndEmail -->
<!-- ngIf: showDisplayNameAndEmail -->
</div>
<!-- ngIf: loaded && (imagesEnabled || videosEnabled) && !thankYouMode -->
<div class="custom-fields ng-isolate-scope" data-cy="custom-fields" fields="customFields" allow-show-errors="!cleanForm" value-updated-callback="updateCustomFieldValue(slug, value)">
<div ng-show="fields">
<!-- ngRepeat: (slug, field) in fields -->
<div ng-repeat="(slug, field) in fields" class="ng-scope" style="">
<div ng-switch="field.type">
<!-- ngSwitchWhen: Rating -->
<!-- ngSwitchWhen: Size -->
<!-- ngSwitchWhen: MultipleChoice -->
<!-- ngSwitchWhen: SingleChoice -->
<div ng-switch-when="SingleChoice" class="ng-scope">
<!-- ngIf: field.displayVariant !== 'dropdown' -->
<div class="custom-field cf-single-choice cf-radio form-element custom-single-choice-field ng-scope ng-isolate-scope" data-cy="single-choice-radio" ng-if="field.displayVariant !== 'dropdown'" field="field"
allow-show-errors="allowShowErrors" value-updated-callback="updateValue(slug, newValue)">
<div class="field-title">
<span class="text ng-binding" ng-bind="field.title">Recommendation rate</span>
<span class="mandatory-mark ng-hide" ng-show="field.mandatory" style="">*</span>
</div>
<fieldset aria-required="false">
<legend class="field-subtitle ng-binding" ng-bind="field.subTitle">Would you recommend this product to a friend?</legend>
<div class="single-choice-field">
<!-- ngRepeat: fieldOption in field.options track by $index -->
<div class="field-choice-option ng-scope" ng-repeat="fieldOption in field.options track by $index" style="">
<div class="custom-radio">
<input type="radio" class="radio ng-pristine ng-untouched ng-valid ng-empty" ng-class="{'error': showError()}" name="hmoL-single-choice-field-80661" id="hmoL-single-choice-field-80661-option-0" ng-model="selectedValue"
ng-value="fieldOption" ng-click="updateValue(fieldOption)" data-cy="single-input" value="Yes">
<label for="hmoL-single-choice-field-80661-option-0" ng-bind="fieldOption" data-cy="single-option" class="ng-binding">Yes</label>
</div>
</div><!-- end ngRepeat: fieldOption in field.options track by $index -->
<div class="field-choice-option ng-scope" ng-repeat="fieldOption in field.options track by $index">
<div class="custom-radio">
<input type="radio" class="radio ng-pristine ng-untouched ng-valid ng-empty" ng-class="{'error': showError()}" name="hmoL-single-choice-field-80661" id="hmoL-single-choice-field-80661-option-1" ng-model="selectedValue"
ng-value="fieldOption" ng-click="updateValue(fieldOption)" data-cy="single-input" value="No">
<label for="hmoL-single-choice-field-80661-option-1" ng-bind="fieldOption" data-cy="single-option" class="ng-binding">No</label>
</div>
</div><!-- end ngRepeat: fieldOption in field.options track by $index -->
</div>
</fieldset>
</div><!-- end ngIf: field.displayVariant !== 'dropdown' -->
<!-- ngIf: field.displayVariant === 'dropdown' -->
</div><!-- end ngSwitchWhen: -->
<!-- ngSwitchWhen: CustomerFreeText -->
<!-- ngSwitchWhen: ProductFreeText -->
</div>
</div><!-- end ngRepeat: (slug, field) in fields -->
<div ng-repeat="(slug, field) in fields" class="ng-scope">
<div ng-switch="field.type">
<!-- ngSwitchWhen: Rating -->
<div ng-switch-when="Rating" class="ng-scope">
<div class="custom-field cf-rating form-element custom-rating-field ng-isolate-scope" data-cy="rating" field="field" allow-show-errors="allowShowErrors" value-updated-callback="updateValue(slug, newValue)">
<div class="field-title">
<span class="text ng-binding" ng-bind="field.title">Value for money</span>
<span class="mandatory-mark ng-hide" ng-show="field.mandatory" style="">*</span>
</div>
<fieldset aria-required="false">
<legend class="field-subtitle ng-binding" ng-bind="field.subTitle">How do you rate the value for money?</legend>
<div class="rating-field">
<!-- ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index" style="">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="1" name="v0y6-rating-field-80662" id="v0y6-rating-field-80662-option-0" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="v0y6-rating-field-80662-option-0" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="2" name="v0y6-rating-field-80662" id="v0y6-rating-field-80662-option-1" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="v0y6-rating-field-80662-option-1" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="3" name="v0y6-rating-field-80662" id="v0y6-rating-field-80662-option-2" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="v0y6-rating-field-80662-option-2" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="4" name="v0y6-rating-field-80662" id="v0y6-rating-field-80662-option-3" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="v0y6-rating-field-80662-option-3" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="5" name="v0y6-rating-field-80662" id="v0y6-rating-field-80662-option-4" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="v0y6-rating-field-80662-option-4" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index -->
<span class="field-option-value ng-binding" ng-class="{'selected': selectedValue > 0}" ng-bind="fieldOptionSelected">Click here to rate</span>
</div>
</fieldset>
</div>
</div><!-- end ngSwitchWhen: -->
<!-- ngSwitchWhen: Size -->
<!-- ngSwitchWhen: MultipleChoice -->
<!-- ngSwitchWhen: SingleChoice -->
<!-- ngSwitchWhen: CustomerFreeText -->
<!-- ngSwitchWhen: ProductFreeText -->
</div>
</div><!-- end ngRepeat: (slug, field) in fields -->
<div ng-repeat="(slug, field) in fields" class="ng-scope">
<div ng-switch="field.type">
<!-- ngSwitchWhen: Rating -->
<div ng-switch-when="Rating" class="ng-scope">
<div class="custom-field cf-rating form-element custom-rating-field ng-isolate-scope" data-cy="rating" field="field" allow-show-errors="allowShowErrors" value-updated-callback="updateValue(slug, newValue)">
<div class="field-title">
<span class="text ng-binding" ng-bind="field.title">Product quality</span>
<span class="mandatory-mark ng-hide" ng-show="field.mandatory" style="">*</span>
</div>
<fieldset aria-required="false">
<legend class="field-subtitle ng-binding" ng-bind="field.subTitle">How do you rate the product quality?</legend>
<div class="rating-field">
<!-- ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index" style="">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="1" name="xk04-rating-field-80663" id="xk04-rating-field-80663-option-0" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="xk04-rating-field-80663-option-0" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="2" name="xk04-rating-field-80663" id="xk04-rating-field-80663-option-1" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="xk04-rating-field-80663-option-1" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="3" name="xk04-rating-field-80663" id="xk04-rating-field-80663-option-2" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="xk04-rating-field-80663-option-2" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="4" name="xk04-rating-field-80663" id="xk04-rating-field-80663-option-3" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="xk04-rating-field-80663-option-3" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="5" name="xk04-rating-field-80663" id="xk04-rating-field-80663-option-4" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="xk04-rating-field-80663-option-4" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index -->
<span class="field-option-value ng-binding" ng-class="{'selected': selectedValue > 0}" ng-bind="fieldOptionSelected">Click here to rate</span>
</div>
</fieldset>
</div>
</div><!-- end ngSwitchWhen: -->
<!-- ngSwitchWhen: Size -->
<!-- ngSwitchWhen: MultipleChoice -->
<!-- ngSwitchWhen: SingleChoice -->
<!-- ngSwitchWhen: CustomerFreeText -->
<!-- ngSwitchWhen: ProductFreeText -->
</div>
</div><!-- end ngRepeat: (slug, field) in fields -->
<div ng-repeat="(slug, field) in fields" class="ng-scope">
<div ng-switch="field.type">
<!-- ngSwitchWhen: Rating -->
<div ng-switch-when="Rating" class="ng-scope">
<div class="custom-field cf-rating form-element custom-rating-field ng-isolate-scope" data-cy="rating" field="field" allow-show-errors="allowShowErrors" value-updated-callback="updateValue(slug, newValue)">
<div class="field-title">
<span class="text ng-binding" ng-bind="field.title">Appearance</span>
<span class="mandatory-mark ng-hide" ng-show="field.mandatory" style="">*</span>
</div>
<fieldset aria-required="false">
<legend class="field-subtitle ng-binding" ng-bind="field.subTitle">How do you rate the product appearance?</legend>
<div class="rating-field">
<!-- ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index" style="">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="1" name="XTJs-rating-field-80664" id="XTJs-rating-field-80664-option-0" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="XTJs-rating-field-80664-option-0" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="2" name="XTJs-rating-field-80664" id="XTJs-rating-field-80664-option-1" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="XTJs-rating-field-80664-option-1" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="3" name="XTJs-rating-field-80664" id="XTJs-rating-field-80664-option-2" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="XTJs-rating-field-80664-option-2" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="4" name="XTJs-rating-field-80664" id="XTJs-rating-field-80664-option-3" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="XTJs-rating-field-80664-option-3" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="5" name="XTJs-rating-field-80664" id="XTJs-rating-field-80664-option-4" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="XTJs-rating-field-80664-option-4" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index -->
<span class="field-option-value ng-binding" ng-class="{'selected': selectedValue > 0}" ng-bind="fieldOptionSelected">Click here to rate</span>
</div>
</fieldset>
</div>
</div><!-- end ngSwitchWhen: -->
<!-- ngSwitchWhen: Size -->
<!-- ngSwitchWhen: MultipleChoice -->
<!-- ngSwitchWhen: SingleChoice -->
<!-- ngSwitchWhen: CustomerFreeText -->
<!-- ngSwitchWhen: ProductFreeText -->
</div>
</div><!-- end ngRepeat: (slug, field) in fields -->
<div ng-repeat="(slug, field) in fields" class="ng-scope">
<div ng-switch="field.type">
<!-- ngSwitchWhen: Rating -->
<div ng-switch-when="Rating" class="ng-scope">
<div class="custom-field cf-rating form-element custom-rating-field ng-isolate-scope" data-cy="rating" field="field" allow-show-errors="allowShowErrors" value-updated-callback="updateValue(slug, newValue)">
<div class="field-title">
<span class="text ng-binding" ng-bind="field.title">Ease of assembly/installation</span>
<span class="mandatory-mark ng-hide" ng-show="field.mandatory" style="">*</span>
</div>
<fieldset aria-required="false">
<legend class="field-subtitle ng-binding" ng-bind="field.subTitle">How do you rate the ease of assembly/installation?</legend>
<div class="rating-field">
<!-- ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index" style="">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="1" name="JC9B-rating-field-80665" id="JC9B-rating-field-80665-option-0" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="JC9B-rating-field-80665-option-0" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="2" name="JC9B-rating-field-80665" id="JC9B-rating-field-80665-option-1" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="JC9B-rating-field-80665-option-1" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="3" name="JC9B-rating-field-80665" id="JC9B-rating-field-80665-option-2" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="JC9B-rating-field-80665-option-2" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="4" name="JC9B-rating-field-80665" id="JC9B-rating-field-80665-option-3" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="JC9B-rating-field-80665-option-3" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="5" name="JC9B-rating-field-80665" id="JC9B-rating-field-80665-option-4" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="JC9B-rating-field-80665-option-4" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index -->
<span class="field-option-value ng-binding" ng-class="{'selected': selectedValue > 0}" ng-bind="fieldOptionSelected">Click here to rate</span>
</div>
</fieldset>
</div>
</div><!-- end ngSwitchWhen: -->
<!-- ngSwitchWhen: Size -->
<!-- ngSwitchWhen: MultipleChoice -->
<!-- ngSwitchWhen: SingleChoice -->
<!-- ngSwitchWhen: CustomerFreeText -->
<!-- ngSwitchWhen: ProductFreeText -->
</div>
</div><!-- end ngRepeat: (slug, field) in fields -->
<div ng-repeat="(slug, field) in fields" class="ng-scope">
<div ng-switch="field.type">
<!-- ngSwitchWhen: Rating -->
<div ng-switch-when="Rating" class="ng-scope">
<div class="custom-field cf-rating form-element custom-rating-field ng-isolate-scope" data-cy="rating" field="field" allow-show-errors="allowShowErrors" value-updated-callback="updateValue(slug, newValue)">
<div class="field-title">
<span class="text ng-binding" ng-bind="field.title">Works as expected</span>
<span class="mandatory-mark ng-hide" ng-show="field.mandatory" style="">*</span>
</div>
<fieldset aria-required="false">
<legend class="field-subtitle ng-binding" ng-bind="field.subTitle">Rate whether the product works as you expected:</legend>
<div class="rating-field">
<!-- ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index" style="">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="1" name="98Ma-rating-field-80666" id="98Ma-rating-field-80666-option-0" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="98Ma-rating-field-80666-option-0" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="2" name="98Ma-rating-field-80666" id="98Ma-rating-field-80666-option-1" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="98Ma-rating-field-80666-option-1" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="3" name="98Ma-rating-field-80666" id="98Ma-rating-field-80666-option-2" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="98Ma-rating-field-80666-option-2" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="4" name="98Ma-rating-field-80666" id="98Ma-rating-field-80666-option-3" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="98Ma-rating-field-80666-option-3" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index --><span class="custom-input-container ng-scope" ng-repeat="fieldOption in field.options track by $index">
<input type="radio" class="rating" ng-class="{'error': showError()}" aria-label="5" name="98Ma-rating-field-80666" id="98Ma-rating-field-80666-option-4" ng-checked="selectedValue == $index + 1"
ng-click="updateValue($index + 1, fieldOption)" data-cy="rating-input">
<label for="98Ma-rating-field-80666-option-4" ng-class="{'selected': showSelected[$index]}" data-cy="rating-option"></label>
</span><!-- end ngRepeat: fieldOption in field.options track by $index -->
<span class="field-option-value ng-binding" ng-class="{'selected': selectedValue > 0}" ng-bind="fieldOptionSelected">Click here to rate</span>
</div>
</fieldset>
</div>
</div><!-- end ngSwitchWhen: -->
<!-- ngSwitchWhen: Size -->
<!-- ngSwitchWhen: MultipleChoice -->
<!-- ngSwitchWhen: SingleChoice -->
<!-- ngSwitchWhen: CustomerFreeText -->
<!-- ngSwitchWhen: ProductFreeText -->
</div>
</div><!-- end ngRepeat: (slug, field) in fields -->
</div>
</div>
<!-- ngIf: termsAndConditionsUrl --><custom-checkbox ng-if="termsAndConditionsUrl" class="consent-checkbox ng-scope ng-isolate-scope" initial-value="termsAndConditionsCheckboxChecked" on-update="termsAndConditionsCheckboxChanged(checked)"
allow-show-errors="!cleanForm" context="terms-and-conditions" data-cy="terms-and-conditions">
<div class="custom-checkbox-wrapper terms-and-conditions-wrapper">
<input type="checkbox" id="KVLP-terms-and-conditions" class="custom-checkbox-input terms-and-conditions-input ng-empty error" ng-class="{error: $ctrl.showError()}" ng-model="$ctrl.checked" ng-change="$ctrl.notifyUpdate()"
data-cy="custom-checkbox-input" style="">
<label class="custom-checkbox-label terms-and-conditions-label" for="KVLP-terms-and-conditions" data-cy="custom-checkbox-option">
<ng-transclude>
<span class="mandatory-mark ng-scope">*</span>
<span ng-bind="'REVIEW.CONSENT_CHECKBOX.I_AGREE' | translate" class="ng-binding ng-scope">I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have
read, understood and accept the</span>
<span
class="ng-scope"><a class="consent-checkbox-link ng-binding" ng-href="https://www.ikea.com/my/en/customer-service/terms-conditions/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.TERMS_AND_CONDITIONS' | translate" data-cy="link" href="https://www.ikea.com/my/en/customer-service/terms-conditions/">[Terms of Use]</a></span><span
class="ng-scope"> and </span><span
class="ng-scope"><a class="consent-checkbox-link ng-binding" href="https://www.ikea.com/my/en/customer-service/privacy-policy/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.PRIVACY_POLICY' | translate" data-cy="link">[Privacy Policy]</a>.</span>
</ng-transclude>
</label>
</div>
</custom-checkbox><!-- end ngIf: termsAndConditionsUrl -->
<!-- ngIf: privacyPolicyUrl -->
<div ng-show="loaded" class="form-field submit-container">
<button class="submit-review-button regular-button" name="commit" ng-disabled="mediaInProgressExists()" data-cy="submit-review-button">
<!-- ngIf: !mediaInProgressExists() --><span ng-if="!mediaInProgressExists()" ng-bind="'REVIEW.SUBMIT' | translate" class="ng-binding ng-scope">Submit Review</span><!-- end ngIf: !mediaInProgressExists() -->
<!-- ngIf: mediaInProgressExists() -->
</button>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: (imagesEnabled || videosEnabled) && mediaStandAloneMode && !thankYouMode -->
<!-- ngIf: thankYouMode -->
</form>
<form ng-submit="submitForm(true)" class="ui form ng-pristine ng-valid" ng-class="{ disabled: showReviewBody && isSubmitClicked }" data-cy="review-form">
<!-- ngIf: showReviewBody -->
<div class="review-header ng-scope ng-isolate-scope" ng-if="showReviewBody" star-color="E7721B" star-rating-value="baseFields.reviewScore" show-validation-errors="!cleanForm" show-product-image="showProductImage"
product-image-url="//cdn-yotpo-images-production.yotpo.com/Product/646809382/542662236/thumb.jpg?1711962288" product-name="RÅGBLOMMA">
<div class="header-container">
<div ng-show="showProductImage" class="product-img-container" data-cy="product-image-container">
<!-- ngIf: productImageUrl --><img ng-if="productImageUrl" ng-src="//cdn-yotpo-images-production.yotpo.com/Product/646809382/542662236/thumb.jpg?1711962288" class="product-img ng-scope" alt="Product image"
src="//cdn-yotpo-images-production.yotpo.com/Product/646809382/542662236/thumb.jpg?1711962288" style=""><!-- end ngIf: productImageUrl -->
<!-- ngIf: !productImageUrl -->
</div>
<div class="stars-container">
<div class="product-name" style="display: -webkit-box;">
<span ng-bind-html="productName" data-cy="product-name" class="ng-binding">RÅGBLOMMA</span>
</div>
<div class="stars">
<ul class="stars ng-isolate-scope" ng-class="{'error': !ratingValue && showError}" rating-value="starRatingValue" show-error="showError(starRatingValue)" data-cy="star-rating">
<!-- ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="1 Star Rating" class="ng-scope" style="">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="2 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="3 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="4 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="5 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
</ul>
<span class="rate-error ng-binding ng-hide" ng-show="showError(starRatingValue)" ng-bind="'REVIEW.RATING_REQUIRED' | translate" style="">Required</span>
</div>
</div>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: showReviewBody -->
<div class="review-body ng-scope collapsed" ng-if="showReviewBody" ng-class="{collapsed: !expanded, loading: expanded && !loaded, 'animation-done': expandAnimationDone}" style="">
<div class="title-and-content">
<div class="loading-container loading ng-isolate-scope ng-hide" data-cy="loading-container" review-body-mode="true" ng-show="expanded && !loaded">
<!-- ngIf: !reviewBodyMode -->
<div class="ls-body-container">
<div class="left-margin line-masker"></div>
<div class="ls-body-content">
<!-- ngIf: !reviewBodyMode -->
<div>
<div class="ls-review-title"></div>
<div class="ls-review-content"></div>
<div class="fields-line-1">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-2">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-3">
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-margin-right line-masker"></div>
</div>
</div>
</div>
<div class="right-margin line-masker"></div>
</div>
</div>
<!-- ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div ng-if="reviewTitleRequired && !suggestedTopicsEnabled" class="review-title-container ng-scope" ng-class="{error: showError(baseFields.reviewTitle, 'title')}" data-cy="title-without-topics">
<input class="review-title ng-pristine ng-untouched ng-valid ng-empty" name="review_title" aria-label="Review title" type="text" ng-model="baseFields.reviewTitle" placeholder="Review title" data-cy="title-free-text-input">
</div><!-- end ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div class="review-content-container" ng-class="{error: showError(baseFields.reviewContent, 'content'), 'small-spacing': suggestedTopicsEnabled}">
<!-- ngIf: !suggestedTopicsEnabled --><textarea ng-if="!suggestedTopicsEnabled" rows="4" class="review-content yotpo-textarea ng-pristine ng-untouched ng-valid ng-scope ng-empty" aria-label="Review content" type="text"
ng-model="baseFields.reviewContent" name="review_content" placeholder="* Write your review here!" data-cy="content-without-topics-free-text-input"></textarea><!-- end ngIf: !suggestedTopicsEnabled -->
<!-- ngIf: loaded && suggestedTopicsEnabled -->
<span class="content-error ng-binding" ng-bind="'REVIEW.CONTENT_REQUIRED' | translate">Required</span>
</div>
<!-- ngIf: reviewTitleRequired && suggestedTopicsEnabled -->
<!-- ngIf: showDisplayNameAndEmail -->
<!-- ngIf: showDisplayNameAndEmail -->
</div>
<!-- ngIf: loaded && (imagesEnabled || videosEnabled) && !thankYouMode -->
<div class="custom-fields ng-isolate-scope" data-cy="custom-fields" fields="customFields" allow-show-errors="!cleanForm" value-updated-callback="updateCustomFieldValue(slug, value)">
<div ng-show="fields" class="ng-hide" style="">
<!-- ngRepeat: (slug, field) in fields -->
</div>
</div>
<!-- ngIf: termsAndConditionsUrl --><custom-checkbox ng-if="termsAndConditionsUrl" class="consent-checkbox ng-scope ng-isolate-scope" initial-value="termsAndConditionsCheckboxChecked" on-update="termsAndConditionsCheckboxChanged(checked)"
allow-show-errors="!cleanForm" context="terms-and-conditions" data-cy="terms-and-conditions">
<div class="custom-checkbox-wrapper terms-and-conditions-wrapper">
<input type="checkbox" id="Oq81-terms-and-conditions" class="custom-checkbox-input terms-and-conditions-input ng-empty" ng-class="{error: $ctrl.showError()}" ng-model="$ctrl.checked" ng-change="$ctrl.notifyUpdate()"
data-cy="custom-checkbox-input" style="">
<label class="custom-checkbox-label terms-and-conditions-label" for="Oq81-terms-and-conditions" data-cy="custom-checkbox-option">
<ng-transclude>
<span class="mandatory-mark ng-scope">*</span>
<span ng-bind="'REVIEW.CONSENT_CHECKBOX.I_AGREE' | translate" class="ng-binding ng-scope">I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have
read, understood and accept the</span>
<span
class="ng-scope"><a class="consent-checkbox-link ng-binding" ng-href="https://www.ikea.com/my/en/customer-service/terms-conditions/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.TERMS_AND_CONDITIONS' | translate" data-cy="link" href="https://www.ikea.com/my/en/customer-service/terms-conditions/">[Terms of Use]</a></span><span
class="ng-scope"> and </span><span
class="ng-scope"><a class="consent-checkbox-link ng-binding" href="https://www.ikea.com/my/en/customer-service/privacy-policy/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.PRIVACY_POLICY' | translate" data-cy="link">[Privacy Policy]</a>.</span>
</ng-transclude>
</label>
</div>
</custom-checkbox><!-- end ngIf: termsAndConditionsUrl -->
<!-- ngIf: privacyPolicyUrl -->
<div ng-show="loaded" class="form-field submit-container ng-hide">
<button class="submit-review-button regular-button" name="commit" ng-disabled="mediaInProgressExists()" data-cy="submit-review-button">
<!-- ngIf: !mediaInProgressExists() --><span ng-if="!mediaInProgressExists()" ng-bind="'REVIEW.SUBMIT' | translate" class="ng-binding ng-scope">Submit Review</span><!-- end ngIf: !mediaInProgressExists() -->
<!-- ngIf: mediaInProgressExists() -->
</button>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: (imagesEnabled || videosEnabled) && mediaStandAloneMode && !thankYouMode -->
<!-- ngIf: thankYouMode -->
</form>
<form ng-submit="submitForm(true)" class="ui form ng-pristine ng-valid" ng-class="{ disabled: showReviewBody && isSubmitClicked }" data-cy="review-form">
<!-- ngIf: showReviewBody -->
<div class="review-header ng-scope ng-isolate-scope" ng-if="showReviewBody" star-color="E7721B" star-rating-value="baseFields.reviewScore" show-validation-errors="!cleanForm" show-product-image="showProductImage"
product-image-url="//cdn-yotpo-images-production.yotpo.com/Product/392583046/330578330/thumb.jpg?1659430497" product-name="TINGBY">
<div class="header-container">
<div ng-show="showProductImage" class="product-img-container" data-cy="product-image-container">
<!-- ngIf: productImageUrl --><img ng-if="productImageUrl" ng-src="//cdn-yotpo-images-production.yotpo.com/Product/392583046/330578330/thumb.jpg?1659430497" class="product-img ng-scope" alt="Product image"
src="//cdn-yotpo-images-production.yotpo.com/Product/392583046/330578330/thumb.jpg?1659430497" style=""><!-- end ngIf: productImageUrl -->
<!-- ngIf: !productImageUrl -->
</div>
<div class="stars-container">
<div class="product-name" style="display: -webkit-box;">
<span ng-bind-html="productName" data-cy="product-name" class="ng-binding">TINGBY</span>
</div>
<div class="stars">
<ul class="stars ng-isolate-scope" ng-class="{'error': !ratingValue && showError}" rating-value="starRatingValue" show-error="showError(starRatingValue)" data-cy="star-rating">
<!-- ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="1 Star Rating" class="ng-scope" style="">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="2 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="3 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="4 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="5 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
</ul>
<span class="rate-error ng-binding ng-hide" ng-show="showError(starRatingValue)" ng-bind="'REVIEW.RATING_REQUIRED' | translate" style="">Required</span>
</div>
</div>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: showReviewBody -->
<div class="review-body ng-scope collapsed" ng-if="showReviewBody" ng-class="{collapsed: !expanded, loading: expanded && !loaded, 'animation-done': expandAnimationDone}" style="">
<div class="title-and-content">
<div class="loading-container loading ng-isolate-scope ng-hide" data-cy="loading-container" review-body-mode="true" ng-show="expanded && !loaded">
<!-- ngIf: !reviewBodyMode -->
<div class="ls-body-container">
<div class="left-margin line-masker"></div>
<div class="ls-body-content">
<!-- ngIf: !reviewBodyMode -->
<div>
<div class="ls-review-title"></div>
<div class="ls-review-content"></div>
<div class="fields-line-1">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-2">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-3">
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-margin-right line-masker"></div>
</div>
</div>
</div>
<div class="right-margin line-masker"></div>
</div>
</div>
<!-- ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div ng-if="reviewTitleRequired && !suggestedTopicsEnabled" class="review-title-container ng-scope" ng-class="{error: showError(baseFields.reviewTitle, 'title')}" data-cy="title-without-topics">
<input class="review-title ng-pristine ng-untouched ng-valid ng-empty" name="review_title" aria-label="Review title" type="text" ng-model="baseFields.reviewTitle" placeholder="Review title" data-cy="title-free-text-input">
</div><!-- end ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div class="review-content-container" ng-class="{error: showError(baseFields.reviewContent, 'content'), 'small-spacing': suggestedTopicsEnabled}">
<!-- ngIf: !suggestedTopicsEnabled --><textarea ng-if="!suggestedTopicsEnabled" rows="4" class="review-content yotpo-textarea ng-pristine ng-untouched ng-valid ng-scope ng-empty" aria-label="Review content" type="text"
ng-model="baseFields.reviewContent" name="review_content" placeholder="* Write your review here!" data-cy="content-without-topics-free-text-input"></textarea><!-- end ngIf: !suggestedTopicsEnabled -->
<!-- ngIf: loaded && suggestedTopicsEnabled -->
<span class="content-error ng-binding" ng-bind="'REVIEW.CONTENT_REQUIRED' | translate">Required</span>
</div>
<!-- ngIf: reviewTitleRequired && suggestedTopicsEnabled -->
<!-- ngIf: showDisplayNameAndEmail -->
<!-- ngIf: showDisplayNameAndEmail -->
</div>
<!-- ngIf: loaded && (imagesEnabled || videosEnabled) && !thankYouMode -->
<div class="custom-fields ng-isolate-scope" data-cy="custom-fields" fields="customFields" allow-show-errors="!cleanForm" value-updated-callback="updateCustomFieldValue(slug, value)">
<div ng-show="fields" class="ng-hide" style="">
<!-- ngRepeat: (slug, field) in fields -->
</div>
</div>
<!-- ngIf: termsAndConditionsUrl --><custom-checkbox ng-if="termsAndConditionsUrl" class="consent-checkbox ng-scope ng-isolate-scope" initial-value="termsAndConditionsCheckboxChecked" on-update="termsAndConditionsCheckboxChanged(checked)"
allow-show-errors="!cleanForm" context="terms-and-conditions" data-cy="terms-and-conditions">
<div class="custom-checkbox-wrapper terms-and-conditions-wrapper">
<input type="checkbox" id="mTSu-terms-and-conditions" class="custom-checkbox-input terms-and-conditions-input ng-empty" ng-class="{error: $ctrl.showError()}" ng-model="$ctrl.checked" ng-change="$ctrl.notifyUpdate()"
data-cy="custom-checkbox-input" style="">
<label class="custom-checkbox-label terms-and-conditions-label" for="mTSu-terms-and-conditions" data-cy="custom-checkbox-option">
<ng-transclude>
<span class="mandatory-mark ng-scope">*</span>
<span ng-bind="'REVIEW.CONSENT_CHECKBOX.I_AGREE' | translate" class="ng-binding ng-scope">I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have
read, understood and accept the</span>
<span
class="ng-scope"><a class="consent-checkbox-link ng-binding" ng-href="https://www.ikea.com/my/en/customer-service/terms-conditions/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.TERMS_AND_CONDITIONS' | translate" data-cy="link" href="https://www.ikea.com/my/en/customer-service/terms-conditions/">[Terms of Use]</a></span><span
class="ng-scope"> and </span><span
class="ng-scope"><a class="consent-checkbox-link ng-binding" href="https://www.ikea.com/my/en/customer-service/privacy-policy/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.PRIVACY_POLICY' | translate" data-cy="link">[Privacy Policy]</a>.</span>
</ng-transclude>
</label>
</div>
</custom-checkbox><!-- end ngIf: termsAndConditionsUrl -->
<!-- ngIf: privacyPolicyUrl -->
<div ng-show="loaded" class="form-field submit-container ng-hide">
<button class="submit-review-button regular-button" name="commit" ng-disabled="mediaInProgressExists()" data-cy="submit-review-button">
<!-- ngIf: !mediaInProgressExists() --><span ng-if="!mediaInProgressExists()" ng-bind="'REVIEW.SUBMIT' | translate" class="ng-binding ng-scope">Submit Review</span><!-- end ngIf: !mediaInProgressExists() -->
<!-- ngIf: mediaInProgressExists() -->
</button>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: (imagesEnabled || videosEnabled) && mediaStandAloneMode && !thankYouMode -->
<!-- ngIf: thankYouMode -->
</form>
<form ng-submit="submitForm(true)" class="ui form ng-pristine ng-valid" ng-class="{ disabled: showReviewBody && isSubmitClicked }" data-cy="review-form">
<!-- ngIf: showReviewBody -->
<div class="review-header ng-scope ng-isolate-scope" ng-if="showReviewBody" star-color="E7721B" star-rating-value="baseFields.reviewScore" show-validation-errors="!cleanForm" show-product-image="showProductImage"
product-image-url="//cdn-yotpo-images-production.yotpo.com/Product/392605950/330599431/thumb.jpg?1659431145" product-name="GRUBBAN">
<div class="header-container">
<div ng-show="showProductImage" class="product-img-container" data-cy="product-image-container">
<!-- ngIf: productImageUrl --><img ng-if="productImageUrl" ng-src="//cdn-yotpo-images-production.yotpo.com/Product/392605950/330599431/thumb.jpg?1659431145" class="product-img ng-scope" alt="Product image"
src="//cdn-yotpo-images-production.yotpo.com/Product/392605950/330599431/thumb.jpg?1659431145" style=""><!-- end ngIf: productImageUrl -->
<!-- ngIf: !productImageUrl -->
</div>
<div class="stars-container">
<div class="product-name" style="display: -webkit-box;">
<span ng-bind-html="productName" data-cy="product-name" class="ng-binding">GRUBBAN</span>
</div>
<div class="stars">
<ul class="stars ng-isolate-scope" ng-class="{'error': !ratingValue && showError}" rating-value="starRatingValue" show-error="showError(starRatingValue)" data-cy="star-rating">
<!-- ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="1 Star Rating" class="ng-scope" style="">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="2 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="3 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="4 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="5 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
</ul>
<span class="rate-error ng-binding ng-hide" ng-show="showError(starRatingValue)" ng-bind="'REVIEW.RATING_REQUIRED' | translate" style="">Required</span>
</div>
</div>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: showReviewBody -->
<div class="review-body ng-scope collapsed" ng-if="showReviewBody" ng-class="{collapsed: !expanded, loading: expanded && !loaded, 'animation-done': expandAnimationDone}" style="">
<div class="title-and-content">
<div class="loading-container loading ng-isolate-scope ng-hide" data-cy="loading-container" review-body-mode="true" ng-show="expanded && !loaded">
<!-- ngIf: !reviewBodyMode -->
<div class="ls-body-container">
<div class="left-margin line-masker"></div>
<div class="ls-body-content">
<!-- ngIf: !reviewBodyMode -->
<div>
<div class="ls-review-title"></div>
<div class="ls-review-content"></div>
<div class="fields-line-1">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-2">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-3">
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-margin-right line-masker"></div>
</div>
</div>
</div>
<div class="right-margin line-masker"></div>
</div>
</div>
<!-- ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div ng-if="reviewTitleRequired && !suggestedTopicsEnabled" class="review-title-container ng-scope" ng-class="{error: showError(baseFields.reviewTitle, 'title')}" data-cy="title-without-topics">
<input class="review-title ng-pristine ng-untouched ng-valid ng-empty" name="review_title" aria-label="Review title" type="text" ng-model="baseFields.reviewTitle" placeholder="Review title" data-cy="title-free-text-input">
</div><!-- end ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div class="review-content-container" ng-class="{error: showError(baseFields.reviewContent, 'content'), 'small-spacing': suggestedTopicsEnabled}">
<!-- ngIf: !suggestedTopicsEnabled --><textarea ng-if="!suggestedTopicsEnabled" rows="4" class="review-content yotpo-textarea ng-pristine ng-untouched ng-valid ng-scope ng-empty" aria-label="Review content" type="text"
ng-model="baseFields.reviewContent" name="review_content" placeholder="* Write your review here!" data-cy="content-without-topics-free-text-input"></textarea><!-- end ngIf: !suggestedTopicsEnabled -->
<!-- ngIf: loaded && suggestedTopicsEnabled -->
<span class="content-error ng-binding" ng-bind="'REVIEW.CONTENT_REQUIRED' | translate">Required</span>
</div>
<!-- ngIf: reviewTitleRequired && suggestedTopicsEnabled -->
<!-- ngIf: showDisplayNameAndEmail -->
<!-- ngIf: showDisplayNameAndEmail -->
</div>
<!-- ngIf: loaded && (imagesEnabled || videosEnabled) && !thankYouMode -->
<div class="custom-fields ng-isolate-scope" data-cy="custom-fields" fields="customFields" allow-show-errors="!cleanForm" value-updated-callback="updateCustomFieldValue(slug, value)">
<div ng-show="fields" class="ng-hide" style="">
<!-- ngRepeat: (slug, field) in fields -->
</div>
</div>
<!-- ngIf: termsAndConditionsUrl --><custom-checkbox ng-if="termsAndConditionsUrl" class="consent-checkbox ng-scope ng-isolate-scope" initial-value="termsAndConditionsCheckboxChecked" on-update="termsAndConditionsCheckboxChanged(checked)"
allow-show-errors="!cleanForm" context="terms-and-conditions" data-cy="terms-and-conditions">
<div class="custom-checkbox-wrapper terms-and-conditions-wrapper">
<input type="checkbox" id="H7lC-terms-and-conditions" class="custom-checkbox-input terms-and-conditions-input ng-empty" ng-class="{error: $ctrl.showError()}" ng-model="$ctrl.checked" ng-change="$ctrl.notifyUpdate()"
data-cy="custom-checkbox-input" style="">
<label class="custom-checkbox-label terms-and-conditions-label" for="H7lC-terms-and-conditions" data-cy="custom-checkbox-option">
<ng-transclude>
<span class="mandatory-mark ng-scope">*</span>
<span ng-bind="'REVIEW.CONSENT_CHECKBOX.I_AGREE' | translate" class="ng-binding ng-scope">I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have
read, understood and accept the</span>
<span
class="ng-scope"><a class="consent-checkbox-link ng-binding" ng-href="https://www.ikea.com/my/en/customer-service/terms-conditions/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.TERMS_AND_CONDITIONS' | translate" data-cy="link" href="https://www.ikea.com/my/en/customer-service/terms-conditions/">[Terms of Use]</a></span><span
class="ng-scope"> and </span><span
class="ng-scope"><a class="consent-checkbox-link ng-binding" href="https://www.ikea.com/my/en/customer-service/privacy-policy/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.PRIVACY_POLICY' | translate" data-cy="link">[Privacy Policy]</a>.</span>
</ng-transclude>
</label>
</div>
</custom-checkbox><!-- end ngIf: termsAndConditionsUrl -->
<!-- ngIf: privacyPolicyUrl -->
<div ng-show="loaded" class="form-field submit-container ng-hide">
<button class="submit-review-button regular-button" name="commit" ng-disabled="mediaInProgressExists()" data-cy="submit-review-button">
<!-- ngIf: !mediaInProgressExists() --><span ng-if="!mediaInProgressExists()" ng-bind="'REVIEW.SUBMIT' | translate" class="ng-binding ng-scope">Submit Review</span><!-- end ngIf: !mediaInProgressExists() -->
<!-- ngIf: mediaInProgressExists() -->
</button>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: (imagesEnabled || videosEnabled) && mediaStandAloneMode && !thankYouMode -->
<!-- ngIf: thankYouMode -->
</form>
<form ng-submit="submitForm(true)" class="ui form ng-pristine ng-valid" ng-class="{ disabled: showReviewBody && isSubmitClicked }" data-cy="review-form">
<!-- ngIf: showReviewBody -->
<div class="review-header ng-scope ng-isolate-scope" ng-if="showReviewBody" star-color="E7721B" star-rating-value="baseFields.reviewScore" show-validation-errors="!cleanForm" show-product-image="showProductImage"
product-image-url="//cdn-yotpo-images-production.yotpo.com/Product/617499217/517784270/thumb.jpg?1706770643" product-name="OLIVBLAD">
<div class="header-container">
<div ng-show="showProductImage" class="product-img-container" data-cy="product-image-container">
<!-- ngIf: productImageUrl --><img ng-if="productImageUrl" ng-src="//cdn-yotpo-images-production.yotpo.com/Product/617499217/517784270/thumb.jpg?1706770643" class="product-img ng-scope" alt="Product image"
src="//cdn-yotpo-images-production.yotpo.com/Product/617499217/517784270/thumb.jpg?1706770643" style=""><!-- end ngIf: productImageUrl -->
<!-- ngIf: !productImageUrl -->
</div>
<div class="stars-container">
<div class="product-name" style="display: -webkit-box;">
<span ng-bind-html="productName" data-cy="product-name" class="ng-binding">OLIVBLAD</span>
</div>
<div class="stars">
<ul class="stars ng-isolate-scope" ng-class="{'error': !ratingValue && showError}" rating-value="starRatingValue" show-error="showError(starRatingValue)" data-cy="star-rating">
<!-- ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="1 Star Rating" class="ng-scope" style="">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="2 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="3 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="4 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="5 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
</ul>
<span class="rate-error ng-binding ng-hide" ng-show="showError(starRatingValue)" ng-bind="'REVIEW.RATING_REQUIRED' | translate" style="">Required</span>
</div>
</div>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: showReviewBody -->
<div class="review-body ng-scope collapsed" ng-if="showReviewBody" ng-class="{collapsed: !expanded, loading: expanded && !loaded, 'animation-done': expandAnimationDone}" style="">
<div class="title-and-content">
<div class="loading-container loading ng-isolate-scope ng-hide" data-cy="loading-container" review-body-mode="true" ng-show="expanded && !loaded">
<!-- ngIf: !reviewBodyMode -->
<div class="ls-body-container">
<div class="left-margin line-masker"></div>
<div class="ls-body-content">
<!-- ngIf: !reviewBodyMode -->
<div>
<div class="ls-review-title"></div>
<div class="ls-review-content"></div>
<div class="fields-line-1">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-2">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-3">
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-margin-right line-masker"></div>
</div>
</div>
</div>
<div class="right-margin line-masker"></div>
</div>
</div>
<!-- ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div ng-if="reviewTitleRequired && !suggestedTopicsEnabled" class="review-title-container ng-scope" ng-class="{error: showError(baseFields.reviewTitle, 'title')}" data-cy="title-without-topics">
<input class="review-title ng-pristine ng-untouched ng-valid ng-empty" name="review_title" aria-label="Review title" type="text" ng-model="baseFields.reviewTitle" placeholder="Review title" data-cy="title-free-text-input">
</div><!-- end ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div class="review-content-container" ng-class="{error: showError(baseFields.reviewContent, 'content'), 'small-spacing': suggestedTopicsEnabled}">
<!-- ngIf: !suggestedTopicsEnabled --><textarea ng-if="!suggestedTopicsEnabled" rows="4" class="review-content yotpo-textarea ng-pristine ng-untouched ng-valid ng-scope ng-empty" aria-label="Review content" type="text"
ng-model="baseFields.reviewContent" name="review_content" placeholder="* Write your review here!" data-cy="content-without-topics-free-text-input"></textarea><!-- end ngIf: !suggestedTopicsEnabled -->
<!-- ngIf: loaded && suggestedTopicsEnabled -->
<span class="content-error ng-binding" ng-bind="'REVIEW.CONTENT_REQUIRED' | translate">Required</span>
</div>
<!-- ngIf: reviewTitleRequired && suggestedTopicsEnabled -->
<!-- ngIf: showDisplayNameAndEmail -->
<!-- ngIf: showDisplayNameAndEmail -->
</div>
<!-- ngIf: loaded && (imagesEnabled || videosEnabled) && !thankYouMode -->
<div class="custom-fields ng-isolate-scope" data-cy="custom-fields" fields="customFields" allow-show-errors="!cleanForm" value-updated-callback="updateCustomFieldValue(slug, value)">
<div ng-show="fields" class="ng-hide" style="">
<!-- ngRepeat: (slug, field) in fields -->
</div>
</div>
<!-- ngIf: termsAndConditionsUrl --><custom-checkbox ng-if="termsAndConditionsUrl" class="consent-checkbox ng-scope ng-isolate-scope" initial-value="termsAndConditionsCheckboxChecked" on-update="termsAndConditionsCheckboxChanged(checked)"
allow-show-errors="!cleanForm" context="terms-and-conditions" data-cy="terms-and-conditions">
<div class="custom-checkbox-wrapper terms-and-conditions-wrapper">
<input type="checkbox" id="qMsV-terms-and-conditions" class="custom-checkbox-input terms-and-conditions-input ng-empty" ng-class="{error: $ctrl.showError()}" ng-model="$ctrl.checked" ng-change="$ctrl.notifyUpdate()"
data-cy="custom-checkbox-input" style="">
<label class="custom-checkbox-label terms-and-conditions-label" for="qMsV-terms-and-conditions" data-cy="custom-checkbox-option">
<ng-transclude>
<span class="mandatory-mark ng-scope">*</span>
<span ng-bind="'REVIEW.CONSENT_CHECKBOX.I_AGREE' | translate" class="ng-binding ng-scope">I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have
read, understood and accept the</span>
<span
class="ng-scope"><a class="consent-checkbox-link ng-binding" ng-href="https://www.ikea.com/my/en/customer-service/terms-conditions/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.TERMS_AND_CONDITIONS' | translate" data-cy="link" href="https://www.ikea.com/my/en/customer-service/terms-conditions/">[Terms of Use]</a></span><span
class="ng-scope"> and </span><span
class="ng-scope"><a class="consent-checkbox-link ng-binding" href="https://www.ikea.com/my/en/customer-service/privacy-policy/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.PRIVACY_POLICY' | translate" data-cy="link">[Privacy Policy]</a>.</span>
</ng-transclude>
</label>
</div>
</custom-checkbox><!-- end ngIf: termsAndConditionsUrl -->
<!-- ngIf: privacyPolicyUrl -->
<div ng-show="loaded" class="form-field submit-container ng-hide">
<button class="submit-review-button regular-button" name="commit" ng-disabled="mediaInProgressExists()" data-cy="submit-review-button">
<!-- ngIf: !mediaInProgressExists() --><span ng-if="!mediaInProgressExists()" ng-bind="'REVIEW.SUBMIT' | translate" class="ng-binding ng-scope">Submit Review</span><!-- end ngIf: !mediaInProgressExists() -->
<!-- ngIf: mediaInProgressExists() -->
</button>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: (imagesEnabled || videosEnabled) && mediaStandAloneMode && !thankYouMode -->
<!-- ngIf: thankYouMode -->
</form>
<form ng-submit="submitForm(true)" class="ui form ng-pristine ng-valid" ng-class="{ disabled: showReviewBody && isSubmitClicked }" data-cy="review-form">
<!-- ngIf: showReviewBody -->
<div class="review-header ng-scope ng-isolate-scope" ng-if="showReviewBody" star-color="E7721B" star-rating-value="baseFields.reviewScore" show-validation-errors="!cleanForm" show-product-image="showProductImage"
product-image-url="//cdn-yotpo-images-production.yotpo.com/Product/617500485/517784245/thumb.jpg?1706770639" product-name="OLIVBLAD">
<div class="header-container">
<div ng-show="showProductImage" class="product-img-container" data-cy="product-image-container">
<!-- ngIf: productImageUrl --><img ng-if="productImageUrl" ng-src="//cdn-yotpo-images-production.yotpo.com/Product/617500485/517784245/thumb.jpg?1706770639" class="product-img ng-scope" alt="Product image"
src="//cdn-yotpo-images-production.yotpo.com/Product/617500485/517784245/thumb.jpg?1706770639" style=""><!-- end ngIf: productImageUrl -->
<!-- ngIf: !productImageUrl -->
</div>
<div class="stars-container">
<div class="product-name" style="display: -webkit-box;">
<span ng-bind-html="productName" data-cy="product-name" class="ng-binding">OLIVBLAD</span>
</div>
<div class="stars">
<ul class="stars ng-isolate-scope" ng-class="{'error': !ratingValue && showError}" rating-value="starRatingValue" show-error="showError(starRatingValue)" data-cy="star-rating">
<!-- ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="1 Star Rating" class="ng-scope" style="">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="2 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="3 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="4 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="5 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
</ul>
<span class="rate-error ng-binding ng-hide" ng-show="showError(starRatingValue)" ng-bind="'REVIEW.RATING_REQUIRED' | translate" style="">Required</span>
</div>
</div>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: showReviewBody -->
<div class="review-body ng-scope collapsed" ng-if="showReviewBody" ng-class="{collapsed: !expanded, loading: expanded && !loaded, 'animation-done': expandAnimationDone}" style="">
<div class="title-and-content">
<div class="loading-container loading ng-isolate-scope ng-hide" data-cy="loading-container" review-body-mode="true" ng-show="expanded && !loaded">
<!-- ngIf: !reviewBodyMode -->
<div class="ls-body-container">
<div class="left-margin line-masker"></div>
<div class="ls-body-content">
<!-- ngIf: !reviewBodyMode -->
<div>
<div class="ls-review-title"></div>
<div class="ls-review-content"></div>
<div class="fields-line-1">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-2">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-3">
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-margin-right line-masker"></div>
</div>
</div>
</div>
<div class="right-margin line-masker"></div>
</div>
</div>
<!-- ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div ng-if="reviewTitleRequired && !suggestedTopicsEnabled" class="review-title-container ng-scope" ng-class="{error: showError(baseFields.reviewTitle, 'title')}" data-cy="title-without-topics">
<input class="review-title ng-pristine ng-untouched ng-valid ng-empty" name="review_title" aria-label="Review title" type="text" ng-model="baseFields.reviewTitle" placeholder="Review title" data-cy="title-free-text-input">
</div><!-- end ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div class="review-content-container" ng-class="{error: showError(baseFields.reviewContent, 'content'), 'small-spacing': suggestedTopicsEnabled}">
<!-- ngIf: !suggestedTopicsEnabled --><textarea ng-if="!suggestedTopicsEnabled" rows="4" class="review-content yotpo-textarea ng-pristine ng-untouched ng-valid ng-scope ng-empty" aria-label="Review content" type="text"
ng-model="baseFields.reviewContent" name="review_content" placeholder="* Write your review here!" data-cy="content-without-topics-free-text-input"></textarea><!-- end ngIf: !suggestedTopicsEnabled -->
<!-- ngIf: loaded && suggestedTopicsEnabled -->
<span class="content-error ng-binding" ng-bind="'REVIEW.CONTENT_REQUIRED' | translate">Required</span>
</div>
<!-- ngIf: reviewTitleRequired && suggestedTopicsEnabled -->
<!-- ngIf: showDisplayNameAndEmail -->
<!-- ngIf: showDisplayNameAndEmail -->
</div>
<!-- ngIf: loaded && (imagesEnabled || videosEnabled) && !thankYouMode -->
<div class="custom-fields ng-isolate-scope" data-cy="custom-fields" fields="customFields" allow-show-errors="!cleanForm" value-updated-callback="updateCustomFieldValue(slug, value)">
<div ng-show="fields" class="ng-hide" style="">
<!-- ngRepeat: (slug, field) in fields -->
</div>
</div>
<!-- ngIf: termsAndConditionsUrl --><custom-checkbox ng-if="termsAndConditionsUrl" class="consent-checkbox ng-scope ng-isolate-scope" initial-value="termsAndConditionsCheckboxChecked" on-update="termsAndConditionsCheckboxChanged(checked)"
allow-show-errors="!cleanForm" context="terms-and-conditions" data-cy="terms-and-conditions">
<div class="custom-checkbox-wrapper terms-and-conditions-wrapper">
<input type="checkbox" id="knNV-terms-and-conditions" class="custom-checkbox-input terms-and-conditions-input ng-empty" ng-class="{error: $ctrl.showError()}" ng-model="$ctrl.checked" ng-change="$ctrl.notifyUpdate()"
data-cy="custom-checkbox-input" style="">
<label class="custom-checkbox-label terms-and-conditions-label" for="knNV-terms-and-conditions" data-cy="custom-checkbox-option">
<ng-transclude>
<span class="mandatory-mark ng-scope">*</span>
<span ng-bind="'REVIEW.CONSENT_CHECKBOX.I_AGREE' | translate" class="ng-binding ng-scope">I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have
read, understood and accept the</span>
<span
class="ng-scope"><a class="consent-checkbox-link ng-binding" ng-href="https://www.ikea.com/my/en/customer-service/terms-conditions/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.TERMS_AND_CONDITIONS' | translate" data-cy="link" href="https://www.ikea.com/my/en/customer-service/terms-conditions/">[Terms of Use]</a></span><span
class="ng-scope"> and </span><span
class="ng-scope"><a class="consent-checkbox-link ng-binding" href="https://www.ikea.com/my/en/customer-service/privacy-policy/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.PRIVACY_POLICY' | translate" data-cy="link">[Privacy Policy]</a>.</span>
</ng-transclude>
</label>
</div>
</custom-checkbox><!-- end ngIf: termsAndConditionsUrl -->
<!-- ngIf: privacyPolicyUrl -->
<div ng-show="loaded" class="form-field submit-container ng-hide">
<button class="submit-review-button regular-button" name="commit" ng-disabled="mediaInProgressExists()" data-cy="submit-review-button">
<!-- ngIf: !mediaInProgressExists() --><span ng-if="!mediaInProgressExists()" ng-bind="'REVIEW.SUBMIT' | translate" class="ng-binding ng-scope">Submit Review</span><!-- end ngIf: !mediaInProgressExists() -->
<!-- ngIf: mediaInProgressExists() -->
</button>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: (imagesEnabled || videosEnabled) && mediaStandAloneMode && !thankYouMode -->
<!-- ngIf: thankYouMode -->
</form>
<form ng-submit="submitForm(true)" class="ui form ng-pristine ng-valid" ng-class="{ disabled: showReviewBody && isSubmitClicked }" data-cy="review-form">
<!-- ngIf: showReviewBody -->
<div class="review-header ng-scope ng-isolate-scope" ng-if="showReviewBody" star-color="E7721B" star-rating-value="baseFields.reviewScore" show-validation-errors="!cleanForm" show-product-image="showProductImage"
product-image-url="//cdn-yotpo-images-production.yotpo.com/Product/392590445/330584370/thumb.jpg?1659430707" product-name="BEKRÄFTA">
<div class="header-container">
<div ng-show="showProductImage" class="product-img-container" data-cy="product-image-container">
<!-- ngIf: productImageUrl --><img ng-if="productImageUrl" ng-src="//cdn-yotpo-images-production.yotpo.com/Product/392590445/330584370/thumb.jpg?1659430707" class="product-img ng-scope" alt="Product image"
src="//cdn-yotpo-images-production.yotpo.com/Product/392590445/330584370/thumb.jpg?1659430707" style=""><!-- end ngIf: productImageUrl -->
<!-- ngIf: !productImageUrl -->
</div>
<div class="stars-container">
<div class="product-name" style="display: -webkit-box;">
<span ng-bind-html="productName" data-cy="product-name" class="ng-binding">BEKRÄFTA</span>
</div>
<div class="stars">
<ul class="stars ng-isolate-scope" ng-class="{'error': !ratingValue && showError}" rating-value="starRatingValue" show-error="showError(starRatingValue)" data-cy="star-rating">
<!-- ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="1 Star Rating" class="ng-scope" style="">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="2 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="3 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="4 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="5 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
</ul>
<span class="rate-error ng-binding ng-hide" ng-show="showError(starRatingValue)" ng-bind="'REVIEW.RATING_REQUIRED' | translate" style="">Required</span>
</div>
</div>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: showReviewBody -->
<div class="review-body ng-scope collapsed" ng-if="showReviewBody" ng-class="{collapsed: !expanded, loading: expanded && !loaded, 'animation-done': expandAnimationDone}" style="">
<div class="title-and-content">
<div class="loading-container loading ng-isolate-scope ng-hide" data-cy="loading-container" review-body-mode="true" ng-show="expanded && !loaded">
<!-- ngIf: !reviewBodyMode -->
<div class="ls-body-container">
<div class="left-margin line-masker"></div>
<div class="ls-body-content">
<!-- ngIf: !reviewBodyMode -->
<div>
<div class="ls-review-title"></div>
<div class="ls-review-content"></div>
<div class="fields-line-1">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-2">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-3">
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-margin-right line-masker"></div>
</div>
</div>
</div>
<div class="right-margin line-masker"></div>
</div>
</div>
<!-- ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div ng-if="reviewTitleRequired && !suggestedTopicsEnabled" class="review-title-container ng-scope" ng-class="{error: showError(baseFields.reviewTitle, 'title')}" data-cy="title-without-topics">
<input class="review-title ng-pristine ng-untouched ng-valid ng-empty" name="review_title" aria-label="Review title" type="text" ng-model="baseFields.reviewTitle" placeholder="Review title" data-cy="title-free-text-input">
</div><!-- end ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div class="review-content-container" ng-class="{error: showError(baseFields.reviewContent, 'content'), 'small-spacing': suggestedTopicsEnabled}">
<!-- ngIf: !suggestedTopicsEnabled --><textarea ng-if="!suggestedTopicsEnabled" rows="4" class="review-content yotpo-textarea ng-pristine ng-untouched ng-valid ng-scope ng-empty" aria-label="Review content" type="text"
ng-model="baseFields.reviewContent" name="review_content" placeholder="* Write your review here!" data-cy="content-without-topics-free-text-input"></textarea><!-- end ngIf: !suggestedTopicsEnabled -->
<!-- ngIf: loaded && suggestedTopicsEnabled -->
<span class="content-error ng-binding" ng-bind="'REVIEW.CONTENT_REQUIRED' | translate">Required</span>
</div>
<!-- ngIf: reviewTitleRequired && suggestedTopicsEnabled -->
<!-- ngIf: showDisplayNameAndEmail -->
<!-- ngIf: showDisplayNameAndEmail -->
</div>
<!-- ngIf: loaded && (imagesEnabled || videosEnabled) && !thankYouMode -->
<div class="custom-fields ng-isolate-scope" data-cy="custom-fields" fields="customFields" allow-show-errors="!cleanForm" value-updated-callback="updateCustomFieldValue(slug, value)">
<div ng-show="fields" class="ng-hide" style="">
<!-- ngRepeat: (slug, field) in fields -->
</div>
</div>
<!-- ngIf: termsAndConditionsUrl --><custom-checkbox ng-if="termsAndConditionsUrl" class="consent-checkbox ng-scope ng-isolate-scope" initial-value="termsAndConditionsCheckboxChecked" on-update="termsAndConditionsCheckboxChanged(checked)"
allow-show-errors="!cleanForm" context="terms-and-conditions" data-cy="terms-and-conditions">
<div class="custom-checkbox-wrapper terms-and-conditions-wrapper">
<input type="checkbox" id="5B5H-terms-and-conditions" class="custom-checkbox-input terms-and-conditions-input ng-empty" ng-class="{error: $ctrl.showError()}" ng-model="$ctrl.checked" ng-change="$ctrl.notifyUpdate()"
data-cy="custom-checkbox-input" style="">
<label class="custom-checkbox-label terms-and-conditions-label" for="5B5H-terms-and-conditions" data-cy="custom-checkbox-option">
<ng-transclude>
<span class="mandatory-mark ng-scope">*</span>
<span ng-bind="'REVIEW.CONSENT_CHECKBOX.I_AGREE' | translate" class="ng-binding ng-scope">I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have
read, understood and accept the</span>
<span
class="ng-scope"><a class="consent-checkbox-link ng-binding" ng-href="https://www.ikea.com/my/en/customer-service/terms-conditions/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.TERMS_AND_CONDITIONS' | translate" data-cy="link" href="https://www.ikea.com/my/en/customer-service/terms-conditions/">[Terms of Use]</a></span><span
class="ng-scope"> and </span><span
class="ng-scope"><a class="consent-checkbox-link ng-binding" href="https://www.ikea.com/my/en/customer-service/privacy-policy/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.PRIVACY_POLICY' | translate" data-cy="link">[Privacy Policy]</a>.</span>
</ng-transclude>
</label>
</div>
</custom-checkbox><!-- end ngIf: termsAndConditionsUrl -->
<!-- ngIf: privacyPolicyUrl -->
<div ng-show="loaded" class="form-field submit-container ng-hide">
<button class="submit-review-button regular-button" name="commit" ng-disabled="mediaInProgressExists()" data-cy="submit-review-button">
<!-- ngIf: !mediaInProgressExists() --><span ng-if="!mediaInProgressExists()" ng-bind="'REVIEW.SUBMIT' | translate" class="ng-binding ng-scope">Submit Review</span><!-- end ngIf: !mediaInProgressExists() -->
<!-- ngIf: mediaInProgressExists() -->
</button>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: (imagesEnabled || videosEnabled) && mediaStandAloneMode && !thankYouMode -->
<!-- ngIf: thankYouMode -->
</form>
<form ng-submit="submitForm(true)" class="ui form ng-pristine ng-valid" ng-class="{ disabled: showReviewBody && isSubmitClicked }" data-cy="review-form">
<!-- ngIf: showReviewBody -->
<div class="review-header ng-scope ng-isolate-scope" ng-if="showReviewBody" star-color="E7721B" star-rating-value="baseFields.reviewScore" show-validation-errors="!cleanForm" show-product-image="showProductImage"
product-image-url="//cdn-yotpo-images-production.yotpo.com/Product/392566782/330569130/thumb.jpg?1659430157" product-name="TJUSIG">
<div class="header-container">
<div ng-show="showProductImage" class="product-img-container" data-cy="product-image-container">
<!-- ngIf: productImageUrl --><img ng-if="productImageUrl" ng-src="//cdn-yotpo-images-production.yotpo.com/Product/392566782/330569130/thumb.jpg?1659430157" class="product-img ng-scope" alt="Product image"
src="//cdn-yotpo-images-production.yotpo.com/Product/392566782/330569130/thumb.jpg?1659430157" style=""><!-- end ngIf: productImageUrl -->
<!-- ngIf: !productImageUrl -->
</div>
<div class="stars-container">
<div class="product-name" style="display: -webkit-box;">
<span ng-bind-html="productName" data-cy="product-name" class="ng-binding">TJUSIG</span>
</div>
<div class="stars">
<ul class="stars ng-isolate-scope" ng-class="{'error': !ratingValue && showError}" rating-value="starRatingValue" show-error="showError(starRatingValue)" data-cy="star-rating">
<!-- ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="1 Star Rating" class="ng-scope" style="">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="2 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="3 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="4 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="5 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
</ul>
<span class="rate-error ng-binding ng-hide" ng-show="showError(starRatingValue)" ng-bind="'REVIEW.RATING_REQUIRED' | translate" style="">Required</span>
</div>
</div>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: showReviewBody -->
<div class="review-body ng-scope collapsed" ng-if="showReviewBody" ng-class="{collapsed: !expanded, loading: expanded && !loaded, 'animation-done': expandAnimationDone}" style="">
<div class="title-and-content">
<div class="loading-container loading ng-isolate-scope ng-hide" data-cy="loading-container" review-body-mode="true" ng-show="expanded && !loaded">
<!-- ngIf: !reviewBodyMode -->
<div class="ls-body-container">
<div class="left-margin line-masker"></div>
<div class="ls-body-content">
<!-- ngIf: !reviewBodyMode -->
<div>
<div class="ls-review-title"></div>
<div class="ls-review-content"></div>
<div class="fields-line-1">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-2">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-3">
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-margin-right line-masker"></div>
</div>
</div>
</div>
<div class="right-margin line-masker"></div>
</div>
</div>
<!-- ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div ng-if="reviewTitleRequired && !suggestedTopicsEnabled" class="review-title-container ng-scope" ng-class="{error: showError(baseFields.reviewTitle, 'title')}" data-cy="title-without-topics">
<input class="review-title ng-pristine ng-untouched ng-valid ng-empty" name="review_title" aria-label="Review title" type="text" ng-model="baseFields.reviewTitle" placeholder="Review title" data-cy="title-free-text-input">
</div><!-- end ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div class="review-content-container" ng-class="{error: showError(baseFields.reviewContent, 'content'), 'small-spacing': suggestedTopicsEnabled}">
<!-- ngIf: !suggestedTopicsEnabled --><textarea ng-if="!suggestedTopicsEnabled" rows="4" class="review-content yotpo-textarea ng-pristine ng-untouched ng-valid ng-scope ng-empty" aria-label="Review content" type="text"
ng-model="baseFields.reviewContent" name="review_content" placeholder="* Write your review here!" data-cy="content-without-topics-free-text-input"></textarea><!-- end ngIf: !suggestedTopicsEnabled -->
<!-- ngIf: loaded && suggestedTopicsEnabled -->
<span class="content-error ng-binding" ng-bind="'REVIEW.CONTENT_REQUIRED' | translate">Required</span>
</div>
<!-- ngIf: reviewTitleRequired && suggestedTopicsEnabled -->
<!-- ngIf: showDisplayNameAndEmail -->
<!-- ngIf: showDisplayNameAndEmail -->
</div>
<!-- ngIf: loaded && (imagesEnabled || videosEnabled) && !thankYouMode -->
<div class="custom-fields ng-isolate-scope" data-cy="custom-fields" fields="customFields" allow-show-errors="!cleanForm" value-updated-callback="updateCustomFieldValue(slug, value)">
<div ng-show="fields" class="ng-hide" style="">
<!-- ngRepeat: (slug, field) in fields -->
</div>
</div>
<!-- ngIf: termsAndConditionsUrl --><custom-checkbox ng-if="termsAndConditionsUrl" class="consent-checkbox ng-scope ng-isolate-scope" initial-value="termsAndConditionsCheckboxChecked" on-update="termsAndConditionsCheckboxChanged(checked)"
allow-show-errors="!cleanForm" context="terms-and-conditions" data-cy="terms-and-conditions">
<div class="custom-checkbox-wrapper terms-and-conditions-wrapper">
<input type="checkbox" id="oRCj-terms-and-conditions" class="custom-checkbox-input terms-and-conditions-input ng-empty" ng-class="{error: $ctrl.showError()}" ng-model="$ctrl.checked" ng-change="$ctrl.notifyUpdate()"
data-cy="custom-checkbox-input" style="">
<label class="custom-checkbox-label terms-and-conditions-label" for="oRCj-terms-and-conditions" data-cy="custom-checkbox-option">
<ng-transclude>
<span class="mandatory-mark ng-scope">*</span>
<span ng-bind="'REVIEW.CONSENT_CHECKBOX.I_AGREE' | translate" class="ng-binding ng-scope">I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have
read, understood and accept the</span>
<span
class="ng-scope"><a class="consent-checkbox-link ng-binding" ng-href="https://www.ikea.com/my/en/customer-service/terms-conditions/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.TERMS_AND_CONDITIONS' | translate" data-cy="link" href="https://www.ikea.com/my/en/customer-service/terms-conditions/">[Terms of Use]</a></span><span
class="ng-scope"> and </span><span
class="ng-scope"><a class="consent-checkbox-link ng-binding" href="https://www.ikea.com/my/en/customer-service/privacy-policy/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.PRIVACY_POLICY' | translate" data-cy="link">[Privacy Policy]</a>.</span>
</ng-transclude>
</label>
</div>
</custom-checkbox><!-- end ngIf: termsAndConditionsUrl -->
<!-- ngIf: privacyPolicyUrl -->
<div ng-show="loaded" class="form-field submit-container ng-hide">
<button class="submit-review-button regular-button" name="commit" ng-disabled="mediaInProgressExists()" data-cy="submit-review-button">
<!-- ngIf: !mediaInProgressExists() --><span ng-if="!mediaInProgressExists()" ng-bind="'REVIEW.SUBMIT' | translate" class="ng-binding ng-scope">Submit Review</span><!-- end ngIf: !mediaInProgressExists() -->
<!-- ngIf: mediaInProgressExists() -->
</button>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: (imagesEnabled || videosEnabled) && mediaStandAloneMode && !thankYouMode -->
<!-- ngIf: thankYouMode -->
</form>
<form ng-submit="submitForm(true)" class="ui form ng-pristine ng-valid" ng-class="{ disabled: showReviewBody && isSubmitClicked }" data-cy="review-form">
<!-- ngIf: showReviewBody -->
<div class="review-header ng-scope ng-isolate-scope" ng-if="showReviewBody" star-color="E7721B" star-rating-value="baseFields.reviewScore" show-validation-errors="!cleanForm" show-product-image="showProductImage"
product-image-url="//cdn-yotpo-images-production.yotpo.com/Product/682570886/573537366/thumb.jpg?1718145361" product-name="SKUGGBRÄKEN">
<div class="header-container">
<div ng-show="showProductImage" class="product-img-container" data-cy="product-image-container">
<!-- ngIf: productImageUrl --><img ng-if="productImageUrl" ng-src="//cdn-yotpo-images-production.yotpo.com/Product/682570886/573537366/thumb.jpg?1718145361" class="product-img ng-scope" alt="Product image"
src="//cdn-yotpo-images-production.yotpo.com/Product/682570886/573537366/thumb.jpg?1718145361" style=""><!-- end ngIf: productImageUrl -->
<!-- ngIf: !productImageUrl -->
</div>
<div class="stars-container">
<div class="product-name" style="display: -webkit-box;">
<span ng-bind-html="productName" data-cy="product-name" class="ng-binding">SKUGGBRÄKEN</span>
</div>
<div class="stars">
<ul class="stars ng-isolate-scope" ng-class="{'error': !ratingValue && showError}" rating-value="starRatingValue" show-error="showError(starRatingValue)" data-cy="star-rating">
<!-- ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="1 Star Rating" class="ng-scope" style="">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="2 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="3 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="4 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="5 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
</ul>
<span class="rate-error ng-binding ng-hide" ng-show="showError(starRatingValue)" ng-bind="'REVIEW.RATING_REQUIRED' | translate" style="">Required</span>
</div>
</div>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: showReviewBody -->
<div class="review-body ng-scope collapsed" ng-if="showReviewBody" ng-class="{collapsed: !expanded, loading: expanded && !loaded, 'animation-done': expandAnimationDone}" style="">
<div class="title-and-content">
<div class="loading-container loading ng-isolate-scope ng-hide" data-cy="loading-container" review-body-mode="true" ng-show="expanded && !loaded">
<!-- ngIf: !reviewBodyMode -->
<div class="ls-body-container">
<div class="left-margin line-masker"></div>
<div class="ls-body-content">
<!-- ngIf: !reviewBodyMode -->
<div>
<div class="ls-review-title"></div>
<div class="ls-review-content"></div>
<div class="fields-line-1">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-2">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-3">
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-margin-right line-masker"></div>
</div>
</div>
</div>
<div class="right-margin line-masker"></div>
</div>
</div>
<!-- ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div ng-if="reviewTitleRequired && !suggestedTopicsEnabled" class="review-title-container ng-scope" ng-class="{error: showError(baseFields.reviewTitle, 'title')}" data-cy="title-without-topics">
<input class="review-title ng-pristine ng-untouched ng-valid ng-empty" name="review_title" aria-label="Review title" type="text" ng-model="baseFields.reviewTitle" placeholder="Review title" data-cy="title-free-text-input">
</div><!-- end ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div class="review-content-container" ng-class="{error: showError(baseFields.reviewContent, 'content'), 'small-spacing': suggestedTopicsEnabled}">
<!-- ngIf: !suggestedTopicsEnabled --><textarea ng-if="!suggestedTopicsEnabled" rows="4" class="review-content yotpo-textarea ng-pristine ng-untouched ng-valid ng-scope ng-empty" aria-label="Review content" type="text"
ng-model="baseFields.reviewContent" name="review_content" placeholder="* Write your review here!" data-cy="content-without-topics-free-text-input"></textarea><!-- end ngIf: !suggestedTopicsEnabled -->
<!-- ngIf: loaded && suggestedTopicsEnabled -->
<span class="content-error ng-binding" ng-bind="'REVIEW.CONTENT_REQUIRED' | translate">Required</span>
</div>
<!-- ngIf: reviewTitleRequired && suggestedTopicsEnabled -->
<!-- ngIf: showDisplayNameAndEmail -->
<!-- ngIf: showDisplayNameAndEmail -->
</div>
<!-- ngIf: loaded && (imagesEnabled || videosEnabled) && !thankYouMode -->
<div class="custom-fields ng-isolate-scope" data-cy="custom-fields" fields="customFields" allow-show-errors="!cleanForm" value-updated-callback="updateCustomFieldValue(slug, value)">
<div ng-show="fields" class="ng-hide" style="">
<!-- ngRepeat: (slug, field) in fields -->
</div>
</div>
<!-- ngIf: termsAndConditionsUrl --><custom-checkbox ng-if="termsAndConditionsUrl" class="consent-checkbox ng-scope ng-isolate-scope" initial-value="termsAndConditionsCheckboxChecked" on-update="termsAndConditionsCheckboxChanged(checked)"
allow-show-errors="!cleanForm" context="terms-and-conditions" data-cy="terms-and-conditions">
<div class="custom-checkbox-wrapper terms-and-conditions-wrapper">
<input type="checkbox" id="YCOa-terms-and-conditions" class="custom-checkbox-input terms-and-conditions-input ng-empty" ng-class="{error: $ctrl.showError()}" ng-model="$ctrl.checked" ng-change="$ctrl.notifyUpdate()"
data-cy="custom-checkbox-input" style="">
<label class="custom-checkbox-label terms-and-conditions-label" for="YCOa-terms-and-conditions" data-cy="custom-checkbox-option">
<ng-transclude>
<span class="mandatory-mark ng-scope">*</span>
<span ng-bind="'REVIEW.CONSENT_CHECKBOX.I_AGREE' | translate" class="ng-binding ng-scope">I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have
read, understood and accept the</span>
<span
class="ng-scope"><a class="consent-checkbox-link ng-binding" ng-href="https://www.ikea.com/my/en/customer-service/terms-conditions/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.TERMS_AND_CONDITIONS' | translate" data-cy="link" href="https://www.ikea.com/my/en/customer-service/terms-conditions/">[Terms of Use]</a></span><span
class="ng-scope"> and </span><span
class="ng-scope"><a class="consent-checkbox-link ng-binding" href="https://www.ikea.com/my/en/customer-service/privacy-policy/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.PRIVACY_POLICY' | translate" data-cy="link">[Privacy Policy]</a>.</span>
</ng-transclude>
</label>
</div>
</custom-checkbox><!-- end ngIf: termsAndConditionsUrl -->
<!-- ngIf: privacyPolicyUrl -->
<div ng-show="loaded" class="form-field submit-container ng-hide">
<button class="submit-review-button regular-button" name="commit" ng-disabled="mediaInProgressExists()" data-cy="submit-review-button">
<!-- ngIf: !mediaInProgressExists() --><span ng-if="!mediaInProgressExists()" ng-bind="'REVIEW.SUBMIT' | translate" class="ng-binding ng-scope">Submit Review</span><!-- end ngIf: !mediaInProgressExists() -->
<!-- ngIf: mediaInProgressExists() -->
</button>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: (imagesEnabled || videosEnabled) && mediaStandAloneMode && !thankYouMode -->
<!-- ngIf: thankYouMode -->
</form>
<form ng-submit="submitForm(true)" class="ui form ng-pristine ng-valid" ng-class="{ disabled: showReviewBody && isSubmitClicked }" data-cy="review-form">
<!-- ngIf: showReviewBody -->
<div class="review-header ng-scope ng-isolate-scope" ng-if="showReviewBody" star-color="E7721B" star-rating-value="baseFields.reviewScore" show-validation-errors="!cleanForm" show-product-image="showProductImage"
product-image-url="//cdn-yotpo-images-production.yotpo.com/Product/698847120/586819342/thumb.jpg?1721256586" product-name="AROMATISK">
<div class="header-container">
<div ng-show="showProductImage" class="product-img-container" data-cy="product-image-container">
<!-- ngIf: productImageUrl --><img ng-if="productImageUrl" ng-src="//cdn-yotpo-images-production.yotpo.com/Product/698847120/586819342/thumb.jpg?1721256586" class="product-img ng-scope" alt="Product image"
src="//cdn-yotpo-images-production.yotpo.com/Product/698847120/586819342/thumb.jpg?1721256586" style=""><!-- end ngIf: productImageUrl -->
<!-- ngIf: !productImageUrl -->
</div>
<div class="stars-container">
<div class="product-name" style="display: -webkit-box;">
<span ng-bind-html="productName" data-cy="product-name" class="ng-binding">AROMATISK</span>
</div>
<div class="stars">
<ul class="stars ng-isolate-scope" ng-class="{'error': !ratingValue && showError}" rating-value="starRatingValue" show-error="showError(starRatingValue)" data-cy="star-rating">
<!-- ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="1 Star Rating" class="ng-scope" style="">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="2 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="3 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="4 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="5 Star Rating" class="ng-scope">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/filled-star.png" ng-show="ratingValue && index <= ratingValue" width="33" class="ng-hide">
<img src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/empty-star.png" ng-show="(ratingValue && index > ratingValue) || (!ratingValue && !showError)" width="33" class="">
<img ng-show="showError && !ratingValue" src="https://yotpo-stool.s3.amazonaws.com/images/ikea/MY/error-star.png" width="33" class="ng-hide">
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
</ul>
<span class="rate-error ng-binding ng-hide" ng-show="showError(starRatingValue)" ng-bind="'REVIEW.RATING_REQUIRED' | translate" style="">Required</span>
</div>
</div>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: showReviewBody -->
<div class="review-body ng-scope collapsed" ng-if="showReviewBody" ng-class="{collapsed: !expanded, loading: expanded && !loaded, 'animation-done': expandAnimationDone}" style="">
<div class="title-and-content">
<div class="loading-container loading ng-isolate-scope ng-hide" data-cy="loading-container" review-body-mode="true" ng-show="expanded && !loaded">
<!-- ngIf: !reviewBodyMode -->
<div class="ls-body-container">
<div class="left-margin line-masker"></div>
<div class="ls-body-content">
<!-- ngIf: !reviewBodyMode -->
<div>
<div class="ls-review-title"></div>
<div class="ls-review-content"></div>
<div class="fields-line-1">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-2">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-3">
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-margin-right line-masker"></div>
</div>
</div>
</div>
<div class="right-margin line-masker"></div>
</div>
</div>
<!-- ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div ng-if="reviewTitleRequired && !suggestedTopicsEnabled" class="review-title-container ng-scope" ng-class="{error: showError(baseFields.reviewTitle, 'title')}" data-cy="title-without-topics">
<input class="review-title ng-pristine ng-untouched ng-valid ng-empty" name="review_title" aria-label="Review title" type="text" ng-model="baseFields.reviewTitle" placeholder="Review title" data-cy="title-free-text-input">
</div><!-- end ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div class="review-content-container" ng-class="{error: showError(baseFields.reviewContent, 'content'), 'small-spacing': suggestedTopicsEnabled}">
<!-- ngIf: !suggestedTopicsEnabled --><textarea ng-if="!suggestedTopicsEnabled" rows="4" class="review-content yotpo-textarea ng-pristine ng-untouched ng-valid ng-scope ng-empty" aria-label="Review content" type="text"
ng-model="baseFields.reviewContent" name="review_content" placeholder="* Write your review here!" data-cy="content-without-topics-free-text-input"></textarea><!-- end ngIf: !suggestedTopicsEnabled -->
<!-- ngIf: loaded && suggestedTopicsEnabled -->
<span class="content-error ng-binding" ng-bind="'REVIEW.CONTENT_REQUIRED' | translate">Required</span>
</div>
<!-- ngIf: reviewTitleRequired && suggestedTopicsEnabled -->
<!-- ngIf: showDisplayNameAndEmail -->
<!-- ngIf: showDisplayNameAndEmail -->
</div>
<!-- ngIf: loaded && (imagesEnabled || videosEnabled) && !thankYouMode -->
<div class="custom-fields ng-isolate-scope" data-cy="custom-fields" fields="customFields" allow-show-errors="!cleanForm" value-updated-callback="updateCustomFieldValue(slug, value)">
<div ng-show="fields" class="ng-hide" style="">
<!-- ngRepeat: (slug, field) in fields -->
</div>
</div>
<!-- ngIf: termsAndConditionsUrl --><custom-checkbox ng-if="termsAndConditionsUrl" class="consent-checkbox ng-scope ng-isolate-scope" initial-value="termsAndConditionsCheckboxChecked" on-update="termsAndConditionsCheckboxChanged(checked)"
allow-show-errors="!cleanForm" context="terms-and-conditions" data-cy="terms-and-conditions">
<div class="custom-checkbox-wrapper terms-and-conditions-wrapper">
<input type="checkbox" id="kBwv-terms-and-conditions" class="custom-checkbox-input terms-and-conditions-input ng-empty" ng-class="{error: $ctrl.showError()}" ng-model="$ctrl.checked" ng-change="$ctrl.notifyUpdate()"
data-cy="custom-checkbox-input" style="">
<label class="custom-checkbox-label terms-and-conditions-label" for="kBwv-terms-and-conditions" data-cy="custom-checkbox-option">
<ng-transclude>
<span class="mandatory-mark ng-scope">*</span>
<span ng-bind="'REVIEW.CONSENT_CHECKBOX.I_AGREE' | translate" class="ng-binding ng-scope">I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have
read, understood and accept the</span>
<span
class="ng-scope"><a class="consent-checkbox-link ng-binding" ng-href="https://www.ikea.com/my/en/customer-service/terms-conditions/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.TERMS_AND_CONDITIONS' | translate" data-cy="link" href="https://www.ikea.com/my/en/customer-service/terms-conditions/">[Terms of Use]</a></span><span
class="ng-scope"> and </span><span
class="ng-scope"><a class="consent-checkbox-link ng-binding" href="https://www.ikea.com/my/en/customer-service/privacy-policy/" target="_blank" ng-bind="'REVIEW.CONSENT_CHECKBOX.PRIVACY_POLICY' | translate" data-cy="link">[Privacy Policy]</a>.</span>
</ng-transclude>
</label>
</div>
</custom-checkbox><!-- end ngIf: termsAndConditionsUrl -->
<!-- ngIf: privacyPolicyUrl -->
<div ng-show="loaded" class="form-field submit-container ng-hide">
<button class="submit-review-button regular-button" name="commit" ng-disabled="mediaInProgressExists()" data-cy="submit-review-button">
<!-- ngIf: !mediaInProgressExists() --><span ng-if="!mediaInProgressExists()" ng-bind="'REVIEW.SUBMIT' | translate" class="ng-binding ng-scope">Submit Review</span><!-- end ngIf: !mediaInProgressExists() -->
<!-- ngIf: mediaInProgressExists() -->
</button>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: (imagesEnabled || videosEnabled) && mediaStandAloneMode && !thankYouMode -->
<!-- ngIf: thankYouMode -->
</form>
Text Content
PRODUCTS TO REVIEW RÅGBLOMMA * * * * * Required Required Recommendation rate * Would you recommend this product to a friend? Yes No Value for money * How do you rate the value for money? Click here to rate Product quality * How do you rate the product quality? Click here to rate Appearance * How do you rate the product appearance? Click here to rate Ease of assembly/installation * How do you rate the ease of assembly/installation? Click here to rate Works as expected * Rate whether the product works as you expected: Click here to rate * I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have read, understood and accept the [Terms of Use] and [Privacy Policy]. Submit Review RÅGBLOMMA * * * * * Required Required * I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have read, understood and accept the [Terms of Use] and [Privacy Policy]. Submit Review TINGBY * * * * * Required Required * I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have read, understood and accept the [Terms of Use] and [Privacy Policy]. Submit Review GRUBBAN * * * * * Required Required * I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have read, understood and accept the [Terms of Use] and [Privacy Policy]. Submit Review OLIVBLAD * * * * * Required Required * I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have read, understood and accept the [Terms of Use] and [Privacy Policy]. Submit Review OLIVBLAD * * * * * Required Required * I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have read, understood and accept the [Terms of Use] and [Privacy Policy]. Submit Review BEKRÄFTA * * * * * Required Required * I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have read, understood and accept the [Terms of Use] and [Privacy Policy]. Submit Review TJUSIG * * * * * Required Required * I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have read, understood and accept the [Terms of Use] and [Privacy Policy]. Submit Review SKUGGBRÄKEN * * * * * Required Required * I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have read, understood and accept the [Terms of Use] and [Privacy Policy]. Submit Review AROMATISK * * * * * Required Required * I consent to the collection, storage, use and disclosure of my personal data by Ikano Handel Sdn. Bhd., to publish my rating and review. I have read, understood and accept the [Terms of Use] and [Privacy Policy]. Submit Review