Leonardo between invention and STEAM - Company

Leonardo between invention and STEAM

Enthusiasm, passion, curiosity and enjoyment - all in the name of invention: Leonardo took part in the National Geographic Festival of Sciences for the second year as an Educational Partner promoting STEM disciplines - as well as adding A for Arts, to mark the interplay between creativity and innovation.

Rome,   19 April 2019

Science, Technologies, Engineering, Arts and Mathematics - these are the subjects behind the acronym STEAM: the disciplines of the future which we have decided to focus on in order to promote the key skills of innovation in open dialogue with the protagonists - tomorrow's generations. This is the approach which enabled our employees to animate some of the workshops held during the National Geographic Festival of Sciences (Rome, 8-14 April 2019) to tell children about their work, our products and our solutions in a enjoyable and unusual context: focusing on passion for innovation, a feeling to be shared and communicated. 

We expressed our scientific citizenship through an event where 29,000 students took part in educational activities and through our involvement with the INside/INvention exhibition: the evolution of our products, from helicopters to tiltrotors. The Festival also saw the involvement of the Leonardo-Civiltà delle Macchine Foundation, through readings of some passages from the famous magazine edited by Leonardo Sinisgalli. An ideal bridge between past and future under the hallmark of invention but - above all - of open dialogue with future generations.
 

An error occurred while processing the template.
The following has evaluated to null or missing:
==> Links  [in template "20115#20151#8694053" at line 193, column 29]

----
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: #if Links.ExternalTargetURL.getData()...  [in template "20115#20151#8694053" at line 193, column 24]
----
1<#assign siteExpandoBridge = themeDisplay.getScopeGroup().getExpandoBridge() /> 
2<#assign new_restyle = (siteExpandoBridge.hasAttribute("new-restyle")?then(getterUtil.getBoolean(siteExpandoBridge.getAttribute("new-restyle", false)),false)) /> 
3<#if new_restyle?? && new_restyle> 
4    <@leonardo.articleInfo .vars "(I3) Video Launch"/> 
5 
6    <#macro videoBox yt canto video poster> 
7 
8        <div class="video-full-width-container-rounded"> 
9                <button 
10                        class="video-full-width" 
11                        title="play report video" 
12                        onclick="playSingleVideo(this)" 
13                        data-video="${video}" 
14
15                <div class="cover rounded-20"> 
16                    <#if VideoInfo.Image.getData()?? && VideoInfo.Image.getData() != ""> 
17                        <#assign scalingDetails = { 
18                        "desktop": {"alternateImage": {}, "key": "w_768"}, 
19                        "tl": {"alternateImage": VideoInfo.Image.ImageTl!, "key": "h_400"}, 
20                        "tp": {"alternateImage": VideoInfo.Image.ImageTp!, "key": "w_720"}, 
21                        "mobile": {"alternateImage": VideoInfo.Image.ImageM!, "key": "w_596"} }> 
22                        <#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
23                        <picture> 
24                            <source 
25                                    srcset="${posterImg.mobile!}" 
26                                    media="(max-width: 576px)" 
27                            /> 
28                            <source 
29                                    srcset="${posterImg.tablet_portrait!}" 
30                                    media="(max-width: 768px)" 
31
32                            <source 
33                                    srcset="${posterImg.tablet_landscape!}" 
34                                    media="(max-width: 1024px)" 
35
36                            <img class="img-fluid" alt="${posterImg.alt_desktop!}" src="${posterImg.desktop!}" /> 
37                        </picture> 
38                    </#if> 
39 
40                    <div class="btn-play"> 
41                        <img 
42                                class="icon" 
43                                src="${themeDisplay.getPathThemeImages()}/img/generic/button-play.svg" 
44                                alt="play" 
45                        /> 
46                        <img 
47                                class="icon-hover" 
48                                src="${themeDisplay.getPathThemeImages()}/img/generic/button-play-hover.svg" 
49                                alt="play" 
50                        /> 
51                    </div> 
52                </div> 
53                </button> 
54        </div> 
55    </#macro> 
56 
57    <#if VideoInfo.Video.getData() != "" ||  VideoInfo.YoutubeId.getData() != "" ||  VideoInfo.CantoUrl.getData() != "" > 
58 
59        <#assign scalingDetails = { 
60        "desktop": {"alternateImage": {}, "key": "w_768"}, 
61        "tl": {"alternateImage": VideoInfo.Image.ImageTl!, "key": "h_400"}, 
62        "tp": {"alternateImage": VideoInfo.Image.ImageTp!, "key": "w_720"}, 
63        "mobile": {"alternateImage": VideoInfo.Image.ImageM!, "key": "w_596"} }> 
64        <#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
65 
66        <#assign isYt = (VideoInfo.YoutubeId.getData() != "") > 
67        <#assign isCanto = (VideoInfo.CantoUrl.getData())?has_content && (VideoInfo.CantoUrl.getData() != "") > 
68 
69        <#if (VideoInfo.CantoUrl.getData())?has_content && VideoInfo.CantoUrl.getData() != ""> 
70            <#assign videoStr = VideoInfo.CantoUrl.getData()> 
71        <#elseif VideoInfo.YoutubeId.getData() != ""> 
72            <#assign videoStr = VideoInfo.YoutubeId.getData()> 
73        <#elseif VideoInfo.Video.getSiblings()?has_content> 
74            <#assign videoStr = ""> 
75            <#list VideoInfo.Video.getSiblings() as cur_Video> 
76                <#assign videoFile = cur_Video.getData()> 
77                <#assign videoFileType = cur_Video.VideoType.getData()> 
78                <#if videoStr?? && videoStr != ""> 
79                    <#assign videoStr = videoStr + ","> 
80                </#if> 
81                <#assign videoStr = videoStr + "${themeDisplay.getPortalURL()}" + videoFile> 
82            </#list> 
83        </#if> 
84 
85        <!--Start Module: Plan Highlights--> 
86        <div class="container-full-width padding-bottom padding-top"> 
87            <div class="container"> 
88                <div class="flex-grid-plus-cards video"> 
89                    <div class="left <#if VideoInfo.ImagePosition.getData() == "right">order-lg-2</#if>"> 
90                        <#if VideoInfo.YoutubeId.getData() != ""> 
91                            <div class="video-full-width-container-rounded"> 
92                                <#assign videoId = VideoInfo.YoutubeId.getData()> 
93                                <button 
94                                        type="button" 
95                                        class="video-full-width video-yt" 
96                                        title="play report video" 
97                                        data-video="${videoId}" 
98                                        id="button-video-${videoId}" 
99
100                                    <div class="cover rounded-20"> 
101                                        <#if VideoInfo.Image.getData()?? && VideoInfo.Image.getData() != ""> 
102                                            <#assign scalingDetails = { 
103                                            "desktop": {"alternateImage": {}, "key": "w_768"}, 
104                                            "tl": {"alternateImage": VideoInfo.Image.ImageTl!, "key": "h_400"}, 
105                                            "tp": {"alternateImage": VideoInfo.Image.ImageTp!, "key": "w_720"}, 
106                                            "mobile": {"alternateImage": VideoInfo.Image.ImageM!, "key": "w_596"} }> 
107                                            <#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
108                                            <picture> 
109                                                <source 
110                                                        srcset="${posterImg.mobile!}" 
111                                                        media="(max-width: 576px)" 
112                                                /> 
113                                                <source 
114                                                        srcset="${posterImg.tablet_portrait!}" 
115                                                        media="(max-width: 768px)" 
116
117                                                <source 
118                                                        srcset="${posterImg.tablet_landscape!}" 
119                                                        media="(max-width: 1024px)" 
120
121                                                <img class="img-fluid" alt="${posterImg.alt_desktop!}" src="${posterImg.desktop!}" /> 
122                                            </picture> 
123                                        </#if> 
124 
125                                        <div class="btn-play"> 
126                                            <img 
127                                                    class="icon" 
128                                                    src="${themeDisplay.getPathThemeImages()}/img/generic/button-play.svg" 
129                                                    alt="play" 
130                                            /> 
131                                            <img 
132                                                    class="icon-hover" 
133                                                    src="${themeDisplay.getPathThemeImages()}/img/generic/button-play-hover.svg" 
134                                                    alt="play" 
135                                            /> 
136                                        </div> 
137                                    </div> 
138                                </button> 
139                                <div id="video-${videoId}" class="embed-responsive embed-responsive-16by9" style="display:none;"> 
140                                    <iframe 
141                                            id="youtube-player-${videoId}" 
142                                            width="100%" 
143                                            height="100%" 
144                                            frameborder="0" 
145                                            allow="autoplay; fullscreen; encrypted-media" 
146                                            allowfullscreen 
147                                            playsinline 
148                                    ></iframe> 
149                                </div> 
150                            </div> 
151                            <script> 
152                                (function() { 
153                                    const button = document.getElementById("button-video-${videoId}"); 
154                                    const overlay = document.getElementById("video-${videoId}"); 
155                                    const iframe = document.getElementById("youtube-player-${videoId}"); 
156 
157                                    button.addEventListener("click", function() { 
158                                        const videoId = button.dataset.video; 
159 
160                                        iframe.src = "https://www.youtube.com/embed/" + videoId + "?autoplay=1&rel=0"; 
161                                        overlay.style.display = "block"; 
162                                        button.style.display = "none"; 
163                                    }); 
164                                })(); 
165                            </script> 
166                        <#else> 
167                            <@videoBox yt=isYt canto=isCanto video=videoStr poster=posterImg /> 
168                        </#if> 
169                    </div> 
170                    <div class="right component-with-title"> 
171                        <!--Start Module: Highlights Pitch--> 
172                        <div> 
173                            <#if TextInfo.Title.getData() != "" > 
174                                <p class="title title-regular"><@leonardo.escapeTitle title=TextInfo.Title.getData()/></p> 
175                            </#if> 
176                            <#if TextInfo.Title.Description?? && TextInfo.Title.Description.getData() != "" > 
177                                <p class="description body-small"><@leonardo.escapeTitle title=TextInfo.Title.Description.getData()/></p> 
178                            </#if> 
179                        </div> 
180                        <#if TextInfo.Title.Attach.getData() !=''> 
181                            <div class="card-interview centered download"> 
182                                <#list TextInfo.Title.Attach.getSiblings() as node> 
183                                    <#if TextInfo.Title.Attach?? && TextInfo.Title.Attach.getData() != "" && TextInfo.Title.Attach.Label.getData() != ""> 
184                                        <div class="card"> 
185                                            <a href="${TextInfo.Title.Attach.getData()}" target="_blank" class="label-regular" title="${TextInfo.Title.Attach.Label.getData()}" download> 
186                                                <span>${TextInfo.Title.Attach.Label.getData()}</span> 
187                                            </a> 
188                                        </div> 
189                                    </#if> 
190                                </#list> 
191                            </div> 
192                        </#if> 
193                       <#if Links.ExternalTargetURL.getData() !='' || Links.LinkTargetPage.getFriendlyUrl() !=''> 
194                        <div class="flex flex-col gap-4"> 
195                            <#list Links.getSiblings() as node> 
196                     
197                                <#assign externalUrl = node.ExternalTargetURL.getData()!"" /> 
198                                <#assign internalUrl = node.LinkTargetPage.getFriendlyUrl()!"" /> 
199                                <#assign linkText = node.LinkText.getData()!"" /> 
200                     
201                                <#if linkText?has_content && (externalUrl?has_content || internalUrl?has_content)> 
202                     
203                                    <#assign url = externalUrl?has_content?then(externalUrl, internalUrl) /> 
204                     
205                                    <a href="${url}" 
206                                       target="${node.LinkTargetOpenIn.getData()!}" 
207                                       title="${linkText}" 
208                                       class="card-text-arrow"> 
209                                        <p class="body-medium">${linkText}</p> 
210                                    </a> 
211                     
212                                </#if> 
213                            </#list> 
214                        </div> 
215                    </#if> 
216                        <!--End Module: Highlights Pitch--> 
217                    </div> 
218                </div> 
219            </div> 
220        </div> 
221        <!--End Module: Plan Highlights--> 
222    <#else> 
223        <!-- No video selected --> 
224    </#if> 
225<#else> 
226    <#assign siteExpandoBridge = themeDisplay.getScopeGroup().getExpandoBridge() /> 
227    <#assign new_restyle = (siteExpandoBridge.hasAttribute("new-restyle")?then(getterUtil.getBoolean(siteExpandoBridge.getAttribute("new-restyle", false)),false)) /> 
228    <#if new_restyle?? && new_restyle> 
229        <@leonardo.articleInfo .vars "(I3) Video Launch"/> 
230     
231        <#macro videoBox yt canto video poster> 
232     
233            <div class="video-full-width-container-rounded"> 
234                <button 
235                        class="video-full-width" 
236                        title="play report video" 
237                        onclick="playSingleVideo(this)" 
238                        data-video="${video}" 
239
240                    <div class="cover rounded-20"> 
241                        <#if VideoInfo.Image.getData()?? && VideoInfo.Image.getData() != ""> 
242                            <#assign scalingDetails = { 
243                            "desktop": {"alternateImage": {}, "key": "w_768"}, 
244                            "tl": {"alternateImage": VideoInfo.Image.ImageTl!, "key": "h_400"}, 
245                            "tp": {"alternateImage": VideoInfo.Image.ImageTp!, "key": "w_720"}, 
246                            "mobile": {"alternateImage": VideoInfo.Image.ImageM!, "key": "w_596"} }> 
247                            <#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
248                            <picture> 
249                                <source 
250                                        srcset="${posterImg.mobile!}" 
251                                        media="(max-width: 576px)" 
252                                /> 
253                                <source 
254                                        srcset="${posterImg.tablet_portrait!}" 
255                                        media="(max-width: 768px)" 
256
257                                <source 
258                                        srcset="${posterImg.tablet_landscape!}" 
259                                        media="(max-width: 1024px)" 
260
261                                <img class="img-fluid" alt="${posterImg.alt_desktop!}" src="${posterImg.desktop!}" /> 
262                            </picture> 
263                        </#if> 
264     
265                        <div class="btn-play"> 
266                            <img 
267                                    class="icon" 
268                                    src="${themeDisplay.getPathThemeImages()}/img/generic/button-play.svg" 
269                                    alt="play" 
270                            /> 
271                            <img 
272                                    class="icon-hover" 
273                                    src="${themeDisplay.getPathThemeImages()}/img/generic/button-play-hover.svg" 
274                                    alt="play" 
275                            /> 
276                        </div> 
277                    </div> 
278                </button> 
279            </div> 
280        </#macro> 
281     
282        <#if VideoInfo.Video.getData() != "" ||  VideoInfo.YoutubeId.getData() != "" ||  VideoInfo.CantoUrl.getData() != "" > 
283     
284            <#assign scalingDetails = { 
285            "desktop": {"alternateImage": {}, "key": "w_768"}, 
286            "tl": {"alternateImage": VideoInfo.Image.ImageTl!, "key": "h_400"}, 
287            "tp": {"alternateImage": VideoInfo.Image.ImageTp!, "key": "w_720"}, 
288            "mobile": {"alternateImage": VideoInfo.Image.ImageM!, "key": "w_596"} }> 
289            <#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
290            <#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
291     
292            <#assign isYt = (VideoInfo.YoutubeId.getData() != "") > 
293            <#assign isCanto = (VideoInfo.CantoUrl.getData())?has_content && (VideoInfo.CantoUrl.getData() != "") > 
294     
295            <#if (VideoInfo.CantoUrl.getData())?has_content && VideoInfo.CantoUrl.getData() != ""> 
296                <#assign videoStr = VideoInfo.CantoUrl.getData()> 
297            <#elseif VideoInfo.YoutubeId.getData() != ""> 
298                <#assign videoStr = VideoInfo.YoutubeId.getData()> 
299            <#elseif VideoInfo.Video.getSiblings()?has_content> 
300                <#assign videoStr = ""> 
301                <#list VideoInfo.Video.getSiblings() as cur_Video> 
302                    <#assign videoFile = cur_Video.getData()> 
303                    <#assign videoFileType = cur_Video.VideoType.getData()> 
304                    <#if videoStr?? && videoStr != ""> 
305                        <#assign videoStr = videoStr + ","> 
306                    </#if> 
307                    <#assign videoStr = videoStr + "${themeDisplay.getPortalURL()}" + videoFile> 
308                </#list> 
309            </#if> 
310     
311            <!--Start Module: Plan Highlights--> 
312            <div class="container-full-width padding-bottom padding-top"> 
313                <div class="container"> 
314                    <div class="flex-grid-plus-cards video"> 
315                        <div class="left <#if VideoInfo.ImagePosition.getData() == "right">order-2</#if>"> 
316                            <#if VideoInfo.YoutubeId.getData() != ""> 
317                                <div class="video-full-width-container-rounded"> 
318                                    <#assign videoId = VideoInfo.YoutubeId.getData()> 
319                                    <button 
320                                            type="button" 
321                                            class="video-full-width video-yt" 
322                                            title="play report video" 
323                                            data-video="${videoId}" 
324                                            id="button-video-${videoId}" 
325
326                                        <div class="cover rounded-20"> 
327                                            <#if VideoInfo.Image.getData()?? && VideoInfo.Image.getData() != ""> 
328                                                <#assign scalingDetails = { 
329                                                "desktop": {"alternateImage": {}, "key": "w_768"}, 
330                                                "tl": {"alternateImage": VideoInfo.Image.ImageTl!, "key": "h_400"}, 
331                                                "tp": {"alternateImage": VideoInfo.Image.ImageTp!, "key": "w_720"}, 
332                                                "mobile": {"alternateImage": VideoInfo.Image.ImageM!, "key": "w_596"} }> 
333                                                <#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
334                                                <picture> 
335                                                    <source 
336                                                            srcset="${posterImg.mobile!}" 
337                                                            media="(max-width: 576px)" 
338                                                    /> 
339                                                    <source 
340                                                            srcset="${posterImg.tablet_portrait!}" 
341                                                            media="(max-width: 768px)" 
342
343                                                    <source 
344                                                            srcset="${posterImg.tablet_landscape!}" 
345                                                            media="(max-width: 1024px)" 
346
347                                                    <img class="img-fluid" alt="${posterImg.alt_desktop!}" src="${posterImg.desktop!}" /> 
348                                                </picture> 
349                                            </#if> 
350     
351                                            <div class="btn-play"> 
352                                                <img 
353                                                        class="icon" 
354                                                        src="${themeDisplay.getPathThemeImages()}/img/generic/button-play.svg" 
355                                                        alt="play" 
356                                                /> 
357                                                <img 
358                                                        class="icon-hover" 
359                                                        src="${themeDisplay.getPathThemeImages()}/img/generic/button-play-hover.svg" 
360                                                        alt="play" 
361                                                /> 
362                                            </div> 
363                                        </div> 
364                                    </button> 
365                                    <div id="video-${videoId}" class="embed-responsive embed-responsive-16by9" style="display:none;"> 
366                                        <iframe 
367                                                id="youtube-player-${videoId}" 
368                                                width="100%" 
369                                                height="100%" 
370                                                frameborder="0" 
371                                                allow="autoplay; fullscreen; encrypted-media" 
372                                                allowfullscreen 
373                                                playsinline 
374                                        ></iframe> 
375                                    </div> 
376                                </div> 
377                                <script> 
378                                    (function() { 
379                                        const button = document.getElementById("button-video-${videoId}"); 
380                                        const overlay = document.getElementById("video-${videoId}"); 
381                                        const iframe = document.getElementById("youtube-player-${videoId}"); 
382     
383                                        button.addEventListener("click", function() { 
384                                            const videoId = button.dataset.video; 
385     
386                                            iframe.src = "https://www.youtube.com/embed/" + videoId + "?autoplay=1&rel=0"; 
387                                            overlay.style.display = "block"; 
388                                            button.style.display = "none"; 
389                                        }); 
390                                    })(); 
391                                </script> 
392                            <#else> 
393                                <@videoBox yt=isYt canto=isCanto video=videoStr poster=posterImg /> 
394                            </#if> 
395                        </div> 
396                        <div class="right component-with-title"> 
397                            <!--Start Module: Highlights Pitch--> 
398                            <div> 
399                                <#if TextInfo.Title.getData() != "" > 
400                                    <p class="title title-regular"><@leonardo.escapeTitle title=TextInfo.Title.getData()/></p> 
401                                </#if> 
402                                <#if TextInfo.Title.Description?? && TextInfo.Title.Description.getData() != "" > 
403                                    <p class="description body-small"><@leonardo.escapeTitle title=TextInfo.Title.Description.getData()/></p> 
404                                </#if> 
405                            </div> 
406                            <#if TextInfo.Title.Attach.getData() !=''> 
407                                <div class="card-interview centered download"> 
408                                    <#list TextInfo.Title.Attach.getSiblings() as node> 
409                                        <#if TextInfo.Title.Attach?? && TextInfo.Title.Attach.getData() != "" && TextInfo.Title.Attach.Label.getData() != ""> 
410                                            <div class="card"> 
411                                                <a href="${TextInfo.Title.Attach.getData()}" target="_blank" class="label-regular" title="${TextInfo.Title.Attach.Label.getData()}" download> 
412                                                    <span>${TextInfo.Title.Attach.Label.getData()}</span> 
413                                                </a> 
414                                            </div> 
415                                        </#if> 
416                                    </#list> 
417                                </div> 
418                            </#if> 
419                            <#if Links.ExternalTargetURL.getData() !='' || Links.LinkTargetPage.getFriendlyUrl() !=''> 
420                                <div class="flex flex-col gap-4"> 
421                                    <#list Links.getSiblings() as node> 
422                                        <#if node.ExternalTargetURL.getData() !='' && node.LinkText.getData() !=''> 
423                                            <#assign url = node.ExternalTargetURL.getData() /> 
424                                        </#if> 
425                                        <#if node.LinkTargetPage.getFriendlyUrl() !='' && node.LinkText.getData() !=''> 
426                                            <#assign url = node.LinkTargetPage.getFriendlyUrl() /> 
427                                        </#if> 
428                                        <a href="${url}" target ="${node.LinkTargetOpenIn.getData()}" title="${node.LinkText.getData()}" class="card-text-arrow"> 
429                                            <p class="body-medium">${node.LinkText.getData()}</p> 
430                                        </a> 
431                                    </#list> 
432                                </div> 
433                            </#if> 
434                            <!--End Module: Highlights Pitch--> 
435                        </div> 
436                    </div> 
437                </div> 
438            </div> 
439            <!--End Module: Plan Highlights--> 
440        <#else> 
441            <!-- No video selected --> 
442        </#if> 
443    <#else> 
444        <@leonardo.articleInfo .vars "(I3) Video Launch"/> 
445        <#assign rndNamespace = randomNamespace> 
446        <#assign currentLayoutFriendlyURL = themeDisplay.getLayout().getFriendlyURL()?remove_beginning("/") /> 
447     
448        <#if currentLayoutFriendlyURL == "home"> 
449            <#assign cssForTitle = "plan-highlights"> 
450        <#else> 
451            <#assign cssForTitle = "plan-highlights--investors"> 
452        </#if> 
453     
454        <#macro downloadIcon> 
455            <svg xmlns="http://www.w3.org/2000/svg" width="14" height="18" viewBox="0 0 14 18"> 
456                <path fill="#000" fill-rule="nonzero" d="M6.61 12.763l-2.145-2.24a.58.58 0 0 1 0-.796c.211-.22.551-.22.762 0l1.235 1.29V6.75c0-.31.24-.563.538-.563.297 0 .538.252.538.563v4.267l1.235-1.29c.21-.22.551-.22.762 0a.58.58 0 0 1 0 .796l-2.145 2.24a.526.526 0 0 1-.78 0zM12.62 18H1.383C.62 18 0 17.368 0 16.592V5.037c0-.49.19-.968.52-1.314L3.565.544A1.728 1.728 0 0 1 4.82 0h7.797C13.38 0 14 .631 14 1.407v15.186C14 17.37 13.38 18 12.619 18zM4.82 1.125a.682.682 0 0 0-.496.214L1.282 4.52a.755.755 0 0 0-.205.518v11.555c0 .156.137.283.306.283h11.235c.168 0 .305-.127.305-.282V1.407c0-.155-.137-.282-.305-.282H4.821zm-.783 4.5H2.154a.551.551 0 0 1-.539-.563c0-.31.242-.562.539-.562h1.884c.15 0 .27-.126.27-.281V2.25c0-.31.24-.563.538-.563.297 0 .539.252.539.563v1.969c0 .775-.605 1.406-1.347 1.406zm6.193 9.563H3.769a.55.55 0 0 1-.538-.563.55.55 0 0 1 .538-.563h6.462a.55.55 0 0 1 .538.563.55.55 0 0 1-.538.563z"/> 
457            </svg> 
458        </#macro> 
459        <#macro videoBox yt canto video poster> 
460            <div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"> 
461                <div class="plan-highlights--wrapper"> 
462                    <#if canto> 
463                        <div class="leo-video canto-video" 
464                             data-video-data='{ 
465    						&quot;showControls&quot;:true, 
466    						&quot;videoSources&quot;:[ 
467    							"${video}" 
468    						], 
469    						&quot;posters&quot;:{ 
470    							&quot;desktop&quot;:&quot;${poster.desktop!}&quot;, 
471    							&quot;tabletLandscape&quot;:&quot;${poster.tablet_landscape!}&quot;, 
472    							&quot;tabletPortrait&quot;:&quot;${poster.tablet_portrait!}&quot;, 
473    							&quot;mobile&quot;:&quot;${poster.mobile!}&quot; 
474    						}}' 
475                             data-img-url-d="${poster.desktop!}" 
476                             data-img-url-tl="${poster.tablet_landscape!}" 
477                             data-img-url-tp="${poster.tablet_portrait!}" 
478                             data-img-url-m="${poster.mobile!}"> 
479                        </div> 
480                    <#elseif yt> 
481                        <div class="youtube-player-container " 
482                             data-video-id="${video}" 
483                             data-div-id = "${randomNamespace}${video}" 
484                             data-img-url-d="${poster.desktop!}" 
485                             data-img-url-tl="${poster.tablet_landscape!}" 
486                             data-img-url-tp="${poster.tablet_portrait!}" 
487                             data-img-url-m="${poster.mobile!}" 
488                             data-use-no-cookie-domain="true" 
489                             data-play-fullscreen="true" 
490                             data-video-controls="true" 
491                             tabindex="1"> 
492                            <div class="youtube-player" id="${randomNamespace}${video}"></div> 
493                        </div> 
494                    <#else> 
495                        <div class="leo-video" 
496                             data-video-data="{ 
497    						&quot;showControls&quot;:true, 
498    						&quot;videoSources&quot;:[ 
499    							${video} 
500    						], 
501    						&quot;posters&quot;:{ 
502    							&quot;desktop&quot;:&quot;${poster.desktop!}&quot;, 
503    							&quot;tabletLandscape&quot;:&quot;${poster.tablet_landscape!}&quot;, 
504    							&quot;tabletPortrait&quot;:&quot;${poster.tablet_portrait!}&quot;, 
505    							&quot;mobile&quot;:&quot;${poster.mobile!}&quot; 
506    						}}" 
507                             data-img-url-d="${poster.desktop!}" 
508                             data-img-url-tl="${poster.tablet_landscape!}" 
509                             data-img-url-tp="${poster.tablet_portrait!}" 
510                             data-img-url-m="${poster.mobile!}"> 
511                        </div> 
512                    </#if> 
513                </div> 
514            </div> 
515        </#macro> 
516     
517        <#if VideoInfo.Video.getData() != "" ||  VideoInfo.YoutubeId.getData() != "" ||  VideoInfo.CantoUrl.getData() != "" > 
518     
519            <#assign isLeft = (VideoInfo.ImagePosition?? && VideoInfo.ImagePosition.getData() != "" && !(VideoInfo.ImagePosition.getData())?contains("right")) > 
520     
521            <#assign scalingDetails = { 
522            "desktop": {"alternateImage": {}, "key": "w_720"}, 
523            "tl": {"alternateImage": VideoInfo.Image.ImageTl!, "key": "h_695"}, 
524            "tp": {"alternateImage": VideoInfo.Image.ImageTp!, "key": "w_768"}, 
525            "mobile": {"alternateImage": VideoInfo.Image.ImageM!, "key": "w_375"} 
526            }> 
527            <#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
528     
529            <noscript> 
530                <img src="${posterImg.desktop!}" alt='${posterImg.alt_desktop!}'> 
531                <img src="${posterImg.tablet_landscape!}" alt='${posterImg.alt_tablet_landscape!}'> 
532                <img src="${posterImg.tablet_portrait!}" alt='${posterImg.alt_tablet_portrait!}'> 
533                <img src="${posterImg.mobile!}" alt='${posterImg.alt_mobile!}'> 
534            </noscript> 
535     
536            <#assign isYt = (VideoInfo.YoutubeId.getData() != "") > 
537            <#assign isCanto = (VideoInfo.CantoUrl.getData())?has_content && (VideoInfo.CantoUrl.getData() != "") > 
538     
539            <#if (VideoInfo.CantoUrl.getData())?has_content && VideoInfo.CantoUrl.getData() != ""> 
540                <#assign videoStr = VideoInfo.CantoUrl.getData()> 
541            <#elseif VideoInfo.YoutubeId.getData() != ""> 
542                <#assign videoStr = VideoInfo.YoutubeId.getData()> 
543            <#elseif VideoInfo.Video.getSiblings()?has_content> 
544                <#assign videoStr = ""> 
545                <#list VideoInfo.Video.getSiblings() as cur_Video> 
546                    <#assign videoFile = cur_Video.getData()> 
547                    <#assign videoFileType = cur_Video.VideoType.getData()> 
548                    <#if videoStr?? && videoStr != ""> 
549                        <#assign videoStr = videoStr + ","> 
550                    </#if> 
551                    <#assign videoStr = videoStr + "{&quot;src&quot;:&quot;" + videoFile + "&quot;,&quot;type&quot;:&quot;" + videoFileType + "&quot;}"> 
552                </#list> 
553            </#if> 
554     
555            <!--Start Module: Plan Highlights--> 
556            <div class="section-container section-container--fixed"> 
557                <#if TextInfo.Title.isAnchorEnabled?? && getterUtil.getBoolean(TextInfo.Title.isAnchorEnabled.getData())> 
558                    <#assign labelIsLeft = ((TextInfo.Title.isAnchorEnabled.AnchorText.LabelPosition.getData())!"left") == "left"> 
559                    <div class="section-grid layout--tp-col layout--m-col"> 
560                        <#if !labelIsLeft > 
561                            <div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"></div> 
562                        </#if> 
563                        <div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"> 
564                            <!--Start Module: Goto--> 
565                            <#if TextInfo.Title.isAnchorEnabled.AnchorText.getData() != "" > 
566                                <a class='goto ${(!labelIsLeft)?then("goto--icon-left","")}' href="javascript:void(0)" title="Scroll to next section">${TextInfo.Title.isAnchorEnabled.AnchorText.getData()}<span class="icon--goto"></span></a> 
567                            </#if> 
568                            <!--End Module: Goto--> 
569                        </div> 
570                        <#if labelIsLeft> 
571                            <div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"></div> 
572                        </#if> 
573                    </div> 
574                </#if> 
575                <div class="${cssForTitle}"> 
576                    <div class="section-grid ${(!isLeft)?then('layout--tp-col-reverse layout--m-col-reverse','layout--tp-col layout--m-col')}"> 
577                        <#if isLeft > 
578                            <@videoBox yt=isYt canto=isCanto video=videoStr poster=posterImg /> 
579                        </#if> 
580                        <div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"> 
581                            <!--Start Module: Highlights Pitch--> 
582                            <div class="highlights-pitch"> 
583                                <#if TextInfo.Title.getData() != "" > 
584                                    <#if TextInfo.Title.isH1?? && getterUtil.getBoolean(TextInfo.Title.isH1.getData())> 
585                                        <h1 class="highlights-pitch--title"><@leonardo.escapeTitle title=TextInfo.Title.getData()/></h1> 
586                                    <#else> 
587                                        <h2 class="highlights-pitch--title"><@leonardo.escapeTitle title=TextInfo.Title.getData()/></h2> 
588                                    </#if> 
589                                    <#if TextInfo.Title.Description?? && TextInfo.Title.Description.getData() != "" > 
590                                        <p class="highlights-pitch--description"><@leonardo.escapeTitle title=TextInfo.Title.Description.getData()/></p> 
591                                    </#if> 
592                                </#if> 
593                                <#if TextInfo.Title.Attach?? && TextInfo.Title.Attach.getData() != ""> 
594                                    <div class="highlights-pitch--file-downloads"> 
595                                        <#list TextInfo.Title.Attach.getSiblings() as cur_file> 
596                                            <#assign file_info = leonardo.findFileEntryInfo(cur_file.getData()) > 
597                                            <div class="highlights-pitch--file"> 
598                                                <a class="file" 
599                                                   href="${file_info.downloadUrl}" 
600                                                   target="_blank"> 
601                                                    <@downloadIcon /> 
602                                                    <span class="highlights-pitch--file--filename"> 
603    										${(cur_file.Label.getData())!(file_info.title)!} 
604    										</span> 
605                                                </a> 
606                                            </div> 
607                                        </#list> 
608                                    </div> 
609                                </#if> 
610                                <#assign opened = false> 
611                                <#if Links?has_content> 
612                                    <#list Links.getSiblings() as cur_Link> 
613                                        <#assign targetUrl=leonardo.getTargetUrl(cur_Link.ExternalTargetURL, cur_Link.LinkTargetPage)!> 
614                                        <#if targetUrl?has_content> 
615                                            <#assign target=leonardo.getTarget(cur_Link.LinkTargetOpenIn!)!> 
616                                            <#if opened = false> 
617                                                <div class="section-hero-card--targets" > 
618                                                <#assign opened = true> 
619                                            </#if> 
620                                            <div class="section-hero-card--target"> 
621                                                <a class="section-hero-card--target--link" 
622                                                   href="${targetUrl}" 
623                                                   target = "${target}" 
624                                                   title="${cur_Link.LinkText.data!}" > 
625                                                    ${cur_Link.LinkText.data!} 
626                                                    <span class="icon--read-more"></span> 
627                                                </a> 
628                                            </div> 
629                                        </#if> 
630                                    </#list> 
631                                    <#if opened> 
632                                        </div> 
633                                    </#if> 
634                                </#if> 
635                            </div> 
636                            <!--End Module: Highlights Pitch--> 
637                        </div> 
638                        <#if !isLeft > 
639                            <@videoBox yt=isYt canto=isCanto video=videoStr poster=posterImg /> 
640                        </#if> 
641                    </div> 
642                </div> 
643            </div> 
644            <!--End Module: Plan Highlights--> 
645        <#else> 
646            <!-- No video selected --> 
647        </#if> 
648    </#if> 
649</#if> 
OGR_OGR_P1104778

Receive the latest
updates from leonardo

Register
Search overlay background

Mobile navigation menu