47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
// Helper function to retrieve options from element attributes
|
|
export const getOptions = function(obj) {
|
|
const options = Array.prototype.reduce.call(
|
|
obj,
|
|
(acc, attribute) => {
|
|
const option = attribute.name.match(/data-simplebar-(.+)/);
|
|
if (option) {
|
|
const key = option[1].replace(/\W+(.)/g, (x, chr) => chr.toUpperCase());
|
|
switch (attribute.value) {
|
|
case 'true':
|
|
acc[key] = true;
|
|
break;
|
|
case 'false':
|
|
acc[key] = false;
|
|
break;
|
|
case undefined:
|
|
acc[key] = true;
|
|
break;
|
|
default:
|
|
acc[key] = attribute.value;
|
|
}
|
|
}
|
|
return acc;
|
|
},
|
|
{}
|
|
);
|
|
return options;
|
|
};
|
|
|
|
export function getElementWindow(element) {
|
|
if (
|
|
!element ||
|
|
!element.ownerDocument ||
|
|
!element.ownerDocument.defaultView
|
|
) {
|
|
return window;
|
|
}
|
|
return element.ownerDocument.defaultView;
|
|
}
|
|
|
|
export function getElementDocument(element) {
|
|
if (!element || !element.ownerDocument) {
|
|
return document;
|
|
}
|
|
return element.ownerDocument;
|
|
}
|