From 2b6970d33afd75be5bfef951dc3691d492004d43 Mon Sep 17 00:00:00 2001 From: George Halkiadakis Date: Tue, 18 Apr 2023 01:11:37 +0300 Subject: admin back-office environment (skeleton); admin categories --- .../js/_dependency-control/plugins/expand.js | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 public/assets/js/_dependency-control/plugins/expand.js (limited to 'public/assets/js/_dependency-control/plugins/expand.js') diff --git a/public/assets/js/_dependency-control/plugins/expand.js b/public/assets/js/_dependency-control/plugins/expand.js new file mode 100644 index 0000000..533e978 --- /dev/null +++ b/public/assets/js/_dependency-control/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