@medipha/feed 0.2.7 → 0.2.8

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.
package/dist/index.js CHANGED
@@ -7537,22 +7537,22 @@ function Rh({ label: e = "Đang tải bình luận", centered: t = !1 }) {
7537
7537
  }
7538
7538
  //#endregion
7539
7539
  //#region src/features/comments/comment-thread.tsx
7540
- var zh = 1, Bh = 10;
7541
- function Vh({ post: e, previewComments: t, composerSlot: n, moderate: r, onCommentCountChange: i }) {
7540
+ var zh = 20;
7541
+ function Bh({ post: e, previewComments: t, composerSlot: n, moderate: r, onCommentCountChange: i }) {
7542
7542
  let [a, o] = R(!t?.length || r);
7543
- return a ? /* @__PURE__ */ B(Uh, {
7543
+ return a ? /* @__PURE__ */ B(Hh, {
7544
7544
  post: e,
7545
7545
  composerSlot: n,
7546
7546
  moderate: r,
7547
7547
  onCommentCountChange: i
7548
- }) : /* @__PURE__ */ B(Hh, {
7548
+ }) : /* @__PURE__ */ B(Vh, {
7549
7549
  post: e,
7550
7550
  initialComments: t ?? [],
7551
7551
  onShowAll: () => o(!0),
7552
7552
  onCommentCountChange: i
7553
7553
  });
7554
7554
  }
7555
- function Hh({ post: e, initialComments: t, onShowAll: n, onCommentCountChange: r }) {
7555
+ function Vh({ post: e, initialComments: t, onShowAll: n, onCommentCountChange: r }) {
7556
7556
  let { isPostFeed: i } = W(), [a, o] = R(t), { listRef: c, scrollToNewest: l } = Lh(), u = e.status === "PUBLISHED" && i, d = u && !e.commentsLocked, f = e.commentCount - a.length;
7557
7557
  return /* @__PURE__ */ V("div", {
7558
7558
  className: "med-feed-comments",
@@ -7570,7 +7570,7 @@ function Hh({ post: e, initialComments: t, onShowAll: n, onCommentCountChange: r
7570
7570
  /* @__PURE__ */ B("div", {
7571
7571
  ref: c,
7572
7572
  className: "med-feed-comments__list",
7573
- children: [...a].reverse().map((e) => /* @__PURE__ */ B(Wh, {
7573
+ children: [...a].reverse().map((e) => /* @__PURE__ */ B(Uh, {
7574
7574
  comment: e,
7575
7575
  interactive: u,
7576
7576
  canReply: d,
@@ -7590,10 +7590,10 @@ function Hh({ post: e, initialComments: t, onShowAll: n, onCommentCountChange: r
7590
7590
  ]
7591
7591
  });
7592
7592
  }
7593
- function Uh({ post: e, composerSlot: t, moderate: n = !1, onCommentCountChange: r }) {
7593
+ function Hh({ post: e, composerSlot: t, moderate: n = !1, onCommentCountChange: r }) {
7594
7594
  let { api: i, isPostFeed: a } = W(), { listRef: o, scrollToNewest: c } = Lh(), l = e.status === "PUBLISHED" && a && !n, u = Cn(P((t) => i.listComments(e.id, {
7595
7595
  cursor: t,
7596
- limit: t ? Bh : zh
7596
+ limit: zh
7597
7597
  }), [i, e.id]), e.id), [d, f] = R(!1), p = Ih(d && u.hasMore && !u.loadingMore, u.loadMore), m = l && !e.commentsLocked && /* @__PURE__ */ B(sh, {
7598
7598
  postId: e.id,
7599
7599
  autoFocus: !!t,
@@ -7619,7 +7619,7 @@ function Uh({ post: e, composerSlot: t, moderate: n = !1, onCommentCountChange:
7619
7619
  u.loading ? /* @__PURE__ */ B(Rh, { centered: !0 }) : /* @__PURE__ */ B("div", {
7620
7620
  ref: o,
7621
7621
  className: "med-feed-comments__list",
7622
- children: [...u.items].reverse().map((t) => /* @__PURE__ */ B(Wh, {
7622
+ children: [...u.items].reverse().map((t) => /* @__PURE__ */ B(Uh, {
7623
7623
  comment: t,
7624
7624
  interactive: l,
7625
7625
  moderate: n,
@@ -7641,7 +7641,7 @@ function Uh({ post: e, composerSlot: t, moderate: n = !1, onCommentCountChange:
7641
7641
  ]
7642
7642
  });
7643
7643
  }
7644
- function Wh({ comment: e, interactive: t, moderate: n = !1, canReply: r, onChange: i, onDeleted: a, onReplyCountChange: o }) {
7644
+ function Uh({ comment: e, interactive: t, moderate: n = !1, canReply: r, onChange: i, onDeleted: a, onReplyCountChange: o }) {
7645
7645
  let [s, c] = R(!1), [l, u] = R(null), d = (e) => {
7646
7646
  c(!0), u(e);
7647
7647
  };
@@ -7658,7 +7658,7 @@ function Wh({ comment: e, interactive: t, moderate: n = !1, canReply: r, onChang
7658
7658
  "aria-expanded": s,
7659
7659
  onClick: () => c((e) => !e),
7660
7660
  children: [B(s ? Ot : Ne, {}), s ? "Ẩn phản hồi" : `Xem ${e.replyCount} phản hồi`]
7661
- }), s && /* @__PURE__ */ B(Gh, {
7661
+ }), s && /* @__PURE__ */ B(Wh, {
7662
7662
  root: e,
7663
7663
  interactive: t,
7664
7664
  moderate: n,
@@ -7669,7 +7669,7 @@ function Wh({ comment: e, interactive: t, moderate: n = !1, canReply: r, onChang
7669
7669
  })]
7670
7670
  });
7671
7671
  }
7672
- function Gh({ root: e, interactive: t, moderate: n, canReply: r, replyTarget: i, onReply: a, onReplyCountChange: o }) {
7672
+ function Wh({ root: e, interactive: t, moderate: n, canReply: r, replyTarget: i, onReply: a, onReplyCountChange: o }) {
7673
7673
  let { api: c } = W(), l = Cn(P((t) => c.listReplies(e.id, { cursor: t }), [c, e.id]), e.id);
7674
7674
  return /* @__PURE__ */ V(z, { children: [
7675
7675
  l.loading && /* @__PURE__ */ B(Rh, { label: "Đang tải phản hồi" }),
@@ -7703,17 +7703,17 @@ function Gh({ root: e, interactive: t, moderate: n, canReply: r, replyTarget: i,
7703
7703
  }
7704
7704
  //#endregion
7705
7705
  //#region src/shared/brand.ts
7706
- var Kh = {
7706
+ var Gh = {
7707
7707
  name: "Medic",
7708
7708
  logoUrl: "data:image/png;base64,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"
7709
7709
  };
7710
7710
  //#endregion
7711
7711
  //#region src/features/comments/post-comments-modal.tsx
7712
- function qh({ post: e, open: t, onClose: n, onChange: r, onRemoved: i }) {
7712
+ function Kh({ post: e, open: t, onClose: n, onChange: r, onRemoved: i }) {
7713
7713
  let [a, o] = R(null);
7714
7714
  return /* @__PURE__ */ V(b, {
7715
7715
  open: t,
7716
- title: `Bài viết của ${Kh.name}`,
7716
+ title: `Bài viết của ${Gh.name}`,
7717
7717
  footer: null,
7718
7718
  width: 700,
7719
7719
  centered: !0,
@@ -7723,7 +7723,7 @@ function qh({ post: e, open: t, onClose: n, onChange: r, onRemoved: i }) {
7723
7723
  className: "med-feed-portal med-feed-create-modal med-feed-comments-modal",
7724
7724
  children: [/* @__PURE__ */ B("div", {
7725
7725
  className: "med-feed-comments-modal__scroll",
7726
- children: /* @__PURE__ */ B(Xg, {
7726
+ children: /* @__PURE__ */ B(Yg, {
7727
7727
  post: e,
7728
7728
  mode: "modal",
7729
7729
  composerSlot: a,
@@ -7740,7 +7740,7 @@ function qh({ post: e, open: t, onClose: n, onChange: r, onRemoved: i }) {
7740
7740
  }
7741
7741
  //#endregion
7742
7742
  //#region src/shared/hooks/use-in-view.ts
7743
- function Jh(e = .6) {
7743
+ function qh(e = .6) {
7744
7744
  let t = L(null), [n, r] = R(!1);
7745
7745
  return F(() => {
7746
7746
  let n = t.current;
@@ -7751,36 +7751,36 @@ function Jh(e = .6) {
7751
7751
  }
7752
7752
  //#endregion
7753
7753
  //#region src/shared/hooks/use-post-modal-open.ts
7754
- var Yh = 0, Xh = /* @__PURE__ */ new Set(), Zh = (e) => (Xh.add(e), () => Xh.delete(e)), Qh = (e) => {
7755
- Yh = e, Xh.forEach((e) => e());
7754
+ var Jh = 0, Yh = /* @__PURE__ */ new Set(), Xh = (e) => (Yh.add(e), () => Yh.delete(e)), Zh = (e) => {
7755
+ Jh = e, Yh.forEach((e) => e());
7756
7756
  };
7757
- function $h(e) {
7757
+ function Qh(e) {
7758
7758
  F(() => {
7759
- if (e) return Qh(Yh + 1), () => Qh(Yh - 1);
7759
+ if (e) return Zh(Jh + 1), () => Zh(Jh - 1);
7760
7760
  }, [e]);
7761
7761
  }
7762
- function eg() {
7763
- return de(Zh, () => Yh > 0, () => !1);
7762
+ function $h() {
7763
+ return de(Xh, () => Jh > 0, () => !1);
7764
7764
  }
7765
7765
  //#endregion
7766
7766
  //#region src/features/post/content/use-link-preview.ts
7767
- var tg = /* @__PURE__ */ new Map();
7768
- function ng(e, t) {
7767
+ var eg = /* @__PURE__ */ new Map();
7768
+ function tg(e, t) {
7769
7769
  if (!t) return Promise.resolve(null);
7770
- let n = tg.get(t);
7771
- return n || (n = e.getLinkPreview(t).then((e) => e ?? null, () => (tg.delete(t), null)), tg.set(t, n)), n;
7770
+ let n = eg.get(t);
7771
+ return n || (n = e.getLinkPreview(t).then((e) => e ?? null, () => (eg.delete(t), null)), eg.set(t, n)), n;
7772
7772
  }
7773
- function rg(e, t) {
7774
- return Q(P(() => ng(e, t), [e, t]), t);
7773
+ function ng(e, t) {
7774
+ return Q(P(() => tg(e, t), [e, t]), t);
7775
7775
  }
7776
- function ig(e) {
7776
+ function rg(e) {
7777
7777
  try {
7778
7778
  return new URL(e).hostname.replace(/^www\./, "");
7779
7779
  } catch {
7780
7780
  return e;
7781
7781
  }
7782
7782
  }
7783
- function ag(e) {
7783
+ function ig(e) {
7784
7784
  try {
7785
7785
  let { hostname: t, pathname: n } = new URL(e), r = t.replace(/^www\./, "");
7786
7786
  return r === "maps.app.goo.gl" || r === "maps.google.com" || /^google\.[a-z.]+$/.test(r) && n.startsWith("/maps") || r === "goo.gl" && n.startsWith("/maps");
@@ -7788,8 +7788,8 @@ function ag(e) {
7788
7788
  return !1;
7789
7789
  }
7790
7790
  }
7791
- function og(e) {
7792
- let { api: t } = W(), n = e !== null && ag(e), r = e ? mn(e) : null, { data: i, loading: a } = rg(t, e !== null && r ? e : "");
7791
+ function ag(e) {
7792
+ let { api: t } = W(), n = e !== null && ig(e), r = e ? mn(e) : null, { data: i, loading: a } = ng(t, e !== null && r ? e : "");
7793
7793
  return {
7794
7794
  url: e,
7795
7795
  preview: i,
@@ -7801,7 +7801,7 @@ function og(e) {
7801
7801
  }
7802
7802
  //#endregion
7803
7803
  //#region src/features/post/content/link-preview-card.tsx
7804
- function sg({ id: e }) {
7804
+ function og({ id: e }) {
7805
7805
  let t = L(null), [n] = R(() => navigator.userActivation?.hasBeenActive !== !0), [r, i] = R(n);
7806
7806
  return /* @__PURE__ */ V(z, { children: [/* @__PURE__ */ B("iframe", {
7807
7807
  ref: t,
@@ -7824,12 +7824,12 @@ function sg({ id: e }) {
7824
7824
  children: [/* @__PURE__ */ B(Ct, {}), " Bật tiếng"]
7825
7825
  })] });
7826
7826
  }
7827
- function cg({ id: e, autoplay: t, inModal: n }) {
7828
- let [r, i] = Jh(), [a, o] = R(!1), s = eg();
7827
+ function sg({ id: e, autoplay: t, inModal: n }) {
7828
+ let [r, i] = qh(), [a, o] = R(!1), s = $h();
7829
7829
  return /* @__PURE__ */ B("div", {
7830
7830
  ref: r,
7831
7831
  className: "med-feed-link-card__cover",
7832
- children: (t ? i && (n || !s) : a) ? /* @__PURE__ */ B(sg, { id: e }) : /* @__PURE__ */ V("button", {
7832
+ children: (t ? i && (n || !s) : a) ? /* @__PURE__ */ B(og, { id: e }) : /* @__PURE__ */ V("button", {
7833
7833
  type: "button",
7834
7834
  className: "med-feed-link-card__thumb",
7835
7835
  "aria-label": "Phát video YouTube",
@@ -7842,12 +7842,12 @@ function cg({ id: e, autoplay: t, inModal: n }) {
7842
7842
  })
7843
7843
  });
7844
7844
  }
7845
- function lg({ url: e, model: t, inModal: n = !1 }) {
7846
- let r = og(t ? null : e ?? null), { url: i, preview: a, youtubeId: o, renders: s } = t ?? r;
7845
+ function cg({ url: e, model: t, inModal: n = !1 }) {
7846
+ let r = ag(t ? null : e ?? null), { url: i, preview: a, youtubeId: o, renders: s } = t ?? r;
7847
7847
  return !i || !s || !o ? null : /* @__PURE__ */ B(c, {
7848
7848
  size: "small",
7849
7849
  className: "med-feed-link-card",
7850
- cover: /* @__PURE__ */ B(cg, {
7850
+ cover: /* @__PURE__ */ B(sg, {
7851
7851
  id: o,
7852
7852
  autoplay: !!t,
7853
7853
  inModal: n
@@ -7860,7 +7860,7 @@ function lg({ url: e, model: t, inModal: n = !1 }) {
7860
7860
  children: [/* @__PURE__ */ B(A.Text, {
7861
7861
  type: "secondary",
7862
7862
  className: "med-feed-link-card__site",
7863
- children: (a?.siteName ?? ig(i)).toUpperCase()
7863
+ children: (a?.siteName ?? rg(i)).toUpperCase()
7864
7864
  }), /* @__PURE__ */ B(A.Paragraph, {
7865
7865
  strong: !0,
7866
7866
  ellipsis: { rows: 2 },
@@ -7872,7 +7872,7 @@ function lg({ url: e, model: t, inModal: n = !1 }) {
7872
7872
  }
7873
7873
  //#endregion
7874
7874
  //#region src/features/post/content/document-icon.tsx
7875
- var ug = {
7875
+ var lg = {
7876
7876
  pdf: We,
7877
7877
  doc: qe,
7878
7878
  docx: qe,
@@ -7880,37 +7880,37 @@ var ug = {
7880
7880
  xlsx: He,
7881
7881
  ppt: Ge,
7882
7882
  pptx: Ge
7883
- }, dg = /* @__PURE__ */ new Map([
7883
+ }, ug = /* @__PURE__ */ new Map([
7884
7884
  [We, "#e5484d"],
7885
7885
  [qe, "#1677ff"],
7886
7886
  [He, "#0d9488"],
7887
7887
  [Ge, "#e8590c"]
7888
7888
  ]);
7889
- function fg({ fileName: e }) {
7890
- let t = ug[e.split(".").pop()?.toLowerCase() ?? ""] ?? Ue;
7891
- return /* @__PURE__ */ B(t, { style: { color: dg.get(t) } });
7889
+ function dg({ fileName: e }) {
7890
+ let t = lg[e.split(".").pop()?.toLowerCase() ?? ""] ?? Ue;
7891
+ return /* @__PURE__ */ B(t, { style: { color: ug.get(t) } });
7892
7892
  }
7893
7893
  //#endregion
7894
7894
  //#region src/features/post/content/document-preview-url.ts
7895
- var pg = /* @__PURE__ */ new Set([
7895
+ var fg = /* @__PURE__ */ new Set([
7896
7896
  "doc",
7897
7897
  "docx",
7898
7898
  "xls",
7899
7899
  "xlsx",
7900
7900
  "ppt",
7901
7901
  "pptx"
7902
- ]), mg = "https://view.officeapps.live.com/op/view.aspx?src=";
7903
- function hg(e) {
7902
+ ]), pg = "https://view.officeapps.live.com/op/view.aspx?src=";
7903
+ function mg(e) {
7904
7904
  let t = e.fileName.split(".").pop()?.toLowerCase() ?? "";
7905
- return pg.has(t) ? `${mg}${encodeURIComponent(e.fileUrl)}` : e.fileUrl;
7905
+ return fg.has(t) ? `${pg}${encodeURIComponent(e.fileUrl)}` : e.fileUrl;
7906
7906
  }
7907
7907
  //#endregion
7908
7908
  //#region src/features/post/content/post-documents.tsx
7909
- var gg = 3;
7910
- function _g({ documents: e }) {
7909
+ var hg = 3;
7910
+ function gg({ documents: e }) {
7911
7911
  let [t, n] = R(!1);
7912
7912
  if (e.length === 0) return null;
7913
- let r = e.length - gg, i = r > 0 && !t ? e.slice(0, gg) : e;
7913
+ let r = e.length - hg, i = r > 0 && !t ? e.slice(0, hg) : e;
7914
7914
  return /* @__PURE__ */ B(_, {
7915
7915
  className: "med-feed-documents",
7916
7916
  size: "small",
@@ -7937,7 +7937,7 @@ function _g({ documents: e }) {
7937
7937
  children: "Tải về"
7938
7938
  }, "download")],
7939
7939
  children: /* @__PURE__ */ B("a", {
7940
- href: hg(e),
7940
+ href: mg(e),
7941
7941
  target: "_blank",
7942
7942
  rel: "noopener noreferrer",
7943
7943
  className: "med-feed-documents__open",
@@ -7945,7 +7945,7 @@ function _g({ documents: e }) {
7945
7945
  children: /* @__PURE__ */ B(_.Item.Meta, {
7946
7946
  avatar: /* @__PURE__ */ B("span", {
7947
7947
  className: "med-feed-documents__icon",
7948
- children: /* @__PURE__ */ B(fg, { fileName: e.fileName })
7948
+ children: /* @__PURE__ */ B(dg, { fileName: e.fileName })
7949
7949
  }),
7950
7950
  title: /* @__PURE__ */ B(A.Text, {
7951
7951
  ellipsis: !0,
@@ -7959,15 +7959,15 @@ function _g({ documents: e }) {
7959
7959
  }
7960
7960
  //#endregion
7961
7961
  //#region src/features/post/content/post-videos.tsx
7962
- function vg({ videos: e }) {
7963
- return e.length === 0 ? null : /* @__PURE__ */ B(z, { children: e.map((e) => /* @__PURE__ */ B(bg, { video: e }, e.id)) });
7962
+ function _g({ videos: e }) {
7963
+ return e.length === 0 ? null : /* @__PURE__ */ B(z, { children: e.map((e) => /* @__PURE__ */ B(yg, { video: e }, e.id)) });
7964
7964
  }
7965
- function yg(e) {
7965
+ function vg(e) {
7966
7966
  let t = Number.isFinite(e) ? Math.max(0, Math.floor(e)) : 0;
7967
7967
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
7968
7968
  }
7969
- function bg({ video: e }) {
7970
- let [t, n] = Jh(), r = L(null), [i, a] = R(!0), [o, s] = R(!1), [c, l] = R(0), [u, d] = R(0);
7969
+ function yg({ video: e }) {
7970
+ let [t, n] = qh(), r = L(null), [i, a] = R(!0), [o, s] = R(!1), [c, l] = R(0), [u, d] = R(0);
7971
7971
  F(() => {
7972
7972
  let e = r.current;
7973
7973
  e && (n ? e.play().catch(() => void 0) : e.pause());
@@ -8014,9 +8014,9 @@ function bg({ video: e }) {
8014
8014
  /* @__PURE__ */ V("span", {
8015
8015
  className: "med-feed-video__time",
8016
8016
  children: [
8017
- yg(c),
8017
+ vg(c),
8018
8018
  " / ",
8019
- yg(u)
8019
+ vg(u)
8020
8020
  ]
8021
8021
  }),
8022
8022
  /* @__PURE__ */ B("input", {
@@ -8053,7 +8053,7 @@ function bg({ video: e }) {
8053
8053
  }
8054
8054
  //#endregion
8055
8055
  //#region src/features/post/interactions/post-engagement-stats.tsx
8056
- function xg({ post: e }) {
8056
+ function bg({ post: e }) {
8057
8057
  return /* @__PURE__ */ V("div", {
8058
8058
  className: "med-feed-post__engagement",
8059
8059
  "aria-label": "Tương tác",
@@ -8087,7 +8087,7 @@ function xg({ post: e }) {
8087
8087
  }
8088
8088
  //#endregion
8089
8089
  //#region src/shared/utils/reactions.ts
8090
- var Sg = {
8090
+ var xg = {
8091
8091
  LIKE: {
8092
8092
  emoji: "👍",
8093
8093
  label: "Thích",
@@ -8127,7 +8127,7 @@ var Sg = {
8127
8127
  };
8128
8128
  //#endregion
8129
8129
  //#region src/features/post/interactions/reactors-modal.tsx
8130
- function Cg({ postId: e, open: t, onClose: n }) {
8130
+ function Sg({ postId: e, open: t, onClose: n }) {
8131
8131
  return /* @__PURE__ */ B(b, {
8132
8132
  open: t,
8133
8133
  title: "Cảm xúc",
@@ -8138,10 +8138,10 @@ function Cg({ postId: e, open: t, onClose: n }) {
8138
8138
  onCancel: n,
8139
8139
  closeIcon: /* @__PURE__ */ B(Oe, {}),
8140
8140
  className: "med-feed-portal med-feed-create-modal med-feed-reactors-modal",
8141
- children: t && /* @__PURE__ */ B(wg, { postId: e })
8141
+ children: t && /* @__PURE__ */ B(Cg, { postId: e })
8142
8142
  });
8143
8143
  }
8144
- function wg({ postId: e }) {
8144
+ function Cg({ postId: e }) {
8145
8145
  let { api: t } = W(), [n, r] = R("ALL"), [i, a] = R([]), o = n === "ALL" ? void 0 : n, c = Cn(P((n) => t.listPostReactions(e, {
8146
8146
  type: o,
8147
8147
  cursor: n
@@ -8168,7 +8168,7 @@ function wg({ postId: e }) {
8168
8168
  label: /* @__PURE__ */ V("span", {
8169
8169
  className: "med-feed-reactors__tab",
8170
8170
  children: [
8171
- Sg[e.type].emoji,
8171
+ xg[e.type].emoji,
8172
8172
  " ",
8173
8173
  $(e.count)
8174
8174
  ]
@@ -8190,8 +8190,8 @@ function wg({ postId: e }) {
8190
8190
  size: 40
8191
8191
  }), /* @__PURE__ */ B("span", {
8192
8192
  className: "med-feed-reactors__badge",
8193
- "aria-label": Sg[e.type].label,
8194
- children: Sg[e.type].emoji
8193
+ "aria-label": xg[e.type].label,
8194
+ children: xg[e.type].emoji
8195
8195
  })]
8196
8196
  }), /* @__PURE__ */ V("span", {
8197
8197
  className: "med-feed-reactors__text",
@@ -8215,20 +8215,20 @@ function wg({ postId: e }) {
8215
8215
  }
8216
8216
  //#endregion
8217
8217
  //#region src/shared/utils/chat-share.ts
8218
- var Tg = 1e4;
8219
- async function Eg({ chatApiUrl: e, accessToken: t }) {
8218
+ var wg = 1e4;
8219
+ async function Tg({ chatApiUrl: e, accessToken: t }) {
8220
8220
  let n = await fetch(`${e.replace(/\/+$/, "")}/conversations`, { headers: { Authorization: `Bearer ${t}` } });
8221
8221
  if (!n.ok) throw Error(`Chat conversations failed with status ${n.status}`);
8222
8222
  return await n.json();
8223
8223
  }
8224
- function Dg(e, t) {
8224
+ function Eg(e, t) {
8225
8225
  return e.title ? e.title : e.members.find((e) => e.userId !== t && !e.leftAt)?.user?.fullName ?? "Cuộc trò chuyện";
8226
8226
  }
8227
- function Og(e, t, n) {
8227
+ function Dg(e, t, n) {
8228
8228
  let r = e.avatarUrl || (e.type === "DIRECT" ? e.members.find((e) => e.userId !== t && !e.leftAt)?.user?.avatarUrl : null);
8229
8229
  return r ? /^https?:\/\//i.test(r) ? r : `${n.replace(/\/+$/, "")}/${r.replace(/^\/+/, "")}` : null;
8230
8230
  }
8231
- async function kg({ chatApiUrl: e, accessToken: t, conversationIds: n, text: r }) {
8231
+ async function Og({ chatApiUrl: e, accessToken: t, conversationIds: n, text: r }) {
8232
8232
  let i = jt(e, {
8233
8233
  transports: ["websocket"],
8234
8234
  auth: { token: t }
@@ -8237,7 +8237,7 @@ async function kg({ chatApiUrl: e, accessToken: t, conversationIds: n, text: r }
8237
8237
  await new Promise((e, t) => {
8238
8238
  i.once("connect", e), i.once("connect_error", t);
8239
8239
  }), await Promise.all(n.map(async (e) => {
8240
- if ((await i.timeout(Tg).emitWithAck("message:send", {
8240
+ if ((await i.timeout(wg).emitWithAck("message:send", {
8241
8241
  conversationId: e,
8242
8242
  clientMessageId: crypto.randomUUID(),
8243
8243
  type: "TEXT",
@@ -8253,7 +8253,7 @@ async function kg({ chatApiUrl: e, accessToken: t, conversationIds: n, text: r }
8253
8253
  }
8254
8254
  //#endregion
8255
8255
  //#region src/features/post/interactions/chat-share-modal.tsx
8256
- var Ag = [
8256
+ var kg = [
8257
8257
  {
8258
8258
  key: "recent",
8259
8259
  label: "Gần đây"
@@ -8266,8 +8266,8 @@ var Ag = [
8266
8266
  key: "direct",
8267
8267
  label: "Cá nhân"
8268
8268
  }
8269
- ], jg = 20, Mg = 20;
8270
- function Ng({ post: e, open: t, onClose: n, onShared: r }) {
8269
+ ], Ag = 20, jg = 20;
8270
+ function Mg({ post: e, open: t, onClose: n, onShared: r }) {
8271
8271
  return /* @__PURE__ */ B(b, {
8272
8272
  open: t,
8273
8273
  title: "Chia sẻ qua Chat nội bộ",
@@ -8277,23 +8277,23 @@ function Ng({ post: e, open: t, onClose: n, onShared: r }) {
8277
8277
  centered: !0,
8278
8278
  width: 520,
8279
8279
  className: "med-feed-portal med-feed-chat-share-modal",
8280
- children: /* @__PURE__ */ B(Ig, {
8280
+ children: /* @__PURE__ */ B(Fg, {
8281
8281
  post: e,
8282
8282
  onClose: n,
8283
8283
  onShared: r
8284
8284
  })
8285
8285
  });
8286
8286
  }
8287
- function Pg(e) {
8287
+ function Ng(e) {
8288
8288
  let t = 0;
8289
8289
  for (let n of e) t = (t * 31 + n.charCodeAt(0)) % 360;
8290
8290
  return `hsl(${t} 55% 48%)`;
8291
8291
  }
8292
- function Fg({ name: e, url: t, small: n }) {
8292
+ function Pg({ name: e, url: t, small: n }) {
8293
8293
  let [r, i] = R(!1);
8294
8294
  return /* @__PURE__ */ B("span", {
8295
8295
  className: `med-feed-chat-share__avatar${n ? " med-feed-chat-share__avatar--small" : ""}`,
8296
- style: { background: t && !r ? void 0 : Pg(e) },
8296
+ style: { background: t && !r ? void 0 : Ng(e) },
8297
8297
  "aria-hidden": !0,
8298
8298
  children: t && !r ? /* @__PURE__ */ B("img", {
8299
8299
  src: t,
@@ -8303,9 +8303,9 @@ function Fg({ name: e, url: t, small: n }) {
8303
8303
  }) : e.trim().charAt(0).toUpperCase()
8304
8304
  });
8305
8305
  }
8306
- function Ig({ post: e, onClose: t, onShared: n }) {
8306
+ function Fg({ post: e, onClose: t, onShared: n }) {
8307
8307
  let { me: r, chatApiUrl: i, getAccessToken: a, postUrl: o } = W(), [c, l] = R(null), [u, d] = R("recent"), [f, p] = R(""), [m, h] = R([]), [g, _] = R(!1);
8308
- vn(i, () => Eg({
8308
+ vn(i, () => Tg({
8309
8309
  chatApiUrl: i,
8310
8310
  accessToken: a()
8311
8311
  }), (e) => {
@@ -8313,23 +8313,23 @@ function Ig({ post: e, onClose: t, onShared: n }) {
8313
8313
  });
8314
8314
  let v = I(() => (c ?? []).map((e) => ({
8315
8315
  conversation: e,
8316
- label: Dg(e, r.userId),
8317
- avatar: Og(e, r.userId, i)
8316
+ label: Eg(e, r.userId),
8317
+ avatar: Dg(e, r.userId, i)
8318
8318
  })).sort((e, t) => (t.conversation.lastMessageAt ?? "").localeCompare(e.conversation.lastMessageAt ?? "")), [
8319
8319
  c,
8320
8320
  r.userId,
8321
8321
  i
8322
8322
  ]), y = I(() => {
8323
- let e = f.trim().toLowerCase(), t = v.filter(({ conversation: e }) => u === "group" ? e.type === "GROUP" : u !== "direct" || e.type === "DIRECT"), n = u === "recent" && !e ? t.slice(0, jg) : t;
8323
+ let e = f.trim().toLowerCase(), t = v.filter(({ conversation: e }) => u === "group" ? e.type === "GROUP" : u !== "direct" || e.type === "DIRECT"), n = u === "recent" && !e ? t.slice(0, Ag) : t;
8324
8324
  return e ? n.filter(({ label: t }) => t.toLowerCase().includes(e)) : n;
8325
8325
  }, [
8326
8326
  v,
8327
8327
  u,
8328
8328
  f
8329
- ]), b = I(() => new Map(v.map((e) => [e.conversation.id, e])), [v]), x = (e) => h((t) => t.includes(e) ? t.filter((t) => t !== e) : t.length < Mg ? [...t, e] : t), S = async () => {
8329
+ ]), b = I(() => new Map(v.map((e) => [e.conversation.id, e])), [v]), x = (e) => h((t) => t.includes(e) ? t.filter((t) => t !== e) : t.length < jg ? [...t, e] : t), S = async () => {
8330
8330
  _(!0);
8331
8331
  try {
8332
- await kg({
8332
+ await Og({
8333
8333
  chatApiUrl: i,
8334
8334
  accessToken: a(),
8335
8335
  conversationIds: m,
@@ -8351,7 +8351,7 @@ function Ig({ post: e, onClose: t, onShared: n }) {
8351
8351
  /* @__PURE__ */ B("div", {
8352
8352
  className: "med-feed-chat-share__tabs",
8353
8353
  role: "tablist",
8354
- children: Ag.map(({ key: e, label: t }) => /* @__PURE__ */ B("button", {
8354
+ children: kg.map(({ key: e, label: t }) => /* @__PURE__ */ B("button", {
8355
8355
  type: "button",
8356
8356
  role: "tab",
8357
8357
  "aria-selected": u === e,
@@ -8381,7 +8381,7 @@ function Ig({ post: e, onClose: t, onShared: n }) {
8381
8381
  title: "Bỏ chọn",
8382
8382
  onClick: () => x(e),
8383
8383
  children: [
8384
- /* @__PURE__ */ B(Fg, {
8384
+ /* @__PURE__ */ B(Pg, {
8385
8385
  name: t.label,
8386
8386
  url: t.avatar,
8387
8387
  small: !0
@@ -8408,10 +8408,10 @@ function Ig({ post: e, onClose: t, onShared: n }) {
8408
8408
  return /* @__PURE__ */ V("button", {
8409
8409
  type: "button",
8410
8410
  className: `med-feed-chat-share__row${r ? " is-selected" : ""}`,
8411
- disabled: !r && m.length >= Mg,
8411
+ disabled: !r && m.length >= jg,
8412
8412
  onClick: () => x(e.id),
8413
8413
  children: [
8414
- /* @__PURE__ */ B(Fg, {
8414
+ /* @__PURE__ */ B(Pg, {
8415
8415
  name: t,
8416
8416
  url: n
8417
8417
  }),
@@ -8437,7 +8437,7 @@ function Ig({ post: e, onClose: t, onShared: n }) {
8437
8437
  children: [
8438
8438
  /* @__PURE__ */ B("span", {
8439
8439
  className: "med-feed-chat-share__count",
8440
- children: m.length > 0 ? `Đã chọn ${m.length}/${Mg}` : ""
8440
+ children: m.length > 0 ? `Đã chọn ${m.length}/${jg}` : ""
8441
8441
  }),
8442
8442
  /* @__PURE__ */ B(s, {
8443
8443
  onClick: t,
@@ -8457,7 +8457,7 @@ function Ig({ post: e, onClose: t, onShared: n }) {
8457
8457
  }
8458
8458
  //#endregion
8459
8459
  //#region src/features/post/interactions/share-button.tsx
8460
- function Lg({ post: e, label: t = "Chia sẻ", count: n, disabled: r, onChange: i }) {
8460
+ function Ig({ post: e, label: t = "Chia sẻ", count: n, disabled: r, onChange: i }) {
8461
8461
  let { api: a, postUrl: o } = W(), [c, l] = R(!1), [u, d] = R(!1), p = o(e.id), m = async (t, n) => {
8462
8462
  l(!0);
8463
8463
  try {
@@ -8501,7 +8501,7 @@ function Lg({ post: e, label: t = "Chia sẻ", count: n, disabled: r, onChange:
8501
8501
  className: e.sharedByMe ? "med-feed-post__action--active" : void 0,
8502
8502
  children: n === void 0 ? t : n > 0 ? $(n) : null
8503
8503
  })
8504
- }), /* @__PURE__ */ B(Ng, {
8504
+ }), /* @__PURE__ */ B(Mg, {
8505
8505
  post: e,
8506
8506
  open: u,
8507
8507
  onClose: () => d(!1),
@@ -8510,7 +8510,7 @@ function Lg({ post: e, label: t = "Chia sẻ", count: n, disabled: r, onChange:
8510
8510
  }
8511
8511
  //#endregion
8512
8512
  //#region src/features/post/interactions/post-reaction-bar.tsx
8513
- function Rg({ post: e, disabled: t, readOnly: n, onChange: r, onToggleComments: i }) {
8513
+ function Lg({ post: e, disabled: t, readOnly: n, onChange: r, onToggleComments: i }) {
8514
8514
  let { api: a } = W(), [o, c] = R(!1), l = t || e.status !== "PUBLISHED", u = e.reactionCount > 0 || e.commentCount > 0 || e.shareCount > 0, [d, f] = R(0), p = P((e) => (f((e) => e + 1), e.finally(() => f((e) => e - 1))), []), m = Ph({
8515
8515
  summary: e,
8516
8516
  onChange: P((t) => r({
@@ -8587,14 +8587,14 @@ function Rg({ post: e, disabled: t, readOnly: n, onChange: r, onToggleComments:
8587
8587
  children: "Bình luận"
8588
8588
  })
8589
8589
  }),
8590
- /* @__PURE__ */ B(Lg, {
8590
+ /* @__PURE__ */ B(Ig, {
8591
8591
  post: e,
8592
8592
  disabled: l || n,
8593
8593
  onChange: r
8594
8594
  })
8595
8595
  ]
8596
8596
  }),
8597
- /* @__PURE__ */ B(Cg, {
8597
+ /* @__PURE__ */ B(Sg, {
8598
8598
  postId: e.id,
8599
8599
  open: o,
8600
8600
  onClose: () => c(!1)
@@ -8604,7 +8604,7 @@ function Rg({ post: e, disabled: t, readOnly: n, onChange: r, onToggleComments:
8604
8604
  }
8605
8605
  //#endregion
8606
8606
  //#region src/features/post/card/post-actions-menu.tsx
8607
- function zg({ post: e, onChange: t }) {
8607
+ function Rg({ post: e, onChange: t }) {
8608
8608
  let { api: n, me: r } = W(), i = r.canManage, a = async (e, n) => {
8609
8609
  try {
8610
8610
  t(await e()), j.success(n);
@@ -8632,7 +8632,7 @@ function zg({ post: e, onChange: t }) {
8632
8632
  }
8633
8633
  //#endregion
8634
8634
  //#region src/features/post/card/confirm-delete-post.ts
8635
- function Bg(e) {
8635
+ function zg(e) {
8636
8636
  b.confirm({
8637
8637
  title: "Xoá bài viết?",
8638
8638
  content: "Bài viết sẽ bị gỡ khỏi bảng tin.",
@@ -8646,7 +8646,7 @@ function Bg(e) {
8646
8646
  }
8647
8647
  //#endregion
8648
8648
  //#region src/features/post/card/post-status.ts
8649
- var Vg = {
8649
+ var Bg = {
8650
8650
  DRAFT: {
8651
8651
  label: "Bản nháp",
8652
8652
  shortLabel: "Nháp",
@@ -8684,15 +8684,15 @@ var Vg = {
8684
8684
  background: "#ffdad6"
8685
8685
  }
8686
8686
  };
8687
- function Hg(e, t) {
8687
+ function Vg(e, t) {
8688
8688
  return e.status === "DRAFT" || e.status === "PENDING" ? e.author.id === t.userId || t.canManage : e.status === "UNPUBLISHED" && t.canManage;
8689
8689
  }
8690
8690
  //#endregion
8691
8691
  //#region src/features/post/card/post-delete-button.tsx
8692
- function Ug({ post: e, onRemoved: t, labelled: n = !1 }) {
8692
+ function Hg({ post: e, onRemoved: t, labelled: n = !1 }) {
8693
8693
  let { api: r, me: i } = W();
8694
- if (!Hg(e, i)) return null;
8695
- let a = () => Bg(async () => {
8694
+ if (!Vg(e, i)) return null;
8695
+ let a = () => zg(async () => {
8696
8696
  try {
8697
8697
  await r.deletePost(e.id), t(e.id), j.success("Đã xoá bài viết");
8698
8698
  } catch {
@@ -8717,17 +8717,17 @@ function Ug({ post: e, onRemoved: t, labelled: n = !1 }) {
8717
8717
  }
8718
8718
  //#endregion
8719
8719
  //#region src/shared/components/publisher-avatar.tsx
8720
- function Wg({ size: e = 44 }) {
8720
+ function Ug({ size: e = 44 }) {
8721
8721
  return /* @__PURE__ */ B(o, {
8722
8722
  size: e,
8723
- src: Kh.logoUrl,
8724
- alt: Kh.name,
8723
+ src: Gh.logoUrl,
8724
+ alt: Gh.name,
8725
8725
  className: "med-feed-publisher-avatar"
8726
8726
  });
8727
8727
  }
8728
8728
  //#endregion
8729
8729
  //#region src/features/post/card/featured-tag.tsx
8730
- function Gg() {
8730
+ function Wg() {
8731
8731
  return /* @__PURE__ */ B(ne, {
8732
8732
  color: "gold",
8733
8733
  icon: /* @__PURE__ */ B(ht, {}),
@@ -8737,8 +8737,8 @@ function Gg() {
8737
8737
  }
8738
8738
  //#endregion
8739
8739
  //#region src/features/post/card/post-status-tag.tsx
8740
- function Kg({ status: e, short: t }) {
8741
- let n = Vg[e];
8740
+ function Gg({ status: e, short: t }) {
8741
+ let n = Bg[e];
8742
8742
  return /* @__PURE__ */ V("span", {
8743
8743
  className: "med-feed-status-pill",
8744
8744
  style: {
@@ -8754,7 +8754,7 @@ function Kg({ status: e, short: t }) {
8754
8754
  }
8755
8755
  //#endregion
8756
8756
  //#region src/features/post/card/post-header.tsx
8757
- function qg({ post: e, extra: t, hideStatus: n = !1 }) {
8757
+ function Kg({ post: e, extra: t, hideStatus: n = !1 }) {
8758
8758
  let r = /* @__PURE__ */ B(k, {
8759
8759
  title: Ah(e.createdAt),
8760
8760
  children: /* @__PURE__ */ B("span", { children: kh(e.createdAt) })
@@ -8762,7 +8762,7 @@ function qg({ post: e, extra: t, hideStatus: n = !1 }) {
8762
8762
  return /* @__PURE__ */ V("div", {
8763
8763
  className: "med-feed-post__header",
8764
8764
  children: [
8765
- /* @__PURE__ */ B(Wg, { size: 44 }),
8765
+ /* @__PURE__ */ B(Ug, { size: 44 }),
8766
8766
  /* @__PURE__ */ V("div", {
8767
8767
  className: "med-feed-post__author",
8768
8768
  children: [/* @__PURE__ */ V("span", {
@@ -8770,31 +8770,31 @@ function qg({ post: e, extra: t, hideStatus: n = !1 }) {
8770
8770
  children: [
8771
8771
  /* @__PURE__ */ B(A.Text, {
8772
8772
  className: "med-feed-post__author-name",
8773
- children: Kh.name
8773
+ children: Gh.name
8774
8774
  }),
8775
8775
  /* @__PURE__ */ B(k, {
8776
8776
  title: "Tài khoản chính thức",
8777
8777
  children: /* @__PURE__ */ B(Te, { className: "med-feed-post__verified" })
8778
8778
  }),
8779
- e.pinnedAt && e.status === "PUBLISHED" && /* @__PURE__ */ B(Gg, {})
8779
+ e.pinnedAt && e.status === "PUBLISHED" && /* @__PURE__ */ B(Wg, {})
8780
8780
  ]
8781
8781
  }), /* @__PURE__ */ B("span", {
8782
8782
  className: "med-feed-post__meta",
8783
8783
  children: r
8784
8784
  })]
8785
8785
  }),
8786
- !n && e.status !== "PUBLISHED" && /* @__PURE__ */ B(Kg, { status: e.status }),
8786
+ !n && e.status !== "PUBLISHED" && /* @__PURE__ */ B(Gg, { status: e.status }),
8787
8787
  t
8788
8788
  ]
8789
8789
  });
8790
8790
  }
8791
8791
  //#endregion
8792
8792
  //#region src/features/post/card/post-card.tsx
8793
- var Jg = 85, Yg = 1;
8794
- function Xg({ post: e, mode: t = "feed", footer: n, onChange: r, onRemoved: i, composerSlot: a, statusOnTop: o = !1, headerActions: l, hideModeration: u = !1 }) {
8793
+ var qg = 85, Jg = 1;
8794
+ function Yg({ post: e, mode: t = "feed", footer: n, onChange: r, onRemoved: i, composerSlot: a, statusOnTop: o = !1, headerActions: l, hideModeration: u = !1 }) {
8795
8795
  let { basePath: d, isPostFeed: f, isAdmin: p } = W(), m = L(null), [h, g] = R(t === "detail" || t === "modal"), [_, v] = R(!1);
8796
- $h(t === "modal");
8797
- let y = t === "preview", b = e.media.filter((e) => e.kind === "IMAGE"), x = e.media.filter((e) => e.kind === "VIDEO"), S = e.media.filter((e) => e.kind === "DOCUMENT"), C = pn(e.content, `${d.replace(/\/+$/, "")}/posts/`), w = r ?? (() => void 0), T = og(C), E = C && (T.renders || T.isMap) ? e.content.replace(C, "").trim() : e.content, ee = e.media.length === 0 && !C && E.length > 0 && E.length <= Jg && E.split(/\r?\n/).length <= 3, D = p && t !== "modal" && e.status === "PUBLISHED" && !e.commentsLocked && e.commentCount > 0, te = () => {
8796
+ Qh(t === "modal");
8797
+ let y = t === "preview", b = e.media.filter((e) => e.kind === "IMAGE"), x = e.media.filter((e) => e.kind === "VIDEO"), S = e.media.filter((e) => e.kind === "DOCUMENT"), C = pn(e.content, `${d.replace(/\/+$/, "")}/posts/`), w = r ?? (() => void 0), T = ag(C), E = C && (T.renders || T.isMap) ? e.content.replace(C, "").trim() : e.content, ee = e.media.length === 0 && !C && E.length > 0 && E.length <= qg && E.split(/\r?\n/).length <= 3, D = p && t !== "modal" && e.status === "PUBLISHED" && !e.commentsLocked && e.commentCount > 0, te = () => {
8798
8798
  t === "feed" ? v(!0) : t !== "modal" && g((e) => !e);
8799
8799
  };
8800
8800
  return /* @__PURE__ */ B(c, {
@@ -8806,9 +8806,9 @@ function Xg({ post: e, mode: t = "feed", footer: n, onChange: r, onRemoved: i, c
8806
8806
  children: [
8807
8807
  o && /* @__PURE__ */ B("div", {
8808
8808
  className: "med-feed-post__status-top",
8809
- children: /* @__PURE__ */ B(Kg, { status: e.status })
8809
+ children: /* @__PURE__ */ B(Gg, { status: e.status })
8810
8810
  }),
8811
- /* @__PURE__ */ B(qg, {
8811
+ /* @__PURE__ */ B(Kg, {
8812
8812
  post: e,
8813
8813
  hideStatus: o,
8814
8814
  extra: !y && f && /* @__PURE__ */ V("span", {
@@ -8825,11 +8825,11 @@ function Xg({ post: e, mode: t = "feed", footer: n, onChange: r, onRemoved: i, c
8825
8825
  children: $(e.commentCount)
8826
8826
  })]
8827
8827
  }),
8828
- !u && /* @__PURE__ */ B(zg, {
8828
+ !u && /* @__PURE__ */ B(Rg, {
8829
8829
  post: e,
8830
8830
  onChange: w
8831
8831
  }),
8832
- p && /* @__PURE__ */ B(Ug, {
8832
+ p && /* @__PURE__ */ B(Hg, {
8833
8833
  post: e,
8834
8834
  onRemoved: i ?? (() => void 0)
8835
8835
  })
@@ -8848,34 +8848,34 @@ function Xg({ post: e, mode: t = "feed", footer: n, onChange: r, onRemoved: i, c
8848
8848
  }) }) : t === "modal" ? /* @__PURE__ */ B(vh, {
8849
8849
  content: E,
8850
8850
  mentionedUsers: e.mentionedUsers,
8851
- clampLines: Yg
8851
+ clampLines: Jg
8852
8852
  }) : /* @__PURE__ */ B(vh, {
8853
8853
  content: E,
8854
8854
  mentionedUsers: e.mentionedUsers,
8855
8855
  collapsible: !0
8856
8856
  })
8857
8857
  }),
8858
- /* @__PURE__ */ B(vg, { videos: x }),
8859
- /* @__PURE__ */ B(lg, {
8858
+ /* @__PURE__ */ B(_g, { videos: x }),
8859
+ /* @__PURE__ */ B(cg, {
8860
8860
  model: T,
8861
8861
  inModal: t === "modal"
8862
8862
  }),
8863
8863
  /* @__PURE__ */ B(xh, { images: b }),
8864
- /* @__PURE__ */ B(_g, { documents: S })
8864
+ /* @__PURE__ */ B(gg, { documents: S })
8865
8865
  ]
8866
8866
  }),
8867
8867
  e.status === "PENDING" && /* @__PURE__ */ V("div", {
8868
8868
  className: "med-feed-post__pending-note",
8869
8869
  children: [/* @__PURE__ */ B(Ze, {}), " Bài viết ở chế độ Chờ duyệt — chỉ người quản lý bảng tin và tác giả mới xem được."]
8870
8870
  }),
8871
- p ? /* @__PURE__ */ B(xg, { post: e }) : e.status === "PUBLISHED" || y ? /* @__PURE__ */ B(Rg, {
8871
+ p ? /* @__PURE__ */ B(bg, { post: e }) : e.status === "PUBLISHED" || y ? /* @__PURE__ */ B(Lg, {
8872
8872
  post: e,
8873
8873
  disabled: y,
8874
8874
  readOnly: !f,
8875
8875
  onChange: w,
8876
8876
  onToggleComments: te
8877
8877
  }) : null,
8878
- h && t !== "feed" && !y && e.status === "PUBLISHED" && !e.commentsLocked && /* @__PURE__ */ B(Vh, {
8878
+ h && t !== "feed" && !y && e.status === "PUBLISHED" && !e.commentsLocked && /* @__PURE__ */ B(Bh, {
8879
8879
  post: e,
8880
8880
  composerSlot: t === "modal" ? a ?? null : void 0,
8881
8881
  moderate: p,
@@ -8888,7 +8888,7 @@ function Xg({ post: e, mode: t = "feed", footer: n, onChange: r, onRemoved: i, c
8888
8888
  className: "med-feed-post__footer",
8889
8889
  children: n
8890
8890
  }),
8891
- t === "feed" && /* @__PURE__ */ B(qh, {
8891
+ t === "feed" && /* @__PURE__ */ B(Kh, {
8892
8892
  post: e,
8893
8893
  open: _,
8894
8894
  onClose: () => v(!1),
@@ -8901,7 +8901,7 @@ function Xg({ post: e, mode: t = "feed", footer: n, onChange: r, onRemoved: i, c
8901
8901
  }
8902
8902
  //#endregion
8903
8903
  //#region src/features/post/list/post-list.tsx
8904
- function Zg({ list: e, emptyText: t, renderFooter: n, renderHeaderActions: r, statusOnTop: i, hideModeration: o }) {
8904
+ function Xg({ list: e, emptyText: t, renderFooter: n, renderHeaderActions: r, statusOnTop: i, hideModeration: o }) {
8905
8905
  return e.loading ? /* @__PURE__ */ B(z, { children: [0, 1].map((e) => /* @__PURE__ */ B(c, {
8906
8906
  bordered: !1,
8907
8907
  className: "med-feed-post",
@@ -8922,7 +8922,7 @@ function Zg({ list: e, emptyText: t, renderFooter: n, renderHeaderActions: r, st
8922
8922
  }) : e.items.length === 0 ? /* @__PURE__ */ B(c, {
8923
8923
  bordered: !1,
8924
8924
  children: /* @__PURE__ */ B(p, { description: t })
8925
- }) : /* @__PURE__ */ V(z, { children: [e.items.map((t) => /* @__PURE__ */ B(Xg, {
8925
+ }) : /* @__PURE__ */ V(z, { children: [e.items.map((t) => /* @__PURE__ */ B(Yg, {
8926
8926
  post: t,
8927
8927
  footer: n?.(t),
8928
8928
  headerActions: r?.(t),
@@ -8940,33 +8940,33 @@ function Zg({ list: e, emptyText: t, renderFooter: n, renderHeaderActions: r, st
8940
8940
  }
8941
8941
  //#endregion
8942
8942
  //#region src/features/feed/use-feed-filters.ts
8943
- var Qg = {
8943
+ var Zg = {
8944
8944
  q: "q",
8945
8945
  departmentId: "department",
8946
8946
  hashtag: "hashtag"
8947
8947
  };
8948
- function $g(e) {
8948
+ function Qg(e) {
8949
8949
  return {
8950
- q: e.get(Qg.q),
8951
- departmentId: e.get(Qg.departmentId),
8952
- hashtag: e.get(Qg.hashtag)
8950
+ q: e.get(Zg.q),
8951
+ departmentId: e.get(Zg.departmentId),
8952
+ hashtag: e.get(Zg.hashtag)
8953
8953
  };
8954
8954
  }
8955
- function e_(e) {
8955
+ function $g(e) {
8956
8956
  let t = new URLSearchParams();
8957
- Object.keys(Qg).forEach((n) => {
8957
+ Object.keys(Zg).forEach((n) => {
8958
8958
  let r = e[n];
8959
- r && t.set(Qg[n], r);
8959
+ r && t.set(Zg[n], r);
8960
8960
  });
8961
8961
  let n = t.toString();
8962
8962
  return n ? `?${n}` : "";
8963
8963
  }
8964
- function t_() {
8965
- let [e, t] = ve(), n = $g(e);
8964
+ function e_() {
8965
+ let [e, t] = ve(), n = Qg(e);
8966
8966
  return {
8967
8967
  filters: n,
8968
8968
  setFilters: P((e) => {
8969
- t(e_({
8969
+ t($g({
8970
8970
  ...n,
8971
8971
  ...e
8972
8972
  }).replace(/^\?/, ""));
@@ -8975,7 +8975,7 @@ function t_() {
8975
8975
  }
8976
8976
  //#endregion
8977
8977
  //#region src/features/feed/banner/banner-widget.tsx
8978
- function n_() {
8978
+ function t_() {
8979
8979
  let { api: e } = W(), t = Q(P(() => e.getRightBanner(), [e]), "right-banner"), n = t.error ? void 0 : t.data;
8980
8980
  if (!n?.imageUrl) return null;
8981
8981
  let r = /* @__PURE__ */ B("img", {
@@ -8996,29 +8996,29 @@ function n_() {
8996
8996
  }
8997
8997
  //#endregion
8998
8998
  //#region src/features/feed/events/format-event-time.ts
8999
- var r_ = new Intl.DateTimeFormat("vi-VN", {
8999
+ var n_ = new Intl.DateTimeFormat("vi-VN", {
9000
9000
  day: "2-digit",
9001
9001
  month: "2-digit",
9002
9002
  year: "numeric",
9003
9003
  hour: "2-digit",
9004
9004
  minute: "2-digit"
9005
9005
  });
9006
- function i_(e, t) {
9007
- let n = r_.format(new Date(e));
9008
- return t ? `${n} – ${r_.format(new Date(t))}` : n;
9006
+ function r_(e, t) {
9007
+ let n = n_.format(new Date(e));
9008
+ return t ? `${n} – ${n_.format(new Date(t))}` : n;
9009
9009
  }
9010
- function a_(e, t, n = Date.now()) {
9010
+ function i_(e, t, n = Date.now()) {
9011
9011
  let r = new Date(e);
9012
9012
  return n < r.getTime() ? "upcoming" : n <= +(t ? new Date(t) : new Date(r).setHours(23, 59, 59, 999)) ? "ongoing" : "ended";
9013
9013
  }
9014
9014
  //#endregion
9015
9015
  //#region src/features/feed/events/events-widget.tsx
9016
- var o_ = {
9016
+ var a_ = {
9017
9017
  upcoming: "Sắp diễn ra",
9018
9018
  ongoing: "Đang diễn ra",
9019
9019
  ended: "Đã kết thúc"
9020
9020
  };
9021
- function s_() {
9021
+ function o_() {
9022
9022
  let { api: e } = W(), t = Q(P(() => e.listLatestEvents(), [e]), "latest-events"), [n, r] = R(null), i = !t.error && Array.isArray(t.data) ? t.data[0] : void 0;
9023
9023
  return i ? /* @__PURE__ */ V(z, { children: [/* @__PURE__ */ V("section", {
9024
9024
  className: "med-feed-events",
@@ -9042,7 +9042,7 @@ function s_() {
9042
9042
  children: i.title
9043
9043
  }), /* @__PURE__ */ B("span", {
9044
9044
  className: "med-feed-events__time",
9045
- children: i_(i.startsAt, i.endsAt)
9045
+ children: r_(i.startsAt, i.endsAt)
9046
9046
  })]
9047
9047
  })]
9048
9048
  })]
@@ -9060,11 +9060,11 @@ function s_() {
9060
9060
  },
9061
9061
  onCancel: () => r(null),
9062
9062
  destroyOnClose: !0,
9063
- children: n && /* @__PURE__ */ B(c_, { event: n })
9063
+ children: n && /* @__PURE__ */ B(s_, { event: n })
9064
9064
  })] }) : null;
9065
9065
  }
9066
- function c_({ event: e }) {
9067
- let t = a_(e.startsAt, e.endsAt);
9066
+ function s_({ event: e }) {
9067
+ let t = i_(e.startsAt, e.endsAt);
9068
9068
  return /* @__PURE__ */ V("article", {
9069
9069
  className: "med-feed-event-detail",
9070
9070
  children: [/* @__PURE__ */ V("div", {
@@ -9077,7 +9077,7 @@ function c_({ event: e }) {
9077
9077
  className: "med-feed-event-detail__shade",
9078
9078
  children: [/* @__PURE__ */ B("span", {
9079
9079
  className: `med-feed-event-detail__phase med-feed-event-detail__phase--${t}`,
9080
- children: o_[t]
9080
+ children: a_[t]
9081
9081
  }), /* @__PURE__ */ B("h2", {
9082
9082
  className: "med-feed-event-detail__title",
9083
9083
  children: e.title
@@ -9099,7 +9099,7 @@ function c_({ event: e }) {
9099
9099
  children: "Thời gian"
9100
9100
  }), /* @__PURE__ */ B("span", {
9101
9101
  className: "med-feed-event-detail__value",
9102
- children: i_(e.startsAt, e.endsAt)
9102
+ children: r_(e.startsAt, e.endsAt)
9103
9103
  })]
9104
9104
  })]
9105
9105
  }), e.location && /* @__PURE__ */ V("div", {
@@ -9127,11 +9127,11 @@ function c_({ event: e }) {
9127
9127
  }
9128
9128
  //#endregion
9129
9129
  //#region src/features/feed/feed-page.tsx
9130
- var l_ = 20;
9131
- function u_() {
9132
- let { api: e } = W(), { filters: t, setFilters: n } = t_(), r = Cn(P((n) => e.listFeedPosts({
9130
+ var c_ = 20;
9131
+ function l_() {
9132
+ let { api: e } = W(), { filters: t, setFilters: n } = e_(), r = Cn(P((n) => e.listFeedPosts({
9133
9133
  cursor: n,
9134
- limit: l_,
9134
+ limit: c_,
9135
9135
  q: t.q ?? void 0,
9136
9136
  departmentId: t.departmentId ?? void 0,
9137
9137
  hashtag: t.hashtag ?? void 0
@@ -9158,23 +9158,23 @@ function u_() {
9158
9158
  className: "med-feed-layout__filter",
9159
9159
  children: i
9160
9160
  })
9161
- }), /* @__PURE__ */ B(Zg, {
9161
+ }), /* @__PURE__ */ B(Xg, {
9162
9162
  list: r,
9163
9163
  emptyText: "Chưa có bài viết nào"
9164
9164
  })]
9165
9165
  }), /* @__PURE__ */ V("aside", {
9166
9166
  className: "med-feed-layout__right",
9167
9167
  children: [
9168
- /* @__PURE__ */ B(s_, {}),
9168
+ /* @__PURE__ */ B(o_, {}),
9169
9169
  /* @__PURE__ */ B("hr", { className: "med-feed-layout__divider" }),
9170
- /* @__PURE__ */ B(n_, {})
9170
+ /* @__PURE__ */ B(t_, {})
9171
9171
  ]
9172
9172
  })]
9173
9173
  });
9174
9174
  }
9175
9175
  //#endregion
9176
9176
  //#region src/features/feed/post-detail-page.tsx
9177
- function d_() {
9177
+ function u_() {
9178
9178
  let { postId: e = "" } = _e(), { api: t, basePath: n, me: r } = W(), i = ge(), a = Q(P(() => t.getPost(e), [t, e]), e);
9179
9179
  if (a.loading) return /* @__PURE__ */ B("div", {
9180
9180
  className: "med-feed-column",
@@ -9197,7 +9197,7 @@ function d_() {
9197
9197
  }
9198
9198
  return /* @__PURE__ */ B("div", {
9199
9199
  className: "med-feed-column",
9200
- children: /* @__PURE__ */ B(Xg, {
9200
+ children: /* @__PURE__ */ B(Yg, {
9201
9201
  post: a.data,
9202
9202
  mode: "detail",
9203
9203
  onChange: (e) => a.setData(() => e),
@@ -9207,17 +9207,17 @@ function d_() {
9207
9207
  }
9208
9208
  //#endregion
9209
9209
  //#region src/app/newsfeed-routes.tsx
9210
- function f_() {
9210
+ function d_() {
9211
9211
  return /* @__PURE__ */ B("div", {
9212
9212
  className: "med-feed-content",
9213
9213
  children: /* @__PURE__ */ V(he, { children: [
9214
9214
  /* @__PURE__ */ B(H, {
9215
9215
  index: !0,
9216
- element: /* @__PURE__ */ B(u_, {})
9216
+ element: /* @__PURE__ */ B(l_, {})
9217
9217
  }),
9218
9218
  /* @__PURE__ */ B(H, {
9219
9219
  path: "posts/:postId",
9220
- element: /* @__PURE__ */ B(d_, {})
9220
+ element: /* @__PURE__ */ B(u_, {})
9221
9221
  }),
9222
9222
  /* @__PURE__ */ B(H, {
9223
9223
  path: "*",
@@ -9231,68 +9231,68 @@ function f_() {
9231
9231
  }
9232
9232
  //#endregion
9233
9233
  //#region src/app/newsfeed-module.tsx
9234
- function p_(e) {
9234
+ function f_(e) {
9235
9235
  return /* @__PURE__ */ B(xn, {
9236
9236
  runtimeProps: e,
9237
- children: /* @__PURE__ */ B(f_, {})
9237
+ children: /* @__PURE__ */ B(d_, {})
9238
9238
  });
9239
9239
  }
9240
9240
  //#endregion
9241
9241
  //#region src/features/composer/format-text.ts
9242
- var m_ = (e) => Gt.includes(e), h_ = (e) => Wt.includes(e), g_ = {
9242
+ var p_ = (e) => Gt.includes(e), m_ = (e) => Wt.includes(e), h_ = {
9243
9243
  bold: "**",
9244
9244
  italic: "*",
9245
9245
  underline: "__",
9246
9246
  strike: "~~"
9247
- }, __ = {
9247
+ }, g_ = {
9248
9248
  bold: "chữ đậm",
9249
9249
  italic: "chữ nghiêng",
9250
9250
  underline: "chữ gạch chân",
9251
9251
  strike: "chữ gạch ngang"
9252
9252
  };
9253
- function v_(e, t, n, r) {
9254
- let i = g_[r], a = e.slice(0, t), o = e.slice(t, n), s = e.slice(n);
9253
+ function __(e, t, n, r) {
9254
+ let i = h_[r], a = e.slice(0, t), o = e.slice(t, n), s = e.slice(n);
9255
9255
  if (a.endsWith(i) && s.startsWith(i)) return {
9256
9256
  text: a.slice(0, -i.length) + o + s.slice(i.length),
9257
9257
  selectionStart: t - i.length,
9258
9258
  selectionEnd: n - i.length
9259
9259
  };
9260
- let c = o || __[r];
9260
+ let c = o || g_[r];
9261
9261
  return {
9262
9262
  text: `${a}${i}${c}${i}${s}`,
9263
9263
  selectionStart: t + i.length,
9264
9264
  selectionEnd: t + i.length + c.length
9265
9265
  };
9266
9266
  }
9267
- var y_ = {
9267
+ var v_ = {
9268
9268
  heading: () => "# ",
9269
9269
  bullets: () => "- ",
9270
9270
  numbers: (e) => `${e + 1}. `,
9271
9271
  quote: () => "> "
9272
- }, b_ = {
9272
+ }, y_ = {
9273
9273
  heading: /^#{1,3}\s+/,
9274
9274
  bullets: /^[-•]\s+/,
9275
9275
  numbers: /^\d{1,3}[.)]\s+/,
9276
9276
  quote: /^>\s?/
9277
- }, x_ = /^(#{1,3}\s+|[-•]\s+|\d{1,3}[.)]\s+|>\s?)/;
9278
- function S_(e, t) {
9277
+ }, b_ = /^(#{1,3}\s+|[-•]\s+|\d{1,3}[.)]\s+|>\s?)/;
9278
+ function x_(e, t) {
9279
9279
  let n = 0, r = 0;
9280
9280
  for (; (n = e.indexOf(t, n)) !== -1;) r += 1, n += t.length;
9281
9281
  return r;
9282
9282
  }
9283
- function C_(e, t, n) {
9284
- let r = g_[n];
9285
- return S_(e, r) % 2 == 1 && S_(t, r) > 0;
9283
+ function S_(e, t, n) {
9284
+ let r = h_[n];
9285
+ return x_(e, r) % 2 == 1 && x_(t, r) > 0;
9286
9286
  }
9287
- function w_(e, t, n) {
9287
+ function C_(e, t, n) {
9288
9288
  let r = e.slice(0, t), i = e.slice(n);
9289
- return Object.keys(g_).filter((e) => C_(r, i, e));
9289
+ return Object.keys(h_).filter((e) => S_(r, i, e));
9290
9290
  }
9291
- function T_(e, t) {
9291
+ function w_(e, t) {
9292
9292
  let n = e.lastIndexOf("\n", t - 1) + 1, r = e.indexOf("\n", t), i = e.slice(n, r === -1 ? e.length : r).trimStart();
9293
- return Object.keys(b_).filter((e) => b_[e].test(i));
9293
+ return Object.keys(y_).filter((e) => y_[e].test(i));
9294
9294
  }
9295
- function E_(e, t) {
9295
+ function T_(e, t) {
9296
9296
  let n = e.lastIndexOf("\n", t - 1) + 1, r = e.indexOf("\n", t), i = r === -1 ? e.length : r, a = e.slice(n, i), o = a.match(/^ */)?.[0] ?? "", s = a.slice(o.length), c = s.match(/^(\d{1,3})[.)]\s+/), l = s.match(/^[-•]\s+/), u = s.match(/^>\s?/), d = c?.[0] ?? l?.[0] ?? u?.[0];
9297
9297
  if (!d) return null;
9298
9298
  if (!s.slice(d.length).trim()) return {
@@ -9307,22 +9307,22 @@ function E_(e, t) {
9307
9307
  selectionEnd: t + f.length
9308
9308
  };
9309
9309
  }
9310
- function D_(e, t, n, r) {
9310
+ function E_(e, t, n, r) {
9311
9311
  let i = e.lastIndexOf("\n", t - 1) + 1, a = e.indexOf("\n", n), o = a === -1 ? e.length : a, s = e.slice(i, o).split("\n").map((e) => ({
9312
9312
  indent: e.match(/^ */)?.[0] ?? "",
9313
9313
  rest: e.trimStart()
9314
- })), c = s.every(({ rest: e }) => b_[r].test(e)), l = s.map(({ indent: e, rest: t }, n) => c ? e + t.replace(b_[r], "") : e + y_[r](n) + t.replace(x_, "")).join("\n");
9314
+ })), c = s.every(({ rest: e }) => y_[r].test(e)), l = s.map(({ indent: e, rest: t }, n) => c ? e + t.replace(y_[r], "") : e + v_[r](n) + t.replace(b_, "")).join("\n");
9315
9315
  return {
9316
9316
  text: e.slice(0, i) + l + e.slice(o),
9317
9317
  selectionStart: i,
9318
9318
  selectionEnd: i + l.length
9319
9319
  };
9320
9320
  }
9321
- var O_ = " ";
9322
- function k_(e, t, n, r) {
9321
+ var D_ = " ";
9322
+ function O_(e, t, n, r) {
9323
9323
  let i = e.lastIndexOf("\n", t - 1) + 1, a = e.indexOf("\n", n), o = a === -1 ? e.length : a, s = e.slice(i, o).split("\n"), c = s.map((e) => {
9324
9324
  let t = Math.min(Math.floor((e.match(/^ */)?.[0].length ?? 0) / 2), 4), n = Math.max(0, Math.min(4, t + r));
9325
- return O_.repeat(n) + e.trimStart();
9325
+ return D_.repeat(n) + e.trimStart();
9326
9326
  }), l = c.join("\n"), u = c[0].length - s[0].length;
9327
9327
  return {
9328
9328
  text: e.slice(0, i) + l + e.slice(o),
@@ -9330,18 +9330,18 @@ function k_(e, t, n, r) {
9330
9330
  selectionEnd: Math.max(i, n + l.length - s.join("\n").length)
9331
9331
  };
9332
9332
  }
9333
- function A_(e, t, n, r, i) {
9333
+ function k_(e, t, n, r, i) {
9334
9334
  let a = e.slice(0, t), o = e.slice(n), s = a.lastIndexOf("{");
9335
9335
  if (s !== -1 && a.indexOf("}", s) === -1 && o.startsWith("}")) {
9336
9336
  let i = a.slice(s + 1), c = i.indexOf("|");
9337
9337
  if (c !== -1) {
9338
- let a = i.slice(0, c).split(" "), l = i.slice(c + 1), u = e.slice(t, n), d = m_(r), f = a.filter((e) => e !== r && m_(e) !== d), p = a.includes(r) ? f : [...f, r], m = s + l.length;
9338
+ let a = i.slice(0, c).split(" "), l = i.slice(c + 1), u = e.slice(t, n), d = p_(r), f = a.filter((e) => e !== r && p_(e) !== d), p = a.includes(r) ? f : [...f, r], m = s + l.length;
9339
9339
  if (p.length === 0) return {
9340
9340
  text: e.slice(0, s) + l + u + o.slice(1),
9341
9341
  selectionStart: m,
9342
9342
  selectionEnd: m + u.length
9343
9343
  };
9344
- let h = `{${[...p.filter((e) => !m_(e)), ...p.filter(m_)].join(" ")}|`;
9344
+ let h = `{${[...p.filter((e) => !p_(e)), ...p.filter(p_)].join(" ")}|`;
9345
9345
  return {
9346
9346
  text: `${e.slice(0, s)}${h}${l}${u}}${o.slice(1)}`,
9347
9347
  selectionStart: s + h.length + l.length,
@@ -9356,27 +9356,27 @@ function A_(e, t, n, r, i) {
9356
9356
  selectionEnd: t + c.length + l.length
9357
9357
  };
9358
9358
  }
9359
- function j_(e, t, n, r) {
9360
- return A_(e, t, n, r, "chữ đổi màu");
9359
+ function A_(e, t, n, r) {
9360
+ return k_(e, t, n, r, "chữ đổi màu");
9361
9361
  }
9362
- function M_(e, t, n, r) {
9363
- return A_(e, t, n, r, "chữ đổi cỡ");
9362
+ function j_(e, t, n, r) {
9363
+ return k_(e, t, n, r, "chữ đổi cỡ");
9364
9364
  }
9365
- function N_(e, t) {
9365
+ function M_(e, t) {
9366
9366
  let n = e.slice(0, t), r = n.lastIndexOf("{");
9367
9367
  if (r === -1 || n.indexOf("}", r) !== -1) return [];
9368
9368
  let i = n.slice(r + 1), a = i.indexOf("|");
9369
9369
  return a === -1 ? [] : i.slice(0, a).split(" ");
9370
9370
  }
9371
- function P_(e, t) {
9372
- return N_(e, t).find(h_) ?? null;
9371
+ function N_(e, t) {
9372
+ return M_(e, t).find(m_) ?? null;
9373
9373
  }
9374
- function F_(e, t) {
9375
- return N_(e, t).find(m_) ?? null;
9374
+ function P_(e, t) {
9375
+ return M_(e, t).find(p_) ?? null;
9376
9376
  }
9377
9377
  //#endregion
9378
9378
  //#region src/features/composer/format-toolbar.tsx
9379
- var I_ = [
9379
+ var F_ = [
9380
9380
  {
9381
9381
  format: "bold",
9382
9382
  label: "In đậm (Ctrl+B)",
@@ -9397,7 +9397,7 @@ var I_ = [
9397
9397
  label: "Gạch ngang",
9398
9398
  icon: /* @__PURE__ */ B(wt, {})
9399
9399
  }
9400
- ], L_ = [
9400
+ ], I_ = [
9401
9401
  {
9402
9402
  format: "heading",
9403
9403
  label: "Tiêu đề",
@@ -9421,7 +9421,7 @@ var I_ = [
9421
9421
  children: "❝"
9422
9422
  })
9423
9423
  }
9424
- ], R_ = [
9424
+ ], L_ = [
9425
9425
  {
9426
9426
  color: "red",
9427
9427
  hex: "#dc2626",
@@ -9452,7 +9452,7 @@ var I_ = [
9452
9452
  hex: "#6b7280",
9453
9453
  label: "Xám"
9454
9454
  }
9455
- ], z_ = [
9455
+ ], R_ = [
9456
9456
  {
9457
9457
  size: "sm",
9458
9458
  label: "Nhỏ",
@@ -9469,7 +9469,7 @@ var I_ = [
9469
9469
  preview: 21
9470
9470
  }
9471
9471
  ];
9472
- function B_({ onInline: e, onLines: t, activeInline: n = [], activeLines: r = [], onColor: i, activeColor: a, onIndent: o, onSize: c, activeSize: l, onUndo: u, onRedo: d, canUndo: f, canRedo: p }) {
9472
+ function z_({ onInline: e, onLines: t, activeInline: n = [], activeLines: r = [], onColor: i, activeColor: a, onIndent: o, onSize: c, activeSize: l, onUndo: u, onRedo: d, canUndo: f, canRedo: p }) {
9473
9473
  let m = (e) => e.preventDefault(), h = (e, t, n, r, i, a = !1) => /* @__PURE__ */ B(k, {
9474
9474
  title: e,
9475
9475
  children: /* @__PURE__ */ B(s, {
@@ -9495,7 +9495,7 @@ function B_({ onInline: e, onLines: t, activeInline: n = [], activeLines: r = []
9495
9495
  className: "med-feed-format-bar__divider",
9496
9496
  "aria-hidden": !0
9497
9497
  }),
9498
- I_.map((t) => h(t.label, t.icon, n.includes(t.format), () => e(t.format), t.format)),
9498
+ F_.map((t) => h(t.label, t.icon, n.includes(t.format), () => e(t.format), t.format)),
9499
9499
  /* @__PURE__ */ B(S, {
9500
9500
  trigger: "click",
9501
9501
  placement: "bottom",
@@ -9503,7 +9503,7 @@ function B_({ onInline: e, onLines: t, activeInline: n = [], activeLines: r = []
9503
9503
  className: "med-feed-format-bar__colors",
9504
9504
  role: "menu",
9505
9505
  "aria-label": "Màu chữ",
9506
- children: R_.map((e) => /* @__PURE__ */ B("button", {
9506
+ children: L_.map((e) => /* @__PURE__ */ B("button", {
9507
9507
  type: "button",
9508
9508
  role: "menuitem",
9509
9509
  "aria-label": `Màu ${e.label}`,
@@ -9534,7 +9534,7 @@ function B_({ onInline: e, onLines: t, activeInline: n = [], activeLines: r = []
9534
9534
  className: "med-feed-format-bar__sizes",
9535
9535
  role: "menu",
9536
9536
  "aria-label": "Cỡ chữ",
9537
- children: z_.map((e) => /* @__PURE__ */ V("button", {
9537
+ children: R_.map((e) => /* @__PURE__ */ V("button", {
9538
9538
  type: "button",
9539
9539
  role: "menuitem",
9540
9540
  "aria-label": `Cỡ chữ ${e.label}`,
@@ -9568,7 +9568,7 @@ function B_({ onInline: e, onLines: t, activeInline: n = [], activeLines: r = []
9568
9568
  className: "med-feed-format-bar__divider",
9569
9569
  "aria-hidden": !0
9570
9570
  }),
9571
- L_.map((e) => h(e.label, e.icon, r.includes(e.format), () => t(e.format), e.format)),
9571
+ I_.map((e) => h(e.label, e.icon, r.includes(e.format), () => t(e.format), e.format)),
9572
9572
  h("Thụt đầu dòng", /* @__PURE__ */ B(it, {}), !1, () => o?.(1), "indent"),
9573
9573
  h("Bỏ thụt đầu dòng", /* @__PURE__ */ B(rt, {}), !1, () => o?.(-1), "outdent")
9574
9574
  ]
@@ -9576,10 +9576,10 @@ function B_({ onInline: e, onLines: t, activeInline: n = [], activeLines: r = []
9576
9576
  }
9577
9577
  //#endregion
9578
9578
  //#region src/shared/utils/upload-error.ts
9579
- function V_(e, t) {
9579
+ function B_(e, t) {
9580
9580
  return e instanceof Pt && e.status >= 400 && e.status < 500 ? `${t}: ${e.message}` : `Không tải lên được ${t}`;
9581
9581
  }
9582
- var H_ = [
9582
+ var V_ = [
9583
9583
  {
9584
9584
  key: "image",
9585
9585
  label: "Ảnh",
@@ -9602,11 +9602,11 @@ var H_ = [
9602
9602
  kind: "document"
9603
9603
  }
9604
9604
  ];
9605
- function U_({ count: e, disabled: t, variant: n = "label", onUploadStart: r, onUploaded: i }) {
9605
+ function H_({ count: e, disabled: t, variant: n = "label", onUploadStart: r, onUploaded: i }) {
9606
9606
  let { api: a, me: o } = W(), c = o.mediaLimitsMb ?? Ut, l = ({ file: e }) => {
9607
9607
  let t = e;
9608
9608
  r(), a.uploadMedia(t, t.name).then(i, (e) => {
9609
- j.error(V_(e, t.name)), i(null);
9609
+ j.error(B_(e, t.name)), i(null);
9610
9610
  });
9611
9611
  }, u = (t) => (n, r) => e + r.length > 10 ? (j.warning("Mỗi bài tối đa 10 tệp"), re.LIST_IGNORE) : n.size > c[t] * 1024 * 1024 ? (j.warning(`${n.name}: tối đa ${c[t]} MB`), re.LIST_IGNORE) : !0, d = (e, r) => n === "icon" ? /* @__PURE__ */ B(k, {
9612
9612
  title: e,
@@ -9625,7 +9625,7 @@ function U_({ count: e, disabled: t, variant: n = "label", onUploadStart: r, onU
9625
9625
  disabled: t,
9626
9626
  children: e
9627
9627
  });
9628
- return /* @__PURE__ */ B(z, { children: H_.map((e) => /* @__PURE__ */ B(re, {
9628
+ return /* @__PURE__ */ B(z, { children: V_.map((e) => /* @__PURE__ */ B(re, {
9629
9629
  accept: e.accept,
9630
9630
  multiple: !0,
9631
9631
  showUploadList: !1,
@@ -9634,7 +9634,7 @@ function U_({ count: e, disabled: t, variant: n = "label", onUploadStart: r, onU
9634
9634
  children: d(e.label, e.icon)
9635
9635
  }, e.key)) });
9636
9636
  }
9637
- function W_({ media: e, uploadingCount: t, onRemove: n }) {
9637
+ function U_({ media: e, uploadingCount: t, onRemove: n }) {
9638
9638
  let r = e.filter((e) => e.kind !== "DOCUMENT"), i = e.filter((e) => e.kind === "DOCUMENT");
9639
9639
  return e.length === 0 && t === 0 ? null : /* @__PURE__ */ V("div", {
9640
9640
  className: "med-feed-attached",
@@ -9678,7 +9678,7 @@ function W_({ media: e, uploadingCount: t, onRemove: n }) {
9678
9678
  onClick: () => n(e.id)
9679
9679
  }, "remove")],
9680
9680
  children: /* @__PURE__ */ B(_.Item.Meta, {
9681
- avatar: /* @__PURE__ */ B(fg, { fileName: e.fileName }),
9681
+ avatar: /* @__PURE__ */ B(dg, { fileName: e.fileName }),
9682
9682
  title: e.fileName,
9683
9683
  description: jh(e.fileSize)
9684
9684
  })
@@ -9688,11 +9688,11 @@ function W_({ media: e, uploadingCount: t, onRemove: n }) {
9688
9688
  }
9689
9689
  //#endregion
9690
9690
  //#region src/features/composer/composer-form.tsx
9691
- var G_ = 85, K_ = se(function({ initialPost: e, onDirtyChange: t, onSaved: n, zoomed: r = !1, showPreview: i = !1 }, a) {
9691
+ var W_ = 85, G_ = se(function({ initialPost: e, onDirtyChange: t, onSaved: n, zoomed: r = !1, showPreview: i = !1 }, a) {
9692
9692
  let { api: o, me: c } = W(), l = L(null), u = L(new Map(e?.mentionedUsers.map((e) => [e.fullName, e]))), d = L(crypto.randomUUID()), [f, p] = R(ah(e?.content ?? "", e?.mentionedUsers ?? [])), [m, h] = R(e?.media ?? []), [_, v] = R(0), [y, b] = R(null), [x, C] = R(null), [w, T] = R(""), [E, ee] = R(!1), [D, te] = R(!0), [O, A] = R({
9693
9693
  start: 0,
9694
9694
  end: 0
9695
- }), [re, ie] = R([]), [M, N] = R([]), ae = !!e, oe = !f.trim() && m.length === 0, se = pn(f), P = y !== null || _ > 0, ce = m.length === 0 && f.length < G_ && !f.includes("\n"), ue = w_(f, O.start, O.end), I = T_(f, O.start), de = (e) => {
9695
+ }), [re, ie] = R([]), [M, N] = R([]), ae = !!e, oe = !f.trim() && m.length === 0, se = pn(f), P = y !== null || _ > 0, ce = m.length === 0 && f.length < W_ && !f.includes("\n"), ue = C_(f, O.start, O.end), I = w_(f, O.start), de = (e) => {
9696
9696
  e !== f && (ie((e) => [...e.slice(-99), f]), N([]), p(e));
9697
9697
  }, z = () => {
9698
9698
  if (re.length === 0) return;
@@ -9745,7 +9745,7 @@ var G_ = 85, K_ = se(function({ initialPost: e, onDirtyChange: t, onSaved: n, zo
9745
9745
  }, ge = (e) => {
9746
9746
  let t = me(), n = t?.selectionStart ?? f.length, r = t?.selectionEnd ?? f.length;
9747
9747
  he(e(f, n, r));
9748
- }, _e = (e) => ge((t, n, r) => v_(t, n, r, e)), ve = (e) => ge((t, n, r) => D_(t, n, r, e)), ye = {
9748
+ }, _e = (e) => ge((t, n, r) => __(t, n, r, e)), ve = (e) => ge((t, n, r) => E_(t, n, r, e)), ye = {
9749
9749
  b: "bold",
9750
9750
  i: "italic",
9751
9751
  u: "underline"
@@ -9760,7 +9760,7 @@ var G_ = 85, K_ = se(function({ initialPost: e, onDirtyChange: t, onSaved: n, zo
9760
9760
  return;
9761
9761
  }
9762
9762
  if (e.key === "Enter" && !e.shiftKey && n === r) {
9763
- let t = E_(f, n);
9763
+ let t = T_(f, n);
9764
9764
  if (t) {
9765
9765
  e.preventDefault(), he(t);
9766
9766
  return;
@@ -9805,27 +9805,27 @@ var G_ = 85, K_ = se(function({ initialPost: e, onDirtyChange: t, onSaved: n, zo
9805
9805
  children: [
9806
9806
  /* @__PURE__ */ V("div", {
9807
9807
  className: "med-feed-composer-form__author",
9808
- children: [/* @__PURE__ */ B(Wg, { size: 40 }), /* @__PURE__ */ B("span", {
9808
+ children: [/* @__PURE__ */ B(Ug, { size: 40 }), /* @__PURE__ */ B("span", {
9809
9809
  className: "med-feed-composer-form__author-info",
9810
9810
  children: /* @__PURE__ */ B("span", {
9811
9811
  className: "med-feed-composer-form__author-name",
9812
- children: Kh.name
9812
+ children: Gh.name
9813
9813
  })
9814
9814
  })]
9815
9815
  }),
9816
9816
  /* @__PURE__ */ V("div", {
9817
9817
  className: "med-feed-composer-form__body",
9818
9818
  children: [
9819
- D && /* @__PURE__ */ B(B_, {
9819
+ D && /* @__PURE__ */ B(z_, {
9820
9820
  onInline: _e,
9821
9821
  onLines: ve,
9822
9822
  activeInline: ue,
9823
9823
  activeLines: I,
9824
- onColor: (e) => ge((t, n, r) => j_(t, n, r, e)),
9825
- activeColor: P_(f, O.start),
9826
- onIndent: (e) => ge((t, n, r) => k_(t, n, r, e)),
9827
- onSize: (e) => ge((t, n, r) => M_(t, n, r, e)),
9828
- activeSize: F_(f, O.start),
9824
+ onColor: (e) => ge((t, n, r) => A_(t, n, r, e)),
9825
+ activeColor: N_(f, O.start),
9826
+ onIndent: (e) => ge((t, n, r) => O_(t, n, r, e)),
9827
+ onSize: (e) => ge((t, n, r) => j_(t, n, r, e)),
9828
+ activeSize: P_(f, O.start),
9829
9829
  onUndo: z,
9830
9830
  onRedo: fe,
9831
9831
  canUndo: re.length > 0,
@@ -9864,8 +9864,8 @@ var G_ = 85, K_ = se(function({ initialPost: e, onDirtyChange: t, onSaved: n, zo
9864
9864
  className: "med-feed-composer-form__location-tag",
9865
9865
  children: w
9866
9866
  }),
9867
- se && /* @__PURE__ */ B(lg, { url: se }),
9868
- /* @__PURE__ */ B(W_, {
9867
+ se && /* @__PURE__ */ B(cg, { url: se }),
9868
+ /* @__PURE__ */ B(U_, {
9869
9869
  media: m,
9870
9870
  uploadingCount: _,
9871
9871
  onRemove: (e) => h((t) => t.filter((t) => t.id !== e))
@@ -9954,7 +9954,7 @@ var G_ = 85, K_ = se(function({ initialPost: e, onDirtyChange: t, onSaved: n, zo
9954
9954
  children: "Thêm vào bài viết của bạn"
9955
9955
  }), /* @__PURE__ */ V("span", {
9956
9956
  className: "med-feed-composer-form__add-actions",
9957
- children: [/* @__PURE__ */ B(U_, {
9957
+ children: [/* @__PURE__ */ B(H_, {
9958
9958
  variant: "icon",
9959
9959
  count: m.length + _,
9960
9960
  disabled: y !== null,
@@ -10023,7 +10023,7 @@ var G_ = 85, K_ = se(function({ initialPost: e, onDirtyChange: t, onSaved: n, zo
10023
10023
  }), /* @__PURE__ */ B("aside", {
10024
10024
  className: "med-feed-composer-split__preview",
10025
10025
  "aria-label": "Xem trước bài viết",
10026
- children: f.trim() || m.length > 0 ? /* @__PURE__ */ B(Xg, {
10026
+ children: f.trim() || m.length > 0 ? /* @__PURE__ */ B(Yg, {
10027
10027
  post: Se,
10028
10028
  mode: "preview"
10029
10029
  }) : /* @__PURE__ */ B("div", {
@@ -10035,7 +10035,7 @@ var G_ = 85, K_ = se(function({ initialPost: e, onDirtyChange: t, onSaved: n, zo
10035
10035
  });
10036
10036
  //#endregion
10037
10037
  //#region src/features/composer/create-post-modal.tsx
10038
- function q_({ open: e, initialPost: t, onClose: n, onSaved: r }) {
10038
+ function K_({ open: e, initialPost: t, onClose: n, onSaved: r }) {
10039
10039
  let i = L(!1), a = L(null), [o, c] = R(!1), [l, u] = R(!1), [d, f] = R(!1), [p, m] = R(!1), h = P((e) => {
10040
10040
  i.current = e;
10041
10041
  }, []), g = () => {
@@ -10099,7 +10099,7 @@ function q_({ open: e, initialPost: t, onClose: n, onSaved: r }) {
10099
10099
  onCancel: g,
10100
10100
  closeIcon: /* @__PURE__ */ B(Oe, {}),
10101
10101
  className: d ? "med-feed-portal med-feed-create-modal med-feed-create-modal--fullscreen" : "med-feed-portal med-feed-create-modal",
10102
- children: /* @__PURE__ */ B(K_, {
10102
+ children: /* @__PURE__ */ B(G_, {
10103
10103
  ref: a,
10104
10104
  zoomed: d,
10105
10105
  showPreview: p,
@@ -10143,7 +10143,7 @@ function q_({ open: e, initialPost: t, onClose: n, onSaved: r }) {
10143
10143
  }
10144
10144
  //#endregion
10145
10145
  //#region src/features/composer/create-post-button.tsx
10146
- function J_({ onSaved: e }) {
10146
+ function q_({ onSaved: e }) {
10147
10147
  let { me: t } = W(), [n, r] = R(null);
10148
10148
  return t.canPost ? /* @__PURE__ */ V(z, { children: [/* @__PURE__ */ V(s, {
10149
10149
  type: "primary",
@@ -10153,7 +10153,7 @@ function J_({ onSaved: e }) {
10153
10153
  className: "med-feed-create-button__icon",
10154
10154
  "aria-hidden": !0
10155
10155
  }), "Tạo bài viết"]
10156
- }), /* @__PURE__ */ B(q_, {
10156
+ }), /* @__PURE__ */ B(K_, {
10157
10157
  open: n !== null,
10158
10158
  onClose: () => r(null),
10159
10159
  onSaved: e
@@ -10161,7 +10161,7 @@ function J_({ onSaved: e }) {
10161
10161
  }
10162
10162
  //#endregion
10163
10163
  //#region src/shared/components/page-header.tsx
10164
- function Y_({ title: e, description: t, extra: n }) {
10164
+ function J_({ title: e, description: t, extra: n }) {
10165
10165
  return /* @__PURE__ */ V("div", {
10166
10166
  className: "med-feed-page-header",
10167
10167
  children: [/* @__PURE__ */ V("div", { children: [/* @__PURE__ */ B(A.Title, {
@@ -10176,7 +10176,7 @@ function Y_({ title: e, description: t, extra: n }) {
10176
10176
  }
10177
10177
  //#endregion
10178
10178
  //#region src/features/feed/my-posts-page.tsx
10179
- var X_ = [
10179
+ var Y_ = [
10180
10180
  {
10181
10181
  key: "ALL",
10182
10182
  label: "Tất cả"
@@ -10202,7 +10202,7 @@ var X_ = [
10202
10202
  label: "Đã gỡ"
10203
10203
  }
10204
10204
  ];
10205
- function Z_() {
10205
+ function X_() {
10206
10206
  let { api: e, me: t, isPostFeed: n } = W(), [r, i] = R("ALL"), [a, o] = R(null), c = r === "ALL" ? void 0 : r, l = Cn(P((t) => e.listMyPosts({
10207
10207
  status: c,
10208
10208
  cursor: t
@@ -10217,22 +10217,22 @@ function Z_() {
10217
10217
  return /* @__PURE__ */ V("div", {
10218
10218
  className: "med-feed-my-posts med-feed-stack",
10219
10219
  children: [
10220
- /* @__PURE__ */ B(Y_, {
10220
+ /* @__PURE__ */ B(J_, {
10221
10221
  title: "Bài của tôi",
10222
10222
  description: "Quản lý nháp, bài chờ duyệt và bài đang phát hành của bạn",
10223
- extra: n && /* @__PURE__ */ B(J_, { onSaved: (e) => {
10223
+ extra: n && /* @__PURE__ */ B(q_, { onSaved: (e) => {
10224
10224
  (r === "ALL" || r === e.status) && l.prependItem(e);
10225
10225
  } })
10226
10226
  }),
10227
10227
  /* @__PURE__ */ B(O, {
10228
10228
  activeKey: r,
10229
10229
  onChange: (e) => i(e),
10230
- items: X_.map((e) => ({
10230
+ items: Y_.map((e) => ({
10231
10231
  key: e.key,
10232
10232
  label: e.label
10233
10233
  }))
10234
10234
  }),
10235
- /* @__PURE__ */ B(Zg, {
10235
+ /* @__PURE__ */ B(Xg, {
10236
10236
  list: l,
10237
10237
  emptyText: "Không có bài viết",
10238
10238
  statusOnTop: !0,
@@ -10256,7 +10256,7 @@ function Z_() {
10256
10256
  })
10257
10257
  })
10258
10258
  }),
10259
- /* @__PURE__ */ B(q_, {
10259
+ /* @__PURE__ */ B(K_, {
10260
10260
  open: a !== null,
10261
10261
  initialPost: a ?? void 0,
10262
10262
  onClose: () => o(null),
@@ -10267,7 +10267,7 @@ function Z_() {
10267
10267
  }
10268
10268
  //#endregion
10269
10269
  //#region src/shared/components/image-upload-field.tsx
10270
- function Q_({ value: e, onChange: t, aspectRatio: n = "16 / 9", maxWidth: r }) {
10270
+ function Z_({ value: e, onChange: t, aspectRatio: n = "16 / 9", maxWidth: r }) {
10271
10271
  let { api: i } = W(), a = L(null), [o, s] = R(!1), [c, l] = R(!1), u = async (e) => {
10272
10272
  if (e) {
10273
10273
  if (!e.type.startsWith("image/")) {
@@ -10336,8 +10336,8 @@ function Q_({ value: e, onChange: t, aspectRatio: n = "16 / 9", maxWidth: r }) {
10336
10336
  }
10337
10337
  //#endregion
10338
10338
  //#region src/features/manage/events/events-admin-page.tsx
10339
- var $_ = "DD/MM/YYYY HH:mm";
10340
- function ev() {
10339
+ var Q_ = "DD/MM/YYYY HH:mm";
10340
+ function $_() {
10341
10341
  let { api: e } = W(), t = Q(P(() => e.listManageEvents(), [e]), "manage-events"), [n, r] = R(null), [i, a] = R(!1), [o] = m.useForm(), c = (e) => {
10342
10342
  o.setFieldsValue(e === "new" ? {
10343
10343
  title: "",
@@ -10381,7 +10381,7 @@ function ev() {
10381
10381
  return /* @__PURE__ */ V("div", {
10382
10382
  className: "med-feed-wide med-feed-events-admin",
10383
10383
  children: [
10384
- /* @__PURE__ */ B(Y_, {
10384
+ /* @__PURE__ */ B(J_, {
10385
10385
  title: "Sự kiện",
10386
10386
  description: "Khung bên phải bảng tin hiện sự kiện mới tạo gần nhất",
10387
10387
  extra: /* @__PURE__ */ B(s, {
@@ -10411,7 +10411,7 @@ function ev() {
10411
10411
  {
10412
10412
  title: "Thời gian",
10413
10413
  width: 260,
10414
- render: (e, t) => i_(t.startsAt, t.endsAt)
10414
+ render: (e, t) => r_(t.startsAt, t.endsAt)
10415
10415
  },
10416
10416
  {
10417
10417
  title: "Địa điểm",
@@ -10481,7 +10481,7 @@ function ev() {
10481
10481
  required: !0,
10482
10482
  message: "Cần có ảnh bìa"
10483
10483
  }],
10484
- children: /* @__PURE__ */ B(Q_, { aspectRatio: "16 / 9" })
10484
+ children: /* @__PURE__ */ B(Z_, { aspectRatio: "16 / 9" })
10485
10485
  }),
10486
10486
  /* @__PURE__ */ B(m.Item, {
10487
10487
  name: "title",
@@ -10509,7 +10509,7 @@ function ev() {
10509
10509
  children: /* @__PURE__ */ B(u, {
10510
10510
  size: "large",
10511
10511
  showTime: !0,
10512
- format: $_,
10512
+ format: Q_,
10513
10513
  style: { width: "100%" }
10514
10514
  })
10515
10515
  }), /* @__PURE__ */ B(m.Item, {
@@ -10523,7 +10523,7 @@ function ev() {
10523
10523
  children: /* @__PURE__ */ B(u, {
10524
10524
  size: "large",
10525
10525
  showTime: !0,
10526
- format: $_,
10526
+ format: Q_,
10527
10527
  placeholder: "Không bắt buộc",
10528
10528
  style: { width: "100%" }
10529
10529
  })
@@ -10556,8 +10556,8 @@ function ev() {
10556
10556
  }
10557
10557
  //#endregion
10558
10558
  //#region src/features/manage/posts/author-select.tsx
10559
- var tv = 300;
10560
- function nv({ value: e, onChange: t, placeholder: n = "Tất cả tác giả" }) {
10559
+ var ev = 300;
10560
+ function tv({ value: e, onChange: t, placeholder: n = "Tất cả tác giả" }) {
10561
10561
  let { api: r } = W(), [i, a] = R([]), [o, s] = R(!1), c = L();
10562
10562
  return F(() => () => clearTimeout(c.current), []), /* @__PURE__ */ B(T, {
10563
10563
  showSearch: !0,
@@ -10571,7 +10571,7 @@ function nv({ value: e, onChange: t, placeholder: n = "Tất cả tác giả" })
10571
10571
  r.searchUsers(e).then((e) => {
10572
10572
  a(e), s(!1);
10573
10573
  }, () => s(!1));
10574
- }, tv));
10574
+ }, ev));
10575
10575
  },
10576
10576
  onChange: (e) => t(e),
10577
10577
  notFoundContent: o ? /* @__PURE__ */ B(D, { size: "small" }) : "Gõ tên hoặc mã nhân viên",
@@ -10585,40 +10585,40 @@ function nv({ value: e, onChange: t, placeholder: n = "Tất cả tác giả" })
10585
10585
  }
10586
10586
  //#endregion
10587
10587
  //#region src/shared/utils/date-range.ts
10588
- var rv = {
10588
+ var nv = {
10589
10589
  "7d": "7 ngày gần nhất",
10590
10590
  "30d": "30 ngày gần nhất",
10591
10591
  "90d": "90 ngày gần nhất",
10592
10592
  "this-month": "Tháng này",
10593
10593
  "this-year": "Năm nay"
10594
10594
  };
10595
- function iv(e) {
10595
+ function rv(e) {
10596
10596
  let t = String(e.getMonth() + 1).padStart(2, "0"), n = String(e.getDate()).padStart(2, "0");
10597
10597
  return `${e.getFullYear()}-${t}-${n}`;
10598
10598
  }
10599
- function av(e) {
10599
+ function iv(e) {
10600
10600
  return typeof e == "object";
10601
10601
  }
10602
- function ov(e, t = /* @__PURE__ */ new Date()) {
10603
- if (av(e)) return e;
10602
+ function av(e, t = /* @__PURE__ */ new Date()) {
10603
+ if (iv(e)) return e;
10604
10604
  let n = e, r = new Date(t);
10605
10605
  return n === "this-month" ? r.setDate(1) : n === "this-year" ? r.setMonth(0, 1) : r.setDate(t.getDate() - (Number.parseInt(n, 10) - 1)), {
10606
- from: iv(r),
10607
- to: iv(t)
10606
+ from: rv(r),
10607
+ to: rv(t)
10608
10608
  };
10609
10609
  }
10610
10610
  //#endregion
10611
10611
  //#region src/shared/components/date-range-select.tsx
10612
- var sv = "YYYY-MM-DD";
10613
- function cv({ value: e, onChange: t }) {
10614
- let n = ov(e), r = I(() => Object.fromEntries(Object.keys(rv).map((e) => {
10615
- let { from: t, to: n } = ov(e);
10616
- return [rv[e], [Mt(t, sv), Mt(n, sv)]];
10612
+ var ov = "YYYY-MM-DD";
10613
+ function sv({ value: e, onChange: t }) {
10614
+ let n = av(e), r = I(() => Object.fromEntries(Object.keys(nv).map((e) => {
10615
+ let { from: t, to: n } = av(e);
10616
+ return [nv[e], [Mt(t, ov), Mt(n, ov)]];
10617
10617
  })), []);
10618
10618
  return /* @__PURE__ */ B("span", {
10619
10619
  className: "med-feed-date-range med-feed-pill-fields",
10620
10620
  children: /* @__PURE__ */ B(u.RangePicker, {
10621
- value: [Mt(n.from, sv), Mt(n.to, sv)],
10621
+ value: [Mt(n.from, ov), Mt(n.to, ov)],
10622
10622
  format: "DD/MM/YYYY",
10623
10623
  allowClear: !1,
10624
10624
  ranges: r,
@@ -10627,8 +10627,8 @@ function cv({ value: e, onChange: t }) {
10627
10627
  onChange: (e) => {
10628
10628
  let [n, r] = e ?? [];
10629
10629
  n && r && t({
10630
- from: n.format(sv),
10631
- to: r.format(sv)
10630
+ from: n.format(ov),
10631
+ to: r.format(ov)
10632
10632
  });
10633
10633
  }
10634
10634
  })
@@ -10636,7 +10636,7 @@ function cv({ value: e, onChange: t }) {
10636
10636
  }
10637
10637
  //#endregion
10638
10638
  //#region src/features/manage/posts/post-summary-cell.tsx
10639
- function lv({ post: e, onOpen: t }) {
10639
+ function cv({ post: e, onOpen: t }) {
10640
10640
  let n = new Map(e.mentionedUsers.map((e) => [e.id, e.fullName])), r = e.media.find((e) => e.kind === "IMAGE");
10641
10641
  return /* @__PURE__ */ V("button", {
10642
10642
  type: "button",
@@ -10665,7 +10665,7 @@ function lv({ post: e, onOpen: t }) {
10665
10665
  }
10666
10666
  //#endregion
10667
10667
  //#region src/features/manage/posts/review-drawer.tsx
10668
- function uv({ post: e, onClose: t, onChanged: n, onRemoved: r, onEdit: i, readOnly: a = !1 }) {
10668
+ function lv({ post: e, onClose: t, onChanged: n, onRemoved: r, onEdit: i, readOnly: a = !1 }) {
10669
10669
  let { api: o } = W(), [c, l] = R(!1), u = async (e, r) => {
10670
10670
  l(!0);
10671
10671
  try {
@@ -10676,7 +10676,7 @@ function uv({ post: e, onClose: t, onChanged: n, onRemoved: r, onEdit: i, readOn
10676
10676
  l(!1);
10677
10677
  }
10678
10678
  }, f = e && /* @__PURE__ */ V(ee, { children: [
10679
- /* @__PURE__ */ B(Ug, {
10679
+ /* @__PURE__ */ B(Hg, {
10680
10680
  post: e,
10681
10681
  labelled: !0,
10682
10682
  onRemoved: (e) => {
@@ -10736,7 +10736,7 @@ function uv({ post: e, onClose: t, onChanged: n, onRemoved: r, onEdit: i, readOn
10736
10736
  extra: a ? void 0 : f,
10737
10737
  destroyOnClose: !0,
10738
10738
  className: "med-feed-portal med-feed-review-drawer",
10739
- children: [e && /* @__PURE__ */ B(Xg, {
10739
+ children: [e && /* @__PURE__ */ B(Yg, {
10740
10740
  post: e,
10741
10741
  mode: "preview"
10742
10742
  }), e && !a && !e.commentsLocked && e.commentCount > 0 && /* @__PURE__ */ V("section", {
@@ -10744,7 +10744,7 @@ function uv({ post: e, onClose: t, onChanged: n, onRemoved: r, onEdit: i, readOn
10744
10744
  children: [/* @__PURE__ */ B(A.Title, {
10745
10745
  level: 5,
10746
10746
  children: "Bình luận"
10747
- }), /* @__PURE__ */ B(Vh, {
10747
+ }), /* @__PURE__ */ B(Bh, {
10748
10748
  post: e,
10749
10749
  moderate: !0,
10750
10750
  onCommentCountChange: (t) => n({
@@ -10757,7 +10757,7 @@ function uv({ post: e, onClose: t, onChanged: n, onRemoved: r, onEdit: i, readOn
10757
10757
  }
10758
10758
  //#endregion
10759
10759
  //#region src/features/manage/posts/manage-posts-page.tsx
10760
- var dv = 10, fv = [
10760
+ var uv = 10, dv = [
10761
10761
  {
10762
10762
  key: "PENDING",
10763
10763
  label: "Chờ duyệt",
@@ -10795,14 +10795,14 @@ var dv = 10, fv = [
10795
10795
  tone: "all"
10796
10796
  }
10797
10797
  ];
10798
- function pv() {
10799
- let { api: e } = W(), [t, n] = R("30d"), [r, i] = R("PENDING"), [a, o] = R(), [c, l] = R(""), [u, d] = R(""), [f, p] = R(1), [m, h] = R([]), [_, v] = R(null), [y, b] = R(null), [x, S] = R(null), C = I(() => ov(t), [t]), w = Q(P(() => e.listManagePosts({
10798
+ function fv() {
10799
+ let { api: e } = W(), [t, n] = R("30d"), [r, i] = R("PENDING"), [a, o] = R(), [c, l] = R(""), [u, d] = R(""), [f, p] = R(1), [m, h] = R([]), [_, v] = R(null), [y, b] = R(null), [x, S] = R(null), C = I(() => av(t), [t]), w = Q(P(() => e.listManagePosts({
10800
10800
  ...C,
10801
10801
  status: r === "ALL" ? void 0 : r,
10802
10802
  authorId: a,
10803
10803
  q: c || void 0,
10804
10804
  page: f,
10805
- pageSize: dv
10805
+ pageSize: uv
10806
10806
  }), [
10807
10807
  e,
10808
10808
  C,
@@ -10858,10 +10858,10 @@ function pv() {
10858
10858
  return /* @__PURE__ */ V("div", {
10859
10859
  className: "med-feed-wide med-feed-manage",
10860
10860
  children: [
10861
- /* @__PURE__ */ B(Y_, {
10861
+ /* @__PURE__ */ B(J_, {
10862
10862
  title: "Trung tâm duyệt bài viết",
10863
10863
  description: "Duyệt, phát hành, gỡ và theo dõi tương tác của mọi bài viết trên bảng tin",
10864
- extra: /* @__PURE__ */ B(J_, { onSaved: E })
10864
+ extra: /* @__PURE__ */ B(q_, { onSaved: E })
10865
10865
  }),
10866
10866
  /* @__PURE__ */ V("section", {
10867
10867
  className: "med-feed-manage__panel",
@@ -10870,7 +10870,7 @@ function pv() {
10870
10870
  className: "med-feed-manage__tabs",
10871
10871
  role: "tablist",
10872
10872
  "aria-label": "Lọc theo trạng thái",
10873
- children: fv.map((e) => {
10873
+ children: dv.map((e) => {
10874
10874
  let t = e.key === "ALL" ? T.data ? T.data.PENDING + T.data.APPROVED + T.data.PUBLISHED + T.data.UNPUBLISHED + T.data.DELETED : void 0 : T.data?.[e.key], n = r === e.key;
10875
10875
  return /* @__PURE__ */ V("button", {
10876
10876
  type: "button",
@@ -10900,15 +10900,15 @@ function pv() {
10900
10900
  d(e.target.value), e.target.value || D(l)("");
10901
10901
  }
10902
10902
  }),
10903
- /* @__PURE__ */ B(cv, {
10903
+ /* @__PURE__ */ B(sv, {
10904
10904
  value: t,
10905
10905
  onChange: D(n)
10906
10906
  }),
10907
- /* @__PURE__ */ B(nv, {
10907
+ /* @__PURE__ */ B(tv, {
10908
10908
  value: a,
10909
10909
  onChange: D(o)
10910
10910
  }),
10911
- (c || a || JSON.stringify(C) !== JSON.stringify(ov("30d"))) && /* @__PURE__ */ B(s, {
10911
+ (c || a || JSON.stringify(C) !== JSON.stringify(av("30d"))) && /* @__PURE__ */ B(s, {
10912
10912
  type: "link",
10913
10913
  icon: /* @__PURE__ */ B(De, {}),
10914
10914
  className: "med-feed-manage__clear",
@@ -10942,7 +10942,7 @@ function pv() {
10942
10942
  {
10943
10943
  title: "Bài viết",
10944
10944
  key: "content",
10945
- render: (e, t) => /* @__PURE__ */ B(lv, {
10945
+ render: (e, t) => /* @__PURE__ */ B(cv, {
10946
10946
  post: t,
10947
10947
  onOpen: v
10948
10948
  })
@@ -10965,10 +10965,10 @@ function pv() {
10965
10965
  width: 130,
10966
10966
  render: (e, t) => /* @__PURE__ */ V("span", {
10967
10967
  className: "med-feed-table-status",
10968
- children: [/* @__PURE__ */ B(Kg, {
10968
+ children: [/* @__PURE__ */ B(Gg, {
10969
10969
  status: t.status,
10970
10970
  short: !0
10971
- }), t.pinnedAt && t.status === "PUBLISHED" && /* @__PURE__ */ B(Gg, {})]
10971
+ }), t.pinnedAt && t.status === "PUBLISHED" && /* @__PURE__ */ B(Wg, {})]
10972
10972
  })
10973
10973
  },
10974
10974
  {
@@ -11021,7 +11021,7 @@ function pv() {
11021
11021
  n.status === "UNPUBLISHED" && /* @__PURE__ */ V(z, { children: [
11022
11022
  A(n, "Sửa bài", /* @__PURE__ */ B(Fe, {}), () => S(n)),
11023
11023
  A(n, "Gửi duyệt lại", /* @__PURE__ */ B(yt, {}), () => void O(n, () => e.submitPost(n.id), "Đã gửi duyệt lại"), "primary"),
11024
- A(n, "Xoá bài", /* @__PURE__ */ B(Me, {}), () => Bg(() => O(n, () => e.deletePost(n.id), "Đã xoá bài viết")))
11024
+ A(n, "Xoá bài", /* @__PURE__ */ B(Me, {}), () => zg(() => O(n, () => e.deletePost(n.id), "Đã xoá bài viết")))
11025
11025
  ] }),
11026
11026
  A(n, "Xem chi tiết", /* @__PURE__ */ B(ze, {}), () => v(n))
11027
11027
  ]
@@ -11039,7 +11039,7 @@ function pv() {
11039
11039
  scroll: { x: 1040 },
11040
11040
  pagination: {
11041
11041
  current: f,
11042
- pageSize: dv,
11042
+ pageSize: uv,
11043
11043
  total: w.data?.total ?? 0,
11044
11044
  showSizeChanger: !1,
11045
11045
  showTotal: (e, [t, n]) => `Hiển thị ${t}–${n} trong ${$(e)} bài viết`,
@@ -11050,14 +11050,14 @@ function pv() {
11050
11050
  })
11051
11051
  ]
11052
11052
  }),
11053
- /* @__PURE__ */ B(uv, {
11053
+ /* @__PURE__ */ B(lv, {
11054
11054
  post: _,
11055
11055
  onClose: () => v(null),
11056
11056
  onChanged: E,
11057
11057
  onRemoved: E,
11058
11058
  onEdit: S
11059
11059
  }),
11060
- /* @__PURE__ */ B(q_, {
11060
+ /* @__PURE__ */ B(K_, {
11061
11061
  open: x !== null,
11062
11062
  initialPost: x ?? void 0,
11063
11063
  onClose: () => S(null),
@@ -11068,8 +11068,8 @@ function pv() {
11068
11068
  }
11069
11069
  //#endregion
11070
11070
  //#region src/features/manage/banner/banner-settings-page.tsx
11071
- var mv = /^https?:\/\/\S+$/;
11072
- function hv() {
11071
+ var pv = /^https?:\/\/\S+$/;
11072
+ function mv() {
11073
11073
  let { api: e } = W(), t = Q(P(() => e.getRightBanner(), [e]), "banner-settings"), [n] = m.useForm(), [r, i] = R(!1), a = t.data?.imageUrl ? t.data : null;
11074
11074
  F(() => {
11075
11075
  t.data && n.setFieldsValue({
@@ -11102,7 +11102,7 @@ function hv() {
11102
11102
  };
11103
11103
  return /* @__PURE__ */ V("div", {
11104
11104
  className: "med-feed-banner-settings",
11105
- children: [/* @__PURE__ */ B(Y_, {
11105
+ children: [/* @__PURE__ */ B(J_, {
11106
11106
  title: "Banner bên phải",
11107
11107
  description: "Ảnh quảng cáo hiện dưới khung sự kiện ở cột phải bảng tin"
11108
11108
  }), /* @__PURE__ */ B("section", {
@@ -11120,7 +11120,7 @@ function hv() {
11120
11120
  required: !0,
11121
11121
  message: "Cần chọn ảnh banner"
11122
11122
  }],
11123
- children: /* @__PURE__ */ B(Q_, {
11123
+ children: /* @__PURE__ */ B(Z_, {
11124
11124
  aspectRatio: "4 / 7",
11125
11125
  maxWidth: 280
11126
11126
  })
@@ -11129,7 +11129,7 @@ function hv() {
11129
11129
  name: "linkUrl",
11130
11130
  label: "Đường dẫn khi bấm vào (không bắt buộc)",
11131
11131
  rules: [{
11132
- pattern: mv,
11132
+ pattern: pv,
11133
11133
  message: "Đường dẫn phải bắt đầu bằng http:// hoặc https://"
11134
11134
  }],
11135
11135
  children: /* @__PURE__ */ B(g, {
@@ -11165,7 +11165,7 @@ function hv() {
11165
11165
  }
11166
11166
  //#endregion
11167
11167
  //#region src/features/manage/settings/settings-page.tsx
11168
- function gv() {
11168
+ function hv() {
11169
11169
  let { basePath: e } = W(), t = [{
11170
11170
  to: `${`${e.replace(/\/+$/, "")}/settings`}/banner`,
11171
11171
  label: "Banner"
@@ -11188,19 +11188,19 @@ function gv() {
11188
11188
  })
11189
11189
  }), /* @__PURE__ */ B(H, {
11190
11190
  path: "banner",
11191
- element: /* @__PURE__ */ B(hv, {})
11191
+ element: /* @__PURE__ */ B(mv, {})
11192
11192
  })] })]
11193
11193
  });
11194
11194
  }
11195
11195
  //#endregion
11196
11196
  //#region src/features/manage/reports/overview-cards.tsx
11197
- var _v = {
11197
+ var gv = {
11198
11198
  ZALO: "Zalo",
11199
11199
  FACEBOOK: "Facebook",
11200
11200
  CHAT: "Chat",
11201
11201
  LINK: "Liên kết"
11202
11202
  };
11203
- function vv({ title: e, value: t, icon: n, tone: r, detail: i, loading: a }) {
11203
+ function _v({ title: e, value: t, icon: n, tone: r, detail: i, loading: a }) {
11204
11204
  return /* @__PURE__ */ V("div", {
11205
11205
  className: `med-feed-kpi med-feed-kpi--${r}`,
11206
11206
  children: [/* @__PURE__ */ B("span", {
@@ -11226,7 +11226,7 @@ function vv({ title: e, value: t, icon: n, tone: r, detail: i, loading: a }) {
11226
11226
  })]
11227
11227
  });
11228
11228
  }
11229
- function yv({ overview: e, loading: t }) {
11229
+ function vv({ overview: e, loading: t }) {
11230
11230
  let n = _n.filter((t) => (e?.reactionsByType[t] ?? 0) > 0), r = e?.postsByStatus ?? {}, i = [
11231
11231
  "ZALO",
11232
11232
  "FACEBOOK",
@@ -11236,7 +11236,7 @@ function yv({ overview: e, loading: t }) {
11236
11236
  return /* @__PURE__ */ V("div", {
11237
11237
  className: "med-feed-kpis",
11238
11238
  children: [
11239
- /* @__PURE__ */ B(vv, {
11239
+ /* @__PURE__ */ B(_v, {
11240
11240
  title: "Bài viết",
11241
11241
  tone: "posts",
11242
11242
  value: e?.postCount,
@@ -11244,15 +11244,15 @@ function yv({ overview: e, loading: t }) {
11244
11244
  loading: t,
11245
11245
  detail: `${$(r.PUBLISHED ?? 0)} đang phát hành · ${$(r.UNPUBLISHED ?? 0)} đã gỡ · ${$(r.PENDING ?? 0)} chờ duyệt`
11246
11246
  }),
11247
- /* @__PURE__ */ B(vv, {
11247
+ /* @__PURE__ */ B(_v, {
11248
11248
  title: "Reaction",
11249
11249
  tone: "reactions",
11250
11250
  value: e?.reactionTotal,
11251
11251
  icon: /* @__PURE__ */ B($e, {}),
11252
11252
  loading: t,
11253
- detail: n.length > 0 ? n.map((t) => `${Sg[t].label} ${$(e?.reactionsByType[t] ?? 0)}`).join(" · ") : "Chưa có cảm xúc nào"
11253
+ detail: n.length > 0 ? n.map((t) => `${xg[t].label} ${$(e?.reactionsByType[t] ?? 0)}`).join(" · ") : "Chưa có cảm xúc nào"
11254
11254
  }),
11255
- /* @__PURE__ */ B(vv, {
11255
+ /* @__PURE__ */ B(_v, {
11256
11256
  title: "Bình luận",
11257
11257
  tone: "comments",
11258
11258
  value: e?.commentCount,
@@ -11260,20 +11260,20 @@ function yv({ overview: e, loading: t }) {
11260
11260
  loading: t,
11261
11261
  detail: `${$(e?.rootCommentCount ?? 0)} bình luận · ${$(e?.replyCount ?? 0)} trả lời`
11262
11262
  }),
11263
- /* @__PURE__ */ B(vv, {
11263
+ /* @__PURE__ */ B(_v, {
11264
11264
  title: "Chia sẻ",
11265
11265
  tone: "shares",
11266
11266
  value: e?.shareTotal,
11267
11267
  icon: /* @__PURE__ */ B(xt, {}),
11268
11268
  loading: t,
11269
- detail: i.length > 0 ? i.map((t) => `${_v[t]} ${$(e?.sharesByChannel?.[t] ?? 0)}`).join(" · ") : "Chưa có lượt chia sẻ"
11269
+ detail: i.length > 0 ? i.map((t) => `${gv[t]} ${$(e?.sharesByChannel?.[t] ?? 0)}`).join(" · ") : "Chưa có lượt chia sẻ"
11270
11270
  })
11271
11271
  ]
11272
11272
  });
11273
11273
  }
11274
11274
  //#endregion
11275
11275
  //#region src/features/manage/reports/period-switch.tsx
11276
- var bv = [
11276
+ var yv = [
11277
11277
  {
11278
11278
  value: "day",
11279
11279
  label: "Ngày"
@@ -11287,33 +11287,33 @@ var bv = [
11287
11287
  label: "Tháng"
11288
11288
  }
11289
11289
  ];
11290
- function xv(e) {
11290
+ function bv(e) {
11291
11291
  let t = String(e.getMonth() + 1).padStart(2, "0");
11292
11292
  return `${e.getFullYear()}-${t}-${String(e.getDate()).padStart(2, "0")}`;
11293
11293
  }
11294
- function Sv(e, t = /* @__PURE__ */ new Date()) {
11294
+ function xv(e, t = /* @__PURE__ */ new Date()) {
11295
11295
  let n = new Date(t);
11296
11296
  return e === "week" && n.setDate(t.getDate() - (t.getDay() + 6) % 7), e === "month" && n.setDate(1), {
11297
- from: xv(n),
11298
- to: xv(t)
11297
+ from: bv(n),
11298
+ to: bv(t)
11299
11299
  };
11300
11300
  }
11301
- function Cv({ value: e, onChange: t }) {
11302
- let n = ov(e), r = bv.find(({ value: e }) => {
11303
- let t = Sv(e);
11301
+ function Sv({ value: e, onChange: t }) {
11302
+ let n = av(e), r = yv.find(({ value: e }) => {
11303
+ let t = xv(e);
11304
11304
  return t.from === n.from && t.to === n.to;
11305
11305
  })?.value;
11306
11306
  return /* @__PURE__ */ B(C.Group, {
11307
11307
  className: "med-feed-segmented",
11308
11308
  optionType: "button",
11309
- options: bv,
11309
+ options: yv,
11310
11310
  value: r,
11311
- onChange: (e) => t(Sv(e.target.value))
11311
+ onChange: (e) => t(xv(e.target.value))
11312
11312
  });
11313
11313
  }
11314
11314
  //#endregion
11315
11315
  //#region src/features/manage/reports/top-posts-table.tsx
11316
- var wv = 10, Tv = [
11316
+ var Cv = 10, wv = [
11317
11317
  {
11318
11318
  value: "total",
11319
11319
  label: "Tổng tương tác"
@@ -11327,13 +11327,13 @@ var wv = 10, Tv = [
11327
11327
  label: "Bình luận"
11328
11328
  }
11329
11329
  ];
11330
- function Ev({ range: e }) {
11330
+ function Tv({ range: e }) {
11331
11331
  let { api: t } = W(), [n, r] = R("total"), [i, a] = R({
11332
11332
  from: e.from,
11333
11333
  to: e.to
11334
11334
  }), [o, c] = R(""), [l, u] = R(""), [d, f] = R(null), p = I(() => ({
11335
11335
  ...e,
11336
- ...ov(i),
11336
+ ...av(i),
11337
11337
  ...l ? { q: l } : {}
11338
11338
  }), [
11339
11339
  e,
@@ -11342,7 +11342,7 @@ function Ev({ range: e }) {
11342
11342
  ]), m = Q(P(() => t.getTopPosts({
11343
11343
  ...p,
11344
11344
  sortBy: n,
11345
- limit: wv
11345
+ limit: Cv
11346
11346
  }), [
11347
11347
  t,
11348
11348
  p,
@@ -11363,18 +11363,18 @@ function Ev({ range: e }) {
11363
11363
  c(e.target.value), e.target.value || u("");
11364
11364
  }
11365
11365
  }),
11366
- /* @__PURE__ */ B(Cv, {
11366
+ /* @__PURE__ */ B(Sv, {
11367
11367
  value: i,
11368
11368
  onChange: a
11369
11369
  }),
11370
- /* @__PURE__ */ B(cv, {
11370
+ /* @__PURE__ */ B(sv, {
11371
11371
  value: i,
11372
11372
  onChange: a
11373
11373
  }),
11374
11374
  /* @__PURE__ */ B(T, {
11375
11375
  value: n,
11376
11376
  onChange: r,
11377
- options: Tv,
11377
+ options: wv,
11378
11378
  style: { minWidth: 170 },
11379
11379
  "aria-label": "Xếp theo"
11380
11380
  })
@@ -11401,7 +11401,7 @@ function Ev({ range: e }) {
11401
11401
  {
11402
11402
  title: "Bài viết",
11403
11403
  key: "post",
11404
- render: (e, t) => /* @__PURE__ */ B(lv, {
11404
+ render: (e, t) => /* @__PURE__ */ B(cv, {
11405
11405
  post: t,
11406
11406
  onOpen: f
11407
11407
  })
@@ -11466,7 +11466,7 @@ function Ev({ range: e }) {
11466
11466
  }
11467
11467
  ]
11468
11468
  }),
11469
- /* @__PURE__ */ B(uv, {
11469
+ /* @__PURE__ */ B(lv, {
11470
11470
  post: d,
11471
11471
  onClose: () => f(null),
11472
11472
  onChanged: () => m.reload(),
@@ -11477,14 +11477,14 @@ function Ev({ range: e }) {
11477
11477
  }
11478
11478
  //#endregion
11479
11479
  //#region src/features/manage/reports/top-users-table.tsx
11480
- var Dv = 10;
11481
- function Ov({ range: e }) {
11480
+ var Ev = 10;
11481
+ function Dv({ range: e }) {
11482
11482
  let { api: t } = W(), [n, r] = R({
11483
11483
  from: e.from,
11484
11484
  to: e.to
11485
11485
  }), [i, a] = R(), [o, s] = R(null), c = I(() => ({
11486
11486
  ...e,
11487
- ...ov(n),
11487
+ ...av(n),
11488
11488
  ...i ? { userId: i } : {}
11489
11489
  }), [
11490
11490
  e,
@@ -11492,22 +11492,22 @@ function Ov({ range: e }) {
11492
11492
  i
11493
11493
  ]), l = Q(P(() => t.getTopUsers({
11494
11494
  ...c,
11495
- limit: Dv
11495
+ limit: Ev
11496
11496
  }), [t, c]), JSON.stringify(c));
11497
11497
  return /* @__PURE__ */ V(z, { children: [
11498
11498
  /* @__PURE__ */ V("div", {
11499
11499
  className: "med-feed-report-toolbar med-feed-pill-fields",
11500
11500
  children: [
11501
- /* @__PURE__ */ B(nv, {
11501
+ /* @__PURE__ */ B(tv, {
11502
11502
  value: i,
11503
11503
  onChange: a,
11504
11504
  placeholder: "Tất cả nhân viên"
11505
11505
  }),
11506
- /* @__PURE__ */ B(Cv, {
11506
+ /* @__PURE__ */ B(Sv, {
11507
11507
  value: n,
11508
11508
  onChange: r
11509
11509
  }),
11510
- /* @__PURE__ */ B(cv, {
11510
+ /* @__PURE__ */ B(sv, {
11511
11511
  value: n,
11512
11512
  onChange: r
11513
11513
  })
@@ -11546,7 +11546,7 @@ function Ov({ range: e }) {
11546
11546
  {
11547
11547
  title: "Bài tương tác nhiều nhất",
11548
11548
  key: "topPost",
11549
- render: (e, t) => t.topPost ? /* @__PURE__ */ B(lv, {
11549
+ render: (e, t) => t.topPost ? /* @__PURE__ */ B(cv, {
11550
11550
  post: t.topPost.post,
11551
11551
  onOpen: s
11552
11552
  }) : /* @__PURE__ */ B("span", {
@@ -11584,7 +11584,7 @@ function Ov({ range: e }) {
11584
11584
  }
11585
11585
  ]
11586
11586
  }),
11587
- /* @__PURE__ */ B(uv, {
11587
+ /* @__PURE__ */ B(lv, {
11588
11588
  post: o,
11589
11589
  onClose: () => s(null),
11590
11590
  onChanged: () => l.reload(),
@@ -11595,11 +11595,11 @@ function Ov({ range: e }) {
11595
11595
  }
11596
11596
  //#endregion
11597
11597
  //#region src/features/manage/reports/trend-chart.tsx
11598
- var kv = [
11598
+ var Ov = [
11599
11599
  "#7c3aed",
11600
11600
  "#2563eb",
11601
11601
  "#0d9488"
11602
- ], Av = [
11602
+ ], kv = [
11603
11603
  {
11604
11604
  label: "Ngày",
11605
11605
  value: "day"
@@ -11613,17 +11613,17 @@ var kv = [
11613
11613
  value: "month"
11614
11614
  }
11615
11615
  ];
11616
- function jv(e, t) {
11616
+ function Av(e, t) {
11617
11617
  let [n, r, i] = e.slice(0, 10).split("-");
11618
11618
  return t === "month" ? `${r}/${n}` : t === "week" ? `Tuần ${i}/${r}` : `${i}/${r}`;
11619
11619
  }
11620
- function Mv({ range: e }) {
11620
+ function jv({ range: e }) {
11621
11621
  let { api: t } = W(), [n, r] = R("day"), [i, a] = R({
11622
11622
  from: e.from,
11623
11623
  to: e.to
11624
11624
  }), o = I(() => ({
11625
11625
  ...e,
11626
- ...ov(i)
11626
+ ...av(i)
11627
11627
  }), [e, i]), [l, u] = R(!1), d = Q(P(() => t.getReportsTimeseries({
11628
11628
  ...o,
11629
11629
  groupBy: n
@@ -11631,14 +11631,14 @@ function Mv({ range: e }) {
11631
11631
  t,
11632
11632
  o,
11633
11633
  n
11634
- ]), `${JSON.stringify(o)}|${n}`), f = d.data ?? [], m = f.map((e) => jv(e.bucket, n)), h = {
11634
+ ]), `${JSON.stringify(o)}|${n}`), f = d.data ?? [], m = f.map((e) => Av(e.bucket, n)), h = {
11635
11635
  chart: {
11636
11636
  type: "line",
11637
11637
  toolbar: { show: !1 },
11638
11638
  zoom: { enabled: !1 },
11639
11639
  fontFamily: "inherit"
11640
11640
  },
11641
- colors: kv,
11641
+ colors: Ov,
11642
11642
  stroke: {
11643
11643
  width: 2,
11644
11644
  curve: "smooth"
@@ -11684,7 +11684,7 @@ function Mv({ range: e }) {
11684
11684
  extra: /* @__PURE__ */ V(ee, {
11685
11685
  wrap: !0,
11686
11686
  children: [
11687
- /* @__PURE__ */ B(cv, {
11687
+ /* @__PURE__ */ B(sv, {
11688
11688
  value: i,
11689
11689
  onChange: a
11690
11690
  }),
@@ -11692,7 +11692,7 @@ function Mv({ range: e }) {
11692
11692
  size: "small",
11693
11693
  className: "med-feed-segmented",
11694
11694
  optionType: "button",
11695
- options: Av,
11695
+ options: kv,
11696
11696
  value: n,
11697
11697
  onChange: (e) => r(e.target.value)
11698
11698
  }),
@@ -11718,7 +11718,7 @@ function Mv({ range: e }) {
11718
11718
  {
11719
11719
  title: "Thời gian",
11720
11720
  key: "bucket",
11721
- render: (e, t) => jv(t.bucket, n)
11721
+ render: (e, t) => Av(t.bucket, n)
11722
11722
  },
11723
11723
  {
11724
11724
  title: "Reaction",
@@ -11749,36 +11749,36 @@ function Mv({ range: e }) {
11749
11749
  }
11750
11750
  //#endregion
11751
11751
  //#region src/features/manage/reports/reports-page.tsx
11752
- function Nv() {
11753
- let { api: e } = W(), [t, n] = R("30d"), r = I(() => ov(t), [t]), i = Q(P(() => e.getReportsOverview(r), [e, r]), JSON.stringify(r));
11752
+ function Mv() {
11753
+ let { api: e } = W(), [t, n] = R("30d"), r = I(() => av(t), [t]), i = Q(P(() => e.getReportsOverview(r), [e, r]), JSON.stringify(r));
11754
11754
  return /* @__PURE__ */ V("div", {
11755
11755
  className: "med-feed-wide",
11756
- children: [/* @__PURE__ */ B(Y_, {
11756
+ children: [/* @__PURE__ */ B(J_, {
11757
11757
  title: "Thống kê & báo cáo",
11758
11758
  description: "Tương tác trên bảng tin nội bộ theo khoảng thời gian",
11759
- extra: /* @__PURE__ */ B(cv, {
11759
+ extra: /* @__PURE__ */ B(sv, {
11760
11760
  value: t,
11761
11761
  onChange: n
11762
11762
  })
11763
11763
  }), /* @__PURE__ */ V("div", {
11764
11764
  className: "med-feed-stack",
11765
11765
  children: [
11766
- /* @__PURE__ */ B(yv, {
11766
+ /* @__PURE__ */ B(vv, {
11767
11767
  overview: i.data,
11768
11768
  loading: i.loading
11769
11769
  }),
11770
- /* @__PURE__ */ B(Mv, { range: r }, JSON.stringify(r)),
11770
+ /* @__PURE__ */ B(jv, { range: r }, JSON.stringify(r)),
11771
11771
  /* @__PURE__ */ B(c, {
11772
11772
  bordered: !1,
11773
11773
  className: "med-feed-report-panel med-feed-report-tabs",
11774
11774
  children: /* @__PURE__ */ B(O, { items: [{
11775
11775
  key: "posts",
11776
11776
  label: "Bài có tương tác cao",
11777
- children: /* @__PURE__ */ B(Ev, { range: r }, JSON.stringify(r))
11777
+ children: /* @__PURE__ */ B(Tv, { range: r }, JSON.stringify(r))
11778
11778
  }, {
11779
11779
  key: "people",
11780
11780
  label: "Người tương tác nhiều nhất",
11781
- children: /* @__PURE__ */ B(Ov, { range: r }, JSON.stringify(r))
11781
+ children: /* @__PURE__ */ B(Dv, { range: r }, JSON.stringify(r))
11782
11782
  }] })
11783
11783
  })
11784
11784
  ]
@@ -11787,7 +11787,7 @@ function Nv() {
11787
11787
  }
11788
11788
  //#endregion
11789
11789
  //#region src/app/admin/newsfeed-admin-routes.tsx
11790
- function Pv() {
11790
+ function Nv() {
11791
11791
  let { me: e, basePath: t } = W(), n = t.replace(/\/+$/, ""), r = [
11792
11792
  ...e.canManage ? [{
11793
11793
  to: n || "/",
@@ -11863,42 +11863,42 @@ function Pv() {
11863
11863
  children: /* @__PURE__ */ V(he, { children: [
11864
11864
  /* @__PURE__ */ B(H, {
11865
11865
  index: !0,
11866
- element: e.canManage ? /* @__PURE__ */ B(pv, {}) : /* @__PURE__ */ B(me, {
11866
+ element: e.canManage ? /* @__PURE__ */ B(fv, {}) : /* @__PURE__ */ B(me, {
11867
11867
  to: `${n}/my-posts`,
11868
11868
  replace: !0
11869
11869
  })
11870
11870
  }),
11871
11871
  /* @__PURE__ */ B(H, {
11872
11872
  path: "my-posts",
11873
- element: /* @__PURE__ */ B(Fv, {
11873
+ element: /* @__PURE__ */ B(Pv, {
11874
11874
  allowed: e.canPost,
11875
- page: /* @__PURE__ */ B(Z_, {})
11875
+ page: /* @__PURE__ */ B(X_, {})
11876
11876
  })
11877
11877
  }),
11878
11878
  /* @__PURE__ */ B(H, {
11879
11879
  path: "reports",
11880
- element: /* @__PURE__ */ B(Fv, {
11880
+ element: /* @__PURE__ */ B(Pv, {
11881
11881
  allowed: e.canManage,
11882
- page: /* @__PURE__ */ B(Nv, {})
11882
+ page: /* @__PURE__ */ B(Mv, {})
11883
11883
  })
11884
11884
  }),
11885
11885
  /* @__PURE__ */ B(H, {
11886
11886
  path: "events",
11887
- element: /* @__PURE__ */ B(Fv, {
11887
+ element: /* @__PURE__ */ B(Pv, {
11888
11888
  allowed: e.canManage,
11889
- page: /* @__PURE__ */ B(ev, {})
11889
+ page: /* @__PURE__ */ B($_, {})
11890
11890
  })
11891
11891
  }),
11892
11892
  /* @__PURE__ */ B(H, {
11893
11893
  path: "settings/*",
11894
- element: /* @__PURE__ */ B(Fv, {
11894
+ element: /* @__PURE__ */ B(Pv, {
11895
11895
  allowed: e.canManage,
11896
- page: /* @__PURE__ */ B(gv, {})
11896
+ page: /* @__PURE__ */ B(hv, {})
11897
11897
  })
11898
11898
  }),
11899
11899
  /* @__PURE__ */ B(H, {
11900
11900
  path: "posts/:postId",
11901
- element: /* @__PURE__ */ B(d_, {})
11901
+ element: /* @__PURE__ */ B(u_, {})
11902
11902
  }),
11903
11903
  /* @__PURE__ */ B(H, {
11904
11904
  path: "*",
@@ -11911,7 +11911,7 @@ function Pv() {
11911
11911
  })]
11912
11912
  });
11913
11913
  }
11914
- function Fv({ allowed: e, page: t }) {
11914
+ function Pv({ allowed: e, page: t }) {
11915
11915
  return e ? /* @__PURE__ */ B(z, { children: t }) : /* @__PURE__ */ B(w, {
11916
11916
  status: "403",
11917
11917
  title: "Bạn không có quyền truy cập trang này"
@@ -11919,15 +11919,15 @@ function Fv({ allowed: e, page: t }) {
11919
11919
  }
11920
11920
  //#endregion
11921
11921
  //#region src/app/admin/newsfeed-admin-module.tsx
11922
- function Iv(e) {
11922
+ function Fv(e) {
11923
11923
  return /* @__PURE__ */ B(xn, {
11924
11924
  runtimeProps: {
11925
11925
  ...e,
11926
11926
  isPostFeed: !0
11927
11927
  },
11928
11928
  isAdmin: !0,
11929
- children: /* @__PURE__ */ B(Pv, {})
11929
+ children: /* @__PURE__ */ B(Nv, {})
11930
11930
  });
11931
11931
  }
11932
11932
  //#endregion
11933
- export { Iv as NewsfeedAdminModule, p_ as NewsfeedModule };
11933
+ export { Fv as NewsfeedAdminModule, f_ as NewsfeedModule };