Configurable

An error occurred while processing the template.
The following has evaluated to null or missing:
==> response.data.docs.getJSONObject(0)  [in template "1315478#1315513#2355066" at line 32, column 24]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign doc = response.data.docs.getJ...  [in template "1315478#1315513#2355066" at line 32, column 9]
----
1<#import "_TEMPLATE_CONTEXT_/1315478/1331017/23609/1656602" as d40> 
2 
3<#setting url_escaping_charset="UTF-8"> 
4 
5<#assign 
6    DLFLS = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFolderLocalService") 
7    DLFELS = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") 
8    SRLS = serviceLocator.findService("eu.suggesto.servicecs.service.SuggestoRecommenderLocalService") 
9    PUTIL = objectUtil("com.liferay.portal.kernel.util.PortalUtil") 
10 
11    id = themeDisplay.getURLCurrent()?keep_after("id=") 
12    langId = locale?keep_before("_") 
13    contentType = "alloggi" 
14    vueActions = "" 
15    doc = "" 
16 
17    yucca_folder_id = 1745320 
18     
19    folders = DLFLS.getFolders(groupId, yucca_folder_id) 
20    images = [] 
21    rawImages = [] 
22    header_images = [] 
23/> 
24 
25<#assign currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() /> 
26<#assign z=request.setAttribute("ogUrl","${currentUrl}")> 
27 
28<#if id?has_content> 
29    <#assign response = d40.fetchData("https://api-visitcuneese.d40.it/v1/search_accommodation/?uuid=${id}")> 
30     
31    <#if !response.error && response.data.docs?has_content> 
32        <#assign doc = response.data.docs.getJSONObject(0)> 
33         
34        ${request.session.removeAttribute("circularCategories")} 
35        ${request.session.setAttribute("circularCategories", doc.assetCategoryIds)} 
36    </#if> 
37</#if> 
38 
39<#if doc?has_content> 
40    <#if doc.denominazione?? && doc.denominazione?has_content> 
41        ${PUTIL.setPageTitle(doc.denominazione, request)} 
42    </#if> 
43 
44    <#if doc.latitudine?has_content && doc.longitudine?has_content> 
45        <#assign 
46            hasCoords = true 
47            lat = doc.latitudine 
48            lng = doc.longitudine 
49            vueActions = "getFavorites();buildMap(${lat}, ${lng})" 
50        /> 
51    </#if> 
52</#if> 
53 
54<#if id?has_content> 
55    <#list folders as folder> 
56        <#if folder.name?contains(id)> 
57            <#list DLFELS.getFileEntries(groupId, folder.folderId) as image> 
58                <#if image.fileName?lower_case?contains(image.extension)> 
59                    <#assign 
60                        images += ["/documents/${image.groupId}/${image.folderId}/${image.fileName}"] 
61                        rawImages += [image] 
62                    /> 
63                </#if> 
64            </#list> 
65        </#if> 
66    </#list> 
67</#if> 
68 
69<#list images as img> 
70    <#if img?contains("header")> 
71        <#assign header_images += [img]> 
72    </#if> 
73</#list> 
74 
75<section id="${d40.portletNamespace}" class="tw:font-text" v-cloak> 
76    <#if doc?has_content> 
77        <div class="container-fluid custom-container"> 
78            <div v-if="detail != null" class="row"> 
79                <div v-show="loading" class="col-12 tw:text-center"> 
80                    <div class="loading-animation"></div> 
81                </div> 
82                <div v-show="!loading" class="col-12"> 
83                    <section id="breadcrumb" class="tw:font-heading tw:text-base tw:mt-4 <lg:tw:hidden"> 
84                        <div class="container tw:flex tw:flex-row tw:justify-between"> 
85                            <ol class="breadcrumb tw-space-x-2"> 
86                                <li class="breadcrumb-item"> 
87                                    <a href="/" class="breadcrumb-link" title="Home"> 
88                                        <span class="breadcrumb-text-truncate tw:text-dark tw:uppercase">Home</span> 
89                                    </a> 
90                                </li> 
91                                 
92                                <#list themeDisplay.getLayout().getAncestors()?reverse as ancestor> 
93                                    <li class="breadcrumb-item"> 
94                                        <a href="${ancestor.getFriendlyURL()}" class="breadcrumb-link" title="${d40.escape(ancestor.getHTMLTitle(themeDisplay.getLocale()))}"> 
95                                            <span class="breadcrumb-text-truncate tw:text-dark tw:uppercase">${d40.escape(ancestor.getHTMLTitle(themeDisplay.getLocale()))}</span> 
96                                        </a> 
97                                    </li> 
98                                </#list> 
99                                 
100                                <li class="breadcrumb-item active"> 
101                                    <span class="tw:text-green tw:uppercase" :title="sanitize(detail.denominazione)"> 
102                                        {{ sanitize(detail.denominazione) }} 
103                                    </span> 
104                                </li> 
105                            </ol> 
106                             
107                            <div class="tw:flex tw:align-center"> 
108                                <button type="button" @click="isFavorite(item.id) ? removeFavorite(item.id) : setYuccaFavorite(item, item.id);" class="btn btn-link tw:no-underline" :title="isFavorite(item.id) ? `${d40.getLabel('rimuovi_preferiti', groupId)}` : `${d40.getLabel('aggiungi_preferiti', groupId)}`"> 
109                                    <i :class="(isFavorite(item.id) ? 'fas' : 'fal') + ' fa-heart fa-2x tw:text-green'"></i> 
110                                </button> 
111                                 
112                                <div class="btn dropdown tw:px-0"> 
113                                    <button type="button" class="btn btn-link dropdown-toggle tw:no-underline tw:text-green" data-toggle="dropdown"> 
114                                        <i class="fas fa-share-alt fa-2x"></i> 
115                                    </button> 
116                                    <div class="dropdown-menu dropdown-menu-center"> 
117                                        <button type="button" @click="customShare('facebook', item.denominazione, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 
118                                            <i class="fab fa-facebook-f fa-lg tw:text-green"></i> 
119                                            <span class="tw:text-dark"> 
120                                                Facebook 
121                                            </span> 
122                                        </button> 
123                                         
124                                        <button type="button" @click="customShare('twitter', item.denominazione, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 
125                                            <i class="fab fa-twitter fa-lg tw:text-green"></i> 
126                                            <span class="tw:text-dark"> 
127                                                Twitter 
128                                            </span> 
129                                        </button> 
130                                         
131                                        <button type="button" @click="customShare('pinterest', item.denominazione, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 
132                                            <i class="fab fa-pinterest fa-lg tw:text-green"></i> 
133                                            <span class="tw:text-dark"> 
134                                                Pinterest 
135                                            </span> 
136                                        </button> 
137                                         
138                                        <button type="button" @click="customShare('whatsapp', item.denominazione, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 
139                                            <i class="fab fa-whatsapp fa-lg tw:text-green"></i> 
140                                            <span class="tw:text-dark"> 
141                                                WhatsApp 
142                                            </span> 
143                                        </button> 
144                                         
145                                        <button type="button" @click="customShare('telegram', item.denominazione, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 
146                                            <i class="fab fa-telegram fa-lg tw:text-green"></i> 
147                                            <span class="tw:text-dark"> 
148                                                Telegram 
149                                            </span> 
150                                        </button> 
151                                         
152                                        <button type="button" @click="customShare('print', item.denominazione, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 
153                                            <i class="fas fa-print fa-lg tw:text-green"></i> 
154                                            <span class="tw:text-dark"> 
155                                                Print 
156                                            </span> 
157                                        </button> 
158                                         
159                                        <a :href="'mailto:inserisci indirizzo email?subject=' + item.denominazione + '&body=${d40.currentUrl} ' + item.contentJSON.description" class="dropdown-item tw:space-x-2"> 
160                                            <i class="fas fa-envelope fa-lg tw:text-green"></i> 
161                                            <span class="tw:text-dark"> 
162                                                Email 
163                                            </span> 
164                                        </a> 
165                                         
166                                        <button type="button" @click="customShare('link', item.denominazione, item.contentJSON.description, item.contentJSON.previewPicture)" class="dropdown-item tw:space-x-2"> 
167                                            <i class="fas fa-link fa-lg tw:text-green"></i> 
168                                            <span class="tw:text-dark"> 
169                                                Link 
170                                            </span> 
171                                        </button> 
172                                    </div> 
173                                </div> 
174                            </div> 
175                        </div> 
176                    </section> 
177                     
178                    <#if d40.isDev> 
179                        <div class="container"> 
180                            <@debug /> 
181                        </div> 
182                    </#if> 
183                     
184                    <section id="intro-description" class="tw:font-text tw:mt-5"> 
185                        <div class="container tw:flex tw:flex-row tw:space-x-2 tw:justify-between tw:border-t-2 tw:border-gray-50"> 
186                            <div class="tw:mt-10"> 
187                                <p class="tw:text-green tw:font-heading tw:font-extrabold tw:text-2xl tw:uppercase lg:tw:text-4xl"> 
188                                    {{ sanitize(detail.denominazione) }} 
189                                </p> 
190                                <p class="tw:text-dark tw:font-heading tw:font-light tw:text-2xl tw:uppercase lg:tw:text-4xl"> 
191                                    {{ sanitize(detail.qualifica) }} 
192                                     
193                                    <span v-if="detail.stelle != ''" class="ml-3"> 
194                                        <i v-for="i in detail.stelle" class="fas fa-star fa-sm"></i> 
195                                    </span> 
196                                </p> 
197                            </div> 
198                            <div class="tw:flex tw:mt-9 lg:tw:hidden"> 
199                                <button type="button" @click="isFavorite(item.id) ? removeFavorite(item.id) : setYuccaFavorite(item, item.id);" class="btn btn-link tw:no-underline" :title="isFavorite(item.id) ? `${d40.getLabel('rimuovi_preferiti', groupId)}` : `${d40.getLabel('aggiungi_preferiti', groupId)}`"> 
200                                    <i :class="(isFavorite(item.id) ? 'fas' : 'fal') + ' fa-heart fa-lg tw:text-green'"></i> 
201                                </button> 
202                                <button type="button" @click="share()" class="btn btn-link tw:no-underline"> 
203                                    <i class="fas fa-share-alt fa-lg tw:text-green"></i> 
204                                </button> 
205                            </div> 
206                        </div> 
207                         
208                        <#-- CONTATTI --> 
209                        <div class="tw:font-text tw:mt-20"> 
210                            <div class="container"> 
211                                <div class="row tw:space-y-6 tw:mt-5 lg:tw:space-y-0"> 
212                                    <div class="col-12 col-lg-8"> 
213                                        <#if (header_images?size > 0)> 
214                                            <div class="aspect-ratio aspect-ratio-16-to-9 tw:rounded-md tw:shadow-2xl"> 
215                                                <img data-src="${d40.getPrefix(header_images[0], 1280, 720)}" loading="lazy" :alt="sanitize(detail.denominazione)" class="lazyload aspect-ratio-item-fluid tw:object-cover tw:w-full tw:h-full"> 
216                                            </div> 
217                                        </#if> 
218                                    </div> 
219                                    <div class="col-12 col-lg-4"> 
220                                        <div class="card hcm-bg-capable tw:bg-green tw:rounded-md tw:border-none tw:shadow-2xl tw:h-full tw:p-4 tw:mb-0"> 
221                                            <p class="tw:text-white tw:font-heading tw:font-bold tw:text-xl tw:uppercase lg:tw:text-2xl">${d40.getLabel("contatti")}</p> 
222                                            <div class="tw:divide-y-2 tw:divide-gray-50 tw:mt-8 lg:tw:mt-10"> 
223                                                <p class="tw:text-white"> 
224                                                    {{ sanitize(detail.indirizzo) }} {{ sanitize(detail.comune) }}, {{ detail.provincia }} 
225                                                </p> 
226                                                     
227                                                <div class="tw:space-y-4 tw:mt-4 tw:pt-4"> 
228                                                    <div v-if="detail.pubblicato!=false" class="card-row tw:space-x-4"> 
229                                                        <div class="autofit-col"> 
230                                                            <i class="fas fa-arrow-circle-right fa-2x tw:text-white"></i> 
231                                                        </div> 
232                                                        <div class="autofit-col autofit-col-expand"> 
233                                                            <div class="autofit-section"> 
234                                                                <a :href="'tel:' + detail.telefono" class="tw:text-white tw:underline d-lg-none"> 
235                                                                    {{ detail.telefono }} 
236                                                                </a> 
237                                                                <div class="tw:text-white d-none d-lg-block"> 
238                                                                    {{ detail.telefono }} 
239                                                                </div> 
240                                                            </div> 
241                                                        </div> 
242                                                    </div> 
243                                                    <div v-if="detail.email !== null && detail.pubblicato!=false" class="card-row tw:space-x-4"> 
244                                                        <div class="autofit-col"> 
245                                                            <i class="fas fa-arrow-circle-right fa-2x tw:text-white"></i> 
246                                                        </div> 
247                                                        <div class="autofit-col autofit-col-expand"> 
248                                                            <div class="autofit-section"> 
249                                                                <a :href="'mailto:' + sanitize(detail.email)" class="tw:text-white tw:underline"> 
250                                                                    {{ sanitize(detail.email) }} 
251                                                                </a> 
252                                                            </div> 
253                                                        </div> 
254                                                    </div> 
255                                                    <div v-if="detail.www !== null" class="card-row tw:space-x-4"> 
256                                                        <div class="autofit-col"> 
257                                                            <i class="fas fa-arrow-circle-right fa-2x tw:text-white"></i> 
258                                                        </div> 
259                                                        <div class="autofit-col autofit-col-expand"> 
260                                                            <div class="autofit-section"> 
261                                                                <a :href="fixProtocol(detail.www)" class="tw:text-white tw:underline" target="_blank"> 
262                                                                    {{ fixProtocol(detail.www) }} 
263                                                                </a> 
264                                                            </div> 
265                                                        </div> 
266                                                    </div> 
267                                                </div> 
268                                            </div> 
269                                        </div> 
270                                    </div> 
271                                </div> 
272                            </div> 
273                        </div> 
274                    </section> 
275                     
276                    <#-- SERVIZI--> 
277                    <section id="itinerary-detail" class="tw:font-text tw:mt-20"> 
278                        <div class="container"> 
279                            <div class="tw:mt-10"> 
280                                <p class="tw:inline tw:align-middle tw:text-dark tw:font-heading tw:font-light tw:text-2xl tw:uppercase lg:tw:text-4xl"> 
281                                    ${d40.getLabel("cosa_ti")} 
282                                    <span class="tw:text-dark tw:font-heading tw:font-extrabold tw:text-2xl tw:uppercase lg:tw:text-4xl">${d40.getLabel("proponiamo")}</span> 
283                                </p> 
284                            </div> 
285                             
286                            <div class="card hcm-bg-capable tw:relative tw:bg-green tw:border-0 tw:rounded-md tw:shadow-2xl tw:mt-10 tw:z-10"> 
287                                <div class="card-body"> 
288                                    <div class="container"> 
289                                        <div class="row"> 
290                                         
291                                            <#-- Accessibilità --> 
292                                            <div v-if="detail.disabili != null" class="col-12 col-lg-6"> 
293                                                <div class="card-row tw:space-x-4 tw:mb-10"> 
294                                                    <div class="autofit-col"> 
295                                                        <div class="autofit-section"> 
296                                                            <div class="sticker sticker-circle sticker-lg tw:border-2 border-white"> 
297                                                                <i class="far fa-wheelchair fa-lg tw:text-white"></i> 
298                                                            </div> 
299                                                        </div> 
300                                                    </div> 
301                                                    <div class="autofit-col autofit-col-expand"> 
302                                                        <div class="autofit-section"> 
303                                                            <p class="tw:text-white tw:font-bold"> 
304                                                                ${d40.getLabel("struttura_accessibile")}: {{ detail.disabili ? "${d40.getLabel('si')}" : "No" }} 
305                                                            </p> 
306                                                        </div> 
307                                                    </div> 
308                                                </div> 
309                                            </div> 
310                                         
311                                            <#-- Colazione --> 
312                                            <div v-if="detail.colazione != null" class="col-12 col-lg-6"> 
313                                                <div class="card-row tw:space-x-4 tw:mb-10"> 
314                                                    <div class="autofit-col"> 
315                                                        <div class="autofit-section"> 
316                                                            <div class="sticker sticker-circle sticker-lg tw:border-2 border-white"> 
317                                                                <i class="far fa-check fa-lg tw:text-white"></i> 
318                                                            </div> 
319                                                        </div> 
320                                                    </div> 
321                                                    <div class="autofit-col autofit-col-expand"> 
322                                                        <div class="autofit-section"> 
323                                                            <p class="tw:text-white">{{ detail.colazione }}</p> 
324                                                        </div> 
325                                                    </div> 
326                                                </div> 
327                                            </div> 
328                                         
329                                            <#-- Natura --> 
330                                            <div v-if="detail.natura != null" class="col-12 col-lg-6"> 
331                                                <div class="card-row tw:space-x-4 tw:mb-10"> 
332                                                    <div class="autofit-col"> 
333                                                        <div class="autofit-section"> 
334                                                            <div class="sticker sticker-circle sticker-lg tw:border-2 border-white"> 
335                                                                <i class="far fa-check fa-lg tw:text-white"></i> 
336                                                            </div> 
337                                                        </div> 
338                                                    </div> 
339                                                    <div class="autofit-col autofit-col-expand"> 
340                                                        <div class="autofit-section"> 
341                                                            <p class="tw:text-white">{{ detail.natura }}</p> 
342                                                        </div> 
343                                                    </div> 
344                                                </div> 
345                                            </div> 
346                                         
347                                            <#-- Ospitalità --> 
348                                            <div v-if="detail.ospitalita != null" class="col-12 col-lg-6"> 
349                                                <div class="card-row tw:space-x-4 tw:mb-10"> 
350                                                    <div class="autofit-col"> 
351                                                        <div class="autofit-section"> 
352                                                            <div class="sticker sticker-circle sticker-lg tw:border-2 border-white"> 
353                                                                <i class="far fa-check fa-lg tw:text-white"></i> 
354                                                            </div> 
355                                                        </div> 
356                                                    </div> 
357                                                    <div class="autofit-col autofit-col-expand"> 
358                                                        <div class="autofit-section"> 
359                                                            <p class="tw:text-white">{{ detail.ospitalita }}</p> 
360                                                        </div> 
361                                                    </div> 
362                                                </div> 
363                                            </div> 
364                                         
365                                            <#-- Sport --> 
366                                            <div v-if="detail.sport != null" class="col-12 col-lg-6"> 
367                                                <div class="card-row tw:space-x-4 tw:mb-10"> 
368                                                    <div class="autofit-col"> 
369                                                        <div class="autofit-section"> 
370                                                            <div class="sticker sticker-circle sticker-lg tw:border-2 border-white"> 
371                                                                <i class="far fa-check fa-lg tw:text-white"></i> 
372                                                            </div> 
373                                                        </div> 
374                                                    </div> 
375                                                    <div class="autofit-col autofit-col-expand"> 
376                                                        <div class="autofit-section"> 
377                                                            <p class="tw:text-white">{{ detail.sport }}</p> 
378                                                        </div> 
379                                                    </div> 
380                                                </div> 
381                                            </div> 
382                                         
383                                            <#-- Dotazione appartamenti --> 
384                                            <div v-if="detail.dotazioni_appartamenti != null" class="col-12 col-lg-6"> 
385                                                <div class="card-row tw:space-x-4 tw:mb-10"> 
386                                                    <div class="autofit-col"> 
387                                                        <div class="autofit-section"> 
388                                                            <div class="sticker sticker-circle sticker-lg tw:border-2 border-white"> 
389                                                                <i class="far fa-check fa-lg tw:text-white"></i> 
390                                                            </div> 
391                                                        </div> 
392                                                    </div> 
393                                                    <div class="autofit-col autofit-col-expand"> 
394                                                        <div class="autofit-section"> 
395                                                            <p class="tw:text-white">{{ detail.dotazioni_appartamenti }}</p> 
396                                                        </div> 
397                                                    </div> 
398                                                </div> 
399                                            </div> 
400                                         
401                                            <#-- Dotazione bagni appartamenti --> 
402                                            <div v-if="detail.dotazioni_bagni_appartamenti != null" class="col-12 col-lg-6"> 
403                                                <div class="card-row tw:space-x-4 tw:mb-10"> 
404                                                    <div class="autofit-col"> 
405                                                        <div class="autofit-section"> 
406                                                            <div class="sticker sticker-circle sticker-lg tw:border-2 border-white"> 
407                                                                <i class="far fa-check fa-lg tw:text-white"></i> 
408                                                            </div> 
409                                                        </div> 
410                                                    </div> 
411                                                    <div class="autofit-col autofit-col-expand"> 
412                                                        <div class="autofit-section"> 
413                                                            <p class="tw:text-white">{{ detail.dotazioni_bagni_appartamenti }}</p> 
414                                                        </div> 
415                                                    </div> 
416                                                </div> 
417                                            </div> 
418                                         
419                                            <#-- Dotazione bagni camere --> 
420                                            <div v-if="detail.dotazioni_bagni_camere != null" class="col-12 col-lg-6"> 
421                                                <div class="card-row tw:space-x-4 tw:mb-10"> 
422                                                    <div class="autofit-col"> 
423                                                        <div class="autofit-section"> 
424                                                            <div class="sticker sticker-circle sticker-lg tw:border-2 border-white"> 
425                                                                <i class="far fa-check fa-lg tw:text-white"></i> 
426                                                            </div> 
427                                                        </div> 
428                                                    </div> 
429                                                    <div class="autofit-col autofit-col-expand"> 
430                                                        <div class="autofit-section"> 
431                                                            <p class="tw:text-white">{{ detail.dotazioni_bagni_camere }}</p> 
432                                                        </div> 
433                                                    </div> 
434                                                </div> 
435                                            </div> 
436                                         
437                                            <#-- Dotazione bike --> 
438                                            <div v-if="detail.dotazioni_bike != null" class="col-12 col-lg-6"> 
439                                                <div class="card-row tw:space-x-4 tw:mb-10"> 
440                                                    <div class="autofit-col"> 
441                                                        <div class="autofit-section"> 
442                                                            <div class="sticker sticker-circle sticker-lg tw:border-2 border-white"> 
443                                                                <i class="far fa-check fa-lg tw:text-white"></i> 
444                                                            </div> 
445                                                        </div> 
446                                                    </div> 
447                                                    <div class="autofit-col autofit-col-expand"> 
448                                                        <div class="autofit-section"> 
449                                                            <p class="tw:text-white">{{ detail.dotazioni_bike }}</p> 
450                                                        </div> 
451                                                    </div> 
452                                                </div> 
453                                            </div> 
454                                         
455                                            <#-- Dotazione camere --> 
456                                            <div v-if="detail.dotazioni_camere != null" class="col-12 col-lg-6"> 
457                                                <div class="card-row tw:space-x-4 tw:mb-10"> 
458                                                    <div class="autofit-col"> 
459                                                        <div class="autofit-section"> 
460                                                            <div class="sticker sticker-circle sticker-lg tw:border-2 border-white"> 
461                                                                <i class="far fa-check fa-lg tw:text-white"></i> 
462                                                            </div> 
463                                                        </div> 
464                                                    </div> 
465                                                    <div class="autofit-col autofit-col-expand"> 
466                                                        <div class="autofit-section"> 
467                                                            <p class="tw:text-white">{{ detail.dotazioni_camere }}</p> 
468                                                        </div> 
469                                                    </div> 
470                                                </div> 
471                                            </div> 
472                                         
473                                            <#-- Dotazione comuni --> 
474                                            <div v-if="detail.dotazioni_comuni != null" class="col-12 col-lg-6"> 
475                                                <div class="card-row tw:space-x-4 tw:mb-10"> 
476                                                    <div class="autofit-col"> 
477                                                        <div class="autofit-section"> 
478                                                            <div class="sticker sticker-circle sticker-lg tw:border-2 border-white"> 
479                                                                <i class="far fa-check fa-lg tw:text-white"></i> 
480                                                            </div> 
481                                                        </div> 
482                                                    </div> 
483                                                    <div class="autofit-col autofit-col-expand"> 
484                                                        <div class="autofit-section"> 
485                                                            <p class="tw:text-white">{{ detail.dotazioni_comuni }}</p> 
486                                                        </div> 
487                                                    </div> 
488                                                </div> 
489                                            </div> 
490                                        </div> 
491                                    </div> 
492                                </div> 
493                            </div> 
494                             
495                            <div class="card-body tw:relative tw:py-0 tw:-mt-15 tw:z-15"> 
496                                <div class="container"> 
497                                    <button type="button" class="btn btn-link card tw:bg-white tw:border-none tw:shadow-2xl tw:rounded-md tw:p-0" data-toggle="collapse" data-target="#notes"> 
498                                        <div class="card-body"> 
499                                            <div class="card-row tw:space-x-4"> 
500                                                <div class="autofit-col"> 
501                                                    <div class="autofit-section"> 
502                                                        <div class="sticker sticker-circle tw:border-2 border-white"> 
503                                                            <i class="plus-icon fas fa-plus fa-2x tw:text-dark"></i> 
504                                                            <i class="minus-icon fas fa-minus fa-2x tw:text-dark tw:hidden"></i> 
505                                                        </div> 
506                                                    </div> 
507                                                </div> 
508                                                <div class="autofit-col autofit-col-expand tw:pr-20"> 
509                                                    <div class="autofit-section"> 
510                                                        <p class="tw:text-dark tw:font-bold tw:font-heading tw:uppercase">${d40.getLabel("altro")}</p> 
511                                                    </div> 
512                                                </div> 
513                                            </div> 
514                                        </div> 
515                                    </button> 
516                                </div> 
517                            </div> 
518                             
519                            <div class="tw:-mt-15 tw:z-5"> 
520                                <div id="notes" class="collapse"> 
521                                    <div class="card tw:bg-white tw:border-0 tw:rounded-md tw:shadow-2xl tw:mb-0 tw:z-5"> 
522                                        <div class="card-body"> 
523                                            <div class="container"> 
524                                                <ul class="tw:ml-5 tw:mt-10" style="list-style-type: disc !important;"> 
525                                                    <li v-if="detail.orario_prenotazioni != null" class="tw:text-dark tw:font-light"> 
526                                                        <span class="tw:font-bold">${d40.getLabel("orario_prenotazioni")}:</span> 
527                                                        {{ detail.orario_prenotazioni }} 
528                                                    </li> 
529                                                    <li v-if="detail.check_in != null" class="tw:text-dark tw:font-light"> 
530                                                        <span class="tw:font-bold">Check-in:</span> 
531                                                        {{ detail.check_in }} 
532                                                    </li> 
533                                                    <li v-if="detail.check_out != null" class="tw:text-dark tw:font-light"> 
534                                                        <span class="tw:font-bold">Check-out:</span> 
535                                                        {{ detail.check_out }} 
536                                                    </li> 
537                                                    <li v-if="detail.lingue != null" class="tw:text-dark tw:font-light"> 
538                                                        <span class="tw:font-bold">${d40.getLabel("lingue_parlate")}:</span> 
539                                                        {{ detail.lingue }} 
540                                                    </li> 
541                                                    <li v-if="detail.raggiungibilita != null" class="tw:text-dark tw:font-light"> 
542                                                        <span class="tw:font-bold">${d40.getLabel("raggiungibilita")}:</span> 
543                                                        {{ detail.raggiungibilita }} 
544                                                    </li> 
545                                                    <li v-if="detail.ubicazione != null" class="tw:text-dark tw:font-light"> 
546                                                        <span class="tw:font-bold">${d40.getLabel("ubicazione")}:</span> 
547                                                        {{ detail.ubicazione }} 
548                                                    </li> 
549                                                </ul> 
550                                                 
551                                                <p class="tw:font-bold tw:mt-10">${d40.getLabel("info_struttura")}:</p> 
552                                                <ul class="tw:ml-5" style="list-style-type: disc !important;"> 
553                                                    <li v-if="detail.camere != null" class="tw:text-dark tw:font-light"> 
554                                                        <span class="tw:font-bold">${d40.getLabel("numero_camere")}:</span> 
555                                                        {{ detail.camere }} 
556                                                    </li> 
557                                                    <li v-if="detail.bagni != null" class="tw:text-dark tw:font-light"> 
558                                                        <span class="tw:font-bold">${d40.getLabel("numero_bagni")}:</span> 
559                                                        {{ detail.bagni }} 
560                                                    </li> 
561                                                    <li v-if="detail.posti_letto != null" class="tw:text-dark tw:font-light"> 
562                                                        <span class="tw:font-bold">${d40.getLabel("numero_posti_letto")}:</span> 
563                                                        {{ detail.posti_letto }} 
564                                                    </li> 
565                                                    <li v-if="detail.piazzole_campeggio != null" class="tw:text-dark tw:font-light"> 
566                                                        <span class="tw:font-bold">${d40.getLabel("numero_piazzole_campeggio")}:</span> 
567                                                        {{ detail.piazzole_campeggio }} 
568                                                    </li> 
569                                                </ul> 
570                                            </div> 
571                                        </div> 
572                                    </div> 
573                                </div> 
574                            </div> 
575                        </div> 
576                         
577                        <#-- ALLEGATI, PER ORA OFF 
578                            <div class="container tw:mt-20"> 
579                                <div class="sheet tw-bg-light tw:space-y-4 p-3"> 
580                                    <div class="card tw:bg-transparent tw:border-0 tw:shadow-none tw:my-5"> 
581                                        <div class="card-row"> 
582                                            <div class="autofit-col"> 
583                                                <div class="autofit-section"> 
584                                                    <i class="fas fa-download fa-lg tw:text-dark"></i> 
585                                                </div> 
586                                            </div> 
587                                            <div class="autofit-col autofit-col-expand autofit-col-gutters"> 
588                                                <div class="autofit-section"> 
589                                                    <a href="linkfile" class="tw:text-dark tw:font-bold" download> 
590                                                        nomefile 
591                                                         
592                                                        <span class="tw:font-light muted tw:ml-2">${d40.getLabel("scarica_qui_offerta")}</span> 
593                                                    </a> 
594                                                </div> 
595                                            </div> 
596                                        </div> 
597                                    </div> 
598                                </div> 
599                            </div> 
600                        --> 
601                    </section> 
602                         
603                    <section v-if="hasPrezzi"> 
604                        <div class="container tw:mt-20"> 
605                            <div class="sheet tw-bg-light tw:border-none tw:p-7"> 
606                                <p class="tw:font-heading tw:text-2xl tw:uppercase tw:text-green tw:font-bold tw:mb-10"> 
607                                    ${d40.getLabel("informazioni_principali")} 
608                                </p> 
609                                 
610                                <div class="row"> 
611                                    <#-- SINGOLA --> 
612                                    <div v-if="detail.singola_alta_stagione != null" class="col-12 col-lg-6"> 
613                                        <div class="tw:mb-5"> 
614                                            <p class="tw:text-dark tw:font-bold"> 
615                                                ${d40.getLabel("prezzo_singola_alta")}: 
616                                            </p> 
617                                            <p class="tw:text-dark tw:font-light"> 
618                                                {{ detail.singola_alta_stagione }}€ 
619                                            </p> 
620                                        </div> 
621                                    </div> 
622                                    <div v-if="detail.singola_bassa_stagione != null" class="col-12 col-lg-6"> 
623                                        <div class="tw:mb-5"> 
624                                            <p class="tw:text-dark tw:font-bold"> 
625                                                ${d40.getLabel("prezzo_singola_bassa")}: 
626                                            </p> 
627                                            <p class="tw:text-dark tw:font-light"> 
628                                                {{ detail.singola_bassa_stagione }}€ 
629                                            </p> 
630                                        </div> 
631                                    </div> 
632                                     
633                                    <#-- DOPPIA --> 
634                                    <div v-if="detail.doppia_alta_stagione != null" class="col-12 col-lg-6"> 
635                                        <div class="tw:mb-5"> 
636                                            <p class="tw:text-dark tw:font-bold"> 
637                                                ${d40.getLabel("prezzo_doppia_alta")}: 
638                                            </p> 
639                                            <p class="tw:text-dark tw:font-light"> 
640                                                {{ detail.doppia_alta_stagione }}€ 
641                                            </p> 
642                                        </div> 
643                                    </div> 
644                                    <div v-if="detail.doppia_bassa_stagione != null" class="col-12 col-lg-6"> 
645                                        <div class="tw:mb-5"> 
646                                            <p class="tw:text-dark tw:font-bold"> 
647                                                ${d40.getLabel("prezzo_doppia_bassa")}: 
648                                            </p> 
649                                            <p class="tw:text-dark tw:font-light"> 
650                                                {{ detail.doppia_bassa_stagione }}€ 
651                                            </p> 
652                                        </div> 
653                                    </div> 
654                                     
655                                    <#-- TRIPLA --> 
656                                    <div v-if="detail.tripla_alta_stagione != null" class="col-12 col-lg-6"> 
657                                        <div class="tw:mb-5"> 
658                                            <p class="tw:text-dark tw:font-bold"> 
659                                                ${d40.getLabel("prezzo_tripla_alta")}: 
660                                            </p> 
661                                            <p class="tw:text-dark tw:font-light"> 
662                                                {{ detail.tripla_alta_stagione }}€ 
663                                            </p> 
664                                        </div> 
665                                    </div> 
666                                    <div v-if="detail.tripla_bassa_stagione != null" class="col-12 col-lg-6"> 
667                                        <div class="tw:mb-5"> 
668                                            <p class="tw:text-dark tw:font-bold"> 
669                                                ${d40.getLabel("prezzo_tripla_bassa")}: 
670                                            </p> 
671                                            <p class="tw:text-dark tw:font-light"> 
672                                                {{ detail.tripla_bassa_stagione }}€ 
673                                            </p> 
674                                        </div> 
675                                    </div> 
676                                     
677                                    <#-- QUATTRO LETTI --> 
678                                    <div v-if="detail.quattro_letti_alta_stagione != null" class="col-12 col-lg-6"> 
679                                        <div class="tw:mb-5"> 
680                                            <p class="tw:text-dark tw:font-bold"> 
681                                                ${d40.getLabel("prezzo_quadrupla_alta")}: 
682                                            </p> 
683                                            <p class="tw:text-dark tw:font-light"> 
684                                                {{ detail.quattro_letti_alta_stagione }}€ 
685                                            </p> 
686                                        </div> 
687                                    </div> 
688                                    <div v-if="detail.quattro_letti_bassa_stagione != null" class="col-12 col-lg-6"> 
689                                        <div class="tw:mb-5"> 
690                                            <p class="tw:text-dark tw:font-bold"> 
691                                                ${d40.getLabel("prezzo_quarupla_bassa")}: 
692                                            </p> 
693                                            <p class="tw:text-dark tw:font-light"> 
694                                                {{ detail.quattro_letti_bassa_stagione }}€ 
695                                            </p> 
696                                        </div> 
697                                    </div> 
698                                     
699                                    <#-- PENSIONE COMPLETA --> 
700                                    <div v-if="detail.pensione_completa_alta_stagione != null" class="col-12 col-lg-6"> 
701                                        <div class="tw:mb-5"> 
702                                            <p class="tw:text-dark tw:font-bold"> 
703                                                ${d40.getLabel("prezzo_pensione_completa_alta")}: 
704                                            </p> 
705                                            <p class="tw:text-dark tw:font-light"> 
706                                                {{ detail.pensione_completa_alta_stagione }}€ 
707                                            </p> 
708                                        </div> 
709                                    </div> 
710                                    <div v-if="detail.pensione_completa_bassa_stagione != null" class="col-12 col-lg-6"> 
711                                        <div class="tw:mb-5"> 
712                                            <p class="tw:text-dark tw:font-bold"> 
713                                                ${d40.getLabel("prezzo_pensione_completa_bassa")}: 
714                                            </p> 
715                                            <p class="tw:text-dark tw:font-light"> 
716                                                {{ detail.pensione_completa_bassa_stagione }}€ 
717                                            </p> 
718                                        </div> 
719                                    </div> 
720                                     
721                                    <#-- MONOLOCALE 1 GIORNO --> 
722                                    <div v-if="detail.monolocale_1giorno_alta_stagione != null" class="col-12 col-lg-6"> 
723                                        <div class="tw:mb-5"> 
724                                            <p class="tw:text-dark tw:font-bold"> 
725                                                ${d40.getLabel("prezzo_monolocale_1giorno_alta")}: 
726                                            </p> 
727                                            <p class="tw:text-dark tw:font-light"> 
728                                                {{ detail.monolocale_1giorno_alta_stagione }}€ 
729                                            </p> 
730                                        </div> 
731                                    </div> 
732                                    <div v-if="detail.monolocale_1giorno_bassa_stagione != null" class="col-12 col-lg-6"> 
733                                        <div class="tw:mb-5"> 
734                                            <p class="tw:text-dark tw:font-bold"> 
735                                                ${d40.getLabel("prezzo_monolocale_1giorno_bassa")}: 
736                                            </p> 
737                                            <p class="tw:text-dark tw:font-light"> 
738                                                {{ detail.monolocale_1giorno_bassa_stagione }}€ 
739                                            </p> 
740                                        </div> 
741                                    </div> 
742                                     
743                                    <#-- MONOLOCALE 1 SETTIMANA --> 
744                                    <div v-if="detail.monolocale_1settimana_alta_stagione != null" class="col-12 col-lg-6"> 
745                                        <div class="tw:mb-5"> 
746                                            <p class="tw:text-dark tw:font-bold"> 
747                                                ${d40.getLabel("prezzo_monolocale_1settimana_alta")}: 
748                                            </p> 
749                                            <p class="tw:text-dark tw:font-light"> 
750                                                {{ detail.monolocale_1settimana_alta_stagione }}€ 
751                                            </p> 
752                                        </div> 
753                                    </div> 
754                                    <div v-if="detail.monolocale_1settimana_bassa_stagione != null" class="col-12 col-lg-6"> 
755                                        <div class="tw:mb-5"> 
756                                            <p class="tw:text-dark tw:font-bold"> 
757                                                ${d40.getLabel("prezzo_monolocale_1settimana_bassa")}: 
758                                            </p> 
759                                            <p class="tw:text-dark tw:font-light"> 
760                                                {{ detail.monolocale_1settimana_bassa_stagione }}€ 
761                                            </p> 
762                                        </div> 
763                                    </div> 
764                                     
765                                    <#-- BILOCALE 1 GIORNO --> 
766                                    <div v-if="detail.bilocale_1giorno_alta_stagione != null" class="col-12 col-lg-6"> 
767                                        <div class="tw:mb-5"> 
768                                            <p class="tw:text-dark tw:font-bold"> 
769                                                ${d40.getLabel("prezzo_bilocale_1giorno_alta")}: 
770                                            </p> 
771                                            <p class="tw:text-dark tw:font-light"> 
772                                                {{ detail.bilocale_1giorno_alta_stagione }}€ 
773                                            </p> 
774                                        </div> 
775                                    </div> 
776                                    <div v-if="detail.bilocale_1giorno_bassa_stagione != null" class="col-12 col-lg-6"> 
777                                        <div class="tw:mb-5"> 
778                                            <p class="tw:text-dark tw:font-bold"> 
779                                                ${d40.getLabel("prezzo_bilocale_1giorno_bassa")}: 
780                                            </p> 
781                                            <p class="tw:text-dark tw:font-light"> 
782                                                {{ detail.bilocale_1giorno_bassa_stagione }}€ 
783                                            </p> 
784                                        </div> 
785                                    </div> 
786                                     
787                                    <#-- BILOCALE 1 SETTIMANA --> 
788                                    <div v-if="detail.bilocale_1settimana_alta_stagione != null" class="col-12 col-lg-6"> 
789                                        <div class="tw:mb-5"> 
790                                            <p class="tw:text-dark tw:font-bold"> 
791                                                ${d40.getLabel("prezzo_bilocale_1settimana_alta")}: 
792                                            </p> 
793                                            <p class="tw:text-dark tw:font-light"> 
794                                                {{ detail.bilocale_1settimana_alta_stagione }}€ 
795                                            </p> 
796                                        </div> 
797                                    </div> 
798                                    <div v-if="detail.bilocale_1settimana_bassa_stagione != null" class="col-12 col-lg-6"> 
799                                        <div class="tw:mb-5"> 
800                                            <p class="tw:text-dark tw:font-bold"> 
801                                                ${d40.getLabel("prezzo_bilocale_1settimana_bassa")}: 
802                                            </p> 
803                                            <p class="tw:text-dark tw:font-light"> 
804                                                {{ detail.bilocale_1settimana_bassa_stagione }}€ 
805                                            </p> 
806                                        </div> 
807                                    </div> 
808                                     
809                                    <#-- TRI/PLURILOCALE 1 GIORNO --> 
810                                    <div v-if="detail.plurilocale_1giorno_alta_stagione != null" class="col-12 col-lg-6"> 
811                                        <div class="tw:mb-5"> 
812                                            <p class="tw:text-dark tw:font-bold"> 
813                                                ${d40.getLabel("prezzo_plurilocale_1giorno_alta")}: 
814                                            </p> 
815                                            <p class="tw:text-dark tw:font-light"> 
816                                                {{ detail.plurilocale_1giorno_alta_stagione }}€ 
817                                            </p> 
818                                        </div> 
819                                    </div> 
820                                    <div v-if="detail.plurilocale_1giorno_bassa_stagione != null" class="col-12 col-lg-6"> 
821                                        <div class="tw:mb-5"> 
822                                            <p class="tw:text-dark tw:font-bold"> 
823                                                ${d40.getLabel("prezzo_plurilocale_1giorno_bassa")}: 
824                                            </p> 
825                                            <p class="tw:text-dark tw:font-light"> 
826                                                {{ detail.plurilocale_1giorno_bassa_stagione }}€ 
827                                            </p> 
828                                        </div> 
829                                    </div> 
830                                     
831                                    <#-- TRI/PLURILOCALE 1 SETTIMANA --> 
832                                    <div v-if="detail.plurilocale_1settimana_alta_stagione != null" class="col-12 col-lg-6"> 
833                                        <div class="tw:mb-5"> 
834                                            <p class="tw:text-dark tw:font-bold"> 
835                                                ${d40.getLabel("prezzo_plurilocale_1settimana_alta")}: 
836                                            </p> 
837                                            <p class="tw:text-dark tw:font-light"> 
838                                                {{ detail.plurilocale_1settimana_alta_stagione }}€ 
839                                            </p> 
840                                        </div> 
841                                    </div> 
842                                    <div v-if="detail.plurilocale_1settimana_bassa_stagione != null" class="col-12 col-lg-6"> 
843                                        <div class="tw:mb-5"> 
844                                            <p class="tw:text-dark tw:font-bold"> 
845                                                ${d40.getLabel("prezzo_plurilocale_1settimana_bassa")}: 
846                                            </p> 
847                                            <p class="tw:text-dark tw:font-light"> 
848                                                {{ detail.plurilocale_1settimana_bassa_stagione }}€ 
849                                            </p> 
850                                        </div> 
851                                    </div> 
852 
853                                </div> 
854                                 
855                                <div v-if="detail.codice_struttura != null" class="tw:mt-3 tw:pt-5" style="border-top:1px solid #ccc;"> 
856                                    <p class="tw:text-dark tw:font-bold"> 
857                                        ${d40.getLabel("codice_identificativo_regionale")}: 
858                                    </p> 
859                                    <p class="tw:text-dark tw:font-light"> 
860                                        {{ detail.codice_struttura }} 
861                                    </p> 
862                                </div> 
863																			 
864																<div v-if="detail.codice_cin != null" class="tw:mt-3 tw:pt-5" style="border-top:1px solid #ccc;"> 
865                                    <p class="tw:text-dark tw:font-bold"> 
866                                        ${d40.getLabel("cin")}: 
867                                    </p> 
868                                    <p class="tw:text-dark tw:font-light"> 
869                                        {{ detail.codice_cin }} 
870                                    </p> 
871                                </div> 
872                                 
873                                <#-- 
874                                <div class="tw:flex tw:justify-end tw:mt-20"> 
875                                    <a href="#contact-form" class="smooth-scroll btn btn-link tw:bg-green tw:text-white tw:uppercase tw:font-bold tw:font-heading tw:rounded-md tw:py-3 tw:px-5"> 
876                                        ${d40.getLabel("richiedi_info")} 
877                                    </a> 
878                                </div> 
879                                --> 
880                            </div> 
881                        </div> 
882                    </section> 
883                    <section v-else="hasPrezzi"> 
884                        <div class="container tw:mt-30"> 
885                            <div class="sheet tw-bg-light tw:border-none tw:p-7"> 
886                                <p class="tw:font-heading tw:text-2xl tw:uppercase tw:text-green tw:font-bold tw:mb-10"> 
887                                    ${d40.getLabel("informazioni_principali")} 
888                                </p> 
889                                 
890                                <div class="row"> 
891                                    <div v-if="detail.codice_struttura != null" class="col-12"> 
892                                        <p class="tw:text-dark tw:font-bold"> 
893                                            ${d40.getLabel("codice_identificativo_regionale")}: 
894                                        </p> 
895                                        <p class="tw:text-dark tw:font-light"> 
896                                            {{ detail.codice_struttura }} 
897                                        </p> 
898                                    </div> 
899																	  <div v-if="detail.codice_cin != null" class="col-12"> 
900                                        <p class="tw:text-dark tw:font-bold"> 
901                                            ${d40.getLabel("cin")}: 
902                                        </p> 
903                                        <p class="tw:text-dark tw:font-light"> 
904                                            {{ detail.codice_cin }} 
905                                        </p> 
906                                    </div> 
907                                </div> 
908                            </div> 
909                        </div> 
910                    </section> 
911                </div> 
912            </div> 
913        </div> 
914     
915     
916        <#-- GALLERY --> 
917        <#if rawImages?has_content> 
918            <section id="gallery" class="tw:mt-30"> 
919                <div class="container"> 
920                    <div class="swiper-container tw:pt-10"> 
921                        <#if (images?size > 3)> 
922                            <div class="swiper-button-prev tw:w-12 tw:h-12"> 
923                                <span class="sticker sticker-circle hcm-bg-capable tw:bg-green tw:w-full tw:h-full"> 
924                                    <span class="sticker-overlay"> 
925                                        <i class="fas fa-chevron-left fa-2x text-white"></i> 
926                                    </span> 
927                                </span> 
928                            </div> 
929                            <div class="swiper-button-next tw:w-12 tw:h-12"> 
930                                <span class="sticker sticker-circle hcm-bg-capable tw:bg-green tw:w-full tw:h-full"> 
931                                    <span class="sticker-overlay"> 
932                                        <i class="fas fa-chevron-right fa-2x text-white"></i> 
933                                    </span> 
934                                </span> 
935                            </div> 
936                        </#if> 
937                         
938                        <div class="swiper-wrapper"> 
939                            <#list images as pic> 
940                                <div class="swiper-slide"> 
941                                    <a href="javascript:void(0);" data-toggle="modal" data-target="#lightbox-modal" data-slider="${pic?index}"> 
942                                        <div class="aspect-ratio aspect-ratio-4-to-3 tw:rounded-md tw:shadow-2xl"> 
943                                            <img data-src="${d40.getPrefix(pic, 900, 675)}" loading="lazy" class="lazyload aspect-ratio-item-fluid tw:object-cover tw:w-full tw:h-full" alt="immagine ${pic?index}"  /> 
944                                        </div> 
945                                    </a> 
946                                </div> 
947                            </#list> 
948                        </div> 
949                    </div> 
950                </div> 
951            </section> 
952             
953            <div id="lightbox-modal" tabindex="-1" role="dialog" class="modal fade"> 
954                <div class="modal-dialog modal-full-screen tw:inset-0 tw:border-none tw:shadow-none"> 
955                    <div class="modal-content tw:bg-transparent"> 
956                        <div class="modal-body tw:overflow-hidden"> 
957                            <div class="tw:absolute tw:top-0 tw:right-0 tw:z-5"> 
958                                <button type="button" data-dismiss="modal" class="btn btn-monospaced btn-secondary m-3"> 
959                                    <i class="fal fa-times fa-lg"></i> 
960                                </button> 
961                            </div> 
962                             
963                            <#-- lightbox --> 
964                            <div id="lightbox-swiper" class="swiper-container h-75 my-auto"> 
965                                <div class="swiper-button-prev tw:w-12 tw:h-12"> 
966                                    <span class="sticker sticker-circle hcm-bg-capable tw:bg-green tw:w-full tw:h-full"> 
967                                        <span class="sticker-overlay"> 
968                                            <i class="fas fa-chevron-left fa-2x tw:text-white"></i> 
969                                        </span> 
970                                    </span> 
971                                </div> 
972                                 
973                                <div class="swiper-button-next tw:w-12 tw:h-12"> 
974                                    <span class="sticker sticker-circle hcm-bg-capable tw:bg-green tw:w-full tw:h-full"> 
975                                        <span class="sticker-overlay"> 
976                                            <i class="fas fa-chevron-right fa-2x tw:text-white"></i> 
977                                        </span> 
978                                    </span> 
979                                </div> 
980                                 
981                                <div class="swiper-wrapper tw:h-full"> 
982                                    <#list images as pic> 
983                                        <div class="swiper-slide tw:h-full"> 
984                                            <img data-src="${d40.getPrefix(pic, 1920, '')}" loading="lazy" class="lazyload tw:h-full tw:object-contain tw:mx-auto" alt="immagine ${pic?index}"> 
985                                        </div> 
986                                    </#list> 
987                                </div> 
988                            </div> 
989                             
990                            <#-- thumbnails --> 
991                            <div id="thumbnail-swiper" class="swiper-container" thumbsSlider=""> 
992                                <div class="swiper-wrapper"> 
993                                    <#list images as pic> 
994                                        <div class="swiper-slide"> 
995                                            <img data-src="${d40.getPrefix(pic, 300, '')}" loading="lazy" class="lazyload tw:object-cover tw:cursor-pointer tw:h-full tw:w-full" alt="immagine ${pic?index}"> 
996                                        </div> 
997                                    </#list> 
998                                </div> 
999                            </div> 
1000                        </div> 
1001                    </div> 
1002                </div> 
1003            </div> 
1004        </#if> 
1005 
1006        <#-- MAPPA --> 
1007        <template v-if="detail != null"> 
1008            <div v-if="detail.latitudine != null && detail.longitudine != null" class="tw:mt-30 d-none"> 
1009                <div class="container tw:mb-7"> 
1010                    <div class="row tw:justify-between"> 
1011                        <div class="col-auto"> 
1012                            <p class="tw:inline tw:align-middle tw:text-dark tw:font-heading tw:font-light tw:text-2xl tw:uppercase lg:tw:text-4xl"> 
1013                                <span class="tw:text-dark tw:font-heading tw:font-extrabold tw:text-2xl tw:uppercase lg:tw:text-4xl">${d40.getLabel("dove")}</span> 
1014                                ${d40.getLabel("ci_troviamo")} 
1015                            </p> 
1016                        </div> 
1017                        <div class="col-auto"> 
1018                            <a :href="'https://maps.google.com/?q=' + detail.latitudine + ',' + detail.longitudine" class="btn btn-link tw:text-dark tw:font-heading tw:font-bold tw:text-lg tw:uppercase tw:px-0 lg:tw:px-4" target="_blank"> 
1019                                ${d40.getLabel("apri_maps")} 
1020                            </a> 
1021                        </div> 
1022                    </div> 
1023                </div> 
1024                 
1025                <div id="suggesto-map" class="monochrome-map" style="height: 700px;"></div> 
1026            </div> 
1027        </template> 
1028         
1029         
1030    <#else> 
1031        <div class="row"> 
1032            <div class="col-12"> 
1033                <p class="tw:text-dark tw:text-lg tw:py-10 tw:mb-0">${d40.getLabel("impossibile_trovare_contenuto")}</p> 
1034            </div> 
1035        </div> 
1036    </#if> 
1037</section> 
1038 
1039<script src="https://s3-eu-west-1.amazonaws.com/mkspresstage.suggesto.eu/components/securityV2.js"></script> 
1040<script src="https://s3-eu-west-1.amazonaws.com/mkspresstage.suggesto.eu/components/initVueApp.js"></script> 
1041 
1042<script src="https://s3-eu-west-1.amazonaws.com/mkspresstage.suggesto.eu/mixins/js/favorites.js"></script> 
1043<script src="https://s3-eu-west-1.amazonaws.com/mkspresstage.suggesto.eu/mixins/js/share.js"></script> 
1044<script src="https://s3-eu-west-1.amazonaws.com/mkspresstage.suggesto.eu/filters/currency.js"></script> 
1045 
1046<script> 
1047    var ${d40.portletNamespace}_custom_hook = { 
1048        data: { 
1049            debugMode: true, 
1050            map: null, 
1051            detail: null, 
1052            item: { 
1053                id: "${id}", 
1054                contentJSON: { 
1055                    denominazione: "", 
1056                    description: "", 
1057                    geoRef: "", 
1058                    previewPicture: "", 
1059                    www: "", 
1060                    viewUrl: window.location.href 
1061
1062            }, 
1063            error: false, 
1064            gallery: null, 
1065            thumbnails: null, 
1066            lightbox: null 
1067        }, 
1068        created(){ 
1069            moment.locale(navigator.language.split("-")[0]); 
1070 
1071            <#if doc?has_content> 
1072                var res = ${doc}; 
1073            <#else> 
1074                var res = null; 
1075            </#if> 
1076             
1077            if(res != null && this.item.id != "000000"){ 
1078                this.detail = res; 
1079                this.detail.gallery = []; 
1080                 
1081                <#list images as galleryImg> 
1082                    this.detail.gallery.push("${galleryImg}"); 
1083                </#list> 
1084                 
1085                this.item.denominazione = this.detail.denominazione; 
1086                this.item.assetCategoryIds = this.detail.assetCategoryIds; 
1087                this.item.www = window.location.href; 
1088                this.item.geoRef = [ 
1089                    this.detail.latitudine, 
1090                    this.detail.longitudine 
1091                ]; 
1092            }else{ 
1093                this.error = true; 
1094
1095 
1096            this.loading = false; 
1097        }, 
1098        mounted(){ 
1099            var that = this; 
1100             
1101            if(this.detail != null){ 
1102                if(this.detail.latitudine != null && this.detail.longitudine != null){ 
1103                    this.buildMap(); 
1104
1105
1106             
1107            if(${(images?has_content)?c}){ 
1108                this.initGallery(); 
1109             
1110                $("#lightbox-modal").on("shown.bs.modal", function(e){ 
1111                    that.lightbox.update(); 
1112                    that.thumbnails.update(); 
1113                    that.lightbox.slideTo($(e.relatedTarget).data("slider")); 
1114                    that.lightbox.update(); 
1115                }); 
1116                 
1117                $("#lightbox-modal .swiper-wrapper").on("click", function(e){ 
1118                    if($(e.target).attr("class").includes("swiper-slide")){ 
1119                        $("#lightbox-modal").modal("hide"); 
1120
1121                }); 
1122
1123        }, 
1124        computed: { 
1125            hasPrezzi: function(){ 
1126                const availableLodgings = [ 
1127                    "singola", 
1128                    "doppia", 
1129                    "tripla", 
1130                    "quattro_letti", 
1131                    "pensione_completa", 
1132                    "monolocale_1giorno", 
1133                    "monolocale_1settimana", 
1134                    "bilocale_1giorno", 
1135                    "bilocale_1settimana", 
1136                    "plurilocale_1giorno", 
1137                    "plurilocale_1settimana", 
1138                ]; 
1139             
1140                var validLodgings = 0; 
1141                 
1142                Object.keys(this.detail).forEach((prop) => { 
1143                    if(prop.includes("stagione")){ 
1144                        if(availableLodgings.includes(prop.split("_alta_stagione")[0]) || availableLodgings.includes(prop.split("_bassa_stagione")[0])){ 
1145                            if(this.detail[prop] != null){ 
1146                                validLodgings++; 
1147
1148
1149
1150                }); 
1151                 
1152                return validLodgings > 0; 
1153
1154        }, 
1155        methods: { 
1156            decodeHtml: function(htmlStr){ 
1157                var txt = document.createElement("textarea"); 
1158                txt.innerHTML = htmlStr; 
1159                return txt.value; 
1160            }, 
1161            sanitize: function(text){ 
1162                var elem = document.createElement('textarea'); 
1163                elem.innerHTML = text; 
1164                return elem.value; 
1165            }, 
1166            fixProtocol: function(url){ 
1167                return "http://" + url; 
1168            }, 
1169            customEncode: function(str){ 
1170                return encodeURIComponent(str.replaceAll("{", "%7B").replaceAll("}", "%7D")); 
1171            }, 
1172            buildMap: function(){ 
1173                var layers = [], 
1174                    markers = [], 
1175                    map = new SuggestoMap("suggesto-map"); 
1176                     
1177                if(this.detail != null){ 
1178                    var marker = { 
1179                        group: "1", 
1180                        latlng: [parseFloat(this.detail.latitudine), parseFloat(this.detail.longitudine)], 
1181                        value: "", 
1182                        type: "svgNumIcon", 
1183                        size: "10", 
1184                        color: "#7eba27", 
1185                        html: "" 
1186                    }; 
1187 
1188                    markers.push(marker); 
1189
1190 
1191                var mapData = { 
1192                    tilelayer: "osm", 
1193                    gestureHandling: true, 
1194                    fitBounds: false, 
1195                    mapcenter: [parseFloat(this.detail.latitudine), parseFloat(this.detail.longitudine)], 
1196                    zoom: 14, 
1197                    markersFilter: "*", 
1198                    markers: markers, 
1199                    layers: layers 
1200                }; 
1201 
1202                console.log("mapData is: ", mapData); 
1203 
1204                map.sm.createMap(mapData); 
1205 
1206                this.map = map; 
1207            }, 
1208            initGallery: function(){ 
1209                this.gallery = new Swiper("#gallery .swiper-container", { 
1210        			slidesPerView: 1, 
1211        			spaceBetween: 25, 
1212        			centerSlides: true, 
1213        			centerInsufficientSlides: true, 
1214        			navigation: { 
1215        				prevEl: ".btn-prev", 
1216        				nextEl: ".btn-next", 
1217        			}, 
1218        			breakpoints: { 
1219        				768: { 
1220        					slidesPerView: 2, 
1221        					spaceBetween: 25, 
1222        				}, 
1223        				992: { 
1224        					slidesPerView: 3, 
1225        					spaceBetween: 25, 
1226        				}, 
1227        			}, 
1228        		}); 
1229        		 
1230        		this.thumbnails = new Swiper("#thumbnail-swiper", { 
1231                    spaceBetween: 10, 
1232                    slidesPerView: 2, 
1233                    centerInsufficientSlides: true, 
1234                    freeMode: true, 
1235                    watchSlidesVisibility: true, 
1236                    watchSlidesProgress: true, 
1237        			breakpoints: { 
1238        				768: { 
1239        					slidesPerView: 3 
1240        				}, 
1241        				992: { 
1242        					slidesPerView: 4 
1243        				}, 
1244        				1200: { 
1245        					slidesPerView: 5 
1246
1247        			}, 
1248                }); 
1249                 
1250                this.lightbox = new Swiper("#lightbox-swiper", { 
1251        		    spaceBetween: 10, 
1252                    autoHeight: true, 
1253                    observer: true, 
1254                    observeSlideChildren: true, 
1255                    keyboard: { 
1256                        enabled: true 
1257                    }, 
1258                    navigation: { 
1259                        nextEl: ".swiper-button-next", 
1260                        prevEl: ".swiper-button-prev" 
1261                    }, 
1262                    thumbs: { 
1263                        swiper: this.thumbnails 
1264
1265                }); 
1266            }, 
1267            customShare: function(type, title, description, image = ""){ 
1268                if(type == "facebook"){ 
1269                    var winHeight = 450, 
1270                        winWidth = 600, 
1271                        winTop = window.screen.height / 2 - winHeight / 2, 
1272                        winLeft = window.screen.width / 2 - winWidth / 2, 
1273                        params = "scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,width=" + winWidth + ",height=" + winHeight + ",left=" + winLeft + ",top=" + winTop, 
1274                        link = "http://www.facebook.com/sharer.php?s=100&p[title]=" + this.customEncode(title) + "&p[summary]=" + this.customEncode(description) + "&p[url]=" + window.location.href + "&p[images][0]=" + image; 
1275     
1276                    window.open(link, "Facebook", params); 
1277
1278                 
1279                if(type == "twitter"){ 
1280                    var link = "https://twitter.com/intent/tweet?text=" + this.customEncode(title) + "&url=" + this.customEncode(window.location.href); 
1281                     
1282                    window.open(link, "_blank").focus(); 
1283
1284                 
1285                if(type == "pinterest"){ 
1286                    var link = "https://pinterest.com/pin/create/button/?url=" + this.customEncode(window.location.href) + "&description=" + this.customEncode(title); 
1287                     
1288                    window.open(link, "_blank").focus(); 
1289
1290                 
1291                if(type == "whatsapp"){ 
1292                    var link = "https://wa.me?text=" + this.customEncode(title + ": " + window.location.href); 
1293                     
1294                    window.open(link, "_blank").focus(); 
1295
1296                 
1297                if(type == "telegram"){ 
1298                    var link = "https://t.me/share/url?url=" + this.customEncode(window.location.href) + "&text=" + this.customEncode(title); 
1299                     
1300                    window.open(link, "_blank").focus(); 
1301
1302                 
1303                if(type == "print"){ 
1304                    window.print(); 
1305
1306                 
1307                if(type == "link"){ 
1308                    this.legacyShare(); 
1309
1310
1311
1312
1313     
1314    document.addEventListener("DOMContentLoaded", function (){ 
1315        var ${d40.portletNamespace}_vueApp = initVueApp( 
1316            "#${d40.portletNamespace}", 
1317            "${d40.portletNamespace}", 
1318            [d40_favorites, d40_share, ${d40.portletNamespace}_custom_hook] 
1319        ); 
1320    }); 
1321     
1322    <#attempt> 
1323        var structureEmail = "${result.getJSONObject('data').getJSONObject('response').getJSONArray('docs').get(0).getString('email')}"; 
1324    <#recover> 
1325        var structureEmail = "bianco@cuneoholiday.com"; 
1326    </#attempt> 
1327</script>