gov_propagandize/components/mp-html/node/node.js
2025-02-07 16:29:25 +08:00

147 lines
5.3 KiB
JavaScript

"use strict";
function t(t, e) {
var r = Object.keys(t);
if (Object.getOwnPropertySymbols) {
var i = Object.getOwnPropertySymbols(t);
e && (i = i.filter(function (e) {
return Object.getOwnPropertyDescriptor(t, e).enumerable
})), r.push.apply(r, i)
}
return r
}
function e(e) {
for (var i = 1; i < arguments.length; i++) {
var o = null != arguments[i] ? arguments[i] : {};
i % 2 ? t(Object(o), !0).forEach(function (t) {
r(e, t, o[t])
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(o)) : t(Object(o)).forEach(function (t) {
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(o, t))
})
}
return e
}
function r(t, e, r) {
return e in t ? Object.defineProperty(t, e, {
value: r,
enumerable: !0,
configurable: !0,
writable: !0
}) : t[e] = r, t
}
Component({
data: {
ctrl: {},
// isiOS: wx.getSystemInfoSync().system.includes("iOS")
isiOS: wx.getDeviceInfo().system.includes("iOS")
},
properties: {
childs: Array,
opts: Array
},
options: {
addGlobalClass: !0
},
attached: function () {
this.triggerEvent("add", this, {
bubbles: !0,
composed: !0
})
},
methods: {
noop: function () {},
getNode: function (t) {
try {
for (var e = t.split("_"), r = this.data.childs[e[0]], i = 1; i < e.length; i++) r = r.children[e[i]];
return r
} catch (t) {
return {
text: "",
attrs: {},
children: []
}
}
},
play: function (t) {
var r = t.target.dataset.i,
i = this.getNode(r);
if (this.root.triggerEvent("play", {
source: i.name,
attrs: e(e({}, i.attrs), {}, {
src: i.src[this.data.ctrl[r] || 0]
})
}), this.root.data.pauseVideo) {
for (var o = !1, s = t.target.id, a = this.root._videos.length; a--;) this.root._videos[a].id === s ? o = !0 : this.root._videos[a].pause();
if (!o) {
var n = wx.createVideoContext(s, this);
n.id = s, this.root.playbackRate && n.playbackRate(this.root.playbackRate), this.root._videos.push(n)
}
}
},
imgTap: function (t) {
var e = this.getNode(t.target.dataset.i);
if (e.a) return this.linkTap(e.a);
if (!e.attrs.ignore && (this.root.triggerEvent("imgtap", e.attrs), this.root.data.previewImg)) {
var r = this.root.imgList[e.i];
wx.previewImage({
showmenu: this.root.data.showImgMenu,
current: r,
urls: this.root.imgList
})
}
},
imgLoad: function (t) {
var e, i = t.target.dataset.i,
o = this.getNode(i);
o.w ? (this.data.opts[1] && !this.data.ctrl[i] || -1 === this.data.ctrl[i]) && (e = 1) : e = t.detail.width, e && this.setData(r({}, "ctrl." + i, e)), this.checkReady()
},
checkReady: function () {
var t = this;
this.root.data.lazyLoad || (this.root.imgList._unloadimgs -= 1, this.root.imgList._unloadimgs || setTimeout(function () {
t.root.getRect().then(function (e) {
t.root.triggerEvent("ready", e)
}).catch(function () {
t.root.triggerEvent("ready", {})
})
}, 350))
},
linkTap: function (t) {
var e = t.currentTarget ? this.getNode(t.currentTarget.dataset.i) : {},
r = e.attrs || t,
i = r.href;
this.root.triggerEvent("linktap", Object.assign({
innerText: this.root.getText(e.children || [])
}, r)), i && ("#" === i[0] ? this.root.navigateTo(i.substring(1)).catch(function () {}) : i.split("?")[0].includes("://") ? this.root.data.copyLink && wx.setClipboardData({
data: i,
success: function () {
return wx.showToast({
title: "链接已复制"
})
}
}) : wx.navigateTo({
url: i,
fail: function () {
wx.switchTab({
url: i,
fail: function () {}
})
}
}))
},
mediaError: function (t) {
var e = t.target.dataset.i,
i = this.getNode(e);
if ("video" === i.name || "audio" === i.name) {
var o = (this.data.ctrl[e] || 0) + 1;
if (o > i.src.length && (o = 0), o < i.src.length) return this.setData(r({}, "ctrl." + e, o))
} else "img" === i.name && (this.data.opts[2] && this.setData(r({}, "ctrl." + e, -1)), this.checkReady());
this.root && this.root.triggerEvent("error", {
source: i.name,
attrs: i.attrs,
errMsg: t.detail.errMsg
})
}
}
});