All files / app/pages/interests-page interests-page.component.html

100% Statements 175/175
100% Branches 2/2
100% Functions 1/1
100% Lines 175/175

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 1761x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
<grt-header-element
	[showReqCall]="false"
	[showTrips]="true"
	[indexPage]="false"
	[showCustReview]="true"
	[showContactUs]="true"
></grt-header-element>
<div class="interests">
	<div class="inner is-smaller margin100">
		<div class="hide-mobile">
			<grt-progress-bar (moveWizardToStep)="moveWizardToStep($event)" [stage]="2"></grt-progress-bar>
		</div>
		<div class="hide-tablet hide-desktop">
			<grt-progress-bar-mobile (moveWizardToStep)="moveWizardToStep($event)" [stage]="2"></grt-progress-bar-mobile>
		</div>
		<a (click)="back()" class="link-back pointer m-t-20">Back</a>
		<h1 class="left h-main m-t-10">Interests</h1>
		<h6 class="left">Which activities would you like us to include in your trip?</h6>
		<p class="left">*Select max. 7 items, you can write us about other special wishes below.</p>
		<grt-line-element></grt-line-element>
		<div class="activities">
			@for (section of sections; track section) {
				<div class="activities-items view-5">
					<h6 class="left">{{ section }}</h6>
					@for (int of interestsForSection(section); track int; let i = $index) {
						<div
							[ngClass]="{
								'activities-items-item': true,
								'view-active': active(int.id),
							}"
							(click)="toogleInterest(int.id)"
							class="custom-interest"
						>
							<img
								loading="lazy"
								class="pointer"
								src="{{ int.attributes['image-url'] }}"
								width="100px"
								height="100px"
								alt="{{ altTexts[0] }}"
							/>
							<p class="center">
								{{ int.attributes.name }}
							</p>
						</div>
					}
				</div>
			}
		</div>
 
		<hr class="hr" />
		<h6 class="left" [class.texterror]="servicesError">In which stage of trip planning are you?</h6>
		<div class="m-b-30">
			<label class="label">
				I'm committed to traveling - just working out the details
				<input name="services" type="radio" value="going" (click)="setService('going')" [ngModel]="services" />
				<span class="checkmark"></span>
			</label>
			<label class="label">
				I'm gathering information and still deciding whether to go.
				<input name="services" type="radio" value="info" (click)="setService('info')" [ngModel]="services" />
				<span class="checkmark"></span>
			</label>
			<label class="label">
				I'm dreaming about this trip, but not ready to go
				<input name="services" type="radio" value="dream" (click)="setService('dream')" [ngModel]="services" />
				<span class="checkmark"></span>
			</label>
			@if (servicesError) {
				<div class="text-danger mt-1">Please select a valid option.</div>
			}
		</div>
		<hr class="hr" />
		<h6 class="left" [class.texterror]="budgetValueError">What's your per-person budget for the trip?</h6>
		<div class="m-b-30">
			<p>
				We'll use your budget to guide future recommendations. Your first itinerary version is based on your trip
				preferences, so it may not match exactly — but it's easy to adjust!
			</p>
			<p>
				<span class="fw-600">Included:</span> Accommodation, transportation (transfers, trains, etc.), guided tours &
				activities
			</p>
			<p><span class="fw-600">Not Included:</span> Flights, trip insurance, and meals (breakfast may be included)</p>
			<div class="m-t-30">
				<ngx-slider [(value)]="budgetValue" [options]="options" (click)="sliderEvent()"></ngx-slider>
			</div>
			@if (budgetValueError) {
				<div class="text-danger mt-1">Please select a valid value.</div>
			}
		</div>
		<hr class="hr" />
		<h6 class="left" [class.texterror]="budgetImportanceError">What's most important to you?</h6>
		<div class="m-b-30">
			<label class="label">
				Staying within my budget
				<input
					name="budgetImportance"
					type="radio"
					value="within"
					(click)="setBudgetImportance('within')"
					[ngModel]="budgetImportance"
				/>
				<span class="checkmark"></span>
			</label>
			<label class="label">
				I can stretch my budget for right trip
				<input
					name="budgetImportance"
					type="radio"
					value="stretch"
					(click)="setBudgetImportance('stretch')"
					[ngModel]="budgetImportance"
				/>
				<span class="checkmark"></span>
			</label>
			<label class="label">
				Taking my ideal trip
				<input
					name="budgetImportance"
					type="radio"
					value="ideal"
					(click)="setBudgetImportance('ideal')"
					[ngModel]="budgetImportance"
				/>
				<span class="checkmark"></span>
			</label>
			@if (budgetImportanceError) {
				<div class="text-danger mt-1">Please select a valid option.</div>
			}
		</div>
		<hr class="hr" />
		<h6 class="left">
			Do you have any special wishes we should know about or are you celebrating any special occasion during this trip?
		</h6>
		<textarea
			[(ngModel)]="comment"
			class="m-b-160"
			name="story"
			rows="5"
			cols="33"
			placeholder="Tell us about your special wishes"
		></textarea>
 
		<div class="sum-fixed is-smaller">
			<div class="summary inner is-smaller top-bordered">
				<div class="summary-cols">
					<div class="summary-cols-left">
						<p class="summary-cols-left-text left">Your itinerary includes:</p>
						<p class="summary-cols-left-text left bold max-100-px-overflow">
							{{ addedCitiesNamesBottom }}
						</p>
					</div>
				</div>
				<div class="summary-cols-right">
					<a (click)="nextStep()">
						<button class="btn btn-green form__submit uppercase">continue</button>
					</a>
				</div>
			</div>
		</div>
	</div>
</div>
 
<div class="popup-back">
	<div [ngClass]="{ 'popup popup-max': true, 'is-active': max_interests }">
		<div class="inner">
			<a class="popup-close" (click)="closePopup()">×</a>
			<h3 class="popup-title center">Select up to 7 interests to personalize your travel experience.</h3>
			<a class="popup-close-btn">
				<button class="btn btn-green uppercase btn-wide" (click)="closePopup()">close</button>
			</a>
		</div>
	</div>
</div>