@@ -601,7 +601,6 @@ var _utils = require("./modules/utils");
601
601
var _multiTab = require ( "./modules/multiTab" ) ;
602
602
var _feedback = require ( "./modules/feedback" ) ;
603
603
const { mount } = redom ;
604
-
605
604
document . querySelectorAll ( '.modal-button' ) . forEach ( function ( el ) {
606
605
el . addEventListener ( 'click' , function ( ) {
607
606
var target = document . querySelector ( el . getAttribute ( 'data-target' ) ) ;
@@ -628,6 +627,7 @@ document.addEventListener("DOMContentLoaded", function() {
628
627
( 0 , _utils . header ) . init ( ) ;
629
628
hljs . highlightAll ( ) ;
630
629
if ( navigator && navigator . clipboard ) ( 0 , _utils . addCopyButtons ) ( navigator . clipboard ) ;
630
+ ( 0 , _utils . removeExpiredEvents ) ( ) ;
631
631
( 0 , _utils . addAnchorLinks ) ( ) ;
632
632
( 0 , _utils . scrollSideMenu ) ( ) ;
633
633
// changelogFilter()
@@ -638,30 +638,30 @@ document.addEventListener("DOMContentLoaded", function() {
638
638
} , 150 ) ;
639
639
( 0 , _utils . header ) . unpin ( ) ;
640
640
}
641
- // (async function() {
642
- // try {
643
- // await (0, _search.setupSearch)();
644
- // mount(document.getElementById("search-button-container"), (0, _search.searchButton));
645
- // mount(document.getElementById("search-modal-container"), (0, _search.searchModal));
646
- // document.onkeydown = function(e) {
647
- // if (e.key == "Escape") (0, _search.searchModal).close();
648
- // if ((e.key == "k" || e.key == "K") && (e.metaKey || e.ctrlKey)) {
649
- // e.preventDefault();
650
- // e.stopPropagation();
651
- // (0, _search.searchModal).open();
652
- // }
653
- // if (e.key == "s" || e.key == "S") {
654
- // let searchBar = document.getElementById("hub-search-input");
655
- // if (searchBar && document.activeElement != searchBar) {
656
- // e.preventDefault();
657
- // searchBar.focus();
658
- // }
659
- // }
660
- // };
661
- // } catch (err) {
662
- // console.error("Could not setup search");
663
- // }
664
- // })();
641
+ ( async function ( ) {
642
+ try {
643
+ await ( 0 , _search . setupSearch ) ( ) ;
644
+ mount ( document . getElementById ( "search-button-container" ) , ( 0 , _search . searchButton ) ) ;
645
+ mount ( document . getElementById ( "search-modal-container" ) , ( 0 , _search . searchModal ) ) ;
646
+ document . onkeydown = function ( e ) {
647
+ if ( e . key == "Escape" ) ( 0 , _search . searchModal ) . close ( ) ;
648
+ if ( ( e . key == "k" || e . key == "K" ) && ( e . metaKey || e . ctrlKey ) ) {
649
+ e . preventDefault ( ) ;
650
+ e . stopPropagation ( ) ;
651
+ ( 0 , _search . searchModal ) . open ( ) ;
652
+ }
653
+ if ( e . key == "s" || e . key == "S" ) {
654
+ let searchBar = document . getElementById ( "hub-search-input" ) ;
655
+ if ( searchBar && document . activeElement != searchBar ) {
656
+ e . preventDefault ( ) ;
657
+ searchBar . focus ( ) ;
658
+ }
659
+ }
660
+ } ;
661
+ } catch ( err ) {
662
+ console . error ( "Could not setup search" ) ;
663
+ }
664
+ } ) ( ) ;
665
665
// Init feedback on docs pages
666
666
let feedback = document . getElementById ( "feedback-wrapper" ) ;
667
667
if ( feedback ) ( 0 , _feedback . createFeedbackElement ) ( feedback ) ;
@@ -912,25 +912,25 @@ class ModalSuggest {
912
912
project : "Spin" ,
913
913
link1 : [
914
914
"Install" ,
915
- "/spin/ install"
915
+ "/install"
916
916
] ,
917
917
link2 : [
918
918
"Quickstart" ,
919
- "/spin/ quickstart/ "
919
+ "/quickstart"
920
920
] ,
921
921
link3 : [
922
922
"Develop" ,
923
- "/spin/developing "
923
+ "/writing-apps "
924
924
] ,
925
925
link4 : [
926
926
"Deploy" ,
927
- "/spin/ deploying-to-fermyon/ "
927
+ "/deploying"
928
928
]
929
929
}
930
930
] ;
931
931
this . projectRecommendations = list ( "div.result-section" , ProjectRecommendations ) ;
932
932
this . projectRecommendations . update ( this . projectData ) ;
933
- this . el = el ( "div.result-section-container" , "Suggested Projects" , this . projectRecommendations ) ;
933
+ this . el = el ( "div.result-section-container" , this . projectRecommendations ) ;
934
934
}
935
935
}
936
936
class SearchModal {
@@ -939,7 +939,7 @@ class SearchModal {
939
939
this . modalSearchBar = el ( "input.modal-search-bar" , {
940
940
type : "text" ,
941
941
spellcheck : false ,
942
- placeholder : "Search Fermyon Developer Home " ,
942
+ placeholder : "Search Spin Docs " ,
943
943
oninput : ( function ( e ) {
944
944
this . updateSearch ( ) ;
945
945
} ) . bind ( this )
@@ -1069,15 +1069,18 @@ parcelHelpers.defineInteropFlag(exports);
1069
1069
parcelHelpers . export ( exports , "scrollSideMenu" , ( ) => scrollSideMenu ) ;
1070
1070
parcelHelpers . export ( exports , "addCopyButtons" , ( ) => addCopyButtons ) ;
1071
1071
parcelHelpers . export ( exports , "addAnchorLinks" , ( ) => addAnchorLinks ) ;
1072
+ parcelHelpers . export ( exports , "changelogFilter" , ( ) => changelogFilter ) ;
1073
+ parcelHelpers . export ( exports , "removeExpiredEvents" , ( ) => removeExpiredEvents ) ;
1072
1074
parcelHelpers . export ( exports , "header" , ( ) => header ) ;
1073
-
1074
- // init headroom for sticky menu on upscroll
1075
+ parcelHelpers . export ( exports , "blogAd" , ( ) => blogAd ) ;
1075
1076
var header = new Headroom ( document . querySelector ( "#topbar" ) , {
1076
1077
tolerance : 5 ,
1077
1078
offset : 80
1078
1079
} ) ;
1079
-
1080
- // init side menu accordions
1080
+ var blogAd = new Headroom ( document . querySelector ( "#blogSlogan" ) , {
1081
+ tolerance : 5 ,
1082
+ offset : 300
1083
+ } ) ;
1081
1084
function scrollSideMenu ( ) {
1082
1085
let sidemenu = document . querySelector ( "aside.menu" ) ;
1083
1086
if ( sidemenu ) {
@@ -1095,8 +1098,6 @@ function scrollSideMenu() {
1095
1098
}
1096
1099
}
1097
1100
}
1098
-
1099
- // copy to clipboard
1100
1101
const svgCopy = '<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"viewBox="0 0 448 512"><!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"/></svg>' ;
1101
1102
const svgCheck = '<svg aria-hidden="true" height="24" viewBox="0 0 16 16" version="1.1" width="24" data-view-component="true"><path fill-rule="evenodd" fill="#18d1a5" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg>' ;
1102
1103
const addCopyButtons = ( clipboard ) => {
@@ -1139,8 +1140,6 @@ const addCopyButtons = (clipboard)=>{
1139
1140
pre . appendChild ( button ) ;
1140
1141
} ) ;
1141
1142
} ;
1142
-
1143
- // add clickable #anchors to markdown titles
1144
1143
const addAnchorLinks = ( ) => {
1145
1144
const elementsToProcess = document . querySelectorAll ( ".content h1, .content h2, .content h3, .content h4, .content tr" ) ;
1146
1145
elementsToProcess . forEach ( ( element ) => {
@@ -1173,9 +1172,77 @@ const addAnchorLinks = ()=>{
1173
1172
} ) ;
1174
1173
} ) ;
1175
1174
} ;
1175
+ function removeExpiredEvents ( ) {
1176
+ let events = document . querySelectorAll ( ".community-highlight .carousel-cell" ) ;
1177
+ let eventsNumber = events . length ;
1178
+ if ( eventsNumber ) events . forEach ( ( k ) => {
1179
+ if ( k . dataset . expirydate ) {
1180
+ let eventExpiryDate = new Date ( k . dataset . expirydate ) ;
1181
+ if ( eventExpiryDate < Date . now ( ) ) {
1182
+ k . remove ( ) ;
1183
+ eventsNumber -- ;
1184
+ }
1185
+ }
1186
+ } ) ;
1187
+ else return ;
1188
+ if ( eventsNumber ) {
1189
+ var elem = document . querySelector ( '.main-carousel' ) ;
1190
+ var flkty = new Flickity ( elem , {
1191
+ // options
1192
+ cellAlign : 'left' ,
1193
+ contain : true
1194
+ } ) ;
1195
+ // element argument can be a selector string
1196
+ // for an individual element
1197
+ var flkty = new Flickity ( '.main-carousel' , {
1198
+ } ) ;
1199
+ } else {
1200
+ let eventsCarousel = document . querySelector ( ".community-highlight" ) ;
1201
+ eventsCarousel . innerHTML = `
1202
+ <article class="community-highlight carousel-cell">
1203
+ <a href="#">
1204
+ <event>
1205
+ <date>
1206
+ </date>
1207
+ <eventtitle>No upcoming Events
1208
+ </eventtitle>
1209
+ <p></p>
1210
+ <img class="event-logo" />
1211
+ </event>
1212
+ </a>
1213
+ </article>
1214
+ ` ;
1215
+ }
1216
+ }
1217
+ function changelogFilter ( ) {
1218
+ let changelogItems = Array . from ( document . querySelectorAll ( ".changelog-item-title" ) ) ;
1219
+ if ( changelogItems . length ) {
1220
+ let changelogTags = new Set ( [
1221
+ "all_features"
1222
+ ] ) ;
1223
+ changelogItems . map ( ( k ) => {
1224
+ JSON . parse ( k . dataset . tags ) . forEach ( ( item ) => changelogTags . add ( item ) ) ;
1225
+ } ) ;
1226
+ changelogTags = Array . from ( changelogTags ) ;
1227
+ let changelogSelect = document . getElementById ( "changelog-select" ) ;
1228
+ changelogTags . map ( ( k ) => {
1229
+ let opt = document . createElement ( 'option' ) ;
1230
+ opt . value = k ;
1231
+ opt . innerHTML = k ;
1232
+ changelogSelect . appendChild ( opt ) ;
1233
+ } ) ;
1234
+ changelogSelect . addEventListener ( "change" , ( ) => {
1235
+ let selected = changelogSelect . value ;
1236
+ changelogItems . map ( ( k ) => {
1237
+ if ( selected != "all_features" && ! k . dataset . tags . includes ( selected ) ) {
1238
+ console . log ( k . parentElement ) ;
1239
+ k . parentElement . style . display = "none" ;
1240
+ } else k . parentElement . style . display = "flex" ;
1241
+ } ) ;
1242
+ } ) ;
1243
+ }
1244
+ }
1176
1245
1177
-
1178
- // tabs for multiple languages
1179
1246
} , { "@parcel/transformer-js/src/esmodule-helpers.js" :"j7FRh" } ] , "1bdXi" :[ function ( require , module , exports , __globalThis ) {
1180
1247
var parcelHelpers = require ( "@parcel/transformer-js/src/esmodule-helpers.js" ) ;
1181
1248
parcelHelpers . defineInteropFlag ( exports ) ;
@@ -1318,8 +1385,6 @@ function filterMultitabQuery() {
1318
1385
return multitabQuery ;
1319
1386
}
1320
1387
1321
-
1322
- // user feedback thumbsup/down vote
1323
1388
} , { "@parcel/transformer-js/src/esmodule-helpers.js" :"j7FRh" } ] , "c5ZDr" :[ function ( require , module , exports , __globalThis ) {
1324
1389
var parcelHelpers = require ( "@parcel/transformer-js/src/esmodule-helpers.js" ) ;
1325
1390
parcelHelpers . defineInteropFlag ( exports ) ;
0 commit comments