1(function ($) { 2 'use strict'; 3 4 var getElementSettings = function ($element) { 5 var elementSettings = {}, 6 modelCID = $element.data('model-cid'); 7 8 if ( isEditMode && modelCID ) { 9 var settings = lealesFrontend.config.elements.data[ modelCID ], 10 settingsKeys = lealesFrontend.config.elements.keys[ settings.attributes.widgetType || settings.attributes.elType ]; 11 12 jQuery.each( settings.getActiveControls(), function( controlKey ) { 13 if ( -1 !== settingsKeys.indexOf( controlKey ) ) { 14 elementSettings[ controlKey ] = settings.attributes[ controlKey ]; 15 } 16 } ); 17 } else { 18 elementSettings = $element.data('settings') || {}; 19 } 20 21 return elementSettings; 22 }; 23 24 var isEditMode = false; 25 26 var CustomCursorHandler = function ($scope, $) { 27 var elementSettings = getElementSettings( $scope ), 28 custom_cursor_enable = elementSettings.pp_custom_cursor_enable, 29 columnId = $scope.data('id'), 30 cursorType = elementSettings.pp_custom_cursor_type, 31 cursorIcon = elementSettings.pp_custom_cursor_icon, 32 cursorText = elementSettings.pp_custom_cursor_text, 33 cursorTarget = elementSettings.pp_custom_cursor_target; 34 35 if ( 'yes' === custom_cursor_enable ) { 36 37 var selector = ".leales-element-" + columnId, 38 $selector = $(".leales-element-" + columnId); 39 40 if ( 'selector' === cursorTarget ) { 41 selector = elementSettings.pp_custom_cursor_css_selector, 42 $selector = $scope.find(selector); 43 } 44 45 if ( 'image' === cursorType ) { 46 47 $("#style-" + columnId).remove(); 48 49 if ( cursorIcon.url === undefined || cursorIcon.url === '' ) { 50 return; 51 } 52 53 $('head').append('<style type="text/css" id="style-' + columnId + '">' + selector + ', ' + selector + ' * { cursor: url(' + cursorIcon.url + '), auto !important; }</style>'); 54 55 } else if ( 'follow-image' === cursorType ) { 56 57 $("#style-" + columnId).remove(); 58 59 if ( cursorIcon.url === undefined || cursorIcon.url === '' ) { 60 return; 61 } 62 63 $scope.append('<img src="' + cursorIcon.url + '" alt="Cursor Image" class="pp-cursor-pointer">'); 64 65 $selector.mouseenter(function() { 66 $(".pp-custom-cursor").removeClass("pp-cursor-active"); 67 $scope.addClass( "pp-cursor-active" ); 68 69 $(document).mousemove(function(e){ 70 $('.pp-cursor-pointer',this).offset({ 71 left: e.pageX + 0, 72 top: e.pageY + 0 73 }); 74 }); 75 }).mouseleave(function() { 76 $scope.removeClass( "pp-cursor-active" ); 77 }); 78 79 } else if ( 'follow-text' === cursorType ) { 80 81 $("#style-" + columnId).remove(); 82 83 $scope.append('<div class="pp-cursor-pointer pp-cursor-pointer-text">' + cursorText + '</div>'); 84 85 $selector.mouseenter(function() { 86 $(".pp-custom-cursor").removeClass("pp-cursor-active"); 87 $scope.addClass( "pp-cursor-active" ); 88 89 var cursor = $scope.find('.pp-cursor-pointer'), 90 width = cursor.outerWidth(), 91 height = cursor.outerHeight(); 92 93 $(document).mousemove(function(e){ 94 cursor.offset({ 95 left: e.pageX + 0 - (width/2), 96 top: e.pageY + 0 - (height/2) 97 }); 98 }); 99 }).mouseleave(function() { 100 $scope.removeClass( "pp-cursor-active" ); 101 }); 102 } 103 } else { 104 $("#style-" + columnId).remove(); 105 } 106 }; 107 108 $(window).on('leales/frontend/init', function () { 109 if ( lealesFrontend.isEditMode() ) { 110 isEditMode = true; 111 } 112 113 lealesFrontend.hooks.addAction('frontend/element_ready/global', CustomCursorHandler); 114 }); 115 116}(jQuery));
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.