1<!DOCTYPE html> 2<html lang="fr-CA"> 3<head> 4 <meta charset="UTF-8" /> 5 6 <meta name="HandheldFriendly" content="True"> 7 <meta name="MobileOptimized" content="320"> 8 <meta name="viewport" content="width=device-width" /> 9 <meta name="format-detection" content="telephone=no"> 10 11 <title>Vidéos | Françoise Sullivan</title> 12 <link rel="profile" href="http://gmpg.org/xfn/11" /> 13 14 <meta name='robots' content='max-image-preview:large' /> 15<link rel="alternate" href="https://sullivan-uneligneimaginaire.ca/capsules/" hreflang="fr" /> 16<link rel="alternate" href="https://sullivan-uneligneimaginaire.ca/en/capsules/" hreflang="en" /> 17<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://sullivan-uneligneimaginaire.ca/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fsullivan-uneligneimaginaire.ca%2Fcapsules%2F" /> 18<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://sullivan-uneligneimaginaire.ca/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fsullivan-uneligneimaginaire.ca%2Fcapsules%2F&format=xml" /> 19<style id="wp-img-auto-sizes-contain-inline-css"> 20img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 21/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 22</style> 23<style id="wp-emoji-styles-inline-css"> 24 25 img.wp-smiley, img.emoji { 26 display: inline !important; 27 border: none !important; 28 box-shadow: none !important; 29 height: 1em !important; 30 width: 1em !important; 31 margin: 0 0.07em !important; 32 vertical-align: -0.1em !important; 33 background: none !important; 34 padding: 0 !important; 35 } 36/*# sourceURL=wp-emoji-styles-inline-css */ 37</style> 38<style id="wp-block-library-inline-css"> 39:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
39--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 40/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 41</style> 42<style id="classic-theme-styles-inline-css"> 43/*! This file is auto-generated */ 44.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 45/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 46</style> 47<style id="wp-block-styles-placeholder-inline-css"> 48:root { --wp-internal-comment: "Placeholder for wp_hoist_late_printed_styles() to replace with the block styles printed at wp_footer." } 49/*# sourceURL=wp-block-styles-placeholder-inline-css */ 50</style> 51<style id="wp-global-styles-placeholder-inline-css"> 52:root { --wp-internal-comment: "Placeholder for wp_hoist_late_printed_styles() to replace with the global-styles printed at wp_footer." } 53/*# sourceURL=wp-global-styles-placeholder-inline-css */ 54</style> 55<link rel='stylesheet' id='style-css-css' href='https://sullivan-uneligneimaginaire.ca/wp-content/themes/francoise-sullivan/style.css?ver=1.4.13' media='all' />
56<script id="theme_strings-js-after"> 57var theme_strings = { 58 "close": "Fermer" 59}; 60//# sourceURL=theme_strings-js-after 61</script>
vendor: 1 bytes, line 61
61
62<script id="theme_settings-js-after"> 63var theme_settings = { 64 "version": "1.4.13", 65 "is_wp": true, 66 "is_dev": false, 67 "is_debug": false, 68 "is_logged_in": false, 69 "url": "https:\/\/sullivan-uneligneimaginaire.ca\/capsules", 70 "home_url": "https:\/\/sullivan-uneligneimaginaire.ca", 71 "page_title": "Vidéos", 72 "images": "https:\/\/sullivan-uneligneimaginaire.ca\/wp-content\/themes\/francoise-sullivan\/assets\/images\/", 73 "scripts": "https:\/\/sullivan-uneligneimaginaire.ca\/wp-content\/themes\/francoise-sullivan\/assets\/js\/dist\/", 74 "styles": "https:\/\/sullivan-uneligneimaginaire.ca\/wp-content\/themes\/francoise-sullivan\/", 75 "cookie_prefix": "francoise-sullivan_" 76}; 77//# sourceURL=theme_settings-js-after 78</script>
vendor: 1 bytes, line 78
78
79<script id="app-js-js" defer src="https://sullivan-uneligneimaginaire.ca/wp-content/themes/francoise-sullivan/assets/js/dist/app.js?ver=1.4.13"></script>
79 80<link rel="https://api.w.org/" href="https://sullivan-uneligneimaginaire.ca/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://sullivan-uneligneimaginaire.ca/wp-json/wp/v2/pages/50" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://sullivan-uneligneimaginaire.ca/xmlrpc.php?rsd" /> 81<meta name="generator" content="WordPress 7.1.3" /> 82<link rel="canonical" href="https://sullivan-uneligneimaginaire.ca/capsules/" /> 83<link rel='shortlink' href='https://sullivan-uneligneimaginaire.ca/?p=50' /> 84 <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 66 bytes, lines 84-85
84 85 <script async src="https://www.googletagmanager.com/gtag/js?id=
85G-RDJ21EFQ4P
vendor: 14 bytes, lines 85-86
85"></script> 86
86<script> 87
vendor: 139 bytes, lines 87-90
87window.dataLayer = window.dataLayer || []; 88 function gtag(){dataLayer.push(arguments);} 89 gtag('js', new Date()); 90 gtag('config', '
90G-RDJ21EFQ4P
vendor: 9 bytes, lines 90-91
90'); 91
91</script>
91 92 <meta property="og:title" content="Vidéos | Françoise Sullivan"> 93 <meta name="twitter:title" content="Vidéos | Françoise Sullivan"> 94 <meta name="description" content="L’exposition virtuelle Une ligne imaginaire s’intéresse aux œuvres réalisées par Françoise Sullivan pendant les années 1970, alors qu’elle découvre de nouveaux courants artistiques comme l’art conceptuel et l’arte povera. "> 95 <meta name="twitter:description" content="L’exposition virtuelle Une ligne imaginaire s’intéresse aux œuvres réalisées par Françoise Sullivan pendant les années 1970, alors qu’elle découvre de nouveaux courants artistiques comme l’art conceptuel et l’arte povera. "> 96 <meta property="og:description" content="L’exposition virtuelle Une ligne imaginaire s’intéresse aux œuvres réalisées par Françoise Sullivan pendant les années 1970, alors qu’elle découvre de nouveaux courants artistiques comme l’art conceptuel et l’arte povera. "> 97 <meta property="og:url" content="https://sullivan-uneligneimaginaire.ca/capsules"> 98 <meta property="og:type" content="website"> 99 <meta property="og:image" content="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/04/FS-Shareable-April2023-1600x900c50x50-0q.jpg?ver=1.4.13"> 100 <meta property="og:image:type" content="image/jpeg"> 101 <meta property="og:image:width" content="1600"> 102 <meta property="og:image:height" content="900"> 103 <meta name="twitter:card" content="summary_large_image"> 104 <meta property="twitter:image" content="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/04/FS-Shareable-April2023-1600x900c50x50-0q.jpg?ver=1.4.13"> 105 <meta property="twitter:image:src" content="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/04/FS-Shareable-April2023-1600x900c50x50-0q.jpg?ver=1.4.13"> 106 <meta property="twitter:image:width" content="1600"> 107 <meta property="twitter:image:height" content="900">
107<script id="website-element-fallback"> 108 var Web = Web || {}; 109 var X = Web.Element = Web.Element || function (){ Web.x=Web.x||[]; Web.x.push(arguments); }; 110 </script>
110 111 <link rel="icon" href="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/01/FS_Favicon_2023-1-150x150.png" sizes="32x32" /> 112<link rel="icon" href="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/01/FS_Favicon_2023-1-300x300.png" sizes="192x192" /> 113<link rel="apple-touch-icon" href="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/01/FS_Favicon_2023-1-300x300.png" /> 114<meta name="msapplication-TileImage" content="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/01/FS_Favicon_2023-1-300x300.png" /> 115</head> 116 117<body class="wp-singular wp-theme-francoise-sullivan is-env-live page page-basic"> 118 <div class="site"> 119 <div> 120 <header class="site-head"><div class="site-head--left alt-links when-desktop"> 121 <div class="menu-left-fr-container"><ul id="menu-left-fr" class="menu" unstyled><li id="menu-item-58" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-58"><a href="https://sullivan-uneligneimaginaire.ca/chronologie/"><span>Chronologie</span></a></li> 122<li id="menu-item-59" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-59"><a href="https://sullivan-uneligneimaginaire.ca/themes/"><span>Thèmes</span></a></li> 123</ul></div></div> 124<div class="site-head--center site-head--title alt-links"> 125 <h1> 126 <span class="when-desktop"><a href="https://sullivan-uneligneimaginaire.ca/" class="home-link">Françoise Sullivan<br>Une ligne imaginaire</a></span> 127 <span class="when-mobile">Vidéos</span> 128 </h1> 129 130 </div> 131<div class="site-head--right alt-links"> 132 <div class="site-head--right-content when-desktop"> 133 <div class="menu-right-fr-container"><ul id="menu-right-fr" class="menu" unstyled><li id="menu-item-60" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-60"><a href="https://sullivan-uneligneimaginaire.ca/information/"><span>Information</span></a></li> 134<li id="menu-item-61" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-50 current_page_item menu-item-61"><a href="https://sullivan-uneligneimaginaire.ca/capsules/" aria-current="page"><span>Vidéos</span></a></li> 135</ul></div> 136 <nav class="languages"><ul unstyled class="languages--list"> <li class="languages--item"><a href="https://sullivan-uneligneimaginaire.ca/en/capsules/" class="languages--link">En</a></li></ul></nav> 137 </div> 138 <div class="when-mobile"> 139 <button unstyled open="menu">Menu</button> 140 </div> 141</div></header> 142 <nav hidden is="container/overlay" data-alias="site-menu" data-animation="fade" data-duration="100" data-toggle-selector="[open="menu"]" class="alt-links site-menu"><h2 element="insideTop"><a href="https://sullivan-uneligneimaginaire.ca/" class="home-link">Françoise Sullivan<br>Une ligne imaginaire</a></h2> 143 144<ul id="menu-mobile" class="menu" unstyled><li id="menu-item-236" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-236"><a href="https://sullivan-uneligneimaginaire.ca/"><span>Accueil</span></a></li> 145<li id="menu-item-237" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-237"><a href="https://sullivan-uneligneimaginaire.ca/chronologie/"><span>Chronologie</span></a></li> 146<li id="menu-item-238" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-238"><a href="https://sullivan-uneligneimaginaire.ca/themes/"><span>Thèmes</span></a></li> 147<li id="menu-item-239" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-239"><a href="https://sullivan-uneligneimaginaire.ca/information/"><span>Information</span></a></li> 148<li id="menu-item-240" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-50 current_page_item menu-item-240"><a href="https://sullivan-uneligneimaginaire.ca/capsules/" aria-current="page"><span>Vidéos</span></a></li> 149</ul><nav class="languages"><ul unstyled class="languages--list"> <li class="languages--item"><a href="https://sullivan-uneligneimaginaire.ca/en/capsules/" class="languages--link">En</a></li></ul></nav></nav> 150 </div> 151 152 <main class="site-main" rich> 153 154 <div class="block block-video-group"><h2 class="block-video-group--heading">Vidéos d’expert·e·s</h2> 155<div class="block-video-group--content"> 156 <a id="video0" track="{"action":"zoom-media","category":"Page: Vid\u00e9os","label":"https:\/\/sullivan-uneligneimaginaire.ca\/wp-content\/uploads\/2023\/03\/louise-dery-clip-3-vf-stf.mp4"}" href="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/louise-dery-clip-3-vf-stf.mp4" class="image is-landscape image--link"><figure role="none" class="image--figure"> 157<div class="image--wrap"><img decoding="async" alt="FS-ExpertVids-1" width="1200" height="800" loading="lazy" lazy src="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/FS-ExpertVids-1.jpg?ver=1.4.13" onload="this.removeAttribute("lazy")" class="image--source image--media img" /></div> 158<figcaption class="image--caption">Louise Déry – Archives et Åuvres</figcaption> 159</figure></a><div hidden is="container/overlay.video" data-root="body" data-animation="fade" data-open-selector="#video0" class="item-video"><h2 element="insideTop">Louise Déry – Archives et Åuvres</h2><figure x="media-player" role="none" data-type="video" data-thumbnail="true" data-provider="native" data-single="true" data-autofocus="false" data-autoplay="false" data-loop="false" data-controls="false" data-lazy="true" class="media-player is-responsive is-video"><div class="media-player--outer"> 160<div class="media-player--wrap media-player--inner" style="position:relative;"> 161<div class="media-player--spacer" style="padding-bottom:var(--media-aspect-ratio, 75%);"></div> 162<div x-el="media" class="media-player--media" style="position:absolute; top:0; left:0; width:100%; height:100%;"><video x-el="player" preload="none" playsinline width="100%" height="100%" src="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/louise-dery-clip-3-vf-stf.mp4"></video></div> 163<div x-el="thumbnail" role="button" tabindex="0" aria-label="Play video" class="media-player--thumbn
163ail is-background is-landscape media-player--thumbnail--source media-player--thumbnail--media img media-player--thumbnail--background" style="background-size:cover; background-position:center; position:absolute; top:0; left:0; width:100%; height:100%; background-image:url('https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/FS-ExpertVids-1.jpg?ver=1.4.13');"></div> 164</div> 165<button class="media-player--icon" type="button" name="toggle-play" unstyled> 166 <svg width="98" role="img" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="none" viewBox="0 0 98 98" aria-labelledby="svg_title_0" class="image is-square image--source image--media img"><title id="svg_title_0">play</title><path shape="circle" d="M49.45 96.7999C75.8493 96.7999 97.25 75.3992 97.25 49C97.25 22.6007 75.8493 1.19995 49.45 1.19995C23.0508 1.19995 1.65002 22.6007 1.65002 49C1.65002 75.3992 23.0508 96.7999 49.45 96.7999Z" fill="white" stroke-miterlimit="10"></path> <path shape="triangle" d="M69.85 47.9L40.05 30.7C39.25 30.2 38.25 30.8 38.25 31.8V66.2C38.25 67.1 39.25 67.7 40.05 67.3L69.85 50.1C70.75 49.6 70.75 48.4 69.85 47.9Z" fill="black"></path></svg> </button> 167 <div class="media-player--controls"> 168 <div class="media-player--controls-top"> 169 <div class="media-player--controls-left"> 170 <button unstyled name="toggle-play"> 171 <span class="when-paused">Jouer</span> 172 <span class="when-playing" hidden>Pause</span> 173 </button> 174 <div class="time"> 175 <span x-el="time">0:00</span>/<span x-el="duration">0:00</span> 176 </div> 177 </div> 178 179 <div class="media-player--controls-right"> 180 <button unstyled name="toggle-mute"> 181 <span class="when-unmuted">Muet</span> 182 <span class="when-muted" hidden>Rétablir le son</span> 183 </button> 184 <button unstyled name="toggle-fullscreen"> 185 <span class="when-isnt-fullscreen">Plein écran</span> 186 <span class="when-is-fullscreen" hidden>Quitter plein écran</span> 187 </button> 188 </div> 189 </div> 190 <div x-el="progress" class="media-player--controls-progress"> 191 <span></span> 192 </div> 193 </div> 194</div></figure></div> 195 <a id="video1" track="{"action":"zoom-media","category":"Page: Vid\u00e9os","label":"https:\/\/sullivan-uneligneimaginaire.ca\/wp-content\/uploads\/2023\/03\/louise-dery-clip-4-vf-stf.mp4"}" href="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/louise-dery-clip-4-vf-stf.mp4" class="image is-portrait image--link"><figure role="none" class="image--figure"> 196<div class="image--wrap"><img decoding="async" alt="2017_Sullivan_publication_couverture-550x704-1" width="550" height="704" loading="lazy" lazy src="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/2017_Sullivan_publication_couverture-550x704-1.jpg?ver=1.4.13" onload="this.removeAttribute("lazy")" class="image--source image--media img" /></div> 197<figcaption class="image--caption">Louise Déry – L’importance de Françoise Sullivan dans l’histoire </figcaption> 198</figure></a><div hidden is="container/overlay.video" data-root="body" data-animation="fade" data-open-selector="#video1" class="item-video"><h2 element="insideTop">Louise Déry – L’importance de Françoise Sullivan dans l’histoire </h2><figure x="media-player" role="none" data-type="video" data-thumbnail="true" data-provider="native" data-single="true" data-autofocus="false" data-autoplay="false" data-loop="false" data-controls="false" data-lazy="true" class="media-player is-responsive is-video"><div class="media-player--outer"> 199<div class="media-player--wrap media-player--inner" style="position:relative;"> 200<div class="media-player--spacer" style="padding-bottom:var(--media-aspect-ratio, 75%);"></div> 201<div x-el="media" class="media-player--media" style="position:absolute; top:0; left:0; width:100%; height:100%;"><video x-el="player" preload="none" playsinline width="100%" height="100%" src="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/louise-dery-clip-4-vf-stf.mp4"></video></div> 202<div x-el="thumbnail" role="button" tabindex="0" aria-label="Play video" class="media-player--thumbn
202ail is-background is-portrait media-player--thumbnail--source media-player--thumbnail--media img media-player--thumbnail--background" style="background-size:cover; background-position:center; position:absolute; top:0; left:0; width:100%; height:100%; background-image:url('https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/2017_Sullivan_publication_couverture-550x704-1.jpg?ver=1.4.13');"></div> 203</div> 204<button class="media-player--icon" type="button" name="toggle-play" unstyled> 205 <svg width="98" role="img" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="none" viewBox="0 0 98 98" aria-labelledby="svg_title_1" class="image is-square image--source image--media img"><title id="svg_title_1">play</title><path shape="circle" d="M49.45 96.7999C75.8493 96.7999 97.25 75.3992 97.25 49C97.25 22.6007 75.8493 1.19995 49.45 1.19995C23.0508 1.19995 1.65002 22.6007 1.65002 49C1.65002 75.3992 23.0508 96.7999 49.45 96.7999Z" fill="white" stroke-miterlimit="10"></path> <path shape="triangle" d="M69.85 47.9L40.05 30.7C39.25 30.2 38.25 30.8 38.25 31.8V66.2C38.25 67.1 39.25 67.7 40.05 67.3L69.85 50.1C70.75 49.6 70.75 48.4 69.85 47.9Z" fill="black"></path></svg> </button> 206 <div class="media-player--controls"> 207 <div class="media-player--controls-top"> 208 <div class="media-player--controls-left"> 209 <button unstyled name="toggle-play"> 210 <span class="when-paused">Jouer</span> 211 <span class="when-playing" hidden>Pause</span> 212 </button> 213 <div class="time"> 214 <span x-el="time">0:00</span>/<span x-el="duration">0:00</span> 215 </div> 216 </div> 217 218 <div class="media-player--controls-right"> 219 <button unstyled name="toggle-mute"> 220 <span class="when-unmuted">Muet</span> 221 <span class="when-muted" hidden>Rétablir le son</span> 222 </button> 223 <button unstyled name="toggle-fullscreen"> 224 <span class="when-isnt-fullscreen">Plein écran</span> 225 <span class="when-is-fullscreen" hidden>Quitter plein écran</span> 226 </button> 227 </div> 228 </div> 229 <div x-el="progress" class="media-player--controls-progress"> 230 <span></span> 231 </div> 232 </div> 233</div></figure></div> 234 <a id="video2" track="{"action":"zoom-media","category":"Page: Vid\u00e9os","label":"https:\/\/sullivan-uneligneimaginaire.ca\/wp-content\/uploads\/2023\/03\/louise-dery-clip-2-vf-stf.mp4"}" href="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/louise-dery-clip-2-vf-stf.mp4" class="image is-landscape image--link"><figure role="none" class="image--figure"> 235<div class="image--wrap"><img decoding="async" alt="FS-ExpertVids-3" width="1200" height="800" loading="lazy" lazy src="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/FS-ExpertVids-3.jpg?ver=1.4.13" onload="this.removeAttribute("lazy")" class="image--source image--media img" /></div> 236<figcaption class="image--caption">Louise Déry – Les années 1970, l’art conceptuel et l’Italie</figcaption> 237</figure></a><div hidden is="container/overlay.video" data-root="body" data-animation="fade" data-open-selector="#video2" class="item-video"><h2 element="insideTop">Louise Déry – Les années 1970, l’art conceptuel et l’Italie</h2><figure x="media-player" role="none" data-type="video" data-thumbnail="true" data-provider="native" data-single="true" data-autofocus="false" data-autoplay="false" data-loop="false" data-controls="false" data-lazy="true" class="media-player is-responsive is-video"><div class="media-player--outer"> 238<div class="media-player--wrap media-player--inner" style="position:relative;"> 239<div class="media-player--spacer" style="padding-bottom:var(--media-aspect-ratio, 75%);"></div> 240<div x-el="media" class="media-player--media" style="position:absolute; top:0; left:0; width:100%; height:100%;"><video x-el="player" preload="none" playsinline width="100%" height="100%" src="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/louise-dery-clip-2-vf-stf.mp4"></video></div> 241<div x-el="thumbnail" role="button" tabindex="0" aria-label="Play video" class="media-player--thumbn
241ail is-background is-landscape media-player--thumbnail--source media-player--thumbnail--media img media-player--thumbnail--background" style="background-size:cover; background-position:center; position:absolute; top:0; left:0; width:100%; height:100%; background-image:url('https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/FS-ExpertVids-3.jpg?ver=1.4.13');"></div> 242</div> 243<button class="media-player--icon" type="button" name="toggle-play" unstyled> 244 <svg width="98" role="img" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="none" viewBox="0 0 98 98" aria-labelledby="svg_title_2" class="image is-square image--source image--media img"><title id="svg_title_2">play</title><path shape="circle" d="M49.45 96.7999C75.8493 96.7999 97.25 75.3992 97.25 49C97.25 22.6007 75.8493 1.19995 49.45 1.19995C23.0508 1.19995 1.65002 22.6007 1.65002 49C1.65002 75.3992 23.0508 96.7999 49.45 96.7999Z" fill="white" stroke-miterlimit="10"></path> <path shape="triangle" d="M69.85 47.9L40.05 30.7C39.25 30.2 38.25 30.8 38.25 31.8V66.2C38.25 67.1 39.25 67.7 40.05 67.3L69.85 50.1C70.75 49.6 70.75 48.4 69.85 47.9Z" fill="black"></path></svg> </button> 245 <div class="media-player--controls"> 246 <div class="media-player--controls-top"> 247 <div class="media-player--controls-left"> 248 <button unstyled name="toggle-play"> 249 <span class="when-paused">Jouer</span> 250 <span class="when-playing" hidden>Pause</span> 251 </button> 252 <div class="time"> 253 <span x-el="time">0:00</span>/<span x-el="duration">0:00</span> 254 </div> 255 </div> 256 257 <div class="media-player--controls-right"> 258 <button unstyled name="toggle-mute"> 259 <span class="when-unmuted">Muet</span> 260 <span class="when-muted" hidden>Rétablir le son</span> 261 </button> 262 <button unstyled name="toggle-fullscreen"> 263 <span class="when-isnt-fullscreen">Plein écran</span> 264 <span class="when-is-fullscreen" hidden>Quitter plein écran</span> 265 </button> 266 </div> 267 </div> 268 <div x-el="progress" class="media-player--controls-progress"> 269 <span></span> 270 </div> 271 </div> 272</div></figure></div> 273 <a id="video3" track="{"action":"zoom-media","category":"Page: Vid\u00e9os","label":"https:\/\/sullivan-uneligneimaginaire.ca\/wp-content\/uploads\/2023\/03\/louise-dery-clip-1-vf-stf.mp4"}" href="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/louise-dery-clip-1-vf-stf.mp4" class="image is-landscape image--link"><figure role="none" class="image--figure"> 274<div class="image--wrap"><img decoding="async" alt="FS-ExpertVids-4" width="1200" height="800" loading="lazy" lazy src="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/FS-ExpertVids-4.jpg?ver=1.4.13" onload="this.removeAttribute("lazy")" class="image--source image--media img" /></div> 275<figcaption class="image--caption">Louise Déry – Les enjeux de la recherche </figcaption> 276</figure></a><div hidden is="container/overlay.video" data-root="body" data-animation="fade" data-open-selector="#video3" class="item-video"><h2 element="insideTop">Louise Déry – Les enjeux de la recherche </h2><figure x="media-player" role="none" data-type="video" data-thumbnail="true" data-provider="native" data-single="true" data-autofocus="false" data-autoplay="false" data-loop="false" data-controls="false" data-lazy="true" class="media-player is-responsive is-video"><div class="media-player--outer"> 277<div class="media-player--wrap media-player--inner" style="position:relative;"> 278<div class="media-player--spacer" style="padding-bottom:var(--media-aspect-ratio, 75%);"></div> 279<div x-el="media" class="media-player--media" style="position:absolute; top:0; left:0; width:100%; height:100%;"><video x-el="player" preload="none" playsinline width="100%" height="100%" src="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/louise-dery-clip-1-vf-stf.mp4"></video></div> 280<div x-el="thumbnail" role="button" tabindex="0" aria-label="Play video" class="media-player--thumbn
280ail is-background is-landscape media-player--thumbnail--source media-player--thumbnail--media img media-player--thumbnail--background" style="background-size:cover; background-position:center; position:absolute; top:0; left:0; width:100%; height:100%; background-image:url('https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/FS-ExpertVids-4.jpg?ver=1.4.13');"></div> 281</div> 282<button class="media-player--icon" type="button" name="toggle-play" unstyled> 283 <svg width="98" role="img" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="none" viewBox="0 0 98 98" aria-labelledby="svg_title_3" class="image is-square image--source image--media img"><title id="svg_title_3">play</title><path shape="circle" d="M49.45 96.7999C75.8493 96.7999 97.25 75.3992 97.25 49C97.25 22.6007 75.8493 1.19995 49.45 1.19995C23.0508 1.19995 1.65002 22.6007 1.65002 49C1.65002 75.3992 23.0508 96.7999 49.45 96.7999Z" fill="white" stroke-miterlimit="10"></path> <path shape="triangle" d="M69.85 47.9L40.05 30.7C39.25 30.2 38.25 30.8 38.25 31.8V66.2C38.25 67.1 39.25 67.7 40.05 67.3L69.85 50.1C70.75 49.6 70.75 48.4 69.85 47.9Z" fill="black"></path></svg> </button> 284 <div class="media-player--controls"> 285 <div class="media-player--controls-top"> 286 <div class="media-player--controls-left"> 287 <button unstyled name="toggle-play"> 288 <span class="when-paused">Jouer</span> 289 <span class="when-playing" hidden>Pause</span> 290 </button> 291 <div class="time"> 292 <span x-el="time">0:00</span>/<span x-el="duration">0:00</span> 293 </div> 294 </div> 295 296 <div class="media-player--controls-right"> 297 <button unstyled name="toggle-mute"> 298 <span class="when-unmuted">Muet</span> 299 <span class="when-muted" hidden>Rétablir le son</span> 300 </button> 301 <button unstyled name="toggle-fullscreen"> 302 <span class="when-isnt-fullscreen">Plein écran</span> 303 <span class="when-is-fullscreen" hidden>Quitter plein écran</span> 304 </button> 305 </div> 306 </div> 307 <div x-el="progress" class="media-player--controls-progress"> 308 <span></span> 309 </div> 310 </div> 311</div></figure></div> 312 <a id="video4" track="{"action":"zoom-media","category":"Page: Vid\u00e9os","label":"https:\/\/sullivan-uneligneimaginaire.ca\/wp-content\/uploads\/2023\/03\/didier-morelli-clip-2-vf-stf.mp4"}" href="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/didier-morelli-clip-2-vf-stf.mp4" class="image is-landscape image--link"><figure role="none" class="image--figure"> 313<div class="image--wrap"><img decoding="async" alt="FS-ExpertVids-5" width="1200" height="800" loading="lazy" lazy src="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/FS-ExpertVids-5.jpg?ver=1.4.13" onload="this.removeAttribute("lazy")" class="image--source image--media img" /></div> 314<figcaption class="image--caption">Didier Morelli – Documenter le geste performatif </figcaption> 315</figure></a><div hidden is="container/overlay.video" data-root="body" data-animation="fade" data-open-selector="#video4" class="item-video"><h2 element="insideTop">Didier Morelli – Documenter le geste performatif </h2><figure x="media-player" role="none" data-type="video" data-thumbnail="true" data-provider="native" data-single="true" data-autofocus="false" data-autoplay="false" data-loop="false" data-controls="false" data-lazy="true" class="media-player is-responsive is-video"><div class="media-player--outer"> 316<div class="media-player--wrap media-player--inner" style="position:relative;"> 317<div class="media-player--spacer" style="padding-bottom:var(--media-aspect-ratio, 75%);"></div> 318<div x-el="media" class="media-player--media" style="position:absolute; top:0; left:0; width:100%; height:100%;"><video x-el="player" preload="none" playsinline width="100%" height="100%" src="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/didier-morelli-clip-2-vf-stf.mp4"></video></div> 319<div x-el="thumbnail" role="button" tabindex="0" aria-label="Play video" class="media-player--thumbn
319ail is-background is-landscape media-player--thumbnail--source media-player--thumbnail--media img media-player--thumbnail--background" style="background-size:cover; background-position:center; position:absolute; top:0; left:0; width:100%; height:100%; background-image:url('https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/FS-ExpertVids-5.jpg?ver=1.4.13');"></div> 320</div> 321<button class="media-player--icon" type="button" name="toggle-play" unstyled> 322 <svg width="98" role="img" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="none" viewBox="0 0 98 98" aria-labelledby="svg_title_4" class="image is-square image--source image--media img"><title id="svg_title_4">play</title><path shape="circle" d="M49.45 96.7999C75.8493 96.7999 97.25 75.3992 97.25 49C97.25 22.6007 75.8493 1.19995 49.45 1.19995C23.0508 1.19995 1.65002 22.6007 1.65002 49C1.65002 75.3992 23.0508 96.7999 49.45 96.7999Z" fill="white" stroke-miterlimit="10"></path> <path shape="triangle" d="M69.85 47.9L40.05 30.7C39.25 30.2 38.25 30.8 38.25 31.8V66.2C38.25 67.1 39.25 67.7 40.05 67.3L69.85 50.1C70.75 49.6 70.75 48.4 69.85 47.9Z" fill="black"></path></svg> </button> 323 <div class="media-player--controls"> 324 <div class="media-player--controls-top"> 325 <div class="media-player--controls-left"> 326 <button unstyled name="toggle-play"> 327 <span class="when-paused">Jouer</span> 328 <span class="when-playing" hidden>Pause</span> 329 </button> 330 <div class="time"> 331 <span x-el="time">0:00</span>/<span x-el="duration">0:00</span> 332 </div> 333 </div> 334 335 <div class="media-player--controls-right"> 336 <button unstyled name="toggle-mute"> 337 <span class="when-unmuted">Muet</span> 338 <span class="when-muted" hidden>Rétablir le son</span> 339 </button> 340 <button unstyled name="toggle-fullscreen"> 341 <span class="when-isnt-fullscreen">Plein écran</span> 342 <span class="when-is-fullscreen" hidden>Quitter plein écran</span> 343 </button> 344 </div> 345 </div> 346 <div x-el="progress" class="media-player--controls-progress"> 347 <span></span> 348 </div> 349 </div> 350</div></figure></div> 351 <a id="video5" track="{"action":"zoom-media","category":"Page: Vid\u00e9os","label":"https:\/\/sullivan-uneligneimaginaire.ca\/wp-content\/uploads\/2023\/03\/didier-morelli-clip-1-vf-stf.mp4"}" href="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/didier-morelli-clip-1-vf-stf.mp4" class="image is-landscape image--link"><figure role="none" class="image--figure"> 352<div class="image--wrap"><img decoding="async" alt="FS-ExpertVids-6" width="1200" height="800" loading="lazy" lazy src="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/FS-ExpertVids-6.jpg?ver=1.4.13" onload="this.removeAttribute("lazy")" class="image--source image--media img" /></div> 353<figcaption class="image--caption">Didier Morelli – Une pratique interdisciplinaire </figcaption> 354</figure></a><div hidden is="container/overlay.video" data-root="body" data-animation="fade" data-open-selector="#video5" class="item-video"><h2 element="insideTop">Didier Morelli – Une pratique interdisciplinaire </h2><figure x="media-player" role="none" data-type="video" data-thumbnail="true" data-provider="native" data-single="true" data-autofocus="false" data-autoplay="false" data-loop="false" data-controls="false" data-lazy="true" class="media-player is-responsive is-video"><div class="media-player--outer"> 355<div class="media-player--wrap media-player--inner" style="position:relative;"> 356<div class="media-player--spacer" style="padding-bottom:var(--media-aspect-ratio, 75%);"></div> 357<div x-el="media" class="media-player--media" style="position:absolute; top:0; left:0; width:100%; height:100%;"><video x-el="player" preload="none" playsinline width="100%" height="100%" src="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/didier-morelli-clip-1-vf-stf.mp4"></video></div> 358<div x-el="thumbnail" role="button" tabindex="0" aria-label="Play video" class="media-player--thumbn
358ail is-background is-landscape media-player--thumbnail--source media-player--thumbnail--media img media-player--thumbnail--background" style="background-size:cover; background-position:center; position:absolute; top:0; left:0; width:100%; height:100%; background-image:url('https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/FS-ExpertVids-6.jpg?ver=1.4.13');"></div> 359</div> 360<button class="media-player--icon" type="button" name="toggle-play" unstyled> 361 <svg width="98" role="img" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="none" viewBox="0 0 98 98" aria-labelledby="svg_title_5" class="image is-square image--source image--media img"><title id="svg_title_5">play</title><path shape="circle" d="M49.45 96.7999C75.8493 96.7999 97.25 75.3992 97.25 49C97.25 22.6007 75.8493 1.19995 49.45 1.19995C23.0508 1.19995 1.65002 22.6007 1.65002 49C1.65002 75.3992 23.0508 96.7999 49.45 96.7999Z" fill="white" stroke-miterlimit="10"></path> <path shape="triangle" d="M69.85 47.9L40.05 30.7C39.25 30.2 38.25 30.8 38.25 31.8V66.2C38.25 67.1 39.25 67.7 40.05 67.3L69.85 50.1C70.75 49.6 70.75 48.4 69.85 47.9Z" fill="black"></path></svg> </button> 362 <div class="media-player--controls"> 363 <div class="media-player--controls-top"> 364 <div class="media-player--controls-left"> 365 <button unstyled name="toggle-play"> 366 <span class="when-paused">Jouer</span> 367 <span class="when-playing" hidden>Pause</span> 368 </button> 369 <div class="time"> 370 <span x-el="time">0:00</span>/<span x-el="duration">0:00</span> 371 </div> 372 </div> 373 374 <div class="media-player--controls-right"> 375 <button unstyled name="toggle-mute"> 376 <span class="when-unmuted">Muet</span> 377 <span class="when-muted" hidden>Rétablir le son</span> 378 </button> 379 <button unstyled name="toggle-fullscreen"> 380 <span class="when-isnt-fullscreen">Plein écran</span> 381 <span class="when-is-fullscreen" hidden>Quitter plein écran</span> 382 </button> 383 </div> 384 </div> 385 <div x-el="progress" class="media-player--controls-progress"> 386 <span></span> 387 </div> 388 </div> 389</div></figure></div> 390 <a id="video6" track="{"action":"zoom-media","category":"Page: Vid\u00e9os","label":"https:\/\/sullivan-uneligneimaginaire.ca\/wp-content\/uploads\/2023\/03\/claude-gosselin-clip-2-vf-stf.mp4"}" href="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/claude-gosselin-clip-2-vf-stf.mp4" class="image is-landscape image--link"><figure role="none" class="image--figure"> 391<div class="image--wrap"><img decoding="async" alt="FS-ExpertVids-7" width="1200" height="800" loading="lazy" lazy src="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/FS-ExpertVids-7.jpg?ver=1.4.13" onload="this.removeAttribute("lazy")" class="image--source image--media img" /></div> 392<figcaption class="image--caption">Claude Gosselin – Le processus créatif </figcaption> 393</figure></a><div hidden is="container/overlay.video" data-root="body" data-animation="fade" data-open-selector="#video6" class="item-video"><h2 element="insideTop">Claude Gosselin – Le processus créatif </h2><figure x="media-player" role="none" data-type="video" data-thumbnail="true" data-provider="native" data-single="true" data-autofocus="false" data-autoplay="false" data-loop="false" data-controls="false" data-lazy="true" class="media-player is-responsive is-video"><div class="media-player--outer"> 394<div class="media-player--wrap media-player--inner" style="position:relative;"> 395<div class="media-player--spacer" style="padding-bottom:var(--media-aspect-ratio, 75%);"></div> 396<div x-el="media" class="media-player--media" style="position:absolute; top:0; left:0; width:100%; height:100%;"><video x-el="player" preload="none" playsinline width="100%" height="100%" src="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/claude-gosselin-clip-2-vf-stf.mp4"></video></div> 397<div x-el="thumbnail" role="button" tabindex="0" aria-label="Play video" class="media-player--thumbn
397ail is-background is-landscape media-player--thumbnail--source media-player--thumbnail--media img media-player--thumbnail--background" style="background-size:cover; background-position:center; position:absolute; top:0; left:0; width:100%; height:100%; background-image:url('https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/FS-ExpertVids-7.jpg?ver=1.4.13');"></div> 398</div> 399<button class="media-player--icon" type="button" name="toggle-play" unstyled> 400 <svg width="98" role="img" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="none" viewBox="0 0 98 98" aria-labelledby="svg_title_6" class="image is-square image--source image--media img"><title id="svg_title_6">play</title><path shape="circle" d="M49.45 96.7999C75.8493 96.7999 97.25 75.3992 97.25 49C97.25 22.6007 75.8493 1.19995 49.45 1.19995C23.0508 1.19995 1.65002 22.6007 1.65002 49C1.65002 75.3992 23.0508 96.7999 49.45 96.7999Z" fill="white" stroke-miterlimit="10"></path> <path shape="triangle" d="M69.85 47.9L40.05 30.7C39.25 30.2 38.25 30.8 38.25 31.8V66.2C38.25 67.1 39.25 67.7 40.05 67.3L69.85 50.1C70.75 49.6 70.75 48.4 69.85 47.9Z" fill="black"></path></svg> </button> 401 <div class="media-player--controls"> 402 <div class="media-player--controls-top"> 403 <div class="media-player--controls-left"> 404 <button unstyled name="toggle-play"> 405 <span class="when-paused">Jouer</span> 406 <span class="when-playing" hidden>Pause</span> 407 </button> 408 <div class="time"> 409 <span x-el="time">0:00</span>/<span x-el="duration">0:00</span> 410 </div> 411 </div> 412 413 <div class="media-player--controls-right"> 414 <button unstyled name="toggle-mute"> 415 <span class="when-unmuted">Muet</span> 416 <span class="when-muted" hidden>Rétablir le son</span> 417 </button> 418 <button unstyled name="toggle-fullscreen"> 419 <span class="when-isnt-fullscreen">Plein écran</span> 420 <span class="when-is-fullscreen" hidden>Quitter plein écran</span> 421 </button> 422 </div> 423 </div> 424 <div x-el="progress" class="media-player--controls-progress"> 425 <span></span> 426 </div> 427 </div> 428</div></figure></div> 429 <a id="video7" track="{"action":"zoom-media","category":"Page: Vid\u00e9os","label":"https:\/\/sullivan-uneligneimaginaire.ca\/wp-content\/uploads\/2023\/03\/claude-gosselin-clip-1-vf-stf.mp4"}" href="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/claude-gosselin-clip-1-vf-stf.mp4" class="image is-landscape image--link"><figure role="none" class="image--figure"> 430<div class="image--wrap"><img decoding="async" alt="FS-ExpertVids-8" width="1200" height="800" loading="lazy" lazy src="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/FS-ExpertVids-8.jpg?ver=1.4.13" onload="this.removeAttribute("lazy")" class="image--source image--media img" /></div> 431<figcaption class="image--caption">Claude Gosselin – La rétrospective de 1981 </figcaption> 432</figure></a><div hidden is="container/overlay.video" data-root="body" data-animation="fade" data-open-selector="#video7" class="item-video"><h2 element="insideTop">Claude Gosselin – La rétrospective de 1981 </h2><figure x="media-player" role="none" data-type="video" data-thumbnail="true" data-provider="native" data-single="true" data-autofocus="false" data-autoplay="false" data-loop="false" data-controls="false" data-lazy="true" class="media-player is-responsive is-video"><div class="media-player--outer"> 433<div class="media-player--wrap media-player--inner" style="position:relative;"> 434<div class="media-player--spacer" style="padding-bottom:var(--media-aspect-ratio, 75%);"></div> 435<div x-el="media" class="media-player--media" style="position:absolute; top:0; left:0; width:100%; height:100%;"><video x-el="player" preload="none" playsinline width="100%" height="100%" src="https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/claude-gosselin-clip-1-vf-stf.mp4"></video></div> 436<div x-el="thumbnail" role="button" tabindex="0" aria-label="Play video" class="media-player--thumbn
436ail is-background is-landscape media-player--thumbnail--source media-player--thumbnail--media img media-player--thumbnail--background" style="background-size:cover; background-position:center; position:absolute; top:0; left:0; width:100%; height:100%; background-image:url('https://sullivan-uneligneimaginaire.ca/wp-content/uploads/2023/03/FS-ExpertVids-8.jpg?ver=1.4.13');"></div> 437</div> 438<button class="media-player--icon" type="button" name="toggle-play" unstyled> 439 <svg width="98" role="img" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="none" viewBox="0 0 98 98" aria-labelledby="svg_title_7" class="image is-square image--source image--media img"><title id="svg_title_7">play</title><path shape="circle" d="M49.45 96.7999C75.8493 96.7999 97.25 75.3992 97.25 49C97.25 22.6007 75.8493 1.19995 49.45 1.19995C23.0508 1.19995 1.65002 22.6007 1.65002 49C1.65002 75.3992 23.0508 96.7999 49.45 96.7999Z" fill="white" stroke-miterlimit="10"></path> <path shape="triangle" d="M69.85 47.9L40.05 30.7C39.25 30.2 38.25 30.8 38.25 31.8V66.2C38.25 67.1 39.25 67.7 40.05 67.3L69.85 50.1C70.75 49.6 70.75 48.4 69.85 47.9Z" fill="black"></path></svg> </button> 440 <div class="media-player--controls"> 441 <div class="media-player--controls-top"> 442 <div class="media-player--controls-left"> 443 <button unstyled name="toggle-play"> 444 <span class="when-paused">Jouer</span> 445 <span class="when-playing" hidden>Pause</span> 446 </button> 447 <div class="time"> 448 <span x-el="time">0:00</span>/<span x-el="duration">0:00</span> 449 </div> 450 </div> 451 452 <div class="media-player--controls-right"> 453 <button unstyled name="toggle-mute"> 454 <span class="when-unmuted">Muet</span> 455 <span class="when-muted" hidden>Rétablir le son</span> 456 </button> 457 <button unstyled name="toggle-fullscreen"> 458 <span class="when-isnt-fullscreen">Plein écran</span> 459 <span class="when-is-fullscreen" hidden>Quitter plein écran</span> 460 </button> 461 </div> 462 </div> 463 <div x-el="progress" class="media-player--controls-progress"> 464 <span></span> 465 </div> 466 </div> 467</div></figure></div> 468 </div></div> 469 </main> 470 </div> 471 472 <div is="cursor" hidden> 473 <span cursor="mosaic">Ouvrir</span> 474 <span cursor="zoom-in">Ouvrir</span> 475 <span cursor="zoom-out">Fermer</span> 476 </div> 477 478 479 <div hidden is="container/overlay" data-alias="site-gdpr" data-open="true" data-hide="fs_gdpr" data-storage="cookie" data-expire="30days" data-position="false" data-action-attr="action" data-hide-selector="[close]" class="site-gdpr"><div class="site-gdpr--message"> 480 <p>Le site utilise des cookies</p> 481</div> 482<div class="site-gdpr--actions"> 483 <button close unstyled>Accepter</button> <button action="reject" unstyled>Rejeter</button></div></div>
484<script type="speculationrules"> 485{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/francoise-sullivan/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 486</script>
vendor: 1 bytes, line 486
486
487<script>Web.Element(function ImageFocus (utils){ 488 // TODO Features for ImageFocus 489 // [ ] add tabindex to the thumbnail, make the video not tab-able, on click on the thumbnail, then be able to tab on the video 490 491 this.$is = false; 492 this.items = []; 493 494 // private functions ------------------------------------------------------- 495 function _val (el, prop, fallback){ 496 var v = el.style.getPropertyValue(prop); 497 return v === '' ? (fallback||0) : parseFloat(v); 498 }; 499 500 function _calc (imageSize, imageRatio, boxSize, boxRatio){ 501 var scale = imageSize / boxSize; 502 // var ratio = ((imageRatio + (0.5 - boxRatio)/scale - 0.5) * scale / (scale - 1)) + 0.5); 503 var ratio = ((imageRatio + (0.5 - boxRatio) - 0.5) + 0.5); 504 return isNaN(ratio) ? '' : ratio * 100 + '%'; 505 }; 506 507 // init -------------------------------------------------------------------- 508 this.init = function (){ 509 this.cache(); 510 }; 511 512 this.cache = function (forced){ 513 var ctx = this; 514 515 utils.dom.get.all('[focus]', function (el){ 516 var type = el.getAttribute('focus') || 'object'; 517 var parent = type === 'background' ? el : el.parentNode; 518 519 var item = { 520 'type' : type, 521 'node' : el, 522 'src' : type === 'background' ? el.style.backgroundImage : el.getAttribute('src'), 523 'parent' : parent, 524 'focusX' : _val(el, '--focus-x', 0.5), 525 'focusY' : _val(el, '--focus-y', 0.5), 526 'originX': _val(el, '--origin-x', 0.5), 527 'originY': _val(el, '--origin-y', 0.5), 528 'imageW' : _val(el, '--media-width'), 529 'imageH' : _val(el, '--media-height'), 530 'width' : 0, 531 'height' : 0 532 }; 533 534 ctx.items.push(item); 535 536 utils.dom.attrs(el, { 537 'focus' : '', 538 'focused' : true, 539 }); 540 }); 541 542 this.render(forced); 543 }; 544 545 this.render = function (forced){ 546 this.each(this.items, function (item){ 547 item.width = item.parent.clientWidth; 548 item.height = item.parent.clientHeight; 549 item.x = _calc(item.imageW, item.focusX, item.width, item.originX); 550 item.y = _calc(item.imageH, item.focusY, item.height, item.originY); 551 552 var ratio = Math.max(item.width / item.imageW, item.height / item.imageH); 553 var cw = (item.imageW * ratio) | 0; 554 var ch = (item.imageH * ratio) | 0; 555 var overflowX = cw > item.width; 556 var overflowY = ch > item.height; 557 558 utils.dom.style(item.node, { 559 '--box-w': item.width, 560 '--box-h': item.height, 561 }, forced); 562 563 utils.dom.classnames(item.node, { 564 'is-overflow-x' : overflowX, 565 'is-overflow-y' : overflowY, 566 }); 567 568 if (item.type === 'background'){ 569 utils.dom.style(item.node, { 570 'background-position-x': item.x, 571 'background-position-y': item.y, 572 }, forced); 573 }else{ 574 utils.dom.style(item.node, { 575 'object-position': item.x + ' ' + item.y, 576 }, forced); 577 } 578 }); 579 }; 580 581 this.refresh = function (){ 582 this.cache(true); 583 }; 584 585 // events ------------------------------------------------------------------ 586 this.onResize = function (){ 587 this.render(); 588 }; 589 590 this.onLoad = function (){ 591 this.render(); 592 }; 593 });</script>
vendor: 1 bytes, line 593
593
594<script>Web.Element(function MediaPlayer (utils){ 595 this.$alias = 'media-player'; 596 this.$style = { 597 '\&' : 'position:relative;', 598 '\&--thumbnail' : 'cursor:pointer; background-size:cover; background-position:center; z-index:2; transition:opacity 0.2s;', 599 '\&--media > *' : 'vertical-align:top;', 600 // responsive ------------------------------------------------------ 601 '\&.is-responsive' : 'width:100%;', 602 '\&.is-responsive \&--media' : 'position:absolute; top:0; left:0; width:100%; height:100%;', 603 '\&.is-responsive \&--media > *' : 'width:100%; height:100%;', 604 '\&.is-responsive \&--thumbnail' : 'position:absolute; top:0; left:0; width:100%; height:100%;', 605 // fullscreen ------------------------------------------------------ 606 '\&[fullscreen] \&--outer' : 'display:flex; flex-direction:column; height:100%;', 607 '\&[fullscreen] \&--inner' : 'margin-top:auto; margin-bottom:auto; height:100%;', 608 '\&[fullscreen] \&--media' : 'height:100%;', 609 // state: controls ------------------------------------------------- 610 '\&[status="playing"] .when-paused' : 'display:none;', 611 '\&:not([status="playing"]) .when-playing' : 'display:none;', 612 '\&[mute] .when-unmuted' : 'display:none;', 613 '\&:not([mute]) .when-muted' : 'display:none;', 614 '\&[fullscreen] .when-isnt-fullscreen' : 'display:none;', 615 '\&:not([fullscreen]) .when-is-fullscreen' : 'display:none;', 616 // state ----------------------------------------------------------- 617 '\&.has-no-controls' : 'cursor:pointer;', 618 '\&:not(.has-thumbnail) \&--thumbnail' : 'opacity:0; pointer-events:none;', 619 }; 620 621 // consts -------------------------------------------------------------- 622 var CLASSES = { 623 HAS_THUMBNAIL : 'has-thumbnail', 624 HAS_NO_CONTROLS: 'has-no-controls', 625 IS_LOADING : 'is-loading', 626 }; 627 var STATUS = { 628 READY : 'ready', 629 PLAYING: 'playing', 630 PAUSED : 'paused', 631 ENDED : 'ended', 632 }; 633 var SOURCES = { 634 YOUTUBE: 'youtube', 635 VIMEO : 'vimeo', 636 NATIVE : 'native', 637 }; 638 639 // Proxy --------------------------------------------------------------- 640 var youtube_api = false; 641 var youtube_queue = []; 642 643 var YoutubePlayer = function (ctx, iframe, ticker){ 644 youtube_queue.push(this); 645 646 // variables ------------------------------------------------------- 647 var self = this; 648 var player = null; 649 var currentSrc = ''; 650 var isMounted = false; 651 652 // init ------------------------------------------------------------ 653 this.init = function (){ 654 if (window.YT && window.YT.Player){ 655 this.mount(); 656 }else if (!youtube_api){ 657 youtube_api = true; 658 utils.require('//www.youtube.com/iframe_api'); 659 } 660 }; 661 662 // events ---------------------------------------------------------- 663 function onReady (e){ 664 player = e.target; 665 // utils.dom.remove(iframe); // remove the old iframe 666 ctx.ready(true); 667 }; 668 669 function onStateChange (e){ 670 if (e.data == YT.PlayerState.PLAYING){ 671 ticker.start(); 672 ctx.status(STATUS.PLAYING); 673 }else if (e.data == YT.PlayerState.PAUSED){ 674 ticker.stop(); 675 ctx.status(STATUS.PAUSED, 1500); // when seeking, youtube pauses the video 676 }else if (e.data == YT.PlayerState.ENDED){ 677 ticker.stop(); 678 ctx.status(STATUS.ENDED); 679 } 680 }; 681 682 // methods --------------------------------------------------------- 683 this.mount = function (){ 684 // it's been mounted already, iOS tries many times 685 if (isMounted) return; 686 isMounted = true; 687 688 var url = currentSrc = iframe.getAttribute('src') || ''; 689 var id = url.match(/((?:v=([^&?]+))|(?:youtu\.be\/([^&?]+)))|(?:\/embed\/([^\/&?]+))/); 690 var id = id[4] || id[3] || id[2]; 691 692 var wrap = document.createElement('div'); 693 utils.dom.add(wrap, 'after', iframe); 694 utils.dom.remove(iframe); 695 696 new YT.Player(wrap, { 697 'videoId' : id, 698 'playerVars': { 699 'enablejsapi' : 1, 700 'showinfo' : 0, 701 'modestbranding' : 1, 702 'playsinline' : 1, 703 'mute' : ctx.data.mute ? 1 : 0, 704 'autoplay' : ctx.data.autoplay ? 1 : 0, 705 'controls' : ctx.data.controls ? 1 : 0, 706 'iv_load_policy' : 3, 707 'origin' : location.origin, 708 'widget_referrer': location.href, 709 'wmode' : "opaque", 710 'allow' : 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture', 711 }, 712 'events' : { 713 'onStateChange' : onStateChange, 714 'onReady' : onReady, 715 }, 716 }); 717 }; 718 719 this.play = function (){ 720 player.playVideo(); 721 }; 722 723 this.pause = function (){ 724 player.pauseVideo(); 725 }; 726 727 this.stop = function (){ 728 player.stopVideo(); 729 player.currentTime = 0; 730 }; 731 732 this.seek = function (v){ 733 player.seekTo(v); 734 }; 735 736 this.mute = function (v){ 737 if (v === false) player.unMute(); 738 else player.mute(); 739 }; 740 741 this.time = function (){ 742 return player.getCurrentTime() || 0; 743 }; 744 745 this.duration = function (){ 746 return player.getDuration(); 747 }; 748 749 this.source = function (){ 750 return currentSrc; 751 }; 752 753 this.init(); 754 }; 755 756 var VimeoPlayer = function (ctx, iframe, ticker){ 757 // variables ------------------------------------------------------- 758 var self = this; 759 var player = null; 760 var time = null; 761 var duration = null; 762 var isMounted = false;
763 var currentSrc= ''; 764 765 // init ------------------------------------------------------------ 766 this.init = function (){ 767 utils.require('//player.vimeo.com/api/player.js', {'ctx':this, 'callback':this.mount}); 768 }; 769 770 // events ---------------------------------------------------------- 771 function onReady (){ 772 player.getDuration().then(function (s){ 773 duration = s; 774 ctx.ready(true); 775 }); 776 }; 777 function onPlay (){ 778 ticker.start(); 779 ctx.status(STATUS.PLAYING); 780 }; 781 function onPause (){ 782 ticker.stop(); 783 ctx.status(STATUS.PAUSED); 784 }; 785 function onEnd (){ 786 ticker.stop(); 787 ctx.status(STATUS.ENDED); 788 }; 789 function onProgress (e){ 790 time = e.seconds; 791 }; 792 793 // methods --------------------------------------------------------- 794 this.mount = function (callback){ 795 function _done (){ ctx.apply(callback); }; 796 797 // it's been mounted already, iOS tries many times 798 if (isMounted) return _done(); 799 isMounted = true; 800 801 var url = currentSrc = iframe.getAttribute('src') || ''; 802 var id = url.match(/(?:video\/([^\/?#]+))(?:\?h\=([^&]+))?/); // player.vimeo.com/video/{{ id }}?h={{ hash }} 803 id = id ? id : url.match(/(?:vimeo\.com\/([^\/?#]+)(?:\/([^\/\?#]+))?)/); // vimeo.com/{{ id }}/{{ hash }} 804 805 var hash= id[2] || ''; 806 id = id[1] || ''; 807 808 player = new Vimeo.Player(iframe, {'id':id}); 809 player.on('loaded', function (){ onReady.call(self); _done(); }); 810 player.on('play', onPlay.bind(this)); 811 player.on('pause', onPause.bind(this)); 812 player.on('ended', onEnd.bind(this)); 813 player.on('timeupdate', onProgress.bind(this)); // get first data onLoad (for the duration)... 814 815 // @fix, sometimes the "loaded" event doesn't trigger 816 // player.on('loaded', onReady.bind(this)); 817 // player.on('play', onPlay.bind(this)); 818 // player.on('pause', onPause.bind(this)); 819 // player.on('ended', onEnd.bind(this)); 820 }; 821 822 this.play = function (){ 823 player && player.play(); 824 }; 825 826 this.pause = function (){ 827 player && player.pause(); 828 }; 829 830 this.stop = function (){ 831 if (player){ 832 player.pause(); 833 player.setCurrentTime(0); 834 } 835 }; 836 837 this.seek = function (v){ 838 player.setCurrentTime(v); 839 }; 840 841 this.mute = function (v){ 842 _warn('TODO Vimeo muting'); 843 844 if (v === false){ 845 846 }else{ 847 848 } 849 }; 850 851 this.time = function (){ 852 return time || 0; 853 }; 854 855 this.duration = function (){ 856 return duration || 0; 857 }; 858 859 this.source = function (){ 860 return currentSrc; 861 }; 862 863 this.init(); 864 }; 865 866 var NativePlayer = function (ctx, el, ticker){ 867 // variables ------------------------------------------------------- 868 var self = this; 869 var player = el; 870 var isReady = false; 871 var isLoading = false; 872 873 // init ------------------------------------------------------------ 874 this.init = function (){ 875 utils.dom.on(player, 'play', onPlay); 876 utils.dom.on(player, 'pause', onPause); 877 utils.dom.on(player, 'seeked', onSeeked); 878 utils.dom.on(player, 'ended', onEnd); 879 880 if (!player.hasAttribute('controls')){ 881 utils.dom.on(player, 'click', onClick); 882 } 883 884 if (player.readyState == 0){ 885 utils.dom.on(player, 'progress loadeddata', {'ctx':this}, onReady); 886 887 (player.preload == 'none') && utils.dom.on(ctx.el, 'visible mousemove mouseenter touchstart', {'once':true, 'ctx':this}, function (e){ 888 this.load(); 889 }); 890 }else{ 891 // @fix need a mini delay for things to work properly 892 setTimeout(function (){ 893 isReady = true; 894 ctx.ready(true); 895 }, 10); 896 } 897 }; 898 899 // events ---------------------------------------------------------- 900 function onReady (e){ 901 if (isReady) return; 902 903 if (e.type === 'loadeddata' || e.target.readyState !== 0){ 904 isReady = true; 905 isLoading = false; 906 utils.dom.removeClass(ctx.el, CLASSES.IS_LOADING); 907 ctx.ready(true); 908 } 909 } 910 function onPlay (){ 911 ticker.start(); 912 ctx.status(STATUS.PLAYING); 913 } 914 function onSeeked (){ 915 // this.play(); 916 } 917 function onPause (){ 918 ticker.stop(); 919 ctx.status(STATUS.PAUSED); 920 } 921 function onEnd (){ 922 ticker.stop(); 923 ctx.status(STATUS.ENDED); 924 } 925 function onClick (){ 926 if (ctx.data.autoplay || ctx.data.loop){
927 _info('The video is set to autoplay or loop'); 928 return; 929 } 930 if (ctx._status === STATUS.PLAYING){ 931 ctx.pause(); 932 }else{ 933 ctx.play(); 934 } 935 } 936 937 // methods --------------------------------------------------------- 938 this.load = function (){ 939 if (isLoading || isReady) return; 940 isLoading = true; 941 player.load(); 942 utils.dom.addClass(ctx.el, CLASSES.IS_LOADING); 943 }; 944 945 this.play = function (){ 946 player && player.play(); 947 }; 948 949 this.pause = function (){ 950 player && player.pause(); 951 }; 952 953 this.stop = function (){ 954 if (player){ 955 player.pause(); 956 player.currentTime = 0; 957 } 958 }; 959 960 this.seek = function (v){ 961 player.currentTime = v || 0; 962 }; 963 964 this.mute = function (v){ 965 if (v === false){ 966 player.muted = false; 967 }else{ 968 player.muted = true; 969 } 970 } 971 972 this.time = function (){ 973 return player.currentTime || 0; 974 }; 975 976 this.duration = function (){ 977 return player.duration || 0; 978 }; 979 980 this.source = function (){ 981 return player.currentSrc; 982 }; 983 984 this.init(); 985 }; 986 987 // Helpers ------------------------------------------------------------- 988 var Fullscreen = function (ctx){ 989 var fullscreenEnabled; 990 var fullscreenElement; 991 var requestFullscreen; 992 var exitFullscreen; 993 var fullscreenchange; 994 995 var video = ctx.el; 996 var iOS = false; 997 998 if ('fullscreenEnabled' in document){ 999 fullscreenEnabled = 'fullscreenEnabled'; 1000 fullscreenElement = 'fullscreenElement'; 1001 requestFullscreen = 'requestFullscreen'; 1002 exitFullscreen = 'exitFullscreen'; 1003 fullscreenchange = 'fullscreenchange'; 1004 }else if ('webkitFullscreenEnabled' in document){ 1005 fullscreenEnabled = 'webkitFullscreenEnabled'; 1006 fullscreenElement = 'webkitFullscreenElement'; 1007 requestFullscreen = 'webkitRequestFullScreen'; 1008 exitFullscreen = 'webkitExitFullscreen'; 1009 fullscreenchange = 'webkitfullscreenchange'; 1010 }else if ('mozFullscreenEnabled' in document){ 1011 fullscreenEnabled = 'mozFullScreenEnabled'; 1012 fullscreenElement = 'mozFullScreenElement'; 1013 requestFullscreen = 'mozRequestFullScreen'; 1014 exitFullscreen = 'mozCancelFullScreen'; 1015 fullscreenchange = 'mozfullscreenchange'; 1016 }else if ('msFullscreenEnabled' in document){ 1017 fullscreenEnabled = 'msFullscreenEnabled'; 1018 fullscreenElement = 'msFullscreenElement'; 1019 requestFullscreen = 'msRequestFullscreen'; 1020 exitFullscreen = 'msExitFullscreen'; 1021 fullscreenchange = 'MSFullscreenChange'; 1022 }else{ 1023 // probably iOS 1024 video = utils.dom.get('video', {'ctx':ctx.el}); 1025 iOS = true; 1026 fullscreenEnabled = true; 1027 fullscreenElement = 'webkitCurrentFullScreenElement'; 1028 requestFullscreen = 'webkitEnterFullscreen'; 1029 exitFullscreen = 'webkitCancelFullScreen'; 1030 fullscreenchange = 'webkitfullscreenchange'; 1031 1032 // not supported 1033 if (!video[requestFullscreen]){ 1034 return function (){ console.warn('Fullscreen isn\'t supported'); }; 1035 } 1036 } 1037 1038 if (!fullscreenEnabled) return false; 1039 1040 var isFullscreen = false; 1041 var el = ctx.el; 1042 var ticker = iOS ? utils.fn.tick({'now':false, 'wait':300}, _change) : null; 1043 1044 utils.dom.event(document, fullscreenchange, _change); 1045 1046 var self = function (v){ 1047 v = v === false ? false : true; 1048 if (v) _open(); 1049 else _close(); 1050 }; 1051 1052 function _change (){ 1053 // iOS event for fullscreen change doenst work, we're using a ticker instead 1054 if (iOS){ 1055 if (!video.webkitDisplayingFullscreen){ 1056 _close(); 1057 return false; 1058 } 1059 }else{ 1060 !document[fullscreenElement] && _close(); 1061 } 1062 } 1063 1064 function _open (){ 1065 if (isFullscreen) return; 1066 1067 video[requestFullscreen](); 1068 el.setAttribute('fullscreen', ''); 1069 1070 ticker && ticker.start(); 1071 1072 self.open = isFullscreen = true; 1073 1074 ctx.trigger('fullscreen-open'); 1075 } 1076 1077 function _close (){ 1078 if (!isFullscreen) return; 1079 1080 document[fullscreenElement] && document[exitFullscreen](); 1081 el.removeAttribute('fullscreen'); 1082 1083 self.open = isFullscreen = false; 1084 1085 ctx.trigger('fullscreen-close'); 1086 } 1087 1088 return self; 1089 }; 1090 1091 // Youtube ------------------------------------------------------------- 1092 var old = window.onYouTubeIframeAPIReady; 1093 window.onYouTubeIframeAPIReady = function (){ 1094 // make sure we don't skip other references to "onYouTubeIframeAPIReady" 1095 old && old();
1096 for (var i in youtube_queue) youtube_queue[i].mount(); 1097 }; 1098 1099 // private functions --------------------------------------------------- 1100 this._active = function (){ 1101 return !!(this.player && this._status); 1102 }; 1103 1104 // init ---------------------------------------------------------------- 1105 this._muted = false; 1106 this.__status = null; 1107 this._isReady = false; 1108 this._readyCallback = null; 1109 1110 this.init = function (data){ 1111 var iframe = this.els.iframe = utils.dom.get('iframe, video, audio', {'ctx':this.el}); 1112 var ticker = utils.fn.tick({'ctx':this, 'wait':300, 'now':false}, ticker_onTick); 1113 1114 if (this.data.provider === SOURCES.YOUTUBE){ 1115 this.player = new YoutubePlayer(this, iframe, ticker); 1116 }else if (this.data.provider === SOURCES.VIMEO){ 1117 this.player = new VimeoPlayer(this, iframe, ticker); 1118 }else if (this.data.provider === SOURCES.NATIVE){ 1119 this.player = new NativePlayer(this, iframe, ticker); 1120 }else{ 1121 // other external types of custom players 1122 } 1123 1124 if (data.autoplay || data.mute){ 1125 this._muted = true; // do not trigger the event on init 1126 this.mute(true); 1127 } 1128 1129 // TODO add more type of interaction, dynamic... 1130 // TODO check if using "hidden" would simplify this code. Might actually not be necessary 1131 // this.els.media && (this.els.media.style.display = ''); 1132 1133 this.fullscreen = this.data.type === 'video' ? new Fullscreen(this) : function (){}; 1134 1135 this.thumb(true); 1136 }; 1137 1138 this.render = function (){ 1139 if (!this.player) return; 1140 1141 var time = this.player.time(); 1142 var duration = this.player.duration(); 1143 var ratio = time / duration; 1144 1145 time = utils.nbr.toTime(time); 1146 duration = utils.nbr.toTime(duration); 1147 1148 if (this.els.time){ 1149 this.els.time.innerHTML = time; 1150 } 1151 if (this.els.duration){ 1152 this.els.duration.innerHTML = duration; 1153 } 1154 1155 !this._isSeeking && utils.dom.style(this.el, { 1156 '--progress' : ratio || 0, 1157 }); 1158 }; 1159 1160 this.status = function (status, delay){ 1161 if ( 1162 status === this._status || 1163 status === this.__status 1164 ) return; 1165 1166 // extra failproof. iOS triggers the same status many times 1167 this.__status = status; 1168 1169 if (status === STATUS.READY){ 1170 this.els.iframe = utils.dom.get('iframe, video, audio', {'ctx':this.el}); 1171 1172 // The status changeds before the video was ready 1173 if (!this._status){ 1174 this._status = status; 1175 this.data.thumbnail && this.thumb(true); 1176 this.render(); 1177 }else{ 1178 return; 1179 } 1180 } 1181 1182 if (status === STATUS.PLAYING){ 1183 // pause the currently playing video 1184 if (this.data.single && this.$static.playing && this.$static.playing !== this){ 1185 this.$static.playing.pause(); 1186 } 1187 1188 this.watching(true, 1500); 1189 this.focus(true); 1190 1191 this.$static.playing = this; 1192 }else if (status === STATUS.PAUSED || status === STATUS.ENDED){ 1193 // @info mini fix, the pause triggers the play automatically if there's no "pause" in between 1194 this.wait(300, function (){ 1195 this.watching(false); 1196 this.focus(false); 1197 this.render(); 1198 }); 1199 } 1200 1201 // delay for showing the thumbnail when pausing 1202 clearTimeout(this.timeout); 1203 this.timeout = this.wait(delay || 0, function (){ 1204 if (status === STATUS.PLAYING){ 1205 this.thumb(false); 1206 }else if (status === STATUS.PAUSED || status === STATUS.ENDED){ 1207 this.thumb(true); 1208 } 1209 1210 this._status = status; 1211 this.el.setAttribute('status', status); 1212 }); 1213 }; 1214 1215 this.thumb = function (show, focus){ 1216 if (show){ 1217 utils.dom.addClass(this.el, CLASSES.HAS_THUMBNAIL); 1218 this.els.iframe.setAttribute('tabindex', '-1'); 1219 1220 if (this.els.thumbnail){ 1221 this.data.thumbnail = true; 1222 } 1223 }else{ 1224 this.data.thumbnail = false; 1225 utils.dom.removeClass(this.el, CLASSES.HAS_THUMBNAIL); 1226 } 1227 }; 1228 1229 this.focus = function (focus){ 1230 // focus on the iframe 1231 if (focus){ 1232 this.els.thumbnail && this.els.thumbnail.setAttribute('tabindex', '-1'); 1233 this.els.iframe.setAttribute('tabindex', '0'); 1234 this.data.autofocus && this.els.iframe.focus(); 1235 // focus on the thumbnail (if it exists) 1236 }else if (this.els.thumbnail && this.els.thumbnail.getAttribute('tabindex') != '0'){ 1237 this.els.iframe.setAttribute('tabindex', '-1'); 1238 this.els.thumbnail.setAttribute('tabindex', '0'); 1239 this.data.autofocus && this.els.thumbnail.focus(); 1240 } 1241 }; 1242 1243 this.ready = function (v){ 1244 this.player.load && this.player.load(); 1245 1246 if (utils.is.fn(v)){ 1247 this._readyCallback = v; 1248 }else if (utils.is.bool(v)){ 1249 this._isReady = v; 1250 this.status(STATUS.READY); 1251 } 1252 1253 if (this._isReady){ 1254 utils.dom.removeClass(this.el, CLASSES.IS_LOADING); 1255 this.apply(this._readyCallback); 1256 }else{ 1257 utils.dom.addClass(this.el, CLASSES.IS_LOADING); 1258 } 1259 }; 1260 1261 // used for distraction free player (eg. when [watching] is there, hide the controls) 1262 this.watching = function (v, timeout){ 1263 // TODO remove "watching" when tabbing or using the keyboard, to make it more accessible 1264 1265 if (utils.is.bool(v)){ 1266 if (v === this.isWatching){ 1267 return v; 1268 } 1269 1270 var self = this; 1271 function _set (){ 1272 if (self._status !== STATUS.PLAYING){ 1273 v = false;
1274 } 1275 1276 if (v) self.el.setAttribute('watching', ''); 1277 else self.el.removeAttribute('watching'); 1278 1279 self.isWatching = !!v; 1280 } 1281 1282 clearTimeout(this.moveTimeout); 1283 if (timeout){ 1284 this.moveTimeout = this.wait(timeout, _set); 1285 }else{ 1286 _set(); 1287 } 1288 } 1289 return this.isWatching; 1290 }; 1291 1292 // events -------------------------------------------------------------- 1293 function ticker_onTick (e){ 1294 this.render(); 1295 1296 // trigger 1297 this.trigger('tick', { 1298 'time' : this.time(), 1299 'duration': this.duration(), 1300 'progress': (this.time() / this.duration()) || 0, 1301 }); 1302 }; 1303 1304 this.play_onTap = function (){ this.play(); }; 1305 this.pause_onTap = function (){ this.pause(); }; 1306 this.stop_onTap = function (){ this.stop(); }; 1307 this.togglePlay_onTap = function (){ (this._status === STATUS.PLAYING) ? this.pause() : this.play(); }; 1308 1309 this.mute_onTap = function (){ this.mute(); }; 1310 this.unmute_onTap = function (){ this.mute(false); }; 1311 this.toggleMute_onTap = function (){ this.mute(!this._muted); }; 1312 1313 this.toggleFullscreen_onTap = function (){ 1314 this.fullscreen(!this.fullscreen.open); 1315 }; 1316 1317 this.progress_onClickDrag = function (e){ 1318 if (e.isEnd){ 1319 this._isSeeking = false; 1320 this.watching(true, 1500); 1321 this.ratio(e.ratioX); 1322 }else{ 1323 this.watching(false); 1324 this._isSeeking = true; 1325 utils.dom.style(this.el, {'--progress':e.ratioX}); 1326 } 1327 }; 1328 1329 this.thumbnail_onTap = function (){ 1330 this.thumb(false); 1331 this.play(); 1332 }; 1333 1334 this.onMousemove = function (e){ 1335 if (this._status !== STATUS.PLAYING) return; 1336 this.watching(false); 1337 this.watching(true, 1500); 1338 }; 1339 1340 // method -------------------------------------------------------------- 1341 this.play = function (){ 1342 // make sure it's mounted 1343 this.ready(function (){ 1344 this.status(STATUS.PLAYING); 1345 this.player.play(); 1346 this.trigger('play'); 1347 }); 1348 }; 1349 1350 this.pause = function (){ 1351 if (!this._active()) return; 1352 this.status(STATUS.PAUSED); 1353 this.player.pause(); 1354 this.trigger('pause'); 1355 }; 1356 1357 this.stop = function (){ 1358 if (!this._active()) return; 1359 this.focus(false); 1360 this.status(STATUS.ENDED); 1361 this.player.stop(); 1362 this.trigger('stop'); 1363 }; 1364 1365 this.mute = function (v){ 1366 v = (v === false ? false : true); 1367 1368 this.player.mute(v); 1369 1370 if (v){ 1371 this.el.setAttribute('mute', ''); 1372 }else{ 1373 this.el.removeAttribute('mute'); 1374 } 1375 1376 // trigger event 1377 if (this._muted != v){ 1378 if (v) this.trigger('mute'); 1379 else this.trigger('unmute'); 1380 } 1381 1382 this._muted = v; 1383 }; 1384 1385 this.ratio = function (v){ 1386 this.ready(function (){ 1387 this.seek(v * this.duration()); 1388 }); 1389 }; 1390 1391 this.seek = function (v){ 1392 this.ready(function (){ 1393 this.player.seek(v); 1394 // this.play(); // automatically play when seeking 1395 }); 1396 }; 1397 1398 this.time = function (){ 1399 return this.player.time(); 1400 }; 1401 1402 this.duration = function (){ 1403 return this.player.duration(); 1404 }; 1405 1406 this.source = function (){ 1407 return this.player.source && this.player.source(); 1408 } 1409 });</script>
1409<style id="global-styles-inline-css"> 1410:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
1410--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
1410.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 1411/*# sourceURL=global-styles-inline-css */ 1412</style> 1413</body> 1414</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.