dialog.views.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /**
  2. * DO NOT EDIT THIS FILE.
  3. * See the following change record for more information,
  4. * https://www.drupal.org/node/2815083
  5. * @preserve
  6. **/
  7. (function ($, Drupal, drupalSettings) {
  8. function handleDialogResize(e) {
  9. var $modal = $(e.currentTarget);
  10. var $viewsOverride = $modal.find('[data-drupal-views-offset]');
  11. var $scroll = $modal.find('[data-drupal-views-scroll]');
  12. var offset = 0;
  13. var modalHeight = void 0;
  14. if ($scroll.length) {
  15. $modal.closest('.views-ui-dialog').addClass('views-ui-dialog-scroll');
  16. $scroll.css({ overflow: 'visible', height: 'auto' });
  17. modalHeight = $modal.height();
  18. $viewsOverride.each(function () {
  19. offset += $(this).outerHeight();
  20. });
  21. var scrollOffset = $scroll.outerHeight() - $scroll.height();
  22. $scroll.height(modalHeight - offset - scrollOffset);
  23. $modal.css('overflow', 'hidden');
  24. $scroll.css('overflow', 'auto');
  25. }
  26. }
  27. Drupal.behaviors.viewsModalContent = {
  28. attach: function attach(context) {
  29. $('body').once('viewsDialog').on('dialogContentResize.viewsDialog', '.ui-dialog-content', handleDialogResize);
  30. $(context).find('.scroll').once('detailsUpdate').on('click', 'summary', function (e) {
  31. $(e.currentTarget).trigger('dialogContentResize');
  32. });
  33. },
  34. detach: function detach(context, settings, trigger) {
  35. if (trigger === 'unload') {
  36. $('body').removeOnce('viewsDialog').off('.viewsDialog');
  37. }
  38. }
  39. };
  40. })(jQuery, Drupal, drupalSettings);