@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.cjs +8 -8
- package/dist/index.js +377 -377
- package/package.json +1 -1
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 =
|
|
7541
|
-
function
|
|
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(
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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:
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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 ${
|
|
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(
|
|
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
|
|
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
|
|
7755
|
-
|
|
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
|
|
7757
|
+
function Qh(e) {
|
|
7758
7758
|
F(() => {
|
|
7759
|
-
if (e) return
|
|
7759
|
+
if (e) return Zh(Jh + 1), () => Zh(Jh - 1);
|
|
7760
7760
|
}, [e]);
|
|
7761
7761
|
}
|
|
7762
|
-
function
|
|
7763
|
-
return de(
|
|
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
|
|
7768
|
-
function
|
|
7767
|
+
var eg = /* @__PURE__ */ new Map();
|
|
7768
|
+
function tg(e, t) {
|
|
7769
7769
|
if (!t) return Promise.resolve(null);
|
|
7770
|
-
let n =
|
|
7771
|
-
return n || (n = e.getLinkPreview(t).then((e) => e ?? null, () => (
|
|
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
|
|
7774
|
-
return Q(P(() =>
|
|
7773
|
+
function ng(e, t) {
|
|
7774
|
+
return Q(P(() => tg(e, t), [e, t]), t);
|
|
7775
7775
|
}
|
|
7776
|
-
function
|
|
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
|
|
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
|
|
7792
|
-
let { api: t } = W(), n = e !== null &&
|
|
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
|
|
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
|
|
7828
|
-
let [r, i] =
|
|
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(
|
|
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
|
|
7846
|
-
let 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(
|
|
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 ??
|
|
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
|
|
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
|
-
},
|
|
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
|
|
7890
|
-
let t =
|
|
7891
|
-
return /* @__PURE__ */ B(t, { style: { color:
|
|
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
|
|
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
|
-
]),
|
|
7903
|
-
function
|
|
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
|
|
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
|
|
7910
|
-
function
|
|
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 -
|
|
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:
|
|
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(
|
|
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
|
|
7963
|
-
return e.length === 0 ? null : /* @__PURE__ */ B(z, { children: e.map((e) => /* @__PURE__ */ B(
|
|
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
|
|
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
|
|
7970
|
-
let [t, n] =
|
|
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
|
-
|
|
8017
|
+
vg(c),
|
|
8018
8018
|
" / ",
|
|
8019
|
-
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
8141
|
+
children: t && /* @__PURE__ */ B(Cg, { postId: e })
|
|
8142
8142
|
});
|
|
8143
8143
|
}
|
|
8144
|
-
function
|
|
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
|
-
|
|
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":
|
|
8194
|
-
children:
|
|
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
|
|
8219
|
-
async function
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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
|
|
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
|
-
],
|
|
8270
|
-
function
|
|
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(
|
|
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
|
|
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
|
|
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 :
|
|
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
|
|
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, () =>
|
|
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:
|
|
8317
|
-
avatar:
|
|
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,
|
|
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 <
|
|
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
|
|
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:
|
|
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(
|
|
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 >=
|
|
8411
|
+
disabled: !r && m.length >= jg,
|
|
8412
8412
|
onClick: () => x(e.id),
|
|
8413
8413
|
children: [
|
|
8414
|
-
/* @__PURE__ */ B(
|
|
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}/${
|
|
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
|
|
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(
|
|
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
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
8692
|
+
function Hg({ post: e, onRemoved: t, labelled: n = !1 }) {
|
|
8693
8693
|
let { api: r, me: i } = W();
|
|
8694
|
-
if (!
|
|
8695
|
-
let a = () =>
|
|
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
|
|
8720
|
+
function Ug({ size: e = 44 }) {
|
|
8721
8721
|
return /* @__PURE__ */ B(o, {
|
|
8722
8722
|
size: e,
|
|
8723
|
-
src:
|
|
8724
|
-
alt:
|
|
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
|
|
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
|
|
8741
|
-
let n =
|
|
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
|
|
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(
|
|
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:
|
|
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(
|
|
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(
|
|
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
|
|
8794
|
-
function
|
|
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
|
-
|
|
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 =
|
|
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(
|
|
8809
|
+
children: /* @__PURE__ */ B(Gg, { status: e.status })
|
|
8810
8810
|
}),
|
|
8811
|
-
/* @__PURE__ */ B(
|
|
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(
|
|
8828
|
+
!u && /* @__PURE__ */ B(Rg, {
|
|
8829
8829
|
post: e,
|
|
8830
8830
|
onChange: w
|
|
8831
8831
|
}),
|
|
8832
|
-
p && /* @__PURE__ */ B(
|
|
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:
|
|
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(
|
|
8859
|
-
/* @__PURE__ */ B(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
8943
|
+
var Zg = {
|
|
8944
8944
|
q: "q",
|
|
8945
8945
|
departmentId: "department",
|
|
8946
8946
|
hashtag: "hashtag"
|
|
8947
8947
|
};
|
|
8948
|
-
function
|
|
8948
|
+
function Qg(e) {
|
|
8949
8949
|
return {
|
|
8950
|
-
q: e.get(
|
|
8951
|
-
departmentId: e.get(
|
|
8952
|
-
hashtag: e.get(
|
|
8950
|
+
q: e.get(Zg.q),
|
|
8951
|
+
departmentId: e.get(Zg.departmentId),
|
|
8952
|
+
hashtag: e.get(Zg.hashtag)
|
|
8953
8953
|
};
|
|
8954
8954
|
}
|
|
8955
|
-
function
|
|
8955
|
+
function $g(e) {
|
|
8956
8956
|
let t = new URLSearchParams();
|
|
8957
|
-
Object.keys(
|
|
8957
|
+
Object.keys(Zg).forEach((n) => {
|
|
8958
8958
|
let r = e[n];
|
|
8959
|
-
r && t.set(
|
|
8959
|
+
r && t.set(Zg[n], r);
|
|
8960
8960
|
});
|
|
8961
8961
|
let n = t.toString();
|
|
8962
8962
|
return n ? `?${n}` : "";
|
|
8963
8963
|
}
|
|
8964
|
-
function
|
|
8965
|
-
let [e, t] = ve(), n =
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
9007
|
-
let n =
|
|
9008
|
-
return 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
|
|
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
|
|
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
|
|
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:
|
|
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(
|
|
9063
|
+
children: n && /* @__PURE__ */ B(s_, { event: n })
|
|
9064
9064
|
})] }) : null;
|
|
9065
9065
|
}
|
|
9066
|
-
function
|
|
9067
|
-
let t =
|
|
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:
|
|
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:
|
|
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
|
|
9131
|
-
function
|
|
9132
|
-
let { api: e } = W(), { filters: t, setFilters: n } =
|
|
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:
|
|
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(
|
|
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(
|
|
9168
|
+
/* @__PURE__ */ B(o_, {}),
|
|
9169
9169
|
/* @__PURE__ */ B("hr", { className: "med-feed-layout__divider" }),
|
|
9170
|
-
/* @__PURE__ */ B(
|
|
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
|
|
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(
|
|
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
|
|
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(
|
|
9216
|
+
element: /* @__PURE__ */ B(l_, {})
|
|
9217
9217
|
}),
|
|
9218
9218
|
/* @__PURE__ */ B(H, {
|
|
9219
9219
|
path: "posts/:postId",
|
|
9220
|
-
element: /* @__PURE__ */ B(
|
|
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
|
|
9234
|
+
function f_(e) {
|
|
9235
9235
|
return /* @__PURE__ */ B(xn, {
|
|
9236
9236
|
runtimeProps: e,
|
|
9237
|
-
children: /* @__PURE__ */ B(
|
|
9237
|
+
children: /* @__PURE__ */ B(d_, {})
|
|
9238
9238
|
});
|
|
9239
9239
|
}
|
|
9240
9240
|
//#endregion
|
|
9241
9241
|
//#region src/features/composer/format-text.ts
|
|
9242
|
-
var
|
|
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
|
|
9254
|
-
let i =
|
|
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 ||
|
|
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
|
|
9267
|
+
var v_ = {
|
|
9268
9268
|
heading: () => "# ",
|
|
9269
9269
|
bullets: () => "- ",
|
|
9270
9270
|
numbers: (e) => `${e + 1}. `,
|
|
9271
9271
|
quote: () => "> "
|
|
9272
|
-
},
|
|
9272
|
+
}, y_ = {
|
|
9273
9273
|
heading: /^#{1,3}\s+/,
|
|
9274
9274
|
bullets: /^[-•]\s+/,
|
|
9275
9275
|
numbers: /^\d{1,3}[.)]\s+/,
|
|
9276
9276
|
quote: /^>\s?/
|
|
9277
|
-
},
|
|
9278
|
-
function
|
|
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
|
|
9284
|
-
let r =
|
|
9285
|
-
return
|
|
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
|
|
9287
|
+
function C_(e, t, n) {
|
|
9288
9288
|
let r = e.slice(0, t), i = e.slice(n);
|
|
9289
|
-
return Object.keys(
|
|
9289
|
+
return Object.keys(h_).filter((e) => S_(r, i, e));
|
|
9290
9290
|
}
|
|
9291
|
-
function
|
|
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(
|
|
9293
|
+
return Object.keys(y_).filter((e) => y_[e].test(i));
|
|
9294
9294
|
}
|
|
9295
|
-
function
|
|
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
|
|
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 }) =>
|
|
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
|
|
9322
|
-
function
|
|
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
|
|
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
|
|
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 =
|
|
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) => !
|
|
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
|
|
9360
|
-
return
|
|
9359
|
+
function A_(e, t, n, r) {
|
|
9360
|
+
return k_(e, t, n, r, "chữ đổi màu");
|
|
9361
9361
|
}
|
|
9362
|
-
function
|
|
9363
|
-
return
|
|
9362
|
+
function j_(e, t, n, r) {
|
|
9363
|
+
return k_(e, t, n, r, "chữ đổi cỡ");
|
|
9364
9364
|
}
|
|
9365
|
-
function
|
|
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
|
|
9372
|
-
return
|
|
9371
|
+
function N_(e, t) {
|
|
9372
|
+
return M_(e, t).find(m_) ?? null;
|
|
9373
9373
|
}
|
|
9374
|
-
function
|
|
9375
|
-
return
|
|
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
|
|
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
|
-
],
|
|
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
|
-
],
|
|
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
|
-
],
|
|
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
|
|
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
|
-
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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:
|
|
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
|
|
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(
|
|
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
|
|
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 <
|
|
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) =>
|
|
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 =
|
|
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(
|
|
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:
|
|
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(
|
|
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) =>
|
|
9825
|
-
activeColor:
|
|
9826
|
-
onIndent: (e) => ge((t, n, r) =>
|
|
9827
|
-
onSize: (e) => ge((t, n, r) =>
|
|
9828
|
-
activeSize:
|
|
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(
|
|
9868
|
-
/* @__PURE__ */ B(
|
|
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(
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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:
|
|
10230
|
+
items: Y_.map((e) => ({
|
|
10231
10231
|
key: e.key,
|
|
10232
10232
|
label: e.label
|
|
10233
10233
|
}))
|
|
10234
10234
|
}),
|
|
10235
|
-
/* @__PURE__ */ B(
|
|
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(
|
|
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
|
|
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
|
|
10340
|
-
function
|
|
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(
|
|
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) =>
|
|
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(
|
|
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
|
|
10560
|
-
function
|
|
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
|
-
},
|
|
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
|
|
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
|
|
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
|
|
10599
|
+
function iv(e) {
|
|
10600
10600
|
return typeof e == "object";
|
|
10601
10601
|
}
|
|
10602
|
-
function
|
|
10603
|
-
if (
|
|
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:
|
|
10607
|
-
to:
|
|
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
|
|
10613
|
-
function
|
|
10614
|
-
let n =
|
|
10615
|
-
let { from: t, to: n } =
|
|
10616
|
-
return [
|
|
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,
|
|
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(
|
|
10631
|
-
to: r.format(
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
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(() =>
|
|
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:
|
|
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(
|
|
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(
|
|
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:
|
|
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(
|
|
10903
|
+
/* @__PURE__ */ B(sv, {
|
|
10904
10904
|
value: t,
|
|
10905
10905
|
onChange: D(n)
|
|
10906
10906
|
}),
|
|
10907
|
-
/* @__PURE__ */ B(
|
|
10907
|
+
/* @__PURE__ */ B(tv, {
|
|
10908
10908
|
value: a,
|
|
10909
10909
|
onChange: D(o)
|
|
10910
10910
|
}),
|
|
10911
|
-
(c || a || JSON.stringify(C) !== JSON.stringify(
|
|
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(
|
|
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(
|
|
10968
|
+
children: [/* @__PURE__ */ B(Gg, {
|
|
10969
10969
|
status: t.status,
|
|
10970
10970
|
short: !0
|
|
10971
|
-
}), t.pinnedAt && t.status === "PUBLISHED" && /* @__PURE__ */ B(
|
|
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, {}), () =>
|
|
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:
|
|
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(
|
|
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(
|
|
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
|
|
11072
|
-
function
|
|
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(
|
|
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(
|
|
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:
|
|
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
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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) => `${
|
|
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(
|
|
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(
|
|
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) => `${
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
11298
|
-
to:
|
|
11297
|
+
from: bv(n),
|
|
11298
|
+
to: bv(t)
|
|
11299
11299
|
};
|
|
11300
11300
|
}
|
|
11301
|
-
function
|
|
11302
|
-
let n =
|
|
11303
|
-
let t =
|
|
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:
|
|
11309
|
+
options: yv,
|
|
11310
11310
|
value: r,
|
|
11311
|
-
onChange: (e) => t(
|
|
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
|
|
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
|
|
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
|
-
...
|
|
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:
|
|
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(
|
|
11366
|
+
/* @__PURE__ */ B(Sv, {
|
|
11367
11367
|
value: i,
|
|
11368
11368
|
onChange: a
|
|
11369
11369
|
}),
|
|
11370
|
-
/* @__PURE__ */ B(
|
|
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:
|
|
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(
|
|
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(
|
|
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
|
|
11481
|
-
function
|
|
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
|
-
...
|
|
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:
|
|
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(
|
|
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(
|
|
11506
|
+
/* @__PURE__ */ B(Sv, {
|
|
11507
11507
|
value: n,
|
|
11508
11508
|
onChange: r
|
|
11509
11509
|
}),
|
|
11510
|
-
/* @__PURE__ */ B(
|
|
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(
|
|
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(
|
|
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
|
|
11598
|
+
var Ov = [
|
|
11599
11599
|
"#7c3aed",
|
|
11600
11600
|
"#2563eb",
|
|
11601
11601
|
"#0d9488"
|
|
11602
|
-
],
|
|
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
|
|
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
|
|
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
|
-
...
|
|
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) =>
|
|
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:
|
|
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(
|
|
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:
|
|
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) =>
|
|
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
|
|
11753
|
-
let { api: e } = W(), [t, n] = R("30d"), r = I(() =>
|
|
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(
|
|
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(
|
|
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(
|
|
11766
|
+
/* @__PURE__ */ B(vv, {
|
|
11767
11767
|
overview: i.data,
|
|
11768
11768
|
loading: i.loading
|
|
11769
11769
|
}),
|
|
11770
|
-
/* @__PURE__ */ B(
|
|
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(
|
|
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(
|
|
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
|
|
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(
|
|
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(
|
|
11873
|
+
element: /* @__PURE__ */ B(Pv, {
|
|
11874
11874
|
allowed: e.canPost,
|
|
11875
|
-
page: /* @__PURE__ */ B(
|
|
11875
|
+
page: /* @__PURE__ */ B(X_, {})
|
|
11876
11876
|
})
|
|
11877
11877
|
}),
|
|
11878
11878
|
/* @__PURE__ */ B(H, {
|
|
11879
11879
|
path: "reports",
|
|
11880
|
-
element: /* @__PURE__ */ B(
|
|
11880
|
+
element: /* @__PURE__ */ B(Pv, {
|
|
11881
11881
|
allowed: e.canManage,
|
|
11882
|
-
page: /* @__PURE__ */ B(
|
|
11882
|
+
page: /* @__PURE__ */ B(Mv, {})
|
|
11883
11883
|
})
|
|
11884
11884
|
}),
|
|
11885
11885
|
/* @__PURE__ */ B(H, {
|
|
11886
11886
|
path: "events",
|
|
11887
|
-
element: /* @__PURE__ */ B(
|
|
11887
|
+
element: /* @__PURE__ */ B(Pv, {
|
|
11888
11888
|
allowed: e.canManage,
|
|
11889
|
-
page: /* @__PURE__ */ B(
|
|
11889
|
+
page: /* @__PURE__ */ B($_, {})
|
|
11890
11890
|
})
|
|
11891
11891
|
}),
|
|
11892
11892
|
/* @__PURE__ */ B(H, {
|
|
11893
11893
|
path: "settings/*",
|
|
11894
|
-
element: /* @__PURE__ */ B(
|
|
11894
|
+
element: /* @__PURE__ */ B(Pv, {
|
|
11895
11895
|
allowed: e.canManage,
|
|
11896
|
-
page: /* @__PURE__ */ B(
|
|
11896
|
+
page: /* @__PURE__ */ B(hv, {})
|
|
11897
11897
|
})
|
|
11898
11898
|
}),
|
|
11899
11899
|
/* @__PURE__ */ B(H, {
|
|
11900
11900
|
path: "posts/:postId",
|
|
11901
|
-
element: /* @__PURE__ */ B(
|
|
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
|
|
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
|
|
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(
|
|
11929
|
+
children: /* @__PURE__ */ B(Nv, {})
|
|
11930
11930
|
});
|
|
11931
11931
|
}
|
|
11932
11932
|
//#endregion
|
|
11933
|
-
export {
|
|
11933
|
+
export { Fv as NewsfeedAdminModule, f_ as NewsfeedModule };
|