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:
+266
@@ -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);
|
||||
Reference in New Issue
Block a user