@skhemata/skhemata-faq
Version:
Skhemata FAQ Web Component. This web component provides website FAQ functionality with question and answer style of FAQ.
162 lines (156 loc) • 4.84 kB
JavaScript
import { __decorate } from "tslib";
/**
*
* Lit Faq parent component to handle routing
*
* */
import { SkhemataBase, property, html, css } from '@skhemata/skhemata-base';
// Import element dependencies
import { SkhemataFaqList } from './component/SkhemataFaqList';
import { SkhemataFaqPost } from './component/SkhemataFaqPost';
import { SkhemataFaqSearch } from './component/SkhemataFaqSearch';
import { SkhemataFaqCategories } from './component/SkhemataFaqCategories';
import { translationEngDefault } from './translation/SkhemataFaq/eng';
/**
* Use the customElement decorator to define your class as
* a custom element. Registers <my-element> as an HTML tag.
*/
export class SkhemataFaq extends SkhemataBase {
constructor() {
super();
this.apiWordpress = {
url: '',
};
this.faqPagePath = '';
this.postsPerPage = 20;
this.pagerType = "infinite";
this.slug = '';
this.translationData = {
eng: translationEngDefault,
};
if (window.history.scrollRestoration) {
window.history.scrollRestoration = 'manual';
}
}
static get scopedElements() {
return {
'skhemata-faq-list': SkhemataFaqList,
'skhemata-faq-post': SkhemataFaqPost,
'skhemata-faq-search': SkhemataFaqSearch,
'skhemata-faq-categories': SkhemataFaqCategories,
};
}
static get styles() {
return [
...super.styles,
css `
:host {
display: block;
padding: 25px 0;
color: var(--skhemata-faq-text-color);
}
screen and (max-width: 430px) {
:host {
padding: 25px 20px;
}
}
.mr {
margin-right: 1.5rem;
}
.my {
margin-top: 0.5rem;
margin-bottom: 1.5rem;
}
.back-button {
margin: 0 0 1em;
}
.columns {
width: 100%;
margin: 0px;
}
.columns.search,
.columns.search .column {
margin-top: 0px;
margin-bottom: 0px;
padding-top: 0px;
padidng-bottom: 0px;
}
`,
];
}
handleNavigate(e) {
this.slug = e.detail.slug || '';
// const search = <SkhemataFaqSearch> this.shadowRoot.getElementById('search');
// search.searchTerm = '';
}
handleGoBack() {
this.slug = '';
this.dispatchEvent(new CustomEvent('navigate', {
detail: {
slug: '',
},
}));
}
render() {
return html `
<div class="columns search">
<div class="column">
<skhemata-faq-search
id="search"
.faqPagePath=${this.faqPagePath}
.translationData=${this.translationData}
></skhemata-faq-search>
</div>
</div>
<div class="columns is-desktop">
<div class="column is-three-quarters-desktop">
${this.slug
? html `
<skhemata-faq-post
.apiWordpress=${this.apiWordpress}
.faqPagePath=${this.faqPagePath}
slug=${this.slug}
=${this.handleNavigate}
.translationData=${this.translationData}
></skhemata-faq-post>
`
: html `
<skhemata-faq-list
.apiWordpress=${this.apiWordpress}
.faqPagePath=${this.faqPagePath}
.postsPerPage=${this.postsPerPage}
.pagerType=${this.pagerType}
=${this.handleNavigate}
.translationData=${this.translationData}
></skhemata-faq-list>
`}
</div>
<skhemata-faq-categories
class="column"
.apiWordpress=${this.apiWordpress}
.faqPagePath=${this.faqPagePath}
.translationData=${this.translationData}
></skhemata-faq-categories>
</div>
`;
}
}
__decorate([
property({ type: Object, attribute: 'api-wordpress' })
], SkhemataFaq.prototype, "apiWordpress", void 0);
__decorate([
property({ type: String, attribute: 'faq-page-path' })
], SkhemataFaq.prototype, "faqPagePath", void 0);
__decorate([
property({ type: Number, attribute: 'posts-per-page' })
], SkhemataFaq.prototype, "postsPerPage", void 0);
__decorate([
property({ type: String, attribute: 'pager-type' })
], SkhemataFaq.prototype, "pagerType", void 0);
__decorate([
property({ type: String })
], SkhemataFaq.prototype, "slug", void 0);
__decorate([
property({ type: Object })
], SkhemataFaq.prototype, "translationData", void 0);
//# sourceMappingURL=SkhemataFaq.js.map