feat(theme): complete Zibll navigation hard replacement
This commit is contained in:
1 parent
893af71a0b
commit
09b1e8fd35
6 files changed
+301
-11
No files matched your search
Vendored
-1
@@ -75,7 +75,6 @@ tbquire.config({
|
|||||||
'input-expand' : 'input-expand.min',
|
'input-expand' : 'input-expand.min',
|
||||||
'mini-touch' : 'mini-touch.min',
|
'mini-touch' : 'mini-touch.min',
|
||||||
'mini-upload' : 'mini-upload.min',
|
'mini-upload' : 'mini-upload.min',
|
||||||
'pay' : _win.uri+'/zibpay/assets/js/pay.min',
|
|
||||||
'editextend' : 'editextend.min',
|
'editextend' : 'editextend.min',
|
||||||
'petite-vue' : 'libs/petite-vue.iife',
|
'petite-vue' : 'libs/petite-vue.iife',
|
||||||
'svg-icon' : 'svg-icon',
|
'svg-icon' : 'svg-icon',
|
||||||
|
|||||||
Vendored
-7
@@ -2444,13 +2444,6 @@ function z_auto_fun() {
|
|||||||
auto_maxHeight();
|
auto_maxHeight();
|
||||||
//兼容性图片懒加载
|
//兼容性图片懒加载
|
||||||
$('img[data-src]:not(.lazyload,.lazyloaded,.lazyloading,.swiper-lazy)').addClass('lazyload');
|
$('img[data-src]:not(.lazyload,.lazyloaded,.lazyloading,.swiper-lazy)').addClass('lazyload');
|
||||||
//支付功能
|
|
||||||
$('.initiate-pay,.cashier-link,.pay-vip').length && tbquire(['pay']);
|
|
||||||
|
|
||||||
if (window.location.search.indexOf('zippay')) {
|
|
||||||
tbquire(['pay']);
|
|
||||||
}
|
|
||||||
|
|
||||||
//瀑布流布局,暂未启用,要抖动,且需要修改div结构
|
//瀑布流布局,暂未启用,要抖动,且需要修改div结构
|
||||||
/**
|
/**
|
||||||
tbquire(['waterfall'], function () {
|
tbquire(['waterfall'], function () {
|
||||||
|
|||||||
Vendored
+1
-1
@@ -1,3 +1,3 @@
|
|||||||
function zib__(t){var e=window._win&&window._win.i18n;return e&&Object.prototype.hasOwnProperty.call(e,t)?e[t]:t}function zib_is_fatal_error_response(t){return t&&(t.indexOf("Fatal error")>-1||t.indexOf("致命错误")>-1)}function zib_sprintf(t){var e=Array.prototype.slice.call(arguments,1),a=zib__(t),i=0;return a.replace(/%(\d+\$)?s/g,function(t,a){var n=a?parseInt(a,10)-1:i++;return void 0!==e[n]&&null!==e[n]?e[n]:t})}function only_drop(t){var e=$(t.target).closest(".dropup,.dropdown");$(".dropup.open,.dropdown.open").not(e).removeClass("open")}function new_dplayer(){var t=".new-dplayer:not(.dplayer-initialized),[data-dplayer]:not(.dplayer-initialized)";$(t).length&&$(t).each(function(){var t=$(this);get_new_dplayer(t,function(e){t.addClass("dplayer-initialized").siblings(".dplayer-featured").find(".switch-video").each(function(){var t=$(this),a=t.attr("video-url"),i=t.attr("video-pic");t.data({"video-url":a,"video-pic":i}),t.attr({"dplayer-id":e.container.id}),setTimeout(function(){t.removeAttr("video-url").removeAttr("video-pic")},50)})})})}function get_new_dplayer(t,e){var a={},i=t.attr("video-url")||t.data("video-url"),n=t.attr("data-volume"),o=parseInt((Math.random()+1)*Math.pow(10,4));if(!t.find(".dplayer-video-wrap").length&&i){t.attr("id","dplayer-"+o),a.container=document.getElementById("dplayer-"+o),a.theme="#f04494",a.video={url:i,pic:t.attr("video-pic")||"",type:t.attr("video-type")||"auto"},t.attr("data-loop")&&(a.loop=!0),t.attr("data-autoplay")&&(a.autoplay=!0),n&&n<1&&(a.volume=n),"none"===n&&(a.volume=0);var r=t.attr("video-option");if(r){try{r=JSON.parse(r)}catch(t){console.log(t)}$.extend(a,r)}var s=i.toLowerCase();return-1!=s.indexOf(".m3u")&&_win.dplayer.tbquire.push("hls"),-1!=s.indexOf(".mpd")&&_win.dplayer.tbquire.push("dash"),-1!=s.indexOf(".flv")&&_win.dplayer.tbquire.push("flv"),$("link#dplayer").length||$("dplayer").append('<link type="text/css" id="dplayer" rel="stylesheet" href="'+_win.uri+"/css/dplayer.min.css?ver="+_win.ver+'">'),_win.dplayer.tbquire.push("dplayer"),tbquire(_win.dplayer.tbquire,function(){try{var i=new DPlayer(a);i.on("play",function(){_win.dplayer.play=i}),t.data("dplayer",i),_win.dplayer.obj[o]=i,t.attr({"video-url":"","video-pic":""}),$.isFunction(e)&&e(i)}catch(t){console.error(t)}}),o}}function thumb_dplayer(t,e){function a(t,e,a){e.find(".dplayer-thumb").removeClass(c),_win.dplayer.thumb_play=a,e.find(".progress").show(),t.addClass(d)}function i(t,e,a){a.pause(),e.find(".dplayer-thumb").addClass(c),_win.dplayer.thumb_play=!1,e.find(".progress").hide(),t.removeClass(d)}function n(){if(_win.dplayer.thumb_play){var a=$(_win.dplayer.thumb_play.container).closest(e),n=a.closest(t);i(n,a,_win.dplayer.thumb_play)}}function o(){function t(t){t.on("loadeddata",function(){setTimeout(function(){n.find(".progress-bar").css({width:"100%",opacity:"0",transition:"width .2s, opacity .3s .3s"})},100),setTimeout(function(){n.find(".progress").remove()},800)}),setTimeout(function(){a(i,n,t),t.play()},200)}var i=$(this),n=i.find(e);if(n.length){var o=n.find(".dplayer-thumb").data("dplayer");if(o)return a(i,n,o),o.play();if(!n.find(".dplayer-thumb").length){var r=n.attr("video-url"),s=n.attr("data-volume")||"none",l="",d=~~n.attr("scale-height"),c='<div class="progress progress-striped active progress-abs-bottom"><div class="progress-bar progress-bar-success"></div></div>',u=$('<div class="dplayer-thumb-hide new-dplayer dplayer-thumb controller-hide'+(d?" dplayer-scale-height":"")+'"'+(d?' style="--scale-height:'+d+'%;"':"")+' data-loop="true" data-volume="'+s+'" data-hide="true" video-url="'+r+'" video-pic="'+l+'" video-type="auto"></div>');n.find(".video-thumb").html(u).after(c),setTimeout(function(){n.find(".progress-bar").css({transition:"width 6s",width:"80%"})},50),n.attr("video-url",""),get_new_dplayer(u,t)}}}var r=$("body"),s="thumb_dplayer_data",l=r.data(s)||{};if(!l[t+e]){var d="thumb-dplayer-playing",c="dplayer-thumb-hide";r.on("mouseenter touchstart",t,o),r.on("mouseleave",t,n);var u="thumb_dplayer_init";r.data(u)||r.on("touchstart",function(t){var e=$(t.target);!e.parents("."+d).length&&_win.dplayer.thumb_play&&n()}).data(u,!0),l[t+e]=!0,r.data(s,l)}}function new_swiper(){$(".swiper-scroll:not(.swiper-container-initialized),.new-swiper:not(.swiper-container-initialized),.swiper-tab:not(.swiper-container-initialized)").length&&($("link#swiper").length||$("head").append('<link type="text/css" id="swiper" rel="stylesheet" href="'+_win.uri+"/css/swiper.min.css?ver="+_win.ver+'">'),tbquire(["swiper"],function(){$(".swiper-scroll").each(function(t){if(!$(this).hasClass("swiper-container-initialized")){var e={},a=$(this),i="swiper-scroll-eq-"+t,n=a.attr("data-slideClass")||!1;if(n&&(e.slideClass=n),!a.attr("scroll-nogroup")){var o=a.width(),r=a.find(".swiper-wrapper>*:eq(0)").outerWidth(),s=~~(o/r);e.slidesPerGroup=s||1}e.autoplay=!!a.attr("data-autoplay")&&{delay:~~a.attr("data-interval")||4e3,disableOnInteraction:!1},e.loop=a.attr("data-loop"),e.slidesPerView="aLine truncated
|
function zib__(t){var e=window._win&&window._win.i18n;return e&&Object.prototype.hasOwnProperty.call(e,t)?e[t]:t}function zib_is_fatal_error_response(t){return t&&(t.indexOf("Fatal error")>-1||t.indexOf("致命错误")>-1)}function zib_sprintf(t){var e=Array.prototype.slice.call(arguments,1),a=zib__(t),i=0;return a.replace(/%(\d+\$)?s/g,function(t,a){var n=a?parseInt(a,10)-1:i++;return void 0!==e[n]&&null!==e[n]?e[n]:t})}function only_drop(t){var e=$(t.target).closest(".dropup,.dropdown");$(".dropup.open,.dropdown.open").not(e).removeClass("open")}function new_dplayer(){var t=".new-dplayer:not(.dplayer-initialized),[data-dplayer]:not(.dplayer-initialized)";$(t).length&&$(t).each(function(){var t=$(this);get_new_dplayer(t,function(e){t.addClass("dplayer-initialized").siblings(".dplayer-featured").find(".switch-video").each(function(){var t=$(this),a=t.attr("video-url"),i=t.attr("video-pic");t.data({"video-url":a,"video-pic":i}),t.attr({"dplayer-id":e.container.id}),setTimeout(function(){t.removeAttr("video-url").removeAttr("video-pic")},50)})})})}function get_new_dplayer(t,e){var a={},i=t.attr("video-url")||t.data("video-url"),n=t.attr("data-volume"),o=parseInt((Math.random()+1)*Math.pow(10,4));if(!t.find(".dplayer-video-wrap").length&&i){t.attr("id","dplayer-"+o),a.container=document.getElementById("dplayer-"+o),a.theme="#f04494",a.video={url:i,pic:t.attr("video-pic")||"",type:t.attr("video-type")||"auto"},t.attr("data-loop")&&(a.loop=!0),t.attr("data-autoplay")&&(a.autoplay=!0),n&&n<1&&(a.volume=n),"none"===n&&(a.volume=0);var r=t.attr("video-option");if(r){try{r=JSON.parse(r)}catch(t){console.log(t)}$.extend(a,r)}var s=i.toLowerCase();return-1!=s.indexOf(".m3u")&&_win.dplayer.tbquire.push("hls"),-1!=s.indexOf(".mpd")&&_win.dplayer.tbquire.push("dash"),-1!=s.indexOf(".flv")&&_win.dplayer.tbquire.push("flv"),$("link#dplayer").length||$("dplayer").append('<link type="text/css" id="dplayer" rel="stylesheet" href="'+_win.uri+"/css/dplayer.min.css?ver="+_win.ver+'">'),_win.dplayer.tbquire.push("dplayer"),tbquire(_win.dplayer.tbquire,function(){try{var i=new DPlayer(a);i.on("play",function(){_win.dplayer.play=i}),t.data("dplayer",i),_win.dplayer.obj[o]=i,t.attr({"video-url":"","video-pic":""}),$.isFunction(e)&&e(i)}catch(t){console.error(t)}}),o}}function thumb_dplayer(t,e){function a(t,e,a){e.find(".dplayer-thumb").removeClass(c),_win.dplayer.thumb_play=a,e.find(".progress").show(),t.addClass(d)}function i(t,e,a){a.pause(),e.find(".dplayer-thumb").addClass(c),_win.dplayer.thumb_play=!1,e.find(".progress").hide(),t.removeClass(d)}function n(){if(_win.dplayer.thumb_play){var a=$(_win.dplayer.thumb_play.container).closest(e),n=a.closest(t);i(n,a,_win.dplayer.thumb_play)}}function o(){function t(t){t.on("loadeddata",function(){setTimeout(function(){n.find(".progress-bar").css({width:"100%",opacity:"0",transition:"width .2s, opacity .3s .3s"})},100),setTimeout(function(){n.find(".progress").remove()},800)}),setTimeout(function(){a(i,n,t),t.play()},200)}var i=$(this),n=i.find(e);if(n.length){var o=n.find(".dplayer-thumb").data("dplayer");if(o)return a(i,n,o),o.play();if(!n.find(".dplayer-thumb").length){var r=n.attr("video-url"),s=n.attr("data-volume")||"none",l="",d=~~n.attr("scale-height"),c='<div class="progress progress-striped active progress-abs-bottom"><div class="progress-bar progress-bar-success"></div></div>',u=$('<div class="dplayer-thumb-hide new-dplayer dplayer-thumb controller-hide'+(d?" dplayer-scale-height":"")+'"'+(d?' style="--scale-height:'+d+'%;"':"")+' data-loop="true" data-volume="'+s+'" data-hide="true" video-url="'+r+'" video-pic="'+l+'" video-type="auto"></div>');n.find(".video-thumb").html(u).after(c),setTimeout(function(){n.find(".progress-bar").css({transition:"width 6s",width:"80%"})},50),n.attr("video-url",""),get_new_dplayer(u,t)}}}var r=$("body"),s="thumb_dplayer_data",l=r.data(s)||{};if(!l[t+e]){var d="thumb-dplayer-playing",c="dplayer-thumb-hide";r.on("mouseenter touchstart",t,o),r.on("mouseleave",t,n);var u="thumb_dplayer_init";r.data(u)||r.on("touchstart",function(t){var e=$(t.target);!e.parents("."+d).length&&_win.dplayer.thumb_play&&n()}).data(u,!0),l[t+e]=!0,r.data(s,l)}}function new_swiper(){$(".swiper-scroll:not(.swiper-container-initialized),.new-swiper:not(.swiper-container-initialized),.swiper-tab:not(.swiper-container-initialized)").length&&($("link#swiper").length||$("head").append('<link type="text/css" id="swiper" rel="stylesheet" href="'+_win.uri+"/css/swiper.min.css?ver="+_win.ver+'">'),tbquire(["swiper"],function(){$(".swiper-scroll").each(function(t){if(!$(this).hasClass("swiper-container-initialized")){var e={},a=$(this),i="swiper-scroll-eq-"+t,n=a.attr("data-slideClass")||!1;if(n&&(e.slideClass=n),!a.attr("scroll-nogroup")){var o=a.width(),r=a.find(".swiper-wrapper>*:eq(0)").outerWidth(),s=~~(o/r);e.slidesPerGroup=s||1}e.autoplay=!!a.attr("data-autoplay")&&{delay:~~a.attr("data-interval")||4e3,disableOnInteraction:!1},e.loop=a.attr("data-loop"),e.slidesPerView="aLine truncated
|
||||||
;(!o&&f||!a||!t[tt]("src")&&!t.srcset||t.complete||dt(t,n.errorClass)||!dt(t,n.lazyClass))&&(e=ft(t,"lazyunveilread").detail,o&&xt.updateElem(t,!0,t.offsetWidth),t._lazyRace=!0,A++,P(t,e,o,i,a))}},R=_t(function(){n.loadMode=3,L()}),B=function(){3==n.loadMode&&(n.loadMode=2),R()},U=function(){f||(a.now()-v<999?at(U,999):(f=!0,n.loadMode=3,L(),et("scroll",B,!0)))},{_:function(){v=a.now(),i.elements=e.getElementsByClassName(n.lazyClass),h=e.getElementsByClassName(n.lazyClass+" "+n.preloadClass),et("scroll",L,!0),et("resize",L,!0),et("pageshow",function(t){if(t.persisted){var a=e.querySelectorAll("."+n.loadingClass);a.length&&a.forEach&&it(function(){a.forEach(function(t){t.complete&&N(t)})})}}),t.MutationObserver?new MutationObserver(L).observe(Q,{childList:!0,subtree:!0,attributes:!0}):(Q[K]("DOMNodeInserted",L,!0),Q[K]("DOMAttrModified",L,!0),setInterval(L,999)),et("hashchange",L,!0),["focus","mouseover","click","load","transitionend","animationend"].forEach(function(t){e[K](t,L,!0)}),/d$|^c/.test(e.readyState)?U():(et("load",U),e[K]("DOMContentLoaded",L),at(U,2e4)),i.elements.length?(M(),gt._lsFlush()):L()},checkElems:L,unveil:N,_aLSL:B}),xt=(X=wt(function(t,e,a,i){var n,o,r;if(t._lazysizesWidth=i,i+="px",t.setAttribute("sizes",i),ot.test(e.nodeName||""))for(n=e.getElementsByTagName("source"),o=0,r=n.length;o<r;o++)n[o].setAttribute("sizes",i);a.detail.dataAttr||pt(t,a.detail)}),Y=function(t,e,a){var i,n=t.parentNode;n&&(a=vt(t,n,a),i=ft(t,"lazybeforesizes",{width:a,dataAttr:!!e}),i.defaultPrevented||(a=i.detail.width,a&&a!==t._lazysizesWidth&&X(t,n,i,a)))},G=function(){var t,e=V.length;if(e)for(t=0;t<e;t++)Y(V[t])},J=_t(G),{_:function(){V=e.getElementsByClassName(n.autosizesClass),et("resize",J)},checkElems:J,updateElem:Y}),$t=function(){!$t.i&&e.getElementsByClassName&&($t.i=!0,xt._(),yt._())};return at(function(){n.init&&$t()}),i={cfg:n,autoSizer:xt,loader:yt,init:$t,uP:pt,aC:ct,rC:ut,hC:dt,fire:ft,gW:vt,rAF:gt},i}),$.fn.minitouch=function(t){var e="minitouch-isload",a=$(this);if(!a.data(e)){t=$.extend({direction:"bottom",selector:"",start_selector:"",depreciation:50,stop:!1,onStart:!1,onIng:!1,onEnd:!1,inEnd:!1},t);var i=!1,n=t.depreciation,o=0,r=0,s=0,l=0,d=0,c=0,u=0,h=!1,f=function(t,e,a,i,n){var o,r,s;i&&(e+="px",a+="px",o="translate3D("+e+","+a+" , 0)",r={},s=p(),r[s+"transform"]=o,r[s+"transition"]=s+"transform 0s linear",r.cursor=n,"null"==i&&(r[s+"transform"]="",r[s+"transition"]=""),t.css(r))},p=function(){var t=document.body||document.documentElement;return t=t.style,""==t.WebkitTransition?"-webkit-":""==t.MozTransition?"-moz-":""==t.OTransition?"-o-":""==t.transition?"":void 0},m=t.start_selector||t.selector;a.on("touchstart pointerdown MSPointerDown",m,function(t){o=r=s=l=d=c=u=0,o=t.originalEvent.pageX||t.originalEvent.touches[0].pageX,r=t.originalEvent.pageY||t.originalEvent.touches[0].pageY,h=!0,$(t.target).parentsUntil(m,".swiper-container,.scroll-x").length&&(h=!1)}).on("touchmove pointermove MSPointerMove",m,function(e){var n=t.start_selector?t.selector?a.find(t.selector):a.find(t.start_selector):$(this);$.isFunction(t.stop)&&(i=t.stop(a,n,o,r)),h&&!i&&(s=e.originalEvent.pageX||e.originalEvent.touches[0].pageX,l=e.originalEvent.pageY||e.originalEvent.touches[0].pageY,c=s-o,u=l-r,d=180*Math.atan2(u,c)/Math.PI,"right"==t.direction&&(u=0,c=d>-40&&d<40&&c>0?c:0),"left"==t.direction&&(u=0,c=(d>150||d<-150)&&0>c?c:0),"top"==t.direction&&(c=0,u=d>-130&&d<-50&&0>u?u:0),"bottom"==t.direction&&(c=0,u=d>50&&d<130&&u>0?u:0),0===c&&0===u||(e.preventDefault?e.preventDefault():e.returnValue=!1,f(n,c,u,h,"grab"),$.isFunction(t.onIng)&&t.onIng(a,n,c,u)))}).on("touchend touchcancel pointerup MSPointerUp",m,function(){var e=t.start_selector?t.selector?a.find(t.selector):a.find(t.start_selector):$(this);h&&!i&&(f(e,0,0,"null",""),$.isFunction(t.inEnd)&&t.inEnd(a,e,c,u),(Math.abs(c)>n||Math.abs(u)>n)&&$.isFunction(t.onEnd)&&t.onEnd(a,e,c,u),o=r=s=l=d=c=u=0,h=!1)}).data(e,!0)}},_win.bd=$("body"),_win.window=$(window),_win.is_signin=!!_win.bd.hasClass("logged-in");var _wid=_win.window.width(),_hei=_win.window.height();if(_win.bd.on("click","[data-close]",function(){var t=$(this).attr("data-close");return $(t).removeClass("show in"),!1}),_win.bd.on("click","[data-toggle-class]",function(){var t=$(this).attr("data-toggle-class")||"show",e=$(this).attr("data-target")||this;return $(e).toggleClass(t).trigger("toggleClass"),!1}),_win.bd.on("click",only_drop),_win.bd.on("toggleClass",".dropup,.dropdown",only_drop),_win.bd.on("click",".alert-dismissible > .close",function(){$(this).parent().slideUp()}),_win.bd.on("click","[data-onclick]",function(){var t=$(this).attr("data-onclick");return $(t).click()}),$.fn.OnlyOn=function(t,e,a,i){var n=/\S+/g,o=!1;t=t.match(n)[0];var r=$._data(this[0],"events");r&&void 0!==r.type&&$.each(r[t],function(t,i){if(i.selector==e&&i.data==a)return o=!0,!1}),o?console.log("事件重复绑定{type:"+t+",selector:"+e+",data:"+a+"}"):this.on(t,e,a,i)},$.fn.zib_ajax=function(t,e,a,i){retLine truncated
|
;(!o&&f||!a||!t[tt]("src")&&!t.srcset||t.complete||dt(t,n.errorClass)||!dt(t,n.lazyClass))&&(e=ft(t,"lazyunveilread").detail,o&&xt.updateElem(t,!0,t.offsetWidth),t._lazyRace=!0,A++,P(t,e,o,i,a))}},R=_t(function(){n.loadMode=3,L()}),B=function(){3==n.loadMode&&(n.loadMode=2),R()},U=function(){f||(a.now()-v<999?at(U,999):(f=!0,n.loadMode=3,L(),et("scroll",B,!0)))},{_:function(){v=a.now(),i.elements=e.getElementsByClassName(n.lazyClass),h=e.getElementsByClassName(n.lazyClass+" "+n.preloadClass),et("scroll",L,!0),et("resize",L,!0),et("pageshow",function(t){if(t.persisted){var a=e.querySelectorAll("."+n.loadingClass);a.length&&a.forEach&&it(function(){a.forEach(function(t){t.complete&&N(t)})})}}),t.MutationObserver?new MutationObserver(L).observe(Q,{childList:!0,subtree:!0,attributes:!0}):(Q[K]("DOMNodeInserted",L,!0),Q[K]("DOMAttrModified",L,!0),setInterval(L,999)),et("hashchange",L,!0),["focus","mouseover","click","load","transitionend","animationend"].forEach(function(t){e[K](t,L,!0)}),/d$|^c/.test(e.readyState)?U():(et("load",U),e[K]("DOMContentLoaded",L),at(U,2e4)),i.elements.length?(M(),gt._lsFlush()):L()},checkElems:L,unveil:N,_aLSL:B}),xt=(X=wt(function(t,e,a,i){var n,o,r;if(t._lazysizesWidth=i,i+="px",t.setAttribute("sizes",i),ot.test(e.nodeName||""))for(n=e.getElementsByTagName("source"),o=0,r=n.length;o<r;o++)n[o].setAttribute("sizes",i);a.detail.dataAttr||pt(t,a.detail)}),Y=function(t,e,a){var i,n=t.parentNode;n&&(a=vt(t,n,a),i=ft(t,"lazybeforesizes",{width:a,dataAttr:!!e}),i.defaultPrevented||(a=i.detail.width,a&&a!==t._lazysizesWidth&&X(t,n,i,a)))},G=function(){var t,e=V.length;if(e)for(t=0;t<e;t++)Y(V[t])},J=_t(G),{_:function(){V=e.getElementsByClassName(n.autosizesClass),et("resize",J)},checkElems:J,updateElem:Y}),$t=function(){!$t.i&&e.getElementsByClassName&&($t.i=!0,xt._(),yt._())};return at(function(){n.init&&$t()}),i={cfg:n,autoSizer:xt,loader:yt,init:$t,uP:pt,aC:ct,rC:ut,hC:dt,fire:ft,gW:vt,rAF:gt},i}),$.fn.minitouch=function(t){var e="minitouch-isload",a=$(this);if(!a.data(e)){t=$.extend({direction:"bottom",selector:"",start_selector:"",depreciation:50,stop:!1,onStart:!1,onIng:!1,onEnd:!1,inEnd:!1},t);var i=!1,n=t.depreciation,o=0,r=0,s=0,l=0,d=0,c=0,u=0,h=!1,f=function(t,e,a,i,n){var o,r,s;i&&(e+="px",a+="px",o="translate3D("+e+","+a+" , 0)",r={},s=p(),r[s+"transform"]=o,r[s+"transition"]=s+"transform 0s linear",r.cursor=n,"null"==i&&(r[s+"transform"]="",r[s+"transition"]=""),t.css(r))},p=function(){var t=document.body||document.documentElement;return t=t.style,""==t.WebkitTransition?"-webkit-":""==t.MozTransition?"-moz-":""==t.OTransition?"-o-":""==t.transition?"":void 0},m=t.start_selector||t.selector;a.on("touchstart pointerdown MSPointerDown",m,function(t){o=r=s=l=d=c=u=0,o=t.originalEvent.pageX||t.originalEvent.touches[0].pageX,r=t.originalEvent.pageY||t.originalEvent.touches[0].pageY,h=!0,$(t.target).parentsUntil(m,".swiper-container,.scroll-x").length&&(h=!1)}).on("touchmove pointermove MSPointerMove",m,function(e){var n=t.start_selector?t.selector?a.find(t.selector):a.find(t.start_selector):$(this);$.isFunction(t.stop)&&(i=t.stop(a,n,o,r)),h&&!i&&(s=e.originalEvent.pageX||e.originalEvent.touches[0].pageX,l=e.originalEvent.pageY||e.originalEvent.touches[0].pageY,c=s-o,u=l-r,d=180*Math.atan2(u,c)/Math.PI,"right"==t.direction&&(u=0,c=d>-40&&d<40&&c>0?c:0),"left"==t.direction&&(u=0,c=(d>150||d<-150)&&0>c?c:0),"top"==t.direction&&(c=0,u=d>-130&&d<-50&&0>u?u:0),"bottom"==t.direction&&(c=0,u=d>50&&d<130&&u>0?u:0),0===c&&0===u||(e.preventDefault?e.preventDefault():e.returnValue=!1,f(n,c,u,h,"grab"),$.isFunction(t.onIng)&&t.onIng(a,n,c,u)))}).on("touchend touchcancel pointerup MSPointerUp",m,function(){var e=t.start_selector?t.selector?a.find(t.selector):a.find(t.start_selector):$(this);h&&!i&&(f(e,0,0,"null",""),$.isFunction(t.inEnd)&&t.inEnd(a,e,c,u),(Math.abs(c)>n||Math.abs(u)>n)&&$.isFunction(t.onEnd)&&t.onEnd(a,e,c,u),o=r=s=l=d=c=u=0,h=!1)}).data(e,!0)}},_win.bd=$("body"),_win.window=$(window),_win.is_signin=!!_win.bd.hasClass("logged-in");var _wid=_win.window.width(),_hei=_win.window.height();if(_win.bd.on("click","[data-close]",function(){var t=$(this).attr("data-close");return $(t).removeClass("show in"),!1}),_win.bd.on("click","[data-toggle-class]",function(){var t=$(this).attr("data-toggle-class")||"show",e=$(this).attr("data-target")||this;return $(e).toggleClass(t).trigger("toggleClass"),!1}),_win.bd.on("click",only_drop),_win.bd.on("toggleClass",".dropup,.dropdown",only_drop),_win.bd.on("click",".alert-dismissible > .close",function(){$(this).parent().slideUp()}),_win.bd.on("click","[data-onclick]",function(){var t=$(this).attr("data-onclick");return $(t).click()}),$.fn.OnlyOn=function(t,e,a,i){var n=/\S+/g,o=!1;t=t.match(n)[0];var r=$._data(this[0],"events");r&&void 0!==r.type&&$.each(r[t],function(t,i){if(i.selector==e&&i.data==a)return o=!0,!1}),o?console.log("事件重复绑定{type:"+t+",selector:"+e+",data:"+a+"}"):this.on(t,e,a,i)},$.fn.zib_ajax=function(t,e,a,i){retLine truncated
|
||||||
;e.val().length<1?r.html("").hide():n>i?(t=e.attr("warning-max")||zib__("input_max"),r.html(t.replace("1$",i)).fadeIn(150)):n<a?(t=e.attr("warning-min")||zib__("input_min"),r.html(t.replace("1$",a)).fadeIn(150)):r.fadeOut(150)},500)),$.fn.AutoSearch=function(){return this.each(function(){function t(){var t={},e=a.serializeObject();$.each(e,function(e,a){t[e]=a}),a.find("input[name]").each(function(){var e=$(this),a=e.val()||"";t[e.attr("name")]=a}),a.addClass(s),u.html(v),h.html(m),c.css({height:c.outerHeight(),overflow:"hidden"}),$.post(i,t,function(t){var e=t.data;e&&c.html('<div class="'+d+'">'+e+"</div>").animate({height:c.children("."+d).outerHeight()},200,"swing",function(){c.css({height:"",overflow:"",transition:""})}),a.removeClass(s),u.html(t.remind||""),h.html(f),auto_fun()},"json")}function e(e){e.val().length>=n?t():u.html(p)}var a=$(this),i=a.attr("ajax-url")||_win.ajax_url,n=2,o="search-",r="."+o,s=o+"loading",l=r+"input",d=o+"centent",c=a.find(r+"container"),u=a.find(r+"remind"),h=a.find(r+"icon"),f=h.html(),p=zib_sprintf("search_min_chars",n),m='<i class="loading em12"></i>',v=m+'<span class="ml6">'+zib__("search_loading")+"</span>",g="is-on";a.data(g)||a.data(g,!0).find(l).on("input",debounce(function(){e($(this))},500)).on("keydown",function(t){13==t.keyCode&&(t.preventDefault(),e($(this)))})})},_win.bd.on("click",".main-search [data-for]",function(){var t=$(".main-search").find(".scale-placeholder");t.length&&t.text(t.attr("default"))}),_win.bd.on("submit",".main-search form",function(){var t=$(this),e=t.serializeObject();$.each(e,function(e,a){a&&"null"!=a||"s"==e||t.find('input[name="'+e+'"]').remove()})}),_win.bd.on("click",".main-search-btn",function(){var t=$(this),e=$(".main-search form");if($(".main-search").addClass("show"),e.length){var a="search-",i={type:t.attr(a+"type"),user:t.attr(a+"user"),trem:t.attr(a+"trem")};$.each(i,function(a,i){if(i){var n=e.find('input[name="'+a+'"]').val(i),o=e.find('[data-for="'+a+'"][data-value="'+i+'"]').click();if(!o.length&&"trem"==a){var r=t.attr("trem-name"),s=e.find(".cat-drop");r&&s.length&&(s.append('<li data-for="trem" data-value="'+i+'"><a href="javascript:;">'+r+"</a></li>"),s.find('[data-value="'+i+'"]').click())}n.length||e.append('<input type="hidden" name="'+a+'" value="'+i+'">')}});var n=t.attr(a+"placeholder")||e.find(".scale-placeholder").attr("default");e.find(".scale-placeholder").text(n),setTimeout(function(){e.find('[name="s"]').focus()},100)}}),$(".search-page-ajaxpager").length&&(_win.bd.on("click",".page-search-box a.search_keywords",function(){var t=$(this).clone();return t.addClass("ajax-next").attr("ajax-replace","true").attr("route","true"),$(".search-page-ajaxpager").append(t),t.click().remove(),!1}),_win.bd.on("submit",".page-search-box .search-form",function(){var t=$(this),e=t.serializeObject(),a=new URL(t.attr("action"));a.search=new URLSearchParams(e).toString();var i=$('<a class="ajax-next" ajax-replace="1" route="1" href="'+a.href+'"></a>');return $(".search-page-ajaxpager").append(i),i.click().remove(),!1})),window.debounce_notyf=debounce(notyf,100,!0),_win.bd.on("click",".noty1",function(){notyf_close($(this))}),_win.passw=1,_win.bd.on("click",".passw",function(){var t=$(this);1==_win.passw?(t.find(".fa").addClass("fa-eye-slash"),t.siblings("input").attr("type","text"),_win.passw=2):(t.find(".fa").removeClass("fa-eye-slash"),t.siblings("input").attr("type","password"),_win.passw=1)}),_win.bd.on("input change focus",".line-form-input",debounce(function(){placeholder_scale($(this))},100)),$.fn.serializeObject=function(){var t={},e=this.serializeArray();return $.each(e,function(){void 0!==t[this.name]?(t[this.name].push||(t[this.name]=[t[this.name]]),t[this.name].push(this.value||"")):t[this.name]=this.value||""}),t},_win.bd.on("click",".trash-history-search",function(){1==confirm(zib__("confirm_clear_search"))&&($(".history-search").slideUp().delay(1e3,function(){$(this).remove()}),$.cookie("history_search",""))}),_win.bd.on("click",".initiate-checkin",function(){zib_ajax($(this),0,function(t){t.details_link&&$(".initiate-checkin").each(function(){var e=$(t.details_link),a=$(this),i=a.attr("class"),n=a.attr("ed-text");e.addClass(i).removeClass("initiate-checkin").html(n),a.prop("outerHTML",e.prop("outerHTML"))})},zib__("checkin_loading"))}),_win.bd.on("click",".single-pay-tabbar",function(){scrollTo("#posts-pay",-50),$("#posts-pay .cashier-link").click()}),_win.bd.on("submit","[ajax-submit]",function(){var t=$(this),e=t.attr("ajax-submit")||'.wp-ajax-submit,[zibajax="submit"]';return t.find(e).click(),!1}),_win.bd.on("click",'.wp-ajax-submit,[zibajax="submit"]',function(){var t=$(this),e=t.attr("data-confirm");return!(e&&!confirm(e))&&(zib_ajax($(this)),!1)}),_win.bd.on("zib_ajax.success","[next-tab]",function(t,e){var a=$(this).attr("next-tab");a&&e&&!e.error&&$('a[href="#'+a+'"]').tab("show")}),$(".erphp-login-must").each(function(){$(this).addClass("signin-loader")}),_win.window.resize(debounce(function(){_Line truncated
|
;e.val().length<1?r.html("").hide():n>i?(t=e.attr("warning-max")||zib__("input_max"),r.html(t.replace("1$",i)).fadeIn(150)):n<a?(t=e.attr("warning-min")||zib__("input_min"),r.html(t.replace("1$",a)).fadeIn(150)):r.fadeOut(150)},500)),$.fn.AutoSearch=function(){return this.each(function(){function t(){var t={},e=a.serializeObject();$.each(e,function(e,a){t[e]=a}),a.find("input[name]").each(function(){var e=$(this),a=e.val()||"";t[e.attr("name")]=a}),a.addClass(s),u.html(v),h.html(m),c.css({height:c.outerHeight(),overflow:"hidden"}),$.post(i,t,function(t){var e=t.data;e&&c.html('<div class="'+d+'">'+e+"</div>").animate({height:c.children("."+d).outerHeight()},200,"swing",function(){c.css({height:"",overflow:"",transition:""})}),a.removeClass(s),u.html(t.remind||""),h.html(f),auto_fun()},"json")}function e(e){e.val().length>=n?t():u.html(p)}var a=$(this),i=a.attr("ajax-url")||_win.ajax_url,n=2,o="search-",r="."+o,s=o+"loading",l=r+"input",d=o+"centent",c=a.find(r+"container"),u=a.find(r+"remind"),h=a.find(r+"icon"),f=h.html(),p=zib_sprintf("search_min_chars",n),m='<i class="loading em12"></i>',v=m+'<span class="ml6">'+zib__("search_loading")+"</span>",g="is-on";a.data(g)||a.data(g,!0).find(l).on("input",debounce(function(){e($(this))},500)).on("keydown",function(t){13==t.keyCode&&(t.preventDefault(),e($(this)))})})},_win.bd.on("click",".main-search [data-for]",function(){var t=$(".main-search").find(".scale-placeholder");t.length&&t.text(t.attr("default"))}),_win.bd.on("submit",".main-search form",function(){var t=$(this),e=t.serializeObject();$.each(e,function(e,a){a&&"null"!=a||"s"==e||t.find('input[name="'+e+'"]').remove()})}),_win.bd.on("click",".main-search-btn",function(){var t=$(this),e=$(".main-search form");if($(".main-search").addClass("show"),e.length){var a="search-",i={type:t.attr(a+"type"),user:t.attr(a+"user"),trem:t.attr(a+"trem")};$.each(i,function(a,i){if(i){var n=e.find('input[name="'+a+'"]').val(i),o=e.find('[data-for="'+a+'"][data-value="'+i+'"]').click();if(!o.length&&"trem"==a){var r=t.attr("trem-name"),s=e.find(".cat-drop");r&&s.length&&(s.append('<li data-for="trem" data-value="'+i+'"><a href="javascript:;">'+r+"</a></li>"),s.find('[data-value="'+i+'"]').click())}n.length||e.append('<input type="hidden" name="'+a+'" value="'+i+'">')}});var n=t.attr(a+"placeholder")||e.find(".scale-placeholder").attr("default");e.find(".scale-placeholder").text(n),setTimeout(function(){e.find('[name="s"]').focus()},100)}}),$(".search-page-ajaxpager").length&&(_win.bd.on("click",".page-search-box a.search_keywords",function(){var t=$(this).clone();return t.addClass("ajax-next").attr("ajax-replace","true").attr("route","true"),$(".search-page-ajaxpager").append(t),t.click().remove(),!1}),_win.bd.on("submit",".page-search-box .search-form",function(){var t=$(this),e=t.serializeObject(),a=new URL(t.attr("action"));a.search=new URLSearchParams(e).toString();var i=$('<a class="ajax-next" ajax-replace="1" route="1" href="'+a.href+'"></a>');return $(".search-page-ajaxpager").append(i),i.click().remove(),!1})),window.debounce_notyf=debounce(notyf,100,!0),_win.bd.on("click",".noty1",function(){notyf_close($(this))}),_win.passw=1,_win.bd.on("click",".passw",function(){var t=$(this);1==_win.passw?(t.find(".fa").addClass("fa-eye-slash"),t.siblings("input").attr("type","text"),_win.passw=2):(t.find(".fa").removeClass("fa-eye-slash"),t.siblings("input").attr("type","password"),_win.passw=1)}),_win.bd.on("input change focus",".line-form-input",debounce(function(){placeholder_scale($(this))},100)),$.fn.serializeObject=function(){var t={},e=this.serializeArray();return $.each(e,function(){void 0!==t[this.name]?(t[this.name].push||(t[this.name]=[t[this.name]]),t[this.name].push(this.value||"")):t[this.name]=this.value||""}),t},_win.bd.on("click",".trash-history-search",function(){1==confirm(zib__("confirm_clear_search"))&&($(".history-search").slideUp().delay(1e3,function(){$(this).remove()}),$.cookie("history_search",""))}),_win.bd.on("click",".initiate-checkin",function(){zib_ajax($(this),0,function(t){t.details_link&&$(".initiate-checkin").each(function(){var e=$(t.details_link),a=$(this),i=a.attr("class"),n=a.attr("ed-text");e.addClass(i).removeClass("initiate-checkin").html(n),a.prop("outerHTML",e.prop("outerHTML"))})},zib__("checkin_loading"))}),_win.bd.on("click",".single-pay-tabbar",function(){scrollTo("#posts-pay",-50),$("#posts-pay .cashier-link").click()}),_win.bd.on("submit","[ajax-submit]",function(){var t=$(this),e=t.attr("ajax-submit")||'.wp-ajax-submit,[zibajax="submit"]';return t.find(e).click(),!1}),_win.bd.on("click",'.wp-ajax-submit,[zibajax="submit"]',function(){var t=$(this),e=t.attr("data-confirm");return!(e&&!confirm(e))&&(zib_ajax($(this)),!1)}),_win.bd.on("zib_ajax.success","[next-tab]",function(t,e){var a=$(this).attr("next-tab");a&&e&&!e.error&&$('a[href="#'+a+'"]').tab("show")}),$(".erphp-login-must").each(function(){$(this).addClass("signin-loader")}),_win.window.resize(debounce(function(){_Line truncated
|
||||||
@@ -33,11 +33,15 @@ trait ScriptsPart1c {
|
|||||||
$needs_post_list_media = wp_style_is('aksrt-post-card', 'enqueued');
|
$needs_post_list_media = wp_style_is('aksrt-post-card', 'enqueued');
|
||||||
|
|
||||||
$zibll_uri = $base_uri . '/assets/vendor/zibll';
|
$zibll_uri = $base_uri . '/assets/vendor/zibll';
|
||||||
|
$zibll_loader_path = get_template_directory() . '/assets/vendor/zibll/js/loader.js';
|
||||||
|
$zibll_main_path = get_template_directory() . '/assets/vendor/zibll/js/main.min.js';
|
||||||
|
$zibll_loader_version = file_exists($zibll_loader_path) ? (string) filemtime($zibll_loader_path) : $version;
|
||||||
|
$zibll_runtime_version = file_exists($zibll_main_path) ? (string) filemtime($zibll_main_path) : $version;
|
||||||
wp_enqueue_script(
|
wp_enqueue_script(
|
||||||
'loader_js',
|
'loader_js',
|
||||||
$zibll_uri . '/js/loader.js',
|
$zibll_uri . '/js/loader.js',
|
||||||
['jquery', 'bootstrap'],
|
['jquery', 'bootstrap'],
|
||||||
$version,
|
$zibll_loader_version,
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
wp_localize_script(
|
wp_localize_script(
|
||||||
@@ -47,7 +51,7 @@ trait ScriptsPart1c {
|
|||||||
'views' => '',
|
'views' => '',
|
||||||
'www' => home_url('/'),
|
'www' => home_url('/'),
|
||||||
'uri' => $zibll_uri,
|
'uri' => $zibll_uri,
|
||||||
'ver' => $version,
|
'ver' => $zibll_runtime_version,
|
||||||
'pay_mark' => '¥',
|
'pay_mark' => '¥',
|
||||||
'pay_currency_unit' => __('元', 'aksrt'),
|
'pay_currency_unit' => __('元', 'aksrt'),
|
||||||
'imgbox' => false,
|
'imgbox' => false,
|
||||||
|
|||||||
@@ -0,0 +1,269 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
const assert = require('node:assert/strict');
|
||||||
|
const fs = require('node:fs');
|
||||||
|
const path = require('node:path');
|
||||||
|
const test = require('node:test');
|
||||||
|
|
||||||
|
const root = path.resolve(__dirname, '..', '..');
|
||||||
|
const read = (file) => fs.readFileSync(path.join(root, file), 'utf8');
|
||||||
|
const join = (files) => files.map(read).join('\n');
|
||||||
|
const exists = (file) => fs.existsSync(path.join(root, file));
|
||||||
|
const listFiles = (directory, extensions) => {
|
||||||
|
const base = path.join(root, directory);
|
||||||
|
const files = [];
|
||||||
|
const walk = (current) => {
|
||||||
|
for (const entry of fs.readdirSync(current, { withFileTypes: true })) {
|
||||||
|
if (['build', 'node_modules', 'third-party'].includes(entry.name)) continue;
|
||||||
|
const absolute = path.join(current, entry.name);
|
||||||
|
if (entry.isDirectory()) walk(absolute);
|
||||||
|
else if (extensions.has(path.extname(entry.name))) files.push(path.relative(root, absolute));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
walk(base);
|
||||||
|
return files;
|
||||||
|
};
|
||||||
|
|
||||||
|
const scripts = join([
|
||||||
|
'src/Core/ScriptsPart1b.php',
|
||||||
|
'src/Core/ScriptsPart1c.php',
|
||||||
|
]);
|
||||||
|
const header = join([
|
||||||
|
'header.php',
|
||||||
|
'inc/helpers/header/aksrt-header-render.php',
|
||||||
|
'inc/helpers/header/aksrt-header-navbar.php',
|
||||||
|
'inc/helpers/header/aksrt-header-mobile.php',
|
||||||
|
'inc/helpers/aksrt-header-menu-buttons.php',
|
||||||
|
'inc/helpers/aksrt-header-userbox.php',
|
||||||
|
]);
|
||||||
|
|
||||||
|
test('the public dependency graph is the single local Zibll stack', () => {
|
||||||
|
assert.match(scripts, /wp_deregister_script\('jquery'\)/);
|
||||||
|
assert.match(scripts, /jquery\.min\.js'[\s\S]*?'1\.9\.1'/);
|
||||||
|
assert.match(scripts, /bootstrap\.min\.css'[\s\S]*?'3\.4\.1'/);
|
||||||
|
assert.match(scripts, /fontawesome5'[\s\S]*?all\.min\.css'[\s\S]*?'5\.15\.4'/);
|
||||||
|
assert.match(scripts, /main\.min\.css/);
|
||||||
|
assert.match(scripts, /loader\.js'[\s\S]*?\['jquery', 'bootstrap'\]/);
|
||||||
|
assert.match(read('assets/vendor/zibll/js/loader.js'), /tbquire\(\['main'\]\)/);
|
||||||
|
for (const file of [
|
||||||
|
'assets/vendor/zibll/js/libs/jquery.min.js',
|
||||||
|
'assets/vendor/zibll/js/libs/bootstrap.min.js',
|
||||||
|
'assets/vendor/zibll/css/bootstrap.min.css',
|
||||||
|
'assets/vendor/fontawesome5/css/all.min.css',
|
||||||
|
'assets/vendor/zibll/css/main.min.css',
|
||||||
|
'assets/vendor/zibll/js/loader.js',
|
||||||
|
'assets/vendor/zibll/js/main.min.js',
|
||||||
|
]) assert.equal(exists(file), true, `${file} must be local`);
|
||||||
|
|
||||||
|
assert.doesNotMatch(scripts, /bootstrap5|bootstrap-5|font-awesome\.min\.css|swiper(?:\.min)?\.(?:css|js)|aksrt-mini-touch/);
|
||||||
|
assert.equal(exists('assets/css/frontend/nav.css'), false);
|
||||||
|
assert.equal(exists('assets/js/core/nav.js'), false);
|
||||||
|
assert.equal(exists('assets/js/core/search.js'), false);
|
||||||
|
assert.equal(exists('assets/js/core/scroll.js'), false);
|
||||||
|
assert.equal(exists('assets/js/core/slider.js'), false);
|
||||||
|
assert.equal(exists('assets/js/mini-touch.js'), false);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('payment entry points use only the AKSRT payment runtime', () => {
|
||||||
|
const loader = read('assets/vendor/zibll/js/loader.js');
|
||||||
|
const main = join([
|
||||||
|
'assets/vendor/zibll/js/main.js',
|
||||||
|
'assets/vendor/zibll/js/main.min.js',
|
||||||
|
]);
|
||||||
|
const paymentRuntime = join([
|
||||||
|
'assets/js/pay-vip.js',
|
||||||
|
'assets/js/cms-download.js',
|
||||||
|
'src/Core/ScriptsPart1b.php',
|
||||||
|
]);
|
||||||
|
|
||||||
|
assert.doesNotMatch(loader, /['"]pay['"]\s*:/);
|
||||||
|
assert.doesNotMatch(main, /tbquire\(\[['"]pay['"]\]\)/);
|
||||||
|
assert.doesNotMatch(main, /indexOf\(['"]zippay['"]\)/);
|
||||||
|
assert.match(paymentRuntime, /\.pay-vip/);
|
||||||
|
assert.match(paymentRuntime, /data-aksrt-pay-content/);
|
||||||
|
assert.match(paymentRuntime, /'aksrt-pay-vip'/);
|
||||||
|
assert.match(paymentRuntime, /'aksrt-cms-download'/);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('Font Awesome 5 is the only icon contract across every runtime path', () => {
|
||||||
|
const extensions = new Set(['.php', '.js', '.vue']);
|
||||||
|
const runtimeFiles = [
|
||||||
|
...fs.readdirSync(root)
|
||||||
|
.filter((file) => path.extname(file) === '.php'),
|
||||||
|
...listFiles('src', extensions),
|
||||||
|
...listFiles('inc', extensions),
|
||||||
|
...listFiles('templates', extensions),
|
||||||
|
...listFiles('assets/js', extensions),
|
||||||
|
...listFiles('assets/admin/src', extensions),
|
||||||
|
...listFiles('assets/vendor/zibll/js', extensions),
|
||||||
|
];
|
||||||
|
const runtime = join(runtimeFiles);
|
||||||
|
const iconCss = join([
|
||||||
|
...listFiles('assets/css', new Set(['.css'])),
|
||||||
|
...listFiles('assets/vendor/zibll', new Set(['.css'])),
|
||||||
|
]);
|
||||||
|
const fa5 = read('assets/vendor/fontawesome5/css/all.min.css');
|
||||||
|
const iconTokens = new Set([...runtime.matchAll(/\bfa-[a-z0-9]+(?:-[a-z0-9]+)*\b/g)].map((match) => match[0]));
|
||||||
|
const utility = /^fa-(?:xs|sm|lg|[2-9]x|10x|fw|ul|li|border|pull-left|pull-right|spin|pulse|rotate|rotate-(?:90|180|270)|flip|flip-(?:horizontal|vertical|both)|stack|stack-1x|stack-2x|inverse|sr-only|sr-only-focusable)$/;
|
||||||
|
const custom = new Set([
|
||||||
|
'fa-chevron', 'fa-icon', 'fa-icon-picker', 'fa-icons', 'fa-input',
|
||||||
|
'fa-mask', 'fa-spin-hover', 'fa-toggle-theme', 'fa-xxx',
|
||||||
|
]);
|
||||||
|
|
||||||
|
assert.doesNotMatch(runtime, /\bfa fa-/);
|
||||||
|
assert.doesNotMatch(runtime, /FontAwesome|font-awesome\.min\.css|Font Awesome 4|4\.7\.0/);
|
||||||
|
assert.doesNotMatch(iconCss, /FontAwesome|font-awesome\.min\.css|Font Awesome 4|4\.7\.0/);
|
||||||
|
assert.doesNotMatch(iconCss, /font:\s*normal\s+normal\s+normal\s+[^;]+Font Awesome 5 Free/);
|
||||||
|
assert.equal(exists('assets/vendor/zibll/css/font-awesome.min.css'), false);
|
||||||
|
for (const token of iconTokens) {
|
||||||
|
if (utility.test(token) || custom.has(token)) continue;
|
||||||
|
assert.ok(fa5.includes(`.${token}:before`), `${token} is not available in Font Awesome 5.15.4`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
test('header output owns all three layouts and reference state classes', () => {
|
||||||
|
assert.match(header, /header-layout-'\s*\.\s*\$layout/);
|
||||||
|
assert.match(header, /in_array\(\$layout, \[['"]1['"], ['"]2['"], ['"]3['"]\], true\)/);
|
||||||
|
assert.match(header, /navbar-top/);
|
||||||
|
assert.match(header, /container-header/);
|
||||||
|
assert.match(header, /nav_fixed/);
|
||||||
|
assert.match(header, /nav_scroll_down_hide/);
|
||||||
|
assert.match(header, /nav-fixed/);
|
||||||
|
assert.match(header, /show-slide/);
|
||||||
|
assert.match(header, /main-search-btn/);
|
||||||
|
assert.doesNotMatch(header, /data-bs-|navbar-expand|offcanvas/);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('mobile navigation is one setting-driven left right or top drawer', () => {
|
||||||
|
assert.match(header, /mobile_navbar_align/);
|
||||||
|
for (const align of ['left', 'right', 'top']) {
|
||||||
|
assert.match(header, new RegExp(`'${align}'`));
|
||||||
|
}
|
||||||
|
assert.match(header, /mini-touch="mobile-nav"/);
|
||||||
|
assert.match(header, /touch-direction/);
|
||||||
|
assert.match(header, /mobile-navbar-show/);
|
||||||
|
assert.match(header, /class="mobile-navbar visible-xs-block scroll-y mini-scrollbar/);
|
||||||
|
assert.match(header, /class="fixed-body" data-toggle-class="mobile-navbar-show"/);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('guest account member VIP and publish contracts share reference header DOM', () => {
|
||||||
|
assert.match(header, /is_user_logged_in\(\)/);
|
||||||
|
assert.match(header, /sub-user-box/);
|
||||||
|
assert.match(header, /signin-loader|signin/);
|
||||||
|
assert.match(header, /nav_user_pay_vip|nav_pay_vip/);
|
||||||
|
assert.match(header, /nav_user_newposts_btn/);
|
||||||
|
assert.match(header, /nav_newposts/);
|
||||||
|
assert.match(header, /navbar-form navbar-right navbar-but/);
|
||||||
|
assert.match(header, /pay-vip/);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('the only menu metadata and Walker contract is Zibll', () => {
|
||||||
|
const walker = read('src/Frontend/NavWalker.php');
|
||||||
|
const menuAdmin = read('src/Admin/NavMenuOptions.php');
|
||||||
|
const decoration = read('inc/helpers/menu-decoration.php');
|
||||||
|
const source = walker + menuAdmin + decoration;
|
||||||
|
|
||||||
|
assert.match(source, /zib_menu_options/);
|
||||||
|
assert.doesNotMatch(source, /aksrt_menu_options/);
|
||||||
|
assert.match(walker, /start_lvl|start_el|end_el/);
|
||||||
|
assert.match(walker, /submenu_graphic_card/);
|
||||||
|
assert.match(walker, /submenu_multi_column_links/);
|
||||||
|
assert.match(walker, /senior-submenu/);
|
||||||
|
assert.match(walker, /swiper-container swiper-scroll/);
|
||||||
|
assert.match(walker, /swiper-wrapper/);
|
||||||
|
assert.match(walker, /show-nav-but|collapse|submenu_s/);
|
||||||
|
assert.match(menuAdmin, /graphic_card_opts_json/);
|
||||||
|
assert.match(menuAdmin, /multi_column_links_opts_json/);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('search is footer-lazy and exposes only reference actions and request fields', () => {
|
||||||
|
const shell = read('inc/helpers/header/aksrt-header-menu-search.php');
|
||||||
|
const box = read('inc/helpers/search/aksrt-search-box.php');
|
||||||
|
const results = read('search.php');
|
||||||
|
const settings = read('src/Settings/ThemeSearch.php');
|
||||||
|
const source = shell + box + results + settings;
|
||||||
|
|
||||||
|
assert.match(shell, /add_action\('wp_footer', 'aksrt_footer_navbar_search'/);
|
||||||
|
assert.match(shell, /wp_ajax_menu_search/);
|
||||||
|
assert.match(shell, /wp_ajax_search_box/);
|
||||||
|
assert.match(shell, /wp_verify_nonce/);
|
||||||
|
assert.match(shell, /navbar-search/);
|
||||||
|
assert.match(source, /['"]trem['"]/);
|
||||||
|
assert.match(source, /['"]type['"]/);
|
||||||
|
assert.match(source, /['"]user['"]/);
|
||||||
|
assert.match(box, /history_search/);
|
||||||
|
assert.match(box, /array_slice\(\$history, 0, 30\)/);
|
||||||
|
assert.match(box, /search_keywords/);
|
||||||
|
assert.match(settings, /search_custom_key/);
|
||||||
|
assert.match(settings, /aksrt_search_terms\.name LIKE/);
|
||||||
|
assert.match(results, /search-tab-filter/);
|
||||||
|
assert.match(results, /aksrt_get_search_tab_nav_filter/);
|
||||||
|
assert.equal(exists('templates/parts/navbar-search.php'), false);
|
||||||
|
assert.equal(exists('templates/parts/search-panel.php'), false);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('search settings preserve every original field ID and nested field type', () => {
|
||||||
|
const php = read('src/Admin/Schema/GlobalSchema.php');
|
||||||
|
const js = read('assets/admin/src/schema/sections/global/search.js');
|
||||||
|
const source = php + js;
|
||||||
|
for (const key of [
|
||||||
|
'search_placeholder', 'search_popular_key', 'search_popular_title',
|
||||||
|
'search_popular_sticky', 'search_popular_key_num', 'search_cat',
|
||||||
|
'search_cat_in', 'search_more_cat_obj', 'search_type', 'search_type_in',
|
||||||
|
'search_history', 'search_posts', '404_search_s', 'search_no_page',
|
||||||
|
'search_exclude_cats', 'search_custom_key_s', 'search_custom_key',
|
||||||
|
'search_facets', 'search_ms_s', 'search_ms_opt',
|
||||||
|
]) assert.ok(source.includes(key), `${key} missing`);
|
||||||
|
assert.match(js, /key: 'search_facets'[\s\S]*?type: 'fieldset'/);
|
||||||
|
assert.match(js, /key: 'search_ms_opt'[\s\S]*?type: 'fieldset'/);
|
||||||
|
assert.match(js, /key: 'synonyms'[\s\S]*?type: 'repeater'/);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('header slider is the only top visual path and uses global plus page_config fields', () => {
|
||||||
|
const renderer = read('inc/helpers/homepage/header-components.php');
|
||||||
|
const globalSchema = read('src/Admin/Schema/SchemaPageDisplay.php');
|
||||||
|
const pageMeta = read('src/Admin/PageConfigMetaBox.php');
|
||||||
|
const defaults = read('src/Settings/DisplayPageGroups.php');
|
||||||
|
const source = renderer + globalSchema + pageMeta + defaults;
|
||||||
|
|
||||||
|
assert.match(renderer, /function aksrt_header_slide\(\): void/);
|
||||||
|
assert.match(renderer, /function aksrt_header_slide_is_show\(\): bool/);
|
||||||
|
assert.match(pageMeta, /page_config/);
|
||||||
|
for (const key of [
|
||||||
|
'header_slider_show', 'header_slider_show_type', 'header_slider_nav_color',
|
||||||
|
'header_slider', 'header_slider_option', 'header_slider_search_s',
|
||||||
|
'header_slider_search_option', 'header_slider_card_s',
|
||||||
|
'header_slider_card_option', 'header_slider_filter_blur',
|
||||||
|
]) assert.ok(source.includes(key), `${key} missing`);
|
||||||
|
assert.match(defaults, /slider-bg\.jpg/);
|
||||||
|
assert.match(defaults, /user_t\.jpg/);
|
||||||
|
assert.match(defaults, /\['pc_s', 'm_s'\]/);
|
||||||
|
assert.equal(exists('templates/parts/home-modules/module-hero.php'), false);
|
||||||
|
assert.equal(exists('assets/admin/src/pages/content/HeroManager.vue'), false);
|
||||||
|
assert.doesNotMatch(read('assets/admin/src/constants/sections/page-display.js'), /page-display-hero|HeroManager/);
|
||||||
|
assert.doesNotMatch(read('assets/admin/src/api/modules/page-display.js'), /getHeroes|createHero|updateHero|deleteHero/);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('responsive contract pins the requested viewport matrix to reference breakpoints', () => {
|
||||||
|
const viewports = [375, 640, 768, 991, 1200, 1380, 1440];
|
||||||
|
const css = read('assets/vendor/zibll/css/main.min.css');
|
||||||
|
assert.deepEqual(viewports, [375, 640, 768, 991, 1200, 1380, 1440]);
|
||||||
|
for (const breakpoint of [375, 640, 768, 991, 1200, 1380]) {
|
||||||
|
assert.ok(css.includes(String(breakpoint)), `reference rule for ${breakpoint}px missing`);
|
||||||
|
}
|
||||||
|
assert.match(css, /@media\s*\(max-width:640px\)/);
|
||||||
|
assert.match(css, /@media\s*\(max-width:991px\)/);
|
||||||
|
assert.match(css, /@media\s*\(min-width:1200px\)/);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('old navigation settings and runtime handles do not survive the hard switch', () => {
|
||||||
|
const source = join([
|
||||||
|
'src/Settings/Settings.php',
|
||||||
|
'src/Settings/FacadeBulk.php',
|
||||||
|
'src/Core/ScriptsPart1b.php',
|
||||||
|
'src/Core/ScriptsPart1c.php',
|
||||||
|
'assets/js/aksrt-runtime.js',
|
||||||
|
]);
|
||||||
|
assert.doesNotMatch(source, /bootstrap5|aksrt-mini-touch|aksrt\.Drawer|aksrt\.minitouch|updateScrollBus/);
|
||||||
|
assert.doesNotMatch(source, /aksrt_nav_|legacy_nav|nav_compat/);
|
||||||
|
});
|
||||||
@@ -259,6 +259,31 @@ test('VIP purchase and points exchange use direct fixed-id notyf flows', () => {
|
|||||||
assert.match(scripts, /'aksrt-pay-vip',[\s\S]*?\/assets\/js\/pay-vip\.js',[\s\S]*?\[[^\]]*'aksrt-notyf'[^\]]*\]/);
|
assert.match(scripts, /'aksrt-pay-vip',[\s\S]*?\/assets\/js\/pay-vip\.js',[\s\S]*?\[[^\]]*'aksrt-notyf'[^\]]*\]/);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('payment entry points never load the removed Zibll pay runtime', () => {
|
||||||
|
const loader = read('assets/vendor/zibll/js/loader.js');
|
||||||
|
const zibllMain = [
|
||||||
|
read('assets/vendor/zibll/js/main.js'),
|
||||||
|
read('assets/vendor/zibll/js/main.min.js'),
|
||||||
|
].join('\n');
|
||||||
|
const vip = read('assets/js/pay-vip.js');
|
||||||
|
const content = read('assets/js/cms-download.js');
|
||||||
|
const scripts = [
|
||||||
|
read('src/Core/ScriptsPart1b.php'),
|
||||||
|
read('src/Core/ScriptsPart1c.php'),
|
||||||
|
].join('\n');
|
||||||
|
|
||||||
|
assert.doesNotMatch(loader, /['"]pay['"]\s*:/);
|
||||||
|
assert.doesNotMatch(zibllMain, /tbquire\(\[['"]pay['"]\]\)/);
|
||||||
|
assert.doesNotMatch(zibllMain, /indexOf\(['"]zippay['"]\)/);
|
||||||
|
assert.match(vip, /\.pay-vip/);
|
||||||
|
assert.match(content, /data-aksrt-pay-content/);
|
||||||
|
assert.match(scripts, /'aksrt-pay-vip'/);
|
||||||
|
assert.match(scripts, /'aksrt-cms-download'/);
|
||||||
|
assert.match(scripts, /\$zibll_loader_version = file_exists\(\$zibll_loader_path\)/);
|
||||||
|
assert.match(scripts, /\$zibll_runtime_version = file_exists\(\$zibll_main_path\)/);
|
||||||
|
assert.match(scripts, /'ver'\s*=> \$zibll_runtime_version/);
|
||||||
|
});
|
||||||
|
|
||||||
test('profile save uses AJAX rehydrate and a fixed-id notyf flow without query feedback', () => {
|
test('profile save uses AJAX rehydrate and a fixed-id notyf flow without query feedback', () => {
|
||||||
const profile = read('assets/js/routes/user-center.js');
|
const profile = read('assets/js/routes/user-center.js');
|
||||||
const page = read('templates/pages/page-profile.php');
|
const page = read('templates/pages/page-profile.php');
|
||||||
|
|||||||
Reference in new issue
Block a user