Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,9 @@ packages/core/src/lib/markdown-it/plugins/*

# --- packages/vue-components ---

packages/vue-components/dist
packages/vue-components/src/directives/Closeable.js
packages/vue-components/src/directives/Float.js
packages/vue-components/src/utils/NodeList.js
packages/vue-components/src/utils/utils.js

# yuche/vue-strap
packages/vue-components/src/main.js
packages/vue-components/src/Navbar.vue
packages/vue-components/src/Tab.vue
packages/vue-components/src/TabGroup.vue
packages/vue-components/src/Tabset.vue
packages/vue-components/src/Typeahead.vue

# --- packages/vue-components end ---
25 changes: 0 additions & 25 deletions .stylelintignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,3 @@
**/_site/**/*.css
packages/cli/test/functional/**/expected/**/*.css
packages/vue-components/**/*.css

# --- packages/vue-components .vue files ---

packages/vue-components/src/Navbar.vue
packages/vue-components/src/Panel.vue
packages/vue-components/src/Pic.vue
packages/vue-components/src/Retriever.vue
packages/vue-components/src/Searchbar.vue
packages/vue-components/src/SearchbarPageItem.vue
packages/vue-components/src/SiteNav.vue
packages/vue-components/src/Submenu.vue
packages/vue-components/src/Tab.vue
packages/vue-components/src/TabGroup.vue
packages/vue-components/src/Tabset.vue
packages/vue-components/src/Thumbnail.vue
packages/vue-components/src/TipBox.vue
packages/vue-components/src/Trigger.vue
packages/vue-components/src/panels/MinimalPanel.vue
packages/vue-components/src/panels/NestedPanel.vue
packages/vue-components/src/panels/PanelSwitch.vue
packages/vue-components/src/questions/QOption.vue
packages/vue-components/src/questions/Question.vue
packages/vue-components/src/questions/Quiz.vue

# --- packages/vue-components end ---
87 changes: 48 additions & 39 deletions packages/vue-components/src/Navbar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,21 @@
</div>
</div>
</nav>
<div ref="lowerNavbar" v-show="isLowerNavbarShowing" class="lower-navbar-container">
<div
v-show="isLowerNavbarShowing"
ref="lowerNavbar"
class="lower-navbar-container"
>
<slot name="lower-navbar">
<site-nav-button />
<page-nav-button />
<site-nav-button />
<page-nav-button />
</slot>
</div>
</div>
</template>

<script>
import $ from './utils/NodeList.js';
import $ from './utils/NodeList';
import { toBoolean } from './utils/utils';
import normalizeUrl from './utils/urls';

