1<!DOCTYPE html> 2<html lang="en-US"> 3<head > 4<meta charset="UTF-8" /> 5<meta name="viewport" content="width=device-width, initial-scale=1" /> 6 <meta property="fb:admins" content="1140409510" /> 7 <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 8 <meta property="fb:admins" content="107031532675062" /> 9 <meta name="msvalidate.01" content="40BA1B879066C83CDFCA374CA4B490C3" /> 10 <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> 11 12 <!-- This site is optimized with the Yoast SEO plugin v28.5 - https://yoast.com/product/yoast-seo-wordpress/ --> 13 <title>Ingeteam develops new offshore power converter product range up to 18MW</title> 14 <meta name="description" content="Ingeteam, an independent global supplier of electrical conversion and turbine control equipment, announced that a recent in-house R&D study has" /> 15 <link rel="canonical" href="https://www.windpowerengineering.com/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw/" /> 16 <meta name="twitter:card" content="summary_large_image" /> 17 <meta name="twitter:title" content="Ingeteam develops new offshore power converter product range up to 18MW" /> 18 <meta name="twitter:description" content="Ingeteam, an independent global supplier of electrical conversion and turbine control equipment, announced that a recent in-house R&D study has" /> 19 <meta name="twitter:image" content="https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022.jpg" /> 20 <meta name="twitter:creator" content="@windpower_eng" /> 21 <meta name="twitter:site" content="@windpower_eng" /> 22 <meta name="twitter:label1" content="Written by" /> 23 <meta name="twitter:data1" content="Sponsored Content" /> 24 <meta name="twitter:label2" content="Est. reading time" /> 25 <meta name="twitter:data2" content="4 minutes" /> 26
26<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/#article","isPartOf":{"@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/"},"author":{"name":"Sponsored Content","@id":"https:\/\/www.windpowerengineering.com\/#\/schema\/person\/7cf80daa4c30b290f6c5aec60a2fa8d6"},"headline":"Ingeteam develops new offshore power converter product range up to 18MW","datePublished":"2022-11-16T16:55:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/"},"wordCount":706,"image":{"@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/#primaryimage"},"thumbnailUrl":"https:\/\/www.windpowerengineering.com\/wp-content\/uploads\/2022\/11\/ingeteam-sponsored-featured-image-november2022.jpg","keywords":["ingeteam"],"articleSection":["Sponsored Content"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/","url":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/","name":"Ingeteam develops new offshore power converter product range up to 18MW","isPartOf":{"@id":"https:\/\/www.windpowerengineering.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/#primaryimage"},"image":{"@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/#primaryimage"},"thumbnailUrl":"https:\/\/www.windpowerengineering.com\/wp-content\/uploads\/2022\/11\/ingeteam-sponsored-featured-image-november2022.jpg","datePublished":"2022-11-16T16:55:45+00:00","author":{"@id":"https:\/\/www.windpowerengineering.com\/#\/schema\/person\/7cf80daa4c30b290f6c5aec60a2fa8d6"},"description":"Ingeteam, an independent global supplier of electrical conversion and turbine control equipment, announced that a recent in-house R&D study has","breadcrumb":{"@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/#primaryimage","url":"https:\/\/www.windpowerengineering.com\/wp-content\/uploads\/2022\/11\/ingeteam-sponsored-featured-image-november2022.jpg","contentUrl":"https:\/\/www.windpowerengineering.com\/wp-content\/uploads\/2022\/11\/ingeteam-sponsored-featured-image-november2022.jpg","width":770,"height":513},{"@type":"BreadcrumbList","@id":"https:\/\/www.windpowerengineering.com\/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.windpowerengineering.com\/"},{"@type":"ListItem","position":2,"name":"Recent Windpower Articles","item":"https:\/\/www.windpowerengineering.com\/recent-windpower-articles\/"},{"@type":"ListItem","position":3,"name":"Ingeteam develops new offshore power converter product range up to 18MW"}]},{"@type":"WebSite","@id":"https:\/\/www.windpowerengineering.com\/#website","url":"https:\/\/www.windpowerengineering.com\/","name":"Windpower Engineering & Development","description":"The technical resource for wind power profitability","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.windpowerengineering.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.windpowerengineering.com\/#\/schema\/person\/7cf80daa4c30b290f6c5aec60a2fa8d6","name":"Sponsored Content","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a147d255d7dc09ac6a63ffd11252bf58c7d1f42f366b90996e012e3020eb8252?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a147d255d7dc09ac6a63ffd11252bf58c7d1f42f366b90996e012e3020eb8252?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a147d255d7dc09ac6a63ffd11252bf58c7d1f42f366b90996e012e3020eb8252?s=96&d=mm&r=g","caption":"Sponsored Content"},"url":"https:\/\/www.windpowerengineering.com\/author\/shulett\/"}]}</script>
26 27 <!-- / Yoast SEO plugin. --> 28 29 30<link rel='dns-prefetch' href='//scripts.wtwhmedia.com' /> 31<link rel='dns-prefetch' href='//fonts.googleapis.com' /> 32<link rel="alternate" type="application/rss+xml" title="Windpower Engineering & Development » Feed" href="https://www.windpowerengineering.com/feed/" /> 33<link rel="alternate" type="application/rss+xml" title="Windpower Engineering & Development » Comments Feed" href="https://www.windpowerengineering.com/comments/feed/" /> 34<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.windpowerengineering.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.windpowerengineering.com%2Fingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw%2F" /> 35<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.windpowerengineering.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.windpowerengineering.com%2Fingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw%2F&format=xml" /> 36<style id="wp-img-auto-sizes-contain-inline-css"> 37img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 38/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 39</style> 40<link rel='stylesheet' id='theme-wtwh-amplifying-css' href='https://www.windpowerengineering.com/wp-content/themes/ThemeWTWH/style.css?ver=1749457156' media='all' /> 41<style id="wp-emoji-styles-inline-css"> 42 43 img.wp-smiley, img.emoji { 44 display: inline !important; 45 border: none !important; 46 box-shadow: none !important; 47 height: 1em !important; 48 width: 1em !important; 49 margin: 0 0.07em !important; 50 vertical-align: -0.1em !important; 51 background: none !important; 52 padding: 0 !important; 53 } 54/*# sourceURL=wp-emoji-styles-inline-css */ 55</style> 56<style id="wp-block-library-inline-css"> 57: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;
57--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}} 58 59/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 60</style> 61<style id="classic-theme-styles-inline-css"> 62/*! This file is auto-generated */ 63.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} 64/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 65</style> 66 67<style id="global-styles-inline-css"> 68: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,
680) 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%);--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;}
68.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;} 69/*# sourceURL=global-styles-inline-css */ 70</style> 71 72<link rel='stylesheet' id='buttons-css' href='https://www.windpowerengineering.com/wp-includes/css/buttons.min.css?ver=7.1.1' media='all' /> 73<link rel='stylesheet' id='dashicons-css' href='https://www.windpowerengineering.com/wp-includes/css/dashicons.min.css?ver=7.1.1' media='all' /> 74<link rel='stylesheet' id='mediaelement-css' href='https://www.windpowerengineering.com/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css?ver=4.2.17' media='all' /> 75<link rel='stylesheet' id='wp-mediaelement-css' href='https://www.windpowerengineering.com/wp-includes/js/mediaelement/wp-mediaelement.min.css?ver=7.1.1' media='all' /> 76<link rel='stylesheet' id='media-views-css' href='https://www.windpowerengineering.com/wp-includes/css/media-views.min.css?ver=7.1.1' media='all' /> 77<link rel='stylesheet' id='imgareaselect-css' href='https://www.windpowerengineering.com/wp-includes/js/imgareaselect/imgareaselect.css?ver=0.9.8' media='all' /> 78<link rel='stylesheet' id='frontend-sponsored-ads-css-css' href='https://www.windpowerengineering.com/wp-content/plugins/sponsored-content-ad/css/frontend-sponsored-ads.css?ver=1.01202609241790241459' media='all' /> 79<link rel='stylesheet' id='ea-fonts-css' href='https://fonts.googleapis.com/css?family=Open+Sans:300,700&ver=7.1.1' media='all' /> 80<link rel='stylesheet' id='ea-style-css' href='https://www.windpowerengineering.com/wp-content/themes/ThemeWTWH/assets/css/main.css?ver=1749457156' media='all' />
81<script id="jquery-core-js" src="https://www.windpowerengineering.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 81
81
82<script id="jquery-migrate-js" src="https://www.windpowerengineering.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
vendor: 1 bytes, line 82
82
83<script id="utils-js-extra"> 84var userSettings = {"url":"/","uid":"0","time":"1790241459","secure":"1"}; 85//# sourceURL=utils-js-extra 86</script>
vendor: 1 bytes, line 86
86
87<script id="utils-js" src="https://www.windpowerengineering.com/wp-includes/js/utils.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 87
87
88<script id="moxiejs-js" src="https://www.windpowerengineering.com/wp-includes/js/plupload/moxie.min.js?ver=1.3.5.1"></script>
vendor: 1 bytes, line 88
88
89<script id="plupload-js" src="https://www.windpowerengineering.com/wp-includes/js/plupload/plupload.min.js?ver=2.1.9"></script>
vendor: 1 bytes, line 89
89
90<script id="frontend-sponsored-ads-script-js" src="https://www.windpowerengineering.com/wp-content/plugins/sponsored-content-ad/js/frontend-sponsored-ads.js"></script>
vendor: 1 bytes, line 90
90
91<script id="wtwh-uni-gam-unified-ad-logic-js-extra"> 92var wtwh_gam_ad_config = {"slots":[{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_header","div_id":"div-gpt-wpe-header","desktop_sizes":["728x90"],"mobile_sizes":["300x250"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_interstitial","div_id":"div-gpt-wpe_interstitial","desktop_sizes":["640x480"],"mobile_sizes":["0x0"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_wallpaper","div_id":"div-gpt-wpe_wallpaper","desktop_sizes":["1x1"],"mobile_sizes":["1x1"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"wallpaper"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_allstreamflex","div_id":"div-gpt-wpe_allstreamflex","desktop_sizes":["1x1"],"mobile_sizes":["1x1"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_allstreamprelude","div_id":"div-gpt-wpe_allstreamprelude","desktop_sizes":["1x1"],"mobile_sizes":["1x1"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_sidebar1","div_id":"div-gpt-wpe_sidebar1","desktop_sizes":["300x250","300x600"],"mobile_sizes":["300x250"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_sidebar2","div_id":"div-gpt-wpe_sidebar2","desktop_sizes":["300x250","300x600"],"mobile_sizes":["300x250"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_sidebarbottom","div_id":"div-gpt-wpe_sidebarbottom","desktop_sizes":["300x250","300x600"],"mobile_sizes":["300x250"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_sidebar1","div_id":"div-gpt-wpe-sidebar-ad","desktop_sizes":["300x250","300x600"],"mobile_sizes":["300x250"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_sidebarbottom","div_id":"div-gpt-wpe_sidebarbottom_home","desktop_sizes":["300x250","300x600"],"mobile_sizes":["300x250"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_sidebarbottom","div_id":"div-gpt-wpe_sidebarbottom_primary","de
92sktop_sizes":["300x250","300x600"],"mobile_sizes":["300x250"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"},{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_largeleader","div_id":"jumbo-banner-ad-container","desktop_sizes":["970x90","970x250"],"mobile_sizes":["0x0"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"display"}],"prestitial":{"account_id":"5272491","network_code":"renew_network","ad_unit_code":"wpe_prestitial","div_id":"gam-holder-prestitial-banner","desktop_sizes":["640x480"],"mobile_sizes":["300x225"],"targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"skip_ads":true,"ad_type":"prestitial"},"enable_single_request":"","collapse_empty_divs":"1","page_url":"https://www.windpowerengineering.com/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw/","default_page_targeting":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"},"auto_display_ads":"1","lazy_load_ads":"","load_gpt_library":"","has_keyword_ads":"0"}; 93var wtwh_gam_ga4_targeting_values = {"ga4_targeting_values":{"articletitle":"ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw","cat_target":"ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY","contentHash":"ea7b59f8753211776897a2cac758ae46","category":"Sponsored Content","ParentCategory":"Sponsored Content"}}; 94//# sourceURL=wtwh-uni-gam-unified-ad-logic-js-extra 95</script>
vendor: 1 bytes, line 95
95
96<script id="wtwh-uni-gam-unified-ad-logic-js" src="https://www.windpowerengineering.com/wp-content/plugins/wtwh-universal-gam/assets/js/frontend/ad-config/unified-ad-logic.js?ver=1790241459"></script>
96 97<link rel="https://api.w.org/" href="https://www.windpowerengineering.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.windpowerengineering.com/wp-json/wp/v2/posts/49768" /><link rel='shortlink' href='https://www.windpowerengineering.com/?p=49768' /> 98<meta property="og:description" content="Ingeteam, an independent global supplier of electrical conversion and turbine control equipment, announced that a recent in-house R&D study has allowed them to work out the optimal electrical power conversion designs for offshore wind turbines up to 18MW. Ingeteam says it designed its new medium voltage full power converter range âas a response to some…"> 99<meta property="og:image" content="https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022-150x150.jpg"> 100<meta property="og:site_name" content="Windpower Engineering & Development"> 101<meta property="og:title" content="Ingeteam develops new offshore power converter product range up to 18MW"> 102<meta property="og:type" content="article"> 103<meta property="og:url" content="https://www.windpowerengineering.com/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw/"> 104<meta property="og:locale" content="en_US"> 105<!-- Google Tag Manager for Glboal Container-->
106<script>
vendor: 327 bytes, lines 106-110
106(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 107new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 108j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 109'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 110})(window,document,'script','dataLayer','
110GTM-MMC9PJ9
vendor: 3 bytes, line 110
110');
110</script>
110 111<!-- End Google Tag Manager --> 112 113 114<!-- Google Tag Manager -->
115<script>
vendor: 327 bytes, lines 115-119
115(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 116new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 117j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 118'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 119})(window,document,'script','dataLayer','
119GTM-5WXXHJ7
vendor: 3 bytes, line 119
119');
119</script>
119 120<!-- End Google Tag Manager --> 121 122 123 124 125 126 127 128 129 130 131 132<style> 133#interContainer{ 134position: absolute; 135width: 690px; /*Width of interstitial box*/ 136left: 0; 137top: 0; 138padding: 15px; 139padding-top: 0; 140background-color: #ffffff; 141 142visibility: hidden; 143z-index: 600; 144} 145 146#interContainer .headerbar{ /*CSS for header bar of interstitial box*/ 147color: gray; 148padding: 5px 0; 149text-align: right; 150} 151 152#interContainer .headerbar a{ /*CSS for header bar links of interstitial box*/ 153font-size: 120%; 154text-decoration: none; 155} 156 157 158#interContent{ /*CSS for div that holds the content to show*/ 159 160 161background-color: white; 162} 163 164#interVeil{ /*CSS for background veil that covers entire page while interstitial box is visible*/ 165position: absolute; 166background: black url(/interstitial/blackdot.gif); 167right: 0; 168width: 10px; 169top: 0; 170z-index: 599; 171visibility: hidden; 172filter:progid:DXImageTransform.Microsoft.alpha(opacity=80); 173opacity: 0.8; 174} 175 176 177 178</style><link rel="icon" href="https://www.windpowerengineering.com/wp-content/uploads/2018/08/cropped-windpower-32x32.png" sizes="32x32" /> 179<link rel="icon" href="https://www.windpowerengineering.com/wp-content/uploads/2018/08/cropped-windpower-192x192.png" sizes="192x192" /> 180<link rel="apple-touch-icon" href="https://www.windpowerengineering.com/wp-content/uploads/2018/08/cropped-windpower-180x180.png" /> 181<meta name="msapplication-TileImage" content="https://www.windpowerengineering.com/wp-content/uploads/2018/08/cropped-windpower-270x270.png" /> 182<style id="wp-custom-css"> 183.SoundCloudPubDate{padding:10px} 184 .SoundCloudTitle{padding:10px} 185 186/*Fix for Categories/home page article display*/ 187@media only screen and (max-width: 500px) { 188 .content .entry .entry-header, .archive-entry .entry-header { 189 190 } 191 192 193 .entry-content img { 194 text-align: center !important; 195 width: 100% !important; 196 } 197 198 .archive-entry { 199 display: flex; 200 flex-direction: column-reverse; 201 width: 100% !important; 202 } 203 204 .archive-entry > .entry-header, .archive-entry .entry-content { 205 width: 100% !important; 206 } 207} 208 209@media only screen and (max-width: 767px) { 210.archive.category .entry-content p { 211 display: none !important 212} 213 214 .blog .entry-content p { 215 display: none !important; 216 } 217 218 219} 220 221.slick-slider.header-slides .header-slide .overlay h4, .slick-slider.header-slides .header-slide .overlay h2 { 222text-shadow: 2px 2px 5px black; 223background: none !important; 224-webkit-text-stroke-width: 0px !important; 225-webkit-text-stroke-color: transparent !important; 226} 227 228/* Search Page */ 229body.search .site-inner { 230 padding-left: unset; 231 padding-right: unset; 232} 233 234/*SUBSCRIBE BUTTON CSS*/ 235 236.site-header--subscribe{ 237 background-color: #80a0c1; 238 color: white; 239 padding: 0 16px; 240} 241 242.site-header--subscribe a{ 243 color: white !important; 244} 245 246/*GATED COUNTRY FIELD FULL WIDTH & TERMS====*/ 247#input_67_54_6_container{ 248flex: 0 0 100%; 249} 250 251.terms{ 252 font-size: 10px; 253 font-style: italic; 254} 255 256.type-gated .entry-title{ 257 text-align: left; 258} 259 260.type-gated .entry-content img{ 261 width: 100%; 262} 263 264#div-gpt-wpe_sidebarbottom_home, #div-gpt-wpe_sidebarbottom_primary { margin-top: 20px; 265} 266</style> 267
267<script id="wtwh-uni-gam-content-hash-variables"> 268 var contentHash = "ea7b59f8753211776897a2cac758ae46"; 269 var cat_target = "ea7b59f8753211776897a2cac758ae46,sponsored-content,,XYZZY"; 270 </script>
270 271 <link rel='stylesheet' id='su-shortcodes-css' href='https://www.windpowerengineering.com/wp-content/plugins/shortcodes-ultimate/includes/css/shortcodes.css?ver=7.9.0' media='all' /> 272
273<script> 274 (function () { 275 'use strict'; 276 277 // âââ Globals ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 278 window.dataLayer = window.dataLayer || []; 279 window.gtag = window.gtag || function () { dataLayer.push(arguments); }; 280 window.googletag = window.googletag || { cmd: [] }; 281 282 window.__cmpRegion = { 283 country: "US", 284 regulated: false 285 }; 286 287 window.__wtwhConsentDebug = { 288 consentEvents: [], 289 gptMode: null 290 }; 291 292 // âââ Helpers ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 293 function log() { 294 try { 295 var args = Array.prototype.slice.call(arguments); 296 args.unshift('[WTWH Consent/GPT]'); 297 console.log.apply(console, args); 298 } catch (e) {} 299 } 300 301 function dispatchWindowEvent(eventName, detail) { 302 try { 303 window.dispatchEvent(new CustomEvent(eventName, { detail: detail || {} })); 304 } catch (e) { 305 try { 306 var ev = document.createEvent('CustomEvent'); 307 ev.initCustomEvent(eventName, false, false, detail || {}); 308 window.dispatchEvent(ev); 309 } catch (err) {} 310 } 311 } 312 313 function getCookie(name) { 314 var nameEQ = name + '='; 315 var parts = document.cookie.split(';'); 316 for (var i = 0; i < parts.length; i++) { 317 var c = parts[i]; 318 while (c.charAt(0) === ' ') c = c.substring(1); 319 if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length); 320 } 321 return null; 322 } 323 324 function hasKlaroCookie() { 325 return !!getCookie('klaro-consent'); 326 } 327 328 function getKlaroManager() { 329 try { 330 if (!window.klaro || typeof window.klaro.getManager !== 'function') return null; 331 return window.klaro.getManager(); 332 } catch (e) { 333 return null; 334 } 335 } 336 337 function getStoredConsents() { 338 try { 339 var manager = getKlaroManager(); 340 if (!manager || !manager.consents) return null; 341 return { 342 analytics: !!manager.consents.analytics, 343 marketing: !!manager.consents.marketing 344 }; 345 } catch (e) { 346 return null; 347 } 348 } 349 350 function getMarketingConsentState() { 351 var c = getStoredConsents(); 352 return c ? c.marketing : null; 353 } 354 355 // âââ Consent state tracker âââââââââââââââââââââââââââââââââââââââââââââââââââ 356 var consentState = { 357 initialized: false, 358 lastAppliedSignature: null 359 }; 360 361 function consentSignature(consents) { 362 return (consents.analytics ? '1' : '0') + '|' + (consents.marketing ? '1' : '0'); 363 } 364 365 // âââ Core consent application ââââââââââââââââââââââââââââââââââââââââââââââââ 366 function pushConsentEvent(eventName, analyticsGranted, marketingGranted) { 367 var detail = { 368 consent_analytics: analyticsGranted ? 'granted' : 'denied', 369 consent_marketing: marketingGranted ? 'granted' : 'denied', 370 consent_country: window.__cmpRegion.country, 371 consent_regulated_region: window.__cmpRegion.regulated ? 'true' : 'false' 372 }; 373 374 window.dataLayer.push({ 375 event: eventName, 376 consent_analytics: detail.consent_analytics, 377 consent_marketing: detail.consent_marketing, 378 consent_country: detail.consent_country, 379 consent_regulated_region: detail.consent_regulated_region 380 }); 381 382 window.__wtwhConsentDebug.consentEvents.push({ event: eventName, detail: detail, ts: Date.now() }); 383 dispatchWindowEvent(eventName, detail); 384 log('Consent event fired:', eventName, detail); 385 } 386 387 function updateGoogleConsent(consents) { 388 gtag('consent', 'update', { 389 analytics_storage: consents.analytics ? 'granted' : 'denied', 390 ad_storage: consents.marketing ? 'granted' : 'denied', 391 ad_user_data: consents.marketing ? 'granted' : 'denied', 392 ad_personalization: consents.marketing ? 'granted' : 'denied', 393 functionality_storage: 'granted', 394 security_storage: 'granted' 395 }); 396 } 397 398 function applyInitialConsent(consents) { 399 if (!consents) return; 400 var sig = consentSignature(consents); 401 if (consentState.initialized) { 402 log('applyInitialConsent called after already initialized â skipping'); 403 return; 404 } 405 updateGoogleConsent(consents); 406 pushConsentEvent('consent_initialized', consents.analytics, c
406onsents.marketing); 407 consentState.initialized = true; 408 consentState.lastAppliedSignature = sig; 409 } 410 411 function applyUpdatedConsent(consents) { 412 if (!consents) return; 413 var sig = consentSignature(consents); 414 if (sig === consentState.lastAppliedSignature) { 415 log('Consent unchanged â skipping duplicate consent_updated'); 416 return; 417 } 418 updateGoogleConsent(consents); 419 pushConsentEvent('consent_updated', consents.analytics, consents.marketing); 420 consentState.initialized = true; 421 consentState.lastAppliedSignature = sig; 422 } 423 424 // âââ Step 1: gtag default ââââââââââââââââââââââââââââââââââââââââââââââââââââ 425 gtag('consent', 'default', { 426 ad_storage: window.__cmpRegion.regulated ? 'denied' : 'granted', 427 ad_user_data: window.__cmpRegion.regulated ? 'denied' : 'granted', 428 ad_personalization: window.__cmpRegion.regulated ? 'denied' : 'granted', 429 analytics_storage: window.__cmpRegion.regulated ? 'denied' : 'granted', 430 functionality_storage: 'granted', 431 security_storage: 'granted' 432 }); 433 434 // âââ Step 2: Non-regulated â initialize immediately as fully granted âââââââââ 435 if (!window.__cmpRegion.regulated) { 436 var openConsents = { analytics: true, marketing: true }; 437 consentState.initialized = true; 438 consentState.lastAppliedSignature = consentSignature(openConsents); 439 pushConsentEvent('consent_initialized', true, true); 440 } 441 442 // âââ Klaro config ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 443 window.klaroConfig = { 444 version: 1, 445 elementID: 'klaro', 446 storageMethod: 'cookie', 447 storageName: 'klaro-consent', 448 cookieExpiresAfterDays: 365, 449 default: false, 450 mustConsent: true, 451 acceptAll: true, 452 hideDeclineAll: false, 453 htmlTexts: true, 454 lang: 'en', 455 translations: { 456 en: { 457 consentNotice: { 458 description: 'We use cookies for analytics and marketing. You can manage your preferences at any time.', 459 learnMore: 'Manage preferences' 460 }, 461 consentModal: { 462 title: 'This website uses cookies', 463 description: 'We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you\u2019ve provided to them or that they\u2019ve collected from your use of their services.' 464 }, 465 ok: 'Accept all', 466 decline: 'Reject all', 467 save: 'Save preferences', 468 close: 'Close' 469 } 470 }, 471 services: [ 472 { name: 'analytics', title: 'Analytics', purposes: ['analytics'], required: false, default: false }, 473 { name: 'marketing', title: 'Marketing', purposes: ['marketing'], required: false, default: false } 474 ], 475 callback: function (consent, service) { 476 try { 477 var manager = getKlaroManager(); 478 if (!manager || !manager.consents) return; 479 480 var currentConsents = { 481 analytics: !!manager.consents.analytics, 482 marketing: !!manager.consents.marketing 483 }; 484 485 if (!consentState.initialized && hasKlaroCookie()) { 486 applyInitialConsent(currentConsents); 487 return; 488 } 489 490 applyUpdatedConsent(currentConsents); 491 } catch (e) { 492 console.error('Klaro callback error', e); 493 } 494 } 495 }; 496 497 // âââ Open consent modal ââââââââââââââââââââââââââââââââââââââââââââââââââââââ 498 window.openConsentSettings = function () {
499 try { 500 if (window.klaro && typeof window.klaro.show === 'function') { 501 window.klaro.show(window.klaroConfig, true); 502 return; 503 } 504 var manager = getKlaroManager(); 505 if (manager && typeof manager.showConsentModal === 'function') { 506 manager.showConsentModal(); 507 } 508 } catch (e) { 509 console.warn('Unable to open Klaro consent settings', e); 510 } 511 }; 512 513 // âââ Klaro onload handler ââââââââââââââââââââââââââââââââââââââââââââââââââââ 514 window.__applyKlaroInitialConsent = function () { 515 try { 516 if (!window.__cmpRegion.regulated) return; 517 if (!hasKlaroCookie()) return; 518 var manager = getKlaroManager(); 519 if (!manager || !manager.consents) return; 520 applyInitialConsent({ 521 analytics: !!manager.consents.analytics, 522 marketing: !!manager.consents.marketing 523 }); 524 } catch (e) { 525 console.warn('Klaro consent initialization failed', e); 526 } 527 }; 528 529 // âââ GPT bootstrap âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 530 // Always uses securepubads (standard GPT). 531 // For denied-consent users, applies nonPersonalizedAds instead of switching 532 // to the limited GPT URL â this preserves pubads() availability and gives 533 // access to the standard demand pool (contextual only, no user signals). 534 (function () { 535 if (window.__wtwhGptBootstrapInitialized) return; 536 window.__wtwhGptBootstrapInitialized = true; 537 538 var GPT_MODE_FULL = 'full'; 539 var GPT_MODE_NPA = 'npa'; // non-personalized ads â replaces "limited" 540 541 // Single GPT URL for all cases 542 var GPT_URL = 'https://securepubads.g.doubleclick.net/tag/js/gpt.js'; 543 544 var gptScriptRequested = false; 545 var gptScriptLoaded = false; 546 var gptDecisionFinalized = false; 547 548 function redactUrl(rawUrl) { 549 if (!rawUrl) return ''; 550 try { 551 var url = new URL(rawUrl, window.location.origin); 552 ['s', 'loc'].forEach(function (key) { 553 if (url.searchParams.has(key)) url.searchParams.set(key, 'REDACTED'); 554 }); 555 return url.href; 556 } catch (e) { 557 return rawUrl; 558 } 559 } 560 561 // Returns null when consent state is not yet known (regulated, Klaro not loaded yet). 562 // Returning null defers GPT loading until a consent signal arrives. 563 function selectGptMode() { 564 if (!window.__cmpRegion.regulated) return GPT_MODE_FULL; 565 566 var marketingConsent = getMarketingConsentState(); 567 if (marketingConsent === true) return GPT_MODE_FULL; 568 if (marketingConsent === false) return GPT_MODE_NPA; 569 570 // null = Klaro hasn't restored consent yet â wait 571 return null; 572 } 573 574 function dispatchGptReady(mode) { 575 window.__gptMode = mode; 576 window.__gptReady = true; 577 window.__wtwhConsentDebug.gptMode = mode; 578 579 window.dataLayer.push({ event: 'gpt_ready', gpt_mode: mode }); 580 dispatchWindowEvent('gpt_ready', { gpt_mode: mode }); 581 log('gpt_ready dispatched with mode:', mode); 582 } 583 584 function configureGptAfterLoad(mode) { 585 window.googletag.cmd.push(function () { 586 try { 587 if (typeof googletag.pubads !== 'function') { 588 log('pubads() unavailable after GPT load'); 589 return; 590 } 591 592 if (mode === GPT_MODE_NPA) { 593 // Consent denied: serve non-personalized ads. 594 // Uses standard GPT pipeline with no user signals. 595 // Better fill rate than limited ads URL; compliant with 596 // ad_storage: denied + nonPersonalizedAds: true. 597 try { 598 googletag.pubads().setPrivacySettings({ 599 nonPersonalizedAds: true 600 }); 601 log('Configured GPT for non-personalized ads (consent denied)'); 602 } catch (e) { 603 log('Failed to set nonPersonalizedAds', e); 604 } 605 } else { 606 log('Configured GPT for full personalized ads'); 607 } 608 609 var cleanPage = redactUrl(window.location.href); 610 var cleanRef = redactUrl(document.referrer); 611 612 try { googletag.pubads().set('page_url', cleanPage); } catch (e) {} 613 if (cleanRef) { 614 try { googletag.pubads().set('referrer_url', cleanRef); } catch (e) {} 615 } 616 try { 617 googletag.pubads().setTargeting('s', 'REDACTED'); 618 googletag.pubads().setTargeting('loc', 'REDACTED'); 619 } catch (e) {} 620 621 dispatchGptReady(mode); 622 } catch (e) { 623 log('Error during GPT configuration', e); 624 } 625 }); 626 } 627 628 function loadGptScript(mode) { 629 if (gptScriptRequested || gptScriptLoaded || gptDecisionFinalized) { 630 log('GPT already requested/loaded â skipping'); 631 return; 632 } 633 634 gptDecisionFinalized = true; 635 gptScriptRequested = true; 636 637 var script = document.createElement('script'); 638 script.async = true; 639 script.src = GPT_URL; 640 641 script.onload = function () { 642 gptScriptLoaded = true; 643 log('GPT script loaded, mode:', mode); 644 configureGptAfterLoad(mode); 645 }; 646 647 script.onerror = function () { 648 gptScriptRequested = false;
649 gptScriptLoaded = false; 650 gptDecisionFinalized = false; 651 log('Failed to load GPT script'); 652 }; 653 654 document.head.appendChild(script); 655 log('Requested GPT script, mode:', mode); 656 } 657 658 function tryLoadGpt() { 659 if (gptDecisionFinalized) return true; 660 var mode = selectGptMode(); 661 if (mode === null) return false; 662 loadGptScript(mode); 663 return true; 664 } 665 666 // Non-regulated: load immediately 667 if (!window.__cmpRegion.regulated) { 668 tryLoadGpt(); 669 return; 670 } 671 672 // Regulated: wait for a consent signal before loading GPT 673 window.addEventListener('consent_initialized', tryLoadGpt); 674 window.addEventListener('consent_updated', tryLoadGpt); 675 676 // Poll briefly in case Klaro resolves before listeners fire 677 var pollCount = 0; 678 var maxPolls = 3; 679 var pollInterval = setInterval(function () { 680 pollCount++; 681 if (tryLoadGpt() || pollCount >= maxPolls) { 682 clearInterval(pollInterval); 683 } 684 }, 100); 685 686 // Hard fallback: no consent signal after a short bootstrap grace period â load NPA 687 setTimeout(function () { 688 if (!gptDecisionFinalized) { 689 log('Consent timeout â falling back to non-personalized GPT'); 690 loadGptScript(GPT_MODE_NPA); 691 } 692 }, 300); 693 })(); 694 })(); 695</script>
vendor: 1 bytes, line 695
695
696<script data-wtwh-analytics-loader>(function(w,d){'use strict'; 697var cfg={"scriptUrl":"https://scripts.wtwhmedia.com/developer/wtwh_analytics/env/prod/index.js","endpoint":"https://collect.wtwhmedia.com/v1/events","site":"www.windpowerengineering.com","pageUrl":"https://www.windpowerengineering.com/ingeteam-develops-new-offshore-power-converter-product-range-up-to-18mw/","country":"US","consentDenied":false}; 698var consentMessageType="arrowfly:analytics-consent"; 699if(w.__wtwhAnalyticsEdgeLoaderInstalled)return; 700w.__wtwhAnalyticsEdgeLoaderInstalled=true; 701var analytics=null; 702var pageTracker=null; 703var consentGranted=!cfg.consentDenied; 704function browserConsent(){ 705 var n=w.navigator||{}; 706 return n.globalPrivacyControl!==true&&n.doNotTrack!=='1'; 707} 708function canTrack(){return consentGranted&&browserConsent();} 709function embedFrames(){ 710 return d.querySelectorAll('iframe[src*="embeds.wtwhmedia.com"],iframe[src*="embeds.dev.wtwhmedia.com"]'); 711} 712function broadcastEmbedConsent(){ 713 var msg={type:consentMessageType,granted:canTrack()}; 714 var frames=embedFrames(); 715 for(var i=0;i<frames.length;i++){ 716 try{ 717 var frame=frames[i]; 718 var targetOrigin=new URL(frame.src,w.location.href).origin; 719 if(frame.contentWindow)frame.contentWindow.postMessage(msg,targetOrigin); 720 }catch(_){} 721 } 722} 723function startPageTracking(){ 724 if(!analytics||pageTracker||!canTrack())return; 725 var api=w.wtwh&&w.wtwh.analytics; 726 if(api&&typeof api.trackPage==='function'){ 727 pageTracker=api.trackPage(analytics,{props:{source:'edge-router',country:cfg.country}}); 728 return; 729 } 730 analytics.track('page_view',{ 731 page_url:cfg.pageUrl, 732 page_host:w.location.hostname, 733 page_path:w.location.pathname, 734 referer:d.referrer||'', 735 props:{source:'edge-router',country:cfg.country,navigation_type:'initial'} 736 }); 737 analytics.flush(); 738} 739function stopPageTracking(){ 740 if(!pageTracker)return; 741 pageTracker.destroy(); 742 pageTracker=null; 743} 744function setConsent(granted){ 745 consentGranted=!!granted; 746 if(consentGranted)startPageTracking(); 747 else stopPageTracking(); 748 broadcastEmbedConsent(); 749} 750function applyConsentEvent(event){ 751 var value=event&&event.detail&&event.detail.consent_analytics; 752 if(value==='granted')setConsent(true); 753 else if(value==='denied')setConsent(false); 754} 755function readKlaroConsent(){ 756 try{ 757 var manager=w.klaro&&typeof w.klaro.getManager==='function'&&w.klaro.getManager(); 758 if(manager&&manager.consents&&typeof manager.consents.analytics==='boolean'){ 759 setConsent(manager.consents.analytics); 760 return true; 761 } 762 }catch(_){} 763 return false; 764} 765function pollKlaroConsent(){ 766 if(!cfg.consentDenied)return; 767 var attempts=0; 768 var timer=w.setInterval(function(){ 769 attempts++; 770 if(readKlaroConsent()||attempts>=20)w.clearInterval(timer); 771 },500); 772} 773function start(){ 774 var api=w.wtwh&&w.wtwh.analytics; 775 if(!api||typeof api.create!=='function')return; 776 analytics=api.create({ 777 site:String(cfg.site||w.location.hostname), 778 endpoint:String(cfg.endpoint), 779 context:{ 780 page_url:String(cfg.pageUrl||w.location.href), 781 page_host:w.location.hostname, 782 page_path:w.location.pathname, 783 referer:d.referrer||'' 784 }, 785 consent:canTrack 786 }); 787 readKlaroConsent(); 788 startPageTracking(); 789 broadcastEmbedConsent(); 790} 791w.addEventListener('consent_initialized',applyConsentEvent); 792w.addEventListener('consent_updated',applyConsentEvent); 793w.addEventListener('load',broadcastEmbedConsent); 794d.addEventListener('load',function(event){ 795 if(event.target&&event.target.tagName==='IFRAME')broadcastEmbedConsent(); 796},true); 797if(w.wtwh&&w.wtwh.analytics)start(); 798else{ 799 var script=d.createElement('script'); 800 script.async=true; 801 script.src=String(cfg.scriptUrl); 802 script.onload=start; 803 (d.head||d.documentElement).appendChild(script); 804} 805pollKlaroConsent(); 806})(window,document);</script>
806<script data-wtwh-ad-info>window.dataLayer=window.dataLayer||[];window.dataLayer.push({"wtwhAdInfo":{"request":"unrestricted","verified_bot_category":"","traffic_channel":"direct_or_unknown","traffic_channel_group":"direct_or_unknown"}});</script>
806</head> 807<body class="wp-singular post-template-default single single-post postid-49768 single-format-standard wp-theme-genesis wp-child-theme-ThemeWTWH content-sidebar genesis-breadcrumbs-hidden"><div class="site-container"><header class="site-header"><div class="wrap"><div class="title-area"><p class="site-title"><a href="https://www.windpowerengineering.com/">Windpower Engineering & Development</a></p></div><div class="widget-area header-widget-area"><section id="custom_html-23" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"><div id='div-gpt-wpe-header'> 808
808<script> 809 googletag.cmd.push(function() { googletag.display('div-gpt-wpe-header'); }); 810 </script>
810 811</div> 812</div></div></section> 813</div><div class="mobile-toggles"><a href="#" class="search-toggle"><i class="icon-search"></i></a><a href="#" class="mobile-menu-toggle"><i class="icon-menu"></i></a></div></div></header><nav class="nav-primary" aria-label="Main"><div class="wrap"><ul id="menu-main-top" class="menu genesis-nav-menu menu-primary"><li id="menu-item-11217" class="home menu-item"><a href="https://www.windpowerengineering.com/"><span >Home</span></a></li> 814<li id="menu-item-11218" class="menu-item menu-item-has-children"><a href="/recent-windpower-articles/"><span >Articles</span></a> 815<ul class="sub-menu"> 816 <li id="menu-item-47679" class="menu-item"><a href="https://www.windpowerengineering.com/recent-windpower-articles/"><span >Most recent posts</span></a></li> 817 <li id="menu-item-47680" class="menu-item"><a href="https://www.windpowerengineering.com/category/news/"><span >News</span></a></li> 818 <li id="menu-item-47681" class="menu-item"><a href="https://www.windpowerengineering.com/category/featured/"><span >Featured</span></a></li> 819</ul> 820</li> 821<li id="menu-item-11249" class="menu-item menu-item-has-children"><a><span >Resources</span></a> 822<ul class="sub-menu"> 823 <li id="menu-item-23264" class="menu-item"><a href="https://www.windpowerengineering.com/category/featured/digital-issues/"><span >Digital issues</span></a></li> 824 <li id="menu-item-14495" class="menu-item"><a href="https://www.windpowerengineering.com/category/featured/podcasts/"><span >Podcasts</span></a></li> 825 <li id="menu-item-11531" class="menu-item"><a href="/suppliers/"><span >Suppliers</span></a></li> 826 <li id="menu-item-50170" class="menu-item"><a target="_blank" href="https://gateway.on24.com/wcc/experience/elitewtwhmedia/2927718/4415917/windpower-engineering-development"><span >Webinars</span></a></li> 827 <li id="menu-item-48079" class="menu-item"><a href="https://www.windpowerengineering.com/wind-power-events/"><span >Events</span></a></li> 828</ul> 829</li> 830<li id="menu-item-47684" class="menu-item"><a href="https://www.windpowerengineering.com/windpower-videos/"><span >Videos</span></a></li> 831<li id="menu-item-50249" class="menu-item menu-item-has-children"><a target="_blank" href="https://leadership.solarpowerworldonline.com/"><span >2025 Leadership</span></a> 832<ul class="sub-menu"> 833 <li id="menu-item-50595" class="menu-item"><a target="_blank" href="https://leadership.solarpowerworldonline.com/2024-winners/"><span >2024 Winners</span></a></li> 834 <li id="menu-item-49890" class="menu-item"><a href="https://www.windpowerengineering.com/2023-leadership-in-wind-energy/"><span >2023 Winners</span></a></li> 835 <li id="menu-item-49747" class="menu-item"><a href="https://www.windpowerengineering.com/2022-leadership-in-wind-energy-winners/"><span >2022 Winners</span></a></li> 836</ul> 837</li> 838<li id="menu-item-49017" class="menu-item"><a href="/windpower-engineering-development-magazine-subscription-form"><span >Magazine</span></a></li> 839<li id="menu-item-50678" class="menu-item"><a target="_blank" href="https://www.mediakit.windpowerengineering.com/"><span >Advertise</span></a></li> 840<li id="menu-item-11255" class="site-header--subscribe menu-item"><a href="/subscribe-to-newsletter/"><span >Subscribe</span></a></li> 841<li class="menu-item search"><a href="#" class="search-toggle"><i class="icon-search"></i></a></li></ul></div></nav><div class="site-inner"><div class="wrap"><div class="content-sidebar-wrap"><main class="content"><article class="type-post entry" aria-label="Ingeteam develops new offshore power converter product range up to 18MW"><header class="entry-header"><h1 class="entry-title">Ingeteam develops new offshore power converter product range up to 18MW</h1> 842<p class="entry-meta"><span class="entry-author">By <a href="https://www.windpowerengineering.com/author/shulett/" class="entry-author-link" rel="author"><span class="entry-author-name">Sponsored Content</span></a></span> | <time class="entry-time">November 16, 2022</time></p></header><div class="entry-content"><p><img decoding="async" class="aligncenter size-full wp-image-49770" src="/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022.png" alt="" width="7
84270" height="274" srcset="https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022.png 770w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022-500x178.png 500w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022-368x131.png 368w" sizes="(max-width: 770px) 100vw, 770px" /></p> 843<p>Ingeteam, an independent global supplier of electrical conversion and turbine control equipment, announced that a recent in-house R&D study has allowed them to work out the optimal electrical power conversion designs for offshore wind turbines up to 18MW.</p> 844<p>Ingeteam says it designed its new medium voltage full power converter range âas a response to some of the most important challenges facing the offshore wind market todayâ. The next generation of converters for giant offshore wind turbines must be able to guarantee the fulfilment of the most demanding grid codes, while meeting ever increasing power quality standards.</p> 845<p>âWe wanted to provide our OEM customers working on next-generation offshore turbines with a power conversion solution that combines optimised cost, high efficiency, easy maintainability and improved reliability â all combined into one rugged product,â says Carlos Gironés, R&D director of converters & controls at Ingeteam.</p> 846<p>âYears of R&D have led to a power conversion solution that, by parallelising two conversion lines, can push the previous power rating boundaries at medium voltage past the 13MW limit to reach 18MW. Such a cutting-edge solution in the sector is already emerging as the new standard for future offshore wind mega turbines.â</p> 847<div id="attachment_49774" style="width: 2165px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2022/11/ingeteam-sponsored-diagram-november2022.png"><img decoding="async" aria-describedby="caption-attachment-49774" src="/wp-content/uploads/2022/11/ingeteam-sponsored-diagram-november2022.png" alt="" width="2155" height="965" class="size-full wp-image-49774" srcset="https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-diagram-november2022.png 2155w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-diagram-november2022-500x224.png 500w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-diagram-november2022-1000x448.png 1000w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-diagram-november2022-1536x688.png 1536w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-diagram-november2022-2048x917.png 2048w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-diagram-november2022-368x165.png 368w" sizes="(max-width: 2155px) 100vw, 2155px" /></a><p id="caption-attachment-49774" class="wp-caption-text">Simplified electrical diagram of the Power Converter based on two conversion lines</p></div> 848<p>Ingeteamâs new converter range continues the development of HV IGBT semiconductors technology. This widely used technology has been proven during years of operation in harsh environments such as traction, marine propulsions and dredging applications. The assembly of the HV IGBT does not need any additional tooling which eases the mounting process of the BPMs and as the package of the semiconductor includes insulation to the cooling circuit there is no need for deionized water.</p> 849<p><strong>Helping to lower LCOE</strong></p> 850<p>Ingeteam says its latest converters can help contribute to the lowering of LCOE by maximising reliability and minimising the maintenance requirements of its key components. The converter has maintenance-friendly characteristics such as front access and easily removable key components which help to reduce operational costs.</p> 851<p>Ingeteamâs MV full power converters have been specially designed for the offshore market with a fully enclosed cabinet that guarantees the safe operation of the converter in harsh offshore weather. It is designed to resist the most demanding mechanical, electrical or ambient operating conditions, even in the worst grid conditions.</p> 852<p><img loading="lazy" decoding="async" src="/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022.jpg" alt="" width="7
85270" height="513" class="aligncenter size-full wp-image-49771" srcset="https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022.jpg 770w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022-500x333.jpg 500w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-sponsored-featured-image-november2022-357x238.jpg 357w" sizes="auto, (max-width: 770px) 100vw, 770px" /></p> 853<p><strong>State-of-the-art controls</strong></p> 854<p>Ingeteam has developed the control algorithms of its full-power converters to guarantee the fulfilment of the most demanding grid codes. The control algorithms have been developed under SIL simulation and HIL validation before test bench validation and commissioning.</p> 855<p>The converterâs controls are based on a distributed control topology to effectively manage different conversion lines. With this topology the conversion lines can manage redundancy under faulty conditions, which increases each turbineâs availability.</p> 856<p>âOne of the main electrical drive train topologies is based on two electrically independent connections, one per conversion line. The power converter redundancy provides the benefits of increasing availability of the turbine if one of the conversion lines fails â which is a key factor in the offshore market as it increases the energy yield and the return of investment,â says Gironés.</p> 857<a href="https://www.ingeteam.com/en-us/marketing/windpowerfullconversionsolutions.aspx?utm_source=wpe&utm_medium=content&utm_campaign=fc2022&utm_content=native_sponsored_content" class="su-button su-button-style-flat" style="color:#FFFFFF;background-color:#337ab7;border-color:#296293;border-radius:0px" target="_blank" rel="noopener noreferrer"><span style="color:#FFFFFF;padding:0px 22px;font-size:17px;line-height:34px;border-color:#71a2cd;border-radius:0px;text-shadow:none"> Discover more</span></a> 858 </p> 859<p><strong><em>About Ingeteam </em></strong></p> 860<p><img loading="lazy" decoding="async" src="/wp-content/uploads/2022/11/ingeteam-logo.jpg" alt="" width="250" height="100" class="alignright size-full wp-image-49772" srcset="https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-logo.jpg 595w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-logo-500x199.jpg 500w, https://www.windpowerengineering.com/wp-content/uploads/2022/11/ingeteam-logo-368x147.jpg 368w" sizes="auto, (max-width: 250px) 100vw, 250px" /></p> 861<p><em>Ingeteam, is a team of more than 4,000 people in 24 countries, with more than 80 years of experience in providing creative solutions to specific problems to electrify society in an innovative and sustainable way through cutting-edge technology specialised in the conversion of electrical energy. Ingeteam’s complete product range in the onshore and offshore wind power sector includes power converters, wind turbine controllers, electric switchboards, Indar generators, Condition Monitoring Systems (CMS), SCADA and analysis systems for wind turbines up to 18 MW, in addition to multi-technology and multi-brand operation & maintenance services. Ingeteam is the worldâs #1 independent supplier of wind power converters with 55 GW of installed wind power capacity, a world-class wind generator partner and the first ISP (Independent Service Provider).</em></p> 862<p><em>Sponsored content by Ingeteam</em></p> 863<hr><span class="entry-categories">Filed Under: <a href="https://www.windpowerengineering.com/category/sponsored-content/" rel="category tag">Sponsored Content</a></span><br /><span class="entry-tags">Tagged With: <a href="https://www.windpowerengineering.com/tag/ingeteam/" rel="tag">ingeteam</a></span><br /> <hr></div><footer class="entry-footer"></footer></article><div class="related-articles"><h4 class="block-header">Related Articles <a href="https://www.windpowerengineering.com/category/sponsored-content/">Read More ></a></h4><div class="article-listing"><div class="row"><article class="entry-summary"><a href="https://www.windpowerengineering.com/smarter-cooling-stronger-reliability-advancing-wind-turbine-gearbox-performance/" class="entry-image-link"><img width="268" height="170" src="https://www.windpowerengineering.com/wp-content/uploads/2026/06/hydac-sponsored-image1-june2026-268x170.jpg" class="attachment-ea_summary size-ea_summary wp-image-50830 wp-post-image" alt="" decoding="async" loading="lazy" /></a><h5 class="entry-title"><a href="https://www.windpowerengineering.com/smarter-cooling-stronger-reliability-advancing-wind-turbine-gearbox-performance/">Smarter Cooling, Stronger Reliability: Advancing Wind Turbine Gearbox Performance</a></h5></article><article class="entry-summary"><a href="https://www.windpowerengineering.com/delivering-the-proof-a-deep-dive-into-blade-bearing-greases/" class="entry-image-link"><img width="268" height="170" src="https://www.windpowerengineering.com/wp-content/uploads/2025/05/shelllubricants-sponsored-featured-image-may2025-v2-268x170.jpg" class="attachment-ea_summary size-ea_summary wp-image-50688 wp-post-image" alt="" decoding="async" loading="lazy" /></a><h5 class="entry-title"><a href="https://www.windpowerengineering.com/delivering-the-proof-a-deep-dive-into-blade-bearing-greases/">Delivering the proof: A deep dive into blade bearing greases</a></h5></article><article class="entry-summary"><a href="https://www.windpowerengineering.com/wind-energy-ppe-solutions/" class="entry-image-link"><img width="268" height="170" src="https://www.windpowerengineering.com/wp-content/uploads/2025/01/honeywell-sponsored-featured-image-january2025-268x170.png" class="attachment-ea_summary size-ea_summary wp-image-50588 wp-post-image" alt="" decoding="async" loading="lazy" /></a><h5 class="entry-title"><a href="https://www.windpowerengineering.com/wind-energy-ppe-solutions/">Wind Energy PPE Solutions</a></h5></article><article class="entry-summary"><a href="https://www.windpowerengineering.com/the-winds-of-change-are-picking-up-speed/" class="entry-image-link"><img width="268" height="170" src="https://www.windpowerengineering.com/wp-content/uploads/2024/09/Honeywell-Hero-268x170.jpg" class="attachment-ea_summary size-ea_summary wp-image-50450 wp-post-image" alt="" decoding="async" loading="lazy" /></a><h5 class="entry-title"><a href="https://www.windpowerengineering.com/the-winds-of-change-are-picking-up-speed/">The Winds of Change are Picking Up Speed</a></h5></article></div></div></div></main><aside class="sidebar sidebar-primary widget-area" role="complementary" aria-label="Primary Sidebar"><section id="custom_html-24" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"><div id='div-gpt-wpe_sidebar1'> 864
864<script> 865 googletag.cmd.push(function() { googletag.display('div-gpt-wpe_sidebar1'); }); 866 </script>
866 867</div> 868<div id='div-gpt-wpe_sidebarbottom_primary'> 869
869<script> 870 googletag.cmd.push(function() { googletag.display('div-gpt-wpe_sidebarbottom_primary'); }); 871 </script>
871 872</div></div></div></section> 873<section id="wtwh_soundcloud_widget-2" class="widget wtwh_soundcloud_widget"><div class="widget-wrap"><h4 class="widget-title widgettitle">Podcasts</h4> 874<div class="wtwh-soundcloud-player-wrapper"><div class="wtwh-soundcloud-player"><div><iframe width="100%" height="300" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/1675662996&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true"></iframe><div class="SoundCloudTitle">Wind Spotlight: Looking back at a year of Thrive with ZF Wind Power</div></div> <a href="/category/featured/podcasts/" class="SoundCloudTitle SoundCloudPubDate" target="_blank">See More ></a></div></div></div></section> 875<section id="custom_html-22" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><h4 class="widget-title widgettitle">Windpower Engineering & Development Digital Edition Archive</h4> 876<div class="textwidget custom-html-widget"><div id="digital" style="padding: 0 15px 10px 15px;"> 877 <a href="/category/digital-issues/"> 878 <img align="left" style="padding:0 10px; width: 100px;" src="https://www.windpowerengineering.com/wp-content/uploads/2022/03/WPE-March-2022-cover-300.jpg" alt="Digital Edition" /> 879 </a> 880 <p> 881 <a href="/category/digital-issues/" style="text-decoration: underline;">Explore the full archive of digital issues</a> of <em>Windpower Engineering & Development</em>, presented in a high-quality, user-friendly format. Access current and past editions, clip, share, and download valuable content from the industryâs leading wind power engineering resource. 882 </p> 883 <div style="text-align: center; height: 60px; width: 136px; margin: 0 auto;"> 884 <div> 885 <a href="/category/digital-issues/" target="_parent" rel="nofollow"> 886 <button class="greenbutton" style="background-color: #80a0c1; color: white; font-weight: bold; border: none; padding: 10px; font-size: 16px; cursor: pointer;">Back Issues</button> 887 </a> 888 </div> 889 </div> 890</div> 891 892</div></div></section> 893<section id="custom_html-25" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"> 894<div id='div-gpt-wpe_sidebar2'> 895
895<script> 896 googletag.cmd.push(function() { googletag.display('div-gpt-wpe_sidebar2'); }); 897 </script>
897 898</div> 899</div></div></section> 900</aside></div></div></div><div class="footer-socials"><div class="wrap"><label style="color:#ffffff">Connect with Windpower Engineering & Development </label> <a href="https://www.facebook.com/WindpowerEngineering" target="_blank" rel="noopener noreferrer"><i class="icon-facebook"></i></a><a href="https://twitter.com/Windpower_Eng" target="_blank" rel="noopener noreferrer"><i class="icon-twitter"></i></a><a href="https://www.linkedin.com/company/windpower-engineering-development/" target="_blank" rel="noopener noreferrer"><i class="icon-linkedin"></i></a><a href="https://www.youtube.com/windpowerengineering" target="_blank" rel="noopener noreferrer"><i class="icon-youtube"></i></a></div></div><footer class="site-footer"><div class="wrap"><div class="row"><div class="footer-logo"><a href="https://www.windpowerengineering.com">Windpower Engineering & Development</a></div><div class="footer-menu"><div class="menu-footer-menu-container"><ul id="menu-footer-menu" class="menu"><li id="menu-item-38344" class="menu-item"><a href="/recent-windpower-articles/">Wind Articles</a></li> 901<li id="menu-item-48883" class="menu-item"><a href="https://www.solarpowerworldonline.com/">Solar Power World</a></li> 902<li id="menu-item-42305" class="menu-item"><a target="_blank" href="/windpower-engineering-development-magazine-subscription-form/">Subscribe to Windpower Engineering</a></li> 903<li id="menu-item-45015" class="menu-item"><a href="https://www.windpowerengineering.com/meetourteam/">About Us/Contact Us</a></li> 904</ul></div></div><div class="footer-copyright"><p>Copyright © 2026 Arrowfly LLC. All Rights Reserved. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of Arrowfly<br /> <a href="http://www.arrowfly.com/privacy-policy/" target="_blank">Privacy Policy</a> | <a href="https://www.mediakit.windpowerengineering.com/" target="_blank">Advertising</a> </p></div></div></div></footer></div><div class="site-search"><div class="wrap"><div class="search-inner"><h2>Search Windpower Engineering & Development </h2><form class="search-form" method="get" action="https://www.windpowerengineering.com/" role="search"><input class="search-form-input" type="search" name="s" id="searchform-1" placeholder="Search this website"><input class="search-form-submit" type="submit" value="GO"><meta content="https://www.windpowerengineering.com/?s={s}"></form></div></div></div>
904<script type="speculationrules"> 905{"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/ThemeWTWH/*","/wp-content/themes/genesis/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 906</script>
906 907<!-- Google Tag Manager (noscript) Global -->
vendor: 68 bytes, lines 907-908
907 908<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
908GTM-MMC9PJ9
vendor: 83 bytes, lines 908-909
908" 909height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
910<!-- End Google Tag Manager (noscript) --> 911 912<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 912-913
912 913<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
913GTM-5WXXHJ7
vendor: 83 bytes, lines 913-914
913" 914height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
915<!-- End Google Tag Manager (noscript) --> 916 917 918 919<div id='div-gpt-wpe_interstitial'> 920
920<script> 921 googletag.cmd.push(function() { googletag.display('div-gpt-wpe_interstitial'); }); 922 </script>
922 923</div> 924 925<div id='div-gpt-wpe_wallpaper'> 926
926<script> 927 googletag.cmd.push(function() { googletag.display('div-gpt-wpe_wallpaper'); }); 928 </script>
928 929</div> 930 931<div id='div-gpt-wpe_allstreamflex'> 932
932<script> 933 googletag.cmd.push(function() { googletag.display('div-gpt-wpe_allstreamflex'); }); 934 </script>
934 935</div> 936 937 938<div id='div-gpt-wpe_allstreamprelude'> 939
939<script> 940 googletag.cmd.push(function() { googletag.display('div-gpt-wpe_allstreamprelude'); }); 941 </script>
941 942</div> 943 944<div id="sidr-mobile-menu" class="sidr right"><a class="sidr-menu-close" href="#"><i class="icon-close"></i></a><div class="menu-main-top-container"><ul id="menu-main-top-1" class="menu"><li class="home menu-item"><a href="https://www.windpowerengineering.com/">Home</a></li> 945<li class="menu-item menu-item-has-children"><a href="/recent-windpower-articles/">Articles</a> 946<ul class="sub-menu"> 947 <li class="menu-item"><a href="https://www.windpowerengineering.com/recent-windpower-articles/">Most recent posts</a></li> 948 <li class="menu-item"><a href="https://www.windpowerengineering.com/category/news/">News</a></li> 949 <li class="menu-item"><a href="https://www.windpowerengineering.com/category/featured/">Featured</a></li> 950</ul> 951</li> 952<li class="menu-item menu-item-has-children"><a>Resources</a> 953<ul class="sub-menu"> 954 <li class="menu-item"><a href="https://www.windpowerengineering.com/category/featured/digital-issues/">Digital issues</a></li> 955 <li class="menu-item"><a href="https://www.windpowerengineering.com/category/featured/podcasts/">Podcasts</a></li> 956 <li class="menu-item"><a href="/suppliers/">Suppliers</a></li> 957 <li class="menu-item"><a target="_blank" href="https://gateway.on24.com/wcc/experience/elitewtwhmedia/2927718/4415917/windpower-engineering-development">Webinars</a></li> 958 <li class="menu-item"><a href="https://www.windpowerengineering.com/wind-power-events/">Events</a></li> 959</ul> 960</li> 961<li class="menu-item"><a href="https://www.windpowerengineering.com/windpower-videos/">Videos</a></li> 962<li class="menu-item menu-item-has-children"><a target="_blank" href="https://leadership.solarpowerworldonline.com/">2025 Leadership</a> 963<ul class="sub-menu"> 964 <li class="menu-item"><a target="_blank" href="https://leadership.solarpowerworldonline.com/2024-winners/">2024 Winners</a></li> 965 <li class="menu-item"><a href="https://www.windpowerengineering.com/2023-leadership-in-wind-energy/">2023 Winners</a></li> 966 <li class="menu-item"><a href="https://www.windpowerengineering.com/2022-leadership-in-wind-energy-winners/">2022 Winners</a></li> 967</ul> 968</li> 969<li class="menu-item"><a href="/windpower-engineering-development-magazine-subscription-form">Magazine</a></li> 970<li class="menu-item"><a target="_blank" href="https://www.mediakit.windpowerengineering.com/">Advertise</a></li> 971<li class="site-header--subscribe menu-item"><a href="/subscribe-to-newsletter/">Subscribe</a></li> 972</ul></div></div></div> 973
973<script type="text/html" id="tmpl-media-frame"> 974 <div class="media-frame-title" id="media-frame-title"></div> 975 <h2 class="media-frame-menu-heading">Actions</h2> 976 <button type="button" class="button button-link media-frame-menu-toggle" aria-expanded="false"> 977 Menu <span class="dashicons dashicons-arrow-down" aria-hidden="true"></span> 978 </button> 979 <div class="media-frame-menu"></div> 980 <div class="media-frame-tab-panel"> 981 <div class="media-frame-router"></div> 982 <div class="media-frame-content"></div> 983 </div> 984 <h2 class="media-frame-actions-heading screen-reader-text"> 985 Selected media actions </h2> 986 <div class="media-frame-toolbar"></div> 987 <div class="media-frame-uploader"></div> 988 </script>
988 989 990
990<script type="text/html" id="tmpl-media-modal"> 991 <div id="wp-media-modal" tabindex="0" class="media-modal wp-core-ui" role="dialog" aria-labelledby="media-frame-title"> 992 <# if ( data.hasCloseButton ) { #> 993 <button type="button" class="media-modal-close"><span class="media-modal-icon" aria-hidden="true"></span><span class="screen-reader-text"> 994 Close dialog </span></button> 995 <# } #> 996 <div class="media-modal-content" role="document"></div> 997 </div> 998 <div class="media-modal-backdrop"></div> 999 </script>
999 1000 1001
1001<script type="text/html" id="tmpl-uploader-window"> 1002 <div class="uploader-window-content"> 1003 <div class="uploader-editor-title">Drop files to upload</div> 1004 </div> 1005 </script>
1005 1006 1007
1007<script type="text/html" id="tmpl-uploader-editor"> 1008 <div class="uploader-editor-content"> 1009 <div class="uploader-editor-title">Drop files to upload</div> 1010 </div> 1011 </script>
1011 1012 1013
1013<script type="text/html" id="tmpl-uploader-inline"> 1014 <# var messageClass = data.message ? 'has-upload-message' : 'no-upload-message'; #> 1015 <# if ( data.canClose ) { #> 1016 <button class="close dashicons dashicons-no"><span class="screen-reader-text"> 1017 Close uploader </span></button> 1018 <# } #> 1019 <div class="uploader-inline-content {{ messageClass }}"> 1020 <# if ( data.message ) { #> 1021 <h2 class="upload-message">{{ data.message }}</h2> 1022 <# } #> 1023 <div class="upload-ui"> 1024 <h2 class="upload-instructions drop-instructions">Drop files to upload</h2> 1025 <p class="upload-instructions drop-instructions">or</p> 1026 <button type="button" class="browser button button-hero" aria-describedby="post-upload-info">Select Files</button> 1027 </div> 1028 1029 <div class="upload-inline-status"></div> 1030 1031 <div class="post-upload-ui" id="post-upload-info"> 1032 1033 <p class="max-upload-size"> 1034 Maximum upload file size: 50 MB. </p> 1035 1036 <# if ( data.suggestedWidth && data.suggestedHeight ) { #> 1037 <p class="suggested-dimensions"> 1038 Suggested image dimensions: {{data.suggestedWidth}} by {{data.suggestedHeight}} pixels. </p> 1039 <# } #> 1040 1041 </div> 1042 </div> 1043 </script>
1043 1044 1045
1045<script type="text/html" id="tmpl-media-library-view-switcher"> 1046 <a href="https://www.windpowerengineering.com/wp-admin/upload.php?mode=list" class="view-list"> 1047 <span class="screen-reader-text"> 1048 List view </span> 1049 </a> 1050 <a href="https://www.windpowerengineering.com/wp-admin/upload.php?mode=grid" class="view-grid current" aria-current="page"> 1051 <span class="screen-reader-text"> 1052 Grid view </span> 1053 </a> 1054 </script>
1054 1055 1056
1056<script type="text/html" id="tmpl-uploader-status"> 1057 <h2>Uploading</h2> 1058 1059 <div class="media-progress-bar"><div></div></div> 1060 <div class="upload-details"> 1061 <span class="upload-count"> 1062 <span class="upload-index"></span> / <span class="upload-total"></span> 1063 </span> 1064 <span class="upload-detail-separator">–</span> 1065 <span class="upload-filename"></span> 1066 </div> 1067 <div class="upload-errors"></div> 1068 <button type="button" class="button upload-dismiss-errors">Dismiss errors</button> 1069 </script>
1069 1070 1071
1071<script type="text/html" id="tmpl-uploader-status-error"> 1072 <span class="upload-error-filename word-wrap-break-word">{{{ data.filename }}}</span> 1073 <span class="upload-error-message">{{ data.message }}</span> 1074 </script>
1074 1075 1076
1076<script type="text/html" id="tmpl-edit-attachment-frame"> 1077 <div class="edit-media-header"> 1078 <button class="left dashicons"<# if ( ! data.hasPrevious ) { #> disabled<# } #>><span class="screen-reader-text">Edit previous media item</span></button> 1079 <button class="right dashicons"<# if ( ! data.hasNext ) { #> disabled<# } #>><span class="screen-reader-text">Edit next media item</span></button> 1080 <button type="button" class="media-modal-close"><span class="media-modal-icon" aria-hidden="true"></span><span class="screen-reader-text">Close dialog</span></button> 1081 </div> 1082 <div class="media-frame-title"></div> 1083 <div class="media-frame-content"></div> 1084 </script>
1084 1085 1086
1086<script type="text/html" id="tmpl-attachment-details-two-column"> 1087 <div class="attachment-media-view {{ data.orientation }}"> 1088 <h2 class="screen-reader-text">Attachment Preview</h2> 1089 <div class="thumbnail thumbnail-{{ data.type }}"> 1090 <# if ( data.uploading ) { #> 1091 <div class="media-progress-bar"><div></div></div> 1092 <# } else if ( data.sizes && data.sizes.full ) { #> 1093 <img class="details-image" src="{{ data.sizes.full.url }}" draggable="false" alt="" /> 1094 <# } else if ( data.sizes && data.sizes.large ) { #> 1095 <img class="details-image" src="{{ data.sizes.large.url }}" draggable="false" alt="" /> 1096 <# } else if ( -1 === jQuery.inArray( data.type, [ 'audio', 'video' ] ) ) { #> 1097 <img class="details-image icon" src="{{ data.icon }}" draggable="false" alt="" /> 1098 <# } #> 1099 1100 <# if ( 'audio' === data.type ) { #> 1101 <div class="wp-media-wrapper wp-audio"> 1102 <audio crossorigin="anonymous" style="visibility: hidden" controls class="wp-audio-shortcode" width="100%" preload="none"> 1103 <source type="{{ data.mime }}" src="{{ data.url }}" /> 1104 </audio> 1105 </div> 1106 <# } else if ( 'video' === data.type ) { 1107 var w_rule = ''; 1108 if ( data.width ) { 1109 w_rule = 'width: ' + data.width + 'px;'; 1110 } else if ( wp.media.view.settings.contentWidth ) { 1111 w_rule = 'width: ' + wp.media.view.settings.contentWidth + 'px;'; 1112 } 1113 #> 1114 <div style="{{ w_rule }}" class="wp-media-wrapper wp-video"> 1115 <video crossorigin="anonymous" controls="controls" class="wp-video-shortcode" preload="metadata" 1116 <# if ( data.width ) { #>width="{{ data.width }}"<# } #> 1117 <# if ( data.height ) { #>height="{{ data.height }}"<# } #> 1118 <# if ( data.image && data.image.src !== data.icon ) { #>poster="{{ data.image.src }}"<# } #>> 1119 <source type="{{ data.mime }}" src="{{ data.url }}" /> 1120 </video> 1121 </div> 1122 <# } #> 1123 1124 <div class="attachment-actions"> 1125 <# if ( 'image' === data.type && ! data.uploading && data.sizes && data.can.save ) { #> 1126 <button type="button" class="button edit-attachment">Edit Image</button> 1127 <# } else if ( 'pdf' === data.subtype && data.sizes ) { #> 1128 <p>Document Preview</p> 1129 <# } #> 1130 </div> 1131 </div> 1132 </div> 1133 <div class="attachment-info"> 1134 <span class="settings-save-status" role="status"> 1135 <span class="spinner"></span> 1136 <span class="saved">Saved.</span> 1137 </span> 1138 <div class="details"> 1139 <h2 class="screen-reader-text"> 1140 Details </h2> 1141 <div class="uploaded"><strong>Uploaded on:</strong> {{ data.dateFormatted }}</div> 1142 <div class="uploaded-by word-wrap-break-word"> 1143 <strong>Uploaded by:</strong> 1144 <# if ( data.authorLink ) { #> 1145 <a href="{{ data.authorLink }}">{{ data.authorName }}</a> 1146 <# } else { #> 1147 {{ data.authorName }} 1148 <# } #> 1149 </div> 1150 <# if ( data.uploadedToTitle ) { #> 1151 <div class="uploaded-to"> 1152 <strong>Uploaded to:</strong> 1153 <# if ( data.uploadedToLink ) { #> 1154 <a href="{{ data.uploadedToLink }}">{{ data.uploadedToTitle }}</a> 1155 <# } else { #> 1156 {{ data.uploadedToTitle }} 1157 <# } #> 1158 </div> 1159 <# } #> 1160 <div class="filename"><strong>File name:</strong> {{ data.filename }}</div> 1161 <div class="file-type"><strong>File type:</strong> {{ data.mime }}</div> 1162 <div class="file-size"><strong>File size:</strong> {{ data.filesizeHumanReadable }}</div> 1163 <# if ( 'image' === data.type && ! data.uploading ) { #> 1164 <# if ( data.width && data.height ) { #> 1165 <div class="dimensions"><strong>Dimensions:</strong> 1166 {{ data.width }} by {{ data.height }} pixels </div> 1167 <# } #> 1168 1169 <# if ( data.originalImageURL && data.originalImageName ) { #> 1170 <div class="word-wrap-break-word"> 1171 <strong>Original image:</strong> 1172 <a href="{{ data.originalImageURL }}">{{data.originalImageName}}</a> 1173 </div> 1174 <# } #> 1175 <# } #> 1176 1177 <# if ( data.fileLength && data.fileLengthHumanReadable ) { #> 1178 <div class="file-length"><strong>Length:</strong> 1179 <span aria-hidden="true">{{ data.fileLengthHumanReadable }}</span> 1180 <span class="screen-reader-text">{{ data.fileLengthHumanReadable }}</span> 1181 </div> 1182 <# } #> 1183 1184 <# if ( 'audio' === data.type && data.meta.bitrate ) { #> 1185 <div class="bitrate"> 1186 <strong>Bitrate:</strong> {{ Math.round( data.meta.bitrate / 1000 ) }}kb/s 1187 <# if ( data.meta.bitrate_mode ) { #> 1188 {{ ' ' + data.meta.bitrate_mode.toUpperCase() }} 1189 <# } #> 1190 </div> 1191 <# } #> 1192 1193 <# if ( data.mediaStates ) { #> 1194 <div class="media-states"><strong>Used as:</strong> {{ data.mediaStates }}</div> 1195 <# } #> 1196 1197 <div class="compat-meta"> 1198 <# if ( data.compat && data.compat.meta ) { #> 1199 {{{ data.compat.meta }}} 1200 <# } #>
1201 </div> 1202 </div> 1203 1204 <div class="settings"> 1205 <# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; #> 1206 <# if ( 'image' === data.type ) { #> 1207 <span class="setting alt-text has-description" data-setting="alt"> 1208 <label for="attachment-details-two-column-alt-text" class="name">Alternative Text</label> 1209 <textarea id="attachment-details-two-column-alt-text" aria-describedby="alt-text-description" {{ maybeReadOnly }}>{{ data.alt }}</textarea> 1210 </span> 1211 <p class="description" id="alt-text-description"><a href="https://www.w3.org/WAI/tutorials/images/decision-tree/" target="_blank">Learn how to describe the purpose of the image<span class="screen-reader-text"> (opens in a new tab)</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a>. Leave empty if the image is purely decorative.</p> 1212 <# } #> 1213 <span class="setting" data-setting="title"> 1214 <label for="attachment-details-two-column-title" class="name">Title</label> 1215 <input type="text" id="attachment-details-two-column-title" value="{{ data.title }}" {{ maybeReadOnly }} /> 1216 </span> 1217 <# if ( 'audio' === data.type ) { #> 1218 <span class="setting" data-setting="artist"> 1219 <label for="attachment-details-two-column-artist" class="name">Artist</label> 1220 <input type="text" id="attachment-details-two-column-artist" value="{{ data.artist || data.meta.artist || '' }}" /> 1221 </span> 1222 <span class="setting" data-setting="album"> 1223 <label for="attachment-details-two-column-album" class="name">Album</label> 1224 <input type="text" id="attachment-details-two-column-album" value="{{ data.album || data.meta.album || '' }}" /> 1225 </span> 1226 <# } #> 1227 <span class="setting" data-setting="caption"> 1228 <# if ( 'image' === data.type ) { #> 1229 <label for="attachment-details-two-column-caption" class="name">Image Caption</label> 1230 <# } else { #> 1231 <label for="attachment-details-two-column-caption" class="name">Short Description</label> 1232 <# } #> 1233 <textarea id="attachment-details-two-column-caption" {{ maybeReadOnly }}>{{ data.caption }}</textarea> 1234 </span> 1235 <span class="setting" data-setting="description"> 1236 <label for="attachment-details-two-column-description" class="name">Description</label> 1237 <textarea id="attachment-details-two-column-description" {{ maybeReadOnly }}>{{ data.description }}</textarea> 1238 </span> 1239 <span class="setting" data-setting="url"> 1240 <label for="attachment-details-two-column-copy-link" class="name">File URL:</label> 1241 <input type="text" class="attachment-details-copy-link ltr" id="attachment-details-two-column-copy-link" value="{{ data.url }}" readonly />
1242 <span class="copy-to-clipboard-container"> 1243 <button type="button" class="button button-small copy-attachment-url" data-clipboard-target="#attachment-details-two-column-copy-link">Copy URL to clipboard</button> 1244 <span class="success hidden" aria-hidden="true">Copied!</span> 1245 </span> 1246 </span> 1247 <div class="attachment-compat"></div> 1248 </div> 1249 1250 <div class="actions"> 1251 <# if ( data.link ) { #> 1252 <a class="view-attachment" href="{{ data.link }}">View attachment page</a> 1253 <# } #> 1254 <# if ( data.can.save ) { #> 1255 <# if ( data.link ) { #> 1256 <span class="links-separator">|</span> 1257 <# } #> 1258 <a href="{{ data.editLink }}">Edit more details</a> 1259 <# } #> 1260 <# if ( data.can.save && data.link ) { #> 1261 <span class="links-separator">|</span> 1262 <a href="{{ data.url }}" download>Download file</a> 1263 <# } #> 1264 <# if ( ! data.uploading && data.can.remove ) { #> 1265 <# if ( data.link || data.can.save ) { #> 1266 <span class="links-separator">|</span> 1267 <# } #> 1268 <button type="button" class="button-link delete-attachment">Delete permanently</button> 1269 <# } #> 1270 </div> 1271 </div> 1272 </script>
1272 1273 1274
1274<script type="text/html" id="tmpl-attachment"> 1275 <div class="attachment-preview js--select-attachment type-{{ data.type }} subtype-{{ data.subtype }} {{ data.orientation }}"> 1276 <div class="thumbnail"> 1277 <# if ( data.uploading ) { #> 1278 <div class="media-progress-bar"><div style="width: {{ data.percent }}%"></div></div> 1279 <# } else if ( 'image' === data.type && data.size && data.size.url ) { #> 1280 <div class="centered"> 1281 <img src="{{ data.size.url }}" draggable="false" alt="" /> 1282 </div> 1283 <# } else { #> 1284 <div class="centered"> 1285 <# if ( data.image && data.image.src && data.image.src !== data.icon ) { #> 1286 <img src="{{ data.image.src }}" class="thumbnail" draggable="false" alt="" /> 1287 <# } else if ( data.sizes ) { 1288 if ( data.sizes.medium ) { #> 1289 <img src="{{ data.sizes.medium.url }}" class="thumbnail" draggable="false" alt="" /> 1290 <# } else { #> 1291 <img src="{{ data.sizes.full.url }}" class="thumbnail" draggable="false" alt="" /> 1292 <# } #> 1293 <# } else { #> 1294 <img src="{{ data.icon }}" class="icon" draggable="false" alt="" /> 1295 <# } #> 1296 </div> 1297 <div class="filename"> 1298 <div>{{ data.filename }}</div> 1299 </div> 1300 <# } #> 1301 </div> 1302 <# if ( data.buttons.close ) { #> 1303 <button type="button" class="button-link attachment-close"><span class="media-modal-icon" aria-hidden="true"></span><span class="screen-reader-text"> 1304 Remove </span></button> 1305 <# } #> 1306 </div> 1307 <# if ( data.buttons.check ) { #> 1308 <button type="button" class="check" tabindex="-1"><span class="media-modal-icon" aria-hidden="true"></span><span class="screen-reader-text"> 1309 Deselect </span></button> 1310 <# } #> 1311 <# 1312 var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; 1313 if ( data.describe ) { 1314 if ( 'image' === data.type ) { #> 1315 <input type="text" value="{{ data.caption }}" class="describe" data-setting="caption" 1316 aria-label="Caption" 1317 placeholder="Caption…" {{ maybeReadOnly }} /> 1318 <# } else { #> 1319 <input type="text" value="{{ data.title }}" class="describe" data-setting="title" 1320 <# if ( 'video' === data.type ) { #> 1321 aria-label="Video title" 1322 placeholder="Video title…" 1323 <# } else if ( 'audio' === data.type ) { #> 1324 aria-label="Audio title" 1325 placeholder="Audio title…" 1326 <# } else { #> 1327 aria-label="Media title" 1328 placeholder="Media title…" 1329 <# } #> {{ maybeReadOnly }} /> 1330 <# } 1331 } #> 1332 </script>
1332 1333 1334
1334<script type="text/html" id="tmpl-attachment-details"> 1335 <h2> 1336 Attachment Details <span class="settings-save-status" role="status"> 1337 <span class="spinner"></span> 1338 <span class="saved">Saved.</span> 1339 </span> 1340 </h2> 1341 <div class="attachment-info"> 1342 1343 <# if ( 'audio' === data.type ) { #> 1344 <div class="wp-media-wrapper wp-audio"> 1345 <audio crossorigin="anonymous" style="visibility: hidden" controls class="wp-audio-shortcode" width="100%" preload="none"> 1346 <source type="{{ data.mime }}" src="{{ data.url }}" /> 1347 </audio> 1348 </div> 1349 <# } else if ( 'video' === data.type ) { 1350 var w_rule = ''; 1351 if ( data.width ) { 1352 w_rule = 'width: ' + data.width + 'px;'; 1353 } else if ( wp.media.view.settings.contentWidth ) { 1354 w_rule = 'width: ' + wp.media.view.settings.contentWidth + 'px;'; 1355 } 1356 #> 1357 <div style="{{ w_rule }}" class="wp-media-wrapper wp-video"> 1358 <video crossorigin="anonymous" controls="controls" class="wp-video-shortcode" preload="metadata" 1359 <# if ( data.width ) { #>width="{{ data.width }}"<# } #> 1360 <# if ( data.height ) { #>height="{{ data.height }}"<# } #> 1361 <# if ( data.image && data.image.src !== data.icon ) { #>poster="{{ data.image.src }}"<# } #>> 1362 <source type="{{ data.mime }}" src="{{ data.url }}" /> 1363 </video> 1364 </div> 1365 <# } else { #> 1366 <div class="thumbnail thumbnail-{{ data.type }}"> 1367 <# if ( data.uploading ) { #> 1368 <div class="media-progress-bar"><div></div></div> 1369 <# } else if ( 'image' === data.type && data.size && data.size.url ) { #> 1370 <img src="{{ data.size.url }}" draggable="false" alt="" /> 1371 <# } else { #> 1372 <img src="{{ data.icon }}" class="icon" draggable="false" alt="" /> 1373 <# } #> 1374 </div> 1375 <# } #> 1376 1377 <div class="details"> 1378 <div class="filename">{{ data.filename }}</div> 1379 <div class="uploaded">{{ data.dateFormatted }}</div> 1380 1381 <div class="file-size">{{ data.filesizeHumanReadable }}</div> 1382 <# if ( 'image' === data.type && ! data.uploading ) { #> 1383 <# if ( data.width && data.height ) { #> 1384 <div class="dimensions"> 1385 {{ data.width }} by {{ data.height }} pixels </div> 1386 <# } #> 1387 1388 <# if ( data.originalImageURL && data.originalImageName ) { #> 1389 <div class="word-wrap-break-word"> 1390 Original image: <a href="{{ data.originalImageURL }}">{{data.originalImageName}}</a> 1391 </div> 1392 <# } #> 1393 1394 <# if ( data.can.save && data.sizes ) { #> 1395 <a class="edit-attachment" href="{{ data.editLink }}&image-editor" target="_blank">Edit Image</a> 1396 <# } #> 1397 <# } #> 1398 1399 <# if ( data.fileLength && data.fileLengthHumanReadable ) { #> 1400 <div class="file-length">Length: <span aria-hidden="true">{{ data.fileLengthHumanReadable }}</span> 1401 <span class="screen-reader-text">{{ data.fileLengthHumanReadable }}</span> 1402 </div> 1403 <# } #> 1404 1405 <# if ( data.mediaStates ) { #> 1406 <div class="media-states"><strong>Used as:</strong> {{ data.mediaStates }}</div> 1407 <# } #> 1408 1409 <# if ( ! data.uploading && data.can.remove ) { #> 1410 <button type="button" class="button-link delete-attachment">Delete permanently</button> 1411 <# } #> 1412 1413 <div class="compat-meta"> 1414 <# if ( data.compat && data.compat.meta ) { #> 1415 {{{ data.compat.meta }}} 1416 <# } #> 1417 </div> 1418 </div> 1419 </div> 1420 <# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; #> 1421 <# if ( 'image' === data.type ) { #> 1422 <span class="setting alt-text has-description" data-setting="alt"> 1423 <label for="attachment-details-alt-text" class="name">Alt Text</label> 1424 <textarea id="attachment-details-alt-text" aria-describedby="alt-text-description" {{ maybeReadOnly }}>{{ data.alt }}</textarea> 1425 </span> 1426 <p class="description" id="alt-text-description"><a href="https://www.w3.org/WAI/tutorials/images/decision-tree/" target="_blank">Learn how to describe the purpose of the image<span class="screen-reader-text"> (opens in a new tab)</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a>. Leave empty if the image is purely decorative.</p> 1427 <# } #> 1428 <span class="setting" data-setting="title"> 1429 <label for="attachment-details-title" class="name">Title</label> 1430 <input type="text" id="attachment-details-title" value="{{ data.title }}" {{ maybeReadOnly }} /> 1431 </span> 1432 <# if ( 'audio' === data.type ) { #> 1433 <span class="setting" data-setting="artist"> 1434 <label for="attachment-details-artist" class="name">Artist</label> 1435 <input type="text" id="attachment-details-artist" value="{{ data.artist || data.meta.artist || '' }}" /> 1436 </span> 1437 <span class="setting" data-setting="album"> 1438 <label for="attachment-details-album" class="name">Album</label> 1439 <input type="text" id="attachment-details-album" value="{{ data.album || data.meta.album || '' }}" /> 1440 </span> 1441 <# } #> 1442 <span class="setting" data-setting="caption"> 1443 <# if ( 'image' === data.type ) { #> 1444 <label for="attachment-details-caption" class="name">Image Caption</label> 1445 <# } else { #> 1446 <label for="attachment-details-caption" class="name">Short Description</label> 1447 <# } #> 1448 <textarea id="attachment-details-caption" {{ maybeReadOnly }}>{{ data.caption }}</textarea> 1449 </span> 1450 <span class="setting" data-setting="description"> 1451 <label for="attachment-details-description" class="name">Description</label> 1452 <textarea id="attachment-details-description" {{ maybeReadOnly }}>{{ data.description }}</textarea> 1453 </span> 1454 <span class="setting" data-setting="url"> 1455 <label for="attachment-details-copy-link" class="name">File URL:</label> 1456 <input type="text" class="attachment-details-copy-link ltr" id="attachment-details-copy-link" value="{{ data.url }}" readonly />
1457 <div class="copy-to-clipboard-container"> 1458 <button type="button" class="button button-small copy-attachment-url" data-clipboard-target="#attachment-details-copy-link">Copy URL to clipboard</button> 1459 <span class="success hidden" aria-hidden="true">Copied!</span> 1460 </div> 1461 </span> 1462 </script>
1462 1463 1464
1464<script type="text/html" id="tmpl-media-selection"> 1465 <div class="selection-info"> 1466 <span class="count"></span> 1467 <# if ( data.editable ) { #> 1468 <button type="button" class="button-link edit-selection">Edit Selection</button> 1469 <# } #> 1470 <# if ( data.clearable ) { #> 1471 <button type="button" class="button-link clear-selection">Clear</button> 1472 <# } #> 1473 </div> 1474 <div class="selection-view"></div> 1475 </script>
1475 1476 1477
1477<script type="text/html" id="tmpl-attachment-display-settings"> 1478 <h2>Attachment Display Settings</h2> 1479 1480 <# if ( 'image' === data.type ) { #> 1481 <span class="setting align"> 1482 <label for="attachment-display-settings-alignment" class="name">Alignment</label> 1483 <select id="attachment-display-settings-alignment" class="alignment" 1484 data-setting="align" 1485 <# if ( data.userSettings ) { #> 1486 data-user-setting="align" 1487 <# } #>> 1488 1489 <option value="left"> 1490 Left </option> 1491 <option value="center"> 1492 Center </option> 1493 <option value="right"> 1494 Right </option> 1495 <option value="none" selected> 1496 None </option> 1497 </select> 1498 </span> 1499 <# } #> 1500 1501 <span class="setting"> 1502 <label for="attachment-display-settings-link-to" class="name"> 1503 <# if ( data.model.canEmbed ) { #> 1504 Embed or Link <# } else { #> 1505 Link To <# } #> 1506 </label> 1507 <select id="attachment-display-settings-link-to" class="link-to" 1508 data-setting="link" 1509 <# if ( data.userSettings && ! data.model.canEmbed ) { #> 1510 data-user-setting="urlbutton" 1511 <# } #>> 1512 1513 <# if ( data.model.canEmbed ) { #> 1514 <option value="embed" selected> 1515 Embed Media Player </option> 1516 <option value="file"> 1517 <# } else { #> 1518 <option value="none" selected> 1519 None </option> 1520 <option value="file"> 1521 <# } #> 1522 <# if ( data.model.canEmbed ) { #> 1523 Link to Media File <# } else { #> 1524 Media File <# } #> 1525 </option> 1526 <option value="post"> 1527 <# if ( data.model.canEmbed ) { #> 1528 Link to Attachment Page <# } else { #> 1529 Attachment Page <# } #> 1530 </option> 1531 <# if ( 'image' === data.type ) { #> 1532 <option value="custom"> 1533 Custom URL </option> 1534 <# } #> 1535 </select> 1536 </span> 1537 <span class="setting"> 1538 <label for="attachment-display-settings-link-to-custom" class="name">URL</label> 1539 <input type="text" id="attachment-display-settings-link-to-custom" class="link-to-custom" data-setting="linkUrl" /> 1540 </span> 1541 1542 <# if ( 'undefined' !== typeof data.sizes ) { #> 1543 <span class="setting"> 1544 <label for="attachment-display-settings-size" class="name">Size</label> 1545 <select id="attachment-display-settings-size" class="size" name="size" 1546 data-setting="size" 1547 <# if ( data.userSettings ) { #> 1548 data-user-setting="imgsize" 1549 <# } #>> 1550 <# 1551 var size = data.sizes['thumbnail']; 1552 if ( size ) { #> 1553 <option value="thumbnail" > 1554 Thumbnail – {{ size.width }} × {{ size.height }} 1555 </option> 1556 <# } #> 1557 <# 1558 var size = data.sizes['medium']; 1559 if ( size ) { #> 1560 <option value="medium" > 1561 Medium – {{ size.width }} × {{ size.height }} 1562 </option> 1563 <# } #> 1564 <# 1565 var size = data.sizes['large']; 1566 if ( size ) { #> 1567 <option value="large" > 1568 Large – {{ size.width }} × {{ size.height }} 1569 </option> 1570 <# } #> 1571 <# 1572 var size = data.sizes['full']; 1573 if ( size ) { #> 1574 <option value="full" selected='selected'> 1575 Full Size – {{ size.width }} × {{ size.height }} 1576 </option> 1577 <# } #> 1578 </select> 1579 </span> 1580 <# } #> 1581 </script>
1581 1582 1583
1583<script type="text/html" id="tmpl-gallery-settings"> 1584 <h2>Gallery Settings</h2> 1585 1586 <span class="setting"> 1587 <label for="gallery-settings-link-to" class="name">Link To</label> 1588 <select id="gallery-settings-link-to" class="link-to" 1589 data-setting="link" 1590 <# if ( data.userSettings ) { #> 1591 data-user-setting="urlbutton" 1592 <# } #>> 1593 1594 <option value="post" <# if ( ! wp.media.galleryDefaults.link || 'post' === wp.media.galleryDefaults.link ) { 1595 #>selected="selected"<# } 1596 #>> 1597 Attachment Page </option> 1598 <option value="file" <# if ( 'file' === wp.media.galleryDefaults.link ) { #>selected="selected"<# } #>> 1599 Media File </option> 1600 <option value="none" <# if ( 'none' === wp.media.galleryDefaults.link ) { #>selected="selected"<# } #>> 1601 None </option> 1602 </select> 1603 </span> 1604 1605 <span class="setting"> 1606 <label for="gallery-settings-columns" class="name select-label-inline">Columns</label> 1607 <select id="gallery-settings-columns" class="columns" name="columns" 1608 data-setting="columns"> 1609 <option value="1" <# 1610 if ( 1 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } 1611 #>> 1612 1 </option> 1613 <option value="2" <# 1614 if ( 2 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } 1615 #>> 1616 2 </option> 1617 <option value="3" <# 1618 if ( 3 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } 1619 #>> 1620 3 </option> 1621 <option value="4" <# 1622 if ( 4 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } 1623 #>> 1624 4 </option> 1625 <option value="5" <# 1626 if ( 5 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } 1627 #>> 1628 5 </option> 1629 <option value="6" <# 1630 if ( 6 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } 1631 #>> 1632 6 </option> 1633 <option value="7" <# 1634 if ( 7 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } 1635 #>> 1636 7 </option> 1637 <option value="8" <# 1638 if ( 8 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } 1639 #>> 1640 8 </option> 1641 <option value="9" <# 1642 if ( 9 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } 1643 #>> 1644 9 </option> 1645 </select> 1646 </span> 1647 1648 <span class="setting"> 1649 <input type="checkbox" id="gallery-settings-random-order" data-setting="_orderbyRandom" /> 1650 <label for="gallery-settings-random-order" class="checkbox-label-inline">Random Order</label> 1651 </span> 1652 1653 <span class="setting size"> 1654 <label for="gallery-settings-size" class="name">Size</label> 1655 <select id="gallery-settings-size" class="size" name="size" 1656 data-setting="size" 1657 <# if ( data.userSettings ) { #> 1658 data-user-setting="imgsize" 1659 <# } #> 1660 > 1661 <option value="thumbnail"> 1662 Thumbnail </option> 1663 <option value="medium"> 1664 Medium </option> 1665 <option value="large"> 1666 Large </option> 1667 <option value="full"> 1668 Full Size </option> 1669 </select> 1670 </span> 1671 </script>
1671 1672 1673
1673<script type="text/html" id="tmpl-playlist-settings"> 1674 <h2>Playlist Settings</h2> 1675 1676 <# var emptyModel = _.isEmpty( data.model ), 1677 isVideo = 'video' === data.controller.get('library').props.get('type'); #> 1678 1679 <span class="setting"> 1680 <input type="checkbox" id="playlist-settings-show-list" data-setting="tracklist" <# if ( emptyModel ) { #> 1681 checked="checked" 1682 <# } #> /> 1683 <label for="playlist-settings-show-list" class="checkbox-label-inline"> 1684 <# if ( isVideo ) { #> 1685 Show Video List <# } else { #> 1686 Show Tracklist <# } #> 1687 </label> 1688 </span> 1689 1690 <# if ( ! isVideo ) { #> 1691 <span class="setting"> 1692 <input type="checkbox" id="playlist-settings-show-artist" data-setting="artists" <# if ( emptyModel ) { #> 1693 checked="checked" 1694 <# } #> /> 1695 <label for="playlist-settings-show-artist" class="checkbox-label-inline"> 1696 Show Artist Name in Tracklist </label> 1697 </span> 1698 <# } #> 1699 1700 <span class="setting"> 1701 <input type="checkbox" id="playlist-settings-show-images" data-setting="images" <# if ( emptyModel ) { #> 1702 checked="checked" 1703 <# } #> /> 1704 <label for="playlist-settings-show-images" class="checkbox-label-inline"> 1705 Show Images </label> 1706 </span> 1707 </script>
1707 1708 1709
1709<script type="text/html" id="tmpl-embed-link-settings"> 1710 <span class="setting link-text"> 1711 <label for="embed-link-settings-link-text" class="name">Link Text</label> 1712 <input type="text" id="embed-link-settings-link-text" class="alignment" data-setting="linkText" /> 1713 </span> 1714 <div class="embed-container" style="display: none;"> 1715 <div class="embed-preview"></div> 1716 </div> 1717 </script>
1717 1718 1719
1719<script type="text/html" id="tmpl-embed-image-settings"> 1720 <div class="wp-clearfix"> 1721 <div class="thumbnail"> 1722 <img src="{{ data.model.url }}" draggable="false" alt="" /> 1723 </div> 1724 </div> 1725 1726 <span class="setting alt-text has-description"> 1727 <label for="embed-image-settings-alt-text" class="name">Alternative Text</label> 1728 <textarea id="embed-image-settings-alt-text" data-setting="alt" aria-describedby="alt-text-description"></textarea> 1729 </span> 1730 <p class="description" id="alt-text-description"><a href="https://www.w3.org/WAI/tutorials/images/decision-tree/" target="_blank">Learn how to describe the purpose of the image<span class="screen-reader-text"> (opens in a new tab)</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a>. Leave empty if the image is purely decorative.</p> 1731 1732 <span class="setting caption"> 1733 <label for="embed-image-settings-caption" class="name">Caption</label> 1734 <textarea id="embed-image-settings-caption" data-setting="caption"></textarea> 1735 </span> 1736 1737 <fieldset class="setting-group"> 1738 <legend class="name">Align</legend> 1739 <span class="setting align"> 1740 <span class="button-group button-large" data-setting="align"> 1741 <button class="button" value="left"> 1742 Left </button> 1743 <button class="button" value="center"> 1744 Center </button> 1745 <button class="button" value="right"> 1746 Right </button> 1747 <button class="button active" value="none"> 1748 None </button> 1749 </span> 1750 </span> 1751 </fieldset> 1752 1753 <fieldset class="setting-group"> 1754 <legend class="name">Link To</legend> 1755 <span class="setting link-to"> 1756 <span class="button-group button-large" data-setting="link"> 1757 <button class="button" value="file"> 1758 Image URL </button> 1759 <button class="button" value="custom"> 1760 Custom URL </button> 1761 <button class="button active" value="none"> 1762 None </button> 1763 </span> 1764 </span> 1765 <span class="setting"> 1766 <label for="embed-image-settings-link-to-custom" class="name">URL</label> 1767 <input type="text" id="embed-image-settings-link-to-custom" class="link-to-custom" data-setting="linkUrl" /> 1768 </span> 1769 </fieldset> 1770 </script>
1770 1771 1772
1772<script type="text/html" id="tmpl-image-details"> 1773 <div class="media-embed"> 1774 <div class="embed-media-settings"> 1775 <div class="column-settings"> 1776 <span class="setting alt-text has-description"> 1777 <label for="image-details-alt-text" class="name">Alternative Text</label> 1778 <textarea id="image-details-alt-text" data-setting="alt" aria-describedby="alt-text-description">{{ data.model.alt }}</textarea> 1779 </span> 1780 <p class="description" id="alt-text-description"><a href="https://www.w3.org/WAI/tutorials/images/decision-tree/" target="_blank">Learn how to describe the purpose of the image<span class="screen-reader-text"> (opens in a new tab)</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a>. Leave empty if the image is purely decorative.</p> 1781 1782 <span class="setting caption"> 1783 <label for="image-details-caption" class="name">Caption</label> 1784 <textarea id="image-details-caption" data-setting="caption">{{ data.model.caption }}</textarea> 1785 </span> 1786 1787 <h2>Display Settings</h2> 1788 <fieldset class="setting-group"> 1789 <legend class="legend-inline">Align</legend> 1790 <span class="setting align"> 1791 <span class="button-group button-large" data-setting="align"> 1792 <button class="button" value="left"> 1793 Left </button> 1794 <button class="button" value="center"> 1795 Center </button> 1796 <button class="button" value="right"> 1797 Right </button> 1798 <button class="button active" value="none"> 1799 None </button> 1800 </span> 1801 </span> 1802 </fieldset> 1803 1804 <# if ( data.attachment ) { #> 1805 <# if ( 'undefined' !== typeof data.attachment.sizes ) { #> 1806 <span class="setting size"> 1807 <label for="image-details-size" class="name">Size</label> 1808 <select id="image-details-size" class="size" name="size" 1809 data-setting="size" 1810 <# if ( data.userSettings ) { #> 1811 data-user-setting="imgsize" 1812 <# } #>> 1813 <# 1814 var size = data.sizes['thumbnail']; 1815 if ( size ) { #> 1816 <option value="thumbnail"> 1817 Thumbnail – {{ size.width }} × {{ size.height }} 1818 </option> 1819 <# } #> 1820 <# 1821 var size = data.sizes['medium']; 1822 if ( size ) { #> 1823 <option value="medium"> 1824 Medium – {{ size.width }} × {{ size.height }} 1825 </option> 1826 <# } #> 1827 <# 1828 var size = data.sizes['large']; 1829 if ( size ) { #> 1830 <option value="large"> 1831 Large – {{ size.width }} × {{ size.height }} 1832 </option> 1833 <# } #> 1834 <# 1835 var size = data.sizes['full']; 1836 if ( size ) { #> 1837 <option value="full"> 1838 Full Size – {{ size.width }} × {{ size.height }} 1839 </option> 1840 <# } #> 1841 <option value="custom"> 1842 Custom Size </option> 1843 </select> 1844 </span> 1845 <# } #> 1846 <div class="custom-size wp-clearfix<# if ( data.model.size !== 'custom' ) { #> hidden<# } #>"> 1847 <span class="custom-size-setting"> 1848 <label for="image-details-size-width">Width</label> 1849 <input type="number" id="image-details-size-width" aria-describedby="image-size-desc" data-setting="customWidth" step="1" value="{{ data.model.customWidth }}" /> 1850 </span> 1851 <span class="sep" aria-hidden="true">×</span> 1852 <span class="custom-size-setting"> 1853 <label for="image-details-size-height">Height</label> 1854 <input type="number" id="image-details-size-height" aria-describedby="image-size-desc" data-setting="customHeight" step="1" value="{{ data.model.customHeight }}" /> 1855 </span> 1856 <p id="image-size-desc" class="description">Image size in pixels</p> 1857 </div> 1858 <# } #> 1859 1860 <span class="setting link-to"> 1861 <label for="image-details-link-to" class="name">Link To</label> 1862 <select id="image-details-link-to" data-setting="link"> 1863 <# if ( data.attachment ) { #> 1864 <option value="file"> 1865 Media File </option> 1866 <option value="post"> 1867 Attachment Page </option> 1868 <# } else { #> 1869 <option value="file"> 1870 Image URL </option> 1871 <# } #> 1872 <option value="custom"> 1873 Custom URL </option> 1874 <option value="none"> 1875 None </option> 1876 </select> 1877 </span> 1878 <span class="setting"> 1879 <label for="image-details-link-to-custom" class="name">URL</label> 1880 <input type="text" id="image-details-link-to-custom" class="link-to-custom" data-setting="linkUrl" /> 1881 </span> 1882 1883 <div class="advanced-section"> 1884 <h2><button type="button" class="button-link advanced-toggle">Advanced Options</button></h2> 1885 <div class="advanced-settings hidden"> 1886 <div class="advanced-image"> 1887 <span class="setting title-text"> 1888 <label for="image-details-title-attribute" class="name">Image Title Attribute</label> 1889 <input type="text" id="image-details-title-attribute" data-setting="title" value="{{ data.model.title }}" /> 1890 </span> 1891 <span class="setting extra-classes"> 1892 <label for="image-details-css-class" class="name">Image CSS Class</label> 1893 <input type="text" id="image-details-css-class" data-setting="extraClasse
1893s" value="{{ data.model.extraClasses }}" /> 1894 </span> 1895 </div> 1896 <div class="advanced-link"> 1897 <span class="setting link-target"> 1898 <input type="checkbox" id="image-details-link-target" data-setting="linkTargetBlank" value="_blank" <# if ( data.model.linkTargetBlank ) { #>checked="checked"<# } #>> 1899 <label for="image-details-link-target" class="checkbox-label">Open link in a new tab</label> 1900 </span> 1901 <span class="setting link-rel"> 1902 <label for="image-details-link-rel" class="name">Link Rel</label> 1903 <input type="text" id="image-details-link-rel" data-setting="linkRel" value="{{ data.model.linkRel }}" /> 1904 </span> 1905 <span class="setting link-class-name"> 1906 <label for="image-details-link-css-class" class="name">Link CSS Class</label> 1907 <input type="text" id="image-details-link-css-class" data-setting="linkClassName" value="{{ data.model.linkClassName }}" /> 1908 </span> 1909 </div> 1910 </div> 1911 </div> 1912 </div> 1913 <div class="column-image"> 1914 <div class="image"> 1915 <img src="{{ data.model.url }}" draggable="false" alt="" /> 1916 <# if ( data.attachment && window.imageEdit ) { #> 1917 <div class="actions"> 1918 <input type="button" class="edit-attachment button" value="Edit Original" /> 1919 <input type="button" class="replace-attachment button" value="Replace" /> 1920 </div> 1921 <# } #> 1922 </div> 1923 </div> 1924 </div> 1925 </div> 1926 </script>
1926 1927 1928
1928<script type="text/html" id="tmpl-image-editor"> 1929 <div id="media-head-{{ data.id }}"></div> 1930 <div id="image-editor-{{ data.id }}"></div> 1931 </script>
1931 1932 1933
1933<script type="text/html" id="tmpl-audio-details"> 1934 <# var ext, html5types = { 1935 mp3: wp.media.view.settings.embedMimes.mp3, 1936 ogg: wp.media.view.settings.embedMimes.ogg 1937 }; #> 1938 1939 <div class="media-embed media-embed-details"> 1940 <div class="embed-media-settings embed-audio-settings"> 1941 <audio crossorigin="anonymous" style="visibility: hidden" 1942 controls 1943 class="wp-audio-shortcode" 1944 width="{{ _.isUndefined( data.model.width ) ? 400 : data.model.width }}" 1945 preload="{{ _.isUndefined( data.model.preload ) ? 'none' : data.model.preload }}" 1946 <# 1947 if ( ! _.isUndefined( data.model.autoplay ) && data.model.autoplay ) { 1948 #> autoplay<# 1949 } 1950 if ( ! _.isUndefined( data.model.loop ) && data.model.loop ) { 1951 #> loop<# 1952 } 1953 #> 1954> 1955 <# if ( ! _.isEmpty( data.model.src ) ) { #> 1956 <source src="{{ data.model.src }}" type="{{ wp.media.view.settings.embedMimes[ data.model.src.split('.').pop() ] }}" /> 1957 <# } #> 1958 1959 <# if ( ! _.isEmpty( data.model.mp3 ) ) { #> 1960 <source src="{{ data.model.mp3 }}" type="{{ wp.media.view.settings.embedMimes[ 'mp3' ] }}" /> 1961 <# } #> 1962 <# if ( ! _.isEmpty( data.model.ogg ) ) { #> 1963 <source src="{{ data.model.ogg }}" type="{{ wp.media.view.settings.embedMimes[ 'ogg' ] }}" /> 1964 <# } #> 1965 <# if ( ! _.isEmpty( data.model.flac ) ) { #> 1966 <source src="{{ data.model.flac }}" type="{{ wp.media.view.settings.embedMimes[ 'flac' ] }}" /> 1967 <# } #> 1968 <# if ( ! _.isEmpty( data.model.m4a ) ) { #> 1969 <source src="{{ data.model.m4a }}" type="{{ wp.media.view.settings.embedMimes[ 'm4a' ] }}" /> 1970 <# } #> 1971 <# if ( ! _.isEmpty( data.model.wav ) ) { #> 1972 <source src="{{ data.model.wav }}" type="{{ wp.media.view.settings.embedMimes[ 'wav' ] }}" /> 1973 <# } #> 1974 </audio> 1975 1976 <# if ( ! _.isEmpty( data.model.src ) ) { 1977 ext = data.model.src.split('.').pop(); 1978 if ( html5types[ ext ] ) { 1979 delete html5types[ ext ]; 1980 } 1981 #> 1982 <span class="setting"> 1983 <label for="audio-details-source" class="name">URL</label> 1984 <input type="text" id="audio-details-source" readonly data-setting="src" value="{{ data.model.src }}" /> 1985 <button type="button" class="button-link remove-setting">Remove audio source</button> 1986 </span> 1987 <# } #> 1988 <# if ( ! _.isEmpty( data.model.mp3 ) ) { 1989 if ( ! _.isUndefined( html5types.mp3 ) ) { 1990 delete html5types.mp3; 1991 } 1992 #> 1993 <span class="setting"> 1994 <label for="audio-details-mp3-source" class="name">MP3</label> 1995 <input type="text" id="audio-details-mp3-source" readonly data-setting="mp3" value="{{ data.model.mp3 }}" /> 1996 <button type="button" class="button-link remove-setting">Remove audio source</button> 1997 </span> 1998 <# } #> 1999 <# if ( ! _.isEmpty( data.model.ogg ) ) { 2000 if ( ! _.isUndefined( html5types.ogg ) ) { 2001 delete html5types.ogg; 2002 } 2003 #> 2004 <span class="setting"> 2005 <label for="audio-details-ogg-source" class="name">OGG</label> 2006 <input type="text" id="audio-details-ogg-source" readonly data-setting="ogg" value="{{ data.model.ogg }}" /> 2007 <button type="button" class="button-link remove-setting">Remove audio source</button> 2008 </span> 2009 <# } #> 2010 <# if ( ! _.isEmpty( data.model.flac ) ) { 2011 if ( ! _.isUndefined( html5types.flac ) ) { 2012 delete html5types.flac; 2013 } 2014 #> 2015 <span class="setting"> 2016 <label for="audio-details-flac-source" class="name">FLAC</label> 2017 <input type="text" id="audio-details-flac-source" readonly data-setting="flac" value="{{ data.model.flac }}" /> 2018 <button type="button" class="button-link remove-setting">Remove audio source</button> 2019 </span> 2020 <# } #> 2021 <# if ( ! _.isEmpty( data.model.m4a ) ) { 2022 if ( ! _.isUndefined( html5types.m4a ) ) { 2023 delete html5types.m4a; 2024 } 2025 #> 2026 <span class="setting"> 2027 <label for="audio-details-m4a-source" class="name">M4A</label> 2028 <input type="text" id="audio-details-m4a-source" readonly data-setting="m4a" value="{{ data.model.m4a }}" /> 2029 <button type="button" class="button-link remove-setting">Remove audio source</button> 2030 </span> 2031 <# } #> 2032 <# if ( ! _.isEmpty( data.model.wav ) ) { 2033 if ( ! _.isUndefined( html5types.wav ) ) { 2034 delete html5types.wav; 2035 } 2036 #> 2037 <span class="setting"> 2038 <label for="audio-details-wav-source" class="name">WAV</label> 2039 <input type="text" id="audio-details-wav-source" readonly data-setting="wav" value="{{ data.model.wav }}" /> 2040 <button type="button" class="button-link remove-setting">Remove audio source</button> 2041 </span> 2042 <# } #> 2043 2044 <# if ( ! _.isEmpty( html5types ) ) { #> 2045 <fieldset class="setting-group"> 2046 <legend class="name">Add alternate sources for maximum HTML5 playback</legend> 2047 <span class="setting"> 2048 <span class="button-large"> 2049 <# _.each( html5types, function (mime, type) { #> 2050 <button class="button add-media-source" data-mime="{{ mime }}">{{ type }}</button> 2051 <# } ) #> 2052 </span> 2053 </span> 2054 </fieldset> 2055 <# } #> 2056 2057 <fieldset class="setting-group"> 2058 <legend class="name">Preload</legend> 2059 <span class="setting preload"> 2060 <span class="button-group button-large" data-setting="preload"> 2061 <button class="button" value="auto">Auto</button> 2062 <button class="button" value="metadata">Metadata</button> 2063 <button class="button active" value="none">None</button> 2064 </span> 2065 </span> 2066 </fieldset> 2067 2068 <span class="setting-group"> 2069 <span class="setting checkbox-setting autoplay"> 2070 <input type="checkbox" id="audio-details-autoplay" data-setting="autoplay" /> 2071 <label for="audio-details-autoplay" class="checkbox-label">Autoplay</label> 2072 </span> 2073 2074 <span class="setting checkbox-setting"> 2075 <input type="checkbox" id="audio-details-loop" data-setting="loop" /> 2076 <label for="audio-details-loop" class="checkbox-label">Loop</label> 2077 </span> 2078 </span> 2079 </div> 2080 </div> 2081 </script>
2081 2082 2083
2083<script type="text/html" id="tmpl-video-details"> 2084 <# var ext, html5types = { 2085 mp4: wp.media.view.settings.embedMimes.mp4, 2086 ogv: wp.media.view.settings.embedMimes.ogv, 2087 webm: wp.media.view.settings.embedMimes.webm 2088 }; #> 2089 2090 <div class="media-embed media-embed-details"> 2091 <div class="embed-media-settings embed-video-settings"> 2092 <div class="wp-video-holder"> 2093 <# 2094 var w = ! data.model.width || data.model.width > 640 ? 640 : data.model.width, 2095 h = ! data.model.height ? 360 : data.model.height; 2096 2097 if ( data.model.width && w !== data.model.width ) { 2098 h = Math.ceil( ( h * w ) / data.model.width ); 2099 } 2100 #> 2101 2102 <# var w_rule = '', classes = [], 2103 w, h, settings = wp.media.view.settings, 2104 isYouTube = isVimeo = false; 2105 2106 if ( ! _.isEmpty( data.model.src ) ) { 2107 isYouTube = data.model.src.match(/youtube|youtu\.be/); 2108 isVimeo = -1 !== data.model.src.indexOf('vimeo'); 2109 } 2110 2111 if ( settings.contentWidth && data.model.width >= settings.contentWidth ) { 2112 w = settings.contentWidth; 2113 } else { 2114 w = data.model.width; 2115 } 2116 2117 if ( w !== data.model.width ) { 2118 h = Math.ceil( ( data.model.height * w ) / data.model.width ); 2119 } else { 2120 h = data.model.height; 2121 } 2122 2123 if ( w ) { 2124 w_rule = 'width: ' + w + 'px; '; 2125 } 2126 2127 if ( isYouTube ) { 2128 classes.push( 'youtube-video' ); 2129 } 2130 2131 if ( isVimeo ) { 2132 classes.push( 'vimeo-video' ); 2133 } 2134 2135#> 2136<div style="{{ w_rule }}" class="wp-video"> 2137<video crossorigin="anonymous" controls 2138 class="wp-video-shortcode {{ classes.join( ' ' ) }}" 2139 <# if ( w ) { #>width="{{ w }}"<# } #> 2140 <# if ( h ) { #>height="{{ h }}"<# } #> 2141 <# 2142 if ( ! _.isUndefined( data.model.poster ) && data.model.poster ) { 2143 #> poster="{{ data.model.poster }}"<# 2144 } #> 2145 preload ="{{ _.isUndefined( data.model.preload ) ? 'metadata' : data.model.preload }}" 2146 <# 2147 if ( ! _.isUndefined( data.model.autoplay ) && data.model.autoplay ) { 2148 #> autoplay<# 2149 } 2150 if ( ! _.isUndefined( data.model.loop ) && data.model.loop ) { 2151 #> loop<# 2152 } 2153 #> 2154> 2155 <# if ( ! _.isEmpty( data.model.src ) ) { 2156 if ( isYouTube ) { #> 2157 <source src="{{ data.model.src }}" type="video/youtube" /> 2158 <# } else if ( isVimeo ) { #> 2159 <source src="{{ data.model.src }}" type="video/vimeo" /> 2160 <# } else { #> 2161 <source src="{{ data.model.src }}" type="{{ settings.embedMimes[ data.model.src.split('.').pop() ] }}" /> 2162 <# } 2163 } #> 2164 2165 <# if ( data.model.mp4 ) { #> 2166 <source src="{{ data.model.mp4 }}" type="{{ settings.embedMimes[ 'mp4' ] }}" /> 2167 <# } #> 2168 <# if ( data.model.m4v ) { #> 2169 <source src="{{ data.model.m4v }}" type="{{ settings.embedMimes[ 'm4v' ] }}" /> 2170 <# } #> 2171 <# if ( data.model.webm ) { #> 2172 <source src="{{ data.model.webm }}" type="{{ settings.embedMimes[ 'webm' ] }}" /> 2173 <# } #> 2174 <# if ( data.model.ogv ) { #> 2175 <source src="{{ data.model.ogv }}" type="{{ settings.embedMimes[ 'ogv' ] }}" /> 2176 <# } #> 2177 <# if ( data.model.flv ) { #> 2178 <source src="{{ data.model.flv }}" type="{{ settings.embedMimes[ 'flv' ] }}" /> 2179 <# } #> 2180 {{{ data.model.content }}} 2181</video> 2182</div> 2183 2184 <# if ( ! _.isEmpty( data.model.src ) ) { 2185 ext = data.model.src.split('.').pop(); 2186 if ( html5types[ ext ] ) { 2187 delete html5types[ ext ]; 2188 } 2189 #> 2190 <span class="setting"> 2191 <label for="video-details-source" class="name">URL</label> 2192 <input type="text" id="video-details-source" readonly data-setting="src" value="{{ data.model.src }}" /> 2193 <button type="button" class="button-link remove-setting">Remove video source</button> 2194 </span> 2195 <# } #> 2196 <# if ( ! _.isEmpty( data.model.mp4 ) ) { 2197 if ( ! _.isUndefined( html5types.mp4 ) ) { 2198 delete html5types.mp4; 2199 } 2200 #> 2201 <span class="setting"> 2202 <label for="video-details-mp4-source" class="name">MP4</label> 2203 <input type="text" id="video-details-mp4-source" readonly data-setting="mp4" value="{{ data.model.mp4 }}" /> 2204 <button type="button" class="button-link remove-setting">Remove video source</button> 2205 </span> 2206 <# } #> 2207 <# if ( ! _.isEmpty( data.model.m4v ) ) { 2208 if ( ! _.isUndefined( html5types.m4v ) ) { 2209 delete html5types.m4v; 2210 } 2211 #> 2212 <span class="setting">
2213 <label for="video-details-m4v-source" class="name">M4V</label> 2214 <input type="text" id="video-details-m4v-source" readonly data-setting="m4v" value="{{ data.model.m4v }}" /> 2215 <button type="button" class="button-link remove-setting">Remove video source</button> 2216 </span> 2217 <# } #> 2218 <# if ( ! _.isEmpty( data.model.webm ) ) { 2219 if ( ! _.isUndefined( html5types.webm ) ) { 2220 delete html5types.webm; 2221 } 2222 #> 2223 <span class="setting"> 2224 <label for="video-details-webm-source" class="name">WEBM</label> 2225 <input type="text" id="video-details-webm-source" readonly data-setting="webm" value="{{ data.model.webm }}" /> 2226 <button type="button" class="button-link remove-setting">Remove video source</button> 2227 </span> 2228 <# } #> 2229 <# if ( ! _.isEmpty( data.model.ogv ) ) { 2230 if ( ! _.isUndefined( html5types.ogv ) ) { 2231 delete html5types.ogv; 2232 } 2233 #> 2234 <span class="setting"> 2235 <label for="video-details-ogv-source" class="name">OGV</label> 2236 <input type="text" id="video-details-ogv-source" readonly data-setting="ogv" value="{{ data.model.ogv }}" /> 2237 <button type="button" class="button-link remove-setting">Remove video source</button> 2238 </span> 2239 <# } #> 2240 <# if ( ! _.isEmpty( data.model.flv ) ) { 2241 if ( ! _.isUndefined( html5types.flv ) ) { 2242 delete html5types.flv; 2243 } 2244 #> 2245 <span class="setting"> 2246 <label for="video-details-flv-source" class="name">FLV</label> 2247 <input type="text" id="video-details-flv-source" readonly data-setting="flv" value="{{ data.model.flv }}" /> 2248 <button type="button" class="button-link remove-setting">Remove video source</button> 2249 </span> 2250 <# } #> 2251 </div> 2252 2253 <# if ( ! _.isEmpty( html5types ) ) { #> 2254 <fieldset class="setting-group"> 2255 <legend class="name">Add alternate sources for maximum HTML5 playback</legend> 2256 <span class="setting"> 2257 <span class="button-large"> 2258 <# _.each( html5types, function (mime, type) { #> 2259 <button class="button add-media-source" data-mime="{{ mime }}">{{ type }}</button> 2260 <# } ) #> 2261 </span> 2262 </span> 2263 </fieldset> 2264 <# } #> 2265 2266 <# if ( ! _.isEmpty( data.model.poster ) ) { #> 2267 <span class="setting"> 2268 <label for="video-details-poster-image" class="name">Poster Image</label> 2269 <input type="text" id="video-details-poster-image" readonly data-setting="poster" value="{{ data.model.poster }}" /> 2270 <button type="button" class="button-link remove-setting">Remove poster image</button> 2271 </span> 2272 <# } #> 2273 2274 <fieldset class="setting-group"> 2275 <legend class="name">Preload</legend> 2276 <span class="setting preload"> 2277 <span class="button-group button-large" data-setting="preload"> 2278 <button class="button" value="auto">Auto</button> 2279 <button class="button" value="metadata">Metadata</button> 2280 <button class="button active" value="none">None</button> 2281 </span> 2282 </span> 2283 </fieldset> 2284 2285 <span class="setting-group"> 2286 <span class="setting checkbox-setting autoplay"> 2287 <input type="checkbox" id="video-details-autoplay" data-setting="autoplay" /> 2288 <label for="video-details-autoplay" class="checkbox-label">Autoplay</label> 2289 </span> 2290 2291 <span class="setting checkbox-setting"> 2292 <input type="checkbox" id="video-details-loop" data-setting="loop" /> 2293 <label for="video-details-loop" class="checkbox-label">Loop</label> 2294 </span> 2295 </span> 2296 2297 <span class="setting" data-setting="content"> 2298 <# 2299 var content = ''; 2300 if ( ! _.isEmpty( data.model.content ) ) { 2301 var tracks = jQuery( data.model.content ).filter( 'track' ); 2302 _.each( tracks.toArray(), function( track, index ) { 2303 content += track.outerHTML; #> 2304 <label for="video-details-track-{{ index }}" class="name">Tracks (subtitles, captions, descriptions, chapters, or metadata)</label> 2305 <input class="content-track" type="text" id="video-details-track-{{ index }}" aria-describedby="video-details-track-desc-{{ index }}" value="{{ track.outerHTML }}" />
2306 <span class="description" id="video-details-track-desc-{{ index }}"> 2307 The srclang, label, and kind values can be edited to set the video track language and kind. </span> 2308 <button type="button" class="button-link remove-setting remove-track">Remove video track</button><br /> 2309 <# } ); #> 2310 <# } else { #> 2311 <span class="name">Tracks (subtitles, captions, descriptions, chapters, or metadata)</span><br /> 2312 <em>There are no associated subtitles.</em> 2313 <# } #> 2314 <textarea class="hidden content-setting">{{ content }}</textarea> 2315 </span> 2316 </div> 2317 </div> 2318 </script>
2318 2319 2320
2320<script type="text/html" id="tmpl-editor-gallery"> 2321 <# if ( data.attachments.length ) { #> 2322 <div class="gallery gallery-columns-{{ data.columns }}"> 2323 <# _.each( data.attachments, function( attachment, index ) { #> 2324 <dl class="gallery-item"> 2325 <dt class="gallery-icon"> 2326 <# if ( attachment.thumbnail ) { #> 2327 <img src="{{ attachment.thumbnail.url }}" width="{{ attachment.thumbnail.width }}" height="{{ attachment.thumbnail.height }}" alt="{{ attachment.alt }}" /> 2328 <# } else { #> 2329 <img src="{{ attachment.url }}" alt="{{ attachment.alt }}" /> 2330 <# } #> 2331 </dt> 2332 <# if ( attachment.caption ) { #> 2333 <dd class="wp-caption-text gallery-caption"> 2334 {{{ data.verifyHTML( attachment.caption ) }}} 2335 </dd> 2336 <# } #> 2337 </dl> 2338 <# if ( index % data.columns === data.columns - 1 ) { #> 2339 <br style="clear: both;" /> 2340 <# } #> 2341 <# } ); #> 2342 </div> 2343 <# } else { #> 2344 <div class="wpview-error"> 2345 <div class="dashicons dashicons-format-gallery"></div><p>No items found.</p> 2346 </div> 2347 <# } #> 2348 </script>
2348 2349 2350
2350<script type="text/html" id="tmpl-crop-content"> 2351 <img class="crop-image" src="{{ data.url }}" alt="Image crop area preview. Requires mouse interaction." /> 2352 <div class="upload-errors"></div> 2353 </script>
2353 2354 2355
2355<script type="text/html" id="tmpl-site-icon-preview-crop"> 2356 <style> 2357 :root{ 2358 --site-icon-url: url( "{{ data.url }}" ); 2359 } 2360 </style> 2361 <h2>Site Icon Preview</h2> 2362 <p>As an app icon and a browser icon.</p> 2363 <div class="site-icon-preview crop"> 2364 <div class="image-preview-wrap app-icon-preview"> 2365 <img id="preview-app-icon" src="{{ data.url }}" class="app-icon-preview" alt="Preview as an app icon" /> 2366 </div> 2367 <div class="site-icon-preview-browser"> 2368 <svg role="img" aria-hidden="true" fill="none" xmlns="http://www.w3.org/2000/svg" class="browser-buttons"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 20a6 6 0 1 1 12 0 6 6 0 0 1-12 0Zm18 0a6 6 0 1 1 12 0 6 6 0 0 1-12 0Zm24-6a6 6 0 1 0 0 12 6 6 0 0 0 0-12Z" /></svg> 2369 <div class="site-icon-preview-tab"> 2370 <div class="image-preview-wrap browser"> 2371 <img id="preview-favicon" src="{{ data.url }}" class="browser-icon-preview" alt="Preview as a browser icon" /> 2372 </div> 2373 <div class="site-icon-preview-site-title" aria-hidden="true"><# print( 'Windpower Engineering & Development' ) #></div> 2374 <svg role="img" aria-hidden="true" fill="none" xmlns="http://www.w3.org/2000/svg" class="close-button"> 2375 <path d="M12 13.0607L15.7123 16.773L16.773 15.7123L13.0607 12L16.773 8.28772L15.7123 7.22706L12 10.9394L8.28771 7.22705L7.22705 8.28771L10.9394 12L7.22706 15.7123L8.28772 16.773L12 13.0607Z" /> 2376 </svg> 2377 </div> 2378 </div> 2379 </div> 2380 </div> 2381 </script>
2381 2382 2383
2383<script id="wtwh-ai-search-script-js" src="https://scripts.wtwhmedia.com/developer/ai_search/env/prod/index.js?ver=1790241459"></script>
vendor: 1 bytes, line 2383
2383
2384<script id="thickbox-js-extra"> 2385var thickboxL10n = {"next":"Next \u003E","prev":"\u003C Prev","image":"Image","of":"of","close":"Close","noiframes":"This feature requires inline frames. You have iframes disabled or your browser does not support them.","loadingAnimation":"https://www.windpowerengineering.com/wp-includes/js/thickbox/loadingAnimation.gif"}; 2386//# sourceURL=thickbox-js-extra 2387</script>
vendor: 1 bytes, line 2387
2387
2388<script id="thickbox-js" src="https://www.windpowerengineering.com/wp-includes/js/thickbox/thickbox.js?ver=3.1-20121105"></script>
vendor: 1 bytes, line 2388
2388
2389<script id="underscore-js" src="https://www.windpowerengineering.com/wp-includes/js/underscore.min.js?ver=1.13.8"></script>
vendor: 1 bytes, line 2389
2389
2390<script id="shortcode-js" src="https://www.windpowerengineering.com/wp-includes/js/shortcode.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2390
2390
2391<script id="media-upload-js" src="https://www.windpowerengineering.com/wp-admin/js/media-upload.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2391
2391
2392<script id="backbone-js" src="https://www.windpowerengineering.com/wp-includes/js/backbone.min.js?ver=1.6.1"></script>
vendor: 1 bytes, line 2392
2392
2393<script id="wp-util-js-extra"> 2394var _wpUtilSettings = {"ajax":{"url":"/wp-admin/admin-ajax.php"}}; 2395//# sourceURL=wp-util-js-extra 2396</script>
vendor: 1 bytes, line 2396
2396
2397<script id="wp-util-js" src="https://www.windpowerengineering.com/wp-includes/js/wp-util.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2397
2397
2398<script id="wp-backbone-js" src="https://www.windpowerengineering.com/wp-includes/js/wp-backbone.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2398
2398
2399<script id="media-models-js-extra"> 2400var _wpMediaModelsL10n = {"settings":{"ajaxurl":"/wp-admin/admin-ajax.php","post":{"id":0}}}; 2401//# sourceURL=media-models-js-extra 2402</script>
vendor: 1 bytes, line 2402
2402
2403<script id="media-models-js" src="https://www.windpowerengineering.com/wp-includes/js/media-models.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2403
2403
2404<script id="wp-plupload-js-extra"> 2405var pluploadL10n = {"queue_limit_exceeded":"You have attempted to queue too many files.","file_exceeds_size_limit":"%s exceeds the maximum upload size for this site.","zero_byte_file":"This file is empty. Please try another.","invalid_filetype":"This file cannot be processed by the web server.","not_an_image":"This file is not an image. Please try another.","image_memory_exceeded":"Memory exceeded. Please try another smaller file.","image_dimensions_exceeded":"This is larger than the maximum size. Please try another.","default_error":"An error occurred in the upload. Please try again later.","missing_upload_url":"There was a configuration error. Please contact the server administrator.","upload_limit_exceeded":"You may only upload 1 file.","http_error":"Unexpected response from the server. The file may have been uploaded successfully. Check in the Media Library or reload the page.","http_error_image":"The server cannot process the image. This can happen if the server is busy or does not have enough resources to complete the task. Uploading a smaller image may help. Suggested maximum size is 2560 pixels.","upload_failed":"Upload failed.","big_upload_failed":"Please try uploading this file with the %1$sbrowser uploader%2$s.","big_upload_queued":"%s exceeds the maximum upload size for the multi-file uploader when used in your browser.","io_error":"IO error.","security_error":"Security error.","file_cancelled":"File canceled.","upload_stopped":"Upload stopped.","dismiss":"Dismiss","crunching":"Crunching\u2026","deleted":"moved to the Trash.","error_uploading":"\u201c%s\u201d has failed to upload.","unsupported_image":"The server cannot process HEIC images. Convert it to JPEG before uploading.","noneditable_image":"The web server cannot generate responsive image sizes for this image. Convert it to JPEG or PNG before uploading.","file_url_copied":"The file URL has been copied to your clipboard"}; 2406var _wpPluploadSettings = {"defaults":{"file_data_name":"async-upload","url":"/wp-admin/async-upload.php","filters":{"max_file_size":"52428800b","mime_types":[{"extensions":"jpg,jpeg,jpe,gif,png,bmp,tiff,tif,webp,avif,ico,heic,heif,heics,heifs,asf,asx,wmv,wmx,wm,avi,divx,flv,mov,qt,mpeg,mpg,mpe,mp4,m4v,ogv,webm,mkv,3gp,3gpp,3g2,3gp2,txt,asc,c,cc,h,srt,csv,tsv,ics,rtx,css,vtt,dfxp,mp3,m4a,m4b,aac,ra,ram,wav,x-wav,ogg,oga,flac,mid,midi,wma,wax,mka,rtf,pdf,class,tar,zip,gz,gzip,rar,7z,psd,xcf,doc,pot,pps,ppt,wri,xla,xls,xlt,xlw,mdb,mpp,docx,docm,dotx,dotm,xlsx,xlsm,xlsb,xltx,xltm,xlam,pptx,pptm,ppsx,ppsm,potx,potm,ppam,sldx,sldm,onetoc,onetoc2,onetmp,onepkg,oxps,xps,odt,odp,ods,odg,odc,odb,odf,wp,wpd,key,numbers,pages"}]},"multipart_params":{"action":"upload-attachment","_wpnonce":"79fcf5c09d"}},"browser":{"mobile":false,"supported":true},"limitExceeded":false}; 2407//# sourceURL=wp-plupload-js-extra 2408</script>
vendor: 1 bytes, line 2408
2408
2409<script id="wp-plupload-js" src="https://www.windpowerengineering.com/wp-includes/js/plupload/wp-plupload.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2409
2409
2410<script id="jquery-ui-core-js-before"> 2411jQuery.uiBackCompat = true; 2412//# sourceURL=jquery-ui-core-js-before 2413</script>
vendor: 1 bytes, line 2413
2413
2414<script id="jquery-ui-core-js" src="https://www.windpowerengineering.com/wp-includes/js/jquery/ui/core.min.js?ver=1.14.2"></script>
vendor: 1 bytes, line 2414
2414
2415<script id="jquery-ui-mouse-js" src="https://www.windpowerengineering.com/wp-includes/js/jquery/ui/mouse.min.js?ver=1.14.2"></script>
vendor: 1 bytes, line 2415
2415
2416<script id="jquery-ui-sortable-js" src="https://www.windpowerengineering.com/wp-includes/js/jquery/ui/sortable.min.js?ver=1.14.2"></script>
vendor: 1 bytes, line 2416
2416
2417<script id="mediaelement-core-js-before"> 2418var mejsL10n = {"language":"en","strings":{"mejs.download-file":"Download File","mejs.install-flash":"You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https://get.adobe.com/flashplayer/","mejs.fullscreen":"Fullscreen","mejs.play":"Play","mejs.pause":"Pause","mejs.time-slider":"Time Slider","mejs.time-help-text":"Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.","mejs.live-broadcast":"Live Broadcast","mejs.volume-help-text":"Use Up/Down Arrow keys to increase or decrease volume.","mejs.unmute":"Unmute","mejs.mute":"Mute","mejs.volume-slider":"Volume Slider","mejs.video-player":"Video Player","mejs.audio-player":"Audio Player","mejs.captions-subtitles":"Captions/Subtitles","mejs.captions-chapters":"Chapters","mejs.none":"None","mejs.afrikaans":"Afrikaans","mejs.albanian":"Albanian","mejs.arabic":"Arabic","mejs.belarusian":"Belarusian","mejs.bulgarian":"Bulgarian","mejs.catalan":"Catalan","mejs.chinese":"Chinese","mejs.chinese-simplified":"Chinese (Simplified)","mejs.chinese-traditional":"Chinese (Traditional)","mejs.croatian":"Croatian","mejs.czech":"Czech","mejs.danish":"Danish","mejs.dutch":"Dutch","mejs.english":"English","mejs.estonian":"Estonian","mejs.filipino":"Filipino","mejs.finnish":"Finnish","mejs.french":"French","mejs.galician":"Galician","mejs.german":"German","mejs.greek":"Greek","mejs.haitian-creole":"Haitian Creole","mejs.hebrew":"Hebrew","mejs.hindi":"Hindi","mejs.hungarian":"Hungarian","mejs.icelandic":"Icelandic","mejs.indonesian":"Indonesian","mejs.irish":"Irish","mejs.italian":"Italian","mejs.japanese":"Japanese","mejs.korean":"Korean","mejs.latvian":"Latvian","mejs.lithuanian":"Lithuanian","mejs.macedonian":"Macedonian","mejs.malay":"Malay","mejs.maltese":"Maltese","mejs.norwegian":"Norwegian","mejs.persian":"Persian","mejs.polish":"Polish","mejs.portuguese":"Portuguese","mejs.romanian":"Romanian","mejs.russian":"Russian","mejs.serbian":"Serbian","mejs.slovak":"Slovak","mejs.slovenian":"Slovenian","mejs.spanish":"Spanish","mejs.swahili":"Swahili","mejs.swedish":"Swedish","mejs.tagalog":"Tagalog","mejs.thai":"Thai","mejs.turkish":"Turkish","mejs.ukrainian":"Ukrainian","mejs.vietnamese":"Vietnamese","mejs.welsh":"Welsh","mejs.yiddish":"Yiddish"}}; 2419//# sourceURL=mediaelement-core-js-before 2420</script>
vendor: 1 bytes, line 2420
2420
2421<script id="mediaelement-core-js" src="https://www.windpowerengineering.com/wp-includes/js/mediaelement/mediaelement-and-player.min.js?ver=4.2.17"></script>
vendor: 1 bytes, line 2421
2421
2422<script id="mediaelement-migrate-js" src="https://www.windpowerengineering.com/wp-includes/js/mediaelement/mediaelement-migrate.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2422
2422
2423<script id="mediaelement-js-extra"> 2424var _wpmejsSettings = {"pluginPath":"/wp-includes/js/mediaelement/","classPrefix":"mejs-","stretching":"responsive","audioShortcodeLibrary":"mediaelement","videoShortcodeLibrary":"mediaelement"}; 2425//# sourceURL=mediaelement-js-extra 2426</script>
vendor: 1 bytes, line 2426
2426
2427<script id="wp-mediaelement-js" src="https://www.windpowerengineering.com/wp-includes/js/mediaelement/wp-mediaelement.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2427
2427
2428<script id="wp-api-request-js-extra"> 2429var wpApiSettings = {"root":"https://www.windpowerengineering.com/wp-json/","nonce":"9963a1ed94","versionString":"wp/v2/"}; 2430//# sourceURL=wp-api-request-js-extra 2431</script>
vendor: 1 bytes, line 2431
2431
2432<script id="wp-api-request-js" src="https://www.windpowerengineering.com/wp-includes/js/api-request.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2432
2432
2433<script id="wp-dom-ready-js" src="https://www.windpowerengineering.com/wp-includes/js/dist/dom-ready.min.js?ver=3fe927cab37bf38d6a23"></script>
vendor: 1 bytes, line 2433
2433
2434<script id="wp-hooks-js" src="https://www.windpowerengineering.com/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script>
vendor: 1 bytes, line 2434
2434
2435<script id="wp-i18n-js" src="https://www.windpowerengineering.com/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script>
vendor: 1 bytes, line 2435
2435
2436<script id="wp-i18n-js-after"> 2437wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); 2438//# sourceURL=wp-i18n-js-after 2439</script>
vendor: 1 bytes, line 2439
2439
2440<script id="wp-a11y-js" src="https://www.windpowerengineering.com/wp-includes/js/dist/a11y.min.js?ver=31c6cec5a4ff7aff483d"></script>
vendor: 1 bytes, line 2440
2440
2441<script id="clipboard-js" src="https://www.windpowerengineering.com/wp-includes/js/clipboard.min.js?ver=2.0.11"></script>
vendor: 1 bytes, line 2441
2441
2442<script id="media-views-js-extra"> 2443var _wpMediaViewsL10n = {"mediaFrameDefaultTitle":"Media","url":"URL","addMedia":"Add media","search":"Search","select":"Select","cancel":"Cancel","update":"Update","replace":"Replace","remove":"Remove","back":"Back","selected":"%d selected","dragInfo":"Drag and drop to reorder media files.","uploadFilesTitle":"Upload files","uploadImagesTitle":"Upload images","mediaLibraryTitle":"Media Library","insertMediaTitle":"Add media","createNewGallery":"Create a new gallery","createNewPlaylist":"Create a new playlist","createNewVideoPlaylist":"Create a new video playlist","returnToLibrary":"\u2190 Go to library","allMediaItems":"All media items","allDates":"All dates","noItemsFound":"No items found.","insertIntoPost":"Insert into post","unattached":"Unattached","mine":"Mine","trash":"Trash","uploadedToThisPost":"Uploaded to this post","warnDelete":"You are about to permanently delete this item from your site.\nThis action cannot be undone.\n 'Cancel' to stop, 'OK' to delete.","warnBulkDelete":"You are about to permanently delete these items from your site.\nThis action cannot be undone.\n 'Cancel' to stop, 'OK' to delete.","warnBulkTrash":"You are about to trash these items.\n 'Cancel' to stop, 'OK' to delete.","bulkSelect":"Bulk select","trashSelected":"Move to Trash","restoreSelected":"Restore from Trash","deletePermanently":"Delete permanently","errorDeleting":"Error in deleting the attachment.","apply":"Apply","filterByDate":"Filter by date","filterByType":"Filter by type","searchLabel":"Search media","searchMediaLabel":"Search media","searchMediaPlaceholder":"Search media items...","mediaFound":"Number of media items found: %d","noMedia":"No media items found.","noMediaTryNewSearch":"No media items found. Try a different search.","mediaItemViewed":"Viewing media item: %s","attachmentDetails":"Attachment details","insertFromUrlTitle":"Insert from URL","setFeaturedImageTitle":"Featured image","setFeaturedImage":"Set featured image","createGalleryTitle":"Create gallery","editGalleryTitle":"Edit gallery","cancelGalleryTitle":"\u2190 Cancel gallery","insertGallery":"Insert gallery","updateGallery":"Update gallery","addToGallery":"Add to gallery","addToGalleryTitle":"Add to gallery","reverseOrder":"Reverse order","imageDetailsTitle":"Image details","imageReplaceTitle":"Replace image","imageDetailsCancel":"Cancel edit","editImage":"Edit image","chooseImage":"Choose image","selectAndCrop":"Select and crop","skipCropping":"Skip cropping","cropImage":"Crop image","cropYourImage":"Crop your image","cropping":"Cropping\u2026","suggestedDimensions":"Suggested image dimensions: %1$s by %2$s pixels.","cropError":"There has been an error cropping your image.","audioDetailsTitle":"Audio details","audioReplaceTitle":"Replace audio","audioAddSourceTitle":"Add audio source","audioDetailsCancel":"Cancel edit","videoDetailsTitle":"Video details","videoReplaceTitle":"Replace video","videoAddSourceTitle":"Add video source","videoDetailsCancel":"Cancel edit","videoSelectPosterImageTitle":"Select poster image","videoAddTrackTitle":"Add subtitles","playlistDragInfo":"Drag and drop to reorder tracks.","createPlaylistTitle":"Create audio playlist","editPlaylistTitle":"Edit audio playlist","cancelPlaylistTitle":"\u2190 Cancel audio playlist","insertPlaylist":"Insert audio playlist","updatePlaylist":"Update audio playlist","addToPlaylist":"Add to audio playlist","addToPlaylistTitle":"Add to Audio Playlist","videoPlaylistDragInfo":"Drag and drop to reorder videos.","createVideoPlaylistTitle":"Create video playlist","editVideoPlaylistTitle":"Edit video playlist","cancelVideoPlaylistTitle":"\u2190 Cancel video playlist","insertVideoPlaylist":"Insert video playlist","updateVideoPlaylist":"Update video playlist","addToVideoPlaylist":"Add to video playlist","addToVideoPlaylistTitle":"Add to video Playlist","filterAttachments":"Filter media","attachmentsList":"Media list","settings":{"tabs":[],"tabUrl":"https://www.windpowerengineering.com/wp-admin/media-upload.php?chromeless=1","mimeTypes":{"image":"Images","audio":"Audio","video":"Video","application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-word.document.macroEnabled.12,application/vnd.ms-word.template.macroEnabled.12,application/vnd.oasis.opendocument.text,application/vnd.apple.pages,application/pdf,application/vnd.ms-xpsdocument,application/oxps,application/rtf,application/wordperfect,application/octet-stream":"Documents","application/vnd.apple.numbers,application/vnd.oasis.opendocument.spreadsheet,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,application/vnd.ms-excel.sheet.binary.macroEnabled.12":"Spreadsheets","application/x-gzip,application/rar,a
2443pplication/x-tar,application/zip,application/x-7z-compressed":"Archives"},"captions":true,"nonce":{"sendToEditor":"5d8fa3901b","setAttachmentThumbnail":"816b1b6ab9"},"post":{"id":0},"defaultProps":{"link":"none","align":"","size":""},"attachmentCounts":{"audio":1,"video":1},"oEmbedProxyUrl":"https://www.windpowerengineering.com/wp-json/oembed/1.0/proxy","embedExts":["mp3","ogg","flac","m4a","wav","mp4","m4v","webm","ogv","flv"],"embedMimes":{"mp3":"audio/mpeg","ogg":"audio/ogg","flac":"audio/flac","m4a":"audio/mpeg","wav":"audio/wav","mp4":"video/mp4","m4v":"video/mp4","webm":"video/webm","ogv":"video/ogg","flv":"video/x-flv"},"contentWidth":740,"months":[{"year":"2026","month":"6","text":"June 2026"},{"year":"2025","month":"12","text":"December 2025"},{"year":"2025","month":"11","text":"November 2025"},{"year":"2025","month":"10","text":"October 2025"},{"year":"2025","month":"9","text":"September 2025"},{"year":"2025","month":"8","text":"August 2025"},{"year":"2025","month":"6","text":"June 2025"},{"year":"2025","month":"5","text":"May 2025"},{"year":"2025","month":"4","text":"April 2025"},{"year":"2025","month":"3","text":"March 2025"},{"year":"2025","month":"2","text":"February 2025"},{"year":"2025","month":"1","text":"January 2025"},{"year":"2024","month":"12","text":"December 2024"},{"year":"2024","month":"11","text":"November 2024"},{"year":"2024","month":"10","text":"October 2024"},{"year":"2024","month":"9","text":"September 2024"},{"year":"2024","month":"8","text":"August 2024"},{"year":"2024","month":"7","text":"July 2024"},{"year":"2024","month":"6","text":"June 2024"},{"year":"2024","month":"5","text":"May 2024"},{"year":"2024","month":"4","text":"April 2024"},{"year":"2024","month":"3","text":"March 2024"},{"year":"2024","month":"2","text":"February 2024"},{"year":"2024","month":"1","text":"January 2024"},{"year":"2023","month":"12","text":"December 2023"},{"year":"2023","month":"11","text":"November 2023"},{"year":"2023","month":"10","text":"October 2023"},{"year":"2023","month":"9","text":"September 2023"},{"year":"2023","month":"8","text":"August 2023"},{"year":"2023","month":"7","text":"July 2023"},{"year":"2023","month":"6","text":"June 2023"},{"year":"2023","month":"5","text":"May 2023"},{"year":"2023","month":"4","text":"April 2023"},{"year":"2023","month":"3","text":"March 2023"},{"year":"2023","month":"2","text":"February 2023"},{"year":"2023","month":"1","text":"January 2023"},{"year":"2022","month":"12","text":"December 2022"},{"year":"2022","month":"11","text":"November 2022"},{"year":"2022","month":"10","text":"October 2022"},{"year":"2022","month":"9","text":"September 2022"},{"year":"2022","month":"8","text":"August 2022"},{"year":"2022","month":"7","text":"July 2022"},{"year":"2022","month":"6","text":"June 2022"},{"year":"2022","month":"5","text":"May 2022"},{"year":"2022","month":"4","text":"April 2022"},{"year":"2022","month":"3","text":"March 2022"},{"year":"2022","month":"2","text":"February 2022"},{"year":"2022","month":"1","text":"January 2022"},{"year":"2021","month":"12","text":"December 2021"},{"year":"2021","month":"11","text":"November 2021"},{"year":"2021","month":"10","text":"October 2021"},{"year":"2021","month":"9","text":"September 2021"},{"year":"2021","month":"8","text":"August 2021"},{"year":"2021","month":"7","text":"July 2021"},{"year":"2021","month":"6","text":"June 2021"},{"year":"2021","month":"5","text":"May 2021"},{"year":"2021","month":"4","text":"April 2021"},{"year":"2021","month":"3","text":"March 2021"},{"year":"2021","month":"2","text":"February 2021"},{"year":"2021","month":"1","text":"January 2021"},{"year":"2020","month":"12","text":"December 2020"},{"year":"2020","month":"11","text":"November 2020"},{"year":"2020","month":"10","text":"October 2020"},{"year":"2020","month":"9","text":"September 2020"},{"year":"2020","month":"8","text":"August 2020"},{"year":"2020","month":"7","text":"July 2020"},{"year":"2020","month":"6","text":"June 2020"},{"year":"2020","month":"5","text":"May 2020"},{"year":"2020","month":"4","text":"April 2020"},{"year":"2020","month":"3","text":"March 2020"},{"year":"2020","month":"2","text":"February 2020"},{"year":"2020","month":"1","text":"January 2020"},{"year":"2019","month":"12","text":"December 2019"},{"year":"2019","month":"11","text":"November 2019"},{"year":"2019","month":"10","text":"October 2019"},{"year":"2019","month":"9","text":"September 2019"},{"year":"2019","month":"8","text":"August 2019"},{"year":"2019","month":"7","text":"July 2019"},{"year":"2019","month":"6","text":"June 2019"},{"year":"2019","month":"5","text":"May 2019"},{"year":"2019","month":"4","text":"April 2019"},{"year":"2019","month":"3","text":"March 2019"},{"year":"2019","month":"2","text":"February 2019"},{"year":"2019","month":"1","text":"January 2019"},{"year":"2018","month":"12","text":"December 2018"},{"year":"2018","month":"11","text":"November 2018"},{"year":"2018","month":"10","text":"October 2018"},{"year":"2018","month":"9","text":"September 2018"},{"year":"2018","month":"8","text":"August 2018"},{"year":"2018","month":"7","text":"July 2018"},{"year":"2018","month":"6","text":"June 2018"},{"year":"2018","month":"5","text":"May 2018"},{"year":"2018","month":"4","text":"April 2018"},{"year":"2018","month":"3","text":"March 2018"},{"year":"2018","month":"2","text":"February 2018"},{"year":"2018","month":"1","text":"January 2018"},{"year":"2017","month":"12","text":"December 2017"},{"year":"2017","month":"11","text":"November 2017"},{"year":"2017","month":"10","text":"October 2017"},{"year":"2017","month":"9","text":"September 2017"},{"year":"2017","month":"8","text":"August 2017"},{"year":"2017","month":"7","text":"July 2017"},{"year":"2017","month":"6","text":"June 2017"},{"year":"2017","month":"5","text":"May 2017"},{"year":"2017","month":"4","text":"April 2017"},{"year":"2017","month":"3","text":"March 2017"},{"year":"2017","month":"2","text":"February 2017"},{"year":"2017","month":"1","text":"January 2017"},{"year":"2016","month":"12","text":"December 2016"},{"year":"2016","month":"11","text":"November 2016"},{"year":"2016","month":"10","text":"October 2016"},{"year":"2016","month":"9","text":"September 2016"},{"year":"2016","month":"8","text":"August 2016"},{"year":"2016","month":"7","text":"July 2016"},{"year":"2016","month":"6","text":"June 2016"},{"year":"2016","month":"5","text":"May 2016"},{"year":"2016","month":"4","text":"April 2016"},{"year":"2016","month":"3","text":"March 2016"},{"year":"2016","month":"2","text":"February 2016"},{"year":"2016","month":"1","text":"January 2016"},{"year":"2015","month":"12","text":"December 2015"},{"year":"2015","month":"11","text":"November 2015"},{"year":"2015","month":"10","text":"October 2015"},{"year":"2015","month":"9","text":"September 2015"},{"year":"2015","month":"8","text":"August 2015"},{"year":"2015","month":"7","text":"July 2015"},{"year":"2015","month":"6","text":"June 2015"},{"year":"2015","month":"5","text":"May 2015"},{"year":"2015","month":"4","text":"April 2015"},{"year":"2015","month":"3","text":"March 2015"},{"year":"2015","month":"2","text":"February 2015"},{"year":"2015","month":"1","text":"January 2015"},{"year":"2014","month":"12","text":"December 2014"},{"year":"2014","month":"11","text":"November 2014"},{"year":"2014","month":"10","text":"October 2014"},{"year":"2014","month":"9","text":"September 2014"},{"year":"2014","month":"8","text":"August 2014"},{"year":"2014","month":"7","text":"July 2014"},{"year":"2014","month":"6","text":"June 2014"},{"year":"2014","month":"5","text":"May 2014"},{"year":"2014","month":"4","text":"April 2014"},{"year":"2014","month":"3","text":"March 2014"},{"year":"2014","month":"2","text":"February 2014"},{"year":"2014","month":"1","text":"January 2014"},{"year":"2013","month":"12","text":"December 2013"},{"year":"2013","month":"11","text":"November 2013"},{"year":"2013","month":"10","text":"October 2013"},{"year":"2013","month":"9","text":"September 2013"},{"year":"2013","month":"8","text":"August 2013"},{"year":"2013","month":"7","text":"July 2013"},{"year":"2013","month":"6","text":"June 2013"},{"year":"2013","month":"5","text":"May 2013"},{"year":"2013","month":"4","text":"April 2013"},{"year":"2013","month":"3","text":"March 2013"},{"year":"2013","month":"2","text":"February 2013"},{"year":"2013","month":"1","text":"January 2013"},{"year":"2012","month":"12","text":"December 2012"},{"year":"2012","month":"11","text":"November 2012"},{"year":"2012","month":"10","text":"October 2012"},{"year":"2012","month":"9","text":"September 2012"},{"year":"2012","month":"8","text":"August 2012"},{"year":"2012","month":"7","text":"July 2012"},{"year":"2012","month":"6","text":"June 2012"},{"year":"2012","month":"5","text":"May 2012"},{"year":"2012","month":"4","text":"April 2012"},{"year":"2012","month":"3","text":"March 2012"},{"year":"2012","month":"2","text":"February 2012"},{"year":"2012","month":"1","text":"January 2012"},{"year":"2011","month":"12","text":"December 2011"},{"year":"2011","month":"11","text":"November 2011"},{"year":"2011","month":"10","text":"October 2011"},{"year":"2011","month":"9","text":"September 2011"},{"year":"2011","month":"8","text":"August 2011"},{"year":"2011","month":"7","text":"July 2011"},{"year":"2011","month":"6","text":"June 2011"},{"year":"2011","month":"5","text":"May 2011"},{"year":"2011","month":"4","text":"April 2011"},{"year":"2011","month":"3","text":"March 2011"},{"year":"2011","month":"2","text":"February 2011"},{"year":"2011","month":"1","text":"January 2011"},{"year":"2010","month":"12","text":"December 2010"},{"year":"2010","month":"11","text":"November 2010"},{"year":"2010","month":"10","text":"October 2010"},{"year":"2010","month":"9","text":"September 2010"},{"year":"2010","month":"8","text":"August 2010"},{"year":"2010","month":"7","text":"July 2010"},{"year":"2010","month":"6","text":"June 2010"},{"year":"2010","month":"5","text":"May 2010"},{"year":"2010","month":"4","text":"April 2010"},{"year":"2010","month":"3","text":"March 2010"},{"year":"2010","month":"2","text":"February 2010"},{"year":"2010","month":"1","text":"January 2010"},{"year":"2009","month":"12","text":"December 2009"},{"year":"2009","month":"11","text":"November 2009"},{"year":"2009","month":"10","text":"October 2009"},{"year":"2009","month":"9","text":"September 2009"},{"year":"2009","month":"8","text":"August 2009"},{"year":"2009","month":"7","text":"July 2009"},{"year":"2009","month":"6","text":"June 2009"},{"year":"2009","month":"5","text":"May 2009"}],"mediaTrash":0,"infiniteScrolling":1}}; 2444//# sourceURL=media-views-js-extra 2445</script>
vendor: 1 bytes, line 2445
2445
2446<script id="media-views-js" src="https://www.windpowerengineering.com/wp-includes/js/media-views.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2446
2446
2447<script id="media-editor-js" src="https://www.windpowerengineering.com/wp-includes/js/media-editor.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2447
2447
2448<script id="media-audiovideo-js" src="https://www.windpowerengineering.com/wp-includes/js/media-audiovideo.min.js?ver=7.1.1"></script>
vendor: 1 bytes, line 2448
2448
2449<script id="ea-global-js" src="https://www.windpowerengineering.com/wp-content/themes/ThemeWTWH/assets/js/global-min.js?ver=1749457156"></script>
vendor: 1 bytes, line 2449
2449
2450<script id="wp-emoji-settings" type="application/json"> 2451{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://www.windpowerengineering.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1.1"}} 2452</script>
vendor: 1 bytes, line 2452
2452
2453<script type="module"> 2454/*! This file is auto-generated */ 2455var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); 2456//# sourceURL=https://www.windpowerengineering.com/wp-includes/js/wp-emoji-loader.min.js 2457</script>
vendor: 1 bytes, line 2457
2457
2458<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a400b282bb70c071',t:'MTc5MDI0MTQ1OQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
2458</body></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.