refactor(assets): vendor 资产迁入标准目录并全仓去除 zibll 标识

- assets/vendor 全量迁移: fontawesome5→assets/fontawesome5, css→assets/css,
  js→assets/js/runtime(避开 14 个同名自有文件), img 合并去重→assets/img,
  fonts→assets/fonts; 删除 assets/vendor
- libs 五个与 widgets/third-party 字节相同的库不重复入库, loader paths 改指向
- 运行时切换: _win.uri=assets 根, loader baseUrl=/js/runtime, enlighter 注入
  路径同步; PHP 7 个引用文件切换并改名 $zibll_*→$runtime_*
- 去品牌: Qinver 头注释/品牌 console.log/演示链接清除, 默认文案中性化
- 功能标识符改名: zib__→aksrt__, zib_ajax→aksrt_ajax, window.zib→
  window.aksrtLegacy, zibllblock/*→aksrtblock/*, .zib-widget→.aksrt-panel,
  .zib-slider→.aksrt-slider, zib_menu_options meta 键等
- 自有 CSS 改名: legacy-utilities/compat-vars/footer shell
- admin SPA 重建; 契约测试同步(路径/断言/文件更名)
- 例外保留: tests/visual 对照环境与 fixtures 前缀(外部 Zibll 产品引用)

验证: php -l 133 个改动文件通过; runtime 86 个 JS node --check 通过;
契约测试 68/70(2 个失败经 stash 对照确认为存量问题)
This commit is contained in:
2026-08-22 16:16:30 +08:00
parent 4f2391fb64
commit 9375b1c30c
591 changed files with 1690 additions and 11041 deletions
+266
View File
@@ -0,0 +1,266 @@
/* InstantClick 3.1.0 | (C) 2014 Alexandre Dieulot | http://instantclick.io/license */
var InstantClick = function (d, e) {
function w(a) {
var b = a.indexOf("#");
return 0 > b ? a : a.substr(0, b)
}
function z(a) {
for (; a && "A" != a.nodeName;) a = a.parentNode;
return a
}
function A(a) {
var b = e.protocol + "//" + e.host;
if (!(b = a.target || a.hasAttribute("download") || 0 != a.href.indexOf(b + "/") || -1 < a.href.indexOf("#") && w(a.href) == k)) {
if (J) {
a: {
do {
if (!a.hasAttribute) break;
if (a.hasAttribute("data-no-instant")) break;
if (a.hasAttribute("data-instant")) {
a = !0;
break a
}
} while (a = a.parentNode);a = !1
}
a = !a
}
else a: {
do {
if (!a.hasAttribute) break;
if (a.hasAttribute("data-instant")) break;
if (a.hasAttribute("data-no-instant")) {
a = !0;
break a
}
} while (a = a.parentNode);a = !1
}
b = a
}
return b ? !1 : !0
}
function t(a, b, c, g) {
for (var d = !1, e = 0; e < B[a].length; e++)
if ("receive" == a) {
var f = B[a][e](b, c, g);
f && ("body" in f && (c = f.body), "title" in f && (g = f.title), d = f)
} else B[a][e](b, c, g);
return d
}
function K(a, b, c, g) {
d.documentElement.replaceChild(b, d.body);
if (c) {
history.pushState(null, null, c);
b = c.indexOf("#");
b = -1 < b && d.getElementById(c.substr(b + 1));
g = 0;
if (b)
for (; b.offsetParent;) g +=
b.offsetTop, b = b.offsetParent;
scrollTo(0, g);
k = w(c)
} else scrollTo(0, g);
d.title = S && d.title == a ? a + String.fromCharCode(160) : a;
L();
C.done();
t("change", !1);
a = d.createEvent("HTMLEvents");
a.initEvent("instantclick:newpage", !0, !0);
dispatchEvent(a)
}
function M(a) {
G > +new Date - 500 || (a = z(a.target)) && A(a) && x(a.href)
}
function N(a) {
G > +new Date - 500 || (a = z(a.target)) && A(a) && (a.addEventListener("mouseout", T), H ? (O = a.href, l = setTimeout(x, H)) : x(a.href))
}
function U(a) {
G = +new Date;
(a = z(a.target)) && A(a) && (D ? a.removeEventListener("mousedown",
M) : a.removeEventListener("mouseover", N), x(a.href))
}
function V(a) {
var b = z(a.target);
!b || !A(b) || 1 < a.which || a.metaKey || a.ctrlKey || (a.preventDefault(), P(b.href))
}
function T() {
l ? (clearTimeout(l), l = !1) : v && !m && (p.abort(), m = v = !1)
}
function W() {
if (!(4 > p.readyState) && 0 != p.status) {
q.ready = +new Date - q.start;
if (p.getResponseHeader("Content-Type").match(/\/(x|ht|xht)ml/)) {
var a = d.implementation.createHTMLDocument("");
a.documentElement.innerHTML = p.responseText.replace(/<noscript[\s\S]+<\/noscript>/gi, "");
y = a.title;
u = a.body;
var b = t("receive", r, u, y);
b && ("body" in b && (u = b.body), "title" in b && (y = b.title));
b = w(r);
h[b] = {
body: u,
title: y,
scrollY: b in h ? h[b].scrollY : 0
};
for (var a = a.head.children, b = 0, c, g = a.length - 1; 0 <= g; g--)
if (c = a[g], c.hasAttribute("data-instant-track")) {
c = c.getAttribute("href") || c.getAttribute("src") || c.innerHTML;
for (var e = E.length - 1; 0 <= e; e--) E[e] == c && b++
} b != E.length && (F = !0)
} else F = !0;
m && (m = !1, P(r))
}
}
function L(a) {
d.body.addEventListener("touchstart", U, !0);
D ? d.body.addEventListener("mousedown", M, !0) : d.body.addEventListener("mouseover",
N, !0);
d.body.addEventListener("click", V, !0);
if (!a) {
a = d.body.getElementsByTagName("script");
var b, c, g, e;
i = 0;
for (j = a.length; i < j; i++) b = a[i], b.hasAttribute("data-no-instant") || (c = d.createElement("script"), b.src && (c.src = b.src), b.innerHTML && (c.innerHTML = b.innerHTML), g = b.parentNode, e = b.nextSibling, g.removeChild(b), g.insertBefore(c, e))
}
}
function x(a) {
!D && "display" in q && 100 > +new Date - (q.start + q.display) || (l && (clearTimeout(l), l = !1), a || (a = O), v && (a == r || m)) || (v = !0, m = !1, r = a, F = u = !1, q = {
start: +new Date
}, t("fetch"),
p.open("GET", a), p.send())
}
function P(a) {
"display" in q || (q.display = +new Date - q.start);
l || !v ? l && r && r != a ? e.href = a : (x(a), C.start(0, !0), t("wait"), m = !0) : m ? e.href = a : F ? e.href = r : u ? (h[k].scrollY = pageYOffset, m = v = !1, K(y, u, r)) : (C.start(0, !0), t("wait"), m = !0)
}
var I = navigator.userAgent,
S = -1 < I.indexOf(" CriOS/"),
Q = "createTouch" in d,
k, O, l, G, h = {},
p, r = !1,
y = !1,
F = !1,
u = !1,
q = {},
v = !1,
m = !1,
E = [],
J, D, H, B = {
fetch: [],
receive: [],
wait: [],
change: []
},
C = function () {
function a(a, e) {
n = a;
d.getElementById(f.id) && d.body.removeChild(f);
f.style.opacity =
"1";
d.getElementById(f.id) && d.body.removeChild(f);
g();
e && setTimeout(b, 0);
clearTimeout(l);
l = setTimeout(c, 500)
}
function b() {
n = 10;
g()
}
function c() {
n += 1 + 2 * Math.random();
98 <= n ? n = 98 : l = setTimeout(c, 500);
g()
}
function g() {
h.style[k] = "translate(" + n + "%)";
d.getElementById(f.id) || d.body.appendChild(f)
}
function e() {
d.getElementById(f.id) ? (clearTimeout(l), n = 100, g(), f.style.opacity = "0") : (a(100 == n ? 0 : n), setTimeout(e, 0))
}
function m() {
f.style.left = pageXOffset + "px";
f.style.width = innerWidth + "px";
f.style.top = pageYOffset +
"px";
var a = "orientation" in window && 90 == Math.abs(orientation);
f.style[k] = "scaleY(" + innerWidth / screen[a ? "height" : "width"] * 2 + ")"
}
var f, h, k, n, l;
return {
init: function () {
f = d.createElement("div");
f.id = "instantclick";
h = d.createElement("div");
h.id = "instantclick-bar";
h.className = "instantclick-bar";
f.appendChild(h);
var a = ["Webkit", "Moz", "O"];
k = "transform";
if (!(k in h.style))
for (var b = 0; 3 > b; b++) a[b] + "Transform" in h.style && (k = a[b] + "Transform");
var c = "transition";
if (!(c in h.style))
for (b = 0; 3 > b; b++) a[b] + "Transition" in
h.style && (c = "-" + a[b].toLowerCase() + "-" + c);
a = d.createElement("style");
a.innerHTML = "#instantclick{position:" + (Q ? "absolute" : "fixed") + ";top:0;left:0;width:100%;pointer-events:none;z-index:2147483647;" + c + ":opacity .25s .1s}.instantclick-bar{background:#29d;width:100%;margin-left:-100%;height:2px;" + c + ":all .25s}";
d.head.appendChild(a);
Q && (m(), addEventListener("resize", m), addEventListener("scroll", m))
},
start: a,
done: e
}
}(),
R = "pushState" in history && (!I.match("Android") || I.match("Chrome/")) && "file:" != e.protocol;
return {
supported: R,
init: function () {
if (!k)
if (R) {
for (var a = arguments.length - 1; 0 <= a; a--) {
var b = arguments[a];
!0 === b ? J = !0 : "mousedown" == b ? D = !0 : "number" == typeof b && (H = b)
}
k = w(e.href);
h[k] = {
body: d.body,
title: d.title,
scrollY: pageYOffset
};
for (var b = d.head.children, c, a = b.length - 1; 0 <= a; a--) c = b[a], c.hasAttribute("data-instant-track") && (c = c.getAttribute("href") || c.getAttribute("src") || c.innerHTML, E.push(c));
p = new XMLHttpRequest;
p.addEventListener("readystatechange", W);
L(!0);
C.init();
t("change", !0);
addEventListener("popstate",
function () {
var a = w(e.href);
a != k && (a in h ? (h[k].scrollY = pageYOffset, k = a, K(h[a].title, h[a].body, !1, h[a].scrollY)) : e.href = e.href)
})
} else t("change", !0)
},
on: function (a, b) {
B[a].push(b)
}
}
}(document, location);