@xwadex/fesd 0.0.43 → 0.0.45

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,4 +1,6 @@
1
- var vs = (n, i, t) => {
1
+ var Es = Object.defineProperty;
2
+ var As = (n, i, t) => i in n ? Es(n, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[i] = t;
3
+ var We = (n, i, t) => (As(n, typeof i != "symbol" ? i + "" : i, t), t), Ls = (n, i, t) => {
2
4
  if (!i.has(n))
3
5
  throw TypeError("Cannot " + t);
4
6
  };
@@ -7,15 +9,15 @@ var h = (n, i, t) => {
7
9
  throw TypeError("Cannot add the same private member more than once");
8
10
  i instanceof WeakSet ? i.add(n) : i.set(n, t);
9
11
  };
10
- var d = (n, i, t) => (vs(n, i, "access private method"), t);
11
- import { OverlayScrollbars as qe } from "overlayscrollbars";
12
+ var d = (n, i, t) => (Ls(n, i, "access private method"), t);
13
+ import { OverlayScrollbars as Ne } from "overlayscrollbars";
12
14
  import f from "jquery";
13
15
  import "./vendor-bundle.js";
14
16
  import "validator";
15
17
  import "flatpickr";
16
- import Ye from "vanilla-lazyload";
17
- import { lock as bs, unlock as ys } from "tua-body-scroll-lock";
18
- const Y = {
18
+ import Qe from "vanilla-lazyload";
19
+ import { lock as Ss, unlock as Ds } from "tua-body-scroll-lock";
20
+ const Pe = {
19
21
  SETTINGS: {
20
22
  videoId: null,
21
23
  videoType: null,
@@ -51,14 +53,14 @@ const Y = {
51
53
  TEMPLATE() {
52
54
  return '<div class="player-container"><div class="player-wrapper"></div></div>';
53
55
  }
54
- }, ws = {
56
+ }, ks = {
55
57
  SETTINGS: {
56
58
  success: null,
57
59
  text: null,
58
60
  className: null,
59
61
  duration: 1500
60
62
  }
61
- }, I = {
63
+ }, P = {
62
64
  SETTINGS: {
63
65
  target: null,
64
66
  route: null,
@@ -89,7 +91,7 @@ const Y = {
89
91
  </div>
90
92
  `;
91
93
  }
92
- }, x = {
94
+ }, $ = {
93
95
  SETTINGS: {
94
96
  direction: "left",
95
97
  // 方向 - top || right || bottom || left
@@ -108,7 +110,7 @@ const Y = {
108
110
  gap: 30
109
111
  // 跑馬燈內容之間的距離 - Number
110
112
  }
111
- }, Ie = {
113
+ }, je = {
112
114
  SETTINGS: {
113
115
  scrollbar: {
114
116
  "scrollbar-track-color": "transparent",
@@ -136,15 +138,16 @@ const Y = {
136
138
  </div>`;
137
139
  return t || r;
138
140
  }
139
- }, Ts = {
141
+ }, xs = {
140
142
  SETTINGS: {
141
143
  basic_rwd: 900,
142
144
  markdownLink: !1,
145
+ markdownLinkBlank: !1,
143
146
  markdownImg: !1,
144
147
  navigation: !1,
145
148
  scrollStep: !1
146
149
  }
147
- }, Ue = {
150
+ }, Ve = {
148
151
  SETTINGS: {
149
152
  scroller: window,
150
153
  class: "aost-show",
@@ -167,7 +170,7 @@ const Y = {
167
170
  enter: null,
168
171
  leave: null
169
172
  }
170
- }, ut = {
173
+ }, ht = {
171
174
  SETTINGS: {
172
175
  target: null,
173
176
  container: null,
@@ -227,7 +230,7 @@ const Y = {
227
230
  return `<dropdown-el${n.placeholder ? ` d4-placeholder="${n.placeholder}"` : ""}${n.value ? ` d4-value="${n.value}"` : ""}></dropdown-el>`;
228
231
  }
229
232
  }
230
- }, Je = {
233
+ }, Ke = {
231
234
  SETTINGS: {
232
235
  // 樣式 normal / process
233
236
  type: "normal",
@@ -247,7 +250,7 @@ const Y = {
247
250
  // 步驟狀態綁定
248
251
  stepOutput: ".step-show"
249
252
  }
250
- }, Ze = {
253
+ }, ti = {
251
254
  SETTINGS: {
252
255
  collapseClass: "collapse",
253
256
  block: "[collapse-block]",
@@ -280,7 +283,7 @@ const Y = {
280
283
  update: null,
281
284
  afterUpdate: null
282
285
  }
283
- }, Qe = {
286
+ }, ei = {
284
287
  SETTINGS: {
285
288
  // 是否要加 hover 效果?
286
289
  hover: !0,
@@ -295,42 +298,42 @@ const Y = {
295
298
  // hover 毫秒 ?
296
299
  speed: 600
297
300
  }
298
- }, fn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
301
+ }, En = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
299
302
  __proto__: null,
300
- anchor4: ut,
301
- aost4: Ue,
302
- article4: Ts,
303
- collapse4: Ze,
304
- dropdown4: Ie,
305
- marquee4: x,
306
- modal4: I,
303
+ anchor4: ht,
304
+ aost4: Ve,
305
+ article4: xs,
306
+ collapse4: ti,
307
+ dropdown4: je,
308
+ marquee4: $,
309
+ modal4: P,
307
310
  multipurpose4: H,
308
- ripple4: Qe,
309
- share4: ws,
310
- tab4: Je,
311
- video4: Y
312
- }, Symbol.toStringTag, { value: "Module" })), A = {
311
+ ripple4: ei,
312
+ share4: ks,
313
+ tab4: Ke,
314
+ video4: Pe
315
+ }, Symbol.toStringTag, { value: "Module" })), L = {
313
316
  before: "beforebegin",
314
317
  after: "afterend",
315
318
  append: "beforeend",
316
319
  prepend: "afterbegin"
317
- }, rt = (n) => typeof n == "string" && n !== "", Te = (n) => n instanceof HTMLElement, lt = (n) => n instanceof NodeList, w = (n) => L(n) !== null, j = (n) => typeof n == "function", L = (n) => Te(n) ? n : document.querySelector(n), S = (n) => lt(n) ? n : document.querySelectorAll(n), Es = () => Math.random().toString(36).substr(2, 9), As = (n) => {
320
+ }, lt = (n) => typeof n == "string" && n !== "", Ae = (n) => n instanceof HTMLElement, ct = (n) => n instanceof NodeList, E = (n) => D(n) !== null, W = (n) => typeof n == "function", D = (n) => Ae(n) ? n : document.querySelector(n), k = (n) => ct(n) ? n : document.querySelectorAll(n), _s = () => Math.random().toString(36).substr(2, 9), $s = (n) => {
318
321
  const i = document.createElement("div");
319
322
  return i.innerHTML = n, i.childNodes;
320
- }, Ls = (n) => {
323
+ }, Cs = (n) => {
321
324
  try {
322
325
  JSON.parse(n);
323
326
  } catch {
324
327
  return n;
325
328
  }
326
329
  return JSON.parse(n);
327
- }, E = (n, i) => {
330
+ }, A = (n, i) => {
328
331
  console.warn(`[${n} warn]: ${i}`);
329
- }, je = (n, i) => {
332
+ }, Ge = (n, i) => {
330
333
  console.error(`[${n} error]: ${i}`);
331
- }, O = {
334
+ }, j = {
332
335
  on(n, i) {
333
- if (!j(i))
336
+ if (!W(i))
334
337
  return this;
335
338
  const { __events__: t } = this;
336
339
  return n.split(" ").forEach((e) => {
@@ -346,7 +349,7 @@ const Y = {
346
349
  }), this;
347
350
  },
348
351
  once(n, i) {
349
- if (!j(i))
352
+ if (!W(i))
350
353
  return this;
351
354
  const t = (...e) => {
352
355
  this.off(n, t), i.apply(this, e);
@@ -356,10 +359,10 @@ const Y = {
356
359
  emit(...n) {
357
360
  const { __events__: i } = this, t = n[0], e = n.slice(1, n.length);
358
361
  return i[t] ? (i[t].forEach((s) => {
359
- j(s) && s.apply(this, e);
362
+ W(s) && s.apply(this, e);
360
363
  }), this) : this;
361
364
  }
362
- }, Ss = {
365
+ }, Hs = {
363
366
  easeInOutCirc(n, i, t, e) {
364
367
  return (n /= e / 2) < 1 ? -t / 2 * (Math.sqrt(1 - n * n) - 1) + i : t / 2 * (Math.sqrt(1 - (n -= 2) * n) + 1) + i;
365
368
  },
@@ -369,33 +372,33 @@ const Y = {
369
372
  easeOutQuart(n, i, t, e) {
370
373
  return -t * ((n = n / e - 1) * n * n * n - 1) + i;
371
374
  }
372
- }, Ee = (n, i) => {
373
- const { target: t, container: e, spacer: s, speed: o, gap: a, easing: r, direction: l } = n, c = l === "horizontal", u = c ? "scrollLeft" : "scrollTop", p = c ? "left" : "top", g = c ? "width" : "height", m = w(e) ? L(e) : document.scrollingElement, v = m[u], b = w(t) ? L(t).getBoundingClientRect()[p] : 0 - v, y = w(s) ? L(s).getBoundingClientRect()[g] : 0, k = b - a - y, G = 15;
374
- let D = 0;
375
- if (k === 0)
375
+ }, Le = (n, i) => {
376
+ const { target: t, container: e, spacer: s, speed: o, gap: a, easing: r, direction: l } = n, c = l === "horizontal", u = c ? "scrollLeft" : "scrollTop", p = c ? "left" : "top", g = c ? "width" : "height", m = E(e) ? D(e) : document.scrollingElement, v = m[u], y = E(t) ? D(t).getBoundingClientRect()[p] : 0 - v, b = E(s) ? D(s).getBoundingClientRect()[g] : 0, T = y - a - b, M = 15;
377
+ let w = 0;
378
+ if (T === 0)
376
379
  return;
377
- const R = (X) => {
378
- const Pe = L(t);
379
- i && i.emit(X, Pe), !i && n.on && j(n.on[X]) && n.on[X](Pe);
380
+ const q = (I) => {
381
+ const Be = D(t);
382
+ i && i.emit(I, Be), !i && n.on && W(n.on[I]) && n.on[I](Be);
380
383
  };
381
- R("beforeScroll");
382
- const Ne = () => {
383
- D += G;
384
- const X = Ss[r](D, v, k, o);
385
- m[u] = X, D < o && requestAnimationFrame(Ne), D >= o && R("afterScroll");
384
+ q("beforeScroll");
385
+ const F = () => {
386
+ w += M;
387
+ const I = Hs[r](w, v, T, o);
388
+ m[u] = I, w < o && requestAnimationFrame(F), w >= o && q("afterScroll");
386
389
  };
387
- requestAnimationFrame(Ne);
390
+ requestAnimationFrame(F);
388
391
  };
389
- var Z, Ae, gt, Ke, ft, ti;
390
- class Ve {
392
+ var Q, Se, ft, si, vt, ni;
393
+ class ii {
391
394
  constructor(i, t = {}) {
392
- h(this, Z);
393
- h(this, gt);
395
+ h(this, Q);
394
396
  h(this, ft);
397
+ h(this, vt);
395
398
  this.__storage__ = {
396
399
  el: i,
397
400
  options: t
398
- }, this.active = "data-anchor-active", d(this, Z, Ae).call(this);
401
+ }, this.active = "data-anchor-active", d(this, Q, Se).call(this);
399
402
  }
400
403
  destroy() {
401
404
  const { elements: i } = this;
@@ -405,39 +408,39 @@ class Ve {
405
408
  }
406
409
  update() {
407
410
  var i;
408
- return d(i = this.destroy(), Z, Ae).call(i), this.emit("afterUpdate"), this;
411
+ return d(i = this.destroy(), Q, Se).call(i), this.emit("afterUpdate"), this;
409
412
  }
410
413
  static run(i) {
411
- const { SETTINGS: t } = ut, e = Object.assign({}, t, i);
414
+ const { SETTINGS: t } = ht, e = Object.assign({}, t, i);
412
415
  setTimeout(() => {
413
- Ee(e);
416
+ Le(e);
414
417
  }, e.delay);
415
418
  }
416
419
  static url(i) {
417
- const { SETTINGS: t } = ut, { hashName: e } = i, s = window.location.search || window.location.hash, { searchParams: o } = new URL(window.location), a = document.querySelector(`[data-anchor-id="${e ? o.get(e) : s.split("?").pop()}"]`);
420
+ const { SETTINGS: t } = ht, { hashName: e } = i, s = window.location.search || window.location.hash, { searchParams: o } = new URL(window.location), a = document.querySelector(`[data-anchor-id="${e ? o.get(e) : s.split("?").pop()}"]`);
418
421
  if (!a)
419
422
  return;
420
423
  const r = Object.assign({}, t, i, { target: a });
421
424
  setTimeout(() => {
422
- Ee(r);
425
+ Le(r);
423
426
  }, r.delay);
424
427
  }
425
428
  }
426
- Z = new WeakSet(), Ae = function() {
429
+ Q = new WeakSet(), Se = function() {
427
430
  const { el: i, options: t } = this.__storage__;
428
- if (!rt(i) || !w(i))
431
+ if (!lt(i) || !E(i))
429
432
  return;
430
- const { SETTINGS: e, EVENTS: s } = ut;
431
- if (this.elements = t.state == "not active" ? S(i + `:not([${this.active}])`) : S(i), this.elements = S(i), this.options = Object.assign({}, e, t), this.__events__ = Object.assign({}, s), this.options.on)
433
+ const { SETTINGS: e, EVENTS: s } = ht;
434
+ if (this.elements = t.state == "not active" ? k(i + `:not([${this.active}])`) : k(i), this.elements = k(i), this.options = Object.assign({}, e, t), this.__events__ = Object.assign({}, s), this.options.on)
432
435
  for (const [o, a] of Object.entries(this.options.on))
433
436
  this.__events__[o] = [a];
434
- d(this, gt, Ke).call(this);
435
- }, gt = new WeakSet(), Ke = function() {
437
+ d(this, ft, si).call(this);
438
+ }, ft = new WeakSet(), si = function() {
436
439
  const { elements: i, options: t } = this;
437
440
  i.forEach((e) => {
438
- e.anchor = {}, e.anchor.instance = this, e.anchor.eventHandler = d(this, ft, ti), e.anchor.defaultOptions = t, e.anchor.methods = {}, e.anchor.methods.destroy = this.destroy, e.anchor.methods.update = this.update, e.addEventListener("click", e.anchor.eventHandler), e.setAttribute(this.active, "");
441
+ e.anchor = {}, e.anchor.instance = this, e.anchor.eventHandler = d(this, vt, ni), e.anchor.defaultOptions = t, e.anchor.methods = {}, e.anchor.methods.destroy = this.destroy, e.anchor.methods.update = this.update, e.addEventListener("click", e.anchor.eventHandler), e.setAttribute(this.active, "");
439
442
  }), this.emit("afterInit");
440
- }, ft = new WeakSet(), ti = function() {
443
+ }, vt = new WeakSet(), ni = function() {
441
444
  const { defaultOptions: i, eventHandler: t, instance: e } = this.anchor, s = {
442
445
  target: this.getAttribute("data-anchor-target") || i.target,
443
446
  container: this.getAttribute("data-anchor-container") || i.container,
@@ -451,28 +454,28 @@ Z = new WeakSet(), Ae = function() {
451
454
  this.removeEventListener("click", t), setTimeout(() => {
452
455
  this.addEventListener("click", t);
453
456
  }, s.speed), setTimeout(() => {
454
- Ee(s, e);
457
+ Le(s, e);
455
458
  }, s.delay);
456
459
  };
457
- Object.assign(Ve.prototype, O);
460
+ Object.assign(ii.prototype, j);
458
461
  window.MODALS || (window.MODALS = {});
459
- const { MODALS: M } = window, Ds = (n) => {
460
- const { TEMPLATE: i } = I, { childDom: t } = n, e = document.createElement("div");
462
+ const { MODALS: O } = window, Ms = (n) => {
463
+ const { TEMPLATE: i } = P, { childDom: t } = n, e = document.createElement("div");
461
464
  e.innerHTML = i(n.getAttribute("data-modal-template-setting"));
462
465
  const s = e.querySelector(".modal-content");
463
466
  return [...t].forEach((o) => {
464
467
  s.append(o);
465
468
  }), e.children[0];
466
469
  };
467
- var vt, ii, bt, si, yt, ni, wt, oi, Tt, ai;
468
- class ei extends HTMLElement {
470
+ var bt, ai, yt, ri, wt, li, Tt, ci, Et, di;
471
+ class oi extends HTMLElement {
469
472
  constructor() {
470
473
  super();
471
- h(this, vt);
472
474
  h(this, bt);
473
475
  h(this, yt);
474
476
  h(this, wt);
475
477
  h(this, Tt);
478
+ h(this, Et);
476
479
  this.initialize = !1;
477
480
  }
478
481
  static get observedAttributes() {
@@ -481,12 +484,12 @@ class ei extends HTMLElement {
481
484
  attributeChangedCallback(t, e, s) {
482
485
  switch (t) {
483
486
  case ":state":
484
- d(this, Tt, ai).call(this, s);
487
+ d(this, Et, di).call(this, s);
485
488
  break;
486
489
  }
487
490
  }
488
491
  connectedCallback() {
489
- this.initialize || (this.initialize = !0, d(this, vt, ii).call(this));
492
+ this.initialize || (this.initialize = !0, d(this, bt, ai).call(this));
490
493
  }
491
494
  open() {
492
495
  return this.setAttribute(":state", "open"), this;
@@ -498,38 +501,38 @@ class ei extends HTMLElement {
498
501
  return this.setAttribute(":state", "destroy"), this;
499
502
  }
500
503
  }
501
- vt = new WeakSet(), ii = function() {
502
- const { ATTRS: t } = I;
504
+ bt = new WeakSet(), ai = function() {
505
+ const { ATTRS: t } = P;
503
506
  this.__events__ = {}, this.getAttribute(":state") || this.setAttribute(":state", "close");
504
- const e = this.getAttribute(t.id) || Es();
505
- this.getAttribute(t.id) || (E(`modern-modal needs a ${t.id} attribute with a unique id.`), this.setAttribute(t.id, e)), M[e] && E(`the ${t.id} "${e}" is already be used.`), M[e] = this, d(this, bt, si).call(this);
506
- }, bt = new WeakSet(), si = function() {
507
- this.childDom = this.childNodes, this.template = Ds(this), this.innerHTML = "", this.append(this.template), d(this, yt, ni).call(this);
508
- }, yt = new WeakSet(), ni = function() {
507
+ const e = this.getAttribute(t.id) || _s();
508
+ this.getAttribute(t.id) || (A(`modern-modal needs a ${t.id} attribute with a unique id.`), this.setAttribute(t.id, e)), O[e] && A(`the ${t.id} "${e}" is already be used.`), O[e] = this, d(this, yt, ri).call(this);
509
+ }, yt = new WeakSet(), ri = function() {
510
+ this.childDom = this.childNodes, this.template = Ms(this), this.innerHTML = "", this.append(this.template), d(this, wt, li).call(this);
511
+ }, wt = new WeakSet(), li = function() {
509
512
  const t = this.querySelector(".modal-scroller");
510
- this.__scroller__ = qe(t, {
513
+ this.__scroller__ = Ne(t, {
511
514
  overflowBehavior: {
512
515
  x: "hidden"
513
516
  },
514
517
  autoUpdate: !0
515
- }), window.modalScroll = this.__scroller__, d(this, wt, oi).call(this);
516
- }, wt = new WeakSet(), oi = function() {
518
+ }), window.modalScroll = this.__scroller__, d(this, Tt, ci).call(this);
519
+ }, Tt = new WeakSet(), ci = function() {
517
520
  var a, r, l;
518
- const t = this, { ATTRS: e } = I, { close: s, destroy: o } = e;
521
+ const t = this, { ATTRS: e } = P, { close: s, destroy: o } = e;
519
522
  (a = t.querySelectorAll(`[${s}]`)) == null || a.forEach((c) => {
520
523
  c.addEventListener("click", function() {
521
524
  const u = this.getAttribute(s);
522
- (u && M[u] ? M[u] : t).close();
525
+ (u && O[u] ? O[u] : t).close();
523
526
  });
524
527
  }), (r = t.querySelectorAll(`[${o}]`)) == null || r.forEach((c) => {
525
528
  c.addEventListener("click", function() {
526
529
  const u = this.getAttribute(o);
527
- (u && M[u] ? M[u] : t).destroy();
530
+ (u && O[u] ? O[u] : t).destroy();
528
531
  });
529
532
  }), (l = t.querySelector("[stop-propagation]")) == null || l.addEventListener("click", function(c) {
530
533
  c.stopPropagation();
531
534
  });
532
- }, Tt = new WeakSet(), ai = function(t) {
535
+ }, Et = new WeakSet(), di = function(t) {
533
536
  const { __scroller__: e } = this;
534
537
  if (t === "open") {
535
538
  if (this.style.display = "block", e) {
@@ -554,28 +557,28 @@ vt = new WeakSet(), ii = function() {
554
557
  if (t === "destroy") {
555
558
  this.classList.remove("show");
556
559
  const s = () => {
557
- const { ATTRS: o } = I, a = this.getAttribute(o.id);
558
- this.style.removeProperty("display"), this.emit("close"), this.remove(), this.emit("destroy"), M[a] && delete M[a];
560
+ const { ATTRS: o } = P, a = this.getAttribute(o.id);
561
+ this.style.removeProperty("display"), this.emit("close"), this.remove(), this.emit("destroy"), O[a] && delete O[a];
559
562
  };
560
563
  this.addEventListener("transitionend", s);
561
564
  }
562
565
  };
563
- Object.assign(ei.prototype, O);
564
- const { MODALS: Oe } = window, ct = {}, ri = (n, i, ...t) => {
566
+ Object.assign(oi.prototype, j);
567
+ const { MODALS: ze } = window, dt = {}, ui = (n, i, ...t) => {
565
568
  if (!i)
566
569
  return;
567
570
  const e = n[i];
568
- e && j(e) && e.apply(n, t);
569
- }, li = (n, ...i) => {
570
- n && j(n) && n.apply(J, i);
571
- }, ze = (n, i) => {
572
- const { target: t } = n, e = Oe[t] || L(n.target);
573
- e && ci(n, i), e || ks(n, i);
574
- }, ci = (n, i) => {
575
- const { target: t, action: e, on: s, e: o } = n, a = Oe[t] || L(n.target);
571
+ e && W(e) && e.apply(n, t);
572
+ }, hi = (n, ...i) => {
573
+ n && W(n) && n.apply(Z, i);
574
+ }, Re = (n, i) => {
575
+ const { target: t } = n, e = ze[t] || D(n.target);
576
+ e && pi(n, i), e || qs(n, i);
577
+ }, pi = (n, i) => {
578
+ const { target: t, action: e, on: s, e: o } = n, a = ze[t] || D(n.target);
576
579
  switch (["open", "close", "destroy"].forEach((l) => {
577
580
  a.once(l, () => {
578
- i && (i.emit(l, a, o), ri(i, s[l], a, o)), i || li(s[l], a);
581
+ i && (i.emit(l, a, o), ui(i, s[l], a, o)), i || hi(s[l], a);
579
582
  });
580
583
  }), e) {
581
584
  case "open":
@@ -592,34 +595,34 @@ const { MODALS: Oe } = window, ct = {}, ri = (n, i, ...t) => {
592
595
  l === "close" && a.open(), l === "open" && a.close();
593
596
  break;
594
597
  }
595
- }, ks = async (n, i) => {
598
+ }, qs = async (n, i) => {
596
599
  const { target: t, route: e, container: s, on: o, e: a } = n;
597
600
  if (!e)
598
- return E("modal4", "cannot find target or data-modal-route is not defined");
601
+ return A("modal4", "cannot find target or data-modal-route is not defined");
599
602
  const r = (l, ...c) => {
600
- i && (i.emit(l, ...c), ri(i, o[l], ...c)), i || li(o[l], ...c);
603
+ i && (i.emit(l, ...c), ui(i, o[l], ...c)), i || hi(o[l], ...c);
601
604
  };
602
- ct[t] || (ct[t] = !0, fetch(e).then((l) => (r("success", a), l.text())).then((l) => {
603
- const c = As(l), u = L(s) || L(I.SETTINGS.container);
605
+ dt[t] || (dt[t] = !0, fetch(e).then((l) => (r("success", a), l.text())).then((l) => {
606
+ const c = $s(l), u = D(s) || D(P.SETTINGS.container);
604
607
  [...c].forEach((g) => {
605
608
  u.append(g);
606
609
  });
607
- const p = Oe[t] || L(n.target);
608
- r("complete", p), ci(n, i), delete ct[t];
610
+ const p = ze[t] || D(n.target);
611
+ r("complete", p), pi(n, i), delete dt[t];
609
612
  }).catch((l) => {
610
- r("error", l), delete ct[t];
613
+ r("error", l), delete dt[t];
611
614
  }));
612
615
  };
613
- var Q, Le, Et, di, At, ui;
614
- const N = class N {
616
+ var V, De, At, mi, Lt, gi;
617
+ const z = class z {
615
618
  constructor(i, t = {}) {
616
- h(this, Q);
617
- h(this, Et);
619
+ h(this, V);
618
620
  h(this, At);
621
+ h(this, Lt);
619
622
  this.__storage__ = {
620
623
  el: i,
621
624
  options: t
622
- }, this.active = "data-modal-active", d(this, Q, Le).call(this);
625
+ }, this.active = "data-modal-active", d(this, V, De).call(this);
623
626
  }
624
627
  destroy() {
625
628
  const { elements: i } = this;
@@ -629,39 +632,39 @@ const N = class N {
629
632
  }
630
633
  update() {
631
634
  var i;
632
- return d(i = this.destroy(), Q, Le).call(i), this.emit("update"), this;
635
+ return d(i = this.destroy(), V, De).call(i), this.emit("update"), this;
633
636
  }
634
637
  /** static method 'open' */
635
638
  static open(i) {
636
- const { SETTINGS: t } = I, e = Object.assign({}, t, { on: {} }, i);
637
- ze(e);
639
+ const { SETTINGS: t } = P, e = Object.assign({}, t, { on: {} }, i);
640
+ Re(e);
638
641
  }
639
642
  /** static method 'defineMethods' */
640
643
  static defineMethods(i) {
641
- N.prototype.__methods__ || (N.prototype.__methods__ = {});
642
- const t = N.prototype.__methods__;
644
+ z.prototype.__methods__ || (z.prototype.__methods__ = {});
645
+ const t = z.prototype.__methods__;
643
646
  for (const [e, s] of Object.entries(i))
644
- j(s) && (t[e] = s);
645
- Object.assign(N.prototype, N.prototype.__methods__);
647
+ W(s) && (t[e] = s);
648
+ Object.assign(z.prototype, z.prototype.__methods__);
646
649
  }
647
650
  };
648
- Q = new WeakSet(), Le = function() {
651
+ V = new WeakSet(), De = function() {
649
652
  const { el: i, options: t } = this.__storage__;
650
- if (!rt(i) || !w(i))
653
+ if (!lt(i) || !E(i))
651
654
  return;
652
- const { SETTINGS: e, EVENTS: s } = I;
653
- if (this.elements = t.state == "not active" ? S(i + `:not([${this.active}])`) : S(i), this.options = Object.assign({}, e, t), this.__events__ = Object.assign({}, s), this.options.on)
655
+ const { SETTINGS: e, EVENTS: s } = P;
656
+ if (this.elements = t.state == "not active" ? k(i + `:not([${this.active}])`) : k(i), this.options = Object.assign({}, e, t), this.__events__ = Object.assign({}, s), this.options.on)
654
657
  for (const [o, a] of Object.entries(this.options.on))
655
658
  this.__events__[o] = [a];
656
- d(this, Et, di).call(this);
657
- }, Et = new WeakSet(), di = function() {
659
+ d(this, At, mi).call(this);
660
+ }, At = new WeakSet(), mi = function() {
658
661
  const { elements: i, options: t } = this;
659
662
  i.forEach((e) => {
660
- e.modal = {}, e.modal.instance = this, e.modal.eventHandler = d(this, At, ui), e.modal.defaultOptions = t, e.modal.methods = {}, e.modal.methods.destroy = this.destroy, e.modal.methods.update = this.update, e.addEventListener("click", e.modal.eventHandler), e.setAttribute(this.active, "");
663
+ e.modal = {}, e.modal.instance = this, e.modal.eventHandler = d(this, Lt, gi), e.modal.defaultOptions = t, e.modal.methods = {}, e.modal.methods.destroy = this.destroy, e.modal.methods.update = this.update, e.addEventListener("click", e.modal.eventHandler), e.setAttribute(this.active, "");
661
664
  }), this.emit("init");
662
- }, At = new WeakSet(), ui = function(i) {
663
- const { defaultOptions: t, eventHandler: e, instance: s } = this.modal, o = Ls(this.getAttribute("data-modal-on"));
664
- o && typeof o != "object" && E("modal4", "data-modal-on must be a json string.");
665
+ }, Lt = new WeakSet(), gi = function(i) {
666
+ const { defaultOptions: t, eventHandler: e, instance: s } = this.modal, o = Cs(this.getAttribute("data-modal-on"));
667
+ o && typeof o != "object" && A("modal4", "data-modal-on must be a json string.");
665
668
  const a = {
666
669
  target: this.getAttribute("data-modal-target") || t.target,
667
670
  action: this.getAttribute("data-modal-action") || t.action,
@@ -672,12 +675,12 @@ Q = new WeakSet(), Le = function() {
672
675
  };
673
676
  this.removeEventListener("click", e), setTimeout(() => {
674
677
  this.addEventListener("click", e);
675
- }, 200), ze(a, s);
678
+ }, 200), Re(a, s);
676
679
  };
677
- let J = N;
678
- Object.assign(J.prototype, O);
679
- customElements.define("modern-modal", ei);
680
- const _s = (n, i) => {
680
+ let Z = z;
681
+ Object.assign(Z.prototype, j);
682
+ customElements.define("modern-modal", oi);
683
+ const Is = (n, i) => {
681
684
  const t = n === window ? n.innerHeight : n.getBoundingClientRect().height, e = n === window ? 0 : n.getBoundingClientRect().top;
682
685
  i.forEach((s) => {
683
686
  const { class: o, delay: a, start: r, end: l, repeat: c, instance: u } = s.aost, { top: p, bottom: g } = s.getBoundingClientRect(), m = t * (r / 100), v = t * (l / 100);
@@ -686,28 +689,28 @@ const _s = (n, i) => {
686
689
  s.classList.add(o);
687
690
  }, a);
688
691
  else {
689
- const y = s.classList.contains(o) && c === "down" && p - e >= m || c === "up" && g - e <= v || c === !0;
692
+ const b = s.classList.contains(o) && c === "down" && p - e >= m || c === "up" && g - e <= v || c === !0;
690
693
  setTimeout(() => {
691
- y && s.classList.remove(o);
694
+ b && s.classList.remove(o);
692
695
  }, a);
693
696
  }
694
697
  });
695
- }, $s = (n, i) => n === "up" || n === "down" ? n : n !== null ? n === "true" ? !0 : n === "false" ? !1 : i.repeat : i.repeat;
696
- var V, Se, Lt, pi;
697
- class hi {
698
+ }, Os = (n, i) => n === "up" || n === "down" ? n : n !== null ? n === "true" ? !0 : n === "false" ? !1 : i.repeat : i.repeat;
699
+ var K, ke, St, vi;
700
+ class fi {
698
701
  constructor(i, t = {}) {
699
- h(this, V);
700
- h(this, Lt);
702
+ h(this, K);
703
+ h(this, St);
701
704
  this.__storage__ = {
702
705
  el: i,
703
706
  options: t
704
- }, this.active = "data-aost-active", d(this, V, Se).call(this);
707
+ }, this.active = "data-aost-active", d(this, K, ke).call(this);
705
708
  }
706
709
  destroy(i) {
707
710
  const { elements: t, options: e } = this;
708
711
  if (!t)
709
712
  return this;
710
- const { scroller: s } = e, o = s === window || !w(s) ? window : L(s);
713
+ const { scroller: s } = e, o = s === window || !E(s) ? window : D(s);
711
714
  return o.aost && (o.removeEventListener("scroll", o.aost.eventHandler), delete o.aost), t.forEach((a) => {
712
715
  if (!a.aost)
713
716
  return;
@@ -717,56 +720,58 @@ class hi {
717
720
  }
718
721
  update(i) {
719
722
  var t;
720
- d(t = this.destroy(i), V, Se).call(t);
723
+ d(t = this.destroy(i), K, ke).call(t);
721
724
  }
722
725
  }
723
- V = new WeakSet(), Se = function() {
726
+ K = new WeakSet(), ke = function() {
724
727
  const { el: i, options: t } = this.__storage__;
725
- if (!rt(i) || !w(i))
728
+ if (!lt(i) || !E(i))
726
729
  return;
727
- const { SETTINGS: e, EVENTS: s } = Ue;
728
- if (this.elements = t.state == "not active" ? S(i + `:not([${this.active}])`) : S(i), this.options = Object.assign({}, e, t), this.__events__ = Object.assign({}, s), this.options.on)
730
+ const { SETTINGS: e, EVENTS: s } = Ve;
731
+ if (this.elements = t.state == "not active" ? k(i + `:not([${this.active}])`) : k(i), this.options = Object.assign({}, e, t), this.__events__ = Object.assign({}, s), this.options.on)
729
732
  for (const [o, a] of Object.entries(this.options.on))
730
733
  this.__events__[o] = [a];
731
- d(this, Lt, pi).call(this);
732
- }, Lt = new WeakSet(), pi = function() {
733
- const { elements: i, options: t } = this, { scroller: e } = t, s = e === window || !w(e) ? window : L(e);
734
+ d(this, St, vi).call(this);
735
+ }, St = new WeakSet(), vi = function() {
736
+ const { elements: i, options: t } = this, { scroller: e } = t, s = e === window || !E(e) ? window : D(e);
734
737
  this.eventHandler = () => {
735
- _s(s, i);
738
+ Is(s, i);
736
739
  }, i.forEach((a) => {
737
- a.aost = {}, a.aost.class = a.getAttribute("data-aost-class") || t.class, a.aost.delay = parseInt(a.getAttribute("data-aost-delay")) || t.delay, a.aost.start = parseInt(a.getAttribute("data-aost-start")) || t.start, a.aost.end = parseInt(a.getAttribute("data-aost-end")) || t.end, a.aost.repeat = $s(a.getAttribute("data-aost-repeat"), t), a.aost.methods = {}, a.aost.methods.destroy = this.destroy, a.aost.methods.update = this.update, a.aost.instance = this, a.setAttribute(this.active, "");
740
+ a.aost = {}, a.aost.class = a.getAttribute("data-aost-class") || t.class, a.aost.delay = parseInt(a.getAttribute("data-aost-delay")) || t.delay, a.aost.start = parseInt(a.getAttribute("data-aost-start")) || t.start, a.aost.end = parseInt(a.getAttribute("data-aost-end")) || t.end, a.aost.repeat = Os(a.getAttribute("data-aost-repeat"), t), a.aost.methods = {}, a.aost.methods.destroy = this.destroy, a.aost.methods.update = this.update, a.aost.instance = this, a.setAttribute(this.active, "");
738
741
  });
739
742
  const { eventHandler: o } = this;
740
743
  o(), s.aost = {}, s.aost.eventHandler = o, s.addEventListener("scroll", s.aost.eventHandler, !1);
741
744
  };
742
- Object.assign(hi.prototype, O);
743
- const xs = (n) => {
744
- const { TEMPLATE: i } = Y, { childDom: t } = n, e = document.createElement("div");
745
+ Object.assign(fi.prototype, j);
746
+ const Ns = (n) => {
747
+ const { TEMPLATE: i } = Pe, { childDom: t } = n, e = document.createElement("div");
745
748
  e.innerHTML = i();
746
749
  const s = e.querySelector(".player-wrapper");
747
750
  return [...t].forEach((o) => {
748
751
  s.append(o);
749
752
  }), e.children[0];
750
753
  };
751
- var St, mi, Dt, gi, kt, fi, _t, vi, $t, bi, xt, yi, Ct, wi, Ht, Ti, Mt, Ei;
752
- class Cs extends HTMLElement {
754
+ var Dt, bi, kt, yi, xt, wi, _t, Ti, $t, Ei, Ct, Ai, Ht, Li, Mt, Si, qt, Di, It, ki;
755
+ class Ps extends HTMLElement {
753
756
  constructor() {
754
757
  super();
755
- h(this, St);
756
758
  h(this, Dt);
757
759
  h(this, kt);
760
+ h(this, xt);
758
761
  // youtube iframe
759
762
  h(this, _t);
760
763
  // vimeo iframe
761
764
  h(this, $t);
762
765
  // youku iframe
763
- h(this, xt);
764
766
  h(this, Ct);
765
- // 2025.02.11 新增 ig
766
767
  h(this, Ht);
767
- // 2025.02.11 新增 tiktok
768
+ // 2025.02.11 新增 ig
768
769
  h(this, Mt);
769
- d(this, St, mi).call(this);
770
+ // 2025.02.11 新增 tiktok
771
+ h(this, qt);
772
+ // 2026.01.15 新增 tiktok
773
+ h(this, It);
774
+ d(this, Dt, bi).call(this);
770
775
  }
771
776
  play() {
772
777
  const { videoType: t } = this;
@@ -803,19 +808,21 @@ class Cs extends HTMLElement {
803
808
  }
804
809
  }
805
810
  }
806
- St = new WeakSet(), mi = function() {
811
+ Dt = new WeakSet(), bi = function() {
807
812
  if (!this.getAttribute("video-id")) {
808
- E("videoPlayer", "video-render needs a ['video-id'] attribute to creat player.");
813
+ A("videoPlayer", "video-render needs a ['video-id'] attribute to creat player.");
809
814
  return;
810
815
  }
811
- this.videoId = this.getAttribute("video-id"), this.videoType = this.getAttribute("video-type"), this.autoplay = this.getAttribute("video-autoplay"), this.startTime = this.getAttribute("video-starttime"), d(this, Dt, gi).call(this);
812
- }, Dt = new WeakSet(), gi = function() {
813
- this.childDom = this.childNodes, this.template = xs(this), this.innerHTML = "", this.append(this.template), d(this, kt, fi).call(this);
814
- }, kt = new WeakSet(), fi = function() {
815
- const { videoType: t } = this;
816
- let e = "";
817
- function s(o) {
818
- f(o).addClass("cookie-disagree"), f(".cookie-disagree").append(`
816
+ this.videoId = this.getAttribute("video-id"), this.videoType = this.getAttribute("video-type"), this.videoMode = this.getAttribute("video-mode"), this.autoplay = this.getAttribute("video-autoplay"), this.startTime = this.getAttribute("video-starttime"), this.videoInboxImg = this.getAttribute("video-inbox-img"), d(this, kt, yi).call(this);
817
+ }, kt = new WeakSet(), yi = function() {
818
+ this.childDom = this.childNodes, this.template = Ns(this), this.innerHTML = "", this.append(this.template), d(this, xt, wi).call(this);
819
+ }, xt = new WeakSet(), wi = function() {
820
+ const { videoType: t, videoMode: e } = this;
821
+ console.log(e, "...");
822
+ let s = "";
823
+ function o(a) {
824
+ f(a).addClass("cookie-disagree"), f(".cookie-disagree").append(
825
+ `
819
826
  <div class="disagree-inner">
820
827
  <div class="icon"> <svg xmlns="http://www.w3.org/2000/svg" width="7" height="25" viewBox="0 0 7 25"
821
828
  fill="none">
@@ -829,68 +836,77 @@ St = new WeakSet(), mi = function() {
829
836
  <div class="box"><span>您可前往 </span><span data-cookie-open>Cookie 偏好設定</span><span> 進行修改</span></div>
830
837
  <div class="box"><span>Modify your </span><span data-cookie-open>cookie preferences.</span></div>
831
838
  </div>
832
- </div>`);
839
+ </div>`
840
+ );
833
841
  }
834
842
  switch (t) {
835
843
  case "youtubeAPI":
836
844
  break;
837
845
  case "youtube":
838
- document.body.wd_youtube == !1 ? s("video-player") : e = d(this, _t, vi).call(this);
846
+ document.body.wd_youtube == !1 ? o("video-player") : s = d(this, _t, Ti).call(this);
839
847
  break;
840
848
  case "youkuAPI":
841
849
  break;
842
850
  case "youku":
843
- document.body.wd_youku == !1 ? s("video-player") : e = d(this, xt, yi).call(this);
851
+ document.body.wd_youku == !1 ? o("video-player") : s = d(this, Ct, Ai).call(this);
844
852
  break;
845
853
  case "vimeo":
846
- document.body.wd_vimeo == !1 ? s("video-player") : e = d(this, $t, bi).call(this);
854
+ document.body.wd_vimeo == !1 ? o("video-player") : s = d(this, $t, Ei).call(this);
847
855
  break;
848
856
  case "bilibili":
849
- document.body.wd_bilibili == !1 ? s("video-player") : e = d(this, Ct, wi).call(this);
857
+ document.body.wd_bilibili == !1 ? o("video-player") : s = d(this, Ht, Li).call(this);
850
858
  break;
851
859
  case "instagram":
852
- document.body.wd_instagram == !1 ? s(".instagram-media") : e = d(this, Ht, Ti).call(this);
860
+ document.body.wd_instagram == !1 ? o(".instagram-media") : s = d(this, Mt, Si).call(this);
853
861
  break;
854
862
  case "tiktok":
855
- document.body.wd_tiktok == !1 ? s("video-player") : e = d(this, Mt, Ei).call(this);
863
+ document.body.wd_tiktok == !1 ? o("video-player") : s = d(this, qt, Di).call(this);
864
+ break;
865
+ case "videojs":
866
+ break;
867
+ case "video":
868
+ s = d(this, It, ki).call(this);
856
869
  break;
857
870
  }
858
- this.querySelector(".player-wrapper").insertAdjacentHTML(A.prepend, e);
859
- }, _t = new WeakSet(), vi = function() {
871
+ this.querySelector(".player-wrapper").insertAdjacentHTML(L.prepend, s);
872
+ }, _t = new WeakSet(), Ti = function() {
860
873
  const { videoId: t, autoplay: e, startTime: s } = this;
861
874
  return `<iframe src="https://www.youtube.com/embed/${t}?rel=0&${e === "on" ? "autoplay=1" : ""}&start=${s}&mute=1&loop=1&enablejsapi=1" frameborder="0" allowfullscreen="0" volumn="0" allow="${e === "on" ? "autoplay;" : ""} encrypted-media; gyroscope; picture-in-picture;"></iframe>`;
862
- }, $t = new WeakSet(), bi = function() {
875
+ }, $t = new WeakSet(), Ei = function() {
863
876
  const { videoId: t, autoplay: e, hash: s } = this;
864
877
  return `<iframe src="https://player.vimeo.com/video/${t}?h=${s}&${e === "on" ? "autoplay=1" : ""}&loop=1&color=ffffff&title=0&byline=0&portrait=0" frameborder="0" allow="${e === "on" ? "autoplay;" : ""} fullscreen; picture-in-picture" allowfullscreen></iframe><script src="https://player.vimeo.com/api/player.js"><\/script>`;
865
- }, xt = new WeakSet(), yi = function() {
878
+ }, Ct = new WeakSet(), Ai = function() {
866
879
  const { videoId: t, autoplay: e } = this;
867
880
  return `<iframe src="https://player.youku.com/embed/${t}?rel=0&${e === "on" ? "autoplay=1" : ""}" frameborder=0 "allowfullscreen"></iframe>`;
868
- }, Ct = new WeakSet(), wi = function() {
881
+ }, Ht = new WeakSet(), Li = function() {
869
882
  const { videoId: t, autoplay: e } = this;
870
883
  return `<iframe src="//player.bilibili.com/player.html?bvid=${t}&page=1&as_wide=1&high_quality=1&danmaku=0" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>`;
871
- }, Ht = new WeakSet(), Ti = function() {
884
+ }, Mt = new WeakSet(), Si = function() {
872
885
  const { videoId: t, autoplay: e } = this;
873
886
  return `<iframe class="instagram-media instagram-media-rendered" id="instagram-embed-0" src="https://www.instagram.com/p/${t}/embed/" width="num-w" height=" num-h" scrolling="auto" frameborder="0" data-instgrm-payload-id="instagram-media-payload-0"></iframe>`;
874
- }, Mt = new WeakSet(), Ei = function() {
887
+ }, qt = new WeakSet(), Di = function() {
875
888
  const { videoId: t, autoplay: e } = this;
876
889
  return `<iframe name="__tt_embed__v79271677875424740" sandbox="allow-popups allow-popups-to-escape-sandbox allow-scripts allow-top-navigation allow-same-origin" src="https://www.tiktok.com/player/v1/${t}?&${e === "on" ? "autoplay=1" : ""}"></iframe>`;
890
+ }, It = new WeakSet(), ki = function() {
891
+ const { videoId: t, autoplay: e } = this;
892
+ return `<video src="${t}" autoplay muted playsinline controls></video>`;
877
893
  };
878
- const vn = (n) => new Promise((i) => {
894
+ const An = (n) => new Promise((i) => {
879
895
  let t = setTimeout(() => (clearTimeout(t), i()), n);
880
896
  });
881
- function Ai(n) {
897
+ function xi(n) {
882
898
  const i = [];
883
899
  n && n.forEach((t) => {
884
900
  t instanceof HTMLElement ? i.push(t) : typeof t == "string" && i.push(...document.querySelectorAll(`${t}`));
885
- }), f("html").addClass("scrollLock"), bs(i);
901
+ }), f("html").addClass("scrollLock"), Ss(i);
886
902
  }
887
- function Li(n) {
903
+ function _i(n) {
888
904
  const i = [];
889
905
  n && n.forEach((t) => {
890
906
  t instanceof HTMLElement ? i.push(t) : typeof t == "string" && i.push(...document.querySelectorAll(`${t}`));
891
- }), f("html").removeClass("scrollLock"), ys(i);
907
+ }), f("html").removeClass("scrollLock"), Ds(i);
892
908
  }
893
- async function bn(n = 0) {
909
+ async function Ln(n = 0) {
894
910
  if (f(".loading-wrapper").length)
895
911
  return;
896
912
  f("body").append(`
@@ -904,30 +920,30 @@ async function bn(n = 0) {
904
920
  </div>
905
921
  </div>
906
922
  `), f(".loading-wrapper").delay(n).fadeIn(300).promise().done(function() {
907
- Ai();
923
+ xi();
908
924
  });
909
925
  }
910
- function yn() {
926
+ function Sn() {
911
927
  f(".loading-wrapper").fadeOut(300).promise().done(function() {
912
- f(".loading-wrapper").remove(), Li();
928
+ f(".loading-wrapper").remove(), _i();
913
929
  });
914
930
  }
915
- function wn(n, i) {
916
- new rn(n, i);
931
+ function Dn(n, i) {
932
+ new pn(n, i);
917
933
  }
918
- function Hs() {
919
- const n = document.querySelector("[data-aost]") && new hi("[data-aost]"), i = document.querySelector("[data-anchor-target]") && new Ve("[data-anchor-target]"), t = new Ye({ callback_loaded: () => {
920
- } }), e = new Ks();
934
+ function js() {
935
+ const n = document.querySelector("[data-aost]") && new fi("[data-aost]"), i = document.querySelector("[data-anchor-target]") && new ii("[data-anchor-target]"), t = new Qe({ callback_loaded: () => {
936
+ } }), e = new an();
921
937
  n == null || n.update(), t.update(), e.reValidate(), i == null || i.update();
922
938
  }
923
- function Tn(n, i = () => {
939
+ function kn(n, i = () => {
924
940
  }) {
925
941
  f(`[data-tab-content=${n}]`).fadeIn(function() {
926
942
  typeof i == "function" && i();
927
- }).siblings("[data-tab-content]").hide(), Hs();
943
+ }).siblings("[data-tab-content]").hide(), js();
928
944
  }
929
- function En() {
930
- qe(
945
+ function xn() {
946
+ Ne(
931
947
  {
932
948
  target: document.body,
933
949
  cancel: {
@@ -951,28 +967,28 @@ function En() {
951
967
  }
952
968
  );
953
969
  }
954
- function An() {
970
+ function _n() {
955
971
  window.onpageshow = function(n) {
956
972
  n.persisted && window.location.reload();
957
973
  };
958
974
  }
959
- function Ln() {
975
+ function $n() {
960
976
  const n = navigator.userAgent;
961
977
  return {
962
978
  BigSurUP: /Mac OS X 10.15/.test(n) || /Mac OS X 10_15_7/.test(n) || /Mac OS X 10_15_8/.test(n) || /Mac OS X 10_15_9/.test(n) || /Mac OS X 11_/.test(n) || /Mac OS X 12_/.test(n)
963
979
  };
964
980
  }
965
- function Sn(n, i) {
981
+ function Cn(n, i) {
966
982
  f(n).on("click", function() {
967
983
  f(this).toggleClass(i);
968
984
  });
969
985
  }
970
- function Dn(n, i) {
986
+ function Hn(n, i) {
971
987
  f(n).on("click", function() {
972
988
  f(n).not(this).removeClass(i), f(this).addClass(i);
973
989
  });
974
990
  }
975
- function Ms(n, i = 250) {
991
+ function zs(n, i = 250) {
976
992
  let t = null;
977
993
  return function(...e) {
978
994
  let s = this;
@@ -981,7 +997,7 @@ function Ms(n, i = 250) {
981
997
  }, i);
982
998
  };
983
999
  }
984
- function kn(n, i = 250) {
1000
+ function Mn(n, i = 250) {
985
1001
  let t, e;
986
1002
  return function() {
987
1003
  const s = this, o = arguments, a = +/* @__PURE__ */ new Date();
@@ -990,7 +1006,7 @@ function kn(n, i = 250) {
990
1006
  }, i)) : (t = a, n.apply(s, o));
991
1007
  };
992
1008
  }
993
- function _n() {
1009
+ function qn() {
994
1010
  window._g.interval = [], f(".countdown").each((i, t) => {
995
1011
  const e = Number(f(t).attr("data-seconds")) + 1;
996
1012
  let s = Math.floor(e / 60) + ":" + e % 60;
@@ -1000,21 +1016,21 @@ function _n() {
1000
1016
  }, 1e3);
1001
1017
  });
1002
1018
  }
1003
- function $n(n = 500) {
1019
+ function In(n = 500) {
1004
1020
  return new Promise((i, t) => {
1005
1021
  let e = setTimeout(() => {
1006
1022
  clearTimeout(e), i();
1007
1023
  }, n);
1008
1024
  });
1009
1025
  }
1010
- function xn() {
1026
+ function On() {
1011
1027
  const n = function() {
1012
1028
  let i = window.innerHeight * 0.01;
1013
1029
  document.documentElement.style.setProperty("--vh", i + "px");
1014
1030
  };
1015
- n(), window.addEventListener("resize", Ms(n));
1031
+ n(), window.addEventListener("resize", zs(n));
1016
1032
  }
1017
- function Cn(n, i, t, e, s) {
1033
+ function Nn(n, i, t, e, s) {
1018
1034
  const o = this, r = f(n).html().split("<br>");
1019
1035
  let l = "", c = 0;
1020
1036
  r.forEach((u, p) => {
@@ -1023,11 +1039,11 @@ function Cn(n, i, t, e, s) {
1023
1039
  });
1024
1040
  }), f(n).html(l);
1025
1041
  }
1026
- function Hn(n, i) {
1042
+ function Pn(n, i) {
1027
1043
  const t = Math.pow(10, i);
1028
1044
  return Math.round(n * t) / t;
1029
1045
  }
1030
- function Mn(n) {
1046
+ function jn(n) {
1031
1047
  let i = n.activeIndex, t = n.slides.length;
1032
1048
  if (n.params.loop)
1033
1049
  switch (n.activeIndex) {
@@ -1042,18 +1058,18 @@ function Mn(n) {
1042
1058
  }
1043
1059
  return i;
1044
1060
  }
1045
- function qn(n, i) {
1061
+ function zn(n, i) {
1046
1062
  const t = n.$el, e = n.params.grid.rows, s = i || n.params.slidesPerView * e;
1047
1063
  (n.loopedSlides ? n.slides.length - n.loopedSlides * 2 : n.slides.length) <= s ? (t.addClass("swiper-no-swiping"), f(n.params.navigation.nextEl).hide(), f(n.params.navigation.prevEl).hide(), f(n.params.pagination.el).hide(), n.params.autoplay.enabled = !1, n.autoplay.stop()) : (t.removeClass("swiper-no-swiping"), f(n.params.navigation.nextEl).show(), f(n.params.navigation.prevEl).show(), f(n.params.pagination.el).show(), n.params.autoplay.enabled && n.autoplay.start());
1048
1064
  }
1049
- function In(n) {
1065
+ function Bn(n) {
1050
1066
  n.el.querySelectorAll("img.detect-shade").forEach((i) => {
1051
1067
  i.addEventListener("load", function() {
1052
1068
  detectShade(i);
1053
1069
  });
1054
1070
  });
1055
1071
  }
1056
- function On(n) {
1072
+ function Wn(n) {
1057
1073
  const i = n.el, t = f(i).find(".swiper-slide-active"), e = f(t).find("video").get(0), s = f(i).find(".swiper-slide video");
1058
1074
  n.autoplay.stop(), f(e).off("ended"), e ? (s.each((o, a) => {
1059
1075
  a.currentTime = 0;
@@ -1061,7 +1077,7 @@ function On(n) {
1061
1077
  n.slideNext();
1062
1078
  }), e.play()) : n.params.autoplay.enabled && n.autoplay.start();
1063
1079
  }
1064
- function Nn() {
1080
+ function Gn() {
1065
1081
  f(".number-grow").each(function(n, i) {
1066
1082
  const t = f(i), o = t.attr("data-num").replace(/(\d)(?=(?:\d{3})+$)/g, "$1,").split(""), a = () => {
1067
1083
  let r = "";
@@ -1075,7 +1091,7 @@ function Nn() {
1075
1091
  });
1076
1092
  });
1077
1093
  }
1078
- function Pn() {
1094
+ function Rn() {
1079
1095
  f(".letter-grow").each(function(n, i) {
1080
1096
  const t = f(i), s = t.attr("data-letter").split(""), o = () => {
1081
1097
  let a = "";
@@ -1089,129 +1105,173 @@ function Pn() {
1089
1105
  });
1090
1106
  });
1091
1107
  }
1092
- function jn(n) {
1108
+ function Xn(n) {
1093
1109
  const i = getComputedStyle(n).transform;
1094
1110
  let t = i.match(/^matrix3d\((.+)\)$/);
1095
1111
  return t ? parseFloat(t[1].split(", ")[12]) : (t = i.match(/^matrix\((.+)\)$/), t ? parseFloat(t[1].split(", ")[4]) : 0);
1096
1112
  }
1097
- function zn(n) {
1113
+ function Yn(n) {
1098
1114
  const i = getComputedStyle(n).transform;
1099
1115
  let t = i.match(/^matrix3d\((.+)\)$/);
1100
1116
  return t ? parseFloat(t[1].split(", ")[13]) : (t = i.match(/^matrix\((.+)\)$/), t ? parseFloat(t[1].split(", ")[5]) : 0);
1101
1117
  }
1102
- function Wn(n) {
1118
+ function Fn(n) {
1103
1119
  const i = document.createElement("div");
1104
1120
  return i.innerHTML = n, i.childNodes[0];
1105
1121
  }
1106
- const We = (n) => n.videoId !== "" || typeof n.videoId < "u", qs = (n) => n.$selector.getAttribute("video4-active") === "on", dt = (n) => `<video-player video-id="${n.videoId}" video-type="${n.videoType}" video-startTime="${n.videoStartTime}" video-autoplay="${n.videoAutoplay}"></video-player>`;
1107
- var K, De, qt, Si, It, Di, tt, ke, Ot, ki;
1108
- class Is {
1122
+ const Xe = (n) => n.videoId !== "" || typeof n.videoId < "u", Bs = (n) => n.$selector.getAttribute("video4-active") === "on", ut = (n) => `<video-player video-id="${n.videoId}" video-type="${n.videoType}" video-startTime="${n.videoStartTime}" video-autoplay="${n.videoAutoplay}"></video-player>`;
1123
+ var tt, _e, Ot, $i, Nt, Ci, et, $e, Pt, Hi;
1124
+ const R = class R {
1125
+ //*-* 給Article4用的 **//
1109
1126
  constructor(i, t = {}) {
1110
- h(this, K);
1111
- h(this, qt);
1112
- h(this, It);
1113
1127
  h(this, tt);
1114
1128
  h(this, Ot);
1115
- if (!rt(i) && !Te(i) && !lt(i)) {
1116
- je("video4", `找不到該物件 -> ${i}`);
1129
+ h(this, Nt);
1130
+ h(this, et);
1131
+ h(this, Pt);
1132
+ if (!lt(i) && !Ae(i) && !ct(i)) {
1133
+ Ge("video4", `找不到該物件 -> ${i}`);
1117
1134
  return;
1118
1135
  }
1119
1136
  this.__storage__ = {
1120
1137
  el: i,
1121
1138
  options: t
1122
- }, this.active = "data-video-active", d(this, K, De).call(this);
1139
+ }, this.active = "data-video-active", d(this, tt, _e).call(this);
1123
1140
  }
1124
1141
  update() {
1125
- d(this, K, De).call(this);
1142
+ d(this, tt, _e).call(this);
1126
1143
  }
1127
- }
1128
- K = new WeakSet(), De = function() {
1129
- const { el: i, options: t } = this.__storage__, { SETTINGS: e, EVENTS: s } = Y;
1130
- if (this.elements = t.state == "not active" ? S(i + `:not([${this.active}])`) : S(i), this.options = Object.assign({}, e, t), this.__events__ = Object.assign({}, s), this.options.on)
1131
- for (const [o, a] of Object.entries(this.options.on))
1132
- this.__events__[o] = [a];
1133
- d(this, qt, Si).call(this);
1134
- }, qt = new WeakSet(), Si = function() {
1144
+ };
1145
+ tt = new WeakSet(), _e = function() {
1146
+ const { el: i, options: t } = this.__storage__, { SETTINGS: e, EVENTS: s, LAYOUT: o } = Pe;
1147
+ if (t.isGlobal && (R.globalOptions = t), this.elements = t.state == "not active" ? k(i + `:not([${this.active}])`) : k(i), this.options = Object.assign(
1148
+ {},
1149
+ { LAYOUT: o },
1150
+ // 原始 configs 的 LAYOUT
1151
+ e,
1152
+ // 原始 configs 的 SETTINGS
1153
+ R.globalOptions,
1154
+ // 全站 A 設定
1155
+ t
1156
+ // 個別傳入的設定 (優先級最高)
1157
+ ), this.__events__ = Object.assign({}, s), this.options.on)
1158
+ for (const [a, r] of Object.entries(this.options.on))
1159
+ this.__events__[a] = [r];
1160
+ d(this, Ot, $i).call(this);
1161
+ }, Ot = new WeakSet(), $i = function() {
1135
1162
  const { elements: i, options: t } = this;
1136
1163
  i.forEach((e) => {
1137
- e.video = {}, e.video.instance = this, e.video.defaultOptions = t, e.video.params = d(this, Ot, ki).call(this, e), e.video.methods = {}, e.video.methods.update = this.update, e.setAttribute(this.active, ""), We(e.video.params) && !qs(e.video.params) && (e.setAttribute("video4-active", "on"), d(this, It, Di).call(this, e)), We(e.video.params) || je("video4", "無法取得影片 ID");
1164
+ e.video = {}, e.video.instance = this, e.video.defaultOptions = t, e.video.params = d(this, Pt, Hi).call(this, e), e.video.methods = {}, e.video.methods.update = this.update, e.setAttribute(this.active, ""), Xe(e.video.params) && !Bs(e.video.params) && (e.setAttribute("video4-active", "on"), d(this, Nt, Ci).call(this, e)), Xe(e.video.params) || Ge("video4", "無法取得影片 ID");
1138
1165
  }), this.emit("init");
1139
- }, It = new WeakSet(), Di = function(i) {
1140
- const { LAYOUT: t } = Y, e = i.video.params, { $selector: s, videoLayoutNo: o, videoId: a, videoType: r, videoMode: l, videoButton: c, videoCover: u, videoHighQualityPic: p } = e;
1141
- if (l === "onBox") {
1166
+ }, Nt = new WeakSet(), Ci = function(i) {
1167
+ const { LAYOUT: t } = this.options, e = i.video.params, { $selector: s, videoLayoutNo: o, videoId: a, videoType: r, videoMode: l, videoButton: c, videoCover: u, videoHighQualityPic: p } = e;
1168
+ if (l === "onBox" || l === "inBox") {
1142
1169
  let g = null;
1143
1170
  if (u === "on") {
1144
- i.classList.add("video4-cover"), s.querySelector("img") || (s.insertAdjacentHTML(A.prepend, '<picture><source srcset="" type="image/webp"><source srcset="" type="image/jpeg"><img src="" alt></picture>'), E("video4", "若啟用 [videoCover] 且選擇 onBox 模式必須於 video-target 內放置 img 結構,若無結構則自動加入圖片結構"));
1145
- const m = s.querySelector("img");
1146
- m.insertAdjacentHTML(A.after, t[o]);
1147
- const v = (m == null ? void 0 : m.getAttribute("src")) || (m == null ? void 0 : m.getAttribute("data-src"));
1148
- !v && r == "youtube" ? p == "on" ? m.setAttribute("src", `https://img.youtube.com/vi/${a}/maxresdefault.jpg `) : m.setAttribute("src", `https://img.youtube.com/vi/${a}/0.jpg`) : !v && r == "vimeo" ? m.setAttribute("src", `https://vumbnail.com/${a}_large.jpg`) : !v && r == "tiktok" ? fetch(`https://www.tiktok.com/oembed?url=https://www.tiktok.com/@/video/${a}`, { method: "GET", redirect: "follow" }).then((b) => b.json()).then((b) => {
1149
- const y = b.thumbnail_url;
1150
- m.setAttribute("src", `${y}`);
1171
+ i.classList.add("video4-cover"), s.querySelector("img") || (s.insertAdjacentHTML(L.prepend, '<picture><source srcset="" type="image/webp"><source srcset="" type="image/jpeg"><img src="" alt></picture>'), A("video4", "若啟用 [videoCover] 且選擇 onBox 模式必須於 video-target 內放置 img 結構,若無結構則自動加入圖片結構"));
1172
+ const m = s.querySelector("img"), v = (m == null ? void 0 : m.getAttribute("src")) || (m == null ? void 0 : m.getAttribute("data-src")), y = t[o] ? t[o] : t[0] || "";
1173
+ y ? m.insertAdjacentHTML(L.after, y) : A("video4", `找不到對應的 LAYOUT 設定 (No: ${o}),且無預設樣式。`), !v && r == "youtube" ? p == "on" ? m.setAttribute("src", `https://img.youtube.com/vi/${a}/maxresdefault.jpg `) : m.setAttribute("src", `https://img.youtube.com/vi/${a}/0.jpg`) : !v && r == "vimeo" ? m.setAttribute("src", `https://vumbnail.com/${a}_large.jpg`) : !v && r == "tiktok" ? fetch(`https://www.tiktok.com/oembed?url=https://www.tiktok.com/@/video/${a}`, { method: "GET", redirect: "follow" }).then((b) => b.json()).then((b) => {
1174
+ const T = b.thumbnail_url;
1175
+ m.setAttribute("src", `${T}`);
1151
1176
  }).catch(function(b) {
1152
1177
  console.log("error");
1153
- }) : E("video4", "僅 youtube & vimeo 提供,無圖片時放置預設封面畫面,其他影片平台請自行上傳封面照片");
1178
+ }) : A("video4", "僅 youtube & vimeo 提供,無圖片時放置預設封面畫面,其他影片平台請自行上傳封面照片");
1154
1179
  }
1155
- c == "off" ? g = s : (g = s.querySelector(c) ?? s, s.querySelector(c) || E("video4", `找不到 videoButton 設定的 element -> '${c}' , 點擊物件轉移至 '${this.__storage__.el}'`)), g.video || (g.video = {}, g.video.params = e), g.video.eventHandler = d(this, tt, ke), g.addEventListener("click", g.video.eventHandler);
1180
+ c == "off" ? g = s : (g = s.querySelector(c) ?? s, s.querySelector(c) || A("video4", `找不到 videoButton 設定的 element -> '${c}' , 點擊物件轉移至 '${this.__storage__.el}'`)), g.video || (g.video = {}, g.video.params = e), g.video.eventHandler = d(this, et, $e), g.addEventListener("click", g.video.eventHandler);
1156
1181
  } else if (l === "onPage") {
1157
1182
  let g = null;
1158
1183
  if (u == "on") {
1159
- i.classList.add("video4-cover"), s.querySelector("img") || (s.insertAdjacentHTML(A.prepend, '<picture><source srcset="" type="image/webp"><source srcset="" type="image/jpeg"><img src="" alt></picture>'), E("video", "若啟用 [videoCover] 且選擇 onBox 模式必須於 video-target 內放置 img 結構"));
1184
+ i.classList.add("video4-cover"), s.querySelector("img") || (s.insertAdjacentHTML(L.prepend, '<picture><source srcset="" type="image/webp"><source srcset="" type="image/jpeg"><img src="" alt></picture>'), A("video", "若啟用 [videoCover] 且選擇 onBox 模式必須於 video-target 內放置 img 結構"));
1160
1185
  const m = s.querySelector("img");
1161
- m.insertAdjacentHTML(A.after, t[o]);
1186
+ m.insertAdjacentHTML(L.after, t[o]);
1162
1187
  const v = (m == null ? void 0 : m.getAttribute("src")) || (m == null ? void 0 : m.getAttribute("data-src"));
1163
- !v && r == "youtube" ? p == "on" ? m.setAttribute("src", `http://img.youtube.com/vi/${a}/maxresdefault.jpg `) : m.setAttribute("src", `https://img.youtube.com/vi/${a}/0.jpg`) : !v && r == "vimeo" ? m.setAttribute("src", `https://vumbnail.com/${a}_large.jpg`) : !v && r == "tiktok" ? fetch(`https://www.tiktok.com/oembed?url=https://www.tiktok.com/@/video/${a}`, { method: "GET", redirect: "follow" }).then((b) => b.json()).then((b) => {
1164
- const y = b.thumbnail_url;
1165
- m.setAttribute("src", `${y}`);
1166
- }).catch(function(b) {
1188
+ !v && r == "youtube" ? p == "on" ? m.setAttribute("src", `http://img.youtube.com/vi/${a}/maxresdefault.jpg `) : m.setAttribute("src", `https://img.youtube.com/vi/${a}/0.jpg`) : !v && r == "vimeo" ? m.setAttribute("src", `https://vumbnail.com/${a}_large.jpg`) : !v && r == "tiktok" ? fetch(`https://www.tiktok.com/oembed?url=https://www.tiktok.com/@/video/${a}`, { method: "GET", redirect: "follow" }).then((y) => y.json()).then((y) => {
1189
+ const b = y.thumbnail_url;
1190
+ m.setAttribute("src", `${b}`);
1191
+ }).catch(function(y) {
1167
1192
  console.log("error");
1168
- }) : v || E("video4", "僅 youtube & vimeo 提供,無圖片時放置預設封面畫面,其他影片平台請自行上傳封面照片"), c == "off" ? g = s : (g = s.querySelector(c) ?? s, s.querySelector(c) || E("video4", `找不到 videoButton 設定的 element -> '${c}', 點擊物件轉移至 '${this.__storage__.el}'`));
1193
+ }) : v || A("video4", "僅 youtube & vimeo 提供,無圖片時放置預設封面畫面,其他影片平台請自行上傳封面照片"), c == "off" ? g = s : (g = s.querySelector(c) ?? s, s.querySelector(c) || A("video4", `找不到 videoButton 設定的 element -> '${c}', 點擊物件轉移至 '${this.__storage__.el}'`));
1169
1194
  } else {
1170
- s.innerHTML = dt(e);
1195
+ s.innerHTML = ut(e);
1171
1196
  return;
1172
1197
  }
1173
- g.video || (g.video = {}, g.video.params = e), g.video.eventHandler = d(this, tt, ke), g.addEventListener("click", g.video.eventHandler);
1174
- }
1175
- }, tt = new WeakSet(), ke = function(i) {
1176
- const { video: t, emit: e } = this, { $selector: s, videoMode: o, videoTarget: a, videoKeep: r, videoTargetRoute: l, videoType: c, videoIgHtml: u } = t.params, p = new Ye({ callback_loaded: (g) => {
1177
- } });
1178
- if (o == "onBox") {
1179
- const g = {
1198
+ g.video || (g.video = {}, g.video.params = e), g.video.eventHandler = d(this, et, $e), g.addEventListener("click", g.video.eventHandler);
1199
+ }
1200
+ }, et = new WeakSet(), $e = function(i) {
1201
+ const { video: t, emit: e } = this, { $selector: s, videoMode: o, videoTarget: a, videoKeep: r, videoId: l, videoTargetRoute: c, videoType: u, videoIgHtml: p, videoInboxImg: g } = t.params, m = new Qe({ callback_loaded: (y) => {
1202
+ } }), v = new URLSearchParams({
1203
+ video_mode: o,
1204
+ video_type: u,
1205
+ video_id: l
1206
+ });
1207
+ if (o == "onBox" || o == "inBox") {
1208
+ const y = {
1180
1209
  target: a,
1181
- route: l,
1210
+ route: c + `?${v.toString()}`,
1182
1211
  on: {
1183
- complete(m) {
1184
- var v;
1185
- c == "instagram" ? (m.setAttribute("video-typeStyle", `${c}`), (v = window.instgrm) != null && v.Embeds ? window.instgrm.Embeds.process() : console.log("window.instgrm is undefined")) : (m.querySelector(".modal-content").insertAdjacentHTML("beforeend", dt(t.params)), m.setAttribute("video-typeStyle", `${c}`));
1212
+ complete(b) {
1213
+ var T;
1214
+ o == "onBox" && (u == "instagram" ? (b.setAttribute("video-typeStyle", `${u}`), (T = window.instgrm) != null && T.Embeds ? window.instgrm.Embeds.process() : console.log("window.instgrm is undefined")) : (b.querySelector(".modal-content").insertAdjacentHTML("beforeend", ut(t.params)), b.setAttribute("video-typeStyle", `${u}`))), o == "inBox" && b.setAttribute("video-typeStyle", `${u}`);
1186
1215
  },
1187
- open(m) {
1188
- const v = m.querySelectorAll("[data-overlayscrollbars-viewport]");
1189
- if (p.update(), Ai([...v]), c == "instagram") {
1190
- const b = document.querySelector("[video-template] .modal-content");
1191
- new ResizeObserver((k) => {
1192
- k[0].contentRect.height > 50 && b.classList.add("active");
1193
- }).observe(b);
1216
+ open(b) {
1217
+ var M;
1218
+ const T = b.querySelectorAll("[data-overlayscrollbars-viewport]");
1219
+ if (m.update(), xi([...T]), o == "onBox" && u == "instagram") {
1220
+ const w = document.querySelector("[video-template] .modal-content");
1221
+ new ResizeObserver((F) => {
1222
+ F[0].contentRect.height > 50 && w.classList.add("active");
1223
+ }).observe(w);
1224
+ }
1225
+ if (o == "inBox") {
1226
+ const w = g || ((M = s.querySelector("img")) == null ? void 0 : M.src), q = `
1227
+ <div
1228
+ class="photo-box"
1229
+ video-target
1230
+ video-mode="onPage"
1231
+ video-type="${u}"
1232
+ video-id="${l}"
1233
+ >
1234
+ <picture>
1235
+ <source
1236
+ srcset="${w}"
1237
+ type="image/webp"
1238
+ />
1239
+ <source
1240
+ srcset="${w}"
1241
+ type="image/jpeg"
1242
+ />
1243
+ <img src="${w}" alt="" />
1244
+ </picture>
1245
+ </div>`;
1246
+ b.querySelector(".video-content").insertAdjacentHTML(L.prepend, q);
1247
+ const I = b.querySelectorAll("[video-target]");
1248
+ I.length > 0 && new R(I, {
1249
+ LAYOUT: t.params.LAYOUT,
1250
+ videoLayoutNo: t.params.videoLayoutNo
1251
+ });
1194
1252
  }
1195
1253
  },
1196
- close(m) {
1197
- const v = m.querySelectorAll("[data-overlayscrollbars-viewport]");
1198
- Li([...v]);
1254
+ close(b) {
1255
+ const T = b.querySelectorAll("[data-overlayscrollbars-viewport]");
1256
+ _i([...T]);
1199
1257
  },
1200
- destroy(m) {
1258
+ destroy(b) {
1201
1259
  }
1202
1260
  }
1203
1261
  };
1204
- J.open(g);
1262
+ Z.open(y);
1205
1263
  } else if (o == "onPage")
1206
1264
  if (t.params.videoAutoplay = "on", r == "off") {
1207
- s.innerHTML = dt(t.params);
1265
+ if (s.querySelector("video-player"))
1266
+ return;
1267
+ s.innerHTML = ut(t.params);
1208
1268
  return;
1209
1269
  } else {
1210
- (s.querySelector(r) ?? s).insertAdjacentHTML("beforeend", dt(t.params));
1270
+ (s.querySelector(r) ?? s).insertAdjacentHTML("beforeend", ut(t.params));
1211
1271
  return;
1212
1272
  }
1213
- }, Ot = new WeakSet(), ki = function(i) {
1214
- const { SETTINGS: t } = Y;
1273
+ }, Pt = new WeakSet(), Hi = function(i) {
1274
+ const t = this.options;
1215
1275
  return {
1216
1276
  $selector: i,
1217
1277
  videoId: i.getAttribute("video-id"),
@@ -1226,12 +1286,15 @@ K = new WeakSet(), De = function() {
1226
1286
  videoTargetRoute: i.getAttribute("video-target-route") || t.videoTargetRoute,
1227
1287
  videoStartTime: i.getAttribute("video-starttime") || t.videoStartTime,
1228
1288
  videoHighQualityPic: i.getAttribute("video-highquality") || t.videoHighQuality,
1229
- videoIgHtml: i.getAttribute("video-ig") || t.videoIgHtml
1289
+ videoIgHtml: i.getAttribute("video-ig") || t.videoIgHtml,
1290
+ videoInboxImg: i.getAttribute("video-inbox-img") || t.videoInboxImgHtml,
1291
+ LAYOUT: t.LAYOUT || []
1230
1292
  };
1231
- };
1232
- Object.assign(Is.prototype, O);
1233
- customElements.define("video-player", Cs);
1234
- const Os = {
1293
+ }, We(R, "globalOptions", {});
1294
+ let xe = R;
1295
+ Object.assign(xe.prototype, j);
1296
+ customElements.define("video-player", Ps);
1297
+ const Ws = {
1235
1298
  "zh-tw": {
1236
1299
  臺北市: [
1237
1300
  ["中正區", "100"],
@@ -2061,9 +2124,9 @@ const Os = {
2061
2124
  ]
2062
2125
  }
2063
2126
  };
2064
- let U;
2065
- const Ns = (n) => {
2066
- const { TEMPLATE: i } = Ie, { childDom: t } = n.s, e = document.createElement("div"), s = n.classList.contains("filter"), o = n.getAttribute("filter-placeholder"), a = n.getAttribute("d4-icon"), r = n.getAttribute("custom-template");
2127
+ let J;
2128
+ const Gs = (n) => {
2129
+ const { TEMPLATE: i } = je, { childDom: t } = n.s, e = document.createElement("div"), s = n.classList.contains("filter"), o = n.getAttribute("filter-placeholder"), a = n.getAttribute("d4-icon"), r = n.getAttribute("custom-template");
2067
2130
  e.innerHTML = i(
2068
2131
  s,
2069
2132
  o,
@@ -2076,12 +2139,12 @@ const Ns = (n) => {
2076
2139
  (!p.hasAttribute("data-option") || p.getAttribute("data-option").trim() === "") && p.setAttribute("data-option", p.textContent.trim());
2077
2140
  }) : (!c.hasAttribute("data-option") || c.getAttribute("data-option").trim() === "") && c.setAttribute("data-option", c.textContent.trim())), l.append(c);
2078
2141
  }), e.children[0];
2079
- }, Ps = (n) => {
2142
+ }, Rs = (n) => {
2080
2143
  var t;
2081
2144
  const i = (t = n.getAttribute("control-elements")) == null ? void 0 : t.split(",");
2082
2145
  i && i.forEach((e) => {
2083
2146
  const s = document.querySelector(e);
2084
- s || E("dropdown", `Can't not find control element(${e})`), s && s.classList.contains("disabled") && (s.classList.remove("disabled"), s.tagName === "DROPDOWN-EL" && s.s.activeLi && C(s, [...s.s.allLi].indexOf(s.s.activeLi)));
2147
+ s || A("dropdown", `Can't not find control element(${e})`), s && s.classList.contains("disabled") && (s.classList.remove("disabled"), s.tagName === "DROPDOWN-EL" && s.s.activeLi && C(s, [...s.s.allLi].indexOf(s.s.activeLi)));
2085
2148
  });
2086
2149
  }, C = (n, i) => {
2087
2150
  const t = n.getAttribute("d4-placeholder"), e = n.querySelectorAll(".dropdown-list li");
@@ -2124,7 +2187,7 @@ const Ns = (n) => {
2124
2187
  const o = n.querySelectorAll(".dropdown-list li.active");
2125
2188
  o.length <= 0 ? n.s.selectDisplayEl.textContent = t.trim() : (n.s.selectDisplayEl.textContent = "", o.forEach((r) => {
2126
2189
  const l = r.getAttribute("data-option"), c = r.textContent.trim(), u = `<div class="option-btn" data-option="${l}"><div class="text">${c}</div><div class="remove-icon"></div></div>`;
2127
- n.s.selectDisplayEl.insertAdjacentHTML(A.append, u);
2190
+ n.s.selectDisplayEl.insertAdjacentHTML(L.append, u);
2128
2191
  })), n.s.activeLi = o, n.s.value = [...o].map((r) => ({
2129
2192
  index: [...e].indexOf(r),
2130
2193
  id: r.getAttribute("data-option"),
@@ -2135,42 +2198,42 @@ const Ns = (n) => {
2135
2198
  break;
2136
2199
  }
2137
2200
  }
2138
- }, js = (n) => {
2201
+ }, Xs = (n) => {
2139
2202
  const i = n.s.cityLang;
2140
- f("#newCityData").length > 0 ? f("#newCityData").val() !== "" && (U = JSON.parse(f("#newCityData").val())[0], console.log([0])) : U = Os, n.classList.contains("city") && (n.s.dropdownEl.querySelector(".dropdown-list").innerHTML = "", Object.keys(U[i]).forEach((t) => {
2203
+ f("#newCityData").length > 0 ? f("#newCityData").val() !== "" && (J = JSON.parse(f("#newCityData").val())[0], console.log([0])) : J = Ws, n.classList.contains("city") && (n.s.dropdownEl.querySelector(".dropdown-list").innerHTML = "", Object.keys(J[i]).forEach((t) => {
2141
2204
  const e = document.createElement("li");
2142
2205
  e.textContent = t, e.setAttribute("data-option", t), n.s.dropdownEl.querySelector(".dropdown-list").append(e);
2143
2206
  }), n.s.allLi = n.querySelectorAll(".dropdown-list li"));
2144
- }, zs = (n, i) => {
2207
+ }, Ys = (n, i) => {
2145
2208
  const t = n.s.cityLang;
2146
- U[t][i].forEach((e, s) => {
2209
+ J[t][i].forEach((e, s) => {
2147
2210
  const o = document.createElement("li");
2148
2211
  o.textContent = e[0], o.setAttribute("data-option", e[0]), n.querySelector(".dropdown-list").append(o);
2149
2212
  });
2150
- }, _i = () => {
2151
- S('dropdown-el[d4-status="open"]').forEach((i) => {
2213
+ }, Mi = () => {
2214
+ k('dropdown-el[d4-status="open"]').forEach((i) => {
2152
2215
  i.close();
2153
2216
  });
2154
- }, Ws = () => {
2155
- const { SETTINGS: n } = Ie;
2217
+ }, Fs = () => {
2218
+ const { SETTINGS: n } = je;
2156
2219
  ((t, e) => {
2157
2220
  Object.keys(e).forEach((s) => {
2158
2221
  t.style.setProperty(`--${s}`, e[s]);
2159
2222
  });
2160
2223
  })(document.documentElement, n.scrollbar);
2161
2224
  };
2162
- Ws();
2225
+ Fs();
2163
2226
  document.addEventListener("click", function() {
2164
- _i();
2227
+ Mi();
2165
2228
  });
2166
- var Nt, xi, Pt, Ci, jt, Hi, zt, Mi;
2167
- class $i extends HTMLElement {
2229
+ var jt, Ii, zt, Oi, Bt, Ni, Wt, Pi;
2230
+ class qi extends HTMLElement {
2168
2231
  constructor() {
2169
2232
  super();
2170
- h(this, Nt);
2171
- h(this, Pt);
2172
2233
  h(this, jt);
2173
2234
  h(this, zt);
2235
+ h(this, Bt);
2236
+ h(this, Wt);
2174
2237
  this.initialize = !1;
2175
2238
  }
2176
2239
  static get observedAttributes() {
@@ -2191,13 +2254,13 @@ class $i extends HTMLElement {
2191
2254
  switch (o.hasAttribute("multiple") ? "multiple" : "single") {
2192
2255
  case "single":
2193
2256
  const r = o.querySelector(`.dropdown-list li[data-option="${s}"]`);
2194
- w(r) ? C(o, [...o.s.allLi].indexOf(r)) : C(o, -1);
2257
+ E(r) ? C(o, [...o.s.allLi].indexOf(r)) : C(o, -1);
2195
2258
  break;
2196
2259
  case "multiple":
2197
2260
  const l = [];
2198
2261
  o.querySelector(".dropdown-list li").classList.remove("active"), s.split(",").forEach((u) => {
2199
2262
  const p = o.querySelector(`.dropdown-list li[data-option="${u}"]`);
2200
- w(p) && (p.classList.add("active"), l.push(p));
2263
+ E(p) && (p.classList.add("active"), l.push(p));
2201
2264
  });
2202
2265
  const c = l.map((u) => [...o.s.allLi].indexOf(u));
2203
2266
  C(o, c);
@@ -2216,11 +2279,11 @@ class $i extends HTMLElement {
2216
2279
  }
2217
2280
  connectedCallback() {
2218
2281
  const t = this;
2219
- t.initialize || t.classList.contains("d4-initialize") || (t.initialize = !0, d(this, Nt, xi).call(this));
2282
+ t.initialize || t.classList.contains("d4-initialize") || (t.initialize = !0, d(this, jt, Ii).call(this));
2220
2283
  }
2221
2284
  open() {
2222
2285
  const t = this, e = t.querySelector(".dropdown-scroller").clientHeight, s = t.classList.contains("filter"), o = () => s ? t.querySelector(".dropdown-scroller .filter-bar") ? e : t.querySelector(".filter-bar").clientHeight + e : e;
2223
- return _i(), t.setAttribute("d4-status", "open"), t.setAttribute("d4-default-height", o()), t.style.cssText = `--maxHeight: ${o()}px;`, t.s.dropdownEl.style.cssText = `
2286
+ return Mi(), t.setAttribute("d4-status", "open"), t.setAttribute("d4-default-height", o()), t.style.cssText = `--maxHeight: ${o()}px;`, t.s.dropdownEl.style.cssText = `
2224
2287
  height: ${o()}px;
2225
2288
  z-index: 2;
2226
2289
  `, this;
@@ -2242,14 +2305,14 @@ class $i extends HTMLElement {
2242
2305
  this.__events__.selectOption();
2243
2306
  }
2244
2307
  }
2245
- Nt = new WeakSet(), xi = function() {
2246
- this.s = {}, this.__events__ = {}, this.hasAttribute("d4-status") || this.setAttribute("d4-status", "close"), this.hasAttribute("d4-value") || this.setAttribute("d4-value", ""), d(this, Pt, Ci).call(this);
2247
- }, Pt = new WeakSet(), Ci = function() {
2248
- this.s.childDom = this.childNodes, this.s.template = Ns(this), this.innerHTML = "", this.append(this.s.template), d(this, jt, Hi).call(this);
2249
- }, jt = new WeakSet(), Hi = function() {
2308
+ jt = new WeakSet(), Ii = function() {
2309
+ this.s = {}, this.__events__ = {}, this.hasAttribute("d4-status") || this.setAttribute("d4-status", "close"), this.hasAttribute("d4-value") || this.setAttribute("d4-value", ""), d(this, zt, Oi).call(this);
2310
+ }, zt = new WeakSet(), Oi = function() {
2311
+ this.s.childDom = this.childNodes, this.s.template = Gs(this), this.innerHTML = "", this.append(this.s.template), d(this, Bt, Ni).call(this);
2312
+ }, Bt = new WeakSet(), Ni = function() {
2250
2313
  var s;
2251
2314
  const t = this;
2252
- t.s.allLi = t.querySelectorAll(".dropdown-list li"), t.s.selectDisplayEl = t.querySelector(".select-display"), t.s.dropdownEl = t.querySelector(".dropdown"), t.s.selectType = t.hasAttribute("multiple") ? "multiple" : "single", t.s.cityLang = t.hasAttribute("city-lang") ? t.getAttribute("city-lang") : "zh-tw", js(t), t.s.subDropdownTotalH = 0;
2315
+ t.s.allLi = t.querySelectorAll(".dropdown-list li"), t.s.selectDisplayEl = t.querySelector(".select-display"), t.s.dropdownEl = t.querySelector(".dropdown"), t.s.selectType = t.hasAttribute("multiple") ? "multiple" : "single", t.s.cityLang = t.hasAttribute("city-lang") ? t.getAttribute("city-lang") : "zh-tw", Xs(t), t.s.subDropdownTotalH = 0;
2253
2316
  const e = t.getAttribute("d4-value");
2254
2317
  switch (t.s.selectType) {
2255
2318
  case "single":
@@ -2258,14 +2321,14 @@ Nt = new WeakSet(), xi = function() {
2258
2321
  const r = document.querySelector(`dropdown-el[dist-select="${t.id}"]`), l = r ? r.getAttribute("d4-value") !== "" : !1;
2259
2322
  if (r && l) {
2260
2323
  const c = r.getAttribute("d4-value");
2261
- if (zs(t, c), t.s.allLi = t.querySelectorAll(".dropdown-list li"), t.classList.remove("disabled"), t.getAttribute("d4-value") !== "") {
2324
+ if (Ys(t, c), t.s.allLi = t.querySelectorAll(".dropdown-list li"), t.classList.remove("disabled"), t.getAttribute("d4-value") !== "") {
2262
2325
  const u = e.split(",")[1];
2263
2326
  o = t.querySelector(`.dropdown-list li[data-option="${u}"]`), t.setAttribute("d4-value", u);
2264
2327
  }
2265
2328
  }
2266
2329
  } else
2267
2330
  o = t.querySelector(`.dropdown-list li[data-option="${e}"]`);
2268
- w(o) ? (o.classList.add("active"), t.s.activeLi = o, t.s.value = {
2331
+ E(o) ? (o.classList.add("active"), t.s.activeLi = o, t.s.value = {
2269
2332
  index: [...t.s.allLi].indexOf(o),
2270
2333
  id: e,
2271
2334
  el: o
@@ -2279,7 +2342,7 @@ Nt = new WeakSet(), xi = function() {
2279
2342
  const a = [];
2280
2343
  e.split(",").forEach((r) => {
2281
2344
  const l = t.querySelector(`.dropdown-list li[data-option="${r}"]`);
2282
- w(l) && a.push(l);
2345
+ E(l) && a.push(l);
2283
2346
  }), a.length > 0 ? t.s.value = {
2284
2347
  index: a.map((r) => [...t.s.allLi].indexOf(r)),
2285
2348
  id: a.map((r) => r.getAttribute("data-option")),
@@ -2291,8 +2354,8 @@ Nt = new WeakSet(), xi = function() {
2291
2354
  };
2292
2355
  break;
2293
2356
  }
2294
- C(t, t.s.value.index), d(s = t, zt, Mi).call(s), t.classList.add("d4-initialize");
2295
- }, zt = new WeakSet(), Mi = function() {
2357
+ C(t, t.s.value.index), d(s = t, Wt, Pi).call(s), t.classList.add("d4-initialize");
2358
+ }, Wt = new WeakSet(), Pi = function() {
2296
2359
  const t = this;
2297
2360
  t.__events__.dropdownToggle = () => {
2298
2361
  t.addEventListener("click", function(e) {
@@ -2314,7 +2377,7 @@ Nt = new WeakSet(), xi = function() {
2314
2377
  const r = t.querySelector(".dropdown-scroller"), l = () => {
2315
2378
  if (t.__scroller__) {
2316
2379
  const { viewport: c } = t.__scroller__.elements();
2317
- if (w(t.s.activeLi)) {
2380
+ if (E(t.s.activeLi)) {
2318
2381
  const u = t.s.activeLi.clientHeight / 2, p = t.s.activeLi.offsetTop, g = p - r.clientHeight / 2 + u > 0 ? p - r.clientHeight / 2 + u : 0;
2319
2382
  c.scrollTo({
2320
2383
  top: g,
@@ -2338,7 +2401,7 @@ Nt = new WeakSet(), xi = function() {
2338
2401
  t.s.dropdownEl.addEventListener("transitionend", e);
2339
2402
  }, t.__events__.bindScrollbar = (e = this) => {
2340
2403
  const s = e.querySelector(".dropdown-scroller");
2341
- e.__scroller__ = qe(s, {
2404
+ e.__scroller__ = Ne(s, {
2342
2405
  overflowBehavior: {
2343
2406
  x: "hidden"
2344
2407
  }
@@ -2352,25 +2415,25 @@ Nt = new WeakSet(), xi = function() {
2352
2415
  const u = this, p = [...e.s.allLi].indexOf(u), g = parseInt(e.getAttribute("d4-default-height"));
2353
2416
  if (u.classList.contains("has-sublayer")) {
2354
2417
  c.stopPropagation();
2355
- const v = u.querySelector(".sub-dropdown"), b = v.querySelector(".sub-dropdown-list"), y = parseInt(getComputedStyle(b).marginTop) + parseInt(getComputedStyle(b).marginBottom);
2356
- v.style.cssText = `--height: ${b.offsetHeight + y}px`;
2357
- const k = parseInt(v.style.cssText.replace("--height:", "").trim()), G = parseInt(getComputedStyle(a).maxHeight), D = () => {
2358
- s = g + e.s.subDropdownTotalH, o = s > G ? G : s, e.style.cssText = `--maxHeight: ${o}px;`, e.s.dropdownEl.style.height = `${o}px`;
2418
+ const v = u.querySelector(".sub-dropdown"), y = v.querySelector(".sub-dropdown-list"), b = parseInt(getComputedStyle(y).marginTop) + parseInt(getComputedStyle(y).marginBottom);
2419
+ v.style.cssText = `--height: ${y.offsetHeight + b}px`;
2420
+ const T = parseInt(v.style.cssText.replace("--height:", "").trim()), M = parseInt(getComputedStyle(a).maxHeight), w = () => {
2421
+ s = g + e.s.subDropdownTotalH, o = s > M ? M : s, e.style.cssText = `--maxHeight: ${o}px;`, e.s.dropdownEl.style.height = `${o}px`;
2359
2422
  };
2360
- u.classList.contains("open") ? (u.classList.remove("open"), e.s.subDropdownTotalH -= k, D()) : (u.classList.add("open"), e.s.subDropdownTotalH += k, D());
2361
- const R = () => {
2362
- e.__scroller__.update(!0), v.removeEventListener("transitionend", R);
2423
+ u.classList.contains("open") ? (u.classList.remove("open"), e.s.subDropdownTotalH -= T, w()) : (u.classList.add("open"), e.s.subDropdownTotalH += T, w());
2424
+ const q = () => {
2425
+ e.__scroller__.update(!0), v.removeEventListener("transitionend", q);
2363
2426
  };
2364
- v.addEventListener("transitionend", R);
2427
+ v.addEventListener("transitionend", q);
2365
2428
  } else
2366
- switch (Ps(e), e.s.selectType) {
2429
+ switch (Rs(e), e.s.selectType) {
2367
2430
  case "single":
2368
2431
  if (e.setAttribute("d4-value", u.getAttribute("data-option")), r) {
2369
- const v = e.s.cityLang, b = l.textContent.trim(), y = document.getElementById(e.getAttribute("dist-select"));
2370
- y && (y.querySelector(".dropdown-list").textContent = "", C(y, -1), U[v][b].forEach((k, G) => {
2371
- const D = document.createElement("li");
2372
- D.textContent = k[0], D.setAttribute("data-option", k[0]), y.querySelector(".dropdown-list").append(D);
2373
- }), e.__events__.selectOption(y));
2432
+ const v = e.s.cityLang, y = l.textContent.trim(), b = document.getElementById(e.getAttribute("dist-select"));
2433
+ b && (b.querySelector(".dropdown-list").textContent = "", C(b, -1), J[v][y].forEach((T, M) => {
2434
+ const w = document.createElement("li");
2435
+ w.textContent = T[0], w.setAttribute("data-option", T[0]), b.querySelector(".dropdown-list").append(w);
2436
+ }), e.__events__.selectOption(b));
2374
2437
  }
2375
2438
  (m = u.parentNode.closest("li")) != null && m.classList.contains("has-sublayer") && (c.stopPropagation(), e.close());
2376
2439
  break;
@@ -2408,9 +2471,9 @@ Nt = new WeakSet(), xi = function() {
2408
2471
  });
2409
2472
  }, t.__events__.dropdownToggle(), t.__events__.bindScrollbar(), t.__events__.selectOption(), t.__events__.filterHandler(), t.__events__.removeTag(), t.__events__.transitionend();
2410
2473
  };
2411
- Object.assign($i.prototype, O);
2412
- customElements.define("dropdown-el", $i);
2413
- function ht(n) {
2474
+ Object.assign(qi.prototype, j);
2475
+ customElements.define("dropdown-el", qi);
2476
+ function pt(n) {
2414
2477
  const i = {};
2415
2478
  return [...n.attributes].forEach((t) => {
2416
2479
  if (t.name.includes("duration-")) {
@@ -2419,10 +2482,10 @@ function ht(n) {
2419
2482
  }
2420
2483
  }), Object.keys(i).length === 0 ? null : i;
2421
2484
  }
2422
- function Be(n) {
2423
- if (ht(n)) {
2485
+ function Ye(n) {
2486
+ if (pt(n)) {
2424
2487
  let i;
2425
- const t = Object.keys(ht(n)).map((e) => ({
2488
+ const t = Object.keys(pt(n)).map((e) => ({
2426
2489
  value: e,
2427
2490
  point: e
2428
2491
  }));
@@ -2431,11 +2494,11 @@ function Be(n) {
2431
2494
  const { point: s, value: o } = t[e];
2432
2495
  window.matchMedia(`(max-width: ${o}px)`).matches && (i = s);
2433
2496
  }
2434
- return i ? Number(ht(n)[i]) : n.s.options.duration;
2497
+ return i ? Number(pt(n)[i]) : n.s.options.duration;
2435
2498
  } else
2436
2499
  return n.s.options.duration;
2437
2500
  }
2438
- function Bs(n) {
2501
+ function Us(n) {
2439
2502
  const { behavior: i, continual: t, gap: e } = n.s.options, s = n.childNodes, o = document.createElement("div"), a = document.createElement("div");
2440
2503
  o.className = "animate-container", a.className = "animate-item", [...s].forEach((l) => {
2441
2504
  a.append(l);
@@ -2446,7 +2509,7 @@ function Bs(n) {
2446
2509
  }
2447
2510
  n.s.animation = null, n.s.animateEl = a, n.textContent = "", o.append(a), n.append(o), a.clientWidth * 2 + e >= n.clientWidth ? i === "normal" && t && o.append(r()) : n.s.options.continual = !1;
2448
2511
  }
2449
- function $(n) {
2512
+ function _(n) {
2450
2513
  const { behavior: i, direction: t, continual: e } = n.s.options;
2451
2514
  let s = {};
2452
2515
  switch (i) {
@@ -2502,20 +2565,20 @@ function $(n) {
2502
2565
  }
2503
2566
  return s;
2504
2567
  }
2505
- function Gs(n) {
2568
+ function Js(n) {
2506
2569
  let i;
2507
2570
  return function(t) {
2508
2571
  i && clearTimeout(i), i = setTimeout(n, 200, t);
2509
2572
  };
2510
2573
  }
2511
- var Wt, qi, Bt, Ii, Gt, Oi, Rt, Ni;
2512
- class Rs extends HTMLElement {
2574
+ var Gt, ji, Rt, zi, Xt, Bi, Yt, Wi;
2575
+ class Zs extends HTMLElement {
2513
2576
  constructor() {
2514
2577
  super();
2515
- h(this, Wt);
2516
- h(this, Bt);
2517
2578
  h(this, Gt);
2518
2579
  h(this, Rt);
2580
+ h(this, Xt);
2581
+ h(this, Yt);
2519
2582
  this.initialize = !1;
2520
2583
  }
2521
2584
  static get observedAttributes() {
@@ -2524,7 +2587,7 @@ class Rs extends HTMLElement {
2524
2587
  attributeChangedCallback(t, e, s) {
2525
2588
  }
2526
2589
  connectedCallback() {
2527
- this.initialize || (this.initialize = !0, d(this, Wt, qi).call(this));
2590
+ this.initialize || (this.initialize = !0, d(this, Gt, ji).call(this));
2528
2591
  }
2529
2592
  play() {
2530
2593
  this.s.animation.play(), this.s.animateEl.classList.add("start"), this.s.options.continual && (this.s.cloneAnimation.play(), this.s.cloneAnimateEl.classList.add("start"));
@@ -2533,25 +2596,25 @@ class Rs extends HTMLElement {
2533
2596
  this.s.animation.pause(), this.s.options.continual && this.s.cloneAnimation.pause();
2534
2597
  }
2535
2598
  }
2536
- Wt = new WeakSet(), qi = function() {
2599
+ Gt = new WeakSet(), ji = function() {
2537
2600
  const t = {
2538
- direction: this.getAttribute("direction") || x.SETTINGS.direction,
2601
+ direction: this.getAttribute("direction") || $.SETTINGS.direction,
2539
2602
  // up / down / left / right
2540
- behavior: this.getAttribute("behavior") || x.SETTINGS.behavior,
2603
+ behavior: this.getAttribute("behavior") || $.SETTINGS.behavior,
2541
2604
  // normal / alternate / endStop
2542
- duration: Number(this.getAttribute("duration")) || x.SETTINGS.duration,
2605
+ duration: Number(this.getAttribute("duration")) || $.SETTINGS.duration,
2543
2606
  // ms
2544
- durationBreakpoints: ht(this) || x.SETTINGS.durationBreakpoints,
2545
- autoplay: this.getAttribute("autoplay") || x.SETTINGS.autoplay,
2607
+ durationBreakpoints: pt(this) || $.SETTINGS.durationBreakpoints,
2608
+ autoplay: this.getAttribute("autoplay") || $.SETTINGS.autoplay,
2546
2609
  // normal / alternate / endStop
2547
- pauseOnMouseenter: this.getAttribute("pauseOnMouseEnter") ? this.getAttribute("pauseOnMouseEnter") === "true" : x.SETTINGS.pauseOnMouseenter,
2610
+ pauseOnMouseenter: this.getAttribute("pauseOnMouseEnter") ? this.getAttribute("pauseOnMouseEnter") === "true" : $.SETTINGS.pauseOnMouseenter,
2548
2611
  // true / false
2549
- continual: this.getAttribute("continual") ? this.getAttribute("continual") === "true" : x.SETTINGS.continual,
2612
+ continual: this.getAttribute("continual") ? this.getAttribute("continual") === "true" : $.SETTINGS.continual,
2550
2613
  // true / false
2551
- gap: Number(this.getAttribute("gap")) || x.SETTINGS.gap
2614
+ gap: Number(this.getAttribute("gap")) || $.SETTINGS.gap
2552
2615
  };
2553
- this.s = {}, this.s.options = t, this.s.nowDuration = Be(this), Bs(this), d(this, Bt, Ii).call(this);
2554
- }, Bt = new WeakSet(), Ii = function() {
2616
+ this.s = {}, this.s.options = t, this.s.nowDuration = Ye(this), Us(this), d(this, Rt, zi).call(this);
2617
+ }, Rt = new WeakSet(), zi = function() {
2555
2618
  const { direction: t, continual: e, gap: s } = this.s.options;
2556
2619
  switch (t) {
2557
2620
  case "left":
@@ -2563,17 +2626,17 @@ Wt = new WeakSet(), qi = function() {
2563
2626
  e ? this.style.cssText = `height: ${this.s.animateEl.clientHeight}px;--continual-gap: ${s}px;` : this.style.cssText = `min-height: ${this.s.animateEl.clientHeight}px;--continual-gap: ${s}px;`;
2564
2627
  break;
2565
2628
  }
2566
- d(this, Gt, Oi).call(this), d(this, Rt, Ni).call(this), e && this.classList.add("continual"), this.classList.add("m4-initialize");
2567
- }, Gt = new WeakSet(), Oi = function() {
2629
+ d(this, Xt, Bi).call(this), d(this, Yt, Wi).call(this), e && this.classList.add("continual"), this.classList.add("m4-initialize");
2630
+ }, Xt = new WeakSet(), Bi = function() {
2568
2631
  const t = this, { direction: e, behavior: s, duration: o, autoplay: a, pauseOnMouseenter: r, continual: l } = t.s.options;
2569
2632
  let c;
2570
2633
  function u() {
2571
2634
  switch (s) {
2572
2635
  case "normal":
2573
- t.s.animateEl.style.transform = `${$(t).animate1[0].transform}`, t.s.animation = t.s.animateEl.animate($(t).animate1, {
2636
+ t.s.animateEl.style.transform = `${_(t).animate1[0].transform}`, t.s.animation = t.s.animateEl.animate(_(t).animate1, {
2574
2637
  duration: t.s.nowDuration,
2575
2638
  iterations: 1 / 0
2576
- }), l && (t.s.cloneAnimateEl.style.transform = `${$(t).animate2[0].transform}`, t.s.cloneAnimation = t.s.cloneAnimateEl.animate($(t).animate2, {
2639
+ }), l && (t.s.cloneAnimateEl.style.transform = `${_(t).animate2[0].transform}`, t.s.cloneAnimation = t.s.cloneAnimateEl.animate(_(t).animate2, {
2577
2640
  duration: t.s.nowDuration,
2578
2641
  delay: -t.s.nowDuration / 2,
2579
2642
  iterations: 1 / 0
@@ -2602,7 +2665,7 @@ Wt = new WeakSet(), qi = function() {
2602
2665
  duration: g,
2603
2666
  fill: "forwards"
2604
2667
  }).finished.then(() => {
2605
- t.s.animation = t.s.animateEl.animate($(t).animate1, {
2668
+ t.s.animation = t.s.animateEl.animate(_(t).animate1, {
2606
2669
  duration: t.s.nowDuration,
2607
2670
  iterations: 1 / 0
2608
2671
  });
@@ -2611,7 +2674,7 @@ Wt = new WeakSet(), qi = function() {
2611
2674
  });
2612
2675
  break;
2613
2676
  case "endStop":
2614
- t.s.animateEl.style.transform = `${$(t).animate1[0].transform}`, t.s.animation = t.s.animateEl.animate($(t).animate1, {
2677
+ t.s.animateEl.style.transform = `${_(t).animate1[0].transform}`, t.s.animation = t.s.animateEl.animate(_(t).animate1, {
2615
2678
  duration: t.s.nowDuration,
2616
2679
  fill: "forwards"
2617
2680
  });
@@ -2629,37 +2692,37 @@ Wt = new WeakSet(), qi = function() {
2629
2692
  }), t.addEventListener("mouseleave", function() {
2630
2693
  t.s.animation && r && t.s.animation.playState === "paused" && t.play();
2631
2694
  });
2632
- }, Rt = new WeakSet(), Ni = function() {
2695
+ }, Yt = new WeakSet(), Wi = function() {
2633
2696
  const t = this;
2634
2697
  function e() {
2635
2698
  const s = t.s.animation.startTime, o = t.s.cloneAnimation ? t.s.cloneAnimation.startTime : null;
2636
- t.s.nowDuration = Be(t), t.s.animation.cancel(), t.s.cloneAnimation && t.s.cloneAnimation.cancel(), t.s.animation = t.s.animateEl.animate($(t).animate1, {
2699
+ t.s.nowDuration = Ye(t), t.s.animation.cancel(), t.s.cloneAnimation && t.s.cloneAnimation.cancel(), t.s.animation = t.s.animateEl.animate(_(t).animate1, {
2637
2700
  duration: t.s.nowDuration,
2638
2701
  iterations: 1 / 0
2639
- }), t.s.animation.startTime = s, t.s.cloneAnimation && (t.s.cloneAnimation = t.s.cloneAnimateEl.animate($(t).animate2, {
2702
+ }), t.s.animation.startTime = s, t.s.cloneAnimation && (t.s.cloneAnimation = t.s.cloneAnimateEl.animate(_(t).animate2, {
2640
2703
  duration: t.s.nowDuration,
2641
2704
  delay: -t.s.nowDuration / 2,
2642
2705
  iterations: 1 / 0
2643
2706
  }), t.s.cloneAnimation.startTime = o);
2644
2707
  }
2645
- window.addEventListener("resize", Gs(e));
2708
+ window.addEventListener("resize", Js(e));
2646
2709
  };
2647
- customElements.define("marquee-el", Rs);
2648
- const Ge = function(n, i) {
2710
+ customElements.define("marquee-el", Zs);
2711
+ const Fe = function(n, i) {
2649
2712
  let t;
2650
2713
  return function(e) {
2651
2714
  t && clearTimeout(t), t = setTimeout(n, 200, e);
2652
2715
  };
2653
- }, _ = (n, i) => {
2654
- if (lt(n)) {
2716
+ }, x = (n, i) => {
2717
+ if (ct(n)) {
2655
2718
  n.forEach((t) => {
2656
2719
  t.classList.add(i);
2657
2720
  });
2658
2721
  return;
2659
2722
  }
2660
2723
  n.classList.add(i);
2661
- }, T = (n, i) => {
2662
- if (lt(n)) {
2724
+ }, S = (n, i) => {
2725
+ if (ct(n)) {
2663
2726
  n.forEach((t) => {
2664
2727
  t.classList.remove(i);
2665
2728
  });
@@ -2667,22 +2730,22 @@ const Ge = function(n, i) {
2667
2730
  }
2668
2731
  n.classList.remove(i);
2669
2732
  };
2670
- var Xt, Pi, Ft, ji, Yt, zi, et, _e, W, pt, Ut, Wi;
2671
- class Re {
2733
+ var Ft, Gi, Ut, Ri, Jt, Xi, it, Ce, X, mt, Zt, Yi;
2734
+ class Ue {
2672
2735
  constructor(i) {
2673
2736
  // 初始化
2674
- h(this, Xt);
2675
- // 左右箭頭事件綁定
2676
2737
  h(this, Ft);
2738
+ // 左右箭頭事件綁定
2739
+ h(this, Ut);
2677
2740
  // 左右拖拉事件綁定
2678
- h(this, Yt);
2741
+ h(this, Jt);
2679
2742
  // 卷軸位置判斷
2680
- h(this, et);
2743
+ h(this, it);
2681
2744
  // 隱藏按鈕判斷
2682
- h(this, W);
2745
+ h(this, X);
2683
2746
  // 選項事件綁定
2684
- h(this, Ut);
2685
- this.$element = i, this.option = i.s.option.drag, d(this, Xt, Pi).call(this);
2747
+ h(this, Zt);
2748
+ this.$element = i, this.option = i.s.option.drag, d(this, Ft, Gi).call(this);
2686
2749
  }
2687
2750
  // 更新 active 位置
2688
2751
  update(i) {
@@ -2696,7 +2759,7 @@ class Re {
2696
2759
  }
2697
2760
  }
2698
2761
  }
2699
- Xt = new WeakSet(), Pi = function() {
2762
+ Ft = new WeakSet(), Gi = function() {
2700
2763
  var s, o, a, r;
2701
2764
  const i = this;
2702
2765
  if (!i.$element)
@@ -2705,11 +2768,11 @@ Xt = new WeakSet(), Pi = function() {
2705
2768
  let t = !1;
2706
2769
  const e = () => {
2707
2770
  t || (requestAnimationFrame(() => {
2708
- d(this, et, _e).call(this), d(this, W, pt).call(this), t = !1;
2771
+ d(this, it, Ce).call(this), d(this, X, mt).call(this), t = !1;
2709
2772
  }), t = !0);
2710
2773
  };
2711
- i.$wrapper.removeEventListener("scroll", e), i.$wrapper.addEventListener("scroll", e), window.removeEventListener("resize", e), window.addEventListener("resize", e), (i.option.draggable || i.$element.s.type == "collapse") && d(s = i, Yt, zi).call(s), i.option.navigation && i.$element.s.type !== "collapse" && (i.$container.insertAdjacentHTML(
2712
- A.prepend,
2774
+ i.$wrapper.removeEventListener("scroll", e), i.$wrapper.addEventListener("scroll", e), window.removeEventListener("resize", e), window.addEventListener("resize", e), (i.option.draggable || i.$element.s.type == "collapse") && d(s = i, Jt, Xi).call(s), i.option.navigation && i.$element.s.type !== "collapse" && (i.$container.insertAdjacentHTML(
2775
+ L.prepend,
2713
2776
  `<div class="navigation">
2714
2777
  <div class="button prev">
2715
2778
  <div></div>
@@ -2718,10 +2781,10 @@ Xt = new WeakSet(), Pi = function() {
2718
2781
  <div></div>
2719
2782
  </div>
2720
2783
  </div>`
2721
- ), i.$button = (o = i.$container) == null ? void 0 : o.querySelectorAll(".button"), d(a = i, Ft, ji).call(a)), d(r = i, Ut, Wi).call(r), i.update(), requestAnimationFrame(() => {
2722
- d(this, et, _e).call(this), d(this, W, pt).call(this);
2784
+ ), i.$button = (o = i.$container) == null ? void 0 : o.querySelectorAll(".button"), d(a = i, Ut, Ri).call(a)), d(r = i, Zt, Yi).call(r), i.update(), requestAnimationFrame(() => {
2785
+ d(this, it, Ce).call(this), d(this, X, mt).call(this);
2723
2786
  });
2724
- }, Ft = new WeakSet(), ji = function() {
2787
+ }, Ut = new WeakSet(), Ri = function() {
2725
2788
  const i = this, { $wrapper: t, $button: e } = i, s = function() {
2726
2789
  const o = this.classList.contains("next"), a = parseInt(t.getBoundingClientRect().width * 0.7);
2727
2790
  t.scrollTo({
@@ -2729,13 +2792,13 @@ Xt = new WeakSet(), Pi = function() {
2729
2792
  behavior: "smooth"
2730
2793
  }), setTimeout(() => {
2731
2794
  var r;
2732
- d(r = i, W, pt).call(r);
2795
+ d(r = i, X, mt).call(r);
2733
2796
  }, 100);
2734
2797
  };
2735
2798
  e.forEach((o) => {
2736
2799
  o.removeEventListener("click", s), o.addEventListener("click", s);
2737
2800
  });
2738
- }, Yt = new WeakSet(), zi = function() {
2801
+ }, Jt = new WeakSet(), Xi = function() {
2739
2802
  const { $wrapper: i } = this;
2740
2803
  let t = !1, e = !1, s = 0, o = 0;
2741
2804
  const a = function(p) {
@@ -2765,32 +2828,32 @@ Xt = new WeakSet(), Pi = function() {
2765
2828
  i.querySelectorAll("a").forEach((p) => {
2766
2829
  p.removeEventListener("click", u), p.addEventListener("click", u);
2767
2830
  });
2768
- }, et = new WeakSet(), _e = function() {
2831
+ }, it = new WeakSet(), Ce = function() {
2769
2832
  const { $container: i, $wrapper: t } = this, e = t.scrollWidth - t.clientWidth, s = Math.round(t.scrollLeft);
2770
- e <= 0 || (_(i, "scrollable"), s == 0 ? (T(i, "scrollable"), _(t, "start"), T(t, "end")) : s + 1 >= e ? (T(i, "scrollable"), T(t, "start"), _(t, "end")) : (_(t, "center"), T(t, "start"), T(t, "end")));
2771
- }, W = new WeakSet(), pt = function() {
2833
+ e <= 0 || (x(i, "scrollable"), s == 0 ? (S(i, "scrollable"), x(t, "start"), S(t, "end")) : s + 1 >= e ? (S(i, "scrollable"), S(t, "start"), x(t, "end")) : (x(t, "center"), S(t, "start"), S(t, "end")));
2834
+ }, X = new WeakSet(), mt = function() {
2772
2835
  const { $wrapper: i, $button: t, $element: e } = this;
2773
2836
  if (!t)
2774
2837
  return;
2775
2838
  const s = i.scrollWidth - i.clientWidth, o = i.scrollLeft;
2776
2839
  if (s <= 0) {
2777
- _(t, "hide"), T(t, "active"), _(e, "noScrollable");
2840
+ x(t, "hide"), S(t, "active"), x(e, "noScrollable");
2778
2841
  return;
2779
2842
  }
2780
- s > 0 && (_(t, "active"), T(e, "noScrollable")), o == 0 ? t.forEach((a) => {
2843
+ s > 0 && (x(t, "active"), S(e, "noScrollable")), o == 0 ? t.forEach((a) => {
2781
2844
  if (a.classList.contains("next")) {
2782
- T(a, "hide");
2845
+ S(a, "hide");
2783
2846
  return;
2784
2847
  }
2785
- _(a, "hide");
2848
+ x(a, "hide");
2786
2849
  }) : o + 1 >= s ? t.forEach((a) => {
2787
2850
  if (a.classList.contains("next")) {
2788
- _(a, "hide");
2851
+ x(a, "hide");
2789
2852
  return;
2790
2853
  }
2791
- T(a, "hide");
2792
- }) : T(t, "hide");
2793
- }, Ut = new WeakSet(), Wi = function() {
2854
+ S(a, "hide");
2855
+ }) : S(t, "hide");
2856
+ }, Zt = new WeakSet(), Yi = function() {
2794
2857
  const { $element: i } = this, t = (s) => {
2795
2858
  if (this.option.selected) {
2796
2859
  const o = s.getAttribute("data-option").trim();
@@ -2804,31 +2867,31 @@ Xt = new WeakSet(), Pi = function() {
2804
2867
  s.removeEventListener("click", e), s.addEventListener("click", e);
2805
2868
  });
2806
2869
  };
2807
- var Jt, Bi, Zt, Gi, Qt, Ri, Vt, Xi;
2808
- class Xs {
2870
+ var Qt, Fi, Vt, Ui, Kt, Ji, te, Zi;
2871
+ class Qs {
2809
2872
  constructor(i) {
2810
2873
  // 初始化
2811
- h(this, Jt);
2874
+ h(this, Qt);
2812
2875
  // 隱藏按鈕判斷
2813
- h(this, Zt);
2876
+ h(this, Vt);
2814
2877
  // 展開箭頭事件綁定
2815
- h(this, Qt);
2878
+ h(this, Kt);
2816
2879
  // 選項事件綁定
2817
- h(this, Vt);
2818
- this.$element = i, this.option = i.s.option.collapse, d(this, Jt, Bi).call(this);
2880
+ h(this, te);
2881
+ this.$element = i, this.option = i.s.option.collapse, d(this, Qt, Fi).call(this);
2819
2882
  }
2820
2883
  }
2821
- Jt = new WeakSet(), Bi = function() {
2822
- this.$element && (this.$container = this.$element.querySelector(".collapse-container"), this.$wrapper = this.$container.querySelector(".wrapper"), d(this, Zt, Gi).call(this) && d(this, Qt, Ri).call(this), d(this, Vt, Xi).call(this));
2823
- }, Zt = new WeakSet(), Gi = function() {
2884
+ Qt = new WeakSet(), Fi = function() {
2885
+ this.$element && (this.$container = this.$element.querySelector(".collapse-container"), this.$wrapper = this.$container.querySelector(".wrapper"), d(this, Vt, Ui).call(this) && d(this, Kt, Ji).call(this), d(this, te, Zi).call(this));
2886
+ }, Vt = new WeakSet(), Ui = function() {
2824
2887
  const i = this.$element.querySelector(".drag-container"), t = i.querySelector(".wrapper");
2825
- return t.scrollWidth - t.clientWidth > 0 ? (i.insertAdjacentHTML(A.append, '<div class="open-collapse"></div>'), this.$button = i.querySelector(".open-collapse"), T(this.$element, "noScrollable"), !0) : (_(this.$element, "noScrollable"), !1);
2826
- }, Qt = new WeakSet(), Ri = function() {
2888
+ return t.scrollWidth - t.clientWidth > 0 ? (i.insertAdjacentHTML(L.append, '<div class="open-collapse"></div>'), this.$button = i.querySelector(".open-collapse"), S(this.$element, "noScrollable"), !0) : (x(this.$element, "noScrollable"), !1);
2889
+ }, Kt = new WeakSet(), Ji = function() {
2827
2890
  const { $element: i, $button: t } = this, e = function() {
2828
2891
  i.classList.contains("expand") ? i.classList.remove("expand") : i.classList.add("expand");
2829
2892
  };
2830
2893
  t.removeEventListener("click", e), t.addEventListener("click", e);
2831
- }, Vt = new WeakSet(), Xi = function() {
2894
+ }, te = new WeakSet(), Zi = function() {
2832
2895
  const { $element: i } = this, t = (s, o) => {
2833
2896
  if (i != null && i.classList.contains("expand") ? i == null || i.classList.remove("expand") : i == null || i.classList.add("expand"), this.option.selected) {
2834
2897
  const a = s.getAttribute("data-option").trim();
@@ -2842,20 +2905,20 @@ Jt = new WeakSet(), Bi = function() {
2842
2905
  s.removeEventListener("click", e), s.addEventListener("click", e);
2843
2906
  });
2844
2907
  };
2845
- const Fs = (n) => {
2908
+ const Vs = (n) => {
2846
2909
  const { type: i, option: t, originalDomString: e } = n.s, s = document.createElement("div");
2847
- return i == "drag" && (s.innerHTML = H.TEMPLATE[i]().trim(), s.querySelector(".drag-container .wrapper").insertAdjacentHTML(A.append, e)), i == "collapse" && (s.innerHTML = H.TEMPLATE[i](t == null ? void 0 : t.collapse).trim(), s.querySelector(".drag-container .wrapper").insertAdjacentHTML(A.append, e), s.querySelector(".collapse-container .wrapper").insertAdjacentHTML(A.append, e)), i == "dropdown" && (s.innerHTML = H.TEMPLATE[i](t == null ? void 0 : t.dropdown).trim(), s.querySelector("dropdown-el").insertAdjacentHTML(A.append, e)), s.children;
2910
+ return i == "drag" && (s.innerHTML = H.TEMPLATE[i]().trim(), s.querySelector(".drag-container .wrapper").insertAdjacentHTML(L.append, e)), i == "collapse" && (s.innerHTML = H.TEMPLATE[i](t == null ? void 0 : t.collapse).trim(), s.querySelector(".drag-container .wrapper").insertAdjacentHTML(L.append, e), s.querySelector(".collapse-container .wrapper").insertAdjacentHTML(L.append, e)), i == "dropdown" && (s.innerHTML = H.TEMPLATE[i](t == null ? void 0 : t.dropdown).trim(), s.querySelector("dropdown-el").insertAdjacentHTML(L.append, e)), s.children;
2848
2911
  };
2849
- var Kt, Fi, te, Yi, it, $e, B, mt;
2850
- class Ys extends HTMLElement {
2912
+ var ee, Qi, ie, Vi, st, He, Y, gt;
2913
+ class Ks extends HTMLElement {
2851
2914
  constructor() {
2852
2915
  super();
2853
- h(this, Kt);
2854
- h(this, te);
2916
+ h(this, ee);
2917
+ h(this, ie);
2855
2918
  // 斷點設定
2856
- h(this, it);
2919
+ h(this, st);
2857
2920
  // check type
2858
- h(this, B);
2921
+ h(this, Y);
2859
2922
  this.initialize = !1, this.__events__ = {}, this.s = {}, this.s.originalDomString = this.innerHTML.trim().replace(/\n/g, ""), this.previousWidth = window.innerWidth;
2860
2923
  }
2861
2924
  static get observedAttributes() {
@@ -2867,7 +2930,7 @@ class Ys extends HTMLElement {
2867
2930
  case "m4-type":
2868
2931
  if (e === null || e === s)
2869
2932
  return;
2870
- this.s.type = s, d(this, B, mt).call(this);
2933
+ this.s.type = s, d(this, Y, gt).call(this);
2871
2934
  break;
2872
2935
  case "m4-status":
2873
2936
  if (e === s)
@@ -2884,13 +2947,13 @@ class Ys extends HTMLElement {
2884
2947
  }
2885
2948
  }
2886
2949
  connectedCallback() {
2887
- this.initialize || this.classList.contains("m4-init") || (this.initialize = !0, d(this, Kt, Fi).call(this));
2950
+ this.initialize || this.classList.contains("m4-init") || (this.initialize = !0, d(this, ee, Qi).call(this));
2888
2951
  }
2889
2952
  update() {
2890
- d(this, it, $e).call(this);
2953
+ d(this, st, He).call(this);
2891
2954
  }
2892
2955
  }
2893
- Kt = new WeakSet(), Fi = function() {
2956
+ ee = new WeakSet(), Qi = function() {
2894
2957
  let t = {};
2895
2958
  this.hasAttribute("m4-value") || this.setAttribute("m4-value", ""), this.s.type = this.getAttribute("m4-type") ?? H.SETTINGS.type, this.hasAttribute("m4-option") && (t = this.getAttribute("m4-option") ? JSON.parse(this.getAttribute("m4-option")) : {}, this.removeAttribute("m4-option"));
2896
2959
  const e = (s) => {
@@ -2901,119 +2964,119 @@ Kt = new WeakSet(), Fi = function() {
2901
2964
  }
2902
2965
  this.update();
2903
2966
  };
2904
- window.removeEventListener("resize", Ge(e)), window.addEventListener("resize", Ge(e)), this.s.option = {}, this.s.option.drag = Object.assign({}, H.SETTINGS.drag, t == null ? void 0 : t.drag), this.s.option.collapse = Object.assign({}, H.SETTINGS.collapse, t == null ? void 0 : t.collapse), this.s.option.dropdown = Object.assign({}, H.SETTINGS.dropdown, t == null ? void 0 : t.dropdown), this.s.option.breakpoint = Object.assign({}, H.SETTINGS.breakpoint, t == null ? void 0 : t.breakpoint), d(this, te, Yi).call(this);
2905
- }, te = new WeakSet(), Yi = function() {
2906
- this.classList.add("m4-init"), d(this, it, $e).call(this);
2907
- }, it = new WeakSet(), $e = function() {
2967
+ window.removeEventListener("resize", Fe(e)), window.addEventListener("resize", Fe(e)), this.s.option = {}, this.s.option.drag = Object.assign({}, H.SETTINGS.drag, t == null ? void 0 : t.drag), this.s.option.collapse = Object.assign({}, H.SETTINGS.collapse, t == null ? void 0 : t.collapse), this.s.option.dropdown = Object.assign({}, H.SETTINGS.dropdown, t == null ? void 0 : t.dropdown), this.s.option.breakpoint = Object.assign({}, H.SETTINGS.breakpoint, t == null ? void 0 : t.breakpoint), d(this, ie, Vi).call(this);
2968
+ }, ie = new WeakSet(), Vi = function() {
2969
+ this.classList.add("m4-init"), d(this, st, He).call(this);
2970
+ }, st = new WeakSet(), He = function() {
2908
2971
  const t = Object.keys(this.s.option.breakpoint);
2909
2972
  if (!t.length) {
2910
- d(this, B, mt).call(this);
2973
+ d(this, Y, gt).call(this);
2911
2974
  return;
2912
2975
  }
2913
2976
  t.map((e) => Number(e)).sort((e, s) => s - e).some((e) => {
2914
2977
  var s, o, a, r;
2915
- return window.innerWidth >= e && (this.s.type = (s = this.s.option.breakpoint[e]) == null ? void 0 : s.type, this.setAttribute("m4-type", this.s.type), this.s.option.drag = Object.assign({}, this.s.option.drag, (o = this.s.option.breakpoint[e]) == null ? void 0 : o.drag), this.s.option.collapse = Object.assign({}, this.s.option.collapse, (a = this.s.option.breakpoint[e]) == null ? void 0 : a.collapse), this.s.option.dropdown = Object.assign({}, this.s.option.dropdown, (r = this.s.option.breakpoint[e]) == null ? void 0 : r.dropdown)), d(this, B, mt).call(this), window.innerWidth >= e;
2978
+ return window.innerWidth >= e && (this.s.type = (s = this.s.option.breakpoint[e]) == null ? void 0 : s.type, this.setAttribute("m4-type", this.s.type), this.s.option.drag = Object.assign({}, this.s.option.drag, (o = this.s.option.breakpoint[e]) == null ? void 0 : o.drag), this.s.option.collapse = Object.assign({}, this.s.option.collapse, (a = this.s.option.breakpoint[e]) == null ? void 0 : a.collapse), this.s.option.dropdown = Object.assign({}, this.s.option.dropdown, (r = this.s.option.breakpoint[e]) == null ? void 0 : r.dropdown)), d(this, Y, gt).call(this), window.innerWidth >= e;
2916
2979
  });
2917
- }, B = new WeakSet(), mt = function() {
2980
+ }, Y = new WeakSet(), gt = function() {
2918
2981
  var o;
2919
2982
  const { type: t } = this.s;
2920
- this.innerHTML = "", [...Fs(this)].forEach((a) => {
2983
+ this.innerHTML = "", [...Vs(this)].forEach((a) => {
2921
2984
  this.append(a);
2922
2985
  });
2923
2986
  const e = this.querySelector(`.drag-container .item[data-option="${this.getAttribute("m4-status")}"]`), s = this.querySelector(`.collapse-container .item[data-option="${this.getAttribute("m4-status")}"]`);
2924
2987
  switch (e == null || e.classList.add("active"), s == null || s.classList.add("active"), t) {
2925
2988
  case "drag":
2926
- this.drag = new Re(this);
2989
+ this.drag = new Ue(this);
2927
2990
  break;
2928
2991
  case "collapse":
2929
- this.drag = new Re(this), this.collapse = new Xs(this);
2992
+ this.drag = new Ue(this), this.collapse = new Qs(this);
2930
2993
  break;
2931
2994
  }
2932
2995
  (o = this.drag) == null || o.update();
2933
2996
  };
2934
- customElements.define("multipurpose-nav", Ys);
2935
- var ee, Ji, ie, Zi, st, xe, P, F, se, Qi, ne, Vi, oe, Ki, ae, ts, re, es, le, is, ce, ss, de, ns, ue, os, q, z, he, as, pe, rs, me, ls, ge, cs;
2936
- class Ui extends HTMLElement {
2997
+ customElements.define("multipurpose-nav", Ks);
2998
+ var se, ts, ne, es, nt, Me, B, U, oe, is, ae, ss, re, ns, le, os, ce, as, de, rs, ue, ls, he, cs, pe, ds, N, G, me, us, ge, hs, fe, ps, ve, ms;
2999
+ class Ki extends HTMLElement {
2937
3000
  // 定義組件的初始狀態
2938
3001
  constructor(t, e) {
2939
3002
  super();
2940
- h(this, ee);
2941
- h(this, ie);
2942
- // 第一關 判斷數量以及id設定
2943
- h(this, st);
2944
- // 第二關 id命名提醒
2945
- h(this, P);
2946
3003
  h(this, se);
2947
3004
  h(this, ne);
3005
+ // 第一關 判斷數量以及id設定
3006
+ h(this, nt);
3007
+ // 第二關 id命名提醒
3008
+ h(this, B);
2948
3009
  h(this, oe);
3010
+ h(this, ae);
3011
+ h(this, re);
2949
3012
  // 執行函式
2950
3013
  // 移動至指定位置
2951
- h(this, ae);
3014
+ h(this, le);
2952
3015
  // 移動
2953
- h(this, re);
3016
+ h(this, ce);
2954
3017
  // 步驟狀態
2955
- h(this, le);
3018
+ h(this, de);
2956
3019
  // next 按鈕狀態
2957
- h(this, ce);
3020
+ h(this, ue);
2958
3021
  // prev 按鈕狀態
2959
- h(this, de);
3022
+ h(this, he);
2960
3023
  // 頁籤狀態
2961
- h(this, ue);
3024
+ h(this, pe);
2962
3025
  // 第三關各種元件判斷 及 執行
2963
- h(this, q);
3026
+ h(this, N);
2964
3027
  // 消失動畫
2965
- h(this, he);
3028
+ h(this, me);
2966
3029
  // 出現動畫
2967
- h(this, pe);
3030
+ h(this, ge);
2968
3031
  // 狀態
2969
- h(this, me);
3032
+ h(this, fe);
2970
3033
  // resize
2971
- h(this, ge);
3034
+ h(this, ve);
2972
3035
  }
2973
3036
  // 當組件的屬性被更改時會被呼叫
2974
3037
  static get observedAttributes() {
2975
3038
  return ["t4-active"];
2976
3039
  }
2977
3040
  attributeChangedCallback(t, e, s) {
2978
- t === "t4-active" && e !== s && d(this, me, ls).call(this, s);
3041
+ t === "t4-active" && e !== s && d(this, fe, ps).call(this, s);
2979
3042
  }
2980
3043
  connectedCallback() {
2981
- this.classList.contains("t4-initialize") || d(this, ee, Ji).call(this);
3044
+ this.classList.contains("t4-initialize") || d(this, se, ts).call(this);
2982
3045
  }
2983
3046
  // ------------- 我是分隔線呦 -------------
2984
3047
  // 頁籤切換
2985
3048
  tabClick(t) {
2986
3049
  const { t: e } = this, s = e.tabs.indexOf(t) % e.tabPanels.length, o = e.tabGroup === "true" ? String(s) : t.getAttribute("t4-id");
2987
3050
  this.setActiveTab(o), setTimeout(() => {
2988
- d(this, q, z).call(this, "eventAnchor");
3051
+ d(this, N, G).call(this, "eventAnchor");
2989
3052
  }, e.transition.duration);
2990
3053
  }
2991
3054
  // 外部呼叫方法 $0.setActiveTab(0)
2992
3055
  setActiveTab(t) {
2993
3056
  const { t: e } = this, s = t === "" ? e.tabPanels[0].getAttribute("t4-id") : t;
2994
3057
  e.activeTab = s, this.setAttribute("t4-active", s);
2995
- const o = d(this, P, F).call(this, s);
3058
+ const o = d(this, B, U).call(this, s);
2996
3059
  e.tabPanels.forEach((a, r) => {
2997
- r === o ? d(this, pe, rs).call(this, r) : d(this, he, as).call(this, r);
3060
+ r === o ? d(this, ge, hs).call(this, r) : d(this, me, us).call(this, r);
2998
3061
  });
2999
3062
  }
3000
3063
  // 外部呼叫方法 $0.goNext()
3001
3064
  goNext() {
3002
- const t = d(this, P, F).call(this, this.t.activeTab), e = Math.min(this.t.tabPanels.length - 1, t + 1), s = this.t.tabPanels[e].getAttribute("t4-id");
3065
+ const t = d(this, B, U).call(this, this.t.activeTab), e = Math.min(this.t.tabPanels.length - 1, t + 1), s = this.t.tabPanels[e].getAttribute("t4-id");
3003
3066
  this.setActiveTab(s);
3004
3067
  }
3005
3068
  // 外部呼叫方法 $0.goPrev()
3006
3069
  goPrev() {
3007
- const t = d(this, P, F).call(this, this.t.activeTab), e = Math.max(0, t - 1), s = this.t.tabPanels[e].getAttribute("t4-id");
3070
+ const t = d(this, B, U).call(this, this.t.activeTab), e = Math.max(0, t - 1), s = this.t.tabPanels[e].getAttribute("t4-id");
3008
3071
  this.setActiveTab(s);
3009
3072
  }
3010
3073
  // 外部呼叫方法 $0.update()
3011
3074
  update() {
3012
- this.t.tabs = d(this, st, xe).call(this), ds(), console.log("tab update!!!!");
3075
+ this.t.tabs = d(this, nt, Me).call(this), gs(), console.log("tab update!!!!");
3013
3076
  }
3014
3077
  }
3015
- ee = new WeakSet(), Ji = function() {
3016
- const t = this.getAttribute("t4-name"), { SETTINGS: e } = Je;
3078
+ se = new WeakSet(), ts = function() {
3079
+ const t = this.getAttribute("t4-name"), { SETTINGS: e } = Ke;
3017
3080
  document.querySelectorAll(`tab-el[t4-name=${t}]`).length > 1 && console.warn(t, "名字有重複喔!!!"), this.t = {
3018
3081
  tabs: [],
3019
3082
  name: t,
@@ -3032,36 +3095,36 @@ ee = new WeakSet(), Ji = function() {
3032
3095
  delay: this.getAttribute("t4-delay") || e.transition.delay
3033
3096
  },
3034
3097
  tabGroup: this.getAttribute("t4-group") || e.tabGroup
3035
- }, this.__events__ = {}, this.t.tabs = d(this, st, xe).call(this), this.t.step = document.querySelector(`[t4-control="${this.t.name}"]${this.t.stepOutput}`), d(this, ie, Zi).call(this);
3036
- }, ie = new WeakSet(), Zi = function() {
3037
- if (this.t.activeTab = this.t.defaultPage, this.t.display === "swiper" && d(this, se, Qi).call(this), this.t.recordUrl) {
3098
+ }, this.__events__ = {}, this.t.tabs = d(this, nt, Me).call(this), this.t.step = document.querySelector(`[t4-control="${this.t.name}"]${this.t.stepOutput}`), d(this, ne, es).call(this);
3099
+ }, ne = new WeakSet(), es = function() {
3100
+ if (this.t.activeTab = this.t.defaultPage, this.t.display === "swiper" && d(this, oe, is).call(this), this.t.recordUrl) {
3038
3101
  const e = new URLSearchParams(document.location.search).get(this.t.name), s = document.querySelectorAll(`[t4-name="${this.t.name}"] .tab-panel[t4-id="${e}"]`);
3039
3102
  e && s.length === 1 ? this.t.activeTab = e : console.warn(`沒有${e}這頁喔!!`);
3040
3103
  }
3041
- this.setActiveTab(this.t.activeTab), this.classList.add("t4-initialize"), d(this, ge, cs).call(this);
3042
- }, st = new WeakSet(), xe = function() {
3104
+ this.setActiveTab(this.t.activeTab), this.classList.add("t4-initialize"), d(this, ve, ms).call(this);
3105
+ }, nt = new WeakSet(), Me = function() {
3043
3106
  const { t } = this, e = Array.from(document.querySelectorAll(`[t4-control="${t.name}"][t4-role="tab"]`));
3044
3107
  return t.type === "normal" && t.tabGroup === "true" && t.tabPanels.length !== e.length && console.warn("按鈕與內容數量不同喔", t.tabPanels.length, e.length), t.tabGroup === "true" ? t.tabPanels.forEach((s, o) => s.setAttribute("t4-id", o)) : t.tabPanels.forEach((s) => {
3045
3108
  s.getAttribute("t4-id") || console.warn(s, "請幫我設定id!!");
3046
3109
  }), e;
3047
- }, P = new WeakSet(), F = function(t) {
3110
+ }, B = new WeakSet(), U = function(t) {
3048
3111
  const { t: e } = this, s = e.tabPanels.filter((a) => a.getAttribute("t4-id") === t);
3049
3112
  s.length > 1 && console.warn("有兩個相同id設定", s);
3050
3113
  const o = s[0];
3051
3114
  return o ? e.tabPanels.indexOf(o) : (console.warn(`找不到t4-id為${t}的頁籤`), 0);
3052
- }, se = new WeakSet(), Qi = function() {
3115
+ }, oe = new WeakSet(), is = function() {
3053
3116
  const t = document.createElement("div");
3054
3117
  t.classList.add("swiper-container");
3055
3118
  const e = document.createElement("div");
3056
3119
  e.classList.add("swiper-wrapper"), this.t.tabPanels.forEach((s) => {
3057
3120
  e.appendChild(s.cloneNode(!0));
3058
- }), this.t.tabPanels = [...e.children], t.appendChild(e), this.innerHTML = "", this.appendChild(t), d(this, ne, Vi).call(this);
3059
- }, ne = new WeakSet(), Vi = function() {
3121
+ }), this.t.tabPanels = [...e.children], t.appendChild(e), this.innerHTML = "", this.appendChild(t), d(this, ae, ss).call(this);
3122
+ }, ae = new WeakSet(), ss = function() {
3060
3123
  const t = this.querySelector(".swiper-container"), e = this.querySelector(".swiper-wrapper"), s = this.t.tabPanels;
3061
3124
  t.style.overflow = "hidden", e.style.display = "flex";
3062
3125
  const o = s.length * 100 + "%";
3063
3126
  e.style.width = o;
3064
- }, oe = new WeakSet(), Ki = function(t) {
3127
+ }, re = new WeakSet(), ns = function(t) {
3065
3128
  const { t: e } = this;
3066
3129
  if (e.recordUrl === "true") {
3067
3130
  const s = new URLSearchParams(document.location.search);
@@ -3069,55 +3132,55 @@ ee = new WeakSet(), Ji = function() {
3069
3132
  const o = `${window.location.pathname}?${s.toString()}`;
3070
3133
  history.replaceState({ t4Id: t }, "", o);
3071
3134
  }
3072
- }, ae = new WeakSet(), ts = function() {
3135
+ }, le = new WeakSet(), os = function() {
3073
3136
  const t = parseInt(this.t.gap, 10), e = window.pageYOffset, o = this.getBoundingClientRect().top + e - t;
3074
- d(this, re, es).call(this, o);
3075
- }, re = new WeakSet(), es = function(t) {
3137
+ d(this, ce, as).call(this, o);
3138
+ }, ce = new WeakSet(), as = function(t) {
3076
3139
  window.scrollTo({
3077
3140
  top: t,
3078
3141
  behavior: "smooth"
3079
3142
  });
3080
- }, le = new WeakSet(), is = function(t) {
3143
+ }, de = new WeakSet(), rs = function(t) {
3081
3144
  let e = parseInt(t, 10) + 1;
3082
3145
  this.t.step.textContent = `${e}`, this.t.step.setAttribute("now-page", e);
3083
- }, ce = new WeakSet(), ss = function(t) {
3146
+ }, ue = new WeakSet(), ls = function(t) {
3084
3147
  const e = document.querySelectorAll(`[t4-role="next"][t4-control="${this.t.name}"]`), s = this.t.tabPanels.length === 1, o = t === this.t.tabPanels.length - 1;
3085
3148
  e.forEach((a) => {
3086
3149
  s || o ? a.setAttribute("disabled", "") : a.removeAttribute("disabled");
3087
3150
  });
3088
- }, de = new WeakSet(), ns = function(t) {
3151
+ }, he = new WeakSet(), cs = function(t) {
3089
3152
  const e = document.querySelectorAll(`[t4-role="prev"][t4-control="${this.t.name}"]`), s = this.t.tabPanels.length === 1, o = t === 0;
3090
3153
  e.forEach((a) => {
3091
3154
  s || o ? a.setAttribute("disabled", "") : a.removeAttribute("disabled");
3092
3155
  });
3093
- }, ue = new WeakSet(), os = function(t, e) {
3156
+ }, pe = new WeakSet(), ds = function(t, e) {
3094
3157
  this.t.tabGroup === "true" ? this.t.tabs.forEach((s, o) => {
3095
3158
  o == t ? s.setAttribute("aria-selected", !0) : s.setAttribute("aria-selected", !1);
3096
3159
  }) : this.t.tabs.forEach((s, o) => {
3097
3160
  s.getAttribute("t4-id") === e ? s.setAttribute("aria-selected", !0) : s.setAttribute("aria-selected", !1);
3098
3161
  });
3099
- }, q = new WeakSet(), z = function(t, e, s) {
3162
+ }, N = new WeakSet(), G = function(t, e, s) {
3100
3163
  switch (t) {
3101
3164
  case "step":
3102
- Te(this.t.step) && d(this, le, is).call(this, e);
3165
+ Ae(this.t.step) && d(this, de, rs).call(this, e);
3103
3166
  break;
3104
3167
  case "eventAnchor":
3105
- this.t.anchor && d(this, ae, ts).call(this);
3168
+ this.t.anchor && d(this, le, os).call(this);
3106
3169
  break;
3107
3170
  case "tabState":
3108
- this.t.type == "normal" && d(this, ue, os).call(this, e, s);
3171
+ this.t.type == "normal" && d(this, pe, ds).call(this, e, s);
3109
3172
  break;
3110
3173
  case "btnState":
3111
- d(this, ce, ss).call(this, e), d(this, de, ns).call(this, e);
3174
+ d(this, ue, ls).call(this, e), d(this, he, cs).call(this, e);
3112
3175
  break;
3113
3176
  case "tabUrl":
3114
- this.t.recordUrl === "true" && d(this, oe, Ki).call(this, e);
3177
+ this.t.recordUrl === "true" && d(this, re, ns).call(this, e);
3115
3178
  break;
3116
3179
  default:
3117
3180
  console.warn("請增加判斷,謝謝");
3118
3181
  break;
3119
3182
  }
3120
- }, he = new WeakSet(), as = function(t) {
3183
+ }, me = new WeakSet(), us = function(t) {
3121
3184
  const { t: e } = this;
3122
3185
  this.t.transition;
3123
3186
  const s = e.tabPanels[t];
@@ -3134,7 +3197,7 @@ ee = new WeakSet(), Ji = function() {
3134
3197
  s.style.display = "none";
3135
3198
  break;
3136
3199
  }
3137
- }, pe = new WeakSet(), rs = function(t) {
3200
+ }, ge = new WeakSet(), hs = function(t) {
3138
3201
  const { duration: e, timing: s, delay: o } = this.t.transition, a = this.t.tabPanels[t];
3139
3202
  let r;
3140
3203
  switch (a.classList.add("show"), a.classList.remove("hide"), a.style.transition = `opacity ${e}ms ${s} ${o}ms`, a.style.display = "block", this.t.display) {
@@ -3159,25 +3222,25 @@ ee = new WeakSet(), Ji = function() {
3159
3222
  console.warn(this.t.display, "沒有這個效果請自己想辦法!!!!");
3160
3223
  break;
3161
3224
  }
3162
- }, me = new WeakSet(), ls = function(t) {
3163
- const e = d(this, P, F).call(this, t);
3164
- d(this, q, z).call(this, "step", e), d(this, q, z).call(this, "btnState", e), d(this, q, z).call(this, "tabState", e, t), d(this, q, z).call(this, "tabUrl", t), this.emit("change");
3165
- }, ge = new WeakSet(), cs = function() {
3225
+ }, fe = new WeakSet(), ps = function(t) {
3226
+ const e = d(this, B, U).call(this, t);
3227
+ d(this, N, G).call(this, "step", e), d(this, N, G).call(this, "btnState", e), d(this, N, G).call(this, "tabState", e, t), d(this, N, G).call(this, "tabUrl", t), this.emit("change");
3228
+ }, ve = new WeakSet(), ms = function() {
3166
3229
  const t = this;
3167
3230
  window.addEventListener(
3168
3231
  "resize",
3169
- Us(() => {
3232
+ tn(() => {
3170
3233
  t.update();
3171
3234
  }, 1e3)
3172
3235
  );
3173
3236
  };
3174
- function Us(n, i = 1e3) {
3237
+ function tn(n, i = 1e3) {
3175
3238
  let t;
3176
3239
  return function(e) {
3177
3240
  t && clearTimeout(t), t = setTimeout(n, i, e);
3178
3241
  };
3179
3242
  }
3180
- function ds() {
3243
+ function gs() {
3181
3244
  const n = document.querySelectorAll("[t4-control]");
3182
3245
  document.addEventListener("click", function(i) {
3183
3246
  let t = !1;
@@ -3207,91 +3270,91 @@ function ds() {
3207
3270
  }
3208
3271
  });
3209
3272
  }
3210
- ds();
3211
- Object.assign(Ui.prototype, O);
3212
- customElements.define("tab-el", Ui);
3213
- const Xe = (n) => {
3273
+ gs();
3274
+ Object.assign(Ki.prototype, j);
3275
+ customElements.define("tab-el", Ki);
3276
+ const Je = (n) => {
3214
3277
  const { defaultOptions: i } = n.collapse, { collapseClass: t, target: e, transition: s } = i, o = n.querySelector(e);
3215
3278
  n.classList.add(t), o.style.height = 0, o.style["transition-property"] = s.property, o.style["transition-duration"] = s.duration, o.style["transition-timing-function"] = s.function, o.style["transition-delay"] = s.delay, o.style.overflow = "hidden";
3216
- }, Js = (n) => {
3279
+ }, en = (n) => {
3217
3280
  const { defaultOptions: i } = n.collapse, { collapseClass: t, target: e, transition: s } = i, o = n.querySelector(e), a = o.children[0].offsetHeight;
3218
3281
  n.collapse.height = a, n.classList.remove(t), o.style.display = "block", o.style.height = `${a}px`, o.style["transition-property"] = s.property, o.style["transition-duration"] = s.duration, o.style["transition-timing-function"] = s.function, o.style["transition-delay"] = s.delay, o.style.overflow = "hidden";
3219
3282
  };
3220
- var nt, Ce, fe, us, ve, hs, ot, He;
3221
- class Zs {
3283
+ var ot, qe, be, fs, ye, vs, at, Ie;
3284
+ class sn {
3222
3285
  constructor(i, t = {}) {
3223
- h(this, nt);
3224
- h(this, fe);
3225
- h(this, ve);
3226
3286
  h(this, ot);
3227
- !rt(i) && !Te(i) && !lt(i) && !w(i) || (this.__storage__ = {
3287
+ h(this, be);
3288
+ h(this, ye);
3289
+ h(this, at);
3290
+ !lt(i) && !Ae(i) && !ct(i) && !E(i) || (this.__storage__ = {
3228
3291
  el: i,
3229
3292
  options: t
3230
- }, this.active = "data-collapse-active", d(this, nt, Ce).call(this));
3293
+ }, this.active = "data-collapse-active", d(this, ot, qe).call(this));
3231
3294
  }
3232
3295
  update() {
3233
- d(this, nt, Ce).call(this);
3296
+ d(this, ot, qe).call(this);
3234
3297
  }
3235
3298
  }
3236
- nt = new WeakSet(), Ce = function() {
3237
- const { el: i, options: t } = this.__storage__, { SETTINGS: e, EVENTS: s } = Ze;
3238
- if (this.elements = t.state == "not active" ? S(i + `:not([${this.active}])`) : S(i), this.options = Object.assign({}, e, t), this.__events__ = Object.assign({}, s), this.options.on)
3299
+ ot = new WeakSet(), qe = function() {
3300
+ const { el: i, options: t } = this.__storage__, { SETTINGS: e, EVENTS: s } = ti;
3301
+ if (this.elements = t.state == "not active" ? k(i + `:not([${this.active}])`) : k(i), this.options = Object.assign({}, e, t), this.__events__ = Object.assign({}, s), this.options.on)
3239
3302
  for (const [o, a] of Object.entries(this.options.on))
3240
3303
  this.__events__[o] = [a];
3241
- d(this, fe, us).call(this);
3242
- }, fe = new WeakSet(), us = function() {
3304
+ d(this, be, fs).call(this);
3305
+ }, be = new WeakSet(), fs = function() {
3243
3306
  const { elements: i, options: t } = this;
3244
3307
  i.forEach((e) => {
3245
- e.collapse = {}, e.collapse.instance = this, e.collapse.defaultOptions = t, e.collapse.methods = {}, e.collapse.methods.update = this.update, e.setAttribute(this.active, ""), d(this, ve, hs).call(this, e);
3308
+ e.collapse = {}, e.collapse.instance = this, e.collapse.defaultOptions = t, e.collapse.methods = {}, e.collapse.methods.update = this.update, e.setAttribute(this.active, ""), d(this, ye, vs).call(this, e);
3246
3309
  }), this.emit("init");
3247
- }, ve = new WeakSet(), hs = function(i) {
3310
+ }, ye = new WeakSet(), vs = function(i) {
3248
3311
  const { options: t } = this, { collapseClass: e, block: s, target: o, defaultOpen: a, targetStopPropagation: r, defaultActiveMark: l } = t, c = i, u = c.querySelector(o);
3249
- if (c.collapse.height = u.children[0].offsetHeight, a ? (u.style.height = `${u.children[0].offsetHeight}px`, c.classList.remove(e)) : !c.classList.contains(l) && !c.hasAttribute(l) ? (c.classList.add(e), u.style.height = "0px", u.style.overflow = "hidden") : (u.style.height = `${u.children[0].offsetHeight}px`, c.classList.remove(e)), c.removeEventListener("click", d(this, ot, He)), c.addEventListener("click", d(this, ot, He)), r) {
3312
+ if (c.collapse.height = u.children[0].offsetHeight, a ? (u.style.height = `${u.children[0].offsetHeight}px`, c.classList.remove(e)) : !c.classList.contains(l) && !c.hasAttribute(l) ? (c.classList.add(e), u.style.height = "0px", u.style.overflow = "hidden") : (u.style.height = `${u.children[0].offsetHeight}px`, c.classList.remove(e)), c.removeEventListener("click", d(this, at, Ie)), c.addEventListener("click", d(this, at, Ie)), r) {
3250
3313
  const p = (g) => {
3251
3314
  g.stopPropagation();
3252
3315
  };
3253
3316
  u.removeEventListener("click", p), u.addEventListener("click", p);
3254
3317
  }
3255
- }, ot = new WeakSet(), He = function() {
3318
+ }, at = new WeakSet(), Ie = function() {
3256
3319
  const { instance: i, defaultOptions: t } = this.collapse, { collapseClass: e, block: s, target: o, single: a } = t, r = this;
3257
3320
  r.classList.contains(e) ? (a && r.parentNode.querySelectorAll(`.${r.classList[0]}`).forEach((l) => {
3258
- Xe(l);
3259
- }), Js(r)) : Xe(r), i.emit("afterCollapse");
3321
+ Je(l);
3322
+ }), en(r)) : Je(r), i.emit("afterCollapse");
3260
3323
  };
3261
- Object.assign(Zs.prototype, O);
3262
- function Qs(n, i) {
3324
+ Object.assign(sn.prototype, j);
3325
+ function nn(n, i) {
3263
3326
  const t = i, { color: e, opacity: s, duration: o } = i.s.options;
3264
3327
  let a = document.createElement("span"), r = n.clientX - t.getBoundingClientRect().left, l = n.clientY - t.getBoundingClientRect().top;
3265
3328
  a.style.cssText = `background: ${e};left: ${r}px;top: ${l}px;opacity: ${s};animation-duration: ${o}ms`, a.classList.add("circle"), t.appendChild(a), setTimeout(function() {
3266
3329
  a.remove();
3267
3330
  }, `${o}`);
3268
3331
  }
3269
- function ps() {
3332
+ function bs() {
3270
3333
  document.querySelectorAll("ripple-btn").forEach((n) => {
3271
3334
  n.querySelector(".hover-ball"), n.style.setProperty("--r", ""), n.classList.remove("entered");
3272
3335
  });
3273
3336
  }
3274
- document.addEventListener("click", ps);
3275
- var at, Me, be, ms, ye, gs, we, fs;
3276
- class Vs extends HTMLElement {
3337
+ document.addEventListener("click", bs);
3338
+ var rt, Oe, we, ys, Te, ws, Ee, Ts;
3339
+ class on extends HTMLElement {
3277
3340
  constructor() {
3278
3341
  super();
3279
- h(this, at);
3280
- h(this, be);
3281
- h(this, ye);
3342
+ h(this, rt);
3282
3343
  h(this, we);
3344
+ h(this, Te);
3345
+ h(this, Ee);
3283
3346
  this.initialize = !1;
3284
3347
  }
3285
3348
  connectedCallback() {
3286
3349
  const t = this;
3287
- t.initialize || t.classList.contains("r4-initialize") || (t.initialize = !0, d(this, at, Me).call(this));
3350
+ t.initialize || t.classList.contains("r4-initialize") || (t.initialize = !0, d(this, rt, Oe).call(this));
3288
3351
  }
3289
3352
  update() {
3290
- this.classList.remove("r4-initialize"), this.querySelector("i.hover-ball").remove(), d(this, at, Me).call(this);
3353
+ this.classList.remove("r4-initialize"), this.querySelector("i.hover-ball").remove(), d(this, rt, Oe).call(this);
3291
3354
  }
3292
3355
  }
3293
- at = new WeakSet(), Me = function() {
3294
- const { SETTINGS: t } = Qe;
3356
+ rt = new WeakSet(), Oe = function() {
3357
+ const { SETTINGS: t } = ei;
3295
3358
  this.s = {};
3296
3359
  function e(o) {
3297
3360
  let a = !!o;
@@ -3305,20 +3368,20 @@ at = new WeakSet(), Me = function() {
3305
3368
  hover: this.getAttribute("r4-hover") ? e(this.getAttribute("r4-hover")) : t.hover,
3306
3369
  click: this.getAttribute("r4-hover-click") ? e(this.getAttribute("r4-hover-click")) : t.click
3307
3370
  };
3308
- this.s.options = s, this.s.options.hover && this.classList.add("hover-btn"), d(this, be, ms).call(this);
3309
- }, be = new WeakSet(), ms = function() {
3310
- d(this, ye, gs).call(this), d(this, we, fs).call(this), this.classList.add("r4-initialize");
3311
- }, ye = new WeakSet(), gs = function() {
3371
+ this.s.options = s, this.s.options.hover && this.classList.add("hover-btn"), d(this, we, ys).call(this);
3372
+ }, we = new WeakSet(), ys = function() {
3373
+ d(this, Te, ws).call(this), d(this, Ee, Ts).call(this), this.classList.add("r4-initialize");
3374
+ }, Te = new WeakSet(), ws = function() {
3312
3375
  const t = this, e = document.createElement("i");
3313
3376
  e.classList.add("hover-ball"), e.style.transitionDuration = `${t.s.options.speed}ms`, t.appendChild(e);
3314
- }, we = new WeakSet(), fs = function() {
3377
+ }, Ee = new WeakSet(), Ts = function() {
3315
3378
  const t = this.querySelector("i.hover-ball"), e = this;
3316
3379
  e.addEventListener("click", function(a) {
3317
- a.stopPropagation(), e.s.options.click && Qs(a, e);
3380
+ a.stopPropagation(), e.s.options.click && nn(a, e);
3318
3381
  });
3319
3382
  let s = "ontouchstart" in document.documentElement ? "touchstart" : "mouseenter", o = "ontouchend" in document.documentElement ? "touchend" : "mouseleave";
3320
3383
  e.addEventListener(s, function(a) {
3321
- if (s === "touchstart" && ps(), e.s.options.hover) {
3384
+ if (s === "touchstart" && bs(), e.s.options.hover) {
3322
3385
  const r = Math.round(s === "mouseenter" ? a.clientX - e.getBoundingClientRect().left : a.changedTouches[0].clientX - e.getBoundingClientRect().x), l = Math.round(s === "mouseenter" ? a.clientY - e.getBoundingClientRect().top : a.changedTouches[0].clientY - e.getBoundingClientRect().y), { offsetWidth: c, offsetHeight: u } = e, p = Math.max(c, u);
3323
3386
  t.style.width = p * 2 + "px", t.style.height = p * 2 + "px", t.style.left = r + "px", t.style.top = l + "px", e.classList.add("entered");
3324
3387
  }
@@ -3329,8 +3392,8 @@ at = new WeakSet(), Me = function() {
3329
3392
  }
3330
3393
  });
3331
3394
  };
3332
- customElements.define("ripple-btn", Vs);
3333
- class Ks {
3395
+ customElements.define("ripple-btn", on);
3396
+ class an {
3334
3397
  constructor() {
3335
3398
  this.init();
3336
3399
  }
@@ -3382,12 +3445,12 @@ class Ks {
3382
3445
  this.init();
3383
3446
  }
3384
3447
  }
3385
- function Fe(n, i) {
3448
+ function Ze(n, i) {
3386
3449
  return n ? function(t, e) {
3387
3450
  Function(n)(t, e);
3388
3451
  } : i;
3389
3452
  }
3390
- function tn(n, i, t, e) {
3453
+ function rn(n, i, t, e) {
3391
3454
  const s = i.params, o = n.closest("[data-upload-item]").querySelector("[data-preview]");
3392
3455
  o.querySelector("img") && o.querySelector("img").remove(), o.appendChild(e.imgElement);
3393
3456
  const a = n.dataset.group, r = document.querySelector(i.el).dataset.index;
@@ -3410,7 +3473,7 @@ function tn(n, i, t, e) {
3410
3473
  info: e
3411
3474
  }, s.on.changeAfter && typeof s.on.changeAfter == "function" && s.on.changeAfter(n, e);
3412
3475
  }
3413
- function en(n, i, t, e) {
3476
+ function ln(n, i, t, e) {
3414
3477
  const s = document.createElement("canvas"), o = s.getContext("2d"), a = i.width, l = i.height / a * 100, c = e / t * 100;
3415
3478
  let u = 0, p = 0;
3416
3479
  switch (s.width = t, s.height = e, n.previewSize) {
@@ -3424,14 +3487,14 @@ function en(n, i, t, e) {
3424
3487
  const g = (s.width - u) * 0.5, m = (s.height - p) * 0.5;
3425
3488
  return o.drawImage(i, g, m, u, p), s;
3426
3489
  }
3427
- function sn(n, i) {
3490
+ function cn(n, i) {
3428
3491
  return new Promise((t, e) => {
3429
3492
  if (i) {
3430
3493
  const s = new Image();
3431
3494
  s.src = i, s.classList.add(n.previewSize), s.onload = () => {
3432
3495
  let o = {
3433
3496
  imgElement: s,
3434
- originalCanvas: en(n, s, s.width, s.height),
3497
+ originalCanvas: ln(n, s, s.width, s.height),
3435
3498
  info: {
3436
3499
  originalWidth: s.width,
3437
3500
  originalHeight: s.height,
@@ -3444,31 +3507,31 @@ function sn(n, i) {
3444
3507
  t();
3445
3508
  });
3446
3509
  }
3447
- function nn(n, i) {
3510
+ function dn(n, i) {
3448
3511
  const t = Math.pow(10, i);
3449
3512
  return Math.round(n * t) / t;
3450
3513
  }
3451
- function on(n, i) {
3514
+ function un(n, i) {
3452
3515
  let t = n.size / 1024 / 1024;
3453
- return `${nn(t, 2)}` <= i;
3516
+ return `${dn(t, 2)}` <= i;
3454
3517
  }
3455
- function an(n, i, t) {
3518
+ function hn(n, i, t) {
3456
3519
  if (n.target.files.length <= 0)
3457
3520
  return;
3458
3521
  const e = n.target.files[0], s = i.closest("[data-upload-item]");
3459
3522
  let o = new FileReader();
3460
3523
  o.onload = (a) => {
3461
3524
  const r = e.type.split("/")[0] === "image" ? a.target.result : null;
3462
- if (t.params.sizeLimit && !on(e, t.params.sizeLimit)) {
3525
+ if (t.params.sizeLimit && !un(e, t.params.sizeLimit)) {
3463
3526
  i.value = "", s.classList.add("over-limit"), t.params.on.overLimit && typeof t.params.on.overLimit == "function" && t.params.on.overLimit(i, t.params.sizeLimit);
3464
3527
  return;
3465
3528
  } else
3466
- s.classList.remove("over-limit"), s.classList.add("uploaded"), sn(t.params, r).then((l) => {
3467
- tn(i, t, e, l);
3529
+ s.classList.remove("over-limit"), s.classList.add("uploaded"), cn(t.params, r).then((l) => {
3530
+ rn(i, t, e, l);
3468
3531
  });
3469
3532
  }, o.readAsDataURL(e);
3470
3533
  }
3471
- class rn {
3534
+ class pn {
3472
3535
  constructor(i, t) {
3473
3536
  const e = this;
3474
3537
  e.el = i, e.params = {
@@ -3496,67 +3559,67 @@ class rn {
3496
3559
  previewSize: e.dataset.previewSize || i.params.previewSize,
3497
3560
  compress: e.dataset.compress || i.params.compress,
3498
3561
  on: {
3499
- changeAfter: Fe(e.dataset.changeAfter, i.params.on.changeAfter),
3500
- overLimit: Fe(e.dataset.overLimit, i.params.on.overLimit)
3562
+ changeAfter: Ze(e.dataset.changeAfter, i.params.on.changeAfter),
3563
+ overLimit: Ze(e.dataset.overLimit, i.params.on.overLimit)
3501
3564
  }
3502
3565
  };
3503
3566
  i.params = o, typeof uploadImage[`${o.group}`] > "u" && (uploadImage[`${o.group}`] = []), e.dataset.group || (e.dataset.group = o.group), e.dataset.index = document.querySelectorAll(`[data-group="${o.group}"]`).length - 1, e.addEventListener("change", function(a) {
3504
- an(a, e, i);
3567
+ hn(a, e, i);
3505
3568
  });
3506
3569
  }));
3507
3570
  }
3508
3571
  }
3509
3572
  export {
3510
- Ve as A,
3511
- An as B,
3512
- Zs as C,
3513
- $i as D,
3514
- Ln as E,
3515
- Sn as F,
3516
- Dn as G,
3517
- kn as H,
3518
- Ks as I,
3519
- _n as J,
3520
- $n as K,
3521
- xn as L,
3522
- J as M,
3523
- Cn as N,
3524
- Hn as O,
3525
- Mn as P,
3526
- qn as Q,
3527
- Vs as R,
3528
- In as S,
3529
- Ui as T,
3530
- On as U,
3531
- Nn as V,
3532
- Pn as W,
3533
- jn as X,
3534
- zn as Y,
3535
- w as a,
3536
- lt as b,
3537
- Es as c,
3538
- Ts as d,
3539
- Y as e,
3540
- A as f,
3541
- S as g,
3542
- fn as h,
3543
- rt as i,
3544
- hi as j,
3545
- Rs as k,
3546
- Ys as l,
3547
- rn as m,
3548
- Ms as n,
3549
- Wn as o,
3550
- vn as p,
3551
- Ai as q,
3552
- Li as r,
3553
- ws as s,
3554
- bn as t,
3555
- yn as u,
3556
- Is as v,
3557
- wn as w,
3558
- Hs as x,
3559
- Tn as y,
3560
- En as z
3573
+ ii as A,
3574
+ _n as B,
3575
+ sn as C,
3576
+ qi as D,
3577
+ $n as E,
3578
+ Cn as F,
3579
+ Hn as G,
3580
+ Mn as H,
3581
+ an as I,
3582
+ qn as J,
3583
+ In as K,
3584
+ On as L,
3585
+ Z as M,
3586
+ Nn as N,
3587
+ Pn as O,
3588
+ jn as P,
3589
+ zn as Q,
3590
+ on as R,
3591
+ Bn as S,
3592
+ Ki as T,
3593
+ Wn as U,
3594
+ Gn as V,
3595
+ Rn as W,
3596
+ Xn as X,
3597
+ Yn as Y,
3598
+ E as a,
3599
+ ct as b,
3600
+ _s as c,
3601
+ xs as d,
3602
+ Pe as e,
3603
+ L as f,
3604
+ k as g,
3605
+ En as h,
3606
+ lt as i,
3607
+ fi as j,
3608
+ Zs as k,
3609
+ Ks as l,
3610
+ pn as m,
3611
+ zs as n,
3612
+ Fn as o,
3613
+ An as p,
3614
+ xi as q,
3615
+ _i as r,
3616
+ ks as s,
3617
+ Ln as t,
3618
+ Sn as u,
3619
+ xe as v,
3620
+ Dn as w,
3621
+ js as x,
3622
+ kn as y,
3623
+ xn as z
3561
3624
  };
3562
3625
  //# sourceMappingURL=image-preview-bundle.js.map