New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ebi-framework

Package Overview
Dependencies
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ebi-framework - npm Package Compare versions

Comparing version 1.3.0-alpha.4 to 1.3.0-beta.4

_site/bin/deploy-aws

162

js/documenation.md

@@ -15,2 +15,6 @@ <!-- Generated by documentation.js. Update this documentation by updating the source code. -->

- [ebiToggleClass](#ebitoggleclass-1)
- [ebiActivateClass](#ebiactivateclass)
- [ebiActivateClass](#ebiactivateclass-1)
- [ebiRemoveClass](#ebiremoveclass)
- [ebiRemoveClass](#ebiremoveclass-1)
- [ebiFrameworkHideGlobalNav](#ebiframeworkhideglobalnav)

@@ -22,2 +26,4 @@ - [ebiFrameworkHideGlobalNav](#ebiframeworkhideglobalnav-1)

- [ebiFrameworkPopulateBlackBar](#ebiframeworkpopulateblackbar-1)
- [ebiGetFacet](#ebigetfacet)
- [ebiGetFacet](#ebigetfacet-1)
- [ebiFrameworkActivateBlackBar](#ebiframeworkactivateblackbar)

@@ -60,3 +66,3 @@ - [ebiFrameworkActivateBlackBar](#ebiframeworkactivateblackbar-1)

[js/ebi-global-includes/script/1_about.js:16-24](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/ebi-global-includes/script/1_about.js#L16-L24 "Source code on GitHub")
[js/ebi-global-includes/script/1_about.js:16-24](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/1_about.js#L16-L24 "Source code on GitHub")

@@ -79,3 +85,3 @@ Utility function to get params from the URL.

[js/script.js:16-24](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/script.js#L16-L24 "Source code on GitHub")
[js/script.js:16-24](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L16-L24 "Source code on GitHub")

@@ -98,3 +104,3 @@ Utility function to get params from the URL.

[js/ebi-global-includes/script/2_ebiFrameworkExternalLinks.js:4-35](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/ebi-global-includes/script/2_ebiFrameworkExternalLinks.js#L4-L35 "Source code on GitHub")
[js/ebi-global-includes/script/2_ebiFrameworkExternalLinks.js:4-35](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/2_ebiFrameworkExternalLinks.js#L4-L35 "Source code on GitHub")

@@ -105,3 +111,3 @@ Mark pdf/doc/txt links with link-pdf/link-doc/link-txt classes.

[js/script.js:29-60](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/script.js#L29-L60 "Source code on GitHub")
[js/script.js:35-66](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L35-L66 "Source code on GitHub")

@@ -112,3 +118,3 @@ Mark pdf/doc/txt links with link-pdf/link-doc/link-txt classes.

[js/ebi-global-includes/script/3_ebiFrameworkForms.js:5-34](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/ebi-global-includes/script/3_ebiFrameworkForms.js#L5-L34 "Source code on GitHub")
[js/ebi-global-includes/script/3_ebiFrameworkForms.js:5-78](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/3_ebiFrameworkForms.js#L5-L78 "Source code on GitHub")

@@ -120,3 +126,3 @@ Disable the global search if a page defines a local search.<br/>

[js/script.js:66-95](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/script.js#L66-L95 "Source code on GitHub")
[js/script.js:72-145](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L72-L145 "Source code on GitHub")

@@ -128,3 +134,3 @@ Disable the global search if a page defines a local search.<br/>

[js/ebi-global-includes/script/3_ebiFrameworkForms.js:40-84](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/ebi-global-includes/script/3_ebiFrameworkForms.js#L40-L84 "Source code on GitHub")
[js/ebi-global-includes/script/3_ebiFrameworkForms.js:84-128](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/3_ebiFrameworkForms.js#L84-L128 "Source code on GitHub")

@@ -136,3 +142,3 @@ Add error alerts for 'no input' on search boxes.<br/>

[js/script.js:101-145](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/script.js#L101-L145 "Source code on GitHub")
[js/script.js:151-195](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L151-L195 "Source code on GitHub")

@@ -144,3 +150,3 @@ Add error alerts for 'no input' on search boxes.<br/>

[js/ebi-global-includes/script/4_ebiFrameworkContent.js:4-13](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L4-L13 "Source code on GitHub")
[js/ebi-global-includes/script/4_ebiFrameworkContent.js:4-13](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L4-L13 "Source code on GitHub")

@@ -156,3 +162,3 @@ Utility function to toggle classes. Chiefly to show the #embl-bar.

[js/script.js:150-159](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/script.js#L150-L159 "Source code on GitHub")
[js/script.js:200-209](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L200-L209 "Source code on GitHub")

@@ -166,5 +172,49 @@ Utility function to toggle classes. Chiefly to show the #embl-bar.

## ebiActivateClass
[js/ebi-global-includes/script/4_ebiFrameworkContent.js:18-21](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L18-L21 "Source code on GitHub")
Utility function to add classes (only once).
**Parameters**
- `element`
- `cssClass`
## ebiActivateClass
[js/script.js:214-217](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L214-L217 "Source code on GitHub")
Utility function to add classes (only once).
**Parameters**
- `element`
- `cssClass`
## ebiRemoveClass
[js/ebi-global-includes/script/4_ebiFrameworkContent.js:26-28](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L26-L28 "Source code on GitHub")
Utility function to remove classes.
**Parameters**
- `element`
- `cssClass`
## ebiRemoveClass
[js/script.js:222-224](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L222-L224 "Source code on GitHub")
Utility function to remove classes.
**Parameters**
- `element`
- `cssClass`
## ebiFrameworkHideGlobalNav
[js/ebi-global-includes/script/4_ebiFrameworkContent.js:18-34](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L18-L34 "Source code on GitHub")
[js/ebi-global-includes/script/4_ebiFrameworkContent.js:33-49](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L33-L49 "Source code on GitHub")

@@ -175,3 +225,3 @@ Remove global-nav/global-nav-expanded from header/footer if body.no-global-nav is set

[js/script.js:164-180](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/script.js#L164-L180 "Source code on GitHub")
[js/script.js:229-245](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L229-L245 "Source code on GitHub")

@@ -182,3 +232,3 @@ Remove global-nav/global-nav-expanded from header/footer if body.no-global-nav is set

[js/ebi-global-includes/script/4_ebiFrameworkContent.js:39-53](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L39-L53 "Source code on GitHub")
[js/ebi-global-includes/script/4_ebiFrameworkContent.js:54-68](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L54-L68 "Source code on GitHub")

@@ -189,3 +239,3 @@ Assign global nav background images through meta tags

[js/script.js:185-199](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/script.js#L185-L199 "Source code on GitHub")
[js/script.js:250-264](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L250-L264 "Source code on GitHub")

@@ -196,3 +246,3 @@ Assign global nav background images through meta tags

[js/ebi-global-includes/script/4_ebiFrameworkContent.js:58-97](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L58-L97 "Source code on GitHub")
[js/ebi-global-includes/script/4_ebiFrameworkContent.js:73-112](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L73-L112 "Source code on GitHub")

@@ -203,9 +253,29 @@ Populate `#masthead-black-bar`

[js/script.js:204-243](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/script.js#L204-L243 "Source code on GitHub")
[js/script.js:269-308](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L269-L308 "Source code on GitHub")
Populate `#masthead-black-bar`
## ebiGetFacet
[js/ebi-global-includes/script/4_ebiFrameworkContent.js:117-120](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L117-L120 "Source code on GitHub")
Reusable function to get part of the black bar
**Parameters**
- `passedAttribute`
## ebiGetFacet
[js/script.js:313-316](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L313-L316 "Source code on GitHub")
Reusable function to get part of the black bar
**Parameters**
- `passedAttribute`
## ebiFrameworkActivateBlackBar
[js/ebi-global-includes/script/4_ebiFrameworkContent.js:102-139](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L102-L139 "Source code on GitHub")
[js/ebi-global-includes/script/4_ebiFrameworkContent.js:125-188](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L125-L188 "Source code on GitHub")

@@ -216,3 +286,3 @@ Active tabs in `#masthead-black-bar` accoriding to metadata

[js/script.js:248-285](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/script.js#L248-L285 "Source code on GitHub")
[js/script.js:321-384](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L321-L384 "Source code on GitHub")

@@ -223,3 +293,3 @@ Active tabs in `#masthead-black-bar` accoriding to metadata

[js/ebi-global-includes/script/4_ebiFrameworkContent.js:144-259](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L144-L259 "Source code on GitHub")
[js/ebi-global-includes/script/4_ebiFrameworkContent.js:193-274](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L193-L274 "Source code on GitHub")

@@ -230,3 +300,3 @@ Insert EMBL dropdown menu into `#masthead-black-bar`

[js/script.js:290-405](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/script.js#L290-L405 "Source code on GitHub")
[js/script.js:389-470](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L389-L470 "Source code on GitHub")

@@ -237,3 +307,3 @@ Insert EMBL dropdown menu into `#masthead-black-bar`

[js/ebi-global-includes/script/4_ebiFrameworkContent.js:264-294](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L264-L294 "Source code on GitHub")
[js/ebi-global-includes/script/4_ebiFrameworkContent.js:279-309](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L279-L309 "Source code on GitHub")

@@ -244,3 +314,3 @@ Insert EBI Footer into `#global-nav-expanded`

[js/script.js:410-440](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/script.js#L410-L440 "Source code on GitHub")
[js/script.js:475-505](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L475-L505 "Source code on GitHub")

@@ -251,3 +321,3 @@ Insert EBI Footer into `#global-nav-expanded`

[js/ebi-global-includes/script/4_ebiFrameworkContent.js:299-313](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L299-L313 "Source code on GitHub")
[js/ebi-global-includes/script/4_ebiFrameworkContent.js:314-328](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L314-L328 "Source code on GitHub")

@@ -258,3 +328,3 @@ Insert footer meta info into `#ebi-footer-meta`

[js/script.js:445-459](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/script.js#L445-L459 "Source code on GitHub")
[js/script.js:510-524](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L510-L524 "Source code on GitHub")

@@ -265,3 +335,3 @@ Insert footer meta info into `#ebi-footer-meta`

[js/ebi-global-includes/script/4_ebiFrameworkContent.js:319-412](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L319-L412 "Source code on GitHub")
[js/ebi-global-includes/script/4_ebiFrameworkContent.js:334-433](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/4_ebiFrameworkContent.js#L334-L433 "Source code on GitHub")

@@ -273,3 +343,3 @@ Load the downtime/announcement messages, if any.

[js/script.js:465-558](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/script.js#L465-L558 "Source code on GitHub")
[js/script.js:530-629](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L530-L629 "Source code on GitHub")

@@ -281,3 +351,3 @@ Load the downtime/announcement messages, if any.

[js/ebi-global-includes/script/5_ebiFrameworkCookieBanner.js:4-72](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/ebi-global-includes/script/5_ebiFrameworkCookieBanner.js#L4-L72 "Source code on GitHub")
[js/ebi-global-includes/script/5_ebiFrameworkCookieBanner.js:4-72](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/5_ebiFrameworkCookieBanner.js#L4-L72 "Source code on GitHub")

@@ -288,3 +358,3 @@ Insert and show the cookie banner.

[js/script.js:563-631](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/script.js#L563-L631 "Source code on GitHub")
[js/script.js:634-702](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L634-L702 "Source code on GitHub")

@@ -295,3 +365,3 @@ Insert and show the cookie banner.

[js/ebi-global-includes/script/6_ebiFrameworkInvokeScripts.js:7-20](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/ebi-global-includes/script/6_ebiFrameworkInvokeScripts.js#L7-L20 "Source code on GitHub")
[js/ebi-global-includes/script/6_ebiFrameworkInvokeScripts.js:7-20](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/ebi-global-includes/script/6_ebiFrameworkInvokeScripts.js#L7-L20 "Source code on GitHub")

@@ -309,3 +379,3 @@ All scripts are automatically loaded, unless the page asked us not to.

[js/script.js:639-652](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/script.js#L639-L652 "Source code on GitHub")
[js/script.js:710-723](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/script.js#L710-L723 "Source code on GitHub")

@@ -323,3 +393,3 @@ All scripts are automatically loaded, unless the page asked us not to.

[js/foundationExtendEBI.js:12-34](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/foundationExtendEBI.js#L12-L34 "Source code on GitHub")
[js/foundationExtendEBI.js:12-34](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/foundationExtendEBI.js#L12-L34 "Source code on GitHub")

@@ -335,3 +405,3 @@ We poll the document until we find GA has loaded, or we've tried a few times.

[js/foundationExtendEBI.js:19-26](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/foundationExtendEBI.js#L19-L26 "Source code on GitHub")
[js/foundationExtendEBI.js:19-26](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/foundationExtendEBI.js#L19-L26 "Source code on GitHub")

@@ -342,3 +412,3 @@ If successful we append `.google-analytics-loaded` to the `body` tag.

[js/foundationExtendEBI.js:42-46](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/foundationExtendEBI.js#L42-L46 "Source code on GitHub")
[js/foundationExtendEBI.js:42-46](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/foundationExtendEBI.js#L42-L46 "Source code on GitHub")

@@ -357,3 +427,3 @@ Utility method to get the last in an array

[js/foundationExtendEBI.js:52-52](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/foundationExtendEBI.js#L52-L52 "Source code on GitHub")
[js/foundationExtendEBI.js:52-52](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/foundationExtendEBI.js#L52-L52 "Source code on GitHub")

@@ -368,3 +438,3 @@ Track the last time an event was sent (don't double send)

[js/foundationExtendEBI.js:71-102](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/foundationExtendEBI.js#L71-L102 "Source code on GitHub")
[js/foundationExtendEBI.js:71-102](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/foundationExtendEBI.js#L71-L102 "Source code on GitHub")

@@ -396,3 +466,3 @@ ## Analytics tracking

[js/foundationExtendEBI.js:111-194](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/foundationExtendEBI.js#L111-L194 "Source code on GitHub")
[js/foundationExtendEBI.js:111-194](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/foundationExtendEBI.js#L111-L194 "Source code on GitHub")

@@ -408,3 +478,3 @@ If GA is found, we initialise the tracking of various default areas

[js/foundationExtendEBI.js:200-207](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/foundationExtendEBI.js#L200-L207 "Source code on GitHub")
[js/foundationExtendEBI.js:200-207](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/foundationExtendEBI.js#L200-L207 "Source code on GitHub")

@@ -419,3 +489,3 @@ Programatically open external links in new tabs

[js/foundationExtendEBI.js:213-218](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/foundationExtendEBI.js#L213-L218 "Source code on GitHub")
[js/foundationExtendEBI.js:213-218](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/foundationExtendEBI.js#L213-L218 "Source code on GitHub")

@@ -430,3 +500,3 @@ Programatically add '.external' to external links

[js/foundationExtendEBI.js:231-260](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/foundationExtendEBI.js#L231-L260 "Source code on GitHub")
[js/foundationExtendEBI.js:231-260](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/foundationExtendEBI.js#L231-L260 "Source code on GitHub")

@@ -444,3 +514,3 @@ ## Activate EMBL dropdown menu

[js/foundationExtendEBI.js:265-288](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/foundationExtendEBI.js#L265-L288 "Source code on GitHub")
[js/foundationExtendEBI.js:265-288](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/foundationExtendEBI.js#L265-L288 "Source code on GitHub")

@@ -451,3 +521,3 @@ Smooth scroll anchor links for jQuery users

[js/foundationExtendEBI.js:293-401](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/foundationExtendEBI.js#L293-L401 "Source code on GitHub")
[js/foundationExtendEBI.js:293-401](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/foundationExtendEBI.js#L293-L401 "Source code on GitHub")

@@ -458,3 +528,3 @@ Make the local nav menu responsive to the browser window width

[js/foundationExtendEBI.js:406-496](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/foundationExtendEBI.js#L406-L496 "Source code on GitHub")
[js/foundationExtendEBI.js:406-496](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/foundationExtendEBI.js#L406-L496 "Source code on GitHub")

@@ -465,3 +535,3 @@ Default invokation of foundationExtendEBI

[js/foundationExtendEBI.js:468-468](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/foundationExtendEBI.js#L468-L468 "Source code on GitHub")
[js/foundationExtendEBI.js:468-468](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/foundationExtendEBI.js#L468-L468 "Source code on GitHub")

@@ -477,3 +547,3 @@ ## Allow invokation of Foundation and foundationExtendEBI with data attributes

[js/foundationExtendEBI.js:473-477](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/foundationExtendEBI.js#L473-L477 "Source code on GitHub")
[js/foundationExtendEBI.js:473-477](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/foundationExtendEBI.js#L473-L477 "Source code on GitHub")

@@ -488,3 +558,3 @@ **Examples**

[js/foundationExtendEBI.js:482-486](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/foundationExtendEBI.js#L482-L486 "Source code on GitHub")
[js/foundationExtendEBI.js:482-486](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/foundationExtendEBI.js#L482-L486 "Source code on GitHub")

@@ -499,3 +569,3 @@ **Examples**

[js/foundationExtendEBI.js:491-494](https://github.com/ebiwd/EBI-Framework/blob/42859ce2f3159b5e5eb1001ffce49d8a660ba907/js/foundationExtendEBI.js#L491-L494 "Source code on GitHub")
[js/foundationExtendEBI.js:491-494](https://github.com/ebiwd/EBI-Framework/blob/be39fa641b731d5685bd158a5a11a369958ca4d8/js/foundationExtendEBI.js#L491-L494 "Source code on GitHub")

@@ -502,0 +572,0 @@ **Examples**

@@ -25,1 +25,7 @@ // Copyright (c) EMBL-EBI 2017

}
// utility function to see if element has a class
// hasClass(element, 'class-deska');
function ebiHasClass(element, cls) {
return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1;
}

@@ -12,18 +12,62 @@ /**

} else {
// If the page gets a global search, we specify how the dropdown box should be. #RespectMyAuthoriti
var html = '<form id="global-search" name="global-search" action="/ebisearch/search.ebi" method="GET" class="large-8 large-push-2">' +
'<fieldset>' +
'<div class="input-group">' +
'<input type="text" name="query" id="global-searchbox" class="input-group-field" placeholder="Search all of EMBL-EBI">' +
'<div class="input-group-button">' +
'<input type="submit" name="submit" value="Search" class="button">' +
'<input type="hidden" name="db" value="allebi" checked="checked">' +
'<input type="hidden" name="requestFrom" value="masthead-black-bar" checked="checked">' +
'</div>' +
'</div>' +
'</fieldset>' +
'</form>';
try {
var gloablSearch = document.getElementById('search-global-dropdown');
gloablSearch.innerHTML = html;
// If the page gets a global search, we specify how the dropdown box should be. #RespectMyAuthoriti
// remove any current dropdown
if ((elem=document.getElementById('search-bar')) !== null) {
document.getElementById('search-bar').remove();
}
var dropdownDiv = document.createElement("div");
dropdownDiv.innerHTML = '<nav id="search-bar" class="search-bar global-masthead-interactive-banner">'+
'<div class="row padding-bottom-medium">'+
'<div class="columns padding-top-medium">'+
'<button class="close-button" aria-label="Close alert" type="button"><span aria-hidden="true">×</span></button>'+
'</div>'+
'</div>'+
'<div class="row">'+
'<form id="global-search" name="global-search" action="/ebisearch/search.ebi" method="GET" class="">' +
'<fieldset>' +
'<div class="input-group">' +
'<input type="text" name="query" id="global-searchbox" class="input-group-field" placeholder="Search all of EMBL-EBI">' +
'<div class="input-group-button">' +
'<input type="submit" name="submit" value="Search" class="button">' +
'<input type="hidden" name="db" value="allebi" checked="checked">' +
'<input type="hidden" name="requestFrom" value="masthead-black-bar" checked="checked">' +
'</div>' +
'</div>' +
'</fieldset>' +
'</form>'+
'</div>'+
'</nav>';
document.getElementById("masthead-black-bar").insertBefore(dropdownDiv,document.getElementById("masthead-black-bar").firstChild);
var searchBar = document.querySelectorAll(".search-bar")[0];
var searchBarButton = document.querySelectorAll(".search-toggle")[0];
var blackBar = document.querySelectorAll(".masthead-black-bar")[0];
// add "peeking" animation for embl selector
searchBarButton.addEventListener("mouseenter", function( event ) {
if (ebiHasClass(document.querySelectorAll(".search-bar")[0], 'active') == false) {
blackBar.className += ' peek';
}
}, false);
searchBarButton.addEventListener("mouseleave", function( event ) {
if (ebiHasClass(document.querySelectorAll(".search-bar")[0], 'active') == false) {
blackBar.classList.remove("peek");
}
}, false);
// toggle the .embl-bar
var searchSelector = document.querySelectorAll(".search-toggle")[0].addEventListener("click", function( event ) {
ebiToggleClass(searchBar,'active');
ebiToggleClass(searchBarButton,'active');
window.scrollTo(0, 0);
}, false);
var searchSelectorClose = document.querySelectorAll(".search-bar .close-button")[0].addEventListener("click", function( event ) {
ebiToggleClass(searchBar,'active');
ebiToggleClass(searchBarButton,'active');
window.scrollTo(0, 0);
}, false);
} catch (err) {

@@ -30,0 +74,0 @@ setTimeout(init, 500);

@@ -16,2 +16,17 @@ /**

/**
* Utility function to add classes (only once).
*/
function ebiActivateClass(element, cssClass){
element.classList.remove(cssClass);
element.classList.add(cssClass);
}
/**
* Utility function to remove classes.
*/
function ebiRemoveClass(element, cssClass){
element.classList.remove(cssClass);
}
/**
* Remove global-nav/global-nav-expanded from header/footer if body.no-global-nav is set

@@ -70,8 +85,8 @@ */

'<li class="home-mobile"><a href="https://www.ebi.ac.uk"></a></li>'+
'<li class="location embl hide"><a href="http://www.embl.org">EMBL</a></li>'+
'<li class="location barcelona hide"><a href="#">Barcelona</a></li>'+
'<li class="location hamburg hide"><a href="#">Hamburg</a></li>'+
'<li class="location grenoble hide"><a href="#">Heidelberg</a></li>'+
'<li class="location grenoble hide"><a href="#">Grenoble</a></li>'+
'<li class="location rome hide"><a href="#">Rome</a></li>'+
'<li class="where embl hide"><a href="http://www.embl.org">EMBL</a></li>'+
'<li class="where barcelona hide"><a href="#">Barcelona</a></li>'+
'<li class="where hamburg hide"><a href="#">Hamburg</a></li>'+
'<li class="where grenoble hide"><a href="#">Heidelberg</a></li>'+
'<li class="where grenoble hide"><a href="#">Grenoble</a></li>'+
'<li class="where rome hide"><a href="#">Rome</a></li>'+
'<li id="embl-selector" class="float-right show-for-medium embl-selector">'+

@@ -81,5 +96,5 @@ '<button class="button float-right">&nbsp;</button>'+

'<li class="float-right search">'+
'<a href="#" data-toggle="search-global-dropdown"><span class="show-for-small-only">Search</span></a>'+
'<div id="search-global-dropdown" class="dropdown-pane" data-dropdown data-options="closeOnClick:true;">'+
'</div>'+
'<a href="#" class="inline-block collpased float-left search-toggle"><span class="show-for-small-only">Search</span></a>'+
// '<div id="search-global-dropdown" class="dropdown-pane" data-dropdown data-options="closeOnClick:true;">'+
// '</div>'+
'</li>'+

@@ -90,3 +105,3 @@ '<li class="what about"><a href="https://www.ebi.ac.uk/about">About us</a></li>'+

'<li class="what services"><a href="https://www.ebi.ac.uk/services">Services</a></li>'+
'<li class="location ebi"><a href="https://www.ebi.ac.uk">EMBL-EBI</a></li>'+
'<li class="where ebi"><a href="https://www.ebi.ac.uk">EMBL-EBI</a></li>'+
// '<li class="float-right embl-selector">'+

@@ -104,2 +119,10 @@ // '<a class="button float-right">&nbsp;</a>'+

/**
* Reusable function to get part of the black bar
*/
function ebiGetFacet(passedAttribute){
var tag = "#masthead-black-bar ." + passedAttribute.toLowerCase();
return document.querySelectorAll(tag)[0];
}
/**
* Active tabs in `#masthead-black-bar` accoriding to metadata

@@ -109,34 +132,60 @@ */

// Look at the embl:facet-* meta tags to set active states
// <meta name="embl:facet-who" content="primary" data-tag="Sample group" />
// <meta name="embl:facet-what" content="parent" data-tag="Research" />
// <meta name="embl:facet-where" content="parent" data-tag="EBI" />
// <meta name="embl:rational" content="-3" />
// <meta name="embl:external" content="8" />
// <meta name="embl:active" content="what:*" />
// <meta name="embl:parent-1" content="" />
// <meta name="embl:parent-2" content="" />
try {
function ebiGetFacet(passedAttribute){
var tag = "#masthead-black-bar ." + passedAttribute.toLowerCase();
return document.querySelectorAll(tag)[0];
}
var metas = document.getElementsByTagName('meta');
for (var i = 0; i < metas.length; i++) {
if (metas[i].getAttribute("name") == "embl:facet-who") {
if (metas[i].getAttribute("content").toLowerCase() == "parent") {
var targetFacet = ebiGetFacet(metas[i].getAttribute("data-tag"));
// todo: insert this as a new facet, i think?
}
if (metas[i].getAttribute("name") == "embl:active") {
var targetFacet = ebiGetFacet(metas[i].getAttribute("content").replace(':','.'));
ebiRemoveClass(targetFacet,'hide');
ebiActivateClass(targetFacet,'active');
}
if (metas[i].getAttribute("name") == "embl:facet-what") {
if (metas[i].getAttribute("content").toLowerCase() == "parent") {
var targetFacet = ebiGetFacet(metas[i].getAttribute("data-tag"));
ebiToggleClass(targetFacet,'active');
}
if (metas[i].getAttribute("name") == "embl:parent-1") {
var targetFacet = ebiGetFacet(metas[i].getAttribute("content").replace(':','.'));
ebiRemoveClass(targetFacet,'hide');
ebiActivateClass(targetFacet,'active');
}
if (metas[i].getAttribute("name") == "embl:facet-where") {
if (metas[i].getAttribute("content").toLowerCase() == "parent") {
var targetFacet = ebiGetFacet(metas[i].getAttribute("data-tag"));
ebiToggleClass(targetFacet,'active');
ebiToggleClass(targetFacet,'hide'); // as we hide these by default
}
if (metas[i].getAttribute("name") == "embl:parent-2") {
var targetFacet = ebiGetFacet(metas[i].getAttribute("content").replace(':','.'));
ebiRemoveClass(targetFacet,'hide');
ebiActivateClass(targetFacet,'active');
}
}
// add interactivity to facets, so that hovering on what:research shows what:*
// we do this bit with jquery to prototype; need to rewire as vanilla JS.
ebiGetFacet('where.active').addEventListener("mouseenter", function( event ) {
$('#masthead-black-bar .where.hide').addClass('hover float-left').removeClass('hide');
// $('#masthead-black-bar .where.hide').removeClass('hide').addClass('hover');
$('#masthead-black-bar .what').addClass('hide');
}, false);
ebiGetFacet('what.active').addEventListener("mouseenter", function( event ) {
$('#masthead-black-bar .what').removeClass('hide float-left');
$('#masthead-black-bar .what').addClass('hover float-left');
$('#masthead-black-bar .where').addClass('hide');
}, false);
// Only reset blackbar after XXXms outside the blackbar
var mouseoutTimer;
blackBar.addEventListener("mouseenter", function() {
window.clearTimeout(mouseoutTimer);
}, false);
blackBar.addEventListener("mouseleave", function() {
mouseoutTimer = window.setTimeout(function(){ resetBlackBar(); }, 500);
});
// reset black bar contenxts when mousing out
function resetBlackBar() {
// console.log('purged');
$('#masthead-black-bar .hover').removeClass('hover float-left');
$('#masthead-black-bar .what').removeClass('hide');
$('#masthead-black-bar .where').addClass('hide');
ebiFrameworkActivateBlackBar();
}
}

@@ -153,8 +202,8 @@ catch(err) {};

// remove any current dropdown
if ((elem=document.getElementById('embl-dropdown')) !== null) {
document.getElementById('embl-dropdown').remove();
if ((elem=document.getElementById('embl-bar')) !== null) {
document.getElementById('embl-bar').remove();
}
var dropdownDiv = document.createElement("div");
dropdownDiv.innerHTML = '<nav id="embl-bar" class="embl-bar">'+
dropdownDiv.innerHTML = '<nav id="embl-bar" class="embl-bar global-masthead-interactive-banner">'+
'<div class="row padding-bottom-medium">'+

@@ -204,11 +253,5 @@ '<div class="columns padding-top-medium">'+

// utility function to see if element has a class
// hasClass(element, 'class-deska');
function hasClass(element, cls) {
return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1;
}
// add "peeking" animation for embl selector
emblBarButton.addEventListener("mouseenter", function( event ) {
if (hasClass(document.querySelectorAll(".embl-bar")[0], 'active') == false) {
if (ebiHasClass(document.querySelectorAll(".embl-bar")[0], 'active') == false) {
blackBar.className += ' peek';

@@ -218,3 +261,3 @@ }

emblBarButton.addEventListener("mouseleave", function( event ) {
if (hasClass(document.querySelectorAll(".embl-bar")[0], 'active') == false) {
if (ebiHasClass(document.querySelectorAll(".embl-bar")[0], 'active') == false) {
blackBar.classList.remove("peek");

@@ -237,31 +280,3 @@ }

// we do this bit with jquery to prototype, would need ro rewire as vanilla JS..
$('#masthead-black-bar .where.active').on('mouseover', function() {
emblResetContext(); // clear any other states
$('#masthead-black-bar .where.hide').addClass('hover').removeClass('hide');
// $('#masthead-black-bar .where.hide').removeClass('hide').addClass('hover');
$('#masthead-black-bar .what').addClass('hide');
});
$('#masthead-black-bar .what.active').on('mouseover', function() {
emblResetContext(); // clear any other states
$('#masthead-black-bar .what.mission').removeClass('hide');
$('#masthead-black-bar .what').addClass('hover');
});
// reset when user engages with content
function emblResetContext() {
// ebiFrameworkActivateBlackBar();
$('#masthead-black-bar .where.hover').removeClass('hover').addClass('hide');
$('#masthead-black-bar .what').removeClass('hide');
$('#masthead-black-bar .what.mission').addClass('hide');
$('#masthead-black-bar .what.hover').removeClass('hover');
// reset everything on the next mouse into content
$('#content').one('mouseover', function() {
console.log('purged');
emblResetContext();
});
}
}

@@ -407,3 +422,3 @@ catch(err) {};

function loadRemote(file) {
function loadRemoteAnnouncements(file) {
if (window.XMLHttpRequest) {

@@ -415,3 +430,3 @@ xmlhttp=new XMLHttpRequest();

eval(xmlhttp.responseText);
detectAnnouncements(m)
detectAnnouncements(m);
}

@@ -423,3 +438,9 @@ }

loadRemote('https://dev.ebi.emblstatic.net/announcements.js');
if (window.location.hostname.indexOf('wwwdev.') === 0) {
// Load test message on wwwdev
loadRemoteAnnouncements('https://dev.ebi.emblstatic.net/announcements.js');
} else {
loadRemoteAnnouncements('https://ebi.emblstatic.net/announcements.js');
}
}

@@ -10,4 +10,6 @@ // Injects the ELXIR Banner onto sites that are part of the network

basicStylingForNonfoundationSites = '',
defaultLogo = 'https://ebi.emblstatic.net/web_guidelines/EBI-Framework/v1.2/images/logos/assorted/elixir_kitemark-60px.png',
defaultLink = 'https://www.elixir-europe.org/about-us/why-needed',
defaultColor = 'blue'; // options: orange, grey, green, blue
defaultTextColor = '#fff',
defaultColor = 'blue'; // options: orange, grey, green, blue, none

@@ -20,2 +22,4 @@ if (typeof divElixirBanner.dataset.color !== "undefined") {

defaultColor = (defaultColor == 'blue' ? 'rgb(79,138,156)' : defaultColor);
defaultColor = (defaultColor == 'none' ? 'transparent' : defaultColor);
defaultTextColor = (defaultColor == 'transparent' ? '#222' : defaultTextColor); // grey text if background is none
}

@@ -25,2 +29,5 @@ if (typeof divElixirBanner.dataset.name !== "undefined") {

}
if (divElixirBanner.dataset.useCdrLogo == "true") {
defaultLogo = 'https://ebi.emblstatic.net/web_guidelines/EBI-Framework/v1.3/images/logos/ELIXIR/elixir-cdr.gif';
}
if (typeof divElixirBanner.dataset.description !== "undefined") {

@@ -35,3 +42,3 @@ defaultDescription = divElixirBanner.dataset.description;

.elixir-ribbon {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-family: Helvetica, Arial, FreeSans, 'Liberation Sans', sans-serif;
}

@@ -84,4 +91,5 @@

.elixir-ribbon a:active,
.elixir-ribbon a:visited,
.elixir-ribbon a:hover {
color: #fff;
color: `+defaultTextColor+`;
text-decoration: none;

@@ -93,3 +101,3 @@ }

.elixir-ribbon .readmore {
border-bottom: 1px dotted #fff;
border-bottom: 1px dotted `+defaultTextColor+`;
}

@@ -100,3 +108,3 @@ .elixir-ribbon h5 {

.elixir-ribbon .elixir-logo-kite {
background: 80% 58% url("https://www.ebi.ac.uk/web_guidelines/EBI-Framework/v1.2/images/logos/assorted/elixir_kitemark-60px.png") no-repeat;
background: 80% 58% url("`+defaultLogo+`") no-repeat;
position: relative;

@@ -109,2 +117,3 @@ top: -5px;

float: left;
background-size: 60px;
}

@@ -111,0 +120,0 @@ </style>

@@ -1,1 +0,1 @@

function elixirBanner(){try{var divElixirBanner=document.getElementById("elixir-banner");if(divElixirBanner){var defaultName="This",defaultDescription="This is part of the ELIXIR distributed infrastructure for life-science information.",basicStylingForNonfoundationSites="",defaultLink="https://www.elixir-europe.org/about-us/why-needed",defaultColor="blue";void 0!==divElixirBanner.dataset.color&&(defaultColor="blue"==(defaultColor="green"==(defaultColor="grey"==(defaultColor="orange"==(defaultColor=divElixirBanner.dataset.color)?"rgb(244,125,32)":defaultColor)?"rgb(77,77,72)":defaultColor)?"rgb(190,191,50)":defaultColor)?"rgb(79,138,156)":defaultColor),void 0!==divElixirBanner.dataset.name&&(defaultName=divElixirBanner.dataset.name),void 0!==divElixirBanner.dataset.description&&(defaultDescription=divElixirBanner.dataset.description),void 0!==divElixirBanner.dataset.moreInformationLink&&(defaultLink=divElixirBanner.dataset.moreInformationLink),"true"===divElixirBanner.dataset.useBasicStyles&&(basicStylingForNonfoundationSites="\n .elixir-ribbon {\n font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n }\n\n .elixir-ribbon .row {\n max-width: 1200px;\n margin: 0 auto 1rem;\n }\n\n .elixir-ribbon .row::before,\n .elixir-ribbon .row::after {\n display: table;\n content: ' ';\n }\n\n .elixir-ribbon h5 {\n font-size: 1.3rem;\n }\n ");var html='\n <div id="elixir-ribbon" class="elixir-ribbon">\n <div class="row">\n <a href="'+defaultLink+'">\n <div class="elixir-logo-kite"></div>\n <h5>\n <span class="elixir-banner-name">'+defaultName+'</span> is part of the ELIXIR infrastructure\n </h5>\n <div id="elixir-banner-info">\n <small>\n <span class="elixir-banner-description">'+defaultDescription+'</span>\n <span class="readmore">Learn more &#8250;</span>\n </small>\n </div>\n </a>\n </div>\n </div>\n\n <style>\n .elixir-ribbon {\n padding: 1rem 0;\n background-color: '+defaultColor+";\n }\n "+basicStylingForNonfoundationSites+'\n .elixir-ribbon,\n .elixir-ribbon h5,\n .elixir-ribbon a,\n .elixir-ribbon a:active,\n .elixir-ribbon a:hover {\n color: #fff;\n text-decoration: none;\n }\n .elixir-ribbon a:hover {\n opacity: .8;\n }\n .elixir-ribbon .readmore {\n border-bottom: 1px dotted #fff;\n }\n .elixir-ribbon h5 {\n margin: 0;\n }\n .elixir-ribbon .elixir-logo-kite {\n background: 80% 58% url("https://www.ebi.ac.uk/web_guidelines/EBI-Framework/v1.2/images/logos/assorted/elixir_kitemark-60px.png") no-repeat;\n position: relative;\n top: -5px;\n margin: 0 1rem -.5rem 0;\n height: 60px;\n width: 60px;\n display: inline-block;\n float: left;\n }\n </style>\n ';divElixirBanner.innerHTML=html}}catch(err){console.log(err)}}elixirBanner();
function elixirBanner(){try{var divElixirBanner=document.getElementById("elixir-banner");if(divElixirBanner){var defaultName="This",defaultDescription="This is part of the ELIXIR distributed infrastructure for life-science information.",basicStylingForNonfoundationSites="",defaultLogo="https://ebi.emblstatic.net/web_guidelines/EBI-Framework/v1.2/images/logos/assorted/elixir_kitemark-60px.png",defaultLink="https://www.elixir-europe.org/about-us/why-needed",defaultTextColor="#fff",defaultColor="blue";void 0!==divElixirBanner.dataset.color&&(defaultTextColor="transparent"==(defaultColor="none"==(defaultColor="blue"==(defaultColor="green"==(defaultColor="grey"==(defaultColor="orange"==(defaultColor=divElixirBanner.dataset.color)?"rgb(244,125,32)":defaultColor)?"rgb(77,77,72)":defaultColor)?"rgb(190,191,50)":defaultColor)?"rgb(79,138,156)":defaultColor)?"transparent":defaultColor)?"#222":defaultTextColor),void 0!==divElixirBanner.dataset.name&&(defaultName=divElixirBanner.dataset.name),"true"==divElixirBanner.dataset.useCdrLogo&&(defaultLogo="https://ebi.emblstatic.net/web_guidelines/EBI-Framework/v1.3/images/logos/ELIXIR/elixir-cdr.gif"),void 0!==divElixirBanner.dataset.description&&(defaultDescription=divElixirBanner.dataset.description),void 0!==divElixirBanner.dataset.moreInformationLink&&(defaultLink=divElixirBanner.dataset.moreInformationLink),"true"===divElixirBanner.dataset.useBasicStyles&&(basicStylingForNonfoundationSites="\n .elixir-ribbon {\n font-family: Helvetica, Arial, FreeSans, 'Liberation Sans', sans-serif;\n }\n\n .elixir-ribbon .row {\n max-width: 1200px;\n margin: 0 auto 1rem;\n }\n\n .elixir-ribbon .row::before,\n .elixir-ribbon .row::after {\n display: table;\n content: ' ';\n }\n\n .elixir-ribbon h5 {\n font-size: 1.3rem;\n }\n ");var html='\n <div id="elixir-ribbon" class="elixir-ribbon">\n <div class="row">\n <a href="'+defaultLink+'">\n <div class="elixir-logo-kite"></div>\n <h5>\n <span class="elixir-banner-name">'+defaultName+'</span> is part of the ELIXIR infrastructure\n </h5>\n <div id="elixir-banner-info">\n <small>\n <span class="elixir-banner-description">'+defaultDescription+'</span>\n <span class="readmore">Learn more &#8250;</span>\n </small>\n </div>\n </a>\n </div>\n </div>\n\n <style>\n .elixir-ribbon {\n padding: 1rem 0;\n background-color: '+defaultColor+";\n }\n "+basicStylingForNonfoundationSites+"\n .elixir-ribbon,\n .elixir-ribbon h5,\n .elixir-ribbon a,\n .elixir-ribbon a:active,\n .elixir-ribbon a:visited,\n .elixir-ribbon a:hover {\n color: "+defaultTextColor+";\n text-decoration: none;\n }\n .elixir-ribbon a:hover {\n opacity: .8;\n }\n .elixir-ribbon .readmore {\n border-bottom: 1px dotted "+defaultTextColor+';\n }\n .elixir-ribbon h5 {\n margin: 0;\n }\n .elixir-ribbon .elixir-logo-kite {\n background: 80% 58% url("'+defaultLogo+'") no-repeat;\n position: relative;\n top: -5px;\n margin: 0 1rem -.5rem 0;\n height: 60px;\n width: 60px;\n display: inline-block;\n float: left;\n background-size: 60px;\n }\n </style>\n ';divElixirBanner.innerHTML=html}}catch(err){console.log(err)}}elixirBanner();

@@ -26,2 +26,8 @@ // Copyright (c) EMBL-EBI 2017

// utility function to see if element has a class
// hasClass(element, 'class-deska');
function ebiHasClass(element, cls) {
return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1;
}
/**

@@ -74,18 +80,62 @@ * Mark pdf/doc/txt links with link-pdf/link-doc/link-txt classes.

} else {
// If the page gets a global search, we specify how the dropdown box should be. #RespectMyAuthoriti
var html = '<form id="global-search" name="global-search" action="/ebisearch/search.ebi" method="GET" class="large-8 large-push-2">' +
'<fieldset>' +
'<div class="input-group">' +
'<input type="text" name="query" id="global-searchbox" class="input-group-field" placeholder="Search all of EMBL-EBI">' +
'<div class="input-group-button">' +
'<input type="submit" name="submit" value="Search" class="button">' +
'<input type="hidden" name="db" value="allebi" checked="checked">' +
'<input type="hidden" name="requestFrom" value="masthead-black-bar" checked="checked">' +
'</div>' +
'</div>' +
'</fieldset>' +
'</form>';
try {
var gloablSearch = document.getElementById('search-global-dropdown');
gloablSearch.innerHTML = html;
// If the page gets a global search, we specify how the dropdown box should be. #RespectMyAuthoriti
// remove any current dropdown
if ((elem=document.getElementById('search-bar')) !== null) {
document.getElementById('search-bar').remove();
}
var dropdownDiv = document.createElement("div");
dropdownDiv.innerHTML = '<nav id="search-bar" class="search-bar global-masthead-interactive-banner">'+
'<div class="row padding-bottom-medium">'+
'<div class="columns padding-top-medium">'+
'<button class="close-button" aria-label="Close alert" type="button"><span aria-hidden="true">×</span></button>'+
'</div>'+
'</div>'+
'<div class="row">'+
'<form id="global-search" name="global-search" action="/ebisearch/search.ebi" method="GET" class="">' +
'<fieldset>' +
'<div class="input-group">' +
'<input type="text" name="query" id="global-searchbox" class="input-group-field" placeholder="Search all of EMBL-EBI">' +
'<div class="input-group-button">' +
'<input type="submit" name="submit" value="Search" class="button">' +
'<input type="hidden" name="db" value="allebi" checked="checked">' +
'<input type="hidden" name="requestFrom" value="masthead-black-bar" checked="checked">' +
'</div>' +
'</div>' +
'</fieldset>' +
'</form>'+
'</div>'+
'</nav>';
document.getElementById("masthead-black-bar").insertBefore(dropdownDiv,document.getElementById("masthead-black-bar").firstChild);
var searchBar = document.querySelectorAll(".search-bar")[0];
var searchBarButton = document.querySelectorAll(".search-toggle")[0];
var blackBar = document.querySelectorAll(".masthead-black-bar")[0];
// add "peeking" animation for embl selector
searchBarButton.addEventListener("mouseenter", function( event ) {
if (ebiHasClass(document.querySelectorAll(".search-bar")[0], 'active') == false) {
blackBar.className += ' peek';
}
}, false);
searchBarButton.addEventListener("mouseleave", function( event ) {
if (ebiHasClass(document.querySelectorAll(".search-bar")[0], 'active') == false) {
blackBar.classList.remove("peek");
}
}, false);
// toggle the .embl-bar
var searchSelector = document.querySelectorAll(".search-toggle")[0].addEventListener("click", function( event ) {
ebiToggleClass(searchBar,'active');
ebiToggleClass(searchBarButton,'active');
window.scrollTo(0, 0);
}, false);
var searchSelectorClose = document.querySelectorAll(".search-bar .close-button")[0].addEventListener("click", function( event ) {
ebiToggleClass(searchBar,'active');
ebiToggleClass(searchBarButton,'active');
window.scrollTo(0, 0);
}, false);
} catch (err) {

@@ -164,2 +214,17 @@ setTimeout(init, 500);

/**
* Utility function to add classes (only once).
*/
function ebiActivateClass(element, cssClass){
element.classList.remove(cssClass);
element.classList.add(cssClass);
}
/**
* Utility function to remove classes.
*/
function ebiRemoveClass(element, cssClass){
element.classList.remove(cssClass);
}
/**
* Remove global-nav/global-nav-expanded from header/footer if body.no-global-nav is set

@@ -218,8 +283,8 @@ */

'<li class="home-mobile"><a href="https://www.ebi.ac.uk"></a></li>'+
'<li class="location embl hide"><a href="http://www.embl.org">EMBL</a></li>'+
'<li class="location barcelona hide"><a href="#">Barcelona</a></li>'+
'<li class="location hamburg hide"><a href="#">Hamburg</a></li>'+
'<li class="location grenoble hide"><a href="#">Heidelberg</a></li>'+
'<li class="location grenoble hide"><a href="#">Grenoble</a></li>'+
'<li class="location rome hide"><a href="#">Rome</a></li>'+
'<li class="where embl hide"><a href="http://www.embl.org">EMBL</a></li>'+
'<li class="where barcelona hide"><a href="#">Barcelona</a></li>'+
'<li class="where hamburg hide"><a href="#">Hamburg</a></li>'+
'<li class="where grenoble hide"><a href="#">Heidelberg</a></li>'+
'<li class="where grenoble hide"><a href="#">Grenoble</a></li>'+
'<li class="where rome hide"><a href="#">Rome</a></li>'+
'<li id="embl-selector" class="float-right show-for-medium embl-selector">'+

@@ -229,5 +294,5 @@ '<button class="button float-right">&nbsp;</button>'+

'<li class="float-right search">'+
'<a href="#" data-toggle="search-global-dropdown"><span class="show-for-small-only">Search</span></a>'+
'<div id="search-global-dropdown" class="dropdown-pane" data-dropdown data-options="closeOnClick:true;">'+
'</div>'+
'<a href="#" class="inline-block collpased float-left search-toggle"><span class="show-for-small-only">Search</span></a>'+
// '<div id="search-global-dropdown" class="dropdown-pane" data-dropdown data-options="closeOnClick:true;">'+
// '</div>'+
'</li>'+

@@ -238,3 +303,3 @@ '<li class="what about"><a href="https://www.ebi.ac.uk/about">About us</a></li>'+

'<li class="what services"><a href="https://www.ebi.ac.uk/services">Services</a></li>'+
'<li class="location ebi"><a href="https://www.ebi.ac.uk">EMBL-EBI</a></li>'+
'<li class="where ebi"><a href="https://www.ebi.ac.uk">EMBL-EBI</a></li>'+
// '<li class="float-right embl-selector">'+

@@ -252,2 +317,10 @@ // '<a class="button float-right">&nbsp;</a>'+

/**
* Reusable function to get part of the black bar
*/
function ebiGetFacet(passedAttribute){
var tag = "#masthead-black-bar ." + passedAttribute.toLowerCase();
return document.querySelectorAll(tag)[0];
}
/**
* Active tabs in `#masthead-black-bar` accoriding to metadata

@@ -257,34 +330,60 @@ */

// Look at the embl:facet-* meta tags to set active states
// <meta name="embl:facet-who" content="primary" data-tag="Sample group" />
// <meta name="embl:facet-what" content="parent" data-tag="Research" />
// <meta name="embl:facet-where" content="parent" data-tag="EBI" />
// <meta name="embl:rational" content="-3" />
// <meta name="embl:external" content="8" />
// <meta name="embl:active" content="what:*" />
// <meta name="embl:parent-1" content="" />
// <meta name="embl:parent-2" content="" />
try {
function ebiGetFacet(passedAttribute){
var tag = "#masthead-black-bar ." + passedAttribute.toLowerCase();
return document.querySelectorAll(tag)[0];
}
var metas = document.getElementsByTagName('meta');
for (var i = 0; i < metas.length; i++) {
if (metas[i].getAttribute("name") == "embl:facet-who") {
if (metas[i].getAttribute("content").toLowerCase() == "parent") {
var targetFacet = ebiGetFacet(metas[i].getAttribute("data-tag"));
// todo: insert this as a new facet, i think?
}
if (metas[i].getAttribute("name") == "embl:active") {
var targetFacet = ebiGetFacet(metas[i].getAttribute("content").replace(':','.'));
ebiRemoveClass(targetFacet,'hide');
ebiActivateClass(targetFacet,'active');
}
if (metas[i].getAttribute("name") == "embl:facet-what") {
if (metas[i].getAttribute("content").toLowerCase() == "parent") {
var targetFacet = ebiGetFacet(metas[i].getAttribute("data-tag"));
ebiToggleClass(targetFacet,'active');
}
if (metas[i].getAttribute("name") == "embl:parent-1") {
var targetFacet = ebiGetFacet(metas[i].getAttribute("content").replace(':','.'));
ebiRemoveClass(targetFacet,'hide');
ebiActivateClass(targetFacet,'active');
}
if (metas[i].getAttribute("name") == "embl:facet-where") {
if (metas[i].getAttribute("content").toLowerCase() == "parent") {
var targetFacet = ebiGetFacet(metas[i].getAttribute("data-tag"));
ebiToggleClass(targetFacet,'active');
ebiToggleClass(targetFacet,'hide'); // as we hide these by default
}
if (metas[i].getAttribute("name") == "embl:parent-2") {
var targetFacet = ebiGetFacet(metas[i].getAttribute("content").replace(':','.'));
ebiRemoveClass(targetFacet,'hide');
ebiActivateClass(targetFacet,'active');
}
}
// add interactivity to facets, so that hovering on what:research shows what:*
// we do this bit with jquery to prototype; need to rewire as vanilla JS.
ebiGetFacet('where.active').addEventListener("mouseenter", function( event ) {
$('#masthead-black-bar .where.hide').addClass('hover float-left').removeClass('hide');
// $('#masthead-black-bar .where.hide').removeClass('hide').addClass('hover');
$('#masthead-black-bar .what').addClass('hide');
}, false);
ebiGetFacet('what.active').addEventListener("mouseenter", function( event ) {
$('#masthead-black-bar .what').removeClass('hide float-left');
$('#masthead-black-bar .what').addClass('hover float-left');
$('#masthead-black-bar .where').addClass('hide');
}, false);
// Only reset blackbar after XXXms outside the blackbar
var mouseoutTimer;
blackBar.addEventListener("mouseenter", function() {
window.clearTimeout(mouseoutTimer);
}, false);
blackBar.addEventListener("mouseleave", function() {
mouseoutTimer = window.setTimeout(function(){ resetBlackBar(); }, 500);
});
// reset black bar contenxts when mousing out
function resetBlackBar() {
// console.log('purged');
$('#masthead-black-bar .hover').removeClass('hover float-left');
$('#masthead-black-bar .what').removeClass('hide');
$('#masthead-black-bar .where').addClass('hide');
ebiFrameworkActivateBlackBar();
}
}

@@ -301,8 +400,8 @@ catch(err) {};

// remove any current dropdown
if ((elem=document.getElementById('embl-dropdown')) !== null) {
document.getElementById('embl-dropdown').remove();
if ((elem=document.getElementById('embl-bar')) !== null) {
document.getElementById('embl-bar').remove();
}
var dropdownDiv = document.createElement("div");
dropdownDiv.innerHTML = '<nav id="embl-bar" class="embl-bar">'+
dropdownDiv.innerHTML = '<nav id="embl-bar" class="embl-bar global-masthead-interactive-banner">'+
'<div class="row padding-bottom-medium">'+

@@ -352,11 +451,5 @@ '<div class="columns padding-top-medium">'+

// utility function to see if element has a class
// hasClass(element, 'class-deska');
function hasClass(element, cls) {
return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1;
}
// add "peeking" animation for embl selector
emblBarButton.addEventListener("mouseenter", function( event ) {
if (hasClass(document.querySelectorAll(".embl-bar")[0], 'active') == false) {
if (ebiHasClass(document.querySelectorAll(".embl-bar")[0], 'active') == false) {
blackBar.className += ' peek';

@@ -366,3 +459,3 @@ }

emblBarButton.addEventListener("mouseleave", function( event ) {
if (hasClass(document.querySelectorAll(".embl-bar")[0], 'active') == false) {
if (ebiHasClass(document.querySelectorAll(".embl-bar")[0], 'active') == false) {
blackBar.classList.remove("peek");

@@ -385,31 +478,3 @@ }

// we do this bit with jquery to prototype, would need ro rewire as vanilla JS..
$('#masthead-black-bar .where.active').on('mouseover', function() {
emblResetContext(); // clear any other states
$('#masthead-black-bar .where.hide').addClass('hover').removeClass('hide');
// $('#masthead-black-bar .where.hide').removeClass('hide').addClass('hover');
$('#masthead-black-bar .what').addClass('hide');
});
$('#masthead-black-bar .what.active').on('mouseover', function() {
emblResetContext(); // clear any other states
$('#masthead-black-bar .what.mission').removeClass('hide');
$('#masthead-black-bar .what').addClass('hover');
});
// reset when user engages with content
function emblResetContext() {
// ebiFrameworkActivateBlackBar();
$('#masthead-black-bar .where.hover').removeClass('hover').addClass('hide');
$('#masthead-black-bar .what').removeClass('hide');
$('#masthead-black-bar .what.mission').addClass('hide');
$('#masthead-black-bar .what.hover').removeClass('hover');
// reset everything on the next mouse into content
$('#content').one('mouseover', function() {
console.log('purged');
emblResetContext();
});
}
}

@@ -555,3 +620,3 @@ catch(err) {};

function loadRemote(file) {
function loadRemoteAnnouncements(file) {
if (window.XMLHttpRequest) {

@@ -563,3 +628,3 @@ xmlhttp=new XMLHttpRequest();

eval(xmlhttp.responseText);
detectAnnouncements(m)
detectAnnouncements(m);
}

@@ -571,3 +636,9 @@ }

loadRemote('https://dev.ebi.emblstatic.net/announcements.js');
if (window.location.hostname.indexOf('wwwdev.') === 0) {
// Load test message on wwwdev
loadRemoteAnnouncements('https://dev.ebi.emblstatic.net/announcements.js');
} else {
loadRemoteAnnouncements('https://ebi.emblstatic.net/announcements.js');
}
}

@@ -574,0 +645,0 @@

@@ -1,1 +0,1 @@

function ebiGetParameterByName(name,url){url||(url=window.location.href),name=name.replace(/[\[\]]/g,"\\$&");var results=new RegExp("[?&]"+name+"(=([^&#]*)|&|#|$)").exec(url);return results?results[2]?decodeURIComponent(results[2].replace(/\+/g," ")):"":null}function ebiFrameworkExternalLinks(){try{var i,icon,alist=document.getElementsByTagName("a"),fileTypes=["pdf","doc","txt"];for(i=0;i<alist.length;i++)for(var type in fileTypes)-1===alist[i].innerHTML.indexOf('<span class="link-'+fileTypes[type]+'"></span>')&&-1===alist[i].innerHTML.indexOf("<img")&&function(url,type){return-1!==url.indexOf(type,url.length-type.length)}(alist[i].href,fileTypes[type])&&function(url){return-1===url.indexOf("//")||-1!==url.indexOf("//www.ebi.ac.uk")||-1!==url.indexOf("//wwwdev.ebi.ac.uk")||-1!==url.indexOf("//srs.ebi.ac.uk")||-1!==url.indexOf("//ftp.ebi.ac.uk")||-1!==url.indexOf("//intranet.ebi.ac.uk")||-1!==url.indexOf("//pdbe.org")||-1!==url.indexOf("//"+document.domain)}(alist[i].href)&&((icon=document.createElement("span")).className="link-"+fileTypes[type],alist[i].appendChild(icon))}catch(err){}}function ebiFrameworkManageGlobalSearch(){try{var hasLocalSearch=null!==document.getElementById("local-search"),hasLocalEBISearch=null!==document.getElementById("ebi_search");if(hasLocalSearch||hasLocalEBISearch)document.body.className+=" no-global-search";else{try{document.getElementById("search-global-dropdown").innerHTML='<form id="global-search" name="global-search" action="/ebisearch/search.ebi" method="GET" class="large-8 large-push-2"><fieldset><div class="input-group"><input type="text" name="query" id="global-searchbox" class="input-group-field" placeholder="Search all of EMBL-EBI"><div class="input-group-button"><input type="submit" name="submit" value="Search" class="button"><input type="hidden" name="db" value="allebi" checked="checked"><input type="hidden" name="requestFrom" value="masthead-black-bar" checked="checked"></div></div></fieldset></form>'}catch(err){setTimeout(init,500)}}}catch(err){}}function ebiFrameworkSearchNullError(){try{var disabled=-1!==document.body.className.indexOf("no-search-error"),searchBoxes=[{inputNode:document.getElementById("global-searchbox")},{inputNode:document.getElementById("local-searchbox")},{inputNode:-1!==document.body.className.indexOf("front")?document.getElementById("query"):null},{inputNode:document.getElementById("people-groups")?document.getElementById("people-groups").getElementsByTagName("input")[0]:null}];if(!disabled)for(searchBox in searchBoxes){var searchInput=searchBoxes[searchBox].inputNode,searchForm=searchInput?searchInput.form:null,searchInputDefault=searchBoxes[searchBox].defaultText||"",searchError=searchBoxes[searchBox].errorText||"Please enter a search term",isEbiSearch=-1!==(searchForm?searchForm.action:"").indexOf("/ebisearch/");searchForm&&searchInput&&isEbiSearch&&(searchForm.searchInput=searchInput,searchForm.searchInputDefault=searchInputDefault,searchForm.searchError=searchError,searchForm.onsubmit=function(){if(searchInput=this.searchInput,searchInputDefault=this.searchInputDefault,searchError=this.searchError,searchInput.value=searchInput.value.trim(),searchInput.value===searchInputDefault||""===searchInput.value)return alert(searchError),!1})}}catch(err){}}function ebiToggleClass(element,toggleClass){var newClass,currentClass=element.className;newClass=currentClass.split(" ").indexOf(toggleClass)>-1?currentClass.replace(new RegExp("\\b"+toggleClass+"\\b","g"),""):currentClass+" "+toggleClass,element.className=newClass.trim()}function ebiFrameworkHideGlobalNav(){try{var elem,hasGlobalMasthead=null!==document.getElementById("masthead-black-bar"),disabled=-1!==document.body.className.indexOf("no-global-nav");hasGlobalMasthead&&disabled&&(null!==(elem=document.getElementById("global-nav"))&&elem.parentNode.removeChild(elem),null!==(elem=document.getElementById("global-nav-expanded"))&&elem.parentNode.removeChild(elem))}catch(err){}}function ebiFrameworkAssignImageByMetaTags(){var masthead=document.getElementById("masthead"),mastheadColor=document.querySelector("meta[name='ebi:masthead-color']")||document.querySelector("meta[name='ebi-masthead-color']"),mastheadImage=document.querySelector("meta[name='ebi:masthead-image']")||document.querySelector("meta[name='ebi-masthead-image']");null!=mastheadColor&&(masthead.style.backgroundColor=mastheadColor.getAttribute("content"),masthead.className+=" meta-background-color"),null!=mastheadImage&&(masthead.style.backgroundImage="url("+mastheadImage.getAttribute("content")+")",masthead.className+=" meta-background-image")}function ebiFrameworkPopulateBlackBar(){try{null!==(elem=document.getElementById("masthead-black-bar"))&&(document.getElementById("masthead-black-bar").innerHTML="");var barContents=document.createElement("div");barContents.innerHTML='<nav class="row"><ul id="global-nav" class="menu global-nav text-right"><li class="home-mobile"><a href="https://www.ebi.ac.uk"></a></li><li class="location embl hide"><a href="http://www.embl.org">EMBL</a></li><li class="location barcelona hide"><a href="#">Barcelona</a></li><li class="location hamburg hide"><a href="#">Hamburg</a></li><li class="location grenoble hide"><a href="#">Heidelberg</a></li><li class="location grenoble hide"><a href="#">Grenoble</a></li><li class="location rome hide"><a href="#">Rome</a></li><li id="embl-selector" class="float-right show-for-medium embl-selector"><button class="button float-right">&nbsp;</button></li><li class="float-right search"><a href="#" data-toggle="search-global-dropdown"><span class="show-for-small-only">Search</span></a><div id="search-global-dropdown" class="dropdown-pane" data-dropdown data-options="closeOnClick:true;"></div></li><li class="what about"><a href="https://www.ebi.ac.uk/about">About us</a></li><li class="what training"><a href="https://www.ebi.ac.uk/training">Training</a></li><li class="what research"><a href="https://www.ebi.ac.uk/research">Research</a></li><li class="what services"><a href="https://www.ebi.ac.uk/services">Services</a></li><li class="location ebi"><a href="https://www.ebi.ac.uk">EMBL-EBI</a></li></ul></nav>',document.getElementById("masthead-black-bar").insertBefore(barContents,document.getElementById("masthead-black-bar").firstChild)}catch(err){}}function ebiFrameworkActivateBlackBar(){try{function ebiGetFacet(passedAttribute){var tag="#masthead-black-bar ."+passedAttribute.toLowerCase();return document.querySelectorAll(tag)[0]}for(var metas=document.getElementsByTagName("meta"),i=0;i<metas.length;i++){if("embl:facet-who"==metas[i].getAttribute("name")&&"parent"==metas[i].getAttribute("content").toLowerCase())var targetFacet=ebiGetFacet(metas[i].getAttribute("data-tag"));"embl:facet-what"==metas[i].getAttribute("name")&&"parent"==metas[i].getAttribute("content").toLowerCase()&&ebiToggleClass(targetFacet=ebiGetFacet(metas[i].getAttribute("data-tag")),"active"),"embl:facet-where"==metas[i].getAttribute("name")&&"parent"==metas[i].getAttribute("content").toLowerCase()&&(ebiToggleClass(targetFacet=ebiGetFacet(metas[i].getAttribute("data-tag")),"active"),ebiToggleClass(targetFacet,"hide"))}}catch(err){}}function ebiFrameworkInsertEMBLdropdown(){try{null!==(elem=document.getElementById("embl-dropdown"))&&document.getElementById("embl-dropdown").remove();var dropdownDiv=document.createElement("div");dropdownDiv.innerHTML='<nav id="embl-bar" class="embl-bar"><div class="row padding-bottom-medium"><div class="columns padding-top-medium"><button class="close-button" aria-label="Close alert" type="button"><span aria-hidden="true">×</span></button></div><div class="columns medium-8"><div class="large-8 medium-12"><p><h3 class="inline">EMBL</h3> was founded in 1974 by its member states to promote the molecular life sciences in Europe and beyond.</p></div><div class="row large-up-3 medium-up-3 small-up-2 no-underline medium-11"><div class="column padding-bottom-medium"><a class="" href="#research"><h5 class="inline underline">Research</h5> the molecular basis of life</a></div><div class="column padding-bottom-medium"><a class="" href="#"><h5 class="inline underline">Services</h5> and infrastructure for research</a></div><div class="column padding-bottom-medium"><a class="" href="#"><h5 class="inline underline">Training</h5> and inspiring scientists</a></div><div class="column padding-bottom-medium"><a class="" href="#"><h5 class="inline underline">Transfer</h5> and deverlopment of technology</a></div><div class="column padding-bottom-medium"><a class="" href="#"><h5 class="inline underline">Integrating</h5> life science research in Europe</a></div></div><div class="margin-top-xlarge no-underline"><h3><a href="//embl.org" class="readmore">More about EMBL</a></h3></div></div><div class="columns medium-4"><div class="large-10 medium-12"><p><h3 class="inline">Six locations</h3> represent EMBL across Europe, each has its own focus.</p></div><div class="row large-up-3 medium-up-2 small-up-2"><div class="column"><h5><a href="//www.embl-barcelona.es/">Barcelona</a></h5><p class="small">Tissue biology and disease modelling</p></div><div class="column"><h5><a href="//www.embl.fr/">Grenoble</a></h5><p class="small">Structural biology</p></div><div class="column"><h5><a href="//www.embl-hamburg.de/">Hamburg</a></h5><p class="small">Structural biology</p></div><div class="column"><h5><a href="//www.embl.de/">Heidelberg</a></h5><p class="small">Main laboratory</p></div><div class="column"><h5><a href="https://www.ebi.ac.uk/">Hinxton</a></h5><span class="tag "><i class="icon icon-generic" data-icon="["></i> you are here</span><p class="small margin-bottom-none">Bioinformatiocs at the EBI</p></div><div class="column"><h5><a href="//www.embl.it/">Rome</a></h5><p class="small">Epigenetics and neurobiology</p></div></div></div></div></nav>',document.getElementById("masthead-black-bar").insertBefore(dropdownDiv,document.getElementById("masthead-black-bar").firstChild);var emblBar=document.querySelectorAll(".embl-bar")[0],emblBarButton=document.querySelectorAll(".embl-selector")[0],blackBar=document.querySelectorAll(".masthead-black-bar")[0];function hasClass(element,cls){return(" "+element.className+" ").indexOf(" "+cls+" ")>-1}emblBarButton.addEventListener("mouseenter",function(event){0==hasClass(document.querySelectorAll(".embl-bar")[0],"active")&&(blackBar.className+=" peek")},!1),emblBarButton.addEventListener("mouseleave",function(event){0==hasClass(document.querySelectorAll(".embl-bar")[0],"active")&&blackBar.classList.remove("peek")},!1);document.querySelectorAll(".embl-selector")[0].addEventListener("click",function(event){ebiToggleClass(emblBar,"active"),ebiToggleClass(emblBarButton,"active"),window.scrollTo(0,0)},!1),document.querySelectorAll(".embl-bar .close-button")[0].addEventListener("click",function(event){ebiToggleClass(emblBar,"active"),ebiToggleClass(emblBarButton,"active"),window.scrollTo(0,0)},!1);$("#masthead-black-bar .where.active").on("mouseover",function(){emblResetContext(),$("#masthead-black-bar .where.hide").addClass("hover").removeClass("hide"),$("#masthead-black-bar .what").addClass("hide")}),$("#masthead-black-bar .what.active").on("mouseover",function(){emblResetContext(),$("#masthead-black-bar .what.mission").removeClass("hide"),$("#masthead-black-bar .what").addClass("hover")});function emblResetContext(){$("#masthead-black-bar .where.hover").removeClass("hover").addClass("hide"),$("#masthead-black-bar .what").removeClass("hide"),$("#masthead-black-bar .what.mission").addClass("hide"),$("#masthead-black-bar .what.hover").removeClass("hover"),$("#content").one("mouseover",function(){console.log("purged"),emblResetContext()})}}catch(err){}}function ebiFrameworkUpdateFoot(){function init(){try{document.getElementById("global-nav-expanded").innerHTML=html}catch(err){setTimeout(init,500)}}var html='<div class="columns small-12"><h4 class="inline-block"><a href="https://www.ebi.ac.uk" class="no-underline" title="EMBL-EBI">EMBL-EBI</a></h4><span class="small inline-block padding-left-large"><a class="readmore" href="http://intranet.ebi.ac.uk"><span class="icon icon-functional" data-icon="L"></span> Intranet for staff</a></span></div><div class="medium-up-5 small-up-2"><div class="column"><h5 class="services"><a class="services-color" href="https://www.ebi.ac.uk/services">Services</a></h5><ul> <li class="first"><a href="https://www.ebi.ac.uk/services">By topic</a></li> <li><a href="https://www.ebi.ac.uk/services/all">By name (A-Z)</a></li> <li class="last"><a href="https://www.ebi.ac.uk/support">Help &amp; Support</a></li> </ul></div><div class="column"><h5 class="research"><a class="research-color" href="https://www.ebi.ac.uk/research">Research</a></h5><ul> <li><a href="https://www.ebi.ac.uk/research/publications">Publications</a></li> <li><a href="https://www.ebi.ac.uk/research/groups">Research groups</a></li> <li class="last"><a href="https://www.ebi.ac.uk/research/postdocs">Postdocs</a> &amp; <a href="https://www.ebi.ac.uk/research/eipp">PhDs</a></li> </ul></div><div class="column"> <h5 class="training"><a class="training-color" href="https://www.ebi.ac.uk/training">Training</a></h5><ul> <li><a href="https://www.ebi.ac.uk/training/handson">Train at EBI</a></li> <li><a href="https://www.ebi.ac.uk/training/roadshow">Train outside EBI</a></li> <li><a href="https://www.ebi.ac.uk/training/online">Train online</a></li> <li class="last"><a href="https://www.ebi.ac.uk/training/contact-us">Contact organisers</a></li> </ul></div> <div class="column"> <h5 class="industry"><a class="industry-color" href="https://www.ebi.ac.uk/industry">Industry</a></h5><ul> <li><a href="https://www.ebi.ac.uk/industry/private">Members Area</a></li> <li><a href="https://www.ebi.ac.uk/industry/workshops">Workshops</a></li> <li><a href="https://www.ebi.ac.uk/industry/sme-forum"><abbr title="Small Medium Enterprise">SME</abbr> Forum</a></li> <li class="last"><a href="https://www.ebi.ac.uk/industry/contact">Contact Industry programme</a></li> </ul></div> <div class="column"> <h5 class="about"><a class="ebi-color" href="https://www.ebi.ac.uk/about">About</a></h5><ul> <li><a href="https://www.ebi.ac.uk/about/contact">Contact us</a><li><a href="https://www.ebi.ac.uk/about/events">Events</a></li> <li><a href="https://www.ebi.ac.uk/about/jobs" title="Jobs, postdocs, PhDs...">Jobs</a></li> <li class="first"><a href="https://www.ebi.ac.uk/about/news">News</a></li> <li><a href="https://www.ebi.ac.uk/about/people">People &amp; groups</a></li> </ul></div></div>';init()}function ebiFrameworkUpdateFooterMeta(){function init(){try{document.getElementById("ebi-footer-meta").innerHTML=html}catch(err){setTimeout(init,500)}}var html='<div class="columns"><p class="address">EMBL-EBI, Wellcome Genome Campus, Hinxton, Cambridgeshire, CB10 1SD, UK. +44 (0)1223 49 44 44</p> <p class="legal">Copyright &copy; EMBL-EBI '+(new Date).getFullYear()+' | EMBL-EBI is <a href="http://www.embl.org/">part of the European Molecular Biology Laboratory</a> | <a href="https://www.ebi.ac.uk/about/terms-of-use">Terms of use</a></p></div>';init()}function ebiFrameworkIncludeAnnouncements(){function detectAnnouncements(messages){var currentHost=window.location.hostname,currentPath=window.location.pathname;if(currentHost=currentHost.replace(/wwwdev/g,"www"),injectAnnouncements(messages[currentHost]),injectAnnouncements(messages[currentHost+"/"]),injectAnnouncements(messages[currentHost+"/*"]),currentPath.length>1){for(var currentPathArray=currentPath.split("/"),pathsToMatch=[currentHost+currentPathArray[0]],i=1;i<currentPathArray.length;i++){var tempPath=pathsToMatch[i-1];pathsToMatch.push(tempPath+"/"+currentPathArray[i])}for(i=0;i<pathsToMatch.length;i++)injectAnnouncements(messages[pathsToMatch[i]]),injectAnnouncements(messages[pathsToMatch[i]+"*"]),injectAnnouncements(messages[pathsToMatch[i]+"/*"])}}function injectAnnouncements(message){if(void 0===message)return!1;if(void 0!==message.processed)return!0;message.processed=!0;var container=document.getElementById("main-content-area")||document.getElementById("main-content")||document.getElementById("main")||document.getElementById("content")||document.getElementById("contentsarea");if(null==container)return console.warn("A message needs to be shown on this site, but an appropriate container could not be found. \n Message follows:","\n"+message.headline,"\n"+message.message,"\nPriority:",message.priority),!1;var banner=document.createElement("div"),wrapper=document.createElement("div");banner.className="notifications-js row margin-top-medium",wrapper.className="row callout "+(message.priority||""),wrapper.innerHTML="<h3>"+message.headline+"</h3>"+message.message,container.insertBefore(banner,container.firstChild),banner.appendChild(wrapper)}function loadRemote(file){window.XMLHttpRequest&&(xmlhttp=new XMLHttpRequest),xmlhttp.onreadystatechange=function(){4==xmlhttp.readyState&&200==xmlhttp.status&&(eval(xmlhttp.responseText),detectAnnouncements(m))},xmlhttp.open("GET",file,!1),xmlhttp.send()}loadRemote("https://dev.ebi.emblstatic.net/announcements.js")}function ebiFrameworkCookieBanner(){function setCookie(c_name,value,exdays){var c_value,exdate=new Date;exdate.setDate(exdate.getDate()+exdays),c_value=escape(value)+(null===exdays?"":";expires="+exdate.toUTCString())+";domain=.ebi.ac.uk;path=/",document.cookie=c_name+"="+c_value,c_value=escape(value)+(null===exdays?"":";expires="+exdate.toUTCString())+";domain="+document.domain+";path=/",document.cookie=c_name+"="+c_value}function getCookie(c_name){var i,x,y,ARRcookies=document.cookie.split(";");for(i=0;i<ARRcookies.length;i++)if(x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")),y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1),(x=x.replace(/^\s+|\s+$/g,""))===c_name)return unescape(y)}function createBanner(){var banner=document.createElement("div"),wrapper=document.createElement("div");document.createElement("div");banner.id="cookie-banner",banner.className="cookie-banner",wrapper.className="row",wrapper.innerHTML="<span class='text'>This website uses cookies. By continuing to browse this site, you are agreeing to the use of our site cookies. To find out more, see our <a href='//www.ebi.ac.uk/about/terms-of-use'>Terms of Use</a>.</span><div id='cookie-dismiss'><button class='close-button' style='top: 0.3rem; color:#fff;' aria-label='Close alert' type='button'><span aria-hidden='true'>&times;</span></button></div>",document.body.appendChild(banner),banner.appendChild(wrapper)}function openBanner(){var height=document.getElementById("cookie-banner").offsetHeight;document.getElementById("cookie-banner").style.display="block",document.body.style.paddingBottom=height+"px"}function closeBanner(){document.getElementById("cookie-banner").offsetHeight;document.getElementById("cookie-banner").style.display="none",document.body.style.paddingBottom="0"}function init(){try{"true"!==getCookie("cookies-accepted")&&(createBanner(),openBanner(),setCookie("cookies-accepted","true",90),document.getElementById("cookie-dismiss").onclick=function(){return closeBanner(),!1})}catch(err){setTimeout(init,100)}}init()}function ebiFrameworkInvokeScripts(){ebiFrameworkPopulateBlackBar(),ebiFrameworkActivateBlackBar(),ebiFrameworkExternalLinks(),ebiFrameworkManageGlobalSearch(),ebiFrameworkSearchNullError(),ebiFrameworkHideGlobalNav(),ebiFrameworkAssignImageByMetaTags(),ebiFrameworkInsertEMBLdropdown(),ebiFrameworkUpdateFoot(),ebiFrameworkUpdateFooterMeta(),ebiFrameworkIncludeAnnouncements(),ebiFrameworkCookieBanner()}document.addEventListener("DOMContentLoaded",function(event){"false"!=document.body.dataset.ebiframeworkinvokescripts&&ebiFrameworkInvokeScripts()});
function ebiGetParameterByName(name,url){url||(url=window.location.href),name=name.replace(/[\[\]]/g,"\\$&");var results=new RegExp("[?&]"+name+"(=([^&#]*)|&|#|$)").exec(url);return results?results[2]?decodeURIComponent(results[2].replace(/\+/g," ")):"":null}function ebiHasClass(element,cls){return(" "+element.className+" ").indexOf(" "+cls+" ")>-1}function ebiFrameworkExternalLinks(){try{var i,icon,alist=document.getElementsByTagName("a"),fileTypes=["pdf","doc","txt"];for(i=0;i<alist.length;i++)for(var type in fileTypes)-1===alist[i].innerHTML.indexOf('<span class="link-'+fileTypes[type]+'"></span>')&&-1===alist[i].innerHTML.indexOf("<img")&&function(url,type){return-1!==url.indexOf(type,url.length-type.length)}(alist[i].href,fileTypes[type])&&function(url){return-1===url.indexOf("//")||-1!==url.indexOf("//www.ebi.ac.uk")||-1!==url.indexOf("//wwwdev.ebi.ac.uk")||-1!==url.indexOf("//srs.ebi.ac.uk")||-1!==url.indexOf("//ftp.ebi.ac.uk")||-1!==url.indexOf("//intranet.ebi.ac.uk")||-1!==url.indexOf("//pdbe.org")||-1!==url.indexOf("//"+document.domain)}(alist[i].href)&&((icon=document.createElement("span")).className="link-"+fileTypes[type],alist[i].appendChild(icon))}catch(err){}}function ebiFrameworkManageGlobalSearch(){try{var hasLocalSearch=null!==document.getElementById("local-search"),hasLocalEBISearch=null!==document.getElementById("ebi_search");if(hasLocalSearch||hasLocalEBISearch)document.body.className+=" no-global-search";else try{null!==(elem=document.getElementById("search-bar"))&&document.getElementById("search-bar").remove();var dropdownDiv=document.createElement("div");dropdownDiv.innerHTML='<nav id="search-bar" class="search-bar global-masthead-interactive-banner"><div class="row padding-bottom-medium"><div class="columns padding-top-medium"><button class="close-button" aria-label="Close alert" type="button"><span aria-hidden="true">×</span></button></div></div><div class="row"><form id="global-search" name="global-search" action="/ebisearch/search.ebi" method="GET" class=""><fieldset><div class="input-group"><input type="text" name="query" id="global-searchbox" class="input-group-field" placeholder="Search all of EMBL-EBI"><div class="input-group-button"><input type="submit" name="submit" value="Search" class="button"><input type="hidden" name="db" value="allebi" checked="checked"><input type="hidden" name="requestFrom" value="masthead-black-bar" checked="checked"></div></div></fieldset></form></div></nav>',document.getElementById("masthead-black-bar").insertBefore(dropdownDiv,document.getElementById("masthead-black-bar").firstChild);var searchBar=document.querySelectorAll(".search-bar")[0],searchBarButton=document.querySelectorAll(".search-toggle")[0],blackBar=document.querySelectorAll(".masthead-black-bar")[0];searchBarButton.addEventListener("mouseenter",function(event){0==ebiHasClass(document.querySelectorAll(".search-bar")[0],"active")&&(blackBar.className+=" peek")},!1),searchBarButton.addEventListener("mouseleave",function(event){0==ebiHasClass(document.querySelectorAll(".search-bar")[0],"active")&&blackBar.classList.remove("peek")},!1);document.querySelectorAll(".search-toggle")[0].addEventListener("click",function(event){ebiToggleClass(searchBar,"active"),ebiToggleClass(searchBarButton,"active"),window.scrollTo(0,0)},!1),document.querySelectorAll(".search-bar .close-button")[0].addEventListener("click",function(event){ebiToggleClass(searchBar,"active"),ebiToggleClass(searchBarButton,"active"),window.scrollTo(0,0)},!1)}catch(err){setTimeout(init,500)}}catch(err){}}function ebiFrameworkSearchNullError(){try{var disabled=-1!==document.body.className.indexOf("no-search-error"),searchBoxes=[{inputNode:document.getElementById("global-searchbox")},{inputNode:document.getElementById("local-searchbox")},{inputNode:-1!==document.body.className.indexOf("front")?document.getElementById("query"):null},{inputNode:document.getElementById("people-groups")?document.getElementById("people-groups").getElementsByTagName("input")[0]:null}];if(!disabled)for(searchBox in searchBoxes){var searchInput=searchBoxes[searchBox].inputNode,searchForm=searchInput?searchInput.form:null,searchInputDefault=searchBoxes[searchBox].defaultText||"",searchError=searchBoxes[searchBox].errorText||"Please enter a search term",isEbiSearch=-1!==(searchForm?searchForm.action:"").indexOf("/ebisearch/");searchForm&&searchInput&&isEbiSearch&&(searchForm.searchInput=searchInput,searchForm.searchInputDefault=searchInputDefault,searchForm.searchError=searchError,searchForm.onsubmit=function(){if(searchInput=this.searchInput,searchInputDefault=this.searchInputDefault,searchError=this.searchError,searchInput.value=searchInput.value.trim(),searchInput.value===searchInputDefault||""===searchInput.value)return alert(searchError),!1})}}catch(err){}}function ebiToggleClass(element,toggleClass){var newClass,currentClass=element.className;newClass=currentClass.split(" ").indexOf(toggleClass)>-1?currentClass.replace(new RegExp("\\b"+toggleClass+"\\b","g"),""):currentClass+" "+toggleClass,element.className=newClass.trim()}function ebiActivateClass(element,cssClass){element.classList.remove(cssClass),element.classList.add(cssClass)}function ebiRemoveClass(element,cssClass){element.classList.remove(cssClass)}function ebiFrameworkHideGlobalNav(){try{var elem,hasGlobalMasthead=null!==document.getElementById("masthead-black-bar"),disabled=-1!==document.body.className.indexOf("no-global-nav");hasGlobalMasthead&&disabled&&(null!==(elem=document.getElementById("global-nav"))&&elem.parentNode.removeChild(elem),null!==(elem=document.getElementById("global-nav-expanded"))&&elem.parentNode.removeChild(elem))}catch(err){}}function ebiFrameworkAssignImageByMetaTags(){var masthead=document.getElementById("masthead"),mastheadColor=document.querySelector("meta[name='ebi:masthead-color']")||document.querySelector("meta[name='ebi-masthead-color']"),mastheadImage=document.querySelector("meta[name='ebi:masthead-image']")||document.querySelector("meta[name='ebi-masthead-image']");null!=mastheadColor&&(masthead.style.backgroundColor=mastheadColor.getAttribute("content"),masthead.className+=" meta-background-color"),null!=mastheadImage&&(masthead.style.backgroundImage="url("+mastheadImage.getAttribute("content")+")",masthead.className+=" meta-background-image")}function ebiFrameworkPopulateBlackBar(){try{null!==(elem=document.getElementById("masthead-black-bar"))&&(document.getElementById("masthead-black-bar").innerHTML="");var barContents=document.createElement("div");barContents.innerHTML='<nav class="row"><ul id="global-nav" class="menu global-nav text-right"><li class="home-mobile"><a href="https://www.ebi.ac.uk"></a></li><li class="where embl hide"><a href="http://www.embl.org">EMBL</a></li><li class="where barcelona hide"><a href="#">Barcelona</a></li><li class="where hamburg hide"><a href="#">Hamburg</a></li><li class="where grenoble hide"><a href="#">Heidelberg</a></li><li class="where grenoble hide"><a href="#">Grenoble</a></li><li class="where rome hide"><a href="#">Rome</a></li><li id="embl-selector" class="float-right show-for-medium embl-selector"><button class="button float-right">&nbsp;</button></li><li class="float-right search"><a href="#" class="inline-block collpased float-left search-toggle"><span class="show-for-small-only">Search</span></a></li><li class="what about"><a href="https://www.ebi.ac.uk/about">About us</a></li><li class="what training"><a href="https://www.ebi.ac.uk/training">Training</a></li><li class="what research"><a href="https://www.ebi.ac.uk/research">Research</a></li><li class="what services"><a href="https://www.ebi.ac.uk/services">Services</a></li><li class="where ebi"><a href="https://www.ebi.ac.uk">EMBL-EBI</a></li></ul></nav>',document.getElementById("masthead-black-bar").insertBefore(barContents,document.getElementById("masthead-black-bar").firstChild)}catch(err){}}function ebiGetFacet(passedAttribute){var tag="#masthead-black-bar ."+passedAttribute.toLowerCase();return document.querySelectorAll(tag)[0]}function ebiFrameworkActivateBlackBar(){try{for(var metas=document.getElementsByTagName("meta"),i=0;i<metas.length;i++)if("embl:active"==metas[i].getAttribute("name")&&(ebiRemoveClass(targetFacet=ebiGetFacet(metas[i].getAttribute("content").replace(":",".")),"hide"),ebiActivateClass(targetFacet,"active")),"embl:parent-1"==metas[i].getAttribute("name")&&(ebiRemoveClass(targetFacet=ebiGetFacet(metas[i].getAttribute("content").replace(":",".")),"hide"),ebiActivateClass(targetFacet,"active")),"embl:parent-2"==metas[i].getAttribute("name")){var targetFacet=ebiGetFacet(metas[i].getAttribute("content").replace(":","."));ebiRemoveClass(targetFacet,"hide"),ebiActivateClass(targetFacet,"active")}ebiGetFacet("where.active").addEventListener("mouseenter",function(event){$("#masthead-black-bar .where.hide").addClass("hover float-left").removeClass("hide"),$("#masthead-black-bar .what").addClass("hide")},!1),ebiGetFacet("what.active").addEventListener("mouseenter",function(event){$("#masthead-black-bar .what").removeClass("hide float-left"),$("#masthead-black-bar .what").addClass("hover float-left"),$("#masthead-black-bar .where").addClass("hide")},!1);var mouseoutTimer;blackBar.addEventListener("mouseenter",function(){window.clearTimeout(mouseoutTimer)},!1),blackBar.addEventListener("mouseleave",function(){mouseoutTimer=window.setTimeout(function(){resetBlackBar()},500)});function resetBlackBar(){$("#masthead-black-bar .hover").removeClass("hover float-left"),$("#masthead-black-bar .what").removeClass("hide"),$("#masthead-black-bar .where").addClass("hide"),ebiFrameworkActivateBlackBar()}}catch(err){}}function ebiFrameworkInsertEMBLdropdown(){try{null!==(elem=document.getElementById("embl-bar"))&&document.getElementById("embl-bar").remove();var dropdownDiv=document.createElement("div");dropdownDiv.innerHTML='<nav id="embl-bar" class="embl-bar global-masthead-interactive-banner"><div class="row padding-bottom-medium"><div class="columns padding-top-medium"><button class="close-button" aria-label="Close alert" type="button"><span aria-hidden="true">×</span></button></div><div class="columns medium-8"><div class="large-8 medium-12"><p><h3 class="inline">EMBL</h3> was founded in 1974 by its member states to promote the molecular life sciences in Europe and beyond.</p></div><div class="row large-up-3 medium-up-3 small-up-2 no-underline medium-11"><div class="column padding-bottom-medium"><a class="" href="#research"><h5 class="inline underline">Research</h5> the molecular basis of life</a></div><div class="column padding-bottom-medium"><a class="" href="#"><h5 class="inline underline">Services</h5> and infrastructure for research</a></div><div class="column padding-bottom-medium"><a class="" href="#"><h5 class="inline underline">Training</h5> and inspiring scientists</a></div><div class="column padding-bottom-medium"><a class="" href="#"><h5 class="inline underline">Transfer</h5> and deverlopment of technology</a></div><div class="column padding-bottom-medium"><a class="" href="#"><h5 class="inline underline">Integrating</h5> life science research in Europe</a></div></div><div class="margin-top-xlarge no-underline"><h3><a href="//embl.org" class="readmore">More about EMBL</a></h3></div></div><div class="columns medium-4"><div class="large-10 medium-12"><p><h3 class="inline">Six locations</h3> represent EMBL across Europe, each has its own focus.</p></div><div class="row large-up-3 medium-up-2 small-up-2"><div class="column"><h5><a href="//www.embl-barcelona.es/">Barcelona</a></h5><p class="small">Tissue biology and disease modelling</p></div><div class="column"><h5><a href="//www.embl.fr/">Grenoble</a></h5><p class="small">Structural biology</p></div><div class="column"><h5><a href="//www.embl-hamburg.de/">Hamburg</a></h5><p class="small">Structural biology</p></div><div class="column"><h5><a href="//www.embl.de/">Heidelberg</a></h5><p class="small">Main laboratory</p></div><div class="column"><h5><a href="https://www.ebi.ac.uk/">Hinxton</a></h5><span class="tag "><i class="icon icon-generic" data-icon="["></i> you are here</span><p class="small margin-bottom-none">Bioinformatiocs at the EBI</p></div><div class="column"><h5><a href="//www.embl.it/">Rome</a></h5><p class="small">Epigenetics and neurobiology</p></div></div></div></div></nav>',document.getElementById("masthead-black-bar").insertBefore(dropdownDiv,document.getElementById("masthead-black-bar").firstChild);var emblBar=document.querySelectorAll(".embl-bar")[0],emblBarButton=document.querySelectorAll(".embl-selector")[0],blackBar=document.querySelectorAll(".masthead-black-bar")[0];emblBarButton.addEventListener("mouseenter",function(event){0==ebiHasClass(document.querySelectorAll(".embl-bar")[0],"active")&&(blackBar.className+=" peek")},!1),emblBarButton.addEventListener("mouseleave",function(event){0==ebiHasClass(document.querySelectorAll(".embl-bar")[0],"active")&&blackBar.classList.remove("peek")},!1);document.querySelectorAll(".embl-selector")[0].addEventListener("click",function(event){ebiToggleClass(emblBar,"active"),ebiToggleClass(emblBarButton,"active"),window.scrollTo(0,0)},!1),document.querySelectorAll(".embl-bar .close-button")[0].addEventListener("click",function(event){ebiToggleClass(emblBar,"active"),ebiToggleClass(emblBarButton,"active"),window.scrollTo(0,0)},!1)}catch(err){}}function ebiFrameworkUpdateFoot(){function init(){try{document.getElementById("global-nav-expanded").innerHTML=html}catch(err){setTimeout(init,500)}}var html='<div class="columns small-12"><h4 class="inline-block"><a href="https://www.ebi.ac.uk" class="no-underline" title="EMBL-EBI">EMBL-EBI</a></h4><span class="small inline-block padding-left-large"><a class="readmore" href="http://intranet.ebi.ac.uk"><span class="icon icon-functional" data-icon="L"></span> Intranet for staff</a></span></div><div class="medium-up-5 small-up-2"><div class="column"><h5 class="services"><a class="services-color" href="https://www.ebi.ac.uk/services">Services</a></h5><ul> <li class="first"><a href="https://www.ebi.ac.uk/services">By topic</a></li> <li><a href="https://www.ebi.ac.uk/services/all">By name (A-Z)</a></li> <li class="last"><a href="https://www.ebi.ac.uk/support">Help &amp; Support</a></li> </ul></div><div class="column"><h5 class="research"><a class="research-color" href="https://www.ebi.ac.uk/research">Research</a></h5><ul> <li><a href="https://www.ebi.ac.uk/research/publications">Publications</a></li> <li><a href="https://www.ebi.ac.uk/research/groups">Research groups</a></li> <li class="last"><a href="https://www.ebi.ac.uk/research/postdocs">Postdocs</a> &amp; <a href="https://www.ebi.ac.uk/research/eipp">PhDs</a></li> </ul></div><div class="column"> <h5 class="training"><a class="training-color" href="https://www.ebi.ac.uk/training">Training</a></h5><ul> <li><a href="https://www.ebi.ac.uk/training/handson">Train at EBI</a></li> <li><a href="https://www.ebi.ac.uk/training/roadshow">Train outside EBI</a></li> <li><a href="https://www.ebi.ac.uk/training/online">Train online</a></li> <li class="last"><a href="https://www.ebi.ac.uk/training/contact-us">Contact organisers</a></li> </ul></div> <div class="column"> <h5 class="industry"><a class="industry-color" href="https://www.ebi.ac.uk/industry">Industry</a></h5><ul> <li><a href="https://www.ebi.ac.uk/industry/private">Members Area</a></li> <li><a href="https://www.ebi.ac.uk/industry/workshops">Workshops</a></li> <li><a href="https://www.ebi.ac.uk/industry/sme-forum"><abbr title="Small Medium Enterprise">SME</abbr> Forum</a></li> <li class="last"><a href="https://www.ebi.ac.uk/industry/contact">Contact Industry programme</a></li> </ul></div> <div class="column"> <h5 class="about"><a class="ebi-color" href="https://www.ebi.ac.uk/about">About</a></h5><ul> <li><a href="https://www.ebi.ac.uk/about/contact">Contact us</a><li><a href="https://www.ebi.ac.uk/about/events">Events</a></li> <li><a href="https://www.ebi.ac.uk/about/jobs" title="Jobs, postdocs, PhDs...">Jobs</a></li> <li class="first"><a href="https://www.ebi.ac.uk/about/news">News</a></li> <li><a href="https://www.ebi.ac.uk/about/people">People &amp; groups</a></li> </ul></div></div>';init()}function ebiFrameworkUpdateFooterMeta(){function init(){try{document.getElementById("ebi-footer-meta").innerHTML=html}catch(err){setTimeout(init,500)}}var html='<div class="columns"><p class="address">EMBL-EBI, Wellcome Genome Campus, Hinxton, Cambridgeshire, CB10 1SD, UK. +44 (0)1223 49 44 44</p> <p class="legal">Copyright &copy; EMBL-EBI '+(new Date).getFullYear()+' | EMBL-EBI is <a href="http://www.embl.org/">part of the European Molecular Biology Laboratory</a> | <a href="https://www.ebi.ac.uk/about/terms-of-use">Terms of use</a></p></div>';init()}function ebiFrameworkIncludeAnnouncements(){function detectAnnouncements(messages){var currentHost=window.location.hostname,currentPath=window.location.pathname;if(currentHost=currentHost.replace(/wwwdev/g,"www"),injectAnnouncements(messages[currentHost]),injectAnnouncements(messages[currentHost+"/"]),injectAnnouncements(messages[currentHost+"/*"]),currentPath.length>1){for(var currentPathArray=currentPath.split("/"),pathsToMatch=[currentHost+currentPathArray[0]],i=1;i<currentPathArray.length;i++){var tempPath=pathsToMatch[i-1];pathsToMatch.push(tempPath+"/"+currentPathArray[i])}for(i=0;i<pathsToMatch.length;i++)injectAnnouncements(messages[pathsToMatch[i]]),injectAnnouncements(messages[pathsToMatch[i]+"*"]),injectAnnouncements(messages[pathsToMatch[i]+"/*"])}}function injectAnnouncements(message){if(void 0===message)return!1;if(void 0!==message.processed)return!0;message.processed=!0;var container=document.getElementById("main-content-area")||document.getElementById("main-content")||document.getElementById("main")||document.getElementById("content")||document.getElementById("contentsarea");if(null==container)return console.warn("A message needs to be shown on this site, but an appropriate container could not be found. \n Message follows:","\n"+message.headline,"\n"+message.message,"\nPriority:",message.priority),!1;var banner=document.createElement("div"),wrapper=document.createElement("div");banner.className="notifications-js row margin-top-medium",wrapper.className="row callout "+(message.priority||""),wrapper.innerHTML="<h3>"+message.headline+"</h3>"+message.message,container.insertBefore(banner,container.firstChild),banner.appendChild(wrapper)}function loadRemoteAnnouncements(file){window.XMLHttpRequest&&(xmlhttp=new XMLHttpRequest),xmlhttp.onreadystatechange=function(){4==xmlhttp.readyState&&200==xmlhttp.status&&(eval(xmlhttp.responseText),detectAnnouncements(m))},xmlhttp.open("GET",file,!1),xmlhttp.send()}loadRemoteAnnouncements(0===window.location.hostname.indexOf("wwwdev.")?"https://dev.ebi.emblstatic.net/announcements.js":"https://ebi.emblstatic.net/announcements.js")}function ebiFrameworkCookieBanner(){function setCookie(c_name,value,exdays){var c_value,exdate=new Date;exdate.setDate(exdate.getDate()+exdays),c_value=escape(value)+(null===exdays?"":";expires="+exdate.toUTCString())+";domain=.ebi.ac.uk;path=/",document.cookie=c_name+"="+c_value,c_value=escape(value)+(null===exdays?"":";expires="+exdate.toUTCString())+";domain="+document.domain+";path=/",document.cookie=c_name+"="+c_value}function getCookie(c_name){var i,x,y,ARRcookies=document.cookie.split(";");for(i=0;i<ARRcookies.length;i++)if(x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")),y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1),(x=x.replace(/^\s+|\s+$/g,""))===c_name)return unescape(y)}function createBanner(){var banner=document.createElement("div"),wrapper=document.createElement("div");document.createElement("div");banner.id="cookie-banner",banner.className="cookie-banner",wrapper.className="row",wrapper.innerHTML="<span class='text'>This website uses cookies. By continuing to browse this site, you are agreeing to the use of our site cookies. To find out more, see our <a href='//www.ebi.ac.uk/about/terms-of-use'>Terms of Use</a>.</span><div id='cookie-dismiss'><button class='close-button' style='top: 0.3rem; color:#fff;' aria-label='Close alert' type='button'><span aria-hidden='true'>&times;</span></button></div>",document.body.appendChild(banner),banner.appendChild(wrapper)}function openBanner(){var height=document.getElementById("cookie-banner").offsetHeight;document.getElementById("cookie-banner").style.display="block",document.body.style.paddingBottom=height+"px"}function closeBanner(){document.getElementById("cookie-banner").offsetHeight;document.getElementById("cookie-banner").style.display="none",document.body.style.paddingBottom="0"}function init(){try{"true"!==getCookie("cookies-accepted")&&(createBanner(),openBanner(),setCookie("cookies-accepted","true",90),document.getElementById("cookie-dismiss").onclick=function(){return closeBanner(),!1})}catch(err){setTimeout(init,100)}}init()}function ebiFrameworkInvokeScripts(){ebiFrameworkPopulateBlackBar(),ebiFrameworkActivateBlackBar(),ebiFrameworkExternalLinks(),ebiFrameworkManageGlobalSearch(),ebiFrameworkSearchNullError(),ebiFrameworkHideGlobalNav(),ebiFrameworkAssignImageByMetaTags(),ebiFrameworkInsertEMBLdropdown(),ebiFrameworkUpdateFoot(),ebiFrameworkUpdateFooterMeta(),ebiFrameworkIncludeAnnouncements(),ebiFrameworkCookieBanner()}document.addEventListener("DOMContentLoaded",function(event){"false"!=document.body.dataset.ebiframeworkinvokescripts&&ebiFrameworkInvokeScripts()});

@@ -12,3 +12,3 @@ {

"name": "ebi-framework",
"version": "1.3.0-alpha.4",
"version": "1.3.0-beta.4",
"scripts": {

@@ -15,0 +15,0 @@ "test": "npm run libraries && npm run scss && npm run js && npm run documentation",

@@ -36,4 +36,9 @@ [![Build Status](https://travis-ci.org/ebiwd/EBI-Framework.svg?branch=v1.3)](https://travis-ci.org/ebiwd/EBI-Framework)

Follow the migration guide: [To come]
Super easy two steps!
1. Update your `v1.2` asset references to `v1.3`
2. Remove the reference to `foundation.min.css` or `foundation.css` (this is now included in [`ebi-global.css`](https://ebi.emblstatic.net/web_guidelines/EBI-Framework/v1.3/css/ebi-global.css))
3. Bonus: it is recommended you also [begin loading assets from the EMBL-EBI CDN at ebi.emblstatic.net](https://github.com/ebiwd/EBI-Framework/issues/119)
See a [full overview of changes in v1.3 here](https://github.com/ebiwd/EBI-Framework/issues/103).
## Where to start? How to use this?

@@ -143,2 +148,9 @@

## Developing locally
1. Edit any CSS or JS and build with `npm run scss` or `npm run js`
2. Serve index.html with `jekyll serve --port 99`
3. Open http://127.0.0.1:99/EBI-Framework/
Todo: Run the build process and serve with gulp and browsersync.
## Roadmap

@@ -145,0 +157,0 @@ - v1.1: Major update to the 2013 look and functionality

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc