From 7aa203150fc1a2ec79c681c13f0d486d531746eb Mon Sep 17 00:00:00 2001 From: George Halkiadakis Date: Sun, 12 Mar 2023 23:57:48 +0200 Subject: error pages; js system to support back/front-end --- html/assets/js/plugins/expand.js | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 html/assets/js/plugins/expand.js (limited to 'html/assets/js/plugins/expand.js') diff --git a/html/assets/js/plugins/expand.js b/html/assets/js/plugins/expand.js new file mode 100644 index 0000000..533e978 --- /dev/null +++ b/html/assets/js/plugins/expand.js @@ -0,0 +1,38 @@ +$$plugins.define('expand', ['domHelper'], function (element, options, $) { + //triggerButton: data-trigger-expand + //content to be initialized: data-content-expand + const triggerButton = element.querySelector('[data-trigger-expand]'), + triggerButtonId = triggerButton.getAttribute('data-trigger-expand'), + content = $(`[data-content-expand='${triggerButtonId}']`); + + var $triggerButton = $(triggerButton); + + $triggerButton.on('click', function (e) { + e.preventDefault(); + if ($triggerButton.hasClass('active')) { + content.slideUp(300, function () { + $triggerButton.removeClass('active'); + content.removeAttr('style'); + }); + } else { + $triggerButton.addClass('active'); + content.slideDown(300, function () { + if (content.find('.scrollbarShadow').length > 0 && !content.find('.scrollbarShadow').hasClass('initialized')) { + content.find('.scrollbarShadow').addClass('initialized'); + } + }); + } + }); + + if (options.closeOnCLickAway == true) { + document.addEventListener('click', function (event) { + if (!$triggerButton.hasClass('active') || element == event.target || $(event.target).parents().contains(element)) { + return; + } + content.slideUp(300, function () { + $triggerButton.removeClass('active'); + content.removeAttr('style'); + }); + }); + } +}); -- cgit v1.2.3