Expand Down Expand Up @@ -102,10 +106,11 @@ export default {
},
methods: {
toggleCollapse(e) {
e && e.preventDefault();
if (e) { e.preventDefault(); }
this.collapsed = !this.collapsed;
},
// Splits a normalised URL into its parts, e.g http://site.org/foo/bar/index.html -> ['foo','bar','index.html']
// Splits a normalised URL into its parts,
// e.g http://site.org/foo/bar/index.html -> ['foo','bar','index.html']
splitUrl(url) {
const u = new URL(normalizeUrl(url));
return `${u.pathname}`.substr(1).split('/');
Expand All @@ -116,7 +121,7 @@ export default {
if (hParts.length !== uParts.length) {
return false;
}
for (let i = 0; i < hParts.length - 1; i++) {
for (let i = 0; i < hParts.length - 1; i += 1) {
if (hParts[i] !== uParts[i]) {
return false;
}
Expand All @@ -129,9 +134,8 @@ export default {
if (uParts.length <= hParts.length) {
return false;
}
for (let i = 0; i < hParts.length; i++) {
for (let i = 0; i < hParts.length; i += 1) {
if (hParts[i] !== uParts[i]) {
console.log(`${hParts[i]} ${uParts[i]}`);
return false;
}
}
Expand All @@ -150,7 +154,7 @@ export default {
let el = a.parentElement;
while (el !== li) {
if (el.classList.contains('dropdown-submenu')) {
$(el).findChildren('a').each(a => a.classList.add('dropdown-current'));
$(el).findChildren('a').each(aChild => aChild.classList.add('dropdown-current'));
}
el = el.parentElement;
}
Expand All @@ -159,14 +163,17 @@ export default {
const defHlMode = this.defaultHighlightOn;
const navLis = Array.from(this.$el.querySelector('.navbar-nav').children);
// attempt an exact match first
for (const li of navLis) {
for (let i = 0; i < navLis.length; i += 1) {
const li = navLis[i];
const standardLinks = [li];
const navLinks = Array.from(li.querySelectorAll('a.nav-link'));
const dropdownLinks = Array.from(li.querySelectorAll('a.dropdown-item'));
const allNavLinks = standardLinks.concat(navLinks).concat(dropdownLinks).filter(a => a.href);
for (const a of allNavLinks) {
for (let j = 0; j < allNavLinks.length; j += 1) {
const a = allNavLinks[j];
const hlMode = a.getAttribute('highlight-on') || defHlMode;
if (hlMode === 'none') {
// eslint-disable-next-line no-continue
continue;
}
// terminate early on an exact match
Expand All @@ -178,16 +185,20 @@ export default {
}
}
// fallback to user preference, otherwise
for (const li of navLis) {
for (let i = 0; i < navLis.length; i += 1) {
const li = navLis[i];
const standardLinks = [li];
const navLinks = Array.from(li.querySelectorAll('a.nav-link'));
const dropdownLinks = Array.from(li.querySelectorAll('a.dropdown-item'));
const allNavLinks = standardLinks.concat(navLinks).concat(dropdownLinks).filter(a => a.href);
for (const a of allNavLinks) {
for (let j = 0; j < allNavLinks.length; j += 1) {
const a = allNavLinks[j];
const hlMode = a.getAttribute('highlight-on') || defHlMode;
if (hlMode === 'none') {
// eslint-disable-next-line no-continue
continue;
}
// Ignores invalid navbar highlight rule
if (hlMode === 'sibling-or-child') {
if (this.isSibling(url, a.href) || this.isChild(url, a.href)) {
li.classList.add('current');
Expand All @@ -206,8 +217,6 @@ export default {
this.addClassIfDropdown(dropdownLinks, a, li);
return;
}
} else {
console.log('Ignoring invalid navbar highlight rule');
}
}
}
Expand Down Expand Up @@ -240,7 +249,7 @@ export default {
});
});
$(this.$el).on('click', 'li:not(.dropdown)>a', (e) => {
if (e.target.classList.contains('submenu-toggle')) { return }
if (e.target.classList.contains('submenu-toggle')) { return; }
setTimeout(() => { this.collapsed = true; }, 200);
}).onBlur((e) => {
if (!this.$el.contains(e.target)) { this.collapsed = true; }
Expand All @@ -262,30 +271,30 @@ export default {
</script>

<style scoped>
@media (max-width: 767px) {
.navbar-collapse {
max-height: 80vh !important;
overflow-x: hidden !important;
overflow-y: scroll !important;
@media (max-width: 767px) {
.navbar-collapse {
max-height: 80vh !important;
overflow-x: hidden !important;
overflow-y: scroll !important;
}
}
}

.navbar-fixed {
position: fixed;
width: 100%;
z-index: 1000;
}
.navbar-fixed {
position: fixed;
width: 100%;
z-index: 1000;
}

>>> .dropdown-current {
color: #fff !important;
background: #007bff;
}
>>> .dropdown-current {
color: #fff !important;
background: #007bff;
}

.lower-navbar-container {
background-color: #fff;
border-bottom: 1px solid #c1c1c1;
height: 50px;
width: 100%;
position: relative;
}
.lower-navbar-container {
background-color: #fff;
border-bottom: 1px solid #c1c1c1;
height: 50px;
width: 100%;
position: relative;
}
</style>
30 changes: 15 additions & 15 deletions packages/vue-components/src/Searchbar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -255,21 +255,21 @@ export default {
</script>

<style>
.search-dropdown-menu {
min-width: 30em;
max-height: 30em;
overflow-y: scroll;
}
.search-dropdown-menu {
min-width: 30em;
max-height: 30em;
overflow-y: scroll;
}

.dropdown-menu > li > a {
cursor: pointer;
}
.dropdown-menu > li > a {
cursor: pointer;
}

@media screen and (max-width: 768px) {
.search-dropdown-menu {
min-width: auto;
max-height: 30em;
overflow-y: scroll;
}
}
@media screen and (max-width: 768px) {
.search-dropdown-menu {
min-width: auto;
max-height: 30em;
overflow-y: scroll;
}
}
</style>
52 changes: 26 additions & 26 deletions packages/vue-components/src/SearchbarPageItem.vue
Original file line number Diff line number Diff line change
Expand Up @@ -84,35 +84,35 @@ export default {
</script>

<style scoped>
.mark {
padding: 0 !important;
}
.mark {
padding: 0 !important;
}

.heading {
padding: 0 0 0.1rem 0.2rem;
}
.heading {
padding: 0 0 0.1rem 0.2rem;
}

.heading-text {
display: inline-block;
width: 40%;
white-space: normal;
vertical-align: top;
}
.heading-text {
display: inline-block;
width: 40%;
white-space: normal;
vertical-align: top;
}

.heading-text-items {
display: inline-block;
width: calc(60% - 0.7rem);
white-space: normal;
border-left: 1px solid #ddd;
padding-left: 0.5rem;
}
.heading-text-items {
display: inline-block;
width: calc(60% - 0.7rem);
white-space: normal;
border-left: 1px solid #ddd;
padding-left: 0.5rem;
}

.page-title {
font-size: 1.05rem;
font-weight: bold;
}
.page-title {
font-size: 1.05rem;
font-weight: bold;
}

.page-headings-separator {
margin: 0.2rem 0;
}
.page-headings-separator {
margin: 0.2rem 0;
}
</style>
Loading