Commit 50ef2ebb authored by yPhil's avatar yPhil
Browse files

Normalized SJ Licences page + About dialog + Media preloading pref

parent f8c2907e
Pipeline #397068 passed with stage
in 57 seconds
@font-face {
font-family: 'fontello';
src: url('../font/fontello.eot?96765373');
src: url('../font/fontello.eot?96765373#iefix') format('embedded-opentype'),
url('../font/fontello.woff2?96765373') format('woff2'),
url('../font/fontello.woff?96765373') format('woff'),
url('../font/fontello.ttf?96765373') format('truetype'),
url('../font/fontello.svg?96765373#fontello') format('svg');
src: url('../font/fontello.eot?75628199');
src: url('../font/fontello.eot?75628199#iefix') format('embedded-opentype'),
url('../font/fontello.woff2?75628199') format('woff2'),
url('../font/fontello.woff?75628199') format('woff'),
url('../font/fontello.ttf?75628199') format('truetype'),
url('../font/fontello.svg?75628199#fontello') format('svg');
font-weight: normal;
font-style: normal;
}
......@@ -15,7 +15,7 @@
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'fontello';
src: url('../font/fontello.svg?96765373#fontello') format('svg');
src: url('../font/fontello.svg?75628199#fontello') format('svg');
}
}
*/
......@@ -85,6 +85,4 @@
.icon-buoy:before { content: '\e828'; } /* '' */
.icon-video:before { content: '\e829'; } /* '' */
.icon-w3c:before { content: '\e830'; } /* '' */
.icon-sun:before { content: '\e832'; } /* '' */
.icon-moon:before { content: '\e833'; } /* '' */
.icon-reset:before { content: '\f831'; } /* '' */
\ No newline at end of file
......@@ -234,7 +234,7 @@ div#logo-title > div {
flex: 1 0;
}
div#logo-title > .logo-title {
.logo-title {
color: var(--color-ui-pri);
display: var(--logo-display);
font-family: LobsterRegular, Helvetica, Arial, sans-serif;
......@@ -544,10 +544,9 @@ li.feed-item.error > strong.value {
transition: transform 0.2s linear;
}
/* .folded { */
/* display: inline-block; */
/* transform: rotate(-90deg); */
/* } */
.reversed {
transform: rotate(180deg);
}
#overlay {
background-color: rgba(0, 0, 0, 0.2);
......@@ -627,7 +626,7 @@ nav#sideMenu {
border: none;
height: 100%;
left: var(--side-menu-width);
padding: 0;
padding: 0.3em 0 0 0;
position: fixed;
top: 0;
transition: left 0.1s ease-out;
......@@ -1029,11 +1028,10 @@ div.dialogContent {
div.dialogContent > div.dialogImage,
div.questionDialog > div.icon {
text-align: center;
flex: 0 0 200px;
flex: 0 0 auto;
min-width: 200px;
}
/* Tab */
.tab {
border: none !important;
margin: 0 !important;
......@@ -1052,15 +1050,6 @@ li.tab-name:first-child {
border-left: 1px solid var(--color-fg4) !important;
}
/* :focus-visible */
/* li.tab-name:not(.ui-tabs-active), */
/* #new-group { */
/* border-top: 0 !important; */
/* } */
/* Panel */
.panel {
padding: 0.2em !important;
......@@ -1236,10 +1225,19 @@ li.feed-item > div.itemDiv > a > .ptl-img.full {
width: 100%;
}
table {
border-collapse: separate;
border-spacing: 0 1em;
width: 100%;
table#jslicense-labels1 {
margin-left: auto;
margin-right: auto;
width: 90%;
border: 1px solid var(--color-ui-qui);
}
table#jslicense-labels1 td {
padding: 0.5em;
}
table#jslicense-labels1 td a {
text-decoration: underline;
}
.kbShortcutCol {
......
......@@ -199,18 +199,6 @@
"css": "reset",
"code": 63537,
"src": "mfglabs"
},
{
"uid": "95fb2e5fdd1ea7e4a420b6ed330e6b08",
"css": "sun",
"code": 59442,
"src": "meteocons"
},
{
"uid": "34e68aa8fbf61f02a748043ccf448a3b",
"css": "moon",
"code": 59443,
"src": "meteocons"
}
]
}
\ No newline at end of file
No preview for this file type
......@@ -66,10 +66,6 @@
<glyph glyph-name="w3c" unicode="&#xe830;" d="M0 84l0 766 1000 0 0-766-500-234z m84 461l63-275q3-14 17-14l47 0q14 0 18 14l23 113 21-113q4-14 18-14l49 0q14 0 17 14l61 275q2 10-3 16t-13 6l-50 0q-14 0-16-14l-23-121-26 121q-4 14-17 14l-38 0q-13 0-15-14l-26-121-25 121q-2 14-16 14l-50 0q-20 0-16-22z m344-242q37-51 103-53 45 2 76 30t32 68q-2 43-34 68 30 28 30 63-2 45-32 68t-72 24q-64 0-99-51-8-12 2-23l27-26q14-12 25 2 18 24 41 24 20 0 24-10 6-12 0-26-8-9-45-9-20 0-20-16l0-41q2-21 20-18 45 0 49-9t4-16q0-25-28-25-29 0-47 25-11 16-25 2l-29-29q-10-10-2-22z m232 108q0-73 36-117t95-44q70 0 104 75 3 19-10 23l-37 18q-6 2-14-1t-10-9q-12-29-33-29t-35 23-14 62 14 61 35 24q21-2 33-28 8-13 24-10l37 18q17 10 10 25-34 71-104 71-59 0-95-45t-36-117z" horiz-adv-x="1000" />
<glyph glyph-name="sun" unicode="&#xe832;" d="M94 350q0 13 9 22t22 9h62q14 0 23-9t9-22-9-23-23-8h-62q-14 0-22 8t-9 23z m119-287q-11 11-11 22t11 23l45 43q10 12 22 12l21-11q10-12 10-23t-10-21l-43-45q-12-11-23-11t-22 11z m0 529q-11 12-11 23t11 22 22 10 23-10l43-45q10-11 10-22t-10-21-22-11l-21 11z m68-242q0 90 65 154t154 64 154-64 64-154-64-154-154-65-154 65-65 154z m63 0q0-65 45-111t111-45 109 44q47 47 47 112t-46 110-110 46-111-46-45-110z m125-375v62q0 14 8 23t23 9 22-9 9-23v-62q0-14-9-23t-22-8-23 8-8 23z m0 687v63q0 13 8 22t23 9 22-9 9-22v-63q0-14-9-22t-22-9-23 9-8 22z m230-554q-11 10-11 21t11 22 21 10l22-10 45-43q10-12 10-23t-10-22-22-11-23 11z m0 441q-11 11-11 21t11 22l43 45q12 10 23 10t22-10 10-22-10-23l-45-43q-11-11-22-11z m82-199q0 13 9 22t22 9h63q13 0 22-9t9-22-9-23-22-8h-63q-14 0-22 8t-9 23z" horiz-adv-x="1000" />
<glyph glyph-name="moon" unicode="&#xe833;" d="M256 356q0 103 74 177 39 39 94 59 5 2 10 2 12 0 21-10t10-22q0-5-2-11-11-30-11-62 0-21 5-42 12-52 50-90t90-50q21-5 42-5 32 0 62 11 6 2 11 2 12 0 22-10t10-21q0-5-2-10-20-55-59-94-74-74-177-74t-177 73-73 177z m62 1q0-78 55-134 54-54 131-54 6 0 12 0 86 6 136 71-10 0-20 0-98 0-170 72t-72 170q0 10 0 20-10-6-17-14-55-54-55-131z" horiz-adv-x="1000" />
<glyph glyph-name="reset" unicode="&#xf831;" d="M0 350q0 95 37 182t100 149 150 100 182 37 182-37 149-100 100-149 37-182-37-182-100-150-149-100-182-37-182 37-150 100-100 150-37 182z m261-155q0-22 15-38 15-15 37-15 22 0 37 15l119 119 118-119q15-15 37-15 22 0 37 15 15 16 15 38t-15 37l-118 118 118 119q15 15 15 37t-15 37-37 15-37-15l-118-119-119 119q-15 15-37 15t-37-15q-15-15-15-37t15-37l118-119-118-118q-15-15-15-37z" horiz-adv-x="937.5" />
</font>
</defs>
......
No preview for this file type
......@@ -9,12 +9,10 @@ PTL.dialog = {
$('#dialogs').load('/static/templates/dialogs.html #questionDialog', function() {
console.log('plop: %s (%s)');
var $dialog = $(this),
$icon = $dialog.find('div.dialogImage > i');
$icon.addClass('icon-trash-empty danger');
$icon.addClass('icon-refresh danger');
$dialog.dialog({
title: PTL.tr('Hard reset'),
......@@ -119,15 +117,41 @@ PTL.dialog = {
});
},
about:function() {
about:function(versionNumber) {
$('#dialogs').load('/static/templates/dialogs.html #helpDialog', function() {
$('#dialogs').load('/static/templates/dialogs.html #questionDialog', function() {
var $dialog = $(this);
var $dialog = $(this),
$content = $dialog.find('div.dialogContent'),
$icon = $dialog.find('div.dialogImage > i');
$icon.addClass('icon-petrolette');
$content.css('flex-direction', 'column');
$content.find('div.dialogText').css('text-align', 'center'),
$dialog.dialog({
title: PTL.tr('About Pétrolette'),
width: PTL.util.isMobile() ? 'auto' : 360,
closeOnEscape: true,
buttons: [
{
text: PTL.tr('Source code'),
title: PTL.tr('Source code'),
class: 'translate',
click: function() {
PTL.dialog.kill($dialog);
window.open('https://framagit.org/yphil/petrolette');
}
},
{
text: PTL.tr('Licence'),
title: PTL.tr('Licence'),
class: 'translate',
click: function() {
PTL.dialog.kill($dialog);
window.location.assign('/about/javascript');
}
},
{
text: PTL.tr('Ok'),
title: PTL.tr('Ok'),
......@@ -143,11 +167,12 @@ PTL.dialog = {
PTL.dialog.kill($dialog);
});
$dialog.find('h1').text('Pétrolette');
$dialog.find('h2#name').text(PTL.tr('Index'));
$dialog.find('p#name').text('By yPhil');
$dialog.find('h2#number').text(PTL.tr('Number of feeds'));
$dialog.find('p#number').text(nbOfFeedsInCol);
$dialog.find('h1').text('Pétrolette').addClass('logo-title');
$dialog.find('h2#name').text(versionNumber);
$dialog.find('p#name')
.append($('<a>')
.attr('href', 'https://liberapay.com/yPhil/')
.text('By yPhil'));
}
});
......@@ -632,8 +657,6 @@ PTL.dialog = {
$icon.addClass('icon-rzz');
// console.log('There is %s cols in the %s panel', nbOfColumnsInTab, $panel.attr('id'));
$dialog.dialog({
title: PTL.tr('Add feed'),
buttons: [
......
......@@ -429,7 +429,7 @@ PTL.feed = {
audioPlayer.controls = 'controls';
audioPlayer.src = item.enclosures[0].url;
audioPlayer.type = item.enclosures[0].type;
audioPlayer.preload = 'none';
audioPlayer.preload = PTL.prefs.readConfig('mediaPreload');
$itemDiv.append(audioPlayer);
......
......@@ -39,7 +39,6 @@ PTL.i18n = {
PTL.i18n.translations = {
"Pétrolette starting up OK" : { fr: "Pétrolette démarrage OK", ja: "Pétroletteが起動する", es: "Pétrolette iniciando OK" },
"Pétrolette init finished OK" : { fr: "Pétrolette démarrage terminé OK", ja: "ペトロレットの初期化は正常に終了しました", es: "La inicialización de Pétrolette terminó bien" },
"OK": { fr: "OK", ja: "入る", es: "OK" },
......
......@@ -24,6 +24,7 @@ var PTL = (function() {
$searchPrefixRestoreButton = $('button#searchPrefixRestoreButton'),
$searchPrefixInput = $('input#searchPrefixInput'),
$spinner = $('#gallerySpeedSpinner'),
$logoType = $('.logoType'),
$topMenu = $('nav#top-menu');
$topMenu.removeAttr('style');
......@@ -47,6 +48,10 @@ var PTL = (function() {
$('#ui-id-1').focus().trigger('click');
});
$logoType.click(function(){
PTL.dialog.about($logoType.attr('data-version'));
});
$('noscript').hide();
$('.js-enabled-only').show();
......@@ -198,7 +203,7 @@ var PTL = (function() {
$themeBox.append($dayLabel, $dayInput, $nightLabel, $nightInput);
$sideMenu.find('.themeSwitcher').checkboxradio({icon: true});
$sideMenu.find('.themeSwitcher').checkboxradio();
$sideMenu.find("input#" + PTL.prefs.readConfig('theme')).attr("checked", true);
......@@ -245,6 +250,58 @@ var PTL = (function() {
PTL.prefs.writeConfig('brokenImages', $(this).attr('value'));
});
var $mediaPreloadBox = $('div#mediaPreloadBox'),
$mediaPreloadNoneLabel = $('<label>')
.attr('class', 'translate grow')
.attr('for', 'none')
.data('content', PTL.tr('None'))
.text(PTL.tr('None')),
$mediaPreloadNoneInput = $('<input>')
.attr('id', 'none')
.attr('class', 'mediaPreloadSwitcher')
.attr('type', 'radio')
.attr('name', 'radio-2')
.attr('value', 'none'),
$mediaPreloadMetaLabel = $('<label>')
.attr('class', 'translate grow')
.attr('for', 'metadata')
.data('content', PTL.tr('Meta'))
.text(PTL.tr('Meta')),
$mediaPreloadMetaInput = $('<input>')
.attr('id', 'metadata')
.attr('class', 'mediaPreloadSwitcher')
.attr('type', 'radio')
.attr('name', 'radio-2')
.attr('value', 'metadata'),
$mediaPreloadAutoLabel = $('<label>')
.attr('class', 'translate grow')
.attr('for', 'auto')
.data('content', PTL.tr('Auto'))
.text(PTL.tr('Auto')),
$mediaPreloadAutoInput = $('<input>')
.attr('id', 'auto')
.attr('class', 'mediaPreloadSwitcher')
.attr('type', 'radio')
.attr('name', 'radio-2')
.attr('value', 'auto');
$mediaPreloadBox.append($mediaPreloadNoneLabel,
$mediaPreloadNoneInput,
$mediaPreloadMetaLabel,
$mediaPreloadMetaInput,
$mediaPreloadAutoLabel,
$mediaPreloadAutoInput);
$sideMenu.find('.mediaPreloadSwitcher').checkboxradio();
$sideMenu.find("input#" + PTL.prefs.readConfig('mediaPreload')).attr("checked", true);
$sideMenu.find('.mediaPreloadSwitcher').checkboxradio('refresh');
$('.mediaPreloadSwitcher').change(function() {
PTL.prefs.writeConfig('mediaPreload', $(this).attr('value'));
});
var gallerySlideshowSpeed = PTL.prefs.readConfig('gallerySlideshowSpeed');
var gallerySlideTransition = PTL.prefs.readConfig('gallerySlideTransition');
......
......@@ -15,12 +15,13 @@ PTL.prefs = (function() {
[
{"url":"https://rss.art19.com/apology-line","type":"text","limit": 40,"status":"off"},
{"url":"http://feeds.feedburner.com/sciencealert-latestnews","type":"mixed","limit": 300,"status":"on"},
{"url":"https://www.npr.org/rss/rss.php?id=1001","type":"mixed","limit": 400,"status":"on"}
{"url":"https://www.npr.org/rss/rss.php?id=1001","type":"mixed","limit": 400,"status":"off"},
{"url":"https://simpleflying.com/feed/","type":"mixed","limit": 400,"status":"on"}
],
[
{"url":"http://comicfeeds.chrisbenard.net/view/dilbert/default","type":"photo","limit": 200,"status":"on"},
{"url":"http://xkcd.com/rss.xml","type":"photo","limit": 400,"status":"on"},
{"url":"http://explainxkcd.com/rss.xml","type":"photo","limit": 60,"status":"on"}
{"url":"http://explainxkcd.com/rss.xml","type":"photo","limit": 60,"status":"off"}
],
[
{"url":"http://faif.us/feeds/cast-ogg/","type":"text","limit": 250,"status":"on"},
......@@ -105,6 +106,7 @@ PTL.prefs = (function() {
'feeds': JSON.stringify(newList),
'tabDropActivate': true,
'brokenImages': 'hide',
'mediaPreload': 'none',
'theme': 'night',
'nextNag': 0,
'writeTime': Date.now()
......
......@@ -308,7 +308,6 @@ PTL.tab = {
$newTabButton.focus(function() {
// $('#newTabButtonTooltip').tooltip().css('display', 'inline').fadeOut(2500);
PTL.util.say(PTL.tr("Click this button to add a tab"), 'success', true, 'Astuce');
});
......
......@@ -120,7 +120,8 @@
</div>
</div>
<div id="nagDialog" class="questionDialog">
<div id="nagDialog"
class="questionDialog">
</div>
<div id="helpDialog" title="Pétrolette">
......
......@@ -142,7 +142,8 @@
<div class="logo-title">
<a href="#">Pétrolette</a>
</div>
<div class="logoType">
<div class="logoType"
data-version="<%= version %>">
<i class="icon-petrolette"></i>
</div>
</div>
......@@ -309,6 +310,18 @@
</div>
</fieldset>
<legend class="ui-corner-top hover">
<i class="icon-right rotate unfold"></i>
<span class="translate"
data-content="Media preload">Media preload
</span>
</legend>
<fieldset class="menuForm">
<div id="mediaPreloadBox"
class="flex-box">
</div>
</fieldset>
<legend class="ui-corner-top hover">
<i class="icon-right rotate unfold"></i>
......
......@@ -38,10 +38,9 @@
<div class="topnav" id="topnav">
<div id="menuButton"
class="menuBarItem menuBarButton translate js-enabled-only navLeft"
title="Main menu"
data-title="Main menu">
<i class="icon-menu topMenuIcon"></i>
class="menuBarItem menuBarButton navLeft"
onclick="window.location.href='/';">
<i class="icon-right reversed topMenuIcon"></i>
</div>
<div class="menuBarItem navCenter">
......@@ -63,121 +62,121 @@
<h1>JavaScript license information</h1>
<table id="jslicense-labels1">
<thead>
<tr>
<th>Script</th>
<th>License</th>
<th>Source</th>
</tr>
</thead>
<tr>
<td><a href="/bower/jquery/dist/jquery.min.js">jquery.min.js</a></td>
<td><a href="https://jquery.org/license/">MIT Expat</a></td>
<td><a href="bower_components/jquery/dist/jquery.js">jquery-3.1.1.js</a></td>
</tr>
<tr>
<td><a href="/bower/jquery-ui/jquery-ui.min.js">jquery-ui.min.js</a></td>
<td><a href="https://jquery.org/license/">MIT Expat</a></td>
<td><a href="/bower/jquery-ui/jquery-ui.js">jquery-ui.js</a></td>
</tr>
<tr>
<td><a href="/bower/DOMPurify/dist/purify.min.js">purify.min.js</a></td>
<td><a href="/bower/DOMPurify/LICENSE">Apache License Version 2.0 / Mozilla Public License Version 2.0</a></td>
<td><a href="/bower/DOMPurify/src/purify.js">purify.js</a></td>
</tr>
<tr>
<td><a href="/bower/responsively-lazy/responsivelyLazy.min.js">responsivelyLazy.min.js</a></td>
<td><a href="http://opensource.org/licenses/MIT">MIT</a></td>
<td><a href="/bower/responsively-lazy/responsivelyLazy.min.js">responsivelyLazy.js</a></td>
</tr>
<tr>
<td><a href="/bower/remotestorage/release/remotestorage.js">remotestorage.js</a></td>
<td><a href="https://creativecommons.org/licenses/by/4.0/">CC-BY</a></td>
<td><a href="/bower/remotestorage/src/remotestorage.js">remotestorage.js</a></td>
</tr>
<tr>
<td><a href="/bower/rs-widget/build/widget.js">widget.js</a></td>
<td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td>
<td><a href="/bower/rs-widget/src/widget.js">widget.js</a></td>
</tr>
<tr>
<td><a href="/bower/intro.js/minified/intro.min.js">intro.min.js</a></td>
<td><a href="http://www.jclark.com/xml/copying.txt">Expat</a></td>
<td><a href="/bower/intro.js/intro.js">intro.js</a></td>
</tr>
<tr>
<td><a href="/bower/fancybox/dist/jquery.fancybox.min.js">jquery.fancybox.min.js</a></td>
<td><a href="http://www.gnu.org/licenses/gpl-3.0.html">GNU-GPL-3.0</a></td>
<td><a href="/bower/fancybox/src/js/core.js">core.js</a></td>
</tr>
<tr>
<td><a href="/static/js/PTL.main.js">PTL.main.js</a></td>
<td><a href="http://www.gnu.org/licenses/gpl-3.0.html">GNU-GPL-3.0</a></td>
<td><a href="/static/js/PTL.main.js">PTL.main.js</a></td>
</tr>
<tr>
<td><a href="/static/js/PTL.prefs.js">PTL.prefs.js</a></td>
<td><a href="http://www.gnu.org/licenses/gpl-3.0.html">GNU-GPL-3.0</a></td>
<td><a href="/static/js/PTL.prefs.js">PTL.prefs.js</a></td>
</tr>
<tr>
<td><a href="/static/js/PTL.i18n.js">PTL.i18n.js</a></td>
<td><a href="http://www.gnu.org/licenses/gpl-3.0.html">GNU-GPL-3.0</a></td>
<td><a href="/static/js/PTL.i18n.js">PTL.i18n.js</a></td>
</tr>
<tr>
<td><a href="/static/js/PTL.util.js">PTL.util.js</a></td>
<td><a href="http://www.gnu.org/licenses/gpl-3.0.html">GNU-GPL-3.0</a></td>
<td><a href="/static/js/PTL.util.js">PTL.util.js</a></td>
</tr>
<tr>
<td><a href="/static/js/PTL.tab.js">PTL.tab.js</a></td>
<td><a href="http://www.gnu.org/licenses/gpl-3.0.html">GNU-GPL-3.0</a></td>
<td><a href="/static/js/PTL.tab.js">PTL.tab.js</a></td>
</tr>
<tr>
<td><a href="/static/js/PTL.col.js">PTL.col.js</a></td>
<td><a href="http://www.gnu.org/licenses/gpl-3.0.html">GNU-GPL-3.0</a></td>
<td><a href="/static/js/PTL.col.js">PTL.col.js</a></td>
</tr>
<tr>
<td><a href="/static/js/PTL.feed.js">PTL.feed.js</a></td>
<td><a href="http://www.gnu.org/licenses/gpl-3.0.html">GNU-GPL-3.0</a></td>
<td><a href="/static/js/PTL.feed.js">PTL.feed.js</a></td>
</tr>
<tr>
<td><a href="/static/js/PTL.dialog.js">PTL.dialog.js</a></td>
<td><a href="http://www.gnu.org/licenses/gpl-3.0.html">GNU-GPL-3.0</a></td>
<td><a href="/static/js/PTL.dialog.js">PTL.dialog.js</a></td>
</tr>
<tr>
<td><a href="/static/js/PTL.sync.js">PTL.sync.js</a></td>
<td><a href="http://www.gnu.org/licenses/gpl-3.0.html">GNU-GPL-3.0</a></td>
<td><a href="/static/js/PTL.sync.js">PTL.sync.js</a></td>
</tr>
</table>
<p>Use the force, read <a href="https://framagit.org/yphil/petrolette">the source</a>.</p>
<table id="jslicense-labels1">
<thead>
<tr>
<th>Script</th>
<th>License</th>
<th>Source</th>
</tr>
</thead>
<tr>
<td><a href="/bower/jquery/dist/jquery.min.js">jquery.min.js</a></td>
<td><a href="https://jquery.org/license/">MIT Expat</a></td>
<td><a href="bower_components/jquery/dist/jquery.js">jquery-3.1.1.js</a></td>
</tr>
<tr>
<td><a href="/bower/jquery-ui/jquery-ui.min.js">jquery-ui.min.js</a></td>
<td><a href="https://jquery.org/license/">MIT Expat</a></td>
<td><a href="/bower/jquery-ui/jquery-ui.js">jquery-ui.js</a></td>
</tr>
<tr>
<td><a href="/bower/DOMPurify/dist/purify.min.js">purify.min.js</a></td>
<td><a href="/bower/DOMPurify/LICENSE">Apache License Version 2.0 / Mozilla Public License Version 2.0</a></td>
<td><a href="/bower/DOMPurify/src/purify.js">purify.js</a></td>
</tr>
<tr>
<td><a href="/bower/responsively-lazy/responsivelyLazy.min.js">responsivelyLazy.min.js</a></td>
<td><a href="http://opensource.org/licenses/MIT">MIT</a></td>
<td><a href="/bower/responsively-lazy/responsivelyLazy.min.js">responsivelyLazy.js</a></td>
</tr>
<tr>
<td><a href="/bower/remotestorage/release/remotestorage.js">remotestorage.js</a></td>
<td><a href="https://creativecommons.org/licenses/by/4.0/">CC-BY</a></td>
<td><a href="/bower/remotestorage/src/remotestorage.js">remotestorage.js</a></td>
</tr>
<tr>
<td><a href="/bower/rs-widget/build/widget.js">widget.js</a></td>
<td><a href="http://www.jclark.com/xml/copying.txt">GPL Expat</a></td>
<td><a href="/bower/rs-widget/src/widget.js">widget.js</a></td>
</tr>
<tr>
<td><a href="/bower/intro.js/minified/intro.min.js">intro.min.js</a></td>
<td><a href="https://introjs.com/docs/getting-started/license#open-source-license">GNU AGPLv3</a></td>
<td><a href="/bower/intro.js/intro.js">intro.js</a></td>
</tr>