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 194, 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 194, 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?replace(" ", "%20")!}" 
26                                    media="(max-width: 576px)" 
27                            /> 
28                            <source 
29                                    srcset="${posterImg.tablet_portrait?replace(" ", "%20")!}" 
30                                    media="(max-width: 768px)" 
31
32                            <source 
33                                    srcset="${posterImg.tablet_landscape?replace(" ", "%20")!}" 
34                                    media="(max-width: 1024px)" 
35
36                            <img class="img-fluid" alt="${posterImg.alt_desktop!}" src="${posterImg.desktop?replace(" ", "%20")!}" /> 
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?replace(" ", "%20")!}" 
111                                                        media="(max-width: 576px)" 
112                                                /> 
113                                                <source 
114                                                        srcset="${posterImg.tablet_portrait?replace(" ", "%20")!}" 
115                                                        media="(max-width: 768px)" 
116
117                                                <source 
118                                                        srcset="${posterImg.tablet_landscape?replace(" ", "%20")!}" 
119                                                        media="(max-width: 1024px)" 
120
121                                                <img class="img-fluid" alt="${posterImg.alt_desktop!}" src="${posterImg.desktop?replace(" ", "%20")!}" /> 
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                                            title="<#if TextInfo.Title.getData() != '' ><@leonardo.escapeTitle title=TextInfo.Title.getData()/><#else>video youtube</#if>" 
149                                    ></iframe> 
150                                </div> 
151                            </div> 
152                            <script> 
153                                (function() { 
154                                    const button = document.getElementById("button-video-${videoId}"); 
155                                    const overlay = document.getElementById("video-${videoId}"); 
156                                    const iframe = document.getElementById("youtube-player-${videoId}"); 
157 
158                                    button.addEventListener("click", function() { 
159                                        const videoId = button.dataset.video; 
160 
161                                        iframe.src = "https://www.youtube.com/embed/" + videoId + "?autoplay=1&rel=0"; 
162                                        overlay.style.display = "block"; 
163                                        button.style.display = "none"; 
164                                    }); 
165                                })(); 
166                            </script> 
167                        <#else> 
168                            <@videoBox yt=isYt canto=isCanto video=videoStr poster=posterImg /> 
169                        </#if> 
170                    </div> 
171                    <div class="right component-with-title"> 
172                        <!--Start Module: Highlights Pitch--> 
173                        <div> 
174                            <#if TextInfo.Title.getData() != "" > 
175                                <p class="title title-regular"><@leonardo.escapeTitle title=TextInfo.Title.getData()/></p> 
176                            </#if> 
177                            <#if TextInfo.Title.Description?? && TextInfo.Title.Description.getData() != "" > 
178                                <p class="description body-small"><@leonardo.escapeTitle title=TextInfo.Title.Description.getData()/></p> 
179                            </#if> 
180                        </div> 
181                        <#if TextInfo.Title.Attach.getData() !=''> 
182                            <div class="card-interview centered download"> 
183                                <#list TextInfo.Title.Attach.getSiblings() as node> 
184                                    <#if TextInfo.Title.Attach?? && TextInfo.Title.Attach.getData() != "" && TextInfo.Title.Attach.Label.getData() != ""> 
185                                        <div class="card"> 
186                                            <a href="${TextInfo.Title.Attach.getData()}" target="_blank" class="label-regular" title="${TextInfo.Title.Attach.Label.getData()}"> 
187                                                <span>${TextInfo.Title.Attach.Label.getData()}</span> 
188                                            </a> 
189                                        </div> 
190                                    </#if> 
191                                </#list> 
192                            </div> 
193                        </#if> 
194                       <#if Links.ExternalTargetURL.getData() !='' || Links.LinkTargetPage.getFriendlyUrl() !=''> 
195                        <div class="flex flex-col gap-4"> 
196                            <#list Links.getSiblings() as node> 
197 
198                                <#assign externalUrl = node.ExternalTargetURL.getData()!"" /> 
199                                <#assign internalUrl = node.LinkTargetPage.getFriendlyUrl()!"" /> 
200                                <#assign linkText = node.LinkText.getData()!"" /> 
201 
202                                <#if linkText?has_content && (externalUrl?has_content || internalUrl?has_content)> 
203 
204                                    <#assign url = externalUrl?has_content?then(externalUrl, internalUrl) /> 
205 
206                                    <a href="${url}" 
207                                       target="${node.LinkTargetOpenIn.getData()!}" 
208                                       title="${linkText}" 
209                                       class="card-text-arrow"> 
210                                        <p class="body-medium">${linkText}</p> 
211                                    </a> 
212 
213                                </#if> 
214                            </#list> 
215                        </div> 
216                    </#if> 
217                        <!--End Module: Highlights Pitch--> 
218                    </div> 
219                </div> 
220            </div> 
221        </div> 
222        <!--End Module: Plan Highlights--> 
223    <#else> 
224        <!-- No video selected --> 
225    </#if> 
226<#else> 
227    <#assign siteExpandoBridge = themeDisplay.getScopeGroup().getExpandoBridge() /> 
228    <#assign new_restyle = (siteExpandoBridge.hasAttribute("new-restyle")?then(getterUtil.getBoolean(siteExpandoBridge.getAttribute("new-restyle", false)),false)) /> 
229    <#if new_restyle?? && new_restyle> 
230        <@leonardo.articleInfo .vars "(I3) Video Launch"/> 
231 
232        <#macro videoBox yt canto video poster> 
233 
234            <div class="video-full-width-container-rounded"> 
235                <button 
236                        class="video-full-width" 
237                        title="play report video" 
238                        onclick="playSingleVideo(this)" 
239                        data-video="${video}" 
240
241                    <div class="cover rounded-20"> 
242                        <#if VideoInfo.Image.getData()?? && VideoInfo.Image.getData() != ""> 
243                            <#assign scalingDetails = { 
244                            "desktop": {"alternateImage": {}, "key": "w_768"}, 
245                            "tl": {"alternateImage": VideoInfo.Image.ImageTl!, "key": "h_400"}, 
246                            "tp": {"alternateImage": VideoInfo.Image.ImageTp!, "key": "w_720"}, 
247                            "mobile": {"alternateImage": VideoInfo.Image.ImageM!, "key": "w_596"} }> 
248                            <#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
249                            <picture> 
250                                <source 
251                                        srcset="${posterImg.mobile!}" 
252                                        media="(max-width: 576px)" 
253                                /> 
254                                <source 
255                                        srcset="${posterImg.tablet_portrait!}" 
256                                        media="(max-width: 768px)" 
257
258                                <source 
259                                        srcset="${posterImg.tablet_landscape!}" 
260                                        media="(max-width: 1024px)" 
261
262                                <img class="img-fluid" alt="${posterImg.alt_desktop!}" src="${posterImg.desktop!}" /> 
263                            </picture> 
264                        </#if> 
265 
266                        <div class="btn-play"> 
267                            <img 
268                                    class="icon" 
269                                    src="${themeDisplay.getPathThemeImages()}/img/generic/button-play.svg" 
270                                    alt="play" 
271                            /> 
272                            <img 
273                                    class="icon-hover" 
274                                    src="${themeDisplay.getPathThemeImages()}/img/generic/button-play-hover.svg" 
275                                    alt="play" 
276                            /> 
277                        </div> 
278                    </div> 
279                </button> 
280            </div> 
281        </#macro> 
282 
283        <#if VideoInfo.Video.getData() != "" ||  VideoInfo.YoutubeId.getData() != "" ||  VideoInfo.CantoUrl.getData() != "" > 
284 
285            <#assign scalingDetails = { 
286            "desktop": {"alternateImage": {}, "key": "w_768"}, 
287            "tl": {"alternateImage": VideoInfo.Image.ImageTl!, "key": "h_400"}, 
288            "tp": {"alternateImage": VideoInfo.Image.ImageTp!, "key": "w_720"}, 
289            "mobile": {"alternateImage": VideoInfo.Image.ImageM!, "key": "w_596"} }> 
290            <#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
291            <#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
292 
293            <#assign isYt = (VideoInfo.YoutubeId.getData() != "") > 
294            <#assign isCanto = (VideoInfo.CantoUrl.getData())?has_content && (VideoInfo.CantoUrl.getData() != "") > 
295 
296            <#if (VideoInfo.CantoUrl.getData())?has_content && VideoInfo.CantoUrl.getData() != ""> 
297                <#assign videoStr = VideoInfo.CantoUrl.getData()> 
298            <#elseif VideoInfo.YoutubeId.getData() != ""> 
299                <#assign videoStr = VideoInfo.YoutubeId.getData()> 
300            <#elseif VideoInfo.Video.getSiblings()?has_content> 
301                <#assign videoStr = ""> 
302                <#list VideoInfo.Video.getSiblings() as cur_Video> 
303                    <#assign videoFile = cur_Video.getData()> 
304                    <#assign videoFileType = cur_Video.VideoType.getData()> 
305                    <#if videoStr?? && videoStr != ""> 
306                        <#assign videoStr = videoStr + ","> 
307                    </#if> 
308                    <#assign videoStr = videoStr + "${themeDisplay.getPortalURL()}" + videoFile> 
309                </#list> 
310            </#if> 
311 
312            <!--Start Module: Plan Highlights--> 
313            <div class="container-full-width padding-bottom padding-top"> 
314                <div class="container"> 
315                    <div class="flex-grid-plus-cards video"> 
316                        <div class="left <#if VideoInfo.ImagePosition.getData() == "right">order-2</#if>"> 
317                            <#if VideoInfo.YoutubeId.getData() != ""> 
318                                <div class="video-full-width-container-rounded"> 
319                                    <#assign videoId = VideoInfo.YoutubeId.getData()> 
320                                    <button 
321                                            type="button" 
322                                            class="video-full-width video-yt" 
323                                            title="play report video" 
324                                            data-video="${videoId}" 
325                                            id="button-video-${videoId}" 
326
327                                        <div class="cover rounded-20"> 
328                                            <#if VideoInfo.Image.getData()?? && VideoInfo.Image.getData() != ""> 
329                                                <#assign scalingDetails = { 
330                                                "desktop": {"alternateImage": {}, "key": "w_768"}, 
331                                                "tl": {"alternateImage": VideoInfo.Image.ImageTl!, "key": "h_400"}, 
332                                                "tp": {"alternateImage": VideoInfo.Image.ImageTp!, "key": "w_720"}, 
333                                                "mobile": {"alternateImage": VideoInfo.Image.ImageM!, "key": "w_596"} }> 
334                                                <#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
335                                                <picture> 
336                                                    <source 
337                                                            srcset="${posterImg.mobile!}" 
338                                                            media="(max-width: 576px)" 
339                                                    /> 
340                                                    <source 
341                                                            srcset="${posterImg.tablet_portrait!}" 
342                                                            media="(max-width: 768px)" 
343
344                                                    <source 
345                                                            srcset="${posterImg.tablet_landscape!}" 
346                                                            media="(max-width: 1024px)" 
347
348                                                    <img class="img-fluid" alt="${posterImg.alt_desktop!}" src="${posterImg.desktop!}" /> 
349                                                </picture> 
350                                            </#if> 
351 
352                                            <div class="btn-play"> 
353                                                <img 
354                                                        class="icon" 
355                                                        src="${themeDisplay.getPathThemeImages()}/img/generic/button-play.svg" 
356                                                        alt="play" 
357                                                /> 
358                                                <img 
359                                                        class="icon-hover" 
360                                                        src="${themeDisplay.getPathThemeImages()}/img/generic/button-play-hover.svg" 
361                                                        alt="play" 
362                                                /> 
363                                            </div> 
364                                        </div> 
365                                    </button> 
366                                    <div id="video-${videoId}" class="embed-responsive embed-responsive-16by9" style="display:none;"> 
367                                        <iframe 
368                                                id="youtube-player-${videoId}" 
369                                                width="100%" 
370                                                height="100%" 
371                                                frameborder="0" 
372                                                allow="autoplay; fullscreen; encrypted-media" 
373                                                allowfullscreen 
374                                                playsinline 
375                                        ></iframe> 
376                                    </div> 
377                                </div> 
378                                <script> 
379                                    (function() { 
380                                        const button = document.getElementById("button-video-${videoId}"); 
381                                        const overlay = document.getElementById("video-${videoId}"); 
382                                        const iframe = document.getElementById("youtube-player-${videoId}"); 
383 
384                                        button.addEventListener("click", function() { 
385                                            const videoId = button.dataset.video; 
386 
387                                            iframe.src = "https://www.youtube.com/embed/" + videoId + "?autoplay=1&rel=0"; 
388                                            overlay.style.display = "block"; 
389                                            button.style.display = "none"; 
390                                        }); 
391                                    })(); 
392                                </script> 
393                            <#else> 
394                                <@videoBox yt=isYt canto=isCanto video=videoStr poster=posterImg /> 
395                            </#if> 
396                        </div> 
397                        <div class="right component-with-title"> 
398                            <!--Start Module: Highlights Pitch--> 
399                            <div> 
400                                <#if TextInfo.Title.getData() != "" > 
401                                    <p class="title title-regular"><@leonardo.escapeTitle title=TextInfo.Title.getData()/></p> 
402                                </#if> 
403                                <#if TextInfo.Title.Description?? && TextInfo.Title.Description.getData() != "" > 
404                                    <p class="description body-small"><@leonardo.escapeTitle title=TextInfo.Title.Description.getData()/></p> 
405                                </#if> 
406                            </div> 
407                            <#if TextInfo.Title.Attach.getData() !=''> 
408                                <div class="card-interview centered download"> 
409                                    <#list TextInfo.Title.Attach.getSiblings() as node> 
410                                        <#if TextInfo.Title.Attach?? && TextInfo.Title.Attach.getData() != "" && TextInfo.Title.Attach.Label.getData() != ""> 
411                                            <div class="card"> 
412                                                <a href="${TextInfo.Title.Attach.getData()}" target="_blank" class="label-regular" title="${TextInfo.Title.Attach.Label.getData()}" download> 
413                                                    <span>${TextInfo.Title.Attach.Label.getData()}</span> 
414                                                </a> 
415                                            </div> 
416                                        </#if> 
417                                    </#list> 
418                                </div> 
419                            </#if> 
420                            <#if Links.ExternalTargetURL.getData() !='' || Links.LinkTargetPage.getFriendlyUrl() !=''> 
421                                <div class="flex flex-col gap-4"> 
422                                    <#list Links.getSiblings() as node> 
423                                        <#if node.ExternalTargetURL.getData() !='' && node.LinkText.getData() !=''> 
424                                            <#assign url = node.ExternalTargetURL.getData() /> 
425                                        </#if> 
426                                        <#if node.LinkTargetPage.getFriendlyUrl() !='' && node.LinkText.getData() !=''> 
427                                            <#assign url = node.LinkTargetPage.getFriendlyUrl() /> 
428                                        </#if> 
429                                        <a href="${url}" target ="${node.LinkTargetOpenIn.getData()}" title="${node.LinkText.getData()}" class="card-text-arrow"> 
430                                            <p class="body-medium">${node.LinkText.getData()}</p> 
431                                        </a> 
432                                    </#list> 
433                                </div> 
434                            </#if> 
435                            <!--End Module: Highlights Pitch--> 
436                        </div> 
437                    </div> 
438                </div> 
439            </div> 
440            <!--End Module: Plan Highlights--> 
441        <#else> 
442            <!-- No video selected --> 
443        </#if> 
444    <#else> 
445        <@leonardo.articleInfo .vars "(I3) Video Launch"/> 
446        <#assign rndNamespace = randomNamespace> 
447        <#assign currentLayoutFriendlyURL = themeDisplay.getLayout().getFriendlyURL()?remove_beginning("/") /> 
448 
449        <#if currentLayoutFriendlyURL == "home"> 
450            <#assign cssForTitle = "plan-highlights"> 
451        <#else> 
452            <#assign cssForTitle = "plan-highlights--investors"> 
453        </#if> 
454 
455        <#macro downloadIcon> 
456            <svg xmlns="http://www.w3.org/2000/svg" width="14" height="18" viewBox="0 0 14 18"> 
457                <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"/> 
458            </svg> 
459        </#macro> 
460        <#macro videoBox yt canto video poster> 
461            <div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"> 
462                <div class="plan-highlights--wrapper"> 
463                    <#if canto> 
464                        <div class="leo-video canto-video" 
465                             data-video-data='{ 
466    						&quot;showControls&quot;:true, 
467    						&quot;videoSources&quot;:[ 
468    							"${video}" 
469    						], 
470    						&quot;posters&quot;:{ 
471    							&quot;desktop&quot;:&quot;${poster.desktop!}&quot;, 
472    							&quot;tabletLandscape&quot;:&quot;${poster.tablet_landscape!}&quot;, 
473    							&quot;tabletPortrait&quot;:&quot;${poster.tablet_portrait!}&quot;, 
474    							&quot;mobile&quot;:&quot;${poster.mobile!}&quot; 
475    						}}' 
476                             data-img-url-d="${poster.desktop!}" 
477                             data-img-url-tl="${poster.tablet_landscape!}" 
478                             data-img-url-tp="${poster.tablet_portrait!}" 
479                             data-img-url-m="${poster.mobile!}"> 
480                        </div> 
481                    <#elseif yt> 
482                        <div class="youtube-player-container " 
483                             data-video-id="${video}" 
484                             data-div-id = "${randomNamespace}${video}" 
485                             data-img-url-d="${poster.desktop!}" 
486                             data-img-url-tl="${poster.tablet_landscape!}" 
487                             data-img-url-tp="${poster.tablet_portrait!}" 
488                             data-img-url-m="${poster.mobile!}" 
489                             data-use-no-cookie-domain="true" 
490                             data-play-fullscreen="true" 
491                             data-video-controls="true" 
492                             tabindex="1"> 
493                            <div class="youtube-player" id="${randomNamespace}${video}"></div> 
494                        </div> 
495                    <#else> 
496                        <div class="leo-video" 
497                             data-video-data="{ 
498    						&quot;showControls&quot;:true, 
499    						&quot;videoSources&quot;:[ 
500    							${video} 
501    						], 
502    						&quot;posters&quot;:{ 
503    							&quot;desktop&quot;:&quot;${poster.desktop!}&quot;, 
504    							&quot;tabletLandscape&quot;:&quot;${poster.tablet_landscape!}&quot;, 
505    							&quot;tabletPortrait&quot;:&quot;${poster.tablet_portrait!}&quot;, 
506    							&quot;mobile&quot;:&quot;${poster.mobile!}&quot; 
507    						}}" 
508                             data-img-url-d="${poster.desktop!}" 
509                             data-img-url-tl="${poster.tablet_landscape!}" 
510                             data-img-url-tp="${poster.tablet_portrait!}" 
511                             data-img-url-m="${poster.mobile!}"> 
512                        </div> 
513                    </#if> 
514                </div> 
515            </div> 
516        </#macro> 
517 
518        <#if VideoInfo.Video.getData() != "" ||  VideoInfo.YoutubeId.getData() != "" ||  VideoInfo.CantoUrl.getData() != "" > 
519 
520            <#assign isLeft = (VideoInfo.ImagePosition?? && VideoInfo.ImagePosition.getData() != "" && !(VideoInfo.ImagePosition.getData())?contains("right")) > 
521 
522            <#assign scalingDetails = { 
523            "desktop": {"alternateImage": {}, "key": "w_720"}, 
524            "tl": {"alternateImage": VideoInfo.Image.ImageTl!, "key": "h_695"}, 
525            "tp": {"alternateImage": VideoInfo.Image.ImageTp!, "key": "w_768"}, 
526            "mobile": {"alternateImage": VideoInfo.Image.ImageM!, "key": "w_375"} 
527            }> 
528            <#assign posterImg = leonardo.adaptImage(VideoInfo.Image!, scalingDetails )> 
529 
530            <noscript> 
531                <img src="${posterImg.desktop!}" alt='${posterImg.alt_desktop!}'> 
532                <img src="${posterImg.tablet_landscape!}" alt='${posterImg.alt_tablet_landscape!}'> 
533                <img src="${posterImg.tablet_portrait!}" alt='${posterImg.alt_tablet_portrait!}'> 
534                <img src="${posterImg.mobile!}" alt='${posterImg.alt_mobile!}'> 
535            </noscript> 
536 
537            <#assign isYt = (VideoInfo.YoutubeId.getData() != "") > 
538            <#assign isCanto = (VideoInfo.CantoUrl.getData())?has_content && (VideoInfo.CantoUrl.getData() != "") > 
539 
540            <#if (VideoInfo.CantoUrl.getData())?has_content && VideoInfo.CantoUrl.getData() != ""> 
541                <#assign videoStr = VideoInfo.CantoUrl.getData()> 
542            <#elseif VideoInfo.YoutubeId.getData() != ""> 
543                <#assign videoStr = VideoInfo.YoutubeId.getData()> 
544            <#elseif VideoInfo.Video.getSiblings()?has_content> 
545                <#assign videoStr = ""> 
546                <#list VideoInfo.Video.getSiblings() as cur_Video> 
547                    <#assign videoFile = cur_Video.getData()> 
548                    <#assign videoFileType = cur_Video.VideoType.getData()> 
549                    <#if videoStr?? && videoStr != ""> 
550                        <#assign videoStr = videoStr + ","> 
551                    </#if> 
552                    <#assign videoStr = videoStr + "{&quot;src&quot;:&quot;" + videoFile + "&quot;,&quot;type&quot;:&quot;" + videoFileType + "&quot;}"> 
553                </#list> 
554            </#if> 
555 
556            <!--Start Module: Plan Highlights--> 
557            <div class="section-container section-container--fixed"> 
558                <#if TextInfo.Title.isAnchorEnabled?? && getterUtil.getBoolean(TextInfo.Title.isAnchorEnabled.getData())> 
559                    <#assign labelIsLeft = ((TextInfo.Title.isAnchorEnabled.AnchorText.LabelPosition.getData())!"left") == "left"> 
560                    <div class="section-grid layout--tp-col layout--m-col"> 
561                        <#if !labelIsLeft > 
562                            <div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"></div> 
563                        </#if> 
564                        <div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"> 
565                            <!--Start Module: Goto--> 
566                            <#if TextInfo.Title.isAnchorEnabled.AnchorText.getData() != "" > 
567                                <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> 
568                            </#if> 
569                            <!--End Module: Goto--> 
570                        </div> 
571                        <#if labelIsLeft> 
572                            <div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"></div> 
573                        </#if> 
574                    </div> 
575                </#if> 
576                <div class="${cssForTitle}"> 
577                    <div class="section-grid ${(!isLeft)?then('layout--tp-col-reverse layout--m-col-reverse','layout--tp-col layout--m-col')}"> 
578                        <#if isLeft > 
579                            <@videoBox yt=isYt canto=isCanto video=videoStr poster=posterImg /> 
580                        </#if> 
581                        <div class="grid grid--d50p grid--tl50p grid--tp100p grid--m100p"> 
582                            <!--Start Module: Highlights Pitch--> 
583                            <div class="highlights-pitch"> 
584                                <#if TextInfo.Title.getData() != "" > 
585                                    <#if TextInfo.Title.isH1?? && getterUtil.getBoolean(TextInfo.Title.isH1.getData())> 
586                                        <h1 class="highlights-pitch--title"><@leonardo.escapeTitle title=TextInfo.Title.getData()/></h1> 
587                                    <#else> 
588                                        <h2 class="highlights-pitch--title"><@leonardo.escapeTitle title=TextInfo.Title.getData()/></h2> 
589                                    </#if> 
590                                    <#if TextInfo.Title.Description?? && TextInfo.Title.Description.getData() != "" > 
591                                        <p class="highlights-pitch--description"><@leonardo.escapeTitle title=TextInfo.Title.Description.getData()/></p> 
592                                    </#if> 
593                                </#if> 
594                                <#if TextInfo.Title.Attach?? && TextInfo.Title.Attach.getData() != ""> 
595                                    <div class="highlights-pitch--file-downloads"> 
596                                        <#list TextInfo.Title.Attach.getSiblings() as cur_file> 
597                                            <#assign file_info = leonardo.findFileEntryInfo(cur_file.getData()) > 
598                                            <div class="highlights-pitch--file"> 
599                                                <a class="file" 
600                                                   href="${file_info.downloadUrl}" 
601                                                   target="_blank"> 
602                                                    <@downloadIcon /> 
603                                                    <span class="highlights-pitch--file--filename"> 
604    										${(cur_file.Label.getData())!(file_info.title)!} 
605    										</span> 
606                                                </a> 
607                                            </div> 
608                                        </#list> 
609                                    </div> 
610                                </#if> 
611                                <#assign opened = false> 
612                                <#if Links?has_content> 
613                                    <#list Links.getSiblings() as cur_Link> 
614                                        <#assign targetUrl=leonardo.getTargetUrl(cur_Link.ExternalTargetURL, cur_Link.LinkTargetPage)!> 
615                                        <#if targetUrl?has_content> 
616                                            <#assign target=leonardo.getTarget(cur_Link.LinkTargetOpenIn!)!> 
617                                            <#if opened = false> 
618                                                <div class="section-hero-card--targets" > 
619                                                <#assign opened = true> 
620                                            </#if> 
621                                            <div class="section-hero-card--target"> 
622                                                <a class="section-hero-card--target--link" 
623                                                   href="${targetUrl}" 
624                                                   target = "${target}" 
625                                                   title="${cur_Link.LinkText.data!}" > 
626                                                    ${cur_Link.LinkText.data!} 
627                                                    <span class="icon--read-more"></span> 
628                                                </a> 
629                                            </div> 
630                                        </#if> 
631                                    </#list> 
632                                    <#if opened> 
633                                        </div> 
634                                    </#if> 
635                                </#if> 
636                            </div> 
637                            <!--End Module: Highlights Pitch--> 
638                        </div> 
639                        <#if !isLeft > 
640                            <@videoBox yt=isYt canto=isCanto video=videoStr poster=posterImg /> 
641                        </#if> 
642                    </div> 
643                </div> 
644            </div> 
645            <!--End Module: Plan Highlights--> 
646        <#else> 
647            <!-- No video selected --> 
648        </#if> 
649    </#if> 
650</#if> 
OGR_OGR_P1104778

Receive the latest
updates from leonardo

Register
Search overlay background

Mobile navigation menu