front_findstr-search_src_fields.js
document.addEventListener('findstrLoaded', function (e) {
const findstr = window.findstr || {};
const { getField } = window.findstr.helpers;
findstr.getField = getField;
/**
* Translating field value labels
*/
findstr.hooks.addFilter(
'findstrFieldValueLabel',
'findstrTranslateFieldValueLabel',
function (key, field, selected) {
const source = field?.options?.sourceName || 'findstr';
if (
findstr.translations[source] &&
findstr.translations[source][key]
) {
return findstr.translations[source][key];
}
return key;
}
);
});
function initFields(findstr) {
//get all findstr items
const items = document.querySelectorAll('[data-findstr]');
findstr.groups = {};
const { itemsToFields } = window.findstr.helpers;
itemsToFields(items, findstr);
//for each group, get the default query
Object.keys(findstr.groups).forEach((group) => {
const resultWrapper = document.querySelector(
`[data-findstr-results="${group}"]`
);
if (resultWrapper) {
findstr.groups[group].defaultQuery = JSON.parse(
resultWrapper.dataset.findstrQuery
);
}
});
/**
* Triggered when the fields are initialized.
* @hook findstrFieldsInit
*
* @param {Object} groups - The groups object
*/
findstr.hooks.doAction('findstrFieldsInit', findstr.groups);
}
document.addEventListener('findstrInit', function (e) {
const findstr = e.detail;
initFields(findstr);
});