blob: a9972ff2328898e58cfa775bb1b5188b294e5a76 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
const scrollOffset = 90;
const tocifyOptions = {
context: '.docs-container article',
selectors: 'h2,h3,h4',
smoothScroll: true,
scrollTo: 90,
extendPage: true,
theme: 'jqueryui',
hashGenerator: function(txt, elem) {
return txt.replace(/ /g, '').replace(/\n/g, '') + "-" + Math.random().toString(36).substring(7);
}
}
function restApiTabs() {
var allCards = $('.card-text');
allCards.hide();
$('.card').click(function() {
var tile = $(this).children('.card-text');
tile.show();
$(this).click(function() {
allCards.hide();
});
});
}
function tableOfContents() {
$("#toc").tocify(tocifyOptions);
}
function popovers() {
$('[data-toggle="popover"]').popover({
html: true,
placement: 'top'
});
$('.popover-dismiss').popover({
trigger: 'focus'
});
}
function sidebarExpand() {
function openAccordionElement(el) {
var selectedElement = `#${el}`;
$(selectedElement).collapse('show');
$('aside.sidebar-nav').scrollTo(selectedElement);
}
function addElement(el) {
LS['pulsar-sidebar-selected'] = el;
}
function clearElements() {
LS['pulsar-sidebar-selected'] = null;
}
var LS = window.localStorage;
var selected = LS['pulsar-sidebar-selected'] || null;
console.log("Initial selected: " + selected);
if (selected != null) {
openAccordionElement(selected);
}
var tabs = $("[id^='collapse']");
tabs.on('shown.bs.collapse', function() {
addElement(this.id);
});
tabs.on('hidden.bs.collapse', function() {
clearElements();
});
}
$(function() {
sidebarExpand();
popovers();
tableOfContents();
restApiTabs();
});