@xwadex/fesd 0.0.19 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,18 @@
1
- var Z = (r, e, t) => {
2
- if (!e.has(r))
3
- throw TypeError("Cannot " + t);
1
+ var ot = (r, t, e) => {
2
+ if (!t.has(r))
3
+ throw TypeError("Cannot " + e);
4
4
  };
5
- var d = (r, e, t) => {
6
- if (e.has(r))
5
+ var g = (r, t, e) => {
6
+ if (t.has(r))
7
7
  throw TypeError("Cannot add the same private member more than once");
8
- e instanceof WeakSet ? e.add(r) : e.set(r, t);
8
+ t instanceof WeakSet ? t.add(r) : t.set(r, e);
9
9
  };
10
- var l = (r, e, t) => (Z(r, e, "access private method"), t);
11
- import { i as F, a as B, g as C, v as ee, c as te, b as se, d as re, e as ie, f as oe, s as ae } from "./image-preview-bundle.js";
12
- import { A as xe, j as Se, C as Ee, h as Ce, D as Le, m as qe, I as We, k as ke, M as Te, l as _e, R as Me, T as Oe } from "./image-preview-bundle.js";
13
- import { S as ne } from "./vendor-bundle.js";
14
- const $ = () => {
15
- const r = navigator.userAgent, e = {
10
+ var p = (r, t, e) => (ot(r, t, "access private method"), e);
11
+ import { i as Y, a as z, g as q, v as at, c as nt, b as lt, d as ct, e as dt, f as ut, s as pt } from "./image-preview-bundle.js";
12
+ import { A as Wt, j as kt, C as Tt, h as _t, D as Ot, m as Mt, I as It, k as Xt, M as Rt, l as Bt, R as Nt, T as Dt } from "./image-preview-bundle.js";
13
+ import { S as mt } from "./vendor-bundle.js";
14
+ const E = () => {
15
+ const r = navigator.userAgent, t = {
16
16
  // Firefox 1.0+
17
17
  isFirefox: typeof InstallTrigger < "u",
18
18
  // Opera 8.0+
@@ -30,7 +30,7 @@ const $ = () => {
30
30
  isSafari: !/chrome|crios|crmo/i.test(r) && /safari/i.test(r),
31
31
  // Chrome 1 - 79
32
32
  isChrome: !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime) || /chrome|crios|crmo/i.test(r)
33
- }, t = {
33
+ }, e = {
34
34
  // Android
35
35
  isAndroid: r.indexOf("Android") > -1 || r.indexOf("Adr") > -1,
36
36
  // iOS | ipad
@@ -45,124 +45,169 @@ const $ = () => {
45
45
  // Linux
46
46
  isLinux: r.indexOf("Linux") > -1
47
47
  };
48
- return { browser: e, mobile: t, os: s };
49
- }, le = () => {
50
- const { browser: r } = $();
51
- return Object.keys(r).find((e) => {
52
- if (r[e])
53
- return r[e];
48
+ return { browser: t, mobile: e, os: s };
49
+ }, ht = () => {
50
+ const { browser: r } = E();
51
+ return Object.keys(r).find((t) => {
52
+ if (r[t])
53
+ return r[t];
54
54
  });
55
- }, ce = () => {
56
- const { mobile: r } = $();
57
- return Object.keys(r).some((e) => {
58
- if (r[e])
59
- return r[e];
55
+ }, gt = () => {
56
+ const { mobile: r } = E();
57
+ return Object.keys(r).some((t) => {
58
+ if (r[t])
59
+ return r[t];
60
60
  });
61
- }, de = () => {
62
- const { os: r } = $();
63
- return Object.keys(r).find((e) => {
64
- if (r[e])
65
- return r[e];
61
+ }, bt = () => {
62
+ const { os: r } = E();
63
+ return Object.keys(r).find((t) => {
64
+ if (r[t])
65
+ return r[t];
66
66
  });
67
- }, ue = () => console.dir($());
68
- function we() {
67
+ }, ft = () => console.dir(E());
68
+ function At() {
69
69
  return {
70
- init: $,
71
- isBrowser4: le,
72
- isMobile4: ce,
73
- isOs4: de,
74
- logs: ue
70
+ init: E,
71
+ isBrowser4: ht,
72
+ isMobile4: gt,
73
+ isOs4: bt,
74
+ logs: ft
75
75
  };
76
76
  }
77
- const u = (r, e, t) => {
78
- r && (se(r) ? r.forEach((s) => s.style[e] = t) : r.style[e] = t);
77
+ const f = (r, t, e) => {
78
+ r && (lt(r) ? r.forEach((s) => s.style[t] = e) : r.style[t] = e);
79
79
  };
80
- var L, U, q, V, f, R, W, z, y, j, k, G;
81
- class ve {
82
- constructor(e, t = {}) {
83
- d(this, L);
84
- d(this, q);
80
+ var W, G, k, J, S, j, T, K, _, Q, O, Z, A, H, M, tt, x, P;
81
+ class xt {
82
+ constructor(t, e = {}) {
83
+ g(this, W);
84
+ g(this, k);
85
85
  // 取得元件上的設定值
86
- d(this, f);
86
+ g(this, S);
87
87
  // 設置設定值的 CSS 樣式
88
- d(this, W);
89
- d(this, y);
90
- d(this, k);
91
- !F(e) || !B(e) || (this.__storage__ = {
92
- el: e,
93
- options: t
94
- }, this.active = "data-article-active", l(this, L, U).call(this));
88
+ g(this, T);
89
+ // 表格拖曳功能
90
+ g(this, _);
91
+ // 設置表格凍結
92
+ g(this, O);
93
+ g(this, A);
94
+ g(this, M);
95
+ g(this, x);
96
+ !Y(t) || !z(t) || (this.__storage__ = {
97
+ el: t,
98
+ options: e
99
+ }, this.active = "data-article-active", p(this, W, G).call(this));
95
100
  }
96
101
  update() {
97
- const { elements: e } = this;
98
- e.forEach((t) => {
99
- t.querySelectorAll("._article").forEach((s) => {
100
- s.article = {}, s.article.parent = t, s.article.params = l(this, f, R).call(this, s), l(this, y, j).call(this, s);
102
+ const { elements: t } = this;
103
+ t.forEach((e) => {
104
+ e.querySelectorAll("._article").forEach((s) => {
105
+ s.article = {}, s.article.parent = e, s.article.params = p(this, S, j).call(this, s), p(this, A, H).call(this, s), p(this, x, P).call(this, s);
101
106
  });
102
107
  });
103
108
  }
104
109
  }
105
- L = new WeakSet(), U = function() {
106
- const { el: e, options: t } = this.__storage__, { SETTINGS: s } = re;
107
- this.elements = t.state == "not active" ? C(e + `:not([${this.active}])`) : C(e), this.elements = C(e), this.options = Object.assign({}, s, t), l(this, q, V).call(this);
108
- }, q = new WeakSet(), V = function() {
109
- const { elements: e } = this;
110
- e.forEach((t) => {
111
- t.setAttribute(this.active, ""), t.querySelectorAll("._article").forEach((s) => {
110
+ W = new WeakSet(), G = function() {
111
+ const { el: t, options: e } = this.__storage__, { SETTINGS: s } = ct;
112
+ this.elements = e.state == "not active" ? q(t + `:not([${this.active}])`) : q(t), this.elements = q(t), this.options = Object.assign({}, s, e), p(this, k, J).call(this);
113
+ }, k = new WeakSet(), J = function() {
114
+ const { elements: t } = this;
115
+ t.forEach((e) => {
116
+ e.setAttribute(this.active, ""), e.querySelectorAll("._article").forEach((s) => {
112
117
  var i, a;
113
- s.article = {}, s.article.parent = t, s.article.params = l(this, f, R).call(this, s), s.article.methods = {}, s.article.methods.update = this.update, l(a = l(i = l(this, W, z).call(this, s), y, j).call(i, s), k, G).call(a, s);
118
+ s.article = {}, s.article.parent = e, s.article.params = p(this, S, j).call(this, s), s.article.methods = {}, s.article.methods.update = this.update, p(a = p(i = p(this, T, K).call(this, s), A, H).call(i, s), M, tt).call(a, s), p(this, x, P).call(this, s);
114
119
  });
115
120
  });
116
- }, f = new WeakSet(), R = function(e) {
121
+ }, S = new WeakSet(), j = function(t) {
117
122
  return {
118
123
  // 元件本身
119
- $selector: e,
124
+ $selector: t,
120
125
  // 父層元件
121
- $backgroundWrap: e.querySelector("._backgroundWrap"),
122
- $contentWrap: e.querySelector("._contentWrap"),
123
- $wordCover: e.querySelector("._wordCover"),
124
- $buttonCover: e.querySelector("._buttonCover"),
125
- $imgCover: e.querySelector("._imgCover"),
126
- $cover: e.querySelectorAll("._cover"),
127
- $swiper: e.querySelector(".swiper"),
128
- $swiperButtonCover: e.querySelector(".swiper-button-cover"),
126
+ $backgroundWrap: t.querySelector("._backgroundWrap"),
127
+ $contentWrap: t.querySelector("._contentWrap"),
128
+ $wordCover: t.querySelector("._wordCover"),
129
+ $buttonCover: t.querySelector("._buttonCover"),
130
+ $imgCover: t.querySelector("._imgCover"),
131
+ $cover: t.querySelectorAll("._cover"),
132
+ $swiper: t.querySelector(".swiper"),
133
+ $table: t.querySelector("._table"),
134
+ $swiperButtonCover: t.querySelector(".swiper-button-cover"),
129
135
  // 子層元件
130
- $h: e.querySelector("._H"),
131
- $subH: e.querySelector("._subH"),
132
- $p: e.querySelector("._P"),
133
- $button: e.querySelector("._button"),
134
- $description: e.querySelectorAll("._description"),
135
- $video: e.querySelectorAll("[video-id]"),
136
+ $h: t.querySelector("._H"),
137
+ $subH: t.querySelector("._subH"),
138
+ $p: t.querySelector("._P"),
139
+ $button: t.querySelector("._button"),
140
+ $description: t.querySelectorAll("._description"),
141
+ $video: t.querySelectorAll("[video-id]"),
136
142
  // 父層設定
137
- typeFullColor: e.getAttribute("typeFull-color"),
138
- typeFullBoxColor: e.getAttribute("typeFull-boxcolor"),
143
+ typeFullColor: t.getAttribute("typeFull-color"),
144
+ typeFullBoxColor: t.getAttribute("typeFull-boxcolor"),
139
145
  // 子層設定
140
- hColor: e.getAttribute("h-color"),
141
- subHColor: e.getAttribute("subh-color"),
142
- pColor: e.getAttribute("p-color"),
143
- buttonColor: e.getAttribute("button-color"),
144
- buttonColorHover: e.getAttribute("button-color-hover"),
145
- buttonTextColor: e.getAttribute("button-textcolor"),
146
- descriptionColor: e.getAttribute("description-color")
146
+ hColor: t.getAttribute("h-color"),
147
+ subHColor: t.getAttribute("subh-color"),
148
+ pColor: t.getAttribute("p-color"),
149
+ buttonColor: t.getAttribute("button-color"),
150
+ buttonColorHover: t.getAttribute("button-color-hover"),
151
+ buttonTextColor: t.getAttribute("button-textcolor"),
152
+ descriptionColor: t.getAttribute("description-color")
147
153
  };
148
- }, W = new WeakSet(), z = function(e) {
149
- const { params: t } = e.article;
150
- return u(t.$h, "color", t.hColor), u(t.$subH, "color", t.subHColor), u(t.$p, "color", t.pColor), u(t.$description, "color", t.descriptionColor), u(t.$button, "backgroundColor", t.buttonColor), u(t.$button, "color", t.buttonTextColor), t.buttonColorHover && t.$button && (t.$button.appendChild(document.createElement("span")), u(t.$button.querySelector("span"), "backgroundColor", t.buttonColorHover)), u(t.$backgroundWrap, "backgroundColor", t.typeFullColor), u(t.$contentWrap, "backgroundColor", t.typeFullBoxColor), this;
151
- }, y = new WeakSet(), j = function(e) {
152
- const { params: t } = e.article;
153
- return t.$video.length && new ee(t.$video), this;
154
- }, k = new WeakSet(), G = function(e) {
155
- const { basic_rwd: t } = this.options, { params: s } = e.article;
154
+ }, T = new WeakSet(), K = function(t) {
155
+ const { params: e } = t.article;
156
+ return f(e.$h, "color", e.hColor), f(e.$subH, "color", e.subHColor), f(e.$p, "color", e.pColor), f(e.$description, "color", e.descriptionColor), f(e.$button, "backgroundColor", e.buttonColor), f(e.$button, "color", e.buttonTextColor), e.buttonColorHover && e.$button && (e.$button.appendChild(document.createElement("span")), f(e.$button.querySelector("span"), "backgroundColor", e.buttonColorHover)), f(e.$backgroundWrap, "backgroundColor", e.typeFullColor), f(e.$contentWrap, "backgroundColor", e.typeFullBoxColor), this;
157
+ }, _ = new WeakSet(), Q = function(t) {
158
+ const { params: e } = t.article, s = e.$table;
159
+ let i = !1, a, o, d, m;
160
+ s.addEventListener("mousedown", function(n) {
161
+ n.preventDefault(), i = !0;
162
+ const c = s.getBoundingClientRect();
163
+ a = n.pageX - c.left, o = n.pageY - c.top, d = s.scrollLeft, m = s.scrollTop;
164
+ }), s.addEventListener("mouseleave", function() {
165
+ i = !1;
166
+ }), s.addEventListener("mouseup", function() {
167
+ i = !1;
168
+ }), s.addEventListener("mousemove", function(n) {
169
+ if (!i)
170
+ return;
171
+ n.preventDefault();
172
+ const c = s.getBoundingClientRect(), u = n.pageX - c.left, h = n.pageY - c.top, v = u - a, l = h - o;
173
+ s.scrollLeft = d - v, s.scrollTop = m - l;
174
+ });
175
+ }, O = new WeakSet(), Z = function(t, e, s) {
176
+ const { basic_rwd: i } = this.options, a = [...t.querySelectorAll("tr")];
177
+ if (a.length === 0)
178
+ return;
179
+ const d = window.innerWidth < i ? 0 : s, m = [], n = a[0].querySelectorAll("th, td");
180
+ for (let c = 0; c < d; c++) {
181
+ let u = 0;
182
+ for (let h = 0; h < c; h++)
183
+ u += n[h].offsetWidth;
184
+ m[c] = u;
185
+ }
186
+ a.forEach((c, u) => {
187
+ let h = 0;
188
+ for (let l = 0; l < u; l++)
189
+ h += a[l].offsetHeight;
190
+ c.querySelectorAll("th, td").forEach((l, y) => {
191
+ l.style.zIndex = 0;
192
+ const b = getComputedStyle(l).backgroundColor;
193
+ u < e && (l.style.position = "sticky", l.style.top = `${h}px`, l.style.zIndex = 2, l.style.backgroundColor = b), y < d && (l.style.position = "sticky", l.style.left = `${m[y]}px`, l.style.zIndex = u < e ? 3 : 1, l.style.backgroundColor = b);
194
+ });
195
+ });
196
+ }, A = new WeakSet(), H = function(t) {
197
+ const { params: e } = t.article;
198
+ return e.$video.length && new at(e.$video), this;
199
+ }, M = new WeakSet(), tt = function(t) {
200
+ const { basic_rwd: e } = this.options, { params: s } = t.article;
156
201
  if (!s.$swiper)
157
202
  return;
158
- const i = te(), a = this;
203
+ const i = nt(), a = this;
159
204
  let o = {
160
205
  on: {
161
206
  init(n) {
162
- const g = n.$el[0];
163
- s.$video.length && ([...g.querySelectorAll("[video4-active]")].forEach((v) => {
164
- var x, p;
165
- (x = v.querySelector(ie.SETTINGS.videoButton)) == null || x.remove(), (p = v.querySelector(".overlay")) == null || p.remove(), v.removeAttribute("video4-active");
207
+ const c = n.$el[0];
208
+ s.$video.length && ([...c.querySelectorAll("[video4-active]")].forEach((h) => {
209
+ var v, l;
210
+ (v = h.querySelector(dt.SETTINGS.videoButton)) == null || v.remove(), (l = h.querySelector(".overlay")) == null || l.remove(), h.removeAttribute("video4-active");
166
211
  }), a.update());
167
212
  },
168
213
  observerUpdate(n) {
@@ -175,8 +220,8 @@ L = new WeakSet(), U = function() {
175
220
  if (s.$selector.setAttribute("img-swiper", "on"), s.$selector.classList.add(`swiper-${i}`), s.$selector.getAttribute("swiper-arrow") !== "off" && s.$selector.getAttribute("swiper-arrow")) {
176
221
  const n = document.createElement("div");
177
222
  n.className = `swiper-button-next swiper-${i}`, s.$swiperButtonCover.appendChild(n);
178
- const g = document.createElement("div");
179
- g.className = `swiper-button-prev swiper-${i}`, s.$swiperButtonCover.appendChild(g), o.navigation = {
223
+ const c = document.createElement("div");
224
+ c.className = `swiper-button-prev swiper-${i}`, s.$swiperButtonCover.appendChild(c), o.navigation = {
180
225
  nextEl: `.swiper-button-next.swiper-${i}`,
181
226
  prevEl: `.swiper-button-prev.swiper-${i}`
182
227
  };
@@ -188,27 +233,35 @@ L = new WeakSet(), U = function() {
188
233
  clickable: !0
189
234
  };
190
235
  }
191
- Number.parseInt(s.$selector.getAttribute("swiper-num")) && (o.breakpoints[t] = {
236
+ Number.parseInt(s.$selector.getAttribute("swiper-num")) && (o.breakpoints[e] = {
192
237
  slidesPerView: s.$selector.getAttribute("swiper-num") ? Number.parseInt(s.$selector.getAttribute("swiper-num")) > 5 ? 5 : Number.parseInt(s.$selector.getAttribute("swiper-num")) : 1
193
238
  }), (s.$selector.getAttribute("swiper-autoplay") !== "off" || !s.$selector.getAttribute("swiper-autoplay")) && (o.autoplay = {
194
239
  delay: 3e3,
195
240
  disableOnInteraction: !1
196
241
  }), (s.$selector.getAttribute("swiper-loop") !== "off" || !s.$selector.getAttribute("swiper-loop")) && (o.loop = !0), s.$selector.getAttribute("swiper-speed") && (o.speed = parseInt(s.$selector.getAttribute("swiper-speed"))), s.$selector.getAttribute("swiper-parallax") !== "off" && !s.$selector.getAttribute("swiper-loop") && (o.parallax = !0), s.$selector.getAttribute("swiper-pagination-dynamic") === "on" && (o.pagination.dynamicBullets = !0, o.pagination ? o.pagination.dynamicBullets = !0 : console.warn("pagination undefined"));
197
- let c = () => window.innerWidth > t && Number(s.$selector.getAttribute("swiper-num")) || 1;
198
- s.$swiper.querySelectorAll(".swiper-slide").length <= c() && (o.navigation = !1, o.pagination = !1, o.autoplay = !1, o.loop = !1, s.$selector.querySelector(".swiper-button-cover").style.display = "none", s.$selector.querySelector(".swiper-pagination").style.display = "none", s.$swiper.classList.add("swiper-no-swiping"));
199
- const h = new ne(s.$swiper, o);
200
- return e.article.swiperList = [], e.article.swiperList.push(h), this;
242
+ let d = () => window.innerWidth > e && Number(s.$selector.getAttribute("swiper-num")) || 1;
243
+ s.$swiper.querySelectorAll(".swiper-slide").length <= d() && (o.navigation = !1, o.pagination = !1, o.autoplay = !1, o.loop = !1, s.$selector.querySelector(".swiper-button-cover").style.display = "none", s.$selector.querySelector(".swiper-pagination").style.display = "none", s.$swiper.classList.add("swiper-no-swiping"));
244
+ const m = new mt(s.$swiper, o);
245
+ return t.article.swiperList = [], t.article.swiperList.push(m), this;
246
+ }, x = new WeakSet(), P = function(t) {
247
+ const { params: e } = t.article;
248
+ if (!e.$table)
249
+ return;
250
+ const s = t.getAttribute("freeze-table") === "on", i = parseInt(t.getAttribute("freeze-table-row") ?? "1", 10), a = parseInt(t.getAttribute("freeze-table-col") ?? "1", 10), o = t.querySelector("table"), d = t.querySelector("._tipText"), m = t.offsetWidth, n = o.offsetWidth, c = m < n, u = () => {
251
+ s && p(this, O, Z).call(this, o, i, a), (s || c) && p(this, _, Q).call(this, t), c ? (t.classList.add("overflow"), d.style.display = "flex") : (t.classList.remove("overflow"), d.style.display = "none");
252
+ };
253
+ return u(), window.addEventListener("resize", u), this;
201
254
  };
202
- let D = "ontouchstart" in document.documentElement ? "touchstart" : "mousedown", H = "ontouchend" in document.documentElement ? "touchend" : "mouseup", N = "ontouchmove" in document.documentElement ? "touchmove" : "mousemove";
203
- function m(r) {
204
- const e = window.getComputedStyle(r), t = e.transform || e.mozTransform;
205
- if (t === "none")
255
+ let F = "ontouchstart" in document.documentElement ? "touchstart" : "mousedown", U = "ontouchend" in document.documentElement ? "touchend" : "mouseup", N = "ontouchmove" in document.documentElement ? "touchmove" : "mousemove";
256
+ function w(r) {
257
+ const t = window.getComputedStyle(r), e = t.transform || t.mozTransform;
258
+ if (e === "none")
206
259
  return {
207
260
  x: 0,
208
261
  y: 0,
209
262
  z: 0
210
263
  };
211
- const s = t.includes("3d") ? "3d" : "2d", i = t.match(/matrix.*\((.+)\)/)[1].split(", ");
264
+ const s = e.includes("3d") ? "3d" : "2d", i = e.match(/matrix.*\((.+)\)/)[1].split(", ");
212
265
  if (s === "2d")
213
266
  return {
214
267
  x: Number(i[4]),
@@ -222,26 +275,26 @@ function m(r) {
222
275
  z: Number(i[14])
223
276
  };
224
277
  }
225
- function E(r) {
226
- const t = r.querySelector(".wrapper").querySelectorAll(".item");
278
+ function L(r) {
279
+ const e = r.querySelector(".wrapper").querySelectorAll(".item");
227
280
  let s = 0;
228
- return t.forEach((i) => {
229
- const a = getComputedStyle(i), o = parseInt(a.marginLeft), c = parseInt(a.marginRight);
230
- s += i.getBoundingClientRect().width + o + c;
281
+ return e.forEach((i) => {
282
+ const a = getComputedStyle(i), o = parseInt(a.marginLeft), d = parseInt(a.marginRight);
283
+ s += i.getBoundingClientRect().width + o + d;
231
284
  }), s;
232
285
  }
233
- function X(r) {
234
- if (m(r.slideWrapEl).x >= r.translateMin)
286
+ function D(r) {
287
+ if (w(r.slideWrapEl).x >= r.translateMin)
235
288
  return "is-start";
236
- if (m(r.slideWrapEl).x <= r.translateMax)
289
+ if (w(r.slideWrapEl).x <= r.translateMax)
237
290
  return "is-end";
238
- if (m(r.slideWrapEl).x < r.translateMin && m(r.slideWrapEl).x > r.translateMax)
291
+ if (w(r.slideWrapEl).x < r.translateMin && w(r.slideWrapEl).x > r.translateMax)
239
292
  return "is-middle";
240
293
  }
241
- function pe(r) {
242
- const e = r.el, t = e.querySelector(".wrapper");
243
- t.addEventListener(D, function(s) {
244
- switch (r.isDown = !0, r.slidable && t.classList.add("dragging"), D) {
294
+ function wt(r) {
295
+ const t = r.el, e = t.querySelector(".wrapper");
296
+ e.addEventListener(F, function(s) {
297
+ switch (r.isDown = !0, r.slidable && e.classList.add("dragging"), F) {
245
298
  case "mousedown":
246
299
  r.startX = s.pageX;
247
300
  break;
@@ -249,9 +302,9 @@ function pe(r) {
249
302
  r.startX = s.changedTouches[0].pageX;
250
303
  break;
251
304
  }
252
- r.nowTranslateX = m(t).x;
253
- }), t.addEventListener(H, function(s) {
254
- r.isDown = !1, t.classList.remove("dragging"), t.classList.remove("moving");
305
+ r.nowTranslateX = w(e).x;
306
+ }), e.addEventListener(U, function(s) {
307
+ r.isDown = !1, e.classList.remove("dragging"), e.classList.remove("moving");
255
308
  let i;
256
309
  switch (N) {
257
310
  case "mousemove":
@@ -262,16 +315,16 @@ function pe(r) {
262
315
  break;
263
316
  }
264
317
  if (i === 0 && s.target.closest(".item")) {
265
- if (H === "mouseup" && s.button !== 0)
318
+ if (U === "mouseup" && s.button !== 0)
266
319
  return;
267
- t.querySelectorAll(".item").forEach((o) => {
320
+ e.querySelectorAll(".item").forEach((o) => {
268
321
  o.classList.remove("active");
269
322
  }), s.target.closest(".item").classList.add("active"), r.moveActive(r.params.speed);
270
323
  } else
271
- r.slidable && r.resetPos(e);
272
- }), t.addEventListener("mouseleave", function() {
273
- r.isDown && r.slidable && (r.isDown = !1, t.classList.remove("dragging"), t.classList.remove("moving"), r.resetPos(e));
274
- }), t.addEventListener(N, function(s) {
324
+ r.slidable && r.resetPos(t);
325
+ }), e.addEventListener("mouseleave", function() {
326
+ r.isDown && r.slidable && (r.isDown = !1, e.classList.remove("dragging"), e.classList.remove("moving"), r.resetPos(t));
327
+ }), e.addEventListener(N, function(s) {
275
328
  if (r.draggable && r.slidable) {
276
329
  if (!r.isDown)
277
330
  return;
@@ -286,123 +339,123 @@ function pe(r) {
286
339
  break;
287
340
  }
288
341
  if (i !== 0) {
289
- t.classList.add("moving");
342
+ e.classList.add("moving");
290
343
  const a = {
291
344
  transition: "all 0ms ease 0s",
292
345
  transform: `translate3d(${r.nowTranslateX + i}px,0,0)`
293
346
  };
294
- Object.assign(t.style, a);
347
+ Object.assign(e.style, a);
295
348
  }
296
349
  }
297
350
  });
298
351
  }
299
- function me(r) {
300
- const e = r.querySelectorAll("a");
301
- for (var t = 0, s = e.length; t < s; t++)
302
- e[t].draggable = !1;
352
+ function vt(r) {
353
+ const t = r.querySelectorAll("a");
354
+ for (var e = 0, s = t.length; e < s; e++)
355
+ t[e].draggable = !1;
303
356
  }
304
- class fe {
305
- constructor(e, t) {
306
- this.el = typeof e == "string" ? document.querySelector(e) : e, this.slideWrapEl = this.el.querySelector(".wrapper"), this.params = {
357
+ class Et {
358
+ constructor(t, e) {
359
+ this.el = typeof t == "string" ? document.querySelector(t) : t, this.slideWrapEl = this.el.querySelector(".wrapper"), this.params = {
307
360
  speed: 300,
308
361
  clickSwitch: !0,
309
362
  breakpoint: !1
310
- }, Object.assign(this.params, t), this.draggable = !0, this.isDown = !1, this.startX = 0, this.nowTranslateX = m(this.slideWrapEl).x, this.slideTotalWidth = E(this.el), this.translateMin = 0, this.translateMax = -Math.floor(
363
+ }, Object.assign(this.params, e), this.draggable = !0, this.isDown = !1, this.startX = 0, this.nowTranslateX = w(this.slideWrapEl).x, this.slideTotalWidth = L(this.el), this.translateMin = 0, this.translateMax = -Math.floor(
311
364
  Math.abs(
312
- E(this.el) - this.el.querySelector(".wrapper").getBoundingClientRect().width
365
+ L(this.el) - this.el.querySelector(".wrapper").getBoundingClientRect().width
313
366
  )
314
367
  ), this.slidable = this.slideTotalWidth > Math.round(this.el.getBoundingClientRect().width) && (!this.params.breakpoint || window.innerWidth <= this.params.breakpoint), this.init();
315
368
  }
316
369
  init() {
317
- const e = this;
318
- e.slidable && (e.slideWrapEl.style.width = `${e.slideTotalWidth}px`, e.el.classList.add("slidable"), e.slideWrapEl.querySelector(".item.active") && e.moveActive()), window.addEventListener("resize", function() {
319
- e.update();
320
- }), pe(e), me(e.el);
370
+ const t = this;
371
+ t.slidable && (t.slideWrapEl.style.width = `${t.slideTotalWidth}px`, t.el.classList.add("slidable"), t.slideWrapEl.querySelector(".item.active") && t.moveActive()), window.addEventListener("resize", function() {
372
+ t.update();
373
+ }), wt(t), vt(t.el);
321
374
  }
322
- moveActive(e) {
323
- const t = this, s = t.slideWrapEl.querySelector(".item.active"), a = s.previousElementSibling ? s.offsetLeft - t.el.clientWidth / 2 + s.clientWidth / 2 : 0;
324
- if (t.slidable) {
325
- if (-a < 0 && -a > t.translateMax) {
375
+ moveActive(t) {
376
+ const e = this, s = e.slideWrapEl.querySelector(".item.active"), a = s.previousElementSibling ? s.offsetLeft - e.el.clientWidth / 2 + s.clientWidth / 2 : 0;
377
+ if (e.slidable) {
378
+ if (-a < 0 && -a > e.translateMax) {
326
379
  const o = {
327
- transition: `all ${e || 0}ms ease 0s`,
380
+ transition: `all ${t || 0}ms ease 0s`,
328
381
  transform: `translate3d(-${a}px,0,0)`
329
382
  };
330
- Object.assign(t.slideWrapEl.style, o);
383
+ Object.assign(e.slideWrapEl.style, o);
331
384
  } else if (-a >= 0) {
332
385
  const o = {
333
- transition: `all ${e || 0}ms ease 0s`,
386
+ transition: `all ${t || 0}ms ease 0s`,
334
387
  transform: "translate3d(0,0,0)"
335
388
  };
336
- Object.assign(t.slideWrapEl.style, o);
389
+ Object.assign(e.slideWrapEl.style, o);
337
390
  } else {
338
391
  const o = {
339
- transition: `all ${e || 0}ms ease 0s`,
340
- transform: `translate3d(${t.translateMax}px,0,0)`
392
+ transition: `all ${t || 0}ms ease 0s`,
393
+ transform: `translate3d(${e.translateMax}px,0,0)`
341
394
  };
342
- Object.assign(t.slideWrapEl.style, o);
395
+ Object.assign(e.slideWrapEl.style, o);
343
396
  }
344
- if (e)
345
- t.slideWrapEl.addEventListener(
397
+ if (t)
398
+ e.slideWrapEl.addEventListener(
346
399
  "transitionend",
347
400
  function() {
348
- switch (t.nowTranslateX = m(t.slideWrapEl).x, X(t)) {
401
+ switch (e.nowTranslateX = w(e.slideWrapEl).x, D(e)) {
349
402
  case "is-start":
350
- t.el.classList.add("is-start"), t.el.classList.remove("is-end");
403
+ e.el.classList.add("is-start"), e.el.classList.remove("is-end");
351
404
  break;
352
405
  case "is-middle":
353
- t.el.classList.remove("is-start"), t.el.classList.remove("is-end");
406
+ e.el.classList.remove("is-start"), e.el.classList.remove("is-end");
354
407
  break;
355
408
  case "is-end":
356
- t.el.classList.remove("is-start"), t.el.classList.add("is-end");
409
+ e.el.classList.remove("is-start"), e.el.classList.add("is-end");
357
410
  break;
358
411
  }
359
412
  },
360
413
  !1
361
414
  );
362
415
  else
363
- switch (t.nowTranslateX = m(t.slideWrapEl).x, X(t)) {
416
+ switch (e.nowTranslateX = w(e.slideWrapEl).x, D(e)) {
364
417
  case "is-start":
365
- t.el.classList.add("is-start"), t.el.classList.remove("is-end");
418
+ e.el.classList.add("is-start"), e.el.classList.remove("is-end");
366
419
  break;
367
420
  case "is-middle":
368
- t.el.classList.remove("is-start"), t.el.classList.remove("is-end");
421
+ e.el.classList.remove("is-start"), e.el.classList.remove("is-end");
369
422
  break;
370
423
  case "is-end":
371
- t.el.classList.remove("is-start"), t.el.classList.add("is-end");
424
+ e.el.classList.remove("is-start"), e.el.classList.add("is-end");
372
425
  break;
373
426
  }
374
427
  }
375
428
  }
376
429
  resetPos() {
377
- const e = this;
378
- switch (X(e)) {
430
+ const t = this;
431
+ switch (D(t)) {
379
432
  case "is-start":
380
- e.el.classList.add("is-start"), e.el.classList.remove("is-end"), Object.assign(e.slideWrapEl.style, {
381
- transition: `all ${e.params.speed}ms ease 0s`,
433
+ t.el.classList.add("is-start"), t.el.classList.remove("is-end"), Object.assign(t.slideWrapEl.style, {
434
+ transition: `all ${t.params.speed}ms ease 0s`,
382
435
  transform: "translate3d(0,0,0)"
383
436
  });
384
437
  break;
385
438
  case "is-middle":
386
- e.el.classList.remove("is-start"), e.el.classList.remove("is-end");
439
+ t.el.classList.remove("is-start"), t.el.classList.remove("is-end");
387
440
  break;
388
441
  case "is-end":
389
- e.el.classList.remove("is-start"), e.el.classList.add("is-end"), Object.assign(e.slideWrapEl.style, {
390
- transition: `all ${e.params.speed}ms ease 0s`,
391
- transform: `translate3d(${e.translateMax}px,0,0)`
442
+ t.el.classList.remove("is-start"), t.el.classList.add("is-end"), Object.assign(t.slideWrapEl.style, {
443
+ transition: `all ${t.params.speed}ms ease 0s`,
444
+ transform: `translate3d(${t.translateMax}px,0,0)`
392
445
  });
393
446
  break;
394
447
  }
395
448
  }
396
449
  update() {
397
- const e = this;
398
- e.el.querySelector(".wrapper").removeAttribute("style"), e.slideTotalWidth = E(e.el), e.translateMax = -Math.floor(
450
+ const t = this;
451
+ t.el.querySelector(".wrapper").removeAttribute("style"), t.slideTotalWidth = L(t.el), t.translateMax = -Math.floor(
399
452
  Math.abs(
400
- E(e.el) - e.el.querySelector(".wrapper").getBoundingClientRect().width
453
+ L(t.el) - t.el.querySelector(".wrapper").getBoundingClientRect().width
401
454
  )
402
- ), e.slidable = e.slideTotalWidth > Math.round(e.el.getBoundingClientRect().width) && (!e.params.breakpoint || window.innerWidth <= e.params.breakpoint), e.slidable ? (e.slideWrapEl.style.width = `${e.slideTotalWidth}px`, e.el.classList.add("slidable"), e.slideWrapEl.querySelector(".item.active") && e.moveActive()) : (e.el.classList.remove("slidable"), e.el.classList.remove("is-start"), e.el.classList.remove("is-end"), e.slideWrapEl.removeAttribute("style"));
455
+ ), t.slidable = t.slideTotalWidth > Math.round(t.el.getBoundingClientRect().width) && (!t.params.breakpoint || window.innerWidth <= t.params.breakpoint), t.slidable ? (t.slideWrapEl.style.width = `${t.slideTotalWidth}px`, t.el.classList.add("slidable"), t.slideWrapEl.querySelector(".item.active") && t.moveActive()) : (t.el.classList.remove("slidable"), t.el.classList.remove("is-start"), t.el.classList.remove("is-end"), t.slideWrapEl.removeAttribute("style"));
403
456
  }
404
457
  }
405
- const P = (r) => {
458
+ const V = (r) => {
406
459
  if (r == "facebook")
407
460
  return "https://www.facebook.com/sharer/sharer.php?u=";
408
461
  if (r == "line")
@@ -414,95 +467,95 @@ const P = (r) => {
414
467
  if (r == "telegram")
415
468
  return "https://telegram.me/share/url?url=";
416
469
  };
417
- var T, Y, _, J, M, K;
418
- class ye {
419
- constructor(e, t = {}) {
420
- d(this, T);
421
- d(this, _);
422
- d(this, M);
470
+ var I, et, X, st, R, rt;
471
+ class Ct {
472
+ constructor(t, e = {}) {
473
+ g(this, I);
474
+ g(this, X);
475
+ g(this, R);
423
476
  this.__storage__ = {
424
- el: e,
425
- options: t
426
- }, l(this, T, Y).call(this);
477
+ el: t,
478
+ options: e
479
+ }, p(this, I, et).call(this);
427
480
  }
428
481
  }
429
- T = new WeakSet(), Y = function() {
430
- const { el: e, options: t } = this.__storage__, { SETTINGS: s } = ae;
431
- !F(e) || !B(e) || (this.elements = C(e), this.options = Object.assign({}, s, t), l(this, _, J).call(this));
432
- }, _ = new WeakSet(), J = function() {
433
- const { elements: e, options: t } = this;
434
- e.forEach((s) => {
482
+ I = new WeakSet(), et = function() {
483
+ const { el: t, options: e } = this.__storage__, { SETTINGS: s } = pt;
484
+ !Y(t) || !z(t) || (this.elements = q(t), this.options = Object.assign({}, s, e), p(this, X, st).call(this));
485
+ }, X = new WeakSet(), st = function() {
486
+ const { elements: t, options: e } = this;
487
+ t.forEach((s) => {
435
488
  s.querySelectorAll("[share-target]").forEach((i) => {
436
- i.share = {}, i.share.instance = this, i.share.params = t, i.share.eventHandler = l(this, M, K), i.addEventListener("click", i.share.eventHandler);
489
+ i.share = {}, i.share.instance = this, i.share.params = e, i.share.eventHandler = p(this, R, rt), i.addEventListener("click", i.share.eventHandler);
437
490
  });
438
491
  });
439
- }, M = new WeakSet(), K = function() {
440
- const { eventHandler: e, params: t } = this.share, s = this.getAttribute("share-target"), i = {
492
+ }, R = new WeakSet(), rt = function() {
493
+ const { eventHandler: t, params: e } = this.share, s = this.getAttribute("share-target"), i = {
441
494
  source: this.getAttribute("utm-source"),
442
495
  medium: this.getAttribute("utm-medium"),
443
496
  campaign: this.getAttribute("utm-campaign")
444
497
  }, a = {
445
- success: this.getAttribute("copy-success") || t.success,
446
- text: this.getAttribute("copy-text") || t.text,
447
- className: this.getAttribute("copy-class") || t.className,
448
- duration: this.getAttribute("copy-duration") || t.duration
498
+ success: this.getAttribute("copy-success") || e.success,
499
+ text: this.getAttribute("copy-text") || e.text,
500
+ className: this.getAttribute("copy-class") || e.className,
501
+ duration: this.getAttribute("copy-duration") || e.duration
449
502
  }, o = encodeURIComponent(document.URL);
450
- let c = o;
503
+ let d = o;
451
504
  if (s == "wechat") {
452
505
  window.open(`https://api.qrserver.com/v1/create-qr-code/?data=${o}&size=250x250`, "share to wechat", "width=300,height=300");
453
506
  return;
454
507
  }
455
508
  if (s == "url") {
456
- if (B(".copied-wrapper"))
509
+ if (z(".copied-wrapper"))
457
510
  return;
458
- document.querySelector("body").insertAdjacentHTML(oe.append, `<div class='copied-wrapper'><div class='text'>${a.success ? a.success : ""}</div><input id='clipboard' type='text' readonly></div>`);
459
- const h = document.querySelector(".copied-wrapper");
460
- a.className && h.classList.add(a.className), h.style.top = this.getBoundingClientRect().top + window.scrollY + "px", h.style.left = this.getBoundingClientRect().left + this.getBoundingClientRect().width / 2 + "px", h.style.display = "block";
511
+ document.querySelector("body").insertAdjacentHTML(ut.append, `<div class='copied-wrapper'><div class='text'>${a.success ? a.success : ""}</div><input id='clipboard' type='text' readonly></div>`);
512
+ const m = document.querySelector(".copied-wrapper");
513
+ a.className && m.classList.add(a.className), m.style.top = this.getBoundingClientRect().top + window.scrollY + "px", m.style.left = this.getBoundingClientRect().left + this.getBoundingClientRect().width / 2 + "px", m.style.display = "block";
461
514
  const n = document.querySelector("#clipboard");
462
515
  if (n.value = a.text ?? window.location.href, n.setSelectionRange(0, 9999), n.select(), document.execCommand("copy")) {
463
516
  document.execCommand("copy");
464
- const g = document.querySelector(".copied-wrapper"), A = document.querySelector(".copied-wrapper .text");
465
- A.style.display = "block", A.style.opacity = 0;
466
- const v = (p, O) => {
517
+ const c = document.querySelector(".copied-wrapper"), u = document.querySelector(".copied-wrapper .text");
518
+ u.style.display = "block", u.style.opacity = 0;
519
+ const h = (l, y) => {
467
520
  let b = 0;
468
- const w = 50, S = w / O, I = setInterval(function() {
469
- b += S, p.style.opacity = b, b >= 1 && (clearInterval(I), setTimeout(function() {
470
- x(p, 300, function() {
471
- g.remove();
521
+ const $ = 50, C = $ / y, B = setInterval(function() {
522
+ b += C, l.style.opacity = b, b >= 1 && (clearInterval(B), setTimeout(function() {
523
+ v(l, 300, function() {
524
+ c.remove();
472
525
  });
473
526
  }, a.duration));
474
- }, w);
475
- }, x = (p, O, b) => {
476
- let w = 1;
477
- const S = 50, I = S / O, Q = setInterval(() => {
478
- w -= I, p.style.opacity = w, w <= 0 && (clearInterval(Q), p.style.display = "none", b && b());
479
- }, S);
527
+ }, $);
528
+ }, v = (l, y, b) => {
529
+ let $ = 1;
530
+ const C = 50, B = C / y, it = setInterval(() => {
531
+ $ -= B, l.style.opacity = $, $ <= 0 && (clearInterval(it), l.style.display = "none", b && b());
532
+ }, C);
480
533
  };
481
- v(A, 300);
534
+ h(u, 300);
482
535
  }
483
536
  return;
484
537
  }
485
- c = `${c}${i.source ? `?utm_source=${i.source}` : ""}${i.medium ? `&utm_medium${i.medium}` : ""}${i.campaign ? `&utm_campaign${i.campaign}` : ""}`, c = c.replace("?", "%3F").replace(new RegExp("&", "g"), "%26"), s == "line" ? window.open(`${P(s)}${o}`) : window.open(`${P(s)}${c}&quote=${c}`), this.removeEventListener("click", e), setTimeout(() => {
486
- this.addEventListener("click", e);
538
+ d = `${d}${i.source ? `?utm_source=${i.source}` : ""}${i.medium ? `&utm_medium${i.medium}` : ""}${i.campaign ? `&utm_campaign${i.campaign}` : ""}`, d = d.replace("?", "%3F").replace(new RegExp("&", "g"), "%26"), s == "line" ? window.open(`${V(s)}${o}`) : window.open(`${V(s)}${d}&quote=${d}`), this.removeEventListener("click", t), setTimeout(() => {
539
+ this.addEventListener("click", t);
487
540
  }, 100);
488
541
  };
489
542
  export {
490
- xe as Anchor4,
491
- Se as Aost4,
492
- ve as Article4,
493
- fe as CategorySlider,
494
- Ee as Collapse4,
495
- Ce as Configs,
496
- we as Detect4,
497
- Le as Dropdown4,
498
- qe as ImagePreview,
499
- We as ImageValidate,
500
- ke as Marquee4,
501
- Te as Modal4,
502
- _e as Multipurpose4,
503
- Me as Ripple4,
504
- ye as Share4,
505
- Oe as Tab4,
506
- ee as Video4
543
+ Wt as Anchor4,
544
+ kt as Aost4,
545
+ xt as Article4,
546
+ Et as CategorySlider,
547
+ Tt as Collapse4,
548
+ _t as Configs,
549
+ At as Detect4,
550
+ Ot as Dropdown4,
551
+ Mt as ImagePreview,
552
+ It as ImageValidate,
553
+ Xt as Marquee4,
554
+ Rt as Modal4,
555
+ Bt as Multipurpose4,
556
+ Nt as Ripple4,
557
+ Ct as Share4,
558
+ Dt as Tab4,
559
+ at as Video4
507
560
  };
508
561
  //# sourceMappingURL=fesd-bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fesd-bundle.js","sources":["../src/fesd/detect4/detect4.js","../src/fesd/article4/article4.js","../src/fesd/category-slider/category-slider.js","../src/fesd/share4/share4.js"],"sourcesContent":["export const init = () => {\n const userAgent = navigator.userAgent;\n const browser = {\n // Firefox 1.0+\n isFirefox: typeof InstallTrigger !== 'undefined',\n // Opera 8.0+\n isOpera: (!!window.opr && !!opr.addons) || !!window.opera || userAgent.indexOf(' OPR/') >= 0,\n // Internet Explorer 6-11\n isIE: /*@cc_on!@*/ false || !!document.documentMode,\n // Edge 20+\n isEdge: !(false || !!document.documentMode) && !!window.StyleMedia,\n // Edge (based on chromium) detection\n isEdgeChromium: /\\sedg\\//i.test(userAgent) || /edg([ea]|ios)/i.test(userAgent),\n // Safari 3.0+ \"[object HTMLElementConstructor]\"\n isSafari: !/chrome|crios|crmo/i.test(userAgent) && /safari/i.test(userAgent),\n // Chrome 1 - 79\n isChrome: (!!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime)) || /chrome|crios|crmo/i.test(userAgent),\n };\n const mobile = {\n // Android\n isAndroid: userAgent.indexOf('Android') > -1 || userAgent.indexOf('Adr') > -1,\n // iOS | ipad\n isiOS: userAgent.indexOf('Mac') > -1 && 'ontouchend' in document,\n };\n const os = {\n // window\n isWindows: userAgent.indexOf('Win') > -1,\n // macos\n isMacOS: userAgent.indexOf('Mac') > -1,\n // UNIX\n isUNIX: userAgent.indexOf('X11') > -1,\n // Linux\n isLinux: userAgent.indexOf('Linux') > -1,\n };\n return { browser, mobile, os }\n}\n\nexport const isBrowser4 = () => {\n const { browser } = init();\n return Object.keys(browser).find(key => {\n if (browser[key]) return browser[key];\n });\n};\n\nexport const isMobile4 = () => {\n const { mobile } = init();\n return Object.keys(mobile).some(key => {\n if (mobile[key]) return mobile[key];\n });\n};\n\nexport const isOs4 = () => {\n const { os } = init();\n return Object.keys(os).find(key => {\n if (os[key]) return os[key];\n });\n};\n\nexport const logs = () => console.dir(init());\n\nexport default function Detect4() {\n return {\n init,\n isBrowser4,\n isMobile4,\n isOs4,\n logs\n }\n}\n\n\n","import { Swiper as SwiperV8 } from 'swiper/bundle'\nimport { configs } from '../configs'\nimport Video4 from '../video4'\n// import Swiper bundle with all modules installed\nimport {\n isString,\n isNodeList,\n isElementExist,\n getAllElements,\n createUid\n} from '../commons'\n\n// 設置 CSS 樣式\nconst setCss = (target, style, css) => {\n if (!target) return;\n\n // 若是 NodeList 則需使用 foreach set css\n if (isNodeList(target)) target.forEach(el => (el.style[style] = css));\n else target.style[style] = css;\n};\n\nclass Article4 {\n constructor(el, options = {}) {\n if (!isString(el) || !isElementExist(el)) return;\n\n this.__storage__ = {\n el,\n options,\n };\n\n this.active = 'data-article-active'\n this.#create();\n }\n\n #create() {\n const { el, options } = this.__storage__;\n const { SETTINGS } = configs.article4;\n\n //wade\n this.elements = options.state == \"not active\" ? getAllElements(el + `:not([${this.active}])`) : getAllElements(el);\n this.elements = getAllElements(el);\n this.options = Object.assign({}, SETTINGS, options);\n\n this.#init();\n }\n\n #init() {\n const { elements } = this;\n\n elements.forEach(parent => {\n //wade\n parent.setAttribute(this.active, '')\n\n parent.querySelectorAll('._article').forEach(el => {\n el.article = {};\n el.article.parent = parent;\n el.article.params = this.#getArticleData(el);\n el.article.methods = {};\n el.article.methods.update = this.update;\n this.#setStyle(el).#createVideo4(el).#createSwiper(el);\n });\n\n\n });\n }\n\n // 取得元件上的設定值\n #getArticleData(element) {\n return {\n // 元件本身\n $selector: element,\n\n // 父層元件\n $backgroundWrap: element.querySelector('._backgroundWrap'),\n $contentWrap: element.querySelector('._contentWrap'),\n $wordCover: element.querySelector('._wordCover'),\n $buttonCover: element.querySelector('._buttonCover'),\n $imgCover: element.querySelector('._imgCover'),\n $cover: element.querySelectorAll('._cover'),\n $swiper: element.querySelector('.swiper'),\n $swiperButtonCover: element.querySelector('.swiper-button-cover'),\n\n // 子層元件\n $h: element.querySelector('._H'),\n $subH: element.querySelector('._subH'),\n $p: element.querySelector('._P'),\n $button: element.querySelector('._button'),\n $description: element.querySelectorAll('._description'),\n $video: element.querySelectorAll('[video-id]'),\n\n // 父層設定\n typeFullColor: element.getAttribute('typeFull-color'),\n typeFullBoxColor: element.getAttribute('typeFull-boxcolor'),\n\n // 子層設定\n hColor: element.getAttribute('h-color'),\n subHColor: element.getAttribute('subh-color'),\n pColor: element.getAttribute('p-color'),\n buttonColor: element.getAttribute('button-color'),\n buttonColorHover: element.getAttribute('button-color-hover'),\n buttonTextColor: element.getAttribute('button-textcolor'),\n descriptionColor: element.getAttribute('description-color'),\n };\n }\n\n // 設置設定值的 CSS 樣式\n #setStyle(element) {\n const { params } = element.article;\n\n // article ._H\n setCss(params.$h, 'color', params.hColor);\n\n // article ._subH\n setCss(params.$subH, 'color', params.subHColor);\n\n // article ._P\n setCss(params.$p, 'color', params.pColor);\n\n // imgCover ._description\n setCss(params.$description, 'color', params.descriptionColor);\n\n // button background-color && text color\n setCss(params.$button, 'backgroundColor', params.buttonColor);\n setCss(params.$button, 'color', params.buttonTextColor);\n\n // button hover color\n if (params.buttonColorHover && params.$button) {\n params.$button.appendChild(document.createElement('span'));\n setCss(params.$button.querySelector('span'), 'backgroundColor', params.buttonColorHover);\n }\n\n // typeFull background-color\n setCss(params.$backgroundWrap, 'backgroundColor', params.typeFullColor);\n\n // typeFull box background-color\n setCss(params.$contentWrap, 'backgroundColor', params.typeFullBoxColor);\n\n return this;\n }\n\n #createVideo4(element) {\n const { params } = element.article;\n\n if (params.$video.length) {\n const video = new Video4(params.$video);\n }\n\n return this;\n }\n\n #createSwiper(element) {\n const { basic_rwd } = this.options;\n\n const { params } = element.article;\n\n // 判斷是否擁有 swiper4 結構\n if (!params.$swiper) return;\n\n // set id\n const $id = createUid();\n\n const $this = this;\n\n // set swiper\n let $swiperSet = {\n on: {\n init(swiper) {\n const container = swiper.$el[0];\n // video4 重複綁定修正\n if (params.$video.length) {\n // 應該抓 DB 設定的 classname\n const allVideo4 = container.querySelectorAll('[video4-active]');\n [...allVideo4].forEach(element => {\n element.querySelector(configs.video4.SETTINGS.videoButton)?.remove();\n element.querySelector('.overlay')?.remove();\n element.removeAttribute('video4-active');\n });\n $this.update();\n }\n },\n observerUpdate(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n swiper.update();\n }\n },\n },\n observer: true,\n breakpoints: {},\n };\n\n params.$selector.setAttribute('img-swiper', 'on');\n params.$selector.classList.add(`swiper-${$id}`);\n\n // swiper navigation (預設為 off)\n if (params.$selector.getAttribute('swiper-arrow') !== 'off' && params.$selector.getAttribute('swiper-arrow')) {\n const next = document.createElement('div');\n next.className = `swiper-button-next swiper-${$id}`;\n params.$swiperButtonCover.appendChild(next);\n\n const prev = document.createElement('div');\n prev.className = `swiper-button-prev swiper-${$id}`;\n params.$swiperButtonCover.appendChild(prev);\n\n $swiperSet.navigation = {\n nextEl: `.swiper-button-next.swiper-${$id}`,\n prevEl: `.swiper-button-prev.swiper-${$id}`,\n };\n }\n\n // swiper pagination (預設為 on)\n if (params.$selector.getAttribute('swiper-nav') !== 'off' || !params.$selector.getAttribute('swiper-nav')) {\n const pagination = document.createElement('div');\n pagination.className = `swiper-pagination swiper-${$id}`;\n params.$swiper.appendChild(pagination);\n\n $swiperSet.pagination = {\n el: `.swiper-pagination.swiper-${$id}`,\n clickable: true,\n };\n }\n\n // slidesPerView\n if (Number.parseInt(params.$selector.getAttribute('swiper-num'))) {\n $swiperSet.breakpoints[basic_rwd] = {\n slidesPerView: params.$selector.getAttribute('swiper-num') ? (Number.parseInt(params.$selector.getAttribute('swiper-num')) > 5 ? 5 : Number.parseInt(params.$selector.getAttribute('swiper-num'))) : 1,\n };\n }\n\n // autoplay (預設為 on)\n if (params.$selector.getAttribute('swiper-autoplay') !== 'off' || !params.$selector.getAttribute('swiper-autoplay')) {\n $swiperSet.autoplay = {\n delay: 3000,\n disableOnInteraction: false,\n };\n }\n\n // loop (預設為 on)\n if (params.$selector.getAttribute('swiper-loop') !== 'off' || !params.$selector.getAttribute('swiper-loop')) {\n $swiperSet.loop = true;\n }\n\n // speed\n if (params.$selector.getAttribute('swiper-speed')) {\n $swiperSet.speed = parseInt(params.$selector.getAttribute('swiper-speed'));\n }\n\n // parallax (預設為 off)\n if (params.$selector.getAttribute('swiper-parallax') !== 'off' && !params.$selector.getAttribute('swiper-loop')) {\n $swiperSet.parallax = true;\n }\n\n // pagination dynamicBullets (預設為 off)\n if (params.$selector.getAttribute('swiper-pagination-dynamic') === 'on') {\n $swiperSet.pagination.dynamicBullets = true;\n // 20240904 Scarlett\n if ($swiperSet.pagination) {\n $swiperSet.pagination.dynamicBullets = true;\n } else {\n console.warn('pagination undefined');\n }\n }\n\n // 若 swiper 只有一筆輪播則隱藏 navigation 及 pagination\n let gate = () => (window.innerWidth > basic_rwd ? Number(params.$selector.getAttribute('swiper-num')) || 1 : 1);\n\n if (params.$swiper.querySelectorAll('.swiper-slide').length <= gate()) {\n $swiperSet.navigation = false;\n $swiperSet.pagination = false;\n $swiperSet.autoplay = false;\n $swiperSet.loop = false;\n\n params.$selector.querySelector('.swiper-button-cover').style.display = 'none';\n params.$selector.querySelector('.swiper-pagination').style.display = 'none';\n\n params.$swiper.classList.add('swiper-no-swiping');\n }\n\n const $swiper = new SwiperV8(params.$swiper, $swiperSet);\n\n element.article.swiperList = [];\n element.article.swiperList.push($swiper);\n\n return this;\n }\n update() {\n const { elements } = this;\n\n elements.forEach(parent => {\n parent.querySelectorAll('._article').forEach(el => {\n el.article = {};\n el.article.parent = parent;\n el.article.params = this.#getArticleData(el);\n\n this.#createVideo4(el);\n });\n });\n }\n}\n\nexport default Article4;\n","// 判斷操作事件使用 mouse 或是 touch\nlet operateStart = 'ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown';\nlet operateEnd = 'ontouchend' in document.documentElement ? 'touchend' : 'mouseup';\nlet operateMove = 'ontouchmove' in document.documentElement ? 'touchmove' : 'mousemove';\n\n/* ---------------------------- Function 宣告 --------------------------------- */\n\n// 獲取 translate 數值\nfunction getTranslateValues(element) {\n const style = window.getComputedStyle(element);\n const matrix = style['transform'] || style.mozTransform;\n\n // No transform property. Simply return 0 values.\n if (matrix === 'none') {\n return {\n x: 0,\n y: 0,\n z: 0,\n };\n }\n\n // Can either be 2d or 3d transform\n const matrixType = matrix.includes('3d') ? '3d' : '2d';\n const matrixValues = matrix.match(/matrix.*\\((.+)\\)/)[1].split(', ');\n\n // 2d matrices have 6 values\n // Last 2 values are X and Y.\n // 2d matrices does not have Z value.\n if (matrixType === '2d') {\n return {\n x: Number(matrixValues[4]),\n y: Number(matrixValues[5]),\n z: 0,\n };\n }\n\n // 3d matrices have 16 values\n // The 13th, 14th, and 15th values are X, Y, and Z\n if (matrixType === '3d') {\n return {\n x: Number(matrixValues[12]),\n y: Number(matrixValues[13]),\n z: Number(matrixValues[14]),\n };\n }\n}\n\n// 計算輪播內容總寬度\nfunction getSlideTotalW(element) {\n const slideWrap = element.querySelector('.wrapper');\n const items = slideWrap.querySelectorAll('.item');\n let slideTotalWidth = 0; //輪播內容總寬度\n items.forEach((item) => {\n const style = getComputedStyle(item);\n const marginL = parseInt(style.marginLeft);\n const marginR = parseInt(style.marginRight);\n slideTotalWidth += item.getBoundingClientRect().width + marginL + marginR;\n });\n return slideTotalWidth;\n}\n\n// 偵測目前輪播位置\nfunction detectPos(self) {\n // 拖拉在最左邊時\n if (getTranslateValues(self.slideWrapEl).x >= self.translateMin) {\n return 'is-start';\n }\n // 拖拉在最右邊時\n else if (getTranslateValues(self.slideWrapEl).x <= self.translateMax) {\n return 'is-end';\n }\n // 拖拉在中間時\n else if (\n getTranslateValues(self.slideWrapEl).x < self.translateMin &&\n getTranslateValues(self.slideWrapEl).x > self.translateMax\n ) {\n return 'is-middle';\n }\n}\n\n// 綁定事件\nfunction eventHandler(self) {\n const element = self.el;\n const slideWrap = element.querySelector('.wrapper');\n //滑鼠按住或是行動裝置手指按住\n slideWrap.addEventListener(operateStart, function (e) {\n self.isDown = true;\n if (self.slidable) slideWrap.classList.add('dragging');\n switch (operateStart) {\n case 'mousedown':\n self.startX = e.pageX;\n break;\n case 'touchstart':\n self.startX = e.changedTouches[0].pageX;\n break;\n }\n self.nowTranslateX = getTranslateValues(slideWrap).x;\n });\n\n //滑鼠放開或是行動裝置手指放開\n slideWrap.addEventListener(operateEnd, function (e) {\n self.isDown = false;\n slideWrap.classList.remove('dragging');\n slideWrap.classList.remove('moving');\n //移動距離\n let moveDistance;\n switch (operateMove) {\n case 'mousemove':\n moveDistance = e.pageX - self.startX;\n break;\n case 'touchmove':\n moveDistance = e.changedTouches[0].pageX - self.startX;\n break;\n }\n if (moveDistance === 0 && e.target.closest('.item')) {\n if (operateEnd === 'mouseup' && e.button !== 0) return;\n const items = slideWrap.querySelectorAll('.item');\n items.forEach((item) => {\n item.classList.remove('active');\n });\n e.target.closest('.item').classList.add('active');\n self.moveActive(self.params.speed);\n } else {\n if (self.slidable) self.resetPos(element);\n }\n });\n\n //滑鼠離開\n slideWrap.addEventListener('mouseleave', function () {\n if (!self.isDown) return;\n if (self.slidable) {\n self.isDown = false;\n slideWrap.classList.remove('dragging');\n slideWrap.classList.remove('moving');\n self.resetPos(element);\n }\n });\n\n //滑鼠移動或是行動裝置手指移動\n slideWrap.addEventListener(operateMove, function (e) {\n if (!self.draggable) return;\n if (self.slidable) {\n if (!self.isDown) return;\n e.preventDefault();\n //移動距離\n let moveDistance;\n switch (operateMove) {\n case 'mousemove':\n moveDistance = e.pageX - self.startX;\n break;\n case 'touchmove':\n moveDistance = e.changedTouches[0].pageX - self.startX;\n break;\n }\n if (moveDistance !== 0) {\n slideWrap.classList.add('moving');\n const styles = {\n transition: 'all 0ms ease 0s',\n transform: `translate3d(${self.nowTranslateX + moveDistance}px,0,0)`,\n };\n Object.assign(slideWrap.style, styles);\n }\n }\n });\n}\n\n// 取消 a 的拖拉\nfunction disableLinkDrag(element) {\n const aTag = element.querySelectorAll('a');\n for (var i = 0, len = aTag.length; i < len; i++) {\n aTag[i].draggable = false;\n }\n}\n\nexport default class CategorySlider {\n constructor(element, params) {\n this.el = typeof element === 'string' ? document.querySelector(element) : element;\n this.slideWrapEl = this.el.querySelector('.wrapper');\n // default params\n this.params = {\n speed: 300,\n clickSwitch: true,\n breakpoint: false,\n };\n Object.assign(this.params, params);\n\n this.draggable = true;\n this.isDown = false; //按下\n this.startX = 0; //按下初始位置\n this.nowTranslateX = getTranslateValues(this.slideWrapEl).x; //目前X軸偏移輛\n this.slideTotalWidth = getSlideTotalW(this.el);\n this.translateMin = 0;\n this.translateMax = -Math.floor(\n Math.abs(\n getSlideTotalW(this.el) - this.el.querySelector('.wrapper').getBoundingClientRect().width\n )\n );\n this.slidable =\n this.slideTotalWidth > Math.round(this.el.getBoundingClientRect().width) &&\n (!this.params.breakpoint || window.innerWidth <= this.params.breakpoint);\n this.init();\n }\n init() {\n const self = this;\n if (self.slidable) {\n self.slideWrapEl.style.width = `${self.slideTotalWidth}px`;\n self.el.classList.add('slidable');\n if (self.slideWrapEl.querySelector('.item.active')) self.moveActive();\n }\n window.addEventListener('resize', function () {\n self.update();\n });\n eventHandler(self);\n disableLinkDrag(self.el);\n }\n moveActive(speed) {\n const self = this;\n const activeItem = self.slideWrapEl.querySelector('.item.active');\n const prevItem = activeItem.previousElementSibling;\n const prevOffsetLeft = prevItem\n ? activeItem.offsetLeft - self.el.clientWidth / 2 + activeItem.clientWidth / 2\n : 0;\n if (self.slidable) {\n if (-prevOffsetLeft < 0 && -prevOffsetLeft > self.translateMax) {\n const styles = {\n transition: `all ${speed ? speed : 0}ms ease 0s`,\n transform: `translate3d(-${prevOffsetLeft}px,0,0)`,\n };\n Object.assign(self.slideWrapEl.style, styles);\n } else if (-prevOffsetLeft >= 0) {\n const styles = {\n transition: `all ${speed ? speed : 0}ms ease 0s`,\n transform: `translate3d(0,0,0)`,\n };\n Object.assign(self.slideWrapEl.style, styles);\n } else {\n const styles = {\n transition: `all ${speed ? speed : 0}ms ease 0s`,\n transform: `translate3d(${self.translateMax}px,0,0)`,\n };\n Object.assign(self.slideWrapEl.style, styles);\n }\n if (speed) {\n self.slideWrapEl.addEventListener(\n 'transitionend',\n function () {\n self.nowTranslateX = getTranslateValues(self.slideWrapEl).x;\n switch (detectPos(self)) {\n case 'is-start':\n self.el.classList.add('is-start');\n self.el.classList.remove('is-end');\n break;\n case 'is-middle':\n self.el.classList.remove('is-start');\n self.el.classList.remove('is-end');\n break;\n case 'is-end':\n self.el.classList.remove('is-start');\n self.el.classList.add('is-end');\n break;\n }\n },\n false\n );\n } else {\n self.nowTranslateX = getTranslateValues(self.slideWrapEl).x;\n switch (detectPos(self)) {\n case 'is-start':\n self.el.classList.add('is-start');\n self.el.classList.remove('is-end');\n break;\n case 'is-middle':\n self.el.classList.remove('is-start');\n self.el.classList.remove('is-end');\n break;\n case 'is-end':\n self.el.classList.remove('is-start');\n self.el.classList.add('is-end');\n break;\n }\n }\n }\n }\n resetPos() {\n const self = this;\n switch (detectPos(self)) {\n case 'is-start':\n self.el.classList.add('is-start');\n self.el.classList.remove('is-end');\n Object.assign(self.slideWrapEl.style, {\n transition: `all ${self.params.speed}ms ease 0s`,\n transform: 'translate3d(0,0,0)',\n });\n break;\n case 'is-middle':\n self.el.classList.remove('is-start');\n self.el.classList.remove('is-end');\n break;\n case 'is-end':\n self.el.classList.remove('is-start');\n self.el.classList.add('is-end');\n Object.assign(self.slideWrapEl.style, {\n transition: `all ${self.params.speed}ms ease 0s`,\n transform: `translate3d(${self.translateMax}px,0,0)`,\n });\n break;\n }\n }\n update() {\n const self = this;\n self.el.querySelector('.wrapper').removeAttribute('style');\n self.slideTotalWidth = getSlideTotalW(self.el);\n self.translateMax = -Math.floor(\n Math.abs(\n getSlideTotalW(self.el) - self.el.querySelector('.wrapper').getBoundingClientRect().width\n )\n );\n self.slidable =\n self.slideTotalWidth > Math.round(self.el.getBoundingClientRect().width) &&\n (!self.params.breakpoint || window.innerWidth <= self.params.breakpoint);\n if (self.slidable) {\n self.slideWrapEl.style.width = `${self.slideTotalWidth}px`;\n self.el.classList.add('slidable');\n if (self.slideWrapEl.querySelector('.item.active')) self.moveActive();\n } else {\n self.el.classList.remove('slidable');\n self.el.classList.remove('is-start');\n self.el.classList.remove('is-end');\n self.slideWrapEl.removeAttribute('style');\n }\n }\n}\n","import { configs } from '../configs'\nimport {\n insert,\n isString,\n isElementExist,\n getAllElements\n} from '../commons'\n\nconst getTargetUrl = type => {\n // facebook\n if (type == 'facebook') {\n return 'https://www.facebook.com/sharer/sharer.php?u=';\n }\n\n // line\n if (type == 'line') {\n // desktop & mobile 網址不同\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\n return 'http://line.naver.jp/R/msg/text/?';\n }\n return 'https://lineit.line.me/share/ui?url=';\n }\n\n // twitter\n if (type == 'twitter') {\n return 'https://twitter.com/intent/tweet?url=';\n }\n\n // linkedin\n if (type == 'linkedin') {\n return `http://www.linkedin.com/shareArticle?mini=true&title=${document.title}&source=${document.title}&url=`;\n // return `https://www.linkedin.com/sharing/share-offsite/?url=`;\n }\n\n // telegram\n if (type == 'telegram') {\n return 'https://telegram.me/share/url?url=';\n }\n};\n\nclass Share4 {\n constructor(el, options = {}) {\n this.__storage__ = {\n el,\n options,\n };\n\n this.#create();\n }\n\n #create() {\n const { el, options } = this.__storage__;\n // 從 configs 提取設定\n const { SETTINGS } = configs.share4;\n if (!isString(el) || !isElementExist(el)) return;\n\n this.elements = getAllElements(el);\n\n this.options = Object.assign({}, SETTINGS, options);\n\n this.#init();\n }\n\n #init() {\n const { elements, options } = this;\n\n elements.forEach(targets => {\n targets.querySelectorAll('[share-target]').forEach(el => {\n el.share = {};\n el.share.instance = this;\n el.share.params = options;\n el.share.eventHandler = this.#trigger;\n el.addEventListener('click', el.share.eventHandler);\n });\n });\n }\n\n #trigger() {\n /** the keyword `this` in this method is pointed to the click target */\n const { eventHandler, params } = this.share;\n const type = this.getAttribute('share-target');\n\n const utm = {\n source: this.getAttribute('utm-source'),\n medium: this.getAttribute('utm-medium'),\n campaign: this.getAttribute('utm-campaign'),\n };\n\n const copy = {\n success: this.getAttribute('copy-success') || params.success,\n text: this.getAttribute('copy-text') || params.text,\n className: this.getAttribute('copy-class') || params.className,\n duration: this.getAttribute('copy-duration') || params.duration,\n };\n\n const baseUrl = encodeURIComponent(document.URL);\n let shareUrl = baseUrl;\n\n // 若為 wechat 則另開視窗掃描 QRcode\n if (type == 'wechat') {\n // https://api.qrserver.com/v1/create-qr-code/?data=${url}&size=300x300\n window.open(`https://api.qrserver.com/v1/create-qr-code/?data=${baseUrl}&size=250x250`, 'share to wechat', 'width=300,height=300');\n return;\n }\n\n // 若為 url 則複製連結\n if (type == 'url') {\n if (isElementExist('.copied-wrapper')) return;\n\n document.querySelector('body').insertAdjacentHTML(insert.append, `<div class='copied-wrapper'><div class='text'>${copy.success ? copy.success : ''}</div><input id='clipboard' type='text' readonly></div>`);\n\n const $copied = document.querySelector('.copied-wrapper');\n\n if (copy.className) {\n $copied.classList.add(copy.className);\n }\n $copied.style.top = this.getBoundingClientRect().top + window.scrollY + 'px';\n $copied.style.left = this.getBoundingClientRect().left + this.getBoundingClientRect().width / 2 + 'px';\n $copied.style.display = 'block';\n\n const $clipboard = document.querySelector('#clipboard');\n\n $clipboard.value = copy.text ?? window.location.href;\n $clipboard.setSelectionRange(0, 9999);\n $clipboard.select();\n\n if (document.execCommand('copy')) {\n // 複製對應內容\n document.execCommand('copy');\n // 動畫效果\n const copiedWrapper = document.querySelector('.copied-wrapper');\n const tooltipsText = document.querySelector('.copied-wrapper .text');\n tooltipsText.style.display = 'block';\n tooltipsText.style.opacity = 0;\n const fadeIn = (element, duration) => {\n let opacity = 0;\n const interval = 50;\n const gap = interval / duration;\n\n const fading = setInterval(function () {\n opacity += gap;\n element.style.opacity = opacity;\n\n if (opacity >= 1) {\n clearInterval(fading);\n setTimeout(function () {\n fadeOut(element, 300, function () {\n copiedWrapper.remove();\n });\n }, copy.duration);\n }\n }, interval);\n };\n const fadeOut = (element, duration, callback) => {\n let opacity = 1;\n const interval = 50;\n const gap = interval / duration;\n\n const fading = setInterval(() => {\n opacity -= gap;\n element.style.opacity = opacity;\n\n if (opacity <= 0) {\n clearInterval(fading);\n element.style.display = 'none';\n if (callback) callback();\n }\n }, interval);\n };\n fadeIn(tooltipsText, 300);\n }\n\n return;\n }\n\n // 其餘則使用對應網址另開新分頁\n // url + '?utm_source=Facebook' + '&utm_medium=social' + '&utm_campaign=' + campaign\n shareUrl = `${shareUrl}${utm.source ? `?utm_source=${utm.source}` : ''}${utm.medium ? `&utm_medium${utm.medium}` : ''}${utm.campaign ? `&utm_campaign${utm.campaign}` : ''}`;\n shareUrl = shareUrl.replace('?', '%3F').replace(new RegExp('&', 'g'), '%26');\n\n if (type == 'line') {\n // line 需帶入原始網址\n window.open(`${getTargetUrl(type)}${baseUrl}`);\n } else {\n window.open(`${getTargetUrl(type)}${shareUrl}&quote=${shareUrl}`);\n }\n\n this.removeEventListener('click', eventHandler);\n setTimeout(() => {\n this.addEventListener('click', eventHandler);\n }, 100);\n }\n}\n\nexport default Share4;\n"],"names":["init","userAgent","browser","mobile","os","isBrowser4","key","isMobile4","isOs4","logs","Detect4","setCss","target","style","css","isNodeList","el","Article4","options","__privateAdd","_create","_init","_getArticleData","_setStyle","_createVideo4","_createSwiper","isString","isElementExist","__privateMethod","create_fn","elements","parent","getArticleData_fn","createVideo4_fn","SETTINGS","configs.article4","getAllElements","init_fn","_b","_a","setStyle_fn","createSwiper_fn","element","params","Video4","basic_rwd","$id","createUid","$this","$swiperSet","swiper","container","configs.video4","next","prev","pagination","gate","$swiper","SwiperV8","operateStart","operateEnd","operateMove","getTranslateValues","matrix","matrixType","matrixValues","getSlideTotalW","items","slideTotalWidth","item","marginL","marginR","detectPos","self","eventHandler","slideWrap","e","moveDistance","styles","disableLinkDrag","aTag","i","len","CategorySlider","speed","activeItem","prevOffsetLeft","getTargetUrl","type","Share4","_trigger","configs.share4","targets","trigger_fn","utm","copy","baseUrl","shareUrl","insert","$copied","$clipboard","copiedWrapper","tooltipsText","fadeIn","duration","opacity","interval","gap","fading","fadeOut","callback"],"mappings":"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"}
1
+ {"version":3,"file":"fesd-bundle.js","sources":["../src/fesd/detect4/detect4.js","../src/fesd/article4/article4.js","../src/fesd/category-slider/category-slider.js","../src/fesd/share4/share4.js"],"sourcesContent":["export const init = () => {\n const userAgent = navigator.userAgent;\n const browser = {\n // Firefox 1.0+\n isFirefox: typeof InstallTrigger !== 'undefined',\n // Opera 8.0+\n isOpera: (!!window.opr && !!opr.addons) || !!window.opera || userAgent.indexOf(' OPR/') >= 0,\n // Internet Explorer 6-11\n isIE: /*@cc_on!@*/ false || !!document.documentMode,\n // Edge 20+\n isEdge: !(false || !!document.documentMode) && !!window.StyleMedia,\n // Edge (based on chromium) detection\n isEdgeChromium: /\\sedg\\//i.test(userAgent) || /edg([ea]|ios)/i.test(userAgent),\n // Safari 3.0+ \"[object HTMLElementConstructor]\"\n isSafari: !/chrome|crios|crmo/i.test(userAgent) && /safari/i.test(userAgent),\n // Chrome 1 - 79\n isChrome: (!!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime)) || /chrome|crios|crmo/i.test(userAgent),\n };\n const mobile = {\n // Android\n isAndroid: userAgent.indexOf('Android') > -1 || userAgent.indexOf('Adr') > -1,\n // iOS | ipad\n isiOS: userAgent.indexOf('Mac') > -1 && 'ontouchend' in document,\n };\n const os = {\n // window\n isWindows: userAgent.indexOf('Win') > -1,\n // macos\n isMacOS: userAgent.indexOf('Mac') > -1,\n // UNIX\n isUNIX: userAgent.indexOf('X11') > -1,\n // Linux\n isLinux: userAgent.indexOf('Linux') > -1,\n };\n return { browser, mobile, os }\n}\n\nexport const isBrowser4 = () => {\n const { browser } = init();\n return Object.keys(browser).find(key => {\n if (browser[key]) return browser[key];\n });\n};\n\nexport const isMobile4 = () => {\n const { mobile } = init();\n return Object.keys(mobile).some(key => {\n if (mobile[key]) return mobile[key];\n });\n};\n\nexport const isOs4 = () => {\n const { os } = init();\n return Object.keys(os).find(key => {\n if (os[key]) return os[key];\n });\n};\n\nexport const logs = () => console.dir(init());\n\nexport default function Detect4() {\n return {\n init,\n isBrowser4,\n isMobile4,\n isOs4,\n logs\n }\n}\n\n\n","import { Swiper as SwiperV8 } from 'swiper/bundle'\nimport { configs } from '../configs'\nimport Video4 from '../video4'\n// import Swiper bundle with all modules installed\nimport {\n isString,\n isNodeList,\n isElementExist,\n getAllElements,\n createUid\n} from '../commons'\n\n// 設置 CSS 樣式\nconst setCss = (target, style, css) => {\n if (!target) return;\n\n // 若是 NodeList 則需使用 foreach set css\n if (isNodeList(target)) target.forEach(el => (el.style[style] = css));\n else target.style[style] = css;\n};\nclass Article4 {\n constructor(el, options = {}) {\n if (!isString(el) || !isElementExist(el)) return;\n\n this.__storage__ = {\n el,\n options,\n };\n\n this.active = 'data-article-active'\n this.#create();\n }\n\n #create() {\n const { el, options } = this.__storage__;\n const { SETTINGS } = configs.article4;\n\n //wade\n this.elements = options.state == \"not active\" ? getAllElements(el + `:not([${this.active}])`) : getAllElements(el);\n this.elements = getAllElements(el);\n this.options = Object.assign({}, SETTINGS, options);\n\n this.#init();\n }\n\n #init() {\n const { elements } = this;\n\n elements.forEach(parent => {\n //wade\n parent.setAttribute(this.active, '')\n\n parent.querySelectorAll('._article').forEach(el => {\n el.article = {};\n el.article.parent = parent;\n el.article.params = this.#getArticleData(el);\n el.article.methods = {};\n el.article.methods.update = this.update;\n this.#setStyle(el).#createVideo4(el).#createSwiper(el);\n // 設置表格\n this.#createTable(el);\n });\n });\n }\n\n // 取得元件上的設定值\n #getArticleData(element) {\n return {\n // 元件本身\n $selector: element,\n\n // 父層元件\n $backgroundWrap: element.querySelector('._backgroundWrap'),\n $contentWrap: element.querySelector('._contentWrap'),\n $wordCover: element.querySelector('._wordCover'),\n $buttonCover: element.querySelector('._buttonCover'),\n $imgCover: element.querySelector('._imgCover'),\n $cover: element.querySelectorAll('._cover'),\n $swiper: element.querySelector('.swiper'),\n $table: element.querySelector('._table'),\n $swiperButtonCover: element.querySelector('.swiper-button-cover'),\n\n // 子層元件\n $h: element.querySelector('._H'),\n $subH: element.querySelector('._subH'),\n $p: element.querySelector('._P'),\n $button: element.querySelector('._button'),\n $description: element.querySelectorAll('._description'),\n $video: element.querySelectorAll('[video-id]'),\n\n // 父層設定\n typeFullColor: element.getAttribute('typeFull-color'),\n typeFullBoxColor: element.getAttribute('typeFull-boxcolor'),\n\n // 子層設定\n hColor: element.getAttribute('h-color'),\n subHColor: element.getAttribute('subh-color'),\n pColor: element.getAttribute('p-color'),\n buttonColor: element.getAttribute('button-color'),\n buttonColorHover: element.getAttribute('button-color-hover'),\n buttonTextColor: element.getAttribute('button-textcolor'),\n descriptionColor: element.getAttribute('description-color'),\n };\n }\n\n // 設置設定值的 CSS 樣式\n #setStyle(element) {\n const { params } = element.article;\n\n // article ._H\n setCss(params.$h, 'color', params.hColor);\n\n // article ._subH\n setCss(params.$subH, 'color', params.subHColor);\n\n // article ._P\n setCss(params.$p, 'color', params.pColor);\n\n // imgCover ._description\n setCss(params.$description, 'color', params.descriptionColor);\n\n // button background-color && text color\n setCss(params.$button, 'backgroundColor', params.buttonColor);\n setCss(params.$button, 'color', params.buttonTextColor);\n\n // button hover color\n if (params.buttonColorHover && params.$button) {\n params.$button.appendChild(document.createElement('span'));\n setCss(params.$button.querySelector('span'), 'backgroundColor', params.buttonColorHover);\n }\n\n // typeFull background-color\n setCss(params.$backgroundWrap, 'backgroundColor', params.typeFullColor);\n\n // typeFull box background-color\n setCss(params.$contentWrap, 'backgroundColor', params.typeFullBoxColor);\n\n return this;\n }\n\n // 表格拖曳功能\n #tableDrag(element) {\n const { params } = element.article;\n const scrollContainer = params.$table;\n let isDown = false;\n let isMoved = false;\n let startX, startY;\n let scrollLeft, scrollTop;\n\n scrollContainer.addEventListener(\"mousedown\", function (event) {\n event.preventDefault();\n isMoved = false;\n isDown = true;\n\n const rect = scrollContainer.getBoundingClientRect();\n startX = event.pageX - rect.left;\n startY = event.pageY - rect.top;\n scrollLeft = scrollContainer.scrollLeft;\n scrollTop = scrollContainer.scrollTop;\n });\n\n scrollContainer.addEventListener(\"mouseleave\", function () {\n isDown = false;\n isMoved = false;\n });\n\n scrollContainer.addEventListener(\"mouseup\", function () {\n isDown = false;\n isMoved = false;\n });\n\n scrollContainer.addEventListener(\"mousemove\", function (event) {\n if (!isDown) return;\n event.preventDefault();\n isMoved = true;\n\n const rect = scrollContainer.getBoundingClientRect();\n const x = event.pageX - rect.left;\n const y = event.pageY - rect.top;\n\n const walkX = x - startX;\n const walkY = y - startY;\n\n scrollContainer.scrollLeft = scrollLeft - walkX;\n scrollContainer.scrollTop = scrollTop - walkY;\n });\n }\n\n // 設置表格凍結\n #setFreeze(table, rowCount, colCount) {\n const { basic_rwd } = this.options;\n const rows = [...table.querySelectorAll('tr')];\n if (rows.length === 0) return;\n\n const isSmallScreen = window.innerWidth < basic_rwd;\n const actualColCount = isSmallScreen ? 0 : colCount;\n // table.setAttribute('freeze-table', `${rowCount}-${actualColCount}`);\n const colLeftOffsets = [];\n const firstRowCells = rows[0].querySelectorAll('th, td');\n\n for (let c = 0; c < actualColCount; c++) {\n let left = 0;\n for (let i = 0; i < c; i++) {\n left += firstRowCells[i].offsetWidth;\n }\n colLeftOffsets[c] = left;\n }\n\n rows.forEach((row, rowIndex) => {\n let top = 0;\n for (let i = 0; i < rowIndex; i++) {\n top += rows[i].offsetHeight;\n }\n\n const cells = row.querySelectorAll('th, td');\n cells.forEach((cell, colIndex) => {\n cell.style.zIndex = 0;\n const backgroundColor = getComputedStyle(cell).backgroundColor;\n\n // 凍結列\n if (rowIndex < rowCount) {\n cell.style.position = 'sticky';\n cell.style.top = `${top}px`;\n cell.style.zIndex = 2;\n cell.style.backgroundColor = backgroundColor;\n }\n\n // 凍結欄\n if (colIndex < actualColCount) {\n cell.style.position = 'sticky';\n cell.style.left = `${colLeftOffsets[colIndex]}px`;\n cell.style.zIndex = rowIndex < rowCount ? 3 : 1;\n cell.style.backgroundColor = backgroundColor;\n }\n });\n });\n }\n\n #createVideo4(element) {\n const { params } = element.article;\n\n if (params.$video.length) {\n const video = new Video4(params.$video);\n }\n\n return this;\n }\n\n #createSwiper(element) {\n const { basic_rwd } = this.options;\n\n const { params } = element.article;\n\n // 判斷是否擁有 swiper4 結構\n if (!params.$swiper) return;\n\n // set id\n const $id = createUid();\n\n const $this = this;\n\n // set swiper\n let $swiperSet = {\n on: {\n init(swiper) {\n const container = swiper.$el[0];\n // video4 重複綁定修正\n if (params.$video.length) {\n // 應該抓 DB 設定的 classname\n const allVideo4 = container.querySelectorAll('[video4-active]');\n [...allVideo4].forEach(element => {\n element.querySelector(configs.video4.SETTINGS.videoButton)?.remove();\n element.querySelector('.overlay')?.remove();\n element.removeAttribute('video4-active');\n });\n $this.update();\n }\n },\n observerUpdate(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n swiper.update();\n }\n },\n },\n observer: true,\n breakpoints: {},\n };\n\n params.$selector.setAttribute('img-swiper', 'on');\n params.$selector.classList.add(`swiper-${$id}`);\n\n // swiper navigation (預設為 off)\n if (params.$selector.getAttribute('swiper-arrow') !== 'off' && params.$selector.getAttribute('swiper-arrow')) {\n const next = document.createElement('div');\n next.className = `swiper-button-next swiper-${$id}`;\n params.$swiperButtonCover.appendChild(next);\n\n const prev = document.createElement('div');\n prev.className = `swiper-button-prev swiper-${$id}`;\n params.$swiperButtonCover.appendChild(prev);\n\n $swiperSet.navigation = {\n nextEl: `.swiper-button-next.swiper-${$id}`,\n prevEl: `.swiper-button-prev.swiper-${$id}`,\n };\n }\n\n // swiper pagination (預設為 on)\n if (params.$selector.getAttribute('swiper-nav') !== 'off' || !params.$selector.getAttribute('swiper-nav')) {\n const pagination = document.createElement('div');\n pagination.className = `swiper-pagination swiper-${$id}`;\n params.$swiper.appendChild(pagination);\n\n $swiperSet.pagination = {\n el: `.swiper-pagination.swiper-${$id}`,\n clickable: true,\n };\n }\n\n // slidesPerView\n if (Number.parseInt(params.$selector.getAttribute('swiper-num'))) {\n $swiperSet.breakpoints[basic_rwd] = {\n slidesPerView: params.$selector.getAttribute('swiper-num') ? (Number.parseInt(params.$selector.getAttribute('swiper-num')) > 5 ? 5 : Number.parseInt(params.$selector.getAttribute('swiper-num'))) : 1,\n };\n }\n\n // autoplay (預設為 on)\n if (params.$selector.getAttribute('swiper-autoplay') !== 'off' || !params.$selector.getAttribute('swiper-autoplay')) {\n $swiperSet.autoplay = {\n delay: 3000,\n disableOnInteraction: false,\n };\n }\n\n // loop (預設為 on)\n if (params.$selector.getAttribute('swiper-loop') !== 'off' || !params.$selector.getAttribute('swiper-loop')) {\n $swiperSet.loop = true;\n }\n\n // speed\n if (params.$selector.getAttribute('swiper-speed')) {\n $swiperSet.speed = parseInt(params.$selector.getAttribute('swiper-speed'));\n }\n\n // parallax (預設為 off)\n if (params.$selector.getAttribute('swiper-parallax') !== 'off' && !params.$selector.getAttribute('swiper-loop')) {\n $swiperSet.parallax = true;\n }\n\n // pagination dynamicBullets (預設為 off)\n if (params.$selector.getAttribute('swiper-pagination-dynamic') === 'on') {\n $swiperSet.pagination.dynamicBullets = true;\n // 20240904 Scarlett\n if ($swiperSet.pagination) {\n $swiperSet.pagination.dynamicBullets = true;\n } else {\n console.warn('pagination undefined');\n }\n }\n\n // 若 swiper 只有一筆輪播則隱藏 navigation 及 pagination\n let gate = () => (window.innerWidth > basic_rwd ? Number(params.$selector.getAttribute('swiper-num')) || 1 : 1);\n\n if (params.$swiper.querySelectorAll('.swiper-slide').length <= gate()) {\n $swiperSet.navigation = false;\n $swiperSet.pagination = false;\n $swiperSet.autoplay = false;\n $swiperSet.loop = false;\n\n params.$selector.querySelector('.swiper-button-cover').style.display = 'none';\n params.$selector.querySelector('.swiper-pagination').style.display = 'none';\n\n params.$swiper.classList.add('swiper-no-swiping');\n }\n\n const $swiper = new SwiperV8(params.$swiper, $swiperSet);\n\n element.article.swiperList = [];\n element.article.swiperList.push($swiper);\n\n return this;\n }\n\n #createTable(element) {\n const { params } = element.article;\n if (!params.$table) return;\n\n const isFreeze = element.getAttribute('freeze-table') === 'on';\n const freezeRow = parseInt(element.getAttribute('freeze-table-row') ?? '1', 10);\n const freezeCol = parseInt(element.getAttribute('freeze-table-col') ?? '1', 10);\n const innerTable = element.querySelector('table');\n const tipText = element.querySelector('._tipText');\n const wrapperWidth = element.offsetWidth;\n const tableWidth = innerTable.offsetWidth;\n const isOverflow = wrapperWidth < tableWidth;\n\n const initTable = () => {\n if (isFreeze) {\n this.#setFreeze(innerTable, freezeRow, freezeCol);\n }\n\n if (isFreeze || isOverflow) {\n this.#tableDrag(element);\n }\n\n if (isOverflow) {\n element.classList.add('overflow');\n tipText.style.display = 'flex';\n } else {\n element.classList.remove('overflow');\n tipText.style.display = 'none';\n }\n }\n initTable();\n window.addEventListener('resize', initTable);\n\n return this;\n }\n\n update() {\n const { elements } = this;\n\n elements.forEach(parent => {\n parent.querySelectorAll('._article').forEach(el => {\n el.article = {};\n el.article.parent = parent;\n el.article.params = this.#getArticleData(el);\n\n this.#createVideo4(el);\n this.#createTable(el);\n });\n });\n }\n}\n\nexport default Article4;","// 判斷操作事件使用 mouse 或是 touch\nlet operateStart = 'ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown';\nlet operateEnd = 'ontouchend' in document.documentElement ? 'touchend' : 'mouseup';\nlet operateMove = 'ontouchmove' in document.documentElement ? 'touchmove' : 'mousemove';\n\n/* ---------------------------- Function 宣告 --------------------------------- */\n\n// 獲取 translate 數值\nfunction getTranslateValues(element) {\n const style = window.getComputedStyle(element);\n const matrix = style['transform'] || style.mozTransform;\n\n // No transform property. Simply return 0 values.\n if (matrix === 'none') {\n return {\n x: 0,\n y: 0,\n z: 0,\n };\n }\n\n // Can either be 2d or 3d transform\n const matrixType = matrix.includes('3d') ? '3d' : '2d';\n const matrixValues = matrix.match(/matrix.*\\((.+)\\)/)[1].split(', ');\n\n // 2d matrices have 6 values\n // Last 2 values are X and Y.\n // 2d matrices does not have Z value.\n if (matrixType === '2d') {\n return {\n x: Number(matrixValues[4]),\n y: Number(matrixValues[5]),\n z: 0,\n };\n }\n\n // 3d matrices have 16 values\n // The 13th, 14th, and 15th values are X, Y, and Z\n if (matrixType === '3d') {\n return {\n x: Number(matrixValues[12]),\n y: Number(matrixValues[13]),\n z: Number(matrixValues[14]),\n };\n }\n}\n\n// 計算輪播內容總寬度\nfunction getSlideTotalW(element) {\n const slideWrap = element.querySelector('.wrapper');\n const items = slideWrap.querySelectorAll('.item');\n let slideTotalWidth = 0; //輪播內容總寬度\n items.forEach((item) => {\n const style = getComputedStyle(item);\n const marginL = parseInt(style.marginLeft);\n const marginR = parseInt(style.marginRight);\n slideTotalWidth += item.getBoundingClientRect().width + marginL + marginR;\n });\n return slideTotalWidth;\n}\n\n// 偵測目前輪播位置\nfunction detectPos(self) {\n // 拖拉在最左邊時\n if (getTranslateValues(self.slideWrapEl).x >= self.translateMin) {\n return 'is-start';\n }\n // 拖拉在最右邊時\n else if (getTranslateValues(self.slideWrapEl).x <= self.translateMax) {\n return 'is-end';\n }\n // 拖拉在中間時\n else if (\n getTranslateValues(self.slideWrapEl).x < self.translateMin &&\n getTranslateValues(self.slideWrapEl).x > self.translateMax\n ) {\n return 'is-middle';\n }\n}\n\n// 綁定事件\nfunction eventHandler(self) {\n const element = self.el;\n const slideWrap = element.querySelector('.wrapper');\n //滑鼠按住或是行動裝置手指按住\n slideWrap.addEventListener(operateStart, function (e) {\n self.isDown = true;\n if (self.slidable) slideWrap.classList.add('dragging');\n switch (operateStart) {\n case 'mousedown':\n self.startX = e.pageX;\n break;\n case 'touchstart':\n self.startX = e.changedTouches[0].pageX;\n break;\n }\n self.nowTranslateX = getTranslateValues(slideWrap).x;\n });\n\n //滑鼠放開或是行動裝置手指放開\n slideWrap.addEventListener(operateEnd, function (e) {\n self.isDown = false;\n slideWrap.classList.remove('dragging');\n slideWrap.classList.remove('moving');\n //移動距離\n let moveDistance;\n switch (operateMove) {\n case 'mousemove':\n moveDistance = e.pageX - self.startX;\n break;\n case 'touchmove':\n moveDistance = e.changedTouches[0].pageX - self.startX;\n break;\n }\n if (moveDistance === 0 && e.target.closest('.item')) {\n if (operateEnd === 'mouseup' && e.button !== 0) return;\n const items = slideWrap.querySelectorAll('.item');\n items.forEach((item) => {\n item.classList.remove('active');\n });\n e.target.closest('.item').classList.add('active');\n self.moveActive(self.params.speed);\n } else {\n if (self.slidable) self.resetPos(element);\n }\n });\n\n //滑鼠離開\n slideWrap.addEventListener('mouseleave', function () {\n if (!self.isDown) return;\n if (self.slidable) {\n self.isDown = false;\n slideWrap.classList.remove('dragging');\n slideWrap.classList.remove('moving');\n self.resetPos(element);\n }\n });\n\n //滑鼠移動或是行動裝置手指移動\n slideWrap.addEventListener(operateMove, function (e) {\n if (!self.draggable) return;\n if (self.slidable) {\n if (!self.isDown) return;\n e.preventDefault();\n //移動距離\n let moveDistance;\n switch (operateMove) {\n case 'mousemove':\n moveDistance = e.pageX - self.startX;\n break;\n case 'touchmove':\n moveDistance = e.changedTouches[0].pageX - self.startX;\n break;\n }\n if (moveDistance !== 0) {\n slideWrap.classList.add('moving');\n const styles = {\n transition: 'all 0ms ease 0s',\n transform: `translate3d(${self.nowTranslateX + moveDistance}px,0,0)`,\n };\n Object.assign(slideWrap.style, styles);\n }\n }\n });\n}\n\n// 取消 a 的拖拉\nfunction disableLinkDrag(element) {\n const aTag = element.querySelectorAll('a');\n for (var i = 0, len = aTag.length; i < len; i++) {\n aTag[i].draggable = false;\n }\n}\n\nexport default class CategorySlider {\n constructor(element, params) {\n this.el = typeof element === 'string' ? document.querySelector(element) : element;\n this.slideWrapEl = this.el.querySelector('.wrapper');\n // default params\n this.params = {\n speed: 300,\n clickSwitch: true,\n breakpoint: false,\n };\n Object.assign(this.params, params);\n\n this.draggable = true;\n this.isDown = false; //按下\n this.startX = 0; //按下初始位置\n this.nowTranslateX = getTranslateValues(this.slideWrapEl).x; //目前X軸偏移輛\n this.slideTotalWidth = getSlideTotalW(this.el);\n this.translateMin = 0;\n this.translateMax = -Math.floor(\n Math.abs(\n getSlideTotalW(this.el) - this.el.querySelector('.wrapper').getBoundingClientRect().width\n )\n );\n this.slidable =\n this.slideTotalWidth > Math.round(this.el.getBoundingClientRect().width) &&\n (!this.params.breakpoint || window.innerWidth <= this.params.breakpoint);\n this.init();\n }\n init() {\n const self = this;\n if (self.slidable) {\n self.slideWrapEl.style.width = `${self.slideTotalWidth}px`;\n self.el.classList.add('slidable');\n if (self.slideWrapEl.querySelector('.item.active')) self.moveActive();\n }\n window.addEventListener('resize', function () {\n self.update();\n });\n eventHandler(self);\n disableLinkDrag(self.el);\n }\n moveActive(speed) {\n const self = this;\n const activeItem = self.slideWrapEl.querySelector('.item.active');\n const prevItem = activeItem.previousElementSibling;\n const prevOffsetLeft = prevItem\n ? activeItem.offsetLeft - self.el.clientWidth / 2 + activeItem.clientWidth / 2\n : 0;\n if (self.slidable) {\n if (-prevOffsetLeft < 0 && -prevOffsetLeft > self.translateMax) {\n const styles = {\n transition: `all ${speed ? speed : 0}ms ease 0s`,\n transform: `translate3d(-${prevOffsetLeft}px,0,0)`,\n };\n Object.assign(self.slideWrapEl.style, styles);\n } else if (-prevOffsetLeft >= 0) {\n const styles = {\n transition: `all ${speed ? speed : 0}ms ease 0s`,\n transform: `translate3d(0,0,0)`,\n };\n Object.assign(self.slideWrapEl.style, styles);\n } else {\n const styles = {\n transition: `all ${speed ? speed : 0}ms ease 0s`,\n transform: `translate3d(${self.translateMax}px,0,0)`,\n };\n Object.assign(self.slideWrapEl.style, styles);\n }\n if (speed) {\n self.slideWrapEl.addEventListener(\n 'transitionend',\n function () {\n self.nowTranslateX = getTranslateValues(self.slideWrapEl).x;\n switch (detectPos(self)) {\n case 'is-start':\n self.el.classList.add('is-start');\n self.el.classList.remove('is-end');\n break;\n case 'is-middle':\n self.el.classList.remove('is-start');\n self.el.classList.remove('is-end');\n break;\n case 'is-end':\n self.el.classList.remove('is-start');\n self.el.classList.add('is-end');\n break;\n }\n },\n false\n );\n } else {\n self.nowTranslateX = getTranslateValues(self.slideWrapEl).x;\n switch (detectPos(self)) {\n case 'is-start':\n self.el.classList.add('is-start');\n self.el.classList.remove('is-end');\n break;\n case 'is-middle':\n self.el.classList.remove('is-start');\n self.el.classList.remove('is-end');\n break;\n case 'is-end':\n self.el.classList.remove('is-start');\n self.el.classList.add('is-end');\n break;\n }\n }\n }\n }\n resetPos() {\n const self = this;\n switch (detectPos(self)) {\n case 'is-start':\n self.el.classList.add('is-start');\n self.el.classList.remove('is-end');\n Object.assign(self.slideWrapEl.style, {\n transition: `all ${self.params.speed}ms ease 0s`,\n transform: 'translate3d(0,0,0)',\n });\n break;\n case 'is-middle':\n self.el.classList.remove('is-start');\n self.el.classList.remove('is-end');\n break;\n case 'is-end':\n self.el.classList.remove('is-start');\n self.el.classList.add('is-end');\n Object.assign(self.slideWrapEl.style, {\n transition: `all ${self.params.speed}ms ease 0s`,\n transform: `translate3d(${self.translateMax}px,0,0)`,\n });\n break;\n }\n }\n update() {\n const self = this;\n self.el.querySelector('.wrapper').removeAttribute('style');\n self.slideTotalWidth = getSlideTotalW(self.el);\n self.translateMax = -Math.floor(\n Math.abs(\n getSlideTotalW(self.el) - self.el.querySelector('.wrapper').getBoundingClientRect().width\n )\n );\n self.slidable =\n self.slideTotalWidth > Math.round(self.el.getBoundingClientRect().width) &&\n (!self.params.breakpoint || window.innerWidth <= self.params.breakpoint);\n if (self.slidable) {\n self.slideWrapEl.style.width = `${self.slideTotalWidth}px`;\n self.el.classList.add('slidable');\n if (self.slideWrapEl.querySelector('.item.active')) self.moveActive();\n } else {\n self.el.classList.remove('slidable');\n self.el.classList.remove('is-start');\n self.el.classList.remove('is-end');\n self.slideWrapEl.removeAttribute('style');\n }\n }\n}\n","import { configs } from '../configs'\nimport {\n insert,\n isString,\n isElementExist,\n getAllElements\n} from '../commons'\n\nconst getTargetUrl = type => {\n // facebook\n if (type == 'facebook') {\n return 'https://www.facebook.com/sharer/sharer.php?u=';\n }\n\n // line\n if (type == 'line') {\n // desktop & mobile 網址不同\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\n return 'http://line.naver.jp/R/msg/text/?';\n }\n return 'https://lineit.line.me/share/ui?url=';\n }\n\n // twitter\n if (type == 'twitter') {\n return 'https://twitter.com/intent/tweet?url=';\n }\n\n // linkedin\n if (type == 'linkedin') {\n return `http://www.linkedin.com/shareArticle?mini=true&title=${document.title}&source=${document.title}&url=`;\n // return `https://www.linkedin.com/sharing/share-offsite/?url=`;\n }\n\n // telegram\n if (type == 'telegram') {\n return 'https://telegram.me/share/url?url=';\n }\n};\n\nclass Share4 {\n constructor(el, options = {}) {\n this.__storage__ = {\n el,\n options,\n };\n\n this.#create();\n }\n\n #create() {\n const { el, options } = this.__storage__;\n // 從 configs 提取設定\n const { SETTINGS } = configs.share4;\n if (!isString(el) || !isElementExist(el)) return;\n\n this.elements = getAllElements(el);\n\n this.options = Object.assign({}, SETTINGS, options);\n\n this.#init();\n }\n\n #init() {\n const { elements, options } = this;\n\n elements.forEach(targets => {\n targets.querySelectorAll('[share-target]').forEach(el => {\n el.share = {};\n el.share.instance = this;\n el.share.params = options;\n el.share.eventHandler = this.#trigger;\n el.addEventListener('click', el.share.eventHandler);\n });\n });\n }\n\n #trigger() {\n /** the keyword `this` in this method is pointed to the click target */\n const { eventHandler, params } = this.share;\n const type = this.getAttribute('share-target');\n\n const utm = {\n source: this.getAttribute('utm-source'),\n medium: this.getAttribute('utm-medium'),\n campaign: this.getAttribute('utm-campaign'),\n };\n\n const copy = {\n success: this.getAttribute('copy-success') || params.success,\n text: this.getAttribute('copy-text') || params.text,\n className: this.getAttribute('copy-class') || params.className,\n duration: this.getAttribute('copy-duration') || params.duration,\n };\n\n const baseUrl = encodeURIComponent(document.URL);\n let shareUrl = baseUrl;\n\n // 若為 wechat 則另開視窗掃描 QRcode\n if (type == 'wechat') {\n // https://api.qrserver.com/v1/create-qr-code/?data=${url}&size=300x300\n window.open(`https://api.qrserver.com/v1/create-qr-code/?data=${baseUrl}&size=250x250`, 'share to wechat', 'width=300,height=300');\n return;\n }\n\n // 若為 url 則複製連結\n if (type == 'url') {\n if (isElementExist('.copied-wrapper')) return;\n\n document.querySelector('body').insertAdjacentHTML(insert.append, `<div class='copied-wrapper'><div class='text'>${copy.success ? copy.success : ''}</div><input id='clipboard' type='text' readonly></div>`);\n\n const $copied = document.querySelector('.copied-wrapper');\n\n if (copy.className) {\n $copied.classList.add(copy.className);\n }\n $copied.style.top = this.getBoundingClientRect().top + window.scrollY + 'px';\n $copied.style.left = this.getBoundingClientRect().left + this.getBoundingClientRect().width / 2 + 'px';\n $copied.style.display = 'block';\n\n const $clipboard = document.querySelector('#clipboard');\n\n $clipboard.value = copy.text ?? window.location.href;\n $clipboard.setSelectionRange(0, 9999);\n $clipboard.select();\n\n if (document.execCommand('copy')) {\n // 複製對應內容\n document.execCommand('copy');\n // 動畫效果\n const copiedWrapper = document.querySelector('.copied-wrapper');\n const tooltipsText = document.querySelector('.copied-wrapper .text');\n tooltipsText.style.display = 'block';\n tooltipsText.style.opacity = 0;\n const fadeIn = (element, duration) => {\n let opacity = 0;\n const interval = 50;\n const gap = interval / duration;\n\n const fading = setInterval(function () {\n opacity += gap;\n element.style.opacity = opacity;\n\n if (opacity >= 1) {\n clearInterval(fading);\n setTimeout(function () {\n fadeOut(element, 300, function () {\n copiedWrapper.remove();\n });\n }, copy.duration);\n }\n }, interval);\n };\n const fadeOut = (element, duration, callback) => {\n let opacity = 1;\n const interval = 50;\n const gap = interval / duration;\n\n const fading = setInterval(() => {\n opacity -= gap;\n element.style.opacity = opacity;\n\n if (opacity <= 0) {\n clearInterval(fading);\n element.style.display = 'none';\n if (callback) callback();\n }\n }, interval);\n };\n fadeIn(tooltipsText, 300);\n }\n\n return;\n }\n\n // 其餘則使用對應網址另開新分頁\n // url + '?utm_source=Facebook' + '&utm_medium=social' + '&utm_campaign=' + campaign\n shareUrl = `${shareUrl}${utm.source ? `?utm_source=${utm.source}` : ''}${utm.medium ? `&utm_medium${utm.medium}` : ''}${utm.campaign ? `&utm_campaign${utm.campaign}` : ''}`;\n shareUrl = shareUrl.replace('?', '%3F').replace(new RegExp('&', 'g'), '%26');\n\n if (type == 'line') {\n // line 需帶入原始網址\n window.open(`${getTargetUrl(type)}${baseUrl}`);\n } else {\n window.open(`${getTargetUrl(type)}${shareUrl}&quote=${shareUrl}`);\n }\n\n this.removeEventListener('click', eventHandler);\n setTimeout(() => {\n this.addEventListener('click', eventHandler);\n }, 100);\n }\n}\n\nexport default Share4;\n"],"names":["init","userAgent","browser","mobile","os","isBrowser4","key","isMobile4","isOs4","logs","Detect4","setCss","target","style","css","isNodeList","el","Article4","options","__privateAdd","_create","_init","_getArticleData","_setStyle","_tableDrag","_setFreeze","_createVideo4","_createSwiper","_createTable","isString","isElementExist","__privateMethod","create_fn","elements","parent","getArticleData_fn","createVideo4_fn","createTable_fn","SETTINGS","configs.article4","getAllElements","init_fn","_b","_a","setStyle_fn","createSwiper_fn","element","params","tableDrag_fn","scrollContainer","isDown","startX","startY","scrollLeft","scrollTop","event","rect","x","y","walkX","walkY","setFreeze_fn","table","rowCount","colCount","basic_rwd","rows","actualColCount","colLeftOffsets","firstRowCells","left","i","row","rowIndex","top","cell","colIndex","backgroundColor","Video4","$id","createUid","$this","$swiperSet","swiper","container","configs.video4","next","prev","pagination","gate","$swiper","SwiperV8","isFreeze","freezeRow","freezeCol","innerTable","tipText","wrapperWidth","tableWidth","isOverflow","initTable","operateStart","operateEnd","operateMove","getTranslateValues","matrix","matrixType","matrixValues","getSlideTotalW","items","slideTotalWidth","item","marginL","marginR","detectPos","self","eventHandler","slideWrap","e","moveDistance","styles","disableLinkDrag","aTag","len","CategorySlider","speed","activeItem","prevOffsetLeft","getTargetUrl","type","Share4","_trigger","configs.share4","targets","trigger_fn","utm","copy","baseUrl","shareUrl","insert","$copied","$clipboard","copiedWrapper","tooltipsText","fadeIn","duration","opacity","interval","gap","fading","fadeOut","callback"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@xwadex/fesd",
3
3
  "private": false,
4
- "version": "0.0.19",
4
+ "version": "0.0.20",
5
5
  "main": "./dist/fesd-bundle.js",
6
6
  "type": "module",
7
7
  "scripts": {