1jQuery(function ($) { 2 class TextUnfoldWidgetHandlerClass extends elementorModules.frontend.handlers.Base { 3 getDefaultSettings() { 4 return { 5 selectors: { 6 readMoreSelector: '.fswp-elt--read-more', 7 }, 8 }; 9 } 10 11 getDefaultElements() { 12 const selectors = this.getSettings('selectors'); 13 return { 14 $readMoreSelector: this.$element.find(selectors.readMoreSelector), 15 }; 16 } 17 18 findElement(selector) { 19 const $mainElement = this.$element; 20 return $mainElement.find(selector).filter(function () { 21 return $(this).closest('.elementor-element').is($mainElement); 22 }); 23 } 24 25 bindEvents() { 26 let content = this.findElement('.fswp-elt--read-more-content'); 27 let readMoreButton = this.elements.$readMoreSelector; 28 let readMoreText = this.elements.$readMoreSelector.data('more'); 29 let readLessText = this.elements.$readMoreSelector.data('less'); 30 let handler = this; 31 32 readMoreButton.on('click', function (e) { 33 e.preventDefault(); 34 let containerHeight = handler.elements.$readMoreSelector.data('height'); 35 $(this).toggleClass('more'); 36 if (!$(this).hasClass('more')) { 37 let orginalHeight = content.css('height', 'auto').height(); 38 content.height(containerHeight); 39 $(content).animate({ 40 height: orginalHeight 41 }, 200); 42 $(this).find('.fswp-elt--read-more-text').html(readLessText); 43 if ($(this).hasClass('show-icon')) { 44 $(this).find('.fswp-elt--read-more-icon.more').hide(); 45 $(this).find('.fswp-elt--read-more-icon.less').show(); 46 } 47 } else { 48 content.animate({ 49 height: containerHeight, 50 }, 200); 51 $(this).find('.fswp-elt--read-more-text').html(readMoreText); 52 if ($(this).hasClass('show-icon')) { 53 $(this).find('.fswp-elt--read-more-icon.more').show(); 54 $(this).find('.fswp-elt--read-more-icon.less').hide(); 55 } 56 } 57 }); 58 } 59 } 60 61 62 if (window.elementorFrontend) { 63 elementorFrontend.elementsHandler.attachHandler('fswp-text-unfold', TextUnfoldWidgetHandlerClass); 64 if (elementorFrontend.isEditMode()) { 65 elementor.hooks.addAction('panel/open_editor/widget/fswp-text-unfold', function (panel, model, view) { 66 let height = model.attributes.settings.attributes.height['size'] 67 panel.$el.on('click change keyup keydown input', function () { 68 let newHeight = model.attributes.settings.attributes.height['size'] 69 if (height !== newHeight) { 70 height = newHeight; 71 $(view.el).find('.fswp-elt--read-more').data('height', height); 72 if ($(view.el).find('.fswp-elt--read-more').hasClass('more')) { 73 $(view.el).find('.fswp-elt--read-more-content').height(height); 74 } 75 } 76 }); 77 }); 78 } 79 } 80 81}); 82 83 84
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.