function filtersForm(savedFilters) {
const activeFilters = savedFilters || [];
let newForm;
const removeAddFilterMenu = () => {
const selectedFilter = finalForm.querySelector('.pm-filter-selected');
selectedFilter.innerHTML = '';
newForm = null;
return selectedFilter;
};
const removeFilter = () => {};
const addFilter = filterName => {
const selectedFilter = removeAddFilterMenu();
newForm = filters[filterName].function;
selectedFilter.appendChild(newForm);
const submitFilter = e => {
if (newForm && newForm.value) {
activeFilters.push({
name: filterName,
value: newForm.value
});
}
console.debug(activeFilters);
removeAddFilterMenu();
};
newForm.addEventListener('submit', submitFilter, {
once: true,
passive: true
});
};
const create_filter_html = (filterName, properties) => {
return html.fragment`
<li class="pm-filter-option pm-filter-time" onclick=${
e => {
addFilter(filterName);
}
}>
<div class="pm-filter-title">${filterName}</div>
<div class="pm-filter-text">${properties.text}</div>
</li>
`;
};
const finalForm = html`
<div class="pm-filter-panel">
<div class="pm-filter-list">
<p class="pm-filter-list-title">Active filters</p>
<div class="pm-filter-active">
${activeFilters.map(activeFilter =>
create_active_filter_html(activeFilter)
)}
</div>
<!--div class="pm-filter-add" onclick=${addFilter}>click to add filter...</div-->
<ul class="pm-filter-options">
${Object.keys(filters).map(key =>
create_filter_html(key, filters[key])
)}
</ul>
</div>
<div class="pm-filter-selected"></div>
</div>
`;
return finalForm;
}