eleventy-plugin-filter-page 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -5
- package/dist/ecf.filter.min.js +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
package/dist/ecf.filter.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
if(typeof ecfData
|
|
1
|
+
if(globalThis.ecfData,"undefined"==typeof ecfData)throw alert('"ecfData" variable must be defined'),new Error("Global `ecfData` must be defined before this script runs.");if("undefined"==typeof filterConfig)throw alert('"filterConfig" variable must be defined'),new Error("Global `filterConfig` must be defined before this script runs.");function mergeFormData(e,t){for(var[r,n]of t.entries())e.append(r,n);return e}function $(e){return 1==(e=document.querySelectorAll(e)).length?e[0]:e}let defaultFormId="ecf-filters",ecfForms=filterConfig.filter(e=>e.form).map(e=>e.form).concat([defaultFormId]).map(e=>document.getElementById(e)),formTemplateValidation=ecfForms.every(e=>null!=e&&"form"===e.tagName.toLowerCase()),idToElementMap=(formTemplateValidation||alert("Improperly configured template. All <form> elements with IDs from the filter configuration file must exist in the layout."),new Map);async function preProcessFilters(){var e,t,r,n={};for([e,t]of ecfForms.reduce((e,t)=>mergeFormData(e,new FormData(t)),new FormData).entries())"ecf-c"==e.slice(0,5)?(n[(r=e.split(" "))[1]]||(n[r[1]]=[]),"on"==t&&n[r[1]].push(r[2])):"ecf-t"==e.slice(0,5)?(r=e.split(" "),0<t.length&&(n[r[1]]=t)):n[e]=t;return n}async function applyFilterValues(n){return ecfData.filter(function(r){return filterConfig.map(t=>{var e=n[t.field]||!1;if(!e)return!0;switch(t.type){case"radio":return r[t.field]===e;case"checkbox":return e.every(e=>r[t.field].includes(e));case"text":return-1!==r[t.field].toLowerCase().indexOf(e);default:return!1}}).every(e=>e)})}async function hideFilteredData(e){idToElementMap.values().forEach(e=>e.style.display="none"),e.forEach(e=>{idToElementMap.get(e._id).style.display=""})}function handleFilterInput(){preProcessFilters().then(applyFilterValues).then(hideFilteredData)}$("[data-search-id]").forEach(e=>{idToElementMap.set(e.getAttribute("data-search-id"),e)}),globalThis.selectAllFilterGroup=function(t){"checkbox"!=filterConfig.find(e=>e.field==t).type&&alert("Misconfiguration of Filters. Select All button must only be present on checkbox filters."),ecfForms.forEach(e=>{e.querySelectorAll('input[type="checkbox"][name^="ecf-c '+t+'"]').forEach(e=>{e.checked=!0})}),handleFilterInput()},globalThis.clearFilterGroup=function(t){var e=filterConfig.find(e=>e.field==t);"radio"==e.type&&ecfForms.forEach(e=>{e.querySelectorAll('input[type="radio"][name="'+t+'"]').forEach(e=>{e.checked=!1})}),"checkbox"==e.type&&ecfForms.forEach(e=>{e.querySelectorAll('input[type="checkbox"][name^="ecf-c '+t+'"]').forEach(e=>{e.checked=!1})}),handleFilterInput()},ecfForms.forEach(e=>{e.addEventListener("input",handleFilterInput),e.addEventListener("onchange",handleFilterInput),e.addEventListener("submit",e=>{e.preventDefault()})});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eleventy-plugin-filter-page",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "11ty plugin to create collection filter pages",
|
|
5
5
|
"main": "dist/ecf.plugin.js",
|
|
6
6
|
"files": [
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"scripts": {
|
|
19
19
|
"lint": "eslint",
|
|
20
|
-
"build": "rm -rf dist && mkdir -p dist && cp -R src/. dist/ &&
|
|
20
|
+
"build": "rm -rf dist && mkdir -p dist && cp -R src/. dist/ && uglifyjs dist/ecf.filter.js -c -m -o dist/ecf.filter.min.js",
|
|
21
21
|
"prepublishOnly": "npm run build"
|
|
22
22
|
},
|
|
23
23
|
"homepage": "https://gitlab.com/excitedfellas/eleventy-plugin-filter-page",
|
|
@@ -33,6 +33,6 @@
|
|
|
33
33
|
"@eslint/js": "^9.39.2",
|
|
34
34
|
"eslint": "^9.39.2",
|
|
35
35
|
"globals": "^17.0.0",
|
|
36
|
-
"
|
|
36
|
+
"uglify-js": "^3.19.3"
|
|
37
37
|
}
|
|
38
38
|
}
|