PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.14.0
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.14.0
1.19.8 1.19.7 1.19.6 1.19.5 trunk 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.12.0 1.13.0 1.14.0 1.15.0 1.15.1 1.15.2 1.15.3 1.16.0 1.16.1 1.16.2 1.16.3 1.16.4 1.16.5 1.16.6 1.16.7 1.16.8 1.17.0 1.17.6 1.17.7 1.17.8 1.17.9 1.18.0 1.18.1 1.18.2 1.18.3 1.18.4 1.18.5 1.18.6 1.18.7 1.18.8 1.18.9 1.19.0 1.19.1 1.19.2 1.19.3 1.19.4 1.3.19 1.3.20 1.4.0 1.4.1 1.5.0 1.5.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.16 1.5.17 1.5.18 1.5.19 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.7.0 1.7.1 1.8.0 1.8.1 1.8.3 1.9.0 1.9.1 1.9.2
nitropack / view / javascript / overlay.js
nitropack / view / javascript Last commit date
admin_bar_menu.js 2 years ago bootstrap.bundle.min.js 4 years ago bootstrap.min.js 6 years ago gravity_forms.js 3 years ago math_captcha.js 3 years ago metabox.js 2 years ago np_notices.js 2 years ago np_safemode.js 2 years ago overlay.js 6 years ago popper.min.js 4 years ago widgets_ajax.js 3 years ago
overlay.js
166 lines
1 if (typeof window.requestAnimFrame == 'undefined') {
2 window.requestAnimFrame = (function(){
3 return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame ||
4 function( callback ){
5 window.setTimeout(callback, 1000 / 60);
6 };
7 })();
8 }
9
10 ($ => {
11 var intervals = new Map();
12 var targets = [];
13
14 const renderOverlay = target => {
15 if (typeof $(target).data('overlay') == 'undefined') return;
16
17 if ($(target).is(':visible')) {
18 $(target).data('overlay').removeClass('card-overlay-hidden');
19
20 $($(target).data('overlay')).css({
21 'position': 'absolute',
22 'top': $(target).offset().top.toString().concat('px'),
23 'left': $(target).offset().left.toString().concat('px'),
24 'width': $(target).outerWidth().toString().concat('px'),
25 'height': $(target).outerHeight().toString().concat('px'),
26 });
27 } else {
28 $(target).data('overlay').addClass('card-overlay-hidden');
29 }
30 }
31
32 (function frameLoop() {
33 targets.forEach(renderOverlay);
34 window.requestAnimFrame(frameLoop);
35 })();
36
37 $.fn.cardOverlay = function(method, data = null) {
38 return $(this).each(function(index, target) {
39 $(target).data('overlay', undefined);
40 $(target).data('interval', null);
41
42 const dismissOverlay = (timeout = 0, skipClassAmendment = false) => {
43 clearInterval(intervals.get(target));
44 intervals.delete(target);
45
46 var doDismiss = _ => {
47 targets = targets.filter(currentTarget => currentTarget != target)
48
49 $($(target).data('overlay')).remove();
50
51 if (!skipClassAmendment) {
52 $(target).removeClass('card-overlay-blurred');
53 $(target).removeClass('card-overlay-blurrable');
54 }
55 }
56
57 if (timeout) {
58 setTimeout(doDismiss, timeout);
59 } else {
60 doDismiss();
61 }
62 }
63
64 const methods = {
65 error : function(data) {
66 dismissOverlay(0, true);
67
68 data = Object.assign({
69 message: '',
70 timeout: 0,
71 dismissable: true
72 }, data);
73
74 return makeOverlay('danger', data.message, data.timeout, data.dismissable);
75 },
76 success : function(data) {
77 dismissOverlay(0, true);
78
79 data = Object.assign({
80 message: '',
81 timeout: 0,
82 dismissable: true
83 }, data);
84
85 return makeOverlay('success', data.message, data.timeout, data.dismissable);
86 },
87 notify : function(data) {
88 dismissOverlay(0, true);
89
90 data = Object.assign({
91 message: '',
92 timeout: 0,
93 dismissable: true
94 }, data);
95
96 return makeOverlay('info', data.message, data.timeout, data.dismissable);
97 },
98 loading: function(data) {
99 dismissOverlay(0, true);
100
101 data = Object.assign({
102 message: ''
103 }, data);
104
105 return makeOverlay('muted', data.message, -1, false);
106 },
107 clear : dismissOverlay
108 }
109
110 const makeOverlay = (type, message, timeout, dismissable) => {
111 var progressClass = "";
112
113 $(target).data('overlay', $('<div class="card-overlay"></div>'));
114
115 $($(target).data('overlay')).append( $('<div class="card-overlay-box"><div class="card-overlay-message text-' + type + '"><div class="card-overlay-text">' + message + '</div></div></div>') );
116
117 if (dismissable) {
118 $($(target).data('overlay')).find('.card-overlay-message').prepend('<i class="card-overlay-dismiss fa fa-times"></i>');
119 $($(target).data('overlay')).find('.card-overlay-box').addClass('card-overlay-dismissable');
120 }
121
122 if (timeout) {
123 if (timeout >= 0) {
124 intervals.set(target, (time => {
125 var step = 1000;
126 var wait = 100;
127
128 return setInterval(_ => {
129 time = Math.max(time - step, 0);
130 var percent = Math.floor((time / timeout) * 100);
131
132 $($(target).data('overlay')).find('.progress-bar').css('width', percent + '%');
133
134 if (time == 0) {
135 setTimeout(dismissOverlay, wait);
136 }
137 }, step);
138 })(timeout));
139 } else {
140 progressClass = " progress-bar-striped progress-bar-animated";
141 }
142
143 $($(target).data('overlay')).find('.card-overlay-box').prepend('<div class="progress"><div class="progress-bar bg-' + type + progressClass + '" role="progressbar" style="width: 100%"></div></div>');
144 }
145
146 $('body').append($(target).data('overlay'));
147
148 $($(target).data('overlay')).on('click', '.card-overlay-dismiss', dismissOverlay);
149
150 $(target).addClass('card-overlay-blurrable');
151 $(target).addClass('card-overlay-blurred');
152
153 targets.push(target);
154
155 return target;
156 }
157
158 if (method && methods[method]) {
159 return methods[method].call(target, data);
160 } else {
161 $.error('Method "' + method + '" does not exist on jQuery.cardOverlay');
162 }
163 });
164 };
165 })(jQuery);
166