update
This commit is contained in:
commit
b24250f955
|
|
@ -20,6 +20,7 @@ import Swal from "sweetalert2";
|
|||
import { checkMaliciousText, getPublicLocaleTimestamp } from "@/utils/globals";
|
||||
import parse from "html-react-parser";
|
||||
import $ from "jquery";
|
||||
import { useTranslations } from "next-intl";
|
||||
|
||||
const formWaveSurferOptions = (ref: any) => ({
|
||||
container: ref,
|
||||
|
|
@ -66,6 +67,8 @@ const DetailAudio = () => {
|
|||
const [listSuggestion, setListSuggestion] = useState<any>();
|
||||
const MySwal = withReactContent(Swal);
|
||||
const [visibleInput, setVisibleInput] = useState<string | null>(null);
|
||||
const t = useTranslations("LandingPage");
|
||||
|
||||
let typeString = "audio";
|
||||
|
||||
useEffect(() => {
|
||||
|
|
@ -250,11 +253,8 @@ const DetailAudio = () => {
|
|||
};
|
||||
|
||||
const sizes = [
|
||||
{ label: "XL", value: "3198 x 1798 px" },
|
||||
{ label: "L", value: "2399 x 1349 px" },
|
||||
{ label: "M", value: "1599 x 899 px" },
|
||||
{ label: "S", value: "1066 x 599 px" },
|
||||
{ label: "XS", value: "800 x 450 px" },
|
||||
{ label: "MP3", value: "... MB" },
|
||||
{ label: "WAV", value: "... MB" },
|
||||
];
|
||||
|
||||
const handleShare = (type: any, url: any) => {
|
||||
|
|
@ -592,16 +592,20 @@ const DetailAudio = () => {
|
|||
<div className="text-gray-500 flex flex-col lg:flex-row justify-between items-center border-t mt-4">
|
||||
<div className="flex flex-col lg:flex-row items-center mt-3 lg:justify-between">
|
||||
<p className="text-xs lg:text-sm">
|
||||
oleh <span className="font-semibold text-black">{detailDataAudio?.uploadedBy?.userLevel?.name}</span>
|
||||
{t("by")} <span className="font-semibold text-black">{detailDataAudio?.uploadedBy?.userLevel?.name}</span>
|
||||
</p>
|
||||
<p className="text-xs lg:text-sm">
|
||||
| {t("updatedOn")} {detailDataAudio?.updatedAt} WIB |
|
||||
</p>
|
||||
<p className="text-xs lg:text-sm"> | Diupdate pada {detailDataAudio?.updatedAt} WIB | </p>
|
||||
<p className="text-xs lg:text-sm flex justify-center items-center">
|
||||
<Icon icon="formkit:eye" width="15" height="15" />
|
||||
{detailDataAudio?.clickCount}
|
||||
</p>
|
||||
</div>
|
||||
<div className="mt-3">
|
||||
<p className="flex text-end text-xs lg:text-sm font-semibold">Kreator: {detailDataAudio?.creatorName}</p>
|
||||
<p className="flex text-end text-xs lg:text-sm font-semibold">
|
||||
{t("creator")} {detailDataAudio?.creatorName}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{/* Keterangan */}
|
||||
|
|
@ -616,12 +620,12 @@ const DetailAudio = () => {
|
|||
{isSaved ? (
|
||||
<a onClick={() => handleDeleteWishlist()} className="flex flex-col mb-3 items-center justify-center cursor-pointer">
|
||||
<Icon icon="material-symbols:bookmark" width={40} />
|
||||
<p className="text-base lg:text-lg">Hapus</p>
|
||||
<p className="text-base lg:text-lg">{t("delete")}</p>
|
||||
</a>
|
||||
) : (
|
||||
<a onClick={() => doBookmark()} className="flex flex-col mb-3 items-center justify-center cursor-pointer">
|
||||
<Icon icon="material-symbols:bookmark-outline" width={40} />
|
||||
<p className="text-base lg:text-lg">Simpan</p>
|
||||
<p className="text-base lg:text-lg">{t("save")}</p>
|
||||
</a>
|
||||
)}
|
||||
|
||||
|
|
@ -643,7 +647,7 @@ const DetailAudio = () => {
|
|||
<div className="border-t border-black my-4"></div>
|
||||
|
||||
{/* Opsi Ukuran Foto */}
|
||||
<h4 className="flex text-lg justify-center items-center font-semibold my-3">Opsi Ukuran Audio</h4>
|
||||
<h4 className="flex text-lg justify-center items-center font-semibold my-3">{t("audioSize")}</h4>
|
||||
|
||||
<div className="border-t border-black my-4"></div>
|
||||
|
||||
|
|
@ -665,7 +669,7 @@ const DetailAudio = () => {
|
|||
<div className="mt-4">
|
||||
<label className="flex items-center space-x-2 text-sm">
|
||||
<input type="checkbox" className="text-red-600 focus:ring-red-600" onChange={() => setIsDownloadAll(!isDownloadAll)} />
|
||||
<span>Download Semua File?</span>
|
||||
<span>{t("downloadAll")}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
|
@ -674,12 +678,12 @@ const DetailAudio = () => {
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24">
|
||||
<path fill="white" d="m12 16l-5-5l1.4-1.45l2.6 2.6V4h2v8.15l2.6-2.6L17 11zm-6 4q-.825 0-1.412-.587T4 18v-3h2v3h12v-3h2v3q0 .825-.587 1.413T18 20z" />
|
||||
</svg>
|
||||
Download
|
||||
{t("download")}
|
||||
</button>
|
||||
|
||||
{/* Tombol Bagikan */}
|
||||
<div className="flex flex-row py-3">
|
||||
<p className="text-base font-semibold">Bagikan</p>
|
||||
<p className="text-base font-semibold">{t("share")}</p>
|
||||
<a className="ml-8 cursor-pointer" onClick={() => handleShare("fb", `https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fmediahub.polri.go.id%2F${typeString}%2Fdetail%2F${content?.id}"e=${content?.title}`)}>
|
||||
<Icon icon="brandico:facebook" height="20" className="px-auto text-red-600 text-center" />
|
||||
</a>
|
||||
|
|
@ -697,13 +701,13 @@ const DetailAudio = () => {
|
|||
</PopoverTrigger>
|
||||
<PopoverContent>
|
||||
<div className="flex flex-col">
|
||||
<h1 className="mb-2">Share Ke Email</h1>
|
||||
<h1 className="mb-2">{t("shareTo")}</h1>
|
||||
<div className="flex flex-col mb-2">
|
||||
<p className="text-base font-semibold mb-1">Email Tujuan :</p>
|
||||
<Input value={emailShareInput} onChange={(event) => setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder="Tekan Enter untuk input Email" />
|
||||
<p className="text-base font-semibold mb-1">{t("destinationEmail")}</p>
|
||||
<Input value={emailShareInput} onChange={(event) => setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder={t("pressEnter")} />
|
||||
</div>
|
||||
<Button className="bg-blue-500 text-white p-2 w-fit rounded-lg" onClick={() => shareToEmail()}>
|
||||
Kirim
|
||||
{t("send")}
|
||||
</Button>
|
||||
</div>
|
||||
</PopoverContent>
|
||||
|
|
@ -717,10 +721,10 @@ const DetailAudio = () => {
|
|||
{/* Comment */}
|
||||
<div className="flex flex-col my-16 p-4 lg:p-10 bg-[#f7f7f7]">
|
||||
<div className="gap-5 flex flex-col px-4 lg:px-14">
|
||||
<p className="flex items-start text-lg">Berikan Komentar</p>
|
||||
<p className="flex items-start text-lg">{t("comment")}</p>
|
||||
<Textarea placeholder="Type your comments here." className="flex w-full pb-12" onChange={getInputValue} />
|
||||
<button onClick={() => postData()} className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-4 py-1">
|
||||
Kirim
|
||||
{t("send")}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
|
|
@ -749,11 +753,11 @@ const DetailAudio = () => {
|
|||
onClick={() => showInput(`comment-id-${data.id}`)}
|
||||
className="mr-2"
|
||||
>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Balas</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("reply")}</small>
|
||||
</a>
|
||||
{Number(data.suggestionFrom?.id) == Number(userId) || Number(userRoleId) == 2 ? (
|
||||
<a onClick={() => deleteData(data.id)}>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Hapus</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("delete")}</small>
|
||||
</a>
|
||||
) : (
|
||||
""
|
||||
|
|
@ -763,13 +767,13 @@ const DetailAudio = () => {
|
|||
</div>
|
||||
{visibleInput === `comment-id-${data.id}` && (
|
||||
<div id={`comment-id-${data.id}`} className="px-4 pl-[72px] lg:px-14 lg:pl-32 mt-2 ">
|
||||
<Textarea id={`input-comment-${data.id}`} className="p-4 focus:outline-none focus:border-sky-500" placeholder="Masukkan balasan anda" />
|
||||
<Textarea id={`input-comment-${data.id}`} className="p-4 focus:outline-none focus:border-sky-500" placeholder={t("enterReply")} />
|
||||
<div className="flex flex-row gap-3">
|
||||
<a onClick={() => postDataChild(data.id)}>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 mt-2 cursor-pointer">Kirim</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 mt-2 cursor-pointer">{t("send")}</small>
|
||||
</a>
|
||||
<a onClick={() => showInput(`comment-id-${data.id}`)}>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg mt-2 w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Batal</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg mt-2 w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("cancel")}</small>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -798,7 +802,7 @@ const DetailAudio = () => {
|
|||
}
|
||||
onClick={() => showInput(`comment-id-${child1.id}`)}
|
||||
>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Balas</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("reply")}</small>
|
||||
</a>
|
||||
<a
|
||||
style={
|
||||
|
|
@ -810,7 +814,7 @@ const DetailAudio = () => {
|
|||
}
|
||||
onClick={() => deleteData(child1.id)}
|
||||
>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Hapus</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("delete")}</small>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -818,13 +822,13 @@ const DetailAudio = () => {
|
|||
|
||||
{visibleInput === `comment-id-${child1.id}` && (
|
||||
<div id={`comment-id-${child1.id}`} className="px-4 lg:px-14 pl-28 lg:pl-[200px]">
|
||||
<Textarea name="" className="mt-2 " id={`input-comment-${child1.id}`} placeholder="Masukkan balasan anda" />
|
||||
<Textarea name="" className="mt-2 " id={`input-comment-${child1.id}`} placeholder={t("enterReply")} />
|
||||
<div className="flex flex-row mt-2 gap-3">
|
||||
<a onClick={() => postDataChild(child1.id)}>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Kirim</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("send")}</small>
|
||||
</a>
|
||||
<a onClick={() => showInput(`comment-id-${child1.id}`)}>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Batal</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("cancel")}</small>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -853,7 +857,7 @@ const DetailAudio = () => {
|
|||
}
|
||||
onClick={() => showInput(`comment-id-${child2.id}`)}
|
||||
>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Balas</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("reply")}</small>
|
||||
</a>
|
||||
<a
|
||||
style={
|
||||
|
|
@ -865,7 +869,7 @@ const DetailAudio = () => {
|
|||
}
|
||||
onClick={() => deleteData(child2.id)}
|
||||
>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Hapus</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("delete")}</small>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -875,10 +879,10 @@ const DetailAudio = () => {
|
|||
<Textarea name="" id={`input-comment-${child2.id}`} className="my-2" placeholder="Masukkan balasan anda" />
|
||||
<div className="flex flex-row gap-3">
|
||||
<a onClick={() => postDataChild(child2.id)}>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Kirim</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("send")}</small>
|
||||
</a>
|
||||
<a onClick={() => showInput(`comment-id-${child2.id}`)}>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Batal</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("cancel")}</small>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import { Input } from "@/components/ui/input";
|
|||
import { Button } from "@/components/ui/button";
|
||||
import { sendMediaUploadToEmail } from "@/service/media-tracking/media-tracking";
|
||||
import ImageBlurry from "@/components/ui/image-blurry";
|
||||
import Image from "next/image";
|
||||
|
||||
const Galery = (props: any) => {
|
||||
const [profile, setProfile] = useState<any>();
|
||||
|
|
@ -376,7 +377,7 @@ const Galery = (props: any) => {
|
|||
</div>
|
||||
) : (
|
||||
<p className="flex items-center justify-center">
|
||||
<img src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
<Image width={1920} height={1080} src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
</p>
|
||||
)
|
||||
) : selectedTab == "audio" ? (
|
||||
|
|
@ -456,7 +457,7 @@ const Galery = (props: any) => {
|
|||
</div>
|
||||
) : (
|
||||
<p className="flex items-center justify-center">
|
||||
<img src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
<Image width={1920} height={1080} src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
</p>
|
||||
)
|
||||
) : selectedTab == "image" ? (
|
||||
|
|
@ -517,7 +518,7 @@ const Galery = (props: any) => {
|
|||
</div>
|
||||
) : (
|
||||
<p className="flex items-center justify-center">
|
||||
<img src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
<Image width={1920} height={1080} src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
</p>
|
||||
)
|
||||
) : contentDocument.length > 0 ? (
|
||||
|
|
@ -588,7 +589,7 @@ const Galery = (props: any) => {
|
|||
</div>
|
||||
) : (
|
||||
<p className="flex items-center justify-center">
|
||||
<img src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
<Image width={1920} height={1080} src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import { Input } from "@/components/ui/input";
|
|||
import { Button } from "@/components/ui/button";
|
||||
import { sendMediaUploadToEmail } from "@/service/media-tracking/media-tracking";
|
||||
import ImageBlurry from "@/components/ui/image-blurry";
|
||||
import Image from "next/image";
|
||||
|
||||
const Galery = (props: any) => {
|
||||
const [profile, setProfile] = useState<any>();
|
||||
|
|
@ -382,7 +383,7 @@ const Galery = (props: any) => {
|
|||
</div>
|
||||
) : (
|
||||
<p className="flex items-center justify-center">
|
||||
<img src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
<Image width={1920} height={1080} src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
</p>
|
||||
)
|
||||
) : selectedTab == "audio" ? (
|
||||
|
|
@ -460,7 +461,7 @@ const Galery = (props: any) => {
|
|||
</div>
|
||||
) : (
|
||||
<p className="flex items-center justify-center">
|
||||
<img src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
<Image width={1920} height={1080} src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
</p>
|
||||
)
|
||||
) : selectedTab == "image" ? (
|
||||
|
|
@ -521,7 +522,7 @@ const Galery = (props: any) => {
|
|||
</div>
|
||||
) : (
|
||||
<p className="flex items-center justify-center">
|
||||
<img src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
<Image width={1920} height={1080} src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
</p>
|
||||
)
|
||||
) : contentDocument.length > 0 ? (
|
||||
|
|
@ -592,7 +593,7 @@ const Galery = (props: any) => {
|
|||
</div>
|
||||
) : (
|
||||
<p className="flex items-center justify-center">
|
||||
<img src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
<Image width={1920} height={1080} src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import { Input } from "@/components/ui/input";
|
|||
import { Button } from "@/components/ui/button";
|
||||
import { sendMediaUploadToEmail } from "@/service/media-tracking/media-tracking";
|
||||
import ImageBlurry from "@/components/ui/image-blurry";
|
||||
import Image from "next/image";
|
||||
|
||||
const page = () => {
|
||||
const [, setProfile] = useState();
|
||||
|
|
@ -259,7 +260,7 @@ const page = () => {
|
|||
</div>
|
||||
) : (
|
||||
<p className="flex items-center justify-center">
|
||||
<img src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
<Image width={1920} height={1080} src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import { checkMaliciousText, getPublicLocaleTimestamp } from "@/utils/globals";
|
|||
import withReactContent from "sweetalert2-react-content";
|
||||
import Swal from "sweetalert2";
|
||||
import parse from "html-react-parser";
|
||||
import { useTranslations } from "next-intl";
|
||||
|
||||
const DetailDocument = () => {
|
||||
const [selectedSize, setSelectedSize] = useState<string>("L");
|
||||
|
|
@ -50,6 +51,7 @@ const DetailDocument = () => {
|
|||
const [listSuggestion, setListSuggestion] = useState<any>();
|
||||
const MySwal = withReactContent(Swal);
|
||||
const [visibleInput, setVisibleInput] = useState<string | null>(null);
|
||||
const t = useTranslations("LandingPage");
|
||||
|
||||
let typeString = "document";
|
||||
|
||||
|
|
@ -139,11 +141,9 @@ const DetailDocument = () => {
|
|||
};
|
||||
|
||||
const sizes = [
|
||||
{ label: "XL", value: "3198 x 1798 px" },
|
||||
{ label: "L", value: "2399 x 1349 px" },
|
||||
{ label: "M", value: "1599 x 899 px" },
|
||||
{ label: "S", value: "1066 x 599 px" },
|
||||
{ label: "XS", value: "800 x 450 px" },
|
||||
{ label: "DOC", value: "...KB" },
|
||||
{ label: "PPT", value: "...KB" },
|
||||
{ label: "PDF", value: "...KB" },
|
||||
];
|
||||
|
||||
async function sendActivityLog(activityTypeId: number) {
|
||||
|
|
@ -433,14 +433,22 @@ const DetailDocument = () => {
|
|||
<p className="mt-3">Kreator: {detailDataDocument?.creatorName}</p> */}
|
||||
<div className="flex flex-col lg:flex-row items-center mt-3 lg:justify-between">
|
||||
<p className="text-xs lg:text-sm">
|
||||
oleh <span className="font-semibold text-black">{detailDataDocument?.uploadedBy?.userLevel?.name}</span>
|
||||
{t("by")} <span className="font-semibold text-black">{detailDataDocument?.uploadedBy?.userLevel?.name}</span>
|
||||
</p>
|
||||
<p className="text-xs lg:text-sm">
|
||||
| {t("updatedOn")} {detailDataDocument?.updatedAt} WIB |
|
||||
</p>
|
||||
<p className="text-xs lg:text-sm"> | Diupdate pada {detailDataDocument?.updatedAt} WIB | </p>
|
||||
<p className="text-xs lg:text-sm flex justify-center items-center">
|
||||
<Icon icon="formkit:eye" width="15" height="15" />
|
||||
{detailDataDocument?.clickCount}
|
||||
</p>
|
||||
</div>
|
||||
<div className="mt-3">
|
||||
<p className="flex text-end text-xs lg:text-sm font-semibold">
|
||||
{t("creator")}
|
||||
{detailDataDocument?.creatorName}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Keterangan */}
|
||||
|
|
@ -455,12 +463,12 @@ const DetailDocument = () => {
|
|||
{isSaved ? (
|
||||
<a onClick={() => handleDeleteWishlist()} className="flex flex-col mb-3 items-center justify-center cursor-pointer">
|
||||
<Icon icon="material-symbols:bookmark" width={40} />
|
||||
<p className="text-base lg:text-lg">Hapus</p>
|
||||
<p className="text-base lg:text-lg">{t("delete")}</p>
|
||||
</a>
|
||||
) : (
|
||||
<a onClick={() => doBookmark()} className="flex flex-col mb-3 items-center justify-center cursor-pointer">
|
||||
<Icon icon="material-symbols:bookmark-outline" width={40} />
|
||||
<p className="text-base lg:text-lg">Simpan</p>
|
||||
<p className="text-base lg:text-lg">{t("save")}</p>
|
||||
</a>
|
||||
)}
|
||||
|
||||
|
|
@ -482,7 +490,7 @@ const DetailDocument = () => {
|
|||
<div className="border-t border-black my-4"></div>
|
||||
|
||||
{/* Opsi Ukuran Foto */}
|
||||
<h4 className="flex text-lg justify-center items-center font-semibold my-3">Opsi Ukuran Foto</h4>
|
||||
<h4 className="flex text-lg justify-center items-center font-semibold my-3">{t("docSize")}</h4>
|
||||
<div className="border-t border-black my-4"></div>
|
||||
<div className="space-y-2">
|
||||
{sizes.map((size: any) => (
|
||||
|
|
@ -502,7 +510,7 @@ const DetailDocument = () => {
|
|||
<div className="mt-4">
|
||||
<label className="flex items-center space-x-2 text-sm">
|
||||
<input type="checkbox" className="text-red-600 focus:ring-red-600" onChange={() => setIsDownloadAll(!isDownloadAll)} />
|
||||
<span>Download Semua File?</span>
|
||||
<span>{t("downloadAll")}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
|
@ -511,12 +519,12 @@ const DetailDocument = () => {
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24">
|
||||
<path fill="white" d="m12 16l-5-5l1.4-1.45l2.6 2.6V4h2v8.15l2.6-2.6L17 11zm-6 4q-.825 0-1.412-.587T4 18v-3h2v3h12v-3h2v3q0 .825-.587 1.413T18 20z" />
|
||||
</svg>
|
||||
Download
|
||||
{t("download")}
|
||||
</button>
|
||||
|
||||
{/* Tombol Bagikan */}
|
||||
<div className="flex flex-row py-3">
|
||||
<p className="text-base font-semibold">Bagikan</p>
|
||||
<p className="text-base font-semibold">{t("share")}</p>
|
||||
<a className="ml-8 cursor-pointer" onClick={() => handleShare("fb", `https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fmediahub.polri.go.id%2F${typeString}%2Fdetail%2F${content?.id}"e=${content?.title}`)}>
|
||||
<Icon icon="brandico:facebook" height="20" className="px-auto text-red-600 text-center" />
|
||||
</a>
|
||||
|
|
@ -534,13 +542,13 @@ const DetailDocument = () => {
|
|||
</PopoverTrigger>
|
||||
<PopoverContent>
|
||||
<div className="flex flex-col">
|
||||
<h1 className="mb-2">Share Ke Email</h1>
|
||||
<h1 className="mb-2">{t("shareTo")}</h1>
|
||||
<div className="flex flex-col mb-2">
|
||||
<p className="text-base font-semibold mb-1">Email Tujuan :</p>
|
||||
<Input value={emailShareInput} onChange={(event) => setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder="Tekan Enter untuk input Email" />
|
||||
<p className="text-base font-semibold mb-1">{t("destinationEmail")}</p>
|
||||
<Input value={emailShareInput} onChange={(event) => setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder={t("pressEnter")} />
|
||||
</div>
|
||||
<Button className="bg-blue-500 text-white p-2 w-fit rounded-lg" onClick={() => shareToEmail()}>
|
||||
Kirim
|
||||
{t("send")}
|
||||
</Button>
|
||||
</div>
|
||||
</PopoverContent>
|
||||
|
|
@ -554,10 +562,10 @@ const DetailDocument = () => {
|
|||
{/* Comment */}
|
||||
<div className="flex flex-col my-16 p-4 lg:p-10 bg-[#f7f7f7]">
|
||||
<div className="gap-5 flex flex-col px-4 lg:px-14">
|
||||
<p className="flex items-start text-lg">Berikan Komentar</p>
|
||||
<p className="flex items-start text-lg">{t("comment")}</p>
|
||||
<Textarea placeholder="Type your comments here." className="flex w-full pb-12" onChange={getInputValue} />
|
||||
<button onClick={() => postData()} className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-4 py-1">
|
||||
Kirim
|
||||
{t("send")}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
|
|
@ -586,11 +594,11 @@ const DetailDocument = () => {
|
|||
onClick={() => showInput(`comment-id-${data.id}`)}
|
||||
className="mr-2"
|
||||
>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Balas</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("reply")}</small>
|
||||
</a>
|
||||
{Number(data.suggestionFrom?.id) == Number(userId) || Number(userRoleId) == 2 ? (
|
||||
<a onClick={() => deleteData(data.id)}>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Hapus</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("delete")}</small>
|
||||
</a>
|
||||
) : (
|
||||
""
|
||||
|
|
@ -600,13 +608,13 @@ const DetailDocument = () => {
|
|||
</div>
|
||||
{visibleInput === `comment-id-${data.id}` && (
|
||||
<div id={`comment-id-${data.id}`} className="px-4 pl-[72px] lg:px-14 lg:pl-32 mt-2 ">
|
||||
<Textarea id={`input-comment-${data.id}`} className="p-4 focus:outline-none focus:border-sky-500" placeholder="Masukkan balasan anda" />
|
||||
<Textarea id={`input-comment-${data.id}`} className="p-4 focus:outline-none focus:border-sky-500" placeholder={t("enterReply")} />
|
||||
<div className="flex flex-row gap-3">
|
||||
<a onClick={() => postDataChild(data.id)}>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 mt-2 cursor-pointer">Kirim</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 mt-2 cursor-pointer">{t("send")}</small>
|
||||
</a>
|
||||
<a onClick={() => showInput(`comment-id-${data.id}`)}>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg mt-2 w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Batal</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg mt-2 w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("cancel")}</small>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -635,7 +643,7 @@ const DetailDocument = () => {
|
|||
}
|
||||
onClick={() => showInput(`comment-id-${child1.id}`)}
|
||||
>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Balas</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("reply")}</small>
|
||||
</a>
|
||||
<a
|
||||
style={
|
||||
|
|
@ -647,7 +655,7 @@ const DetailDocument = () => {
|
|||
}
|
||||
onClick={() => deleteData(child1.id)}
|
||||
>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Hapus</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("delete")}</small>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -655,13 +663,13 @@ const DetailDocument = () => {
|
|||
|
||||
{visibleInput === `comment-id-${child1.id}` && (
|
||||
<div id={`comment-id-${child1.id}`} className="px-4 lg:px-14 pl-28 lg:pl-[200px]">
|
||||
<Textarea name="" className="mt-2 " id={`input-comment-${child1.id}`} placeholder="Masukkan balasan anda" />
|
||||
<Textarea name="" className="mt-2 " id={`input-comment-${child1.id}`} placeholder={t("enterReply")} />
|
||||
<div className="flex flex-row mt-2 gap-3">
|
||||
<a onClick={() => postDataChild(child1.id)}>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Kirim</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("send")}</small>
|
||||
</a>
|
||||
<a onClick={() => showInput(`comment-id-${child1.id}`)}>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Batal</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("cancel")}</small>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -690,7 +698,7 @@ const DetailDocument = () => {
|
|||
}
|
||||
onClick={() => showInput(`comment-id-${child2.id}`)}
|
||||
>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Balas</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("reply")}</small>
|
||||
</a>
|
||||
<a
|
||||
style={
|
||||
|
|
@ -702,20 +710,20 @@ const DetailDocument = () => {
|
|||
}
|
||||
onClick={() => deleteData(child2.id)}
|
||||
>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Hapus</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("delete")}</small>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{visibleInput === `comment-id-${child2.id}` && (
|
||||
<div id={`comment-id-${child2.id}`} className="px-4 lg:px-14 pl-40 lg:pl-[265px]">
|
||||
<Textarea name="" id={`input-comment-${child2.id}`} className="my-2" placeholder="Masukkan balasan anda" />
|
||||
<Textarea name="" id={`input-comment-${child2.id}`} className="my-2" placeholder={t("enterReply")} />
|
||||
<div className="flex flex-row gap-3">
|
||||
<a onClick={() => postDataChild(child2.id)}>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Kirim</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("send")}</small>
|
||||
</a>
|
||||
<a onClick={() => showInput(`comment-id-${child2.id}`)}>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">Batal</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("cancel")}</small>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import Swal from "sweetalert2";
|
|||
import parse from "html-react-parser";
|
||||
import { Skeleton } from "@/components/ui/skeleton";
|
||||
import { useTranslations } from "next-intl";
|
||||
import Image from "next/image";
|
||||
|
||||
const DetailInfo = () => {
|
||||
const MySwal = withReactContent(Swal);
|
||||
|
|
@ -444,7 +445,7 @@ const DetailInfo = () => {
|
|||
</div>
|
||||
) : (
|
||||
<div className="relative">
|
||||
<img src={detailDataImage?.files[selectedImage]?.url} alt="Main" className="rounded-lg w-auto h-fit" />
|
||||
<Image width={2560} height={1440} src={detailDataImage?.files[selectedImage]?.url} alt="Main" className="rounded-lg w-auto h-fit" />
|
||||
<div className="absolute top-4 left-4"></div>
|
||||
</div>
|
||||
)}
|
||||
|
|
@ -460,7 +461,7 @@ const DetailInfo = () => {
|
|||
<div className="py-4 flex flex-row gap-3">
|
||||
{detailDataImage?.files?.map((file: any, index: number) => (
|
||||
<a onClick={() => setSelectedImage(index)} key={file?.id}>
|
||||
<img src={file?.url} className="w-[120px] h-[90px] object-cover rounded-md cursor-pointer hover:ring-2 hover:ring-red-600" />
|
||||
<Image width={1920} height={1080} alt="image-small" src={file?.url} className="w-[120px] h-[90px] object-cover rounded-md cursor-pointer hover:ring-2 hover:ring-red-600" />
|
||||
</a>
|
||||
))}
|
||||
</div>
|
||||
|
|
@ -473,7 +474,7 @@ const DetailInfo = () => {
|
|||
{t("by")} <span className="font-semibold text-black">{detailDataImage?.uploadedBy?.userLevel?.name}</span>
|
||||
</p>
|
||||
<p className="text-xs lg:text-sm">
|
||||
| {t("updateOn")}
|
||||
| {t("updatedOn")}
|
||||
{detailDataImage?.updatedAt} WIB |
|
||||
</p>
|
||||
<p className="text-xs lg:text-sm flex justify-center items-center">
|
||||
|
|
@ -614,7 +615,7 @@ const DetailInfo = () => {
|
|||
{listSuggestion?.map((data: any) => (
|
||||
<div className="flex flex-col">
|
||||
<div className="flex flex-row mt-2 px-4 lg:px-14">
|
||||
<img src={data?.suggestionFrom?.profilePictureUrl} className="h-12 lg:h-16 w-12 lg:w-16 mr-2" onError={addDefaultProfile} alt="" />
|
||||
<Image width={1080} height={1080} src={data?.suggestionFrom?.profilePictureUrl} className="h-12 lg:h-16 w-12 lg:w-16 mr-2" onError={addDefaultProfile} alt="" />
|
||||
<div className="border border-slate-300 w-full p-2 lg:p-4 bg-white gap-1">
|
||||
<p className="text-slate-500 text-sm lg:text-base border-b-2 border-slate-200 mb-2">
|
||||
{Number(data.suggestionFrom?.roleId) == 2 || Number(data.suggestionFrom?.roleId) == 3 || Number(data.suggestionFrom?.roleId) == 4 ? "HUMAS POLRI" : data.suggestionFrom?.fullname}
|
||||
|
|
@ -663,7 +664,7 @@ const DetailInfo = () => {
|
|||
? data.children?.map((child1: any) => (
|
||||
<div className="flex flex-col">
|
||||
<div className="flex flex-row mt-2 px-4 lg:pr-14 pl-16 lg:pl-32">
|
||||
<img src={child1.suggestionFrom?.profilePictureUrl} onError={addDefaultProfile} alt="" className="h-10 lg:h-16 w-10 lg:w-16 mr-2" />
|
||||
<Image width={1080} height={1080} src={child1.suggestionFrom?.profilePictureUrl} onError={addDefaultProfile} alt="" className="h-10 lg:h-16 w-10 lg:w-16 mr-2" />
|
||||
<div className="border border-slate-300 w-full p-2 lg:p-4 bg-white gap-1">
|
||||
<p className="text-slate-500 text-sm lg:text-base border-b-2 border-slate-200 mb-2">
|
||||
{" "}
|
||||
|
|
@ -718,7 +719,7 @@ const DetailInfo = () => {
|
|||
? child1.children?.map((child2: any) => (
|
||||
<div className="">
|
||||
<div className="flex flex-row mt-2 px-4 lg:pr-14 pl-28 lg:pl-48">
|
||||
<img src={child2.suggestionFrom?.profilePictureUrl} className="h-9 lg:h-16 w-9 lg:w-16 mr-2" onError={addDefaultProfile} alt="" />
|
||||
<Image width={1080} height={1080} src={child2.suggestionFrom?.profilePictureUrl} className="h-9 lg:h-16 w-9 lg:w-16 mr-2" onError={addDefaultProfile} alt="" />
|
||||
<div className="border border-slate-300 w-full p-2 lg:p-4 bg-white gap-1">
|
||||
<p className="text-slate-500 text-sm lg:text-base border-b-2 border-slate-200 mb-2">
|
||||
{" "}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import { close, loading } from "@/config/swal";
|
|||
import { useTranslations } from "next-intl";
|
||||
import ImageBlurry from "@/components/ui/image-blurry";
|
||||
import { Skeleton } from "@/components/ui/skeleton";
|
||||
import Image from "next/image";
|
||||
|
||||
const columns: ColumnDef<any>[] = [
|
||||
{
|
||||
|
|
@ -537,7 +538,7 @@ const FilterPage = () => {
|
|||
</div>
|
||||
) : (
|
||||
<p className="flex items-center justify-center text-black">
|
||||
<img src="/assets/empty-data.png" alt="empty" className="h-60 w-60 my-4" />
|
||||
<Image width={1920} height={1080} src="/assets/empty-data.png" alt="empty" className="h-60 w-60 my-4" />
|
||||
</p>
|
||||
)}
|
||||
</>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ import { Icon } from "@iconify/react/dist/iconify.js";
|
|||
import { getCookiesDecrypt } from "@/lib/utils";
|
||||
import { close, loading } from "@/config/swal";
|
||||
import { Input } from "@/components/ui/input";
|
||||
import { useTranslations } from "next-intl";
|
||||
import Image from "next/image";
|
||||
|
||||
const IndeksDetail = () => {
|
||||
const searchParams = useSearchParams();
|
||||
|
|
@ -24,6 +26,7 @@ const IndeksDetail = () => {
|
|||
const userRoleId = getCookiesDecrypt("urie");
|
||||
const router: any = useRouter();
|
||||
const [listComments, setListComments] = useState([]);
|
||||
const t = useTranslations("LandingPage");
|
||||
|
||||
useEffect(() => {
|
||||
initFetch();
|
||||
|
|
@ -154,18 +157,18 @@ const IndeksDetail = () => {
|
|||
<div className="p-4 lg:px-60 lg:p-12">
|
||||
{/* Judul */}
|
||||
<div className="flex flex-col mb-5">
|
||||
<h1 className="text-base lg:text-lg mb-2">Indeks / Detail</h1>
|
||||
<h1 className="text-base lg:text-lg mb-2">Index / Detail</h1>
|
||||
<h1 className="flex flex-row font-bold text-center text-lg lg:text-2xl">{indeksData?.title}</h1>
|
||||
</div>
|
||||
{/* Gambar Utama */}
|
||||
<div className="flex items-center justify-center">
|
||||
<img src={indeksData?.thumbnailLink} alt="Main" className="h-fit lg:h-[550px] w-full rounded-lg" />
|
||||
<Image width={2560} height={1440} src={indeksData?.thumbnailLink} alt="Main" className="h-fit lg:h-[550px] w-full rounded-lg" />
|
||||
</div>
|
||||
{/* Footer Informasi */}
|
||||
<div className="text-gray-500 flex border-t mt-4">
|
||||
<div className="flex mt-2">
|
||||
<p className="text-sm lg:text-base mb-2">
|
||||
oleh <span className="font-semibold text-black">{indeksData?.uploaderName}</span> | Diupdate pada {indeksData?.createdAt} WIB
|
||||
<p className="text-xs lg:text-sm mb-2">
|
||||
{t("by")} <span className="font-semibold text-black">{indeksData?.uploaderName}</span> | {t("updatedOn")} {indeksData?.createdAt} WIB
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -180,10 +183,10 @@ const IndeksDetail = () => {
|
|||
<div className="w-full">
|
||||
<div className="flex flex-col py-5 p-0 lg:p-10 bg-[#f7f7f7]">
|
||||
<div className="gap-5 flex flex-col px-4 lg:px-16">
|
||||
<p className="flex items-start text-bases lg:text-lg">Berikan Komentar</p>
|
||||
<p className="flex items-start text-bases lg:text-lg">{t("comment")}</p>
|
||||
<Textarea placeholder="Type your comments here." className="flex w-full" onChange={getInputValue} value={message} />
|
||||
<button className="flex items-start bg-[#bb3523] text-white rounded-lg text-sm lg:text-base w-fit px-3 lg:px-4 py-1" onClick={() => postData()}>
|
||||
Kirim
|
||||
{t("send")}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
|
|
@ -193,7 +196,7 @@ const IndeksDetail = () => {
|
|||
{listComments?.map((data: any) => (
|
||||
<div className="flex flex-col">
|
||||
<div className="flex flex-row mt-2 px-4 lg:px-14">
|
||||
<img className="h-10 lg:h-20 w-10 lg:w-20" src="/assets/img/user-avatar-yellow.svg" alt="#" />
|
||||
<Image width={512} height={512} className="h-10 lg:h-20 w-10 lg:w-20" src="/assets/img/user-avatar-yellow.svg" alt="#" />
|
||||
<div className="border border-slate-300 w-full p-4 bg-white gap-1">
|
||||
<p className="flex justify-between text-sm text-slate-500 lg:text-base border-b-2 border-slate-200 mb-2">
|
||||
<b>{Number(data.commentFrom?.roleId) == 2 || Number(data.commentFrom?.roleId) == 3 || Number(data.commentFrom?.roleId) == 4 ? "HUMAS POLRI" : data.commentFrom?.fullname}</b>
|
||||
|
|
@ -202,7 +205,7 @@ const IndeksDetail = () => {
|
|||
<p className="text-slate-500 text-sm lg:text-base mb-4">{data.message}</p>
|
||||
<div className="gap-3">
|
||||
<a href="javascript:void(0)" className="text-xs lg:text-sm mr-2 bg-blue-500 text-white py-1 px-2 hover:bg-blue-300 hover:text-black rounded-md" onClick={() => showInput(`comment-id-${data.id}`)}>
|
||||
Balas
|
||||
{t("reply")}
|
||||
</a>
|
||||
<a
|
||||
href="javascript:void(0)"
|
||||
|
|
@ -216,22 +219,22 @@ const IndeksDetail = () => {
|
|||
className="text-xs lg:text-sm bg-red-500 text-white py-1 px-2 hover:bg-red-300 hover:text-black rounded-md"
|
||||
onClick={() => deleteData(data.id)}
|
||||
>
|
||||
Hapus
|
||||
{t("delete")}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex flex-row px-4 pl-[55px] lg:px-14 lg:pl-[135px] mt-2" id={`comment-id-${data.id}`}>
|
||||
<Input type="text" id={`input-comment-${data.id}`} className="p-4 focus:outline-none focus:border-sky-500" placeholder="Masukkan balasan anda" />
|
||||
<Input type="text" id={`input-comment-${data.id}`} className="p-4 focus:outline-none focus:border-sky-500" placeholder={t("enterReply")} />
|
||||
<a href="javascript:void(0)" className="flex py-1 px-2 rounded-md items-center ml-2 bg-[#f7b357] text-white text-sm lg:text-base" onClick={() => postDataChild(data.id)}>
|
||||
Send
|
||||
{t("send")}
|
||||
</a>
|
||||
</div>
|
||||
{data.children.length > 0
|
||||
? data.children?.map((child1: any) => (
|
||||
<div className="flex flex-col">
|
||||
<div className="flex flex-row mt-2 px-4 lg:pr-14 pl-12 lg:pl-32">
|
||||
<img className="h-10 lg:h-20 w-10 lg:w-20" src="/assets/img/user-avatar-yellow.svg" alt="#" />
|
||||
<Image width={512} height={512} className="h-10 lg:h-20 w-10 lg:w-20" src="/assets/img/user-avatar-yellow.svg" alt="#" />
|
||||
<div className="border border-slate-300 w-full p-4 bg-white gap-1">
|
||||
<p className="flex justify-between text-slate-500 text-sm lg:text-base border-b-2 border-slate-200 mb-2">
|
||||
<b>{Number(child1.commentFrom?.roleId) == 2 || Number(child1.commentFrom?.roleId) == 3 || Number(child1.commentFrom?.roleId) == 4 ? "HUMAS POLRI" : child1.commentFrom?.fullname}</b>
|
||||
|
|
@ -242,7 +245,7 @@ const IndeksDetail = () => {
|
|||
<p className="text-slate-500 text-sm mb-4">{child1.message}</p>
|
||||
<div className="gap-3">
|
||||
<a href="javascript:void(0)" className="mr-2 text-xs lg:text-sm bg-blue-500 text-white py-1 px-2 hover:bg-blue-300 hover:text-black rounded-md" onClick={() => showInput(`comment-id-${child1.id}`)}>
|
||||
Balas
|
||||
{t("reply")}
|
||||
</a>
|
||||
<a
|
||||
href="javascript:void(0)"
|
||||
|
|
@ -256,22 +259,22 @@ const IndeksDetail = () => {
|
|||
}
|
||||
onClick={() => deleteData(child1.id)}
|
||||
>
|
||||
Hapus
|
||||
{t("delete")}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex flex-row justify-center px-4 pl-[87px] lg:px-14 lg:pl-[205px] mt-2" id={`comment-id-${child1.id}`}>
|
||||
<Input type="text" id={`input-comment-${child1.id}`} className="p-4 focus:outline-none focus:border-sky-500" placeholder="Masukkan balasan anda" />
|
||||
<Input type="text" id={`input-comment-${child1.id}`} className="p-4 focus:outline-none focus:border-sky-500" placeholder={t("enterReply")} />
|
||||
<a href="javascript:void(0)" className="flex text-sm lg:text-base py-1 px-2 rounded-md items-center ml-2 bg-[#f7b357] text-white" onClick={() => postDataChild(child1.id)}>
|
||||
Send
|
||||
{t("send")}
|
||||
</a>
|
||||
</div>
|
||||
{child1.children.length > 0
|
||||
? child1.children?.map((child2: any) => (
|
||||
<div className="flex flex-col">
|
||||
<div className="flex flex-row mt-2 px-4 lg:pr-14 pl-20 lg:pl-48">
|
||||
<img className="h-10 lg:h-20 w-10 lg:w-20" src="/assets/img/user-avatar-yellow.svg" alt="#" />
|
||||
<Image width={512} height={512} className="h-10 lg:h-20 w-10 lg:w-20" src="/assets/img/user-avatar-yellow.svg" alt="#" />
|
||||
<div className="border border-slate-300 w-full p-4 bg-white gap-2">
|
||||
<p className="flex justify-between text-slate-500 text-xs lg:text-base border-b-2 border-slate-200 mb-2">
|
||||
<b>{Number(child2.commentFrom?.roleId) == 2 || Number(child2.commentFrom?.roleId) == 3 || Number(child2.commentFrom?.roleId) == 4 ? "HUMAS POLRI" : child2.commentFrom?.fullname}</b>
|
||||
|
|
@ -282,7 +285,7 @@ const IndeksDetail = () => {
|
|||
<p className="text-slate-500 text-sm mb-4">{child2.message}</p>
|
||||
<div>
|
||||
<a href="javascript:void(0)" className="mr-2 text-xs lg:text-sm bg-blue-500 text-white py-1 px-2 hover:bg-blue-300 hover:text-black rounded-md" onClick={() => showInput("comment-id-" + child2.id)}>
|
||||
Balas
|
||||
{t("reply")}
|
||||
</a>
|
||||
<a
|
||||
href="javascript:void(0)"
|
||||
|
|
@ -296,15 +299,15 @@ const IndeksDetail = () => {
|
|||
}
|
||||
onClick={() => deleteData(child2.id)}
|
||||
>
|
||||
Hapus
|
||||
{t("delete")}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex flex-row px-4 pl-[120px] lg:px-14 lg:pl-[270px] mt-2" id={`comment-id-${child2.id}`}>
|
||||
<Input type="text" id={`comment-id-${child2.id}`} className="p-4 focus:outline-none focus:border-sky-500" placeholder="Masukkan balasan anda" />
|
||||
<Input type="text" id={`comment-id-${child2.id}`} className="p-4 focus:outline-none focus:border-sky-500" placeholder={t("enterReply")} />
|
||||
<a href="javascript:void(0)" className="flex text-sm lg:text-base py-1 px-2 rounded-md items-center ml-2 bg-[#f7b357] text-white" onClick={() => postDataChild(child1.id)}>
|
||||
Send
|
||||
{t("send")}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -320,13 +323,13 @@ const IndeksDetail = () => {
|
|||
|
||||
{/* Konten Serupa */}
|
||||
<div className="space-x-5 flex flex-col px-4 lg:px-16 py-16 gap-5">
|
||||
<h1 className="font-bold text-base lg:text-xl px-4 lg:px-8">Post Terkait</h1>
|
||||
<h1 className="font-bold text-base lg:text-xl px-4 lg:px-8"> {t("relatedPosts")}</h1>
|
||||
<Carousel>
|
||||
<CarouselContent className="w-full max-w-7xl">
|
||||
{indexData?.map((relate: any) => (
|
||||
<CarouselItem key={relate?.id} className="md:basis-1/2 lg:basis-1/3">
|
||||
<Link href={`/indeks/detail/${relate?.slug}`} className="relative group overflow-hidden shadow-md hover:shadow-lg">
|
||||
<img src={relate?.thumbnailLink} className="w-full rounded-lg h-40 lg:h-60 object-cover group-hover:scale-100 transition-transform duration-300" />
|
||||
<Image alt="" width={2560} height={1440} src={relate?.thumbnailLink} className="w-full rounded-lg h-40 lg:h-60 object-cover group-hover:scale-100 transition-transform duration-300" />
|
||||
<div className="absolute bottom-0 left-0 right-0 bg-gray-600 border-l-4 border-[#bb3523] rounded-lg backdrop-blur-sm text-white p-2">
|
||||
<span className="text-white bg-[#bb3523] rounded-md w-full h-full font-semibold uppercase text-sm px-4 py-1">{relate?.categoryName}</span>
|
||||
<h1 className="text-sm lg:text-lg mb-2 font-semibold h-5 hover:h-auto truncate hover:whitespace-normal hover:overflow-visible">{relate?.title}</h1>
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import { Skeleton } from "@/components/ui/skeleton";
|
|||
import { Link } from "@/i18n/routing";
|
||||
import { getIndeksData } from "@/service/landing/landing";
|
||||
import { formatDateToIndonesian } from "@/utils/globals";
|
||||
import Image from "next/image";
|
||||
import { usePathname } from "next/navigation";
|
||||
import React, { useEffect, useState } from "react";
|
||||
|
||||
|
|
@ -53,14 +54,14 @@ const Indeks: React.FC = () => {
|
|||
(indeks: any, index: number) =>
|
||||
index == count && (
|
||||
<div key={indeks?.id} className="relative h-[310px] lg:h-[435px]">
|
||||
<img src={indeks?.thumbnailLink} alt="image" className="w-full h-[310px] lg:h-[435px] rounded-lg object-cover" />
|
||||
<Image width={2560} height={1440} src={indeks?.thumbnailLink} alt="image" className="w-full h-[310px] lg:h-[435px] rounded-lg object-cover" />
|
||||
<div className="absolute bottom-0 left-0 right-0 bg-transparent backdrop-blur-sm text-white p-4 rounded-b-lg">
|
||||
<span className="text-white bg-[#bb3523] rounded-md w-full h-full font-semibold uppercase text-xs px-2 py-1">{indeks?.categoryName}</span>
|
||||
<Link href={`/indeks/detail/${indeks?.slug}`}>
|
||||
<h2 className="text-2xl font-bold mt-2">{indeks?.title}</h2>
|
||||
</Link>
|
||||
<p className="text-xs flex flex-row items-center gap-1 mt-1 ml-2">
|
||||
{formatDateToIndonesian(new Date(indeks?.createdAt))} {indeks?.timezone ? indeks?.timezone : "WIB"}|{" "}
|
||||
<p className="text-xs flex flex-row items-center gap-1 mt-1">
|
||||
{formatDateToIndonesian(new Date(indeks?.createdAt))} {indeks?.timezone ? indeks?.timezone : "WIB"} | {" "}
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1.2em" height="1.2em" viewBox="0 0 24 24">
|
||||
<path
|
||||
fill="currentColor"
|
||||
|
|
@ -91,7 +92,7 @@ const Indeks: React.FC = () => {
|
|||
(indeksRight: any, index: number) =>
|
||||
(index == count + 1 || index == count + 2) && (
|
||||
<div key={indeksRight?.id} className="relative h-[310px] lg:h-[215px]">
|
||||
<img src={indeksRight?.thumbnailLink} alt="image" className="w-full h-[310px] lg:h-[215px] rounded-lg " />
|
||||
<Image width={1920} height={1080} src={indeksRight?.thumbnailLink} alt="image" className="w-full h-[310px] lg:h-[215px] rounded-lg " />
|
||||
<div className="absolute bottom-0 left-0 right-0 bg-transparent backdrop-blur-sm text-white p-4 rounded-b-lg">
|
||||
<span className="text-white bg-[#bb3523] rounded-md w-full h-full font-semibold uppercase text-xs px-2 py-1">{indeksRight?.categoryName}</span>
|
||||
<Link href={`/indeks/detail/${indeksRight?.slug}`}>
|
||||
|
|
@ -148,7 +149,7 @@ const Indeks: React.FC = () => {
|
|||
(indeksBottom: any, index: number) =>
|
||||
index < 3 && (
|
||||
<div key={indeksBottom?.id} className="flex flex-col md:flex-row items-start p-4 gap-4">
|
||||
<img src={indeksBottom?.thumbnailLink} alt="" className="h-40 object-cover rounded-lg w-full lg:w-full lg:h-[300px]" />
|
||||
<Image width={2560} height={1440} src={indeksBottom?.thumbnailLink} alt="" className="h-40 object-cover rounded-lg w-full lg:w-full lg:h-[300px]" />
|
||||
<div className="flex flex-col justify-between w-full">
|
||||
<p className="text-sm">{indeksBottom?.date}</p>
|
||||
<Link href={`/indeks/detail/${indeksBottom?.slug}`} className="text-2xl font-semibold text-gray-800">
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
"use client";
|
||||
import { Link } from "@/components/navigation";
|
||||
import Image from "next/image";
|
||||
import React, { useState } from "react";
|
||||
|
||||
const ChangeProfile: React.FC = () => {
|
||||
|
|
@ -36,55 +37,29 @@ const ChangeProfile: React.FC = () => {
|
|||
|
||||
<div className="flex justify-center gap-4 mb-8">
|
||||
<Link href={"/profile"}>
|
||||
<button className="border border-red-700 text-red-700 px-4 py-2 rounded">
|
||||
User Profile
|
||||
</button>
|
||||
<button className="border border-red-700 text-red-700 px-4 py-2 rounded">User Profile</button>
|
||||
</Link>
|
||||
<Link href={"/profile/change-profile"}>
|
||||
<button className="bg-red-700 text-white px-4 py-2 rounded">
|
||||
Ubah Foto
|
||||
</button>
|
||||
<button className="bg-red-700 text-white px-4 py-2 rounded">Ubah Foto</button>
|
||||
</Link>
|
||||
<Link href={"/profile/change-password"}>
|
||||
<button className="border border-red-700 text-red-700 px-4 py-2 rounded">
|
||||
Ubah Password
|
||||
</button>
|
||||
<button className="border border-red-700 text-red-700 px-4 py-2 rounded">Ubah Password</button>
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
<div className="w-80 mx-auto bg-gray-900 text-white shadow-md p-8 rounded">
|
||||
<div className="flex justify-center mb-6">
|
||||
<div className="w-40 h-40 rounded-full border border-gray-300 flex items-center justify-center">
|
||||
{selectedImage ? (
|
||||
<img
|
||||
src={URL.createObjectURL(selectedImage)}
|
||||
alt="Preview"
|
||||
className="w-full h-full rounded-full object-cover"
|
||||
/>
|
||||
) : (
|
||||
<span className="text-gray-500">No Image</span>
|
||||
)}
|
||||
{selectedImage ? <Image width={1920} height={1080} src={URL.createObjectURL(selectedImage)} alt="Preview" className="w-full h-full rounded-full object-cover" /> : <span className="text-gray-500">No Image</span>}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex justify-center gap-4">
|
||||
<input
|
||||
type="file"
|
||||
id="upload"
|
||||
accept="image/*"
|
||||
className="hidden"
|
||||
onChange={handleImageChange}
|
||||
/>
|
||||
<label
|
||||
htmlFor="upload"
|
||||
className="bg-blue-600 text-white px-4 py-2 rounded cursor-pointer"
|
||||
>
|
||||
<input type="file" id="upload" accept="image/*" className="hidden" onChange={handleImageChange} />
|
||||
<label htmlFor="upload" className="bg-blue-600 text-white px-4 py-2 rounded cursor-pointer">
|
||||
Ganti Foto
|
||||
</label>
|
||||
<button
|
||||
onClick={handleDelete}
|
||||
className="border border-red-700 text-red-700 px-4 py-2 rounded"
|
||||
>
|
||||
<button onClick={handleDelete} className="border border-red-700 text-red-700 px-4 py-2 rounded">
|
||||
Hapus Foto
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import withReactContent from "sweetalert2-react-content";
|
|||
import Swal from "sweetalert2";
|
||||
import parse from "html-react-parser";
|
||||
import { useTranslations } from "next-intl";
|
||||
import Image from "next/image";
|
||||
|
||||
const DetailVideo = () => {
|
||||
const [selectedSize, setSelectedSize] = useState<string>("L");
|
||||
|
|
@ -440,7 +441,7 @@ const DetailVideo = () => {
|
|||
{t("by")} <span className="font-semibold text-black">{detailDataVideo?.uploadedBy?.userLevel?.name}</span>
|
||||
</p>
|
||||
<p className="text-xs lg:text-sm">
|
||||
| {t("updateOn")}
|
||||
| {t("updatedOn")}
|
||||
{detailDataVideo?.updatedAt} WIB |
|
||||
</p>
|
||||
<p className="text-xs lg:text-sm flex justify-center items-center">
|
||||
|
|
@ -536,7 +537,7 @@ const DetailVideo = () => {
|
|||
|
||||
{/* Tombol Bagikan */}
|
||||
<div className="flex flex-row justify-center py-3">
|
||||
<p className="text-base font-semibold">Bagikan</p>
|
||||
<p className="text-base font-semibold">{t("share")}</p>
|
||||
<a className="ml-8 cursor-pointer" onClick={() => handleShare("fb", `https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fmediahub.polri.go.id%2F${typeString}%2Fdetail%2F${content?.id}"e=${content?.title}`)}>
|
||||
<Icon icon="brandico:facebook" height="20" className="px-auto text-red-600 text-center" />
|
||||
</a>
|
||||
|
|
@ -557,7 +558,7 @@ const DetailVideo = () => {
|
|||
<h1 className="mb-2">{t("shareTo")}</h1>
|
||||
<div className="flex flex-col mb-2">
|
||||
<p className="text-base font-semibold mb-1">{t("destinationEmail")}</p>
|
||||
<Input value={emailShareInput} onChange={(event) => setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder="Tekan Enter untuk input Email" />
|
||||
<Input value={emailShareInput} onChange={(event) => setEmailShareInput(event.target.value)} onKeyPress={handleEmailList} type="email" placeholder={t("pressEnter")} />
|
||||
</div>
|
||||
<Button className="bg-blue-500 text-white p-2 w-fit rounded-lg" onClick={() => shareToEmail()}>
|
||||
{t("send")}
|
||||
|
|
@ -586,7 +587,7 @@ const DetailVideo = () => {
|
|||
{listSuggestion?.map((data: any) => (
|
||||
<div className="flex flex-col">
|
||||
<div className="flex flex-row mt-2 px-4 lg:px-14">
|
||||
<img src={data?.suggestionFrom?.profilePictureUrl} className="h-12 lg:h-16 w-12 lg:w-16 mr-2" onError={addDefaultProfile} alt="" />
|
||||
<Image width={1080} height={1080} src={data?.suggestionFrom?.profilePictureUrl} className="h-12 lg:h-16 w-12 lg:w-16 mr-2" onError={addDefaultProfile} alt="" />
|
||||
<div className="border border-slate-300 w-full p-2 lg:p-4 bg-white gap-1">
|
||||
<p className="text-slate-500 text-sm lg:text-base border-b-2 border-slate-200 mb-2">
|
||||
{Number(data.suggestionFrom?.roleId) == 2 || Number(data.suggestionFrom?.roleId) == 3 || Number(data.suggestionFrom?.roleId) == 4 ? "HUMAS POLRI" : data.suggestionFrom?.fullname}
|
||||
|
|
@ -635,7 +636,7 @@ const DetailVideo = () => {
|
|||
? data.children?.map((child1: any) => (
|
||||
<div className="flex flex-col">
|
||||
<div className="flex flex-row mt-2 px-4 lg:pr-14 pl-16 lg:pl-32">
|
||||
<img src={child1.suggestionFrom?.profilePictureUrl} onError={addDefaultProfile} alt="" className="h-10 lg:h-16 w-10 lg:w-16 mr-2" />
|
||||
<Image width={1080} height={1080} src={child1.suggestionFrom?.profilePictureUrl} onError={addDefaultProfile} alt="" className="h-10 lg:h-16 w-10 lg:w-16 mr-2" />
|
||||
<div className="border border-slate-300 w-full p-2 lg:p-4 bg-white gap-1">
|
||||
<p className="text-slate-500 text-sm lg:text-base border-b-2 border-slate-200 mb-2">
|
||||
{" "}
|
||||
|
|
@ -689,7 +690,7 @@ const DetailVideo = () => {
|
|||
? child1.children?.map((child2: any) => (
|
||||
<div className="">
|
||||
<div className="flex flex-row mt-2 px-4 lg:pr-14 pl-28 lg:pl-48">
|
||||
<img src={child2.suggestionFrom?.profilePictureUrl} className="h-9 lg:h-16 w-9 lg:w-16 mr-2" onError={addDefaultProfile} alt="" />
|
||||
<Image width={1080} height={1080} src={child2.suggestionFrom?.profilePictureUrl} className="h-9 lg:h-16 w-9 lg:w-16 mr-2" onError={addDefaultProfile} alt="" />
|
||||
<div className="border border-slate-300 w-full p-2 lg:p-4 bg-white gap-1">
|
||||
<p className="text-slate-500 text-sm lg:text-base border-b-2 border-slate-200 mb-2">
|
||||
{" "}
|
||||
|
|
@ -720,7 +721,7 @@ const DetailVideo = () => {
|
|||
}
|
||||
onClick={() => deleteData(child2.id)}
|
||||
>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("cancel")}</small>
|
||||
<small className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-2 text-xs lg:text-base lg:px-4 py-1 cursor-pointer">{t("delete")}</small>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import { close, loading } from "@/config/swal";
|
|||
import { useTranslations } from "next-intl";
|
||||
import ImageBlurry from "@/components/ui/image-blurry";
|
||||
import { Skeleton } from "@/components/ui/skeleton";
|
||||
import Image from "next/image";
|
||||
|
||||
const columns: ColumnDef<any>[] = [
|
||||
{
|
||||
|
|
@ -562,7 +563,7 @@ const FilterPage = () => {
|
|||
</div>
|
||||
) : (
|
||||
<p className="flex items-center justify-center">
|
||||
<img src="/assets/empty-data.png" alt="empty" className="h-60 w-60 my-4" />
|
||||
<Image width={1920} height={1080} src="/assets/empty-data.png" alt="empty" className="h-60 w-60 my-4" />
|
||||
</p>
|
||||
)}
|
||||
</>
|
||||
|
|
|
|||
|
|
@ -13,14 +13,16 @@ import Image from "next/image";
|
|||
import Social from "@/components/partials/auth/social";
|
||||
import Copyright from "@/components/partials/auth/copyright";
|
||||
import Logo from "@/components/partials/auth/logo";
|
||||
import { useTranslations } from "next-intl";
|
||||
|
||||
const Login = ({ params: { locale } }: { params: { locale: string } }) => {
|
||||
const t = useTranslations("LandingPage");
|
||||
|
||||
return (
|
||||
<>
|
||||
<div className="flex w-full items-center overflow-hidden min-h-dvh h-dvh basis-full">
|
||||
<div className="overflow-y-auto flex flex-wrap w-full h-dvh">
|
||||
<div
|
||||
className="lg:block hidden flex-1 overflow-hidden text-[40px] leading-[48px] text-default-600 relative z-[1] bg-default-50"
|
||||
>
|
||||
<div className="lg:block hidden flex-1 overflow-hidden text-[40px] leading-[48px] text-default-600 relative z-[1] bg-default-50">
|
||||
<div className="max-w-[520px] pt-16 ps-20 ">
|
||||
<Link href="/" className="mb-6 inline-block">
|
||||
<Image src="/assets/mediahub-logo.png" alt="" width={250} height={250} className="mb-10 w-full h-full" />
|
||||
|
|
@ -39,9 +41,9 @@ const Login = ({ params: { locale } }: { params: { locale: string } }) => {
|
|||
</Link>
|
||||
</div> */}
|
||||
<div className="text-left 2xl:mb-10 mb-4 mt-10">
|
||||
<h4 className="font-semibold text-3xl text-left">Silahkan masuk ke akun Anda terlebih dahulu</h4>
|
||||
<h4 className="font-semibold text-3xl text-left">{t("logInPlease")}</h4>
|
||||
<div className="text-default-500 text-base">
|
||||
Belum punya akun? <span className="text-red-500">registrasi</span>
|
||||
{t("acc")} <span className="text-red-500">{t("reg")}</span>
|
||||
</div>
|
||||
</div>
|
||||
<LoginForm />
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import { Textarea } from "@/components/ui/textarea";
|
|||
import { Icon } from "@/components/ui/icon";
|
||||
import dynamic from "next/dynamic";
|
||||
import sanitizeHtml from "sanitize-html";
|
||||
import { useTranslations } from "next-intl";
|
||||
|
||||
type Inputs = {
|
||||
example: string;
|
||||
|
|
@ -65,6 +66,7 @@ const page = () => {
|
|||
const [, setAssociation] = useState<any>();
|
||||
const [warningPassConf] = useState();
|
||||
const [otpValue, setOtpValue] = useState("");
|
||||
const t = useTranslations("LandingPage");
|
||||
|
||||
const [otp1, setOtp1] = useState();
|
||||
const [otp2, setOtp2] = useState();
|
||||
|
|
@ -86,16 +88,16 @@ const page = () => {
|
|||
};
|
||||
|
||||
const validationSchema = Yup.object().shape({
|
||||
firstName: Yup.string().required("Nama Lengkap tidak boleh kosong"),
|
||||
username: Yup.string().required("Username tidak boleh kosong"),
|
||||
phoneNumber: Yup.string().required("Nomor Telepon tidak boleh kosong"),
|
||||
address: Yup.string().required("Alamat tidak boleh kosong"),
|
||||
email: Yup.string().required("Email tidak boleh kosong"),
|
||||
provinsi: Yup.string().required("Provinsi tidak boleh kosong"),
|
||||
kota: Yup.string().required("Kota tidak boleh kosong"),
|
||||
kecamatan: Yup.string().required("Kecamatan tidak boleh kosong"),
|
||||
password: Yup.string().required("Kata Sandi tidak boleh kosong"),
|
||||
passwordConf: Yup.string().required("Konfirmasi Kata Sandi tidak boleh kosong"),
|
||||
firstName: Yup.string().required(t("nameEmpty")),
|
||||
username: Yup.string().required(t("usernameEmpty")),
|
||||
phoneNumber: Yup.string().required(t("numberEmpty")),
|
||||
address: Yup.string().required(t("addressEmpty")),
|
||||
email: Yup.string().required(t("emailEmpty")),
|
||||
provinsi: Yup.string().required(t("provinceEmpty")),
|
||||
kota: Yup.string().required(t("cityEmpty")),
|
||||
kecamatan: Yup.string().required(t("subdistrictEmpty")),
|
||||
password: Yup.string().required(t("passwordEmpty")),
|
||||
passwordConf: Yup.string().required(t("confirmEmpty")),
|
||||
});
|
||||
|
||||
const formOptions = {
|
||||
|
|
@ -356,7 +358,7 @@ const page = () => {
|
|||
setEmailValidate("");
|
||||
setEmail(e);
|
||||
} else {
|
||||
setEmailValidate("Email tidak valid");
|
||||
setEmailValidate(t("emailValid"));
|
||||
setEmail("");
|
||||
}
|
||||
};
|
||||
|
|
@ -560,11 +562,11 @@ const page = () => {
|
|||
: {}
|
||||
}
|
||||
>
|
||||
<p className="text-2xl lg:text-4xl px-0 lg:px-12 font-bold ">{stepThreeActive ? "Silahkan lengkapi data pengguna" : "Silahkan registrasi terlebih dahulu"}</p>
|
||||
<p className="text-2xl lg:text-4xl px-0 lg:px-12 font-bold ">{stepThreeActive ? t("userData") : t("registerFirst")}</p>
|
||||
<p className="px-0 lg:px-12 text-sm lg:text-base mt-2">
|
||||
Sudah memiliki akun?{" "}
|
||||
{t("alreadyHave")}{" "}
|
||||
<Link href="/auth" className="text-red-500">
|
||||
<b>Masuk</b>
|
||||
<b>{t("logIn")}</b>
|
||||
</Link>
|
||||
</p>
|
||||
</div>
|
||||
|
|
@ -578,14 +580,14 @@ const page = () => {
|
|||
: {}
|
||||
}
|
||||
>
|
||||
<p className="text-black text-2xl px-0 lg:px-20 font-semibold">Masukkan Kode OTP</p>
|
||||
<p className="text-red-500 text-sm px-0 lg:px-20">Silahkan cek inbox atau kotak spam pada email Anda.</p>
|
||||
<p className="text-black text-2xl px-0 lg:px-20 font-semibold">{t("enterOTP")}</p>
|
||||
<p className="text-red-500 text-sm px-0 lg:px-20">{t("checkInbox")}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={`flex flex-col gap-3 px-8 lg:px-12 ${formProfile == true || stepTwoActive ? "hidden" : ""}`}>
|
||||
<div
|
||||
className="flex flex-col"
|
||||
className="flex flex-col px-0 lg:px-8"
|
||||
style={
|
||||
Number(category) == 6
|
||||
? {}
|
||||
|
|
@ -595,11 +597,16 @@ const page = () => {
|
|||
}
|
||||
>
|
||||
<Label htmlFor="association" className="mb-2">
|
||||
Jenis Keanggotaan <span className="text-red-500">*</span>
|
||||
{t("member")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<select className={`py-2 px-1 rounded-md border border-slate-300 bg-white ${errors.association ? "block" : ""}`} {...register("association")} id="association" onChange={(e) => setAssociation(e.target.value)}>
|
||||
<select
|
||||
className={`py-2 px-1 rounded-md border text-sm text-slate-400 border-slate-300 bg-white ${errors.association ? "block" : ""}`}
|
||||
{...register("association")}
|
||||
id="association"
|
||||
onChange={(e) => setAssociation(e.target.value)}
|
||||
>
|
||||
<option disabled selected>
|
||||
Pilih Asosiasi
|
||||
{t("association")}
|
||||
</option>
|
||||
<option value="PWI" key="1">
|
||||
PWI (Persatuan Wartawan Indonesia)
|
||||
|
|
@ -614,7 +621,7 @@ const page = () => {
|
|||
AJI (Asosiasi Jurnalis Indonesia)
|
||||
</option>
|
||||
<option value="Wartawan" key="5">
|
||||
Identitas Lainnya
|
||||
{t("otherIdentity")}
|
||||
</option>
|
||||
</select>
|
||||
<div className="hidden w-full mt-[0.25rem] text-lg text-[#dc3545]">{errors.association?.message}</div>
|
||||
|
|
@ -623,7 +630,7 @@ const page = () => {
|
|||
{Number(category) == 7 ? (
|
||||
<div className="px-0 lg:px-[34px]">
|
||||
<label htmlFor="userIdentity" className="mb-3">
|
||||
<b>Nomor Registrasi Polri (NRP)</b> <span className="text-red-500">*</span>
|
||||
<b>{t("policeNumber")}</b> <span className="text-red-500">*</span>
|
||||
</label>
|
||||
<Input className="mt-3" autoComplete="off" placeholder="Masukan Nomor Registrasi Polri Anda" type="text" onChange={(event: any) => setPersonilNRP(event.target.value)} />
|
||||
<p className="text-red-500">{userIdentityValidate}</p>
|
||||
|
|
@ -643,9 +650,9 @@ const page = () => {
|
|||
}
|
||||
>
|
||||
<Label htmlFor="journalistCertificate">
|
||||
Nomor Sertifikasi Wartawan <span className="text-red-500">*</span>
|
||||
{t("journalistNumber")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<Input className="rounded-md py-3" autoComplete="off" placeholder="Masukan Nomor Sertifikasi" type="text" onChange={(event: any) => setJournalistCertificate(event.target.value)} />
|
||||
<Input className="rounded-md py-3" autoComplete="off" placeholder={t("inputJournalist")} type="text" onChange={(event: any) => setJournalistCertificate(event.target.value)} />
|
||||
</div>
|
||||
) : (
|
||||
""
|
||||
|
|
@ -654,7 +661,7 @@ const page = () => {
|
|||
<label htmlFor="email">
|
||||
<b>Email</b> <span className="text-red-500">*</span>
|
||||
</label>
|
||||
<Input className="w-full" autoComplete="off" placeholder="Masukkan Email Anda" type="email" onChange={(event) => checkEmail(event.target.value)} />
|
||||
<Input className="w-full" autoComplete="off" placeholder={t("inputEmail")} type="email" onChange={(event) => checkEmail(event.target.value)} />
|
||||
<p className="text-sm text-red-500 mt-1">{emailValidate}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -683,10 +690,10 @@ const page = () => {
|
|||
</p>
|
||||
<div className="flex flex-row px-0 lg:px-28 justify-between items-center my-4">
|
||||
<a className="bg-slate-300 text-center rounded-lg mr-1 w-[200px] py-2 text-base cursor-pointer" onClick={() => handleResendOTP()}>
|
||||
Kirim Ulang ({convertMilisecondsToHour(timerCount)})
|
||||
{t("resending")} ({convertMilisecondsToHour(timerCount)})
|
||||
</a>
|
||||
<a className="bg-red-700 w-[200px] py-2 text-center text-white rounded-lg ml-1 cursor-pointer" onClick={() => handleVerifyOTP()}>
|
||||
Lanjut
|
||||
{t("next")}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -696,7 +703,7 @@ const page = () => {
|
|||
{Number(category) == 6 || Number(category) == 7 ? (
|
||||
<div className="px-0 lg:px-[34px]">
|
||||
<Label className="mb-2">
|
||||
{`${Number(category) == 6 ? "Nomor Sertifikasi Wartawan" : "NRP"}`}
|
||||
{`${Number(category) == 6 ? t("journalistNumber") : "NRP"}`}
|
||||
<span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<Input
|
||||
|
|
@ -704,7 +711,7 @@ const page = () => {
|
|||
autoComplete="off"
|
||||
className={`mb-3 ${errors.memberIdentity ? "block" : ""}`}
|
||||
{...register("memberIdentity")}
|
||||
placeholder="Masukan Nomor Identitas"
|
||||
placeholder={t("inputNumberIdentity")}
|
||||
onChange={(e) => handleIdentity(e.target.value)}
|
||||
disabled
|
||||
/>
|
||||
|
|
@ -715,9 +722,9 @@ const page = () => {
|
|||
)}
|
||||
<div className="mb-4 px-0 lg:px-[34px]">
|
||||
<Label className="mb-2">
|
||||
Nama Lengkap <span className="text-red-500">*</span>
|
||||
{t("fullName")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<Input type="text" autoComplete="off" className={` ${errors.firstName ? "block" : ""}`} {...register("firstName")} placeholder="Masukan Nama Lengkap Anda" />
|
||||
<Input type="text" autoComplete="off" className={` ${errors.firstName ? "block" : ""}`} {...register("firstName")} placeholder={t("enterFullName")} />
|
||||
<div className="text-red-500">{errors.firstName?.message}</div>
|
||||
</div>
|
||||
<div className="mb-4 px-0 lg:px-[34px]">
|
||||
|
|
@ -729,7 +736,7 @@ const page = () => {
|
|||
type="text"
|
||||
autoComplete="off"
|
||||
className={`${errors.username ? "block" : ""}`}
|
||||
placeholder="Masukan Username"
|
||||
placeholder={t("enterUsername")}
|
||||
onChange={(e) => {
|
||||
setValUsername(e.target.value.trim());
|
||||
}}
|
||||
|
|
@ -752,27 +759,27 @@ const page = () => {
|
|||
</div>
|
||||
<div className="flex flex-col px-0 lg:px-[34px]">
|
||||
<Label className="mb-2">
|
||||
No. HP<span className="text-red-500">*</span>
|
||||
{t("number")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<Input type="number" autoComplete="off" className={`mb-3 ${errors.phoneNumber ? "block" : ""}`} {...register("phoneNumber")} placeholder="Masukan Nomor Telepon Anda" />
|
||||
<Input type="number" autoComplete="off" className={`mb-3 ${errors.phoneNumber ? "block" : ""}`} {...register("phoneNumber")} placeholder={t("enterNumber")} />
|
||||
<div className="text-red-500">{errors.phoneNumber?.message}</div>
|
||||
</div>
|
||||
<div className="mb-4 px-0 lg:px-[34px]">
|
||||
<Label htmlFor="address" className="mb-2">
|
||||
Alamat <span className="text-red-500">*</span>
|
||||
{t("address")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<Textarea className={` ${errors.address ? "block" : ""}`} {...register("address")} placeholder="Masukan Alamat Lengkap Anda" rows={3} />
|
||||
<Textarea className={` ${errors.address ? "block" : ""}`} {...register("address")} placeholder={t("insertAddress")} rows={3} />
|
||||
<div className="text-red-500">{errors.address?.message}</div>
|
||||
</div>
|
||||
{Number(category) == 6 ? (
|
||||
<div className="flex flex-col gap-3 px-0 lg:px-[34px]">
|
||||
<div className="flex flex-col mb-2">
|
||||
<Label htmlFor="provinsi">
|
||||
Institusi <span className="text-red-500">*</span>
|
||||
<Label htmlFor="provinsi" className="mb-2">
|
||||
{t("institutions")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<select className="mb-3 p-2 border rounded-md border-slate-300 bg-white cursor-pointer" id="provinsi" onChange={(event) => handleInstituteOption(event)}>
|
||||
<select className="mb-3 p-2 border text-sm text-slate-400 rounded-md border-slate-300 bg-white cursor-pointer" id="provinsi" onChange={(event) => handleInstituteOption(event)}>
|
||||
<option disabled selected>
|
||||
Pilih Institusi
|
||||
{t("selectInst")}
|
||||
</option>
|
||||
{institution.map((row: any) => (
|
||||
<option value={row.id} key={row.id}>
|
||||
|
|
@ -780,7 +787,7 @@ const page = () => {
|
|||
</option>
|
||||
))}
|
||||
<option value="0" key="0">
|
||||
Nama Institusi Lainnya
|
||||
{t("otherInst")}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
|
|
@ -795,33 +802,33 @@ const page = () => {
|
|||
}
|
||||
>
|
||||
<Label htmlFor="alamat" className="mb-2">
|
||||
Nama Institusi <span className="text-red-500">*</span>
|
||||
{t("instName")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<Input className="mb-3" autoComplete="off" placeholder="Masukan Nama Lengkap Institusi Anda" type="text" onChange={(event) => setCustomInstituteName(event.target.value)} />
|
||||
</div>
|
||||
<div>
|
||||
<Label htmlFor="alamat" className="mb-2">
|
||||
Alamat Institusi <span className="text-red-500">*</span>
|
||||
{t("instAddress")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<Textarea className="mb-3" placeholder="Masukan Alamat Lengkap Institusi Anda" rows={3} value={institusiAddress} onChange={(event) => setInstitusiAddress(event.target.value)} />
|
||||
<Textarea className="mb-3" placeholder={t("addressInst")} rows={3} value={institusiAddress} onChange={(event) => setInstitusiAddress(event.target.value)} />
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
""
|
||||
)}
|
||||
<div className="flex flex-col px-0 lg:px-[34px]">
|
||||
<label htmlFor="provinsi" className="mb-2">
|
||||
Provinsi <span className="text-red-500">*</span>
|
||||
<label htmlFor="provinsi" className="mb-2 ">
|
||||
{t("province")} <span className="text-red-500">*</span>
|
||||
</label>
|
||||
<select
|
||||
className={`mb-3 p-2 border rounded-md border-slate-300 bg-white cursor-pointer ${errors.provinsi ? "block" : ""}`}
|
||||
className={`mb-3 p-2 border rounded-md text-sm text-slate-400 border-slate-300 bg-white cursor-pointer ${errors.provinsi ? "block" : ""}`}
|
||||
{...register("provinsi")}
|
||||
id="provinsi"
|
||||
name="provinsi"
|
||||
onChange={(event) => getCity(event.target.value)}
|
||||
>
|
||||
<option disabled selected>
|
||||
Pilih Provinsi
|
||||
{t("selectProv")}
|
||||
</option>
|
||||
{province?.map((row: any) => (
|
||||
<option value={row.id} key={row.id}>
|
||||
|
|
@ -833,11 +840,16 @@ const page = () => {
|
|||
</div>
|
||||
<div className="flex flex-col px-0 lg:px-[34px]">
|
||||
<label htmlFor="kota" className="mb-2">
|
||||
Kota/Kabupaten <span className="text-red-500">*</span>
|
||||
{t("city")} <span className="text-red-500">*</span>
|
||||
</label>
|
||||
<select className={`mb-3 p-2 border rounded-md border-slate-300 bg-white cursor-pointer ${errors.kota ? "block" : ""}`} {...register("kota")} id="kota" onChange={(event) => getDistricts(event.target.value)}>
|
||||
<select
|
||||
className={`mb-3 p-2 border text-sm text-slate-400 rounded-md border-slate-300 bg-white cursor-pointer ${errors.kota ? "block" : ""}`}
|
||||
{...register("kota")}
|
||||
id="kota"
|
||||
onChange={(event) => getDistricts(event.target.value)}
|
||||
>
|
||||
<option disabled selected>
|
||||
Pilih Kota/Kabupaten
|
||||
{t("selectCity")}
|
||||
</option>
|
||||
{city?.map((row: any) => (
|
||||
<option value={row.id} key={row.id}>
|
||||
|
|
@ -849,11 +861,11 @@ const page = () => {
|
|||
</div>
|
||||
<div className="flex flex-col px-0 lg:px-[34px]">
|
||||
<label htmlFor="kecamatan" className="mb-2">
|
||||
Kecamatan <span className="text-red-500">*</span>
|
||||
{t("subdistrict")} <span className="text-red-500">*</span>
|
||||
</label>
|
||||
<select className={`p-2 border rounded-md border-slate-300 bg-white cursor-pointer ${errors.kecamatan ? "block" : ""}`} {...register("kecamatan")} id="kecamatan">
|
||||
<select className={`p-2 border text-sm text-slate-400 rounded-md border-slate-300 bg-white cursor-pointer ${errors.kecamatan ? "block" : ""}`} {...register("kecamatan")} id="kecamatan">
|
||||
<option disabled selected>
|
||||
Pilih Kecamatan
|
||||
{t("selectSub")}
|
||||
</option>
|
||||
{districts?.map((row: any) => (
|
||||
<option value={row.id} key={row.id}>
|
||||
|
|
@ -894,7 +906,7 @@ const page = () => {
|
|||
</div> */}
|
||||
<div className="mt-3.5 space-y-2 px-0 lg:px-[34px]">
|
||||
<Label htmlFor="password" className="mb-2 font-medium text-default-600">
|
||||
Kata Sandi <span className="text-red-500">*</span>
|
||||
{t("password")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<div className="relative">
|
||||
<Input
|
||||
|
|
@ -903,7 +915,7 @@ const page = () => {
|
|||
autoComplete="off"
|
||||
className={` ${errors.password ? "block" : ""}`}
|
||||
{...register("password")}
|
||||
placeholder="Masukan Kata Sandi"
|
||||
placeholder={t("inputPass")}
|
||||
onChange={(e) => {
|
||||
setValPassword(e.target.value.trim());
|
||||
}}
|
||||
|
|
@ -952,7 +964,7 @@ const page = () => {
|
|||
</div> */}
|
||||
<div className="mt-3.5 space-y-2 px-0 lg:px-[34px]">
|
||||
<Label htmlFor="password" className="mb-2 font-medium text-default-600">
|
||||
Konfirmasi Kata Sandi <span className="text-red-500">*</span>
|
||||
{t("confirmPass")} <span className="text-red-500">*</span>
|
||||
</Label>
|
||||
<div className="relative">
|
||||
<Input
|
||||
|
|
@ -961,7 +973,7 @@ const page = () => {
|
|||
autoComplete="off"
|
||||
className={` ${errors.passwordConf ? "block" : ""}`}
|
||||
{...register("passwordConf")}
|
||||
placeholder="Masukan Kata Sandi yang Sama"
|
||||
placeholder={t("samePass")}
|
||||
onChange={(e) => {
|
||||
setValPasswordConf(e.target.value.trim());
|
||||
}}
|
||||
|
|
@ -989,11 +1001,11 @@ const page = () => {
|
|||
setIsValidPassword(isValid);
|
||||
}}
|
||||
messages={{
|
||||
minLength: "Password harus lebih dari 8 karakter",
|
||||
specialChar: "Password harus memiliki spesial karakter",
|
||||
number: "Password harus memiliki angka",
|
||||
capital: "Password harus memiliki huruf kapital",
|
||||
match: "Password sama",
|
||||
minLength: t("passCharacter"),
|
||||
specialChar: t("passSpecial"),
|
||||
number: t("passNumber"),
|
||||
capital: t("passCapital"),
|
||||
match: t("passSame"),
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
|
@ -1011,13 +1023,13 @@ const page = () => {
|
|||
>
|
||||
<div className="text-center mb-2 px-[34px]">
|
||||
<p className="text-sm lg:text-base">
|
||||
Dengan mendaftar, saya telah menyetujui <br />{" "}
|
||||
{t("byRegis")} <br />{" "}
|
||||
<a href="/privacy" target="_blank" className="text-red-500">
|
||||
<b>Syarat dan Ketentuan</b>
|
||||
<b>{t("terms")}</b>
|
||||
</a>{" "}
|
||||
serta{" "}
|
||||
{t("and")}{" "}
|
||||
<a href="/privacy" target="_blank" className="text-red-500">
|
||||
<b>Kebijakan Privasi</b>
|
||||
<b>{t("privacy")}</b>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
|
|
@ -1030,7 +1042,7 @@ const page = () => {
|
|||
setStepTwoActive(true);
|
||||
}}
|
||||
>
|
||||
Kirim OTP
|
||||
{t("send")} OTP
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1045,7 +1057,7 @@ const page = () => {
|
|||
}
|
||||
>
|
||||
<Button type="submit" className="border w-[550px] text-center bg-red-700 text-white hover:bg-white hover:text-red-700 ">
|
||||
Daftar
|
||||
{t("register")}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -17,17 +17,19 @@ const Home = ({ params: { locale } }: { params: { locale: string } }) => {
|
|||
return (
|
||||
<MountedProvider isProtected={false}>
|
||||
<ReactLenis root>
|
||||
<Navbar />
|
||||
<NewsTicker />
|
||||
<Hero />
|
||||
<SearchSection />
|
||||
<NewContent group="mabes" type="latest" />
|
||||
<NewContent group="mabes" type="popular" />
|
||||
{/* <PopularContent /> */}
|
||||
<ContentCategory group="mabes" />
|
||||
<Coverage />
|
||||
<Division />
|
||||
<Footer />
|
||||
<div className="pb-14">
|
||||
<Navbar />
|
||||
<Hero />
|
||||
<SearchSection />
|
||||
<NewContent group="mabes" type="latest" />
|
||||
<NewContent group="mabes" type="popular" />
|
||||
{/* <PopularContent /> */}
|
||||
<ContentCategory group="mabes" />
|
||||
<Coverage />
|
||||
<Division />
|
||||
<Footer />
|
||||
<NewsTicker />
|
||||
</div>
|
||||
</ReactLenis>
|
||||
</MountedProvider>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import { Reveal } from "./Reveal";
|
|||
import { useTranslations } from "next-intl";
|
||||
import { usePathname } from "next/navigation";
|
||||
import { useParams } from "next/navigation";
|
||||
import Image from "next/image";
|
||||
|
||||
const ContentCategory = (props: { group?: string }) => {
|
||||
const [categories, setCategories] = useState<any>();
|
||||
|
|
@ -55,7 +56,7 @@ const ContentCategory = (props: { group?: string }) => {
|
|||
!seeAllValue ? (
|
||||
index < 4 ? (
|
||||
<Link key={category?.id} href={`all/filter?category=${category?.id}`} className="relative group rounded-md overflow-hidden shadow-md hover:shadow-lg">
|
||||
<img src={category?.thumbnailLink} className="w-full h-48 sm:h-40 object-cover group-hover:scale-110 transition-transform duration-300" />
|
||||
<Image alt="category" width={2560} height={1440} src={category?.thumbnailLink} className="w-full h-48 sm:h-40 object-cover group-hover:scale-110 transition-transform duration-300" />
|
||||
<div className="absolute bottom-0 rounded-lg left-0 right-0 bg-gray-400 border-l-4 mb-4 border-[#bb3523] text-white p-2">
|
||||
<h3 className="text-sm font-semibold truncate">{category?.name}</h3>
|
||||
</div>
|
||||
|
|
@ -65,7 +66,7 @@ const ContentCategory = (props: { group?: string }) => {
|
|||
)
|
||||
) : (
|
||||
<Link key={category?.id} href={`all/filter?category=${category?.id}`} className="relative group rounded-md overflow-hidden shadow-md hover:shadow-lg">
|
||||
<img src={category?.thumbnailLink} className="w-full h-48 sm:h-40 object-cover group-hover:scale-110 transition-transform duration-300" />
|
||||
<Image alt="category" width={2560} height={1440} src={category?.thumbnailLink} className="w-full h-48 sm:h-40 object-cover group-hover:scale-110 transition-transform duration-300" />
|
||||
<div className="absolute bottom-0 left-0 right-0 bg-gray-400 border-l-4 mb-4 border-[#bb3523] rounded-lg text-white p-2">
|
||||
<h3 className="text-sm font-semibold truncate">{category?.name}</h3>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import Link from "next/link";
|
|||
import { useParams, usePathname, useRouter } from "next/navigation";
|
||||
import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from "@/components/ui/carousel";
|
||||
import { Skeleton } from "../ui/skeleton";
|
||||
import Image from "next/image";
|
||||
|
||||
const Hero: React.FC = () => {
|
||||
const router = useRouter();
|
||||
|
|
@ -67,7 +68,7 @@ const Hero: React.FC = () => {
|
|||
{heroData?.map((list: any) => (
|
||||
<CarouselItem key={list?.id}>
|
||||
<div className="relative h-[310px] lg:h-[420px]">
|
||||
<img src={list?.thumbnailLink} alt="Gambar Utama" className="w-full h-[310px] lg:h-[420px] rounded-lg object-cover" />
|
||||
<Image src={list?.thumbnailLink} alt="gambar-utama" width={1920} height={1080} className="w-full h-[310px] lg:h-[420px] rounded-lg object-cover" />
|
||||
<div className="absolute bottom-0 left-0 right-0 bg-transparent backdrop-blur-sm text-black dark:text-white p-4 rounded-b-lg">
|
||||
<span className="text-white bg-[#bb3523] rounded-md w-full h-full font-semibold uppercase text-xs px-2 py-1">{list?.categoryName}</span>
|
||||
<Link href={`${locale}/image/detail/${list?.slug}`}>
|
||||
|
|
@ -138,7 +139,7 @@ const Hero: React.FC = () => {
|
|||
{heroData?.map((item: any) => (
|
||||
<li key={item?.id} className="flex gap-4 flex-row lg:w-full ">
|
||||
<div className="flex-shrink-0 w-24 rounded-lg">
|
||||
<img src={item?.thumbnailLink} alt={item?.title} className="w-full h-[73px] object-cover rounded-lg" />
|
||||
<Image width={720} height={480} src={item?.thumbnailLink} alt={item?.title} className="w-full h-[73px] object-cover rounded-lg" />
|
||||
</div>
|
||||
<div className="w-[280px] lg:w-auto">
|
||||
<span className="text-white bg-[#bb3523] px-4 py-1 rounded-lg flex text-[8px] font-bold uppercase w-fit">{item?.categoryName}</span>
|
||||
|
|
|
|||
|
|
@ -146,7 +146,7 @@ const Navbar = () => {
|
|||
<div className="flex items-center justify-between px-4 lg:px-20 py-4 gap-3">
|
||||
{/* Logo */}
|
||||
<Link href={prefixPath} className="flex items-center">
|
||||
<img src="/assets/mediahub-logo.gif" alt="Media Hub Logo" className="object-contain h-20" />
|
||||
<Image src="/assets/mediahub-logo.gif" alt="Media Hub Logo" width={200} height={300} className="object-contain" />
|
||||
</Link>
|
||||
|
||||
{/* Mobile Menu Toggle */}
|
||||
|
|
@ -294,7 +294,7 @@ const Navbar = () => {
|
|||
</Link> */}
|
||||
<div className="flex items-center space-x-1 ">
|
||||
<a href="https://tvradio.polri.go.id/">
|
||||
<img src="/assets/polriTv.png" className="object-contain h-10 flex-auto " />
|
||||
<Image src="/assets/polriTv.png" width={100} height={120} alt="polritv" className="object-contain flex-auto " />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
|
@ -395,7 +395,7 @@ const Navbar = () => {
|
|||
aria-selected="true"
|
||||
onClick={() => setIsMessageActive(true)}
|
||||
>
|
||||
Pesan Masuk
|
||||
{t("inbox")}
|
||||
</a>
|
||||
</TabsTrigger>
|
||||
<TabsTrigger value="notifupdate-tab">
|
||||
|
|
@ -408,8 +408,7 @@ const Navbar = () => {
|
|||
aria-selected="false"
|
||||
onClick={() => setIsMessageActive(false)}
|
||||
>
|
||||
Update(
|
||||
{notificationsUpdate?.length})
|
||||
{t("update")}({notificationsUpdate?.length})
|
||||
</a>
|
||||
</TabsTrigger>
|
||||
</TabsList>
|
||||
|
|
@ -418,7 +417,7 @@ const Navbar = () => {
|
|||
{notifications?.map((list: any) => (
|
||||
<a className="flex flex-row" href={list.redirectUrl} key={list.id}>
|
||||
<div className="ml-4">
|
||||
<img src="/assets/avatar-profile.png" alt="..." className="w-8 items-center mr-3" />
|
||||
<Image src="/assets/avatar-profile.png" alt="avatar" width={5} height={10} className="items-center mr-3" />
|
||||
</div>
|
||||
<div className="text-wrap text-left">{list?.message}</div>
|
||||
<div>
|
||||
|
|
@ -432,7 +431,7 @@ const Navbar = () => {
|
|||
))}
|
||||
<Link href="/inbox" legacyBehavior>
|
||||
<p className="text-[15px] text-center py-2" role="button">
|
||||
Lihat semua
|
||||
{t("seeAll")}
|
||||
</p>
|
||||
</Link>
|
||||
</div>
|
||||
|
|
@ -442,7 +441,7 @@ const Navbar = () => {
|
|||
{notificationsUpdate?.map((list: any) => (
|
||||
<a className="flex flex-row" href={list.redirectUrl} key={list.id}>
|
||||
<div className="ml-4">
|
||||
<img src="/assets/avatar-profile.png" alt="..." className="w-8 items-center mr-3" />
|
||||
<Image src="/assets/avatar-profile.png" alt="..." width={5} height={10} className="w-8 items-center mr-3" />
|
||||
</div>
|
||||
<div className="">
|
||||
<div className="text-wrap text-left">{list?.message}</div>
|
||||
|
|
@ -458,7 +457,7 @@ const Navbar = () => {
|
|||
))}
|
||||
<Link href="/inbox/update" legacyBehavior>
|
||||
<p className="text-[15px] text-center py-2" role="button">
|
||||
Lihat semua
|
||||
{t("seeAll")}
|
||||
</p>
|
||||
</Link>
|
||||
</div>
|
||||
|
|
@ -542,7 +541,7 @@ const Navbar = () => {
|
|||
aria-selected="true"
|
||||
onClick={() => setIsMessageActive(true)}
|
||||
>
|
||||
Pesan Masuk
|
||||
{t("inbox")}
|
||||
</a>
|
||||
</TabsTrigger>
|
||||
<TabsTrigger value="notifupdate-tab">
|
||||
|
|
@ -555,8 +554,7 @@ const Navbar = () => {
|
|||
aria-selected="false"
|
||||
onClick={() => setIsMessageActive(false)}
|
||||
>
|
||||
Update(
|
||||
{notificationsUpdate?.length})
|
||||
{t("update")}({notificationsUpdate?.length})
|
||||
</a>
|
||||
</TabsTrigger>
|
||||
</TabsList>
|
||||
|
|
@ -565,7 +563,7 @@ const Navbar = () => {
|
|||
{notifications?.map((list: any) => (
|
||||
<a className="" href={list.redirectUrl} key={list.id}>
|
||||
<div className="">
|
||||
<img src="/assets/avatar-profile.png" alt="..." className="" />
|
||||
<Image src="/assets/avatar-profile.png" alt="..." width={5} height={10} />
|
||||
</div>
|
||||
<div className="">
|
||||
<div className="text-wrap text-left">{list?.message}</div>
|
||||
|
|
@ -581,7 +579,7 @@ const Navbar = () => {
|
|||
))}
|
||||
<Link href="/inbox" legacyBehavior>
|
||||
<p className="text-[15px] py-2" role="button">
|
||||
Lihat semua
|
||||
{t("seeAll")}
|
||||
</p>
|
||||
</Link>
|
||||
</div>
|
||||
|
|
@ -589,7 +587,7 @@ const Navbar = () => {
|
|||
{notificationsUpdate?.map((list: any) => (
|
||||
<a className="flex flex-row" href={list.redirectUrl} key={list.id}>
|
||||
<div className="ml-4">
|
||||
<img src="/assets/avatar-profile.png" alt="..." className="w-8 items-center mr-3" />
|
||||
<Image src="/assets/avatar-profile.png" alt="..." width={5} height={10} className="items-center mr-3" />
|
||||
</div>
|
||||
<div className="">
|
||||
<div className="text-wrap text-left">{list?.message}</div>
|
||||
|
|
@ -605,7 +603,7 @@ const Navbar = () => {
|
|||
))}
|
||||
<Link href="/inbox" legacyBehavior>
|
||||
<p className="text-[15px] text-center py-2" role="button">
|
||||
Lihat semua
|
||||
{t("seeAll")}
|
||||
</p>
|
||||
</Link>
|
||||
</div>
|
||||
|
|
@ -678,8 +676,8 @@ const Navbar = () => {
|
|||
</DialogTrigger>
|
||||
<DialogContent size="sm" className="sm:max-w-[425px]">
|
||||
<div className="flex flex-col w-full gap-1">
|
||||
<p className="text-lg font-semibold text-center">Kategori Registrasi</p>
|
||||
<p className="text-base text-center">Silahkan pilih salah satu</p>
|
||||
<p className="text-lg font-semibold text-center">{t("categoryReg")}</p>
|
||||
<p className="text-base text-center">{t("selectOne")}</p>
|
||||
</div>
|
||||
<div>
|
||||
{role?.map((row: any) => (
|
||||
|
|
@ -694,7 +692,7 @@ const Navbar = () => {
|
|||
<div className="border-b-2 border-black"></div>
|
||||
<DialogFooter>
|
||||
<Link href={`/auth/registration?category=${category}`} className="flex justify-center bg-red-500 px-4 py-1 rounded-md border border-black text-white" type="submit">
|
||||
Selanjutnya{" "}
|
||||
{t("next")}{" "}
|
||||
</Link>
|
||||
</DialogFooter>
|
||||
</DialogContent>
|
||||
|
|
@ -836,7 +834,7 @@ const Navbar = () => {
|
|||
</div> */}
|
||||
<div className="flex items-center space-x-1 mx-3 text-yellow-600 font-medium">
|
||||
<a href="https://tvradio.polri.go.id/">
|
||||
<img src="/assets/polriTv.png" className="object-contain h-11 flex items-center" />
|
||||
<Image src="/assets/polriTv.png" width={100} height={120} alt="polritv" className="object-contain flex items-center" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
|
@ -969,7 +967,7 @@ const Navbar = () => {
|
|||
aria-selected="true"
|
||||
onClick={() => setIsMessageActive(true)}
|
||||
>
|
||||
Pesan Masuk
|
||||
{t("inbox")}
|
||||
</a>
|
||||
</TabsTrigger>
|
||||
<TabsTrigger value="notifupdate-tab">
|
||||
|
|
@ -982,8 +980,7 @@ const Navbar = () => {
|
|||
aria-selected="false"
|
||||
onClick={() => setIsMessageActive(false)}
|
||||
>
|
||||
Update(
|
||||
{notificationsUpdate?.length})
|
||||
{t("update")}({notificationsUpdate?.length})
|
||||
</a>
|
||||
</TabsTrigger>
|
||||
</TabsList>
|
||||
|
|
@ -992,7 +989,7 @@ const Navbar = () => {
|
|||
{notifications?.map((list: any) => (
|
||||
<a className="flex flex-row" href={list.redirectUrl} key={list.id}>
|
||||
<div className="ml-4">
|
||||
<img src="/assets/avatar-profile.png" alt="..." className="w-8 items-center mr-3" />
|
||||
<Image width={5} height={10} src="/assets/avatar-profile.png" alt="..." className="items-center mr-3" />
|
||||
</div>
|
||||
<div className="text-wrap text-left">{list?.message}</div>
|
||||
<div>
|
||||
|
|
@ -1006,7 +1003,7 @@ const Navbar = () => {
|
|||
))}
|
||||
<Link href="/inbox" legacyBehavior>
|
||||
<p className="text-[15px] text-center py-2" role="button">
|
||||
Lihat semua
|
||||
{t("seeAll")}
|
||||
</p>
|
||||
</Link>
|
||||
</div>
|
||||
|
|
@ -1016,7 +1013,7 @@ const Navbar = () => {
|
|||
{notificationsUpdate?.map((list: any) => (
|
||||
<a className="flex flex-row" href={list.redirectUrl} key={list.id}>
|
||||
<div className="ml-4">
|
||||
<img src="/assets/avatar-profile.png" alt="..." className="w-8 items-center mr-3" />
|
||||
<Image width={5} height={10} src="/assets/avatar-profile.png" alt="..." className="items-center mr-3" />
|
||||
</div>
|
||||
<div className="">
|
||||
<div className="text-wrap text-left">{list?.message}</div>
|
||||
|
|
@ -1032,7 +1029,7 @@ const Navbar = () => {
|
|||
))}
|
||||
<Link href="/inbox/update" legacyBehavior>
|
||||
<p className="text-[15px] text-center py-2" role="button">
|
||||
Lihat semua
|
||||
{t("seeAll")}
|
||||
</p>
|
||||
</Link>
|
||||
</div>
|
||||
|
|
@ -1116,7 +1113,7 @@ const Navbar = () => {
|
|||
aria-selected="true"
|
||||
onClick={() => setIsMessageActive(true)}
|
||||
>
|
||||
Pesan Masuk
|
||||
{t("inbox")}
|
||||
</a>
|
||||
</TabsTrigger>
|
||||
<TabsTrigger value="notifupdate-tab">
|
||||
|
|
@ -1129,8 +1126,7 @@ const Navbar = () => {
|
|||
aria-selected="false"
|
||||
onClick={() => setIsMessageActive(false)}
|
||||
>
|
||||
Update(
|
||||
{notificationsUpdate?.length})
|
||||
{t("update")}({notificationsUpdate?.length})
|
||||
</a>
|
||||
</TabsTrigger>
|
||||
</TabsList>
|
||||
|
|
@ -1139,7 +1135,7 @@ const Navbar = () => {
|
|||
{notifications?.map((list: any) => (
|
||||
<a className="" href={list.redirectUrl} key={list.id}>
|
||||
<div className="">
|
||||
<img src="/assets/avatar-profile.png" alt="..." className="" />
|
||||
<Image width={5} height={10} src="/assets/avatar-profile.png" alt="..." />
|
||||
</div>
|
||||
<div className="">
|
||||
<div className="text-wrap text-left">{list?.message}</div>
|
||||
|
|
@ -1155,7 +1151,7 @@ const Navbar = () => {
|
|||
))}
|
||||
<Link href="/inbox" legacyBehavior>
|
||||
<p className="text-[15px] py-2" role="button">
|
||||
Lihat semua
|
||||
{t("seeAll")}
|
||||
</p>
|
||||
</Link>
|
||||
</div>
|
||||
|
|
@ -1163,7 +1159,7 @@ const Navbar = () => {
|
|||
{notificationsUpdate?.map((list: any) => (
|
||||
<a className="flex flex-row" href={list.redirectUrl} key={list.id}>
|
||||
<div className="ml-4">
|
||||
<img src="/assets/avatar-profile.png" alt="..." className="w-8 items-center mr-3" />
|
||||
<Image width={5} height={10} src="/assets/avatar-profile.png" alt="..." className="items-center mr-3" />
|
||||
</div>
|
||||
<div className="">
|
||||
<div className="text-wrap text-left">{list?.message}</div>
|
||||
|
|
@ -1179,7 +1175,7 @@ const Navbar = () => {
|
|||
))}
|
||||
<Link href="/inbox" legacyBehavior>
|
||||
<p className="text-[15px] text-center py-2" role="button">
|
||||
Lihat semua
|
||||
{t("seeAll")}
|
||||
</p>
|
||||
</Link>
|
||||
</div>
|
||||
|
|
@ -1252,8 +1248,8 @@ const Navbar = () => {
|
|||
</DialogTrigger>
|
||||
<DialogContent size="sm" className="sm:max-w-[425px]">
|
||||
<div className="flex flex-col w-full gap-1">
|
||||
<p className="text-lg font-semibold text-center">Kategori Registrasi</p>
|
||||
<p className="text-base text-center">Silahkan pilih salah satu</p>
|
||||
<p className="text-lg font-semibold text-center">{t("categoryReg")}</p>
|
||||
<p className="text-base text-center">{t("selectOne")}</p>
|
||||
</div>
|
||||
<div>
|
||||
{role?.map((row: any) => (
|
||||
|
|
@ -1268,7 +1264,7 @@ const Navbar = () => {
|
|||
<div className="border-b-2 border-black"></div>
|
||||
<DialogFooter>
|
||||
<Link href={`/auth/registration?category=${category}`} className="bg-red-500 flex justify-center px-4 py-1 rounded-md border border-black text-white" type="submit">
|
||||
Selanjutnya{" "}
|
||||
{t("next")}{" "}
|
||||
</Link>
|
||||
</DialogFooter>
|
||||
</DialogContent>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import { Link } from "@/i18n/routing";
|
|||
import { Reveal } from "./Reveal";
|
||||
import { useTranslations } from "next-intl";
|
||||
import { Skeleton } from "../ui/skeleton";
|
||||
import Image from "next/image";
|
||||
|
||||
const NewContent = (props: { group: string; type: string }) => {
|
||||
const [newContent, setNewContent] = useState<any>();
|
||||
|
|
@ -117,9 +118,9 @@ const NewContent = (props: { group: string; type: string }) => {
|
|||
{newContent?.map((image: any) => (
|
||||
<CarouselItem key={image?.id} className="md:basis-1/2 lg:basis-1/3">
|
||||
<Link href={`/image/detail/${image?.slug}`} className="relative group overflow-hidden shadow-md hover:shadow-lg">
|
||||
<img src={image?.thumbnailLink} className="w-full rounded-lg h-48 lg:h-60 object-cover group-hover:scale-100 transition-transform duration-300" />
|
||||
<Image width={2560} height={1440} alt="image" src={image?.thumbnailLink} className="w-full rounded-lg h-48 lg:h-60 object-cover group-hover:scale-100 transition-transform duration-300" />
|
||||
<div className="absolute bottom-0 left-0 right-0 bg-gray-600 border-l-4 border-[#bb3523] rounded-lg backdrop-blur-sm text-white p-2">
|
||||
<h1 className="text-sm lg:text-lg mb-2 font-semibold h-5 hover:h-auto truncate hover:whitespace-normal hover:overflow-visible">{image?.title}</h1>
|
||||
<p className="text-sm lg:text-base mb-2 font-semibold h-6 hover:h-auto truncate hover:whitespace-normal hover:overflow-visible">{image?.title}</p>
|
||||
<p className="flex flex-row items-center text-[10px] gap-2">
|
||||
{formatDateToIndonesian(new Date(image?.createdAt))} {image?.timezone ? image?.timezone : "WIB"} | <Icon icon="formkit:eye" width="15" height="15" /> {image.clickCount}{" "}
|
||||
</p>
|
||||
|
|
@ -133,7 +134,7 @@ const NewContent = (props: { group: string; type: string }) => {
|
|||
</Carousel>
|
||||
) : (
|
||||
<p className="flex items-center justify-center">
|
||||
<img src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
<Image width={1920} height={1080} src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
</p>
|
||||
)
|
||||
) : selectedTab == "audio" ? (
|
||||
|
|
@ -171,7 +172,7 @@ const NewContent = (props: { group: string; type: string }) => {
|
|||
</Carousel>
|
||||
) : (
|
||||
<p className="flex items-center justify-center">
|
||||
<img src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
<Image width={1920} height={1080} src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
</p>
|
||||
)
|
||||
) : selectedTab == "video" ? (
|
||||
|
|
@ -181,9 +182,9 @@ const NewContent = (props: { group: string; type: string }) => {
|
|||
{newContent?.map((video: any) => (
|
||||
<CarouselItem key={video?.id} className="md:basis-1/2 lg:basis-1/3">
|
||||
<Link href={`/video/detail/${video?.slug}`} className="relative group rounded-md overflow-hidden shadow-md hover:shadow-lg">
|
||||
<img src={video?.thumbnailLink} className="w-full h-40 lg:h-60 object-cover rounded-lg group-hover:scale-100 transition-transform duration-300" />
|
||||
<Image alt="video" width={2560} height={1440} src={video?.thumbnailLink} className="w-full h-40 lg:h-60 object-cover rounded-lg group-hover:scale-100 transition-transform duration-300" />
|
||||
<div className="absolute bottom-0 rounded-lg left-0 right-0 border-l-4 border-[#bb3523] bg-gray-600 text-white p-2">
|
||||
<h1 className="text-sm font-semibold h-5 hover:h-auto truncate hover:whitespace-normal hover:overflow-visible">{video?.title}</h1>
|
||||
<p className="text-sm lg:text-base mb-2 font-semibold h-6 hover:h-auto truncate hover:whitespace-normal hover:overflow-visible">{video?.title}</p>
|
||||
<p className="flex flex-row items-center text-sm gap-2">
|
||||
{formatDateToIndonesian(new Date(video?.createdAt))} {video?.timezone ? video?.timezone : "WIB"}| <Icon icon="formkit:eye" width="15" height="15" /> {video?.clickCount}{" "}
|
||||
</p>
|
||||
|
|
@ -197,7 +198,7 @@ const NewContent = (props: { group: string; type: string }) => {
|
|||
</Carousel>
|
||||
) : (
|
||||
<p className="flex items-center justify-center">
|
||||
<img src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
<Image width={1920} height={1080} src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
</p>
|
||||
)
|
||||
) : newContent.length > 0 ? (
|
||||
|
|
@ -241,7 +242,7 @@ const NewContent = (props: { group: string; type: string }) => {
|
|||
</Carousel>
|
||||
) : (
|
||||
<p className="flex items-center justify-center">
|
||||
<img src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
<Image width={1920} height={1080} src="/assets/empty-data.png" alt="empty" className="h-52 w-52 my-4" />
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -4,11 +4,13 @@ import { getHeroData, listCarousel } from "@/service/landing/landing";
|
|||
import { formatDateToIndonesian, textEllipsis } from "@/utils/globals";
|
||||
import { useEffect, useState } from "react";
|
||||
import { Icon } from "../ui/icon";
|
||||
import { useTranslations } from "next-intl";
|
||||
|
||||
export default function NewsTicker() {
|
||||
const [article, setArticle] = useState<any>([]);
|
||||
const [currentNewsIndex, setCurrentNewsIndex] = useState(0);
|
||||
const [animate, setAnimate] = useState(false);
|
||||
const t = useTranslations("LandingPage");
|
||||
|
||||
useEffect(() => {
|
||||
async function getArticle() {
|
||||
|
|
@ -47,7 +49,7 @@ export default function NewsTicker() {
|
|||
return (
|
||||
<div className="fixed bottom-0 z-50 flex flex-row h-[60px] gap-3 w-full justify-between dark:bg-stone-800 bg-gray-50">
|
||||
<div className="relative px-4 py-2 font-semibold text-xs lg:text-sm flex items-center bg-[#bb3523] text-white w-[30%] lg:w-[10%]">
|
||||
<span className="mr-2"></span> BREAKING NEWS
|
||||
<span className="mr-2"></span> {t("breakingNews")}
|
||||
<div className="absolute right-0 top-0 h-full w-4 bg-[#bb3523] transform translate-x-full clip-path-triangle"></div>
|
||||
</div>
|
||||
<div className={`w-full px-5 py-1 flex flex-col gap-1 transition-transform duration-300 ${animate ? "opacity-0 translate-y-5" : "opacity-100 translate-y-0"}`}>
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import { toast } from "sonner";
|
|||
import { useRouter } from "@/components/navigation";
|
||||
import { warning } from "@/lib/swal";
|
||||
import { Link } from "@/i18n/routing";
|
||||
import { useTranslations } from "next-intl";
|
||||
|
||||
// Schema validasi menggunakan zod
|
||||
const schema = z.object({
|
||||
|
|
@ -33,6 +34,7 @@ const LoginForm = () => {
|
|||
const [isPending, startTransition] = React.useTransition();
|
||||
const router = useRouter();
|
||||
const [passwordType, setPasswordType] = React.useState("password");
|
||||
const t = useTranslations("LandingPage");
|
||||
|
||||
const togglePasswordType = () => {
|
||||
setPasswordType((prevType) => (prevType === "password" ? "text" : "password"));
|
||||
|
|
@ -185,7 +187,7 @@ const LoginForm = () => {
|
|||
|
||||
<div className="mt-3.5 space-y-2">
|
||||
<Label htmlFor="password" className="mb-2 font-medium text-default-600">
|
||||
Password
|
||||
{t("password")}
|
||||
</Label>
|
||||
<div className="relative">
|
||||
<Input size="lg" disabled={isPending} {...register("password")} id="password" type={passwordType} className="peer" />
|
||||
|
|
@ -199,10 +201,10 @@ const LoginForm = () => {
|
|||
<div className="flex justify-between">
|
||||
<div className="flex gap-2 items-center">
|
||||
<Checkbox id="checkbox" defaultChecked />
|
||||
<Label htmlFor="checkbox">Keep Me Signed In</Label>
|
||||
<Label htmlFor="checkbox">{t("rememberMe")}</Label>
|
||||
</div>
|
||||
<Link href="/auth/forgot-password" className="text-sm text-default-800 dark:text-default-400 leading-6 font-medium">
|
||||
Forgot Password?
|
||||
{t("forgotPass")}
|
||||
</Link>
|
||||
</div>
|
||||
<Button fullWidth disabled={isPending}>
|
||||
|
|
|
|||
|
|
@ -366,7 +366,7 @@
|
|||
"previousSchedule": "Previous Schedule",
|
||||
"speaker": "Speaker :",
|
||||
"nextSchedule": "Next Schedule",
|
||||
"by": "By",
|
||||
"by": "Uploaded By",
|
||||
"updatedOn": "Update On",
|
||||
"creator": "Creator :",
|
||||
"delete": "Delete",
|
||||
|
|
@ -382,7 +382,79 @@
|
|||
"leaveComment": "Leave your comments here.",
|
||||
"reply": "Reply",
|
||||
"cancel": "Cancel",
|
||||
"enterReply": "Enter Your Replay"
|
||||
"enterReply": "Enter Your Replay",
|
||||
"docSize": "Document Size Options",
|
||||
"audioSize": "Audio Size Options",
|
||||
"relatedPosts": "Related Posts",
|
||||
"logInPlease": "Please Log In to Your Account First",
|
||||
"acc": "Don't have an account yet?",
|
||||
"reg": "Register",
|
||||
"password": "Password",
|
||||
"rememberMe": "Remember Me",
|
||||
"forgotPass": "Forgot Password?",
|
||||
"signIn": "Sign In",
|
||||
"inbox": "Inbox",
|
||||
"update": "Update",
|
||||
"next": "Next",
|
||||
"categoryReg": "Registration Category",
|
||||
"selectOne": "Please Select One",
|
||||
"alreadyHave": "Already have an account?",
|
||||
"userData": "Please Complete the User Data",
|
||||
"registerFirst": "Please Register First",
|
||||
"byRegis": "By registering, I have agreed to the",
|
||||
"terms": "Terms and Conditions",
|
||||
"enterOTP": "Enter OTP Code",
|
||||
"checkInbox": "Please check your email inbox or spam box.",
|
||||
"resending": "Resending",
|
||||
"fullName": "Full Name",
|
||||
"enterFullName": "Insert your full name",
|
||||
"enterUsername": "Insert your Username",
|
||||
"number": "Mobile phone number",
|
||||
"enterNumber": "Insert Your Phone Number",
|
||||
"enterEmail": "Insert your Email",
|
||||
"address": "Address",
|
||||
"insertAddress": "Insert Your Address",
|
||||
"province": "Province",
|
||||
"selectProv": "Select Province",
|
||||
"city": "City / District",
|
||||
"selectCity": "Select City / District",
|
||||
"subdistrict": "Subdistrict",
|
||||
"selectSub": "Select Subdistrict",
|
||||
"confirmPass": "Confirm Password",
|
||||
"inputPass": "Input Password",
|
||||
"samePass": "Input Same Password",
|
||||
"passCharacter": "Password must be more than 8 characters",
|
||||
"passSpecial": "Password must have special characters",
|
||||
"passNumber": "Password must have numbers",
|
||||
"passCapital": "Password must have capital letters",
|
||||
"passSame": "Passwords are the same",
|
||||
"member": "Membership Types",
|
||||
"association": "Select Association",
|
||||
"journalistNumber": "Journalist Certification Number",
|
||||
"otherIdentity": "Other Identities",
|
||||
"inputJournalist": "Input Certification Number",
|
||||
"inputNumberIdentity": "Input Identity Number",
|
||||
"institutions": "Institutions",
|
||||
"selectInst": "Select Institutions",
|
||||
"otherInst": "Other Institution Names",
|
||||
"instAddress": "Institutions Address",
|
||||
"instName": "Institution Name",
|
||||
"inputEmail": "Input your Email",
|
||||
"emailValid": "Invalid Email",
|
||||
"nameEmpty": "Full Name Cannot be Empty",
|
||||
"usernameEmpty": "Username Cannot be Empty",
|
||||
"numberEmpty": "Phone Number cannot be empty",
|
||||
"addressEmpty": "Address cannot be empty",
|
||||
"emailEmpty": "Email cannot be empty",
|
||||
"provinceEmpty": "Province cannot be empty",
|
||||
"cityEmpty": "City/district cannot be empty",
|
||||
"subdistrictEmpty": "Subdistrict cannot be empty",
|
||||
"passwordEmpty": "Password cannot be empty",
|
||||
"confirmEmpty": "Confirm Password cannot be empty",
|
||||
"addressInst": "Input the complete address of your institution",
|
||||
"identityEmpty": "Identity number cannot be empty",
|
||||
"policeNumber": "Police Registration Number",
|
||||
"breakingNews": "BREAKING NEWS"
|
||||
},
|
||||
"FilterPage": {
|
||||
"image": "Image",
|
||||
|
|
|
|||
|
|
@ -366,7 +366,7 @@
|
|||
"previousSchedule": "Jadwal Sebelumnya",
|
||||
"speaker": "Pembicara :",
|
||||
"nextSchedule": "Jadwal Selanjutnya",
|
||||
"by": "Oleh",
|
||||
"by": "Diunggah Oleh",
|
||||
"updatedOn": "Diupdate pada",
|
||||
"creator": "Kreator :",
|
||||
"delete": "Hapus",
|
||||
|
|
@ -382,7 +382,80 @@
|
|||
"reply": "Balas",
|
||||
"cancel": "Batal",
|
||||
"videoSize": "Opsi Ukuran Audio Visual",
|
||||
"enterReply": "Masukkan balasan Anda"
|
||||
"enterReply": "Masukkan balasan Anda",
|
||||
"docSize": "Opsi Ukuran Teks",
|
||||
"audioSize": "Opsi Ukuran Audio",
|
||||
"relatedPosts": "Post Terkait",
|
||||
"logInPlease": "Silahkan masuk ke akun Anda terlebih dahulu",
|
||||
"acc": "Belum Punya Akun?",
|
||||
"reg": "Daftar",
|
||||
"password": "Kata Sandi",
|
||||
"rememberMe": "Ingat Saya",
|
||||
"forgotPass": "Lupa Kata Sandi?",
|
||||
"signIn": "Masuk",
|
||||
"inbox": "Pesan Masuk",
|
||||
"update": "Terbaru",
|
||||
"next": "Selanjutnya",
|
||||
"categoryReg": "Kategori Registrasi",
|
||||
"selectOne": "Silahkan Pilih Salah Satu",
|
||||
"alreadyHave": "Sudah Memiliki Akun?",
|
||||
"userData": "Silahkan Lengkapi Data Pengguna",
|
||||
"registerFirst": "Silahkan Daftar terlebih Dahulu",
|
||||
"byRegis": "Dengan mendaftar, saya telah menyetujui",
|
||||
"terms": "Syarat dan Ketentuan",
|
||||
"enterOTP": "Masukkan kode OTP",
|
||||
"checkInbox": "Silahkan cek inbox atau kotak spam pada email Anda.",
|
||||
"resending": "Kirim Ulang",
|
||||
"fullName": "Nama Lengkap",
|
||||
"enterFullName": "Masukkan Nama Lengkap Anda",
|
||||
"enterUsername": "Masukkan Username Anda",
|
||||
"number": "Nomor Telepon",
|
||||
"enterNumber": "Masukkan Nomor Telepon Anda",
|
||||
"enterEmail": "Masukkan Email Anda",
|
||||
"address": "Alamat",
|
||||
"insertAddress": "Masukkan Alamat Lengkap Anda",
|
||||
"province": "Provinsi",
|
||||
"selectProv": "Pilih Provinsi",
|
||||
"city": "Kota / Kabupaten",
|
||||
"selectCity": "Pilih Kota / Kabupaten",
|
||||
"subdistrict": "Kecamatan",
|
||||
"selectSub": "Pilih Kecamatan",
|
||||
"confirmPass": "Konfirmasi Kata Sandi",
|
||||
"inputPass": "Masukkan Kata Sandi",
|
||||
"samePass": "Masukkan Kata Sandi yang Sama",
|
||||
"passCharacter": "Kata Sandi harus lebih dari 8 karakter",
|
||||
"passSpecial": "Kata Sandi harus memiliki spesial karakter",
|
||||
"passNumber": "Kata Sandi harus memiliki angka",
|
||||
"passCapital": "Kata Sandi harus memiliki huruf kapital",
|
||||
"passSame": "Kata Sandi Sama",
|
||||
"member": "Jenis Keanggotaan",
|
||||
"association": "Pilih Asosiasi",
|
||||
"otherIdentity": "Identitas Lainnya",
|
||||
"inputJournalist": "Masukkan Nomor Sertifikasi",
|
||||
"journalistNumber": "Nomor Sertifikasi Wartawan",
|
||||
"inputNumberIdentity": "Masukkan Nomor Identitas",
|
||||
"institutions": "Institusi",
|
||||
"selectInst": "Pilih Institusi",
|
||||
"otherInst": "Nama Institusi Lainnya",
|
||||
"instAddress": "Alamat Institusi",
|
||||
"instName": "Nama Institusi",
|
||||
"inputEmail": "Masukkan Email Anda",
|
||||
"emailValid": "Email Tidak Valid",
|
||||
"nameEmpty": "Nama Lengkap Tidak Boleh Kosong",
|
||||
"usernameEmpty": "Username Tidak Boleh Kosong",
|
||||
"numberEmpty": "Nomor Telepon Tidak Boleh Kosong",
|
||||
"addressEmpty": "Alamat Tidak boleh Kosong",
|
||||
"emailEmpty": "Email Tidak Boleh Kosong",
|
||||
"provinceEmpty": "Provinsi Tidak Boleh Kosong",
|
||||
"cityEmpty": "Kota/Kabupaten tidak boleh kosong",
|
||||
"subdistrictEmpty": "Kecamatan tidak boleh kosong",
|
||||
"passwordEmpty": "Kata Sandi tidak boleh kosong",
|
||||
"confirmEmpty": "Konfirmasi Kata Sandi tidak boleh kosong",
|
||||
"addressInst": "Masukkan Alamat lengkap institusi anda",
|
||||
"identityEmpty": "Nomor identitas tidak boleh kosong",
|
||||
"policeNumber": "Nomor Registrasi Polri (NRP)",
|
||||
"breakingNews": "BERITA TERKINI"
|
||||
|
||||
},
|
||||
"FilterPage": {
|
||||
"image": "Foto",
|
||||
|
|
|
|||
162
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/CHANGELOG.md
generated
vendored
Normal file
162
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/CHANGELOG.md
generated
vendored
Normal file
|
|
@ -0,0 +1,162 @@
|
|||
Changelog
|
||||
=========
|
||||
|
||||
All changes in the package are documented in the main repository. See: https://github.com/ckeditor/ckeditor5/blob/master/CHANGELOG.md.
|
||||
|
||||
Changes for the past releases are available below.
|
||||
|
||||
## [19.0.0](https://github.com/ckeditor/ckeditor5-alignment/compare/v18.0.0...v19.0.0) (April 29, 2020)
|
||||
|
||||
Internal changes only (updated dependencies, documentation, etc.).
|
||||
|
||||
|
||||
## [18.0.0](https://github.com/ckeditor/ckeditor5-alignment/compare/v17.0.0...v18.0.0) (March 19, 2020)
|
||||
|
||||
### Other changes
|
||||
|
||||
* Updated translations. ([f1beaaa](https://github.com/ckeditor/ckeditor5-alignment/commit/f1beaaa))
|
||||
|
||||
|
||||
## [17.0.0](https://github.com/ckeditor/ckeditor5-alignment/compare/v16.0.0...v17.0.0) (February 18, 2020)
|
||||
|
||||
### MAJOR BREAKING CHANGES
|
||||
|
||||
* The `align-left`, `align-right`, `align-center`, and `align-justify` icons have been moved to `@ckeditor/ckeditor5-core`.
|
||||
|
||||
### Other changes
|
||||
|
||||
* Moved alignment icons to `@ckeditor/ckeditor5-core` (see [ckeditor/ckeditor5-table#227](https://github.com/ckeditor/ckeditor5-table/issues/227)). ([410e279](https://github.com/ckeditor/ckeditor5-alignment/commit/410e279))
|
||||
* Updated translations. ([288672f](https://github.com/ckeditor/ckeditor5-alignment/commit/288672f))
|
||||
|
||||
|
||||
## [16.0.0](https://github.com/ckeditor/ckeditor5-alignment/compare/v15.0.0...v16.0.0) (December 4, 2019)
|
||||
|
||||
### Other changes
|
||||
|
||||
* Updated translations. ([9085f7b](https://github.com/ckeditor/ckeditor5-alignment/commit/9085f7b))
|
||||
|
||||
|
||||
## [15.0.0](https://github.com/ckeditor/ckeditor5-alignment/compare/v11.2.0...v15.0.0) (October 23, 2019)
|
||||
|
||||
### Other changes
|
||||
|
||||
* Updated translations. ([a719974](https://github.com/ckeditor/ckeditor5-alignment/commit/a719974)) ([2fed077](https://github.com/ckeditor/ckeditor5-alignment/commit/2fed077))
|
||||
* Added `pluginName` to the editor plugin part of the feature. ([3b42798](https://github.com/ckeditor/ckeditor5-alignment/commit/3b42798))
|
||||
|
||||
|
||||
## [11.2.0](https://github.com/ckeditor/ckeditor5-alignment/compare/v11.1.3...v11.2.0) (August 26, 2019)
|
||||
|
||||
### Features
|
||||
|
||||
* Integrated the text alignment feature with different editor content directions (LTR and RTL). See [ckeditor/ckeditor5#1151](https://github.com/ckeditor/ckeditor5/issues/1151). ([edc7d8b](https://github.com/ckeditor/ckeditor5-alignment/commit/edc7d8b))
|
||||
|
||||
### Bug fixes
|
||||
|
||||
* The UI buttons should be marked as toggleable for better assistive technologies support (see [ckeditor/ckeditor5#1403](https://github.com/ckeditor/ckeditor5/issues/1403)). ([599ea01](https://github.com/ckeditor/ckeditor5-alignment/commit/599ea01))
|
||||
|
||||
### Other changes
|
||||
|
||||
* The issue tracker for this package was moved to https://github.com/ckeditor/ckeditor5/issues. See [ckeditor/ckeditor5#1988](https://github.com/ckeditor/ckeditor5/issues/1988). ([54f81b3](https://github.com/ckeditor/ckeditor5-alignment/commit/54f81b3))
|
||||
* The text alignment toolbar should have a proper `aria-label` attribute (see [ckeditor/ckeditor5#1404](https://github.com/ckeditor/ckeditor5/issues/1404)). ([3ed81de](https://github.com/ckeditor/ckeditor5-alignment/commit/3ed81de))
|
||||
* Updated translations. ([feb4ab3](https://github.com/ckeditor/ckeditor5-alignment/commit/feb4ab3))
|
||||
|
||||
|
||||
## [11.1.3](https://github.com/ckeditor/ckeditor5-alignment/compare/v11.1.2...v11.1.3) (July 10, 2019)
|
||||
|
||||
Internal changes only (updated dependencies, documentation, etc.).
|
||||
|
||||
|
||||
## [11.1.2](https://github.com/ckeditor/ckeditor5-alignment/compare/v11.1.1...v11.1.2) (July 4, 2019)
|
||||
|
||||
### Other changes
|
||||
|
||||
* Updated translations. ([bb7f494](https://github.com/ckeditor/ckeditor5-alignment/commit/bb7f494))
|
||||
|
||||
|
||||
## [11.1.1](https://github.com/ckeditor/ckeditor5-alignment/compare/v11.1.0...v11.1.1) (June 6, 2019)
|
||||
|
||||
### Other changes
|
||||
|
||||
* Updated translations. ([32c32c1](https://github.com/ckeditor/ckeditor5-alignment/commit/32c32c1))
|
||||
|
||||
|
||||
## [11.1.0](https://github.com/ckeditor/ckeditor5-alignment/compare/v11.0.0...v11.1.0) (April 4, 2019)
|
||||
|
||||
### Features
|
||||
|
||||
* Marked alignment as a formatting attribute using the `AttributeProperties#isFormatting` property. Closes [ckeditor/ckeditor5#1664](https://github.com/ckeditor/ckeditor5/issues/1664). ([6358e08](https://github.com/ckeditor/ckeditor5-alignment/commit/6358e08))
|
||||
|
||||
### Other changes
|
||||
|
||||
* Updated translations. ([78bfc40](https://github.com/ckeditor/ckeditor5-alignment/commit/78bfc40))
|
||||
|
||||
|
||||
## [11.0.0](https://github.com/ckeditor/ckeditor5-alignment/compare/v10.0.4...v11.0.0) (February 28, 2019)
|
||||
|
||||
### Other changes
|
||||
|
||||
* Updated translations. ([45e8dd5](https://github.com/ckeditor/ckeditor5-alignment/commit/45e8dd5)) ([a92c37b](https://github.com/ckeditor/ckeditor5-alignment/commit/a92c37b)) ([ef68e54](https://github.com/ckeditor/ckeditor5-alignment/commit/ef68e54))
|
||||
|
||||
### BREAKING CHANGES
|
||||
|
||||
* Upgraded minimal versions of Node to `8.0.0` and npm to `5.7.1`. See: [ckeditor/ckeditor5#1507](https://github.com/ckeditor/ckeditor5/issues/1507). ([612ea3c](https://github.com/ckeditor/ckeditor5-cloud-services/commit/612ea3c))
|
||||
|
||||
|
||||
## [10.0.4](https://github.com/ckeditor/ckeditor5-alignment/compare/v10.0.3...v10.0.4) (December 5, 2018)
|
||||
|
||||
### Other changes
|
||||
|
||||
* Improved SVG icons size. See [ckeditor/ckeditor5-theme-lark#206](https://github.com/ckeditor/ckeditor5-theme-lark/issues/206). ([1d71d33](https://github.com/ckeditor/ckeditor5-alignment/commit/1d71d33))
|
||||
* Updated translations. ([547f8d8](https://github.com/ckeditor/ckeditor5-alignment/commit/547f8d8)) ([43d8225](https://github.com/ckeditor/ckeditor5-alignment/commit/43d8225))
|
||||
|
||||
|
||||
## [10.0.3](https://github.com/ckeditor/ckeditor5-alignment/compare/v10.0.2...v10.0.3) (October 8, 2018)
|
||||
|
||||
### Other changes
|
||||
|
||||
* Updated translations. ([5b30202](https://github.com/ckeditor/ckeditor5-alignment/commit/5b30202))
|
||||
|
||||
|
||||
## [10.0.2](https://github.com/ckeditor/ckeditor5-alignment/compare/v10.0.1...v10.0.2) (July 18, 2018)
|
||||
|
||||
### Other changes
|
||||
|
||||
* Updated translations. ([33c281c](https://github.com/ckeditor/ckeditor5-alignment/commit/33c281c))
|
||||
|
||||
|
||||
## [10.0.1](https://github.com/ckeditor/ckeditor5-alignment/compare/v10.0.0...v10.0.1) (June 21, 2018)
|
||||
|
||||
### Other changes
|
||||
|
||||
* Updated translations.
|
||||
|
||||
|
||||
## [10.0.0](https://github.com/ckeditor/ckeditor5-alignment/compare/v1.0.0-beta.4...v10.0.0) (April 25, 2018)
|
||||
|
||||
### Other changes
|
||||
|
||||
* Changed the license to GPL2+ only. See [ckeditor/ckeditor5#991](https://github.com/ckeditor/ckeditor5/issues/991). ([eed1029](https://github.com/ckeditor/ckeditor5-alignment/commit/eed1029))
|
||||
* Updated translations. ([baa1fbe](https://github.com/ckeditor/ckeditor5-alignment/commit/baa1fbe))
|
||||
|
||||
### BREAKING CHANGES
|
||||
|
||||
* The license under which CKEditor 5 is released has been changed from a triple GPL, LGPL and MPL license to a GPL2+ only. See [ckeditor/ckeditor5#991](https://github.com/ckeditor/ckeditor5/issues/991) for more information.
|
||||
|
||||
|
||||
## [1.0.0-beta.4](https://github.com/ckeditor/ckeditor5-alignment/compare/v1.0.0-beta.2...v1.0.0-beta.4) (April 19, 2018)
|
||||
|
||||
### Other changes
|
||||
|
||||
* Updated translations. ([586ae62](https://github.com/ckeditor/ckeditor5-alignment/commit/586ae62))
|
||||
|
||||
|
||||
## [1.0.0-beta.2](https://github.com/ckeditor/ckeditor5-alignment/compare/v1.0.0-beta.1...v1.0.0-beta.2) (April 10, 2018)
|
||||
|
||||
Internal changes only (updated dependencies, documentation, etc.).
|
||||
|
||||
|
||||
## [1.0.0-beta.1](https://github.com/ckeditor/ckeditor5-alignment/compare/v0.0.1...v1.0.0-beta.1) (March 15, 2018)
|
||||
|
||||
### Features
|
||||
|
||||
* Initial implementation. Closes [#2](https://github.com/ckeditor/ckeditor5-alignment/issues/2).
|
||||
17
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/LICENSE.md
generated
vendored
Normal file
17
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/LICENSE.md
generated
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
Software License Agreement
|
||||
==========================
|
||||
|
||||
**CKEditor 5 text alignment feature** – https://github.com/ckeditor/ckeditor5-alignment <br>
|
||||
Copyright (c) 2003–2024, [CKSource Holding sp. z o.o.](https://cksource.com) All rights reserved.
|
||||
|
||||
Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html).
|
||||
|
||||
Sources of Intellectual Property Included in CKEditor
|
||||
-----------------------------------------------------
|
||||
|
||||
Where not otherwise indicated, all CKEditor content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission.
|
||||
|
||||
Trademarks
|
||||
----------
|
||||
|
||||
**CKEditor** is a trademark of [CKSource Holding sp. z o.o.](https://cksource.com) All other brand and product names are trademarks, registered trademarks, or service marks of their respective holders.
|
||||
20
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/README.md
generated
vendored
Normal file
20
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/README.md
generated
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
CKEditor 5 text alignment feature
|
||||
========================================
|
||||
|
||||
[](https://www.npmjs.com/package/@ckeditor/ckeditor5-alignment)
|
||||
[](https://coveralls.io/github/ckeditor/ckeditor5?branch=master)
|
||||
[](https://app.travis-ci.com/github/ckeditor/ckeditor5)
|
||||
|
||||
This package implements text alignment support for CKEditor 5.
|
||||
|
||||
## Demo
|
||||
|
||||
Check out the [demo in the text alignment feature guide](https://ckeditor.com/docs/ckeditor5/latest/features/text-alignment.html#demo).
|
||||
|
||||
## Documentation
|
||||
|
||||
See the [`@ckeditor/ckeditor5-alignment` package](https://ckeditor.com/docs/ckeditor5/latest/api/alignment.html) page in [CKEditor 5 documentation](https://ckeditor.com/docs/ckeditor5/latest/).
|
||||
|
||||
## License
|
||||
|
||||
Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html). For full details about the license, please check the `LICENSE.md` file or [https://ckeditor.com/legal/ckeditor-oss-license](https://ckeditor.com/legal/ckeditor-oss-license).
|
||||
5
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/alignment.js
generated
vendored
Normal file
5
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/alignment.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/af.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/af.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const e=n.af=n.af||{};e.dictionary=Object.assign(e.dictionary||{},{"Align center":"Belyn in die middel","Align left":"Belyn links","Align right":"Belyn regs",Justify:"Belyn beide kante","Text alignment":"Teksbelyning","Text alignment toolbar":"Teksbelyning nutsbank"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ar.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ar.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.ar=n.ar||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"محاذاة في المنتصف","Align left":"محاذاة لليسار","Align right":"محاذاة لليمين",Justify:"ضبط","Text alignment":"محاذاة النص","Text alignment toolbar":"شريط أدوات محاذاة النص"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/az.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/az.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.az=n.az||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Mərkəzə düzləndir","Align left":"Soldan düzləndir","Align right":"Sağdan düzləndir",Justify:"Eninə görə","Text alignment":"Mətn düzləndirməsi","Text alignment toolbar":"Mətnin düzləndirmə paneli"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/bg.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/bg.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.bg=n.bg||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Централно подравняване","Align left":"Ляво подравняване","Align right":"Дясно подравняване",Justify:"Разпредели по равно","Text alignment":"Подравняване на текста","Text alignment toolbar":"Лента за подравняване на текст"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/bn.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/bn.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.bn=n.bn||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"কেন্দ্র সারিবদ্ধ করুন","Align left":"বামে সারিবদ্ধ করুন","Align right":"ডানদিকে সারিবদ্ধ করুন",Justify:"জাস্টিফাই","Text alignment":"টেক্সট সারিবদ্ধকরণ","Text alignment toolbar":"টেক্সট শ্রেণীবিন্যাস টুলবার"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/bs.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/bs.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const a=n.bs=n.bs||{};a.dictionary=Object.assign(a.dictionary||{},{"Align center":"Centrirati","Align left":"Lijevo poravnanje","Align right":"Desno poravnanje",Justify:"","Text alignment":"Poravnanje teksta","Text alignment toolbar":"Traka za poravnanje teksta"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ca.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ca.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(i){const e=i.ca=i.ca||{};e.dictionary=Object.assign(e.dictionary||{},{"Align center":"Alineació centre","Align left":"Alineació esquerra","Align right":"Alineació dreta",Justify:"Justificar","Text alignment":"Alineació text","Text alignment toolbar":"Barra d'eines d'alineació de text"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/cs.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/cs.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const t=n.cs=n.cs||{};t.dictionary=Object.assign(t.dictionary||{},{"Align center":"Zarovnat na střed","Align left":"Zarovnat vlevo","Align right":"Zarovnat vpravo",Justify:"Zarovnat do bloku","Text alignment":"Zarovnání textu","Text alignment toolbar":"Panel nástrojů zarovnání textu"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/da.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/da.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(t){const n=t.da=t.da||{};n.dictionary=Object.assign(n.dictionary||{},{"Align center":"Justér center","Align left":"Justér venstre","Align right":"Justér højre",Justify:"Justér","Text alignment":"Tekstjustering","Text alignment toolbar":"Tekstjustering værktøjslinje"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/de-ch.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/de-ch.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(t){const i=t["de-ch"]=t["de-ch"]||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Zentriert","Align left":"Linksbündig","Align right":"Rechtsbündig",Justify:"Blocksatz","Text alignment":"Textausrichtung","Text alignment toolbar":"Textausrichtung Werkzeugleiste"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/de.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/de.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const t=n.de=n.de||{};t.dictionary=Object.assign(t.dictionary||{},{"Align center":"Zentriert","Align left":"Linksbündig","Align right":"Rechtsbündig",Justify:"Blocksatz","Text alignment":"Textausrichtung","Text alignment toolbar":"Text-Ausrichtung Toolbar"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/el.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/el.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.el=n.el||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Στοίχιση στο κέντρο","Align left":"Στοίχιση αριστερά","Align right":"Στοίχιση δεξιά",Justify:"Πλήρης στοίχηση","Text alignment":"Στοίχιση κειμένου","Text alignment toolbar":"Γραμμή εργαλείων στοίχισης κειμένου"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/en-au.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/en-au.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const t=n["en-au"]=n["en-au"]||{};t.dictionary=Object.assign(t.dictionary||{},{"Align center":"Align centre","Align left":"Align left","Align right":"Align right",Justify:"Justify","Text alignment":"Text alignment","Text alignment toolbar":"Text alignment toolbar"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/en-gb.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/en-gb.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n["en-gb"]=n["en-gb"]||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Align center","Align left":"Align left","Align right":"Align right",Justify:"Justify","Text alignment":"Text alignment","Text alignment toolbar":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/es-co.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/es-co.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(i){const e=i["es-co"]=i["es-co"]||{};e.dictionary=Object.assign(e.dictionary||{},{"Align center":"Centrar","Align left":"Alinear a la izquierda","Align right":"Alinear a la derecha",Justify:"Justificar","Text alignment":"Alineación de texto","Text alignment toolbar":"Herramientas de alineación de texto"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/es.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/es.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(e){const i=e.es=e.es||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Centrar","Align left":"Alinear a la izquierda","Align right":"Alinear a la derecha",Justify:"Justificar","Text alignment":"Alineación del texto","Text alignment toolbar":"Barra de herramientas de alineación del texto"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/et.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/et.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.et=n.et||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Keskjoondus","Align left":"Vasakjoondus","Align right":"Paremjoondus",Justify:"Rööpjoondus","Text alignment":"Teksti joondamine","Text alignment toolbar":"Teksti joonduse tööriistariba"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/fa.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/fa.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.fa=n.fa||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"تراز وسط","Align left":"تراز چپ","Align right":"تراز راست",Justify:"هم تراز کردن","Text alignment":"تراز متن","Text alignment toolbar":"نوار ابزار ترازبندی متن"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/fi.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/fi.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(a){const i=a.fi=a.fi||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Tasaa keskelle","Align left":"Tasaa vasemmalle","Align right":"Tasaa oikealle",Justify:"Tasaa molemmat reunat","Text alignment":"Tekstin tasaus","Text alignment toolbar":"Tekstin suuntauksen työkalupalkki"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/fr.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/fr.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(e){const t=e.fr=e.fr||{};t.dictionary=Object.assign(t.dictionary||{},{"Align center":"Centrer","Align left":"Aligner à gauche","Align right":"Aligner à droite",Justify:"Justifier","Text alignment":"Alignement du texte","Text alignment toolbar":"Barre d'outils d'alignement du texte"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/gl.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/gl.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(t){const e=t.gl=t.gl||{};e.dictionary=Object.assign(e.dictionary||{},{"Align center":"Centrar horizontalmente","Align left":"Aliñar á esquerda","Align right":"Aliñar á dereita",Justify:"Xustificado","Text alignment":"Aliñamento do texto","Text alignment toolbar":"Barra de ferramentas de aliñamento de textos"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/he.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/he.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.he=n.he||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"יישור באמצע","Align left":"יישור לשמאל","Align right":"יישור לימין",Justify:"מרכוז גבולות","Text alignment":"יישור טקסט","Text alignment toolbar":"סרגל כלים יישור טקסט"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/hi.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/hi.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(i){const n=i.hi=i.hi||{};n.dictionary=Object.assign(n.dictionary||{},{"Align center":"Align center","Align left":"Align left","Align right":"Align right",Justify:"Justify","Text alignment":"Text alignment","Text alignment toolbar":"Text alignment toolbar"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/hr.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/hr.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const a=n.hr=n.hr||{};a.dictionary=Object.assign(a.dictionary||{},{"Align center":"Poravnaj po sredini","Align left":"Poravnaj ulijevo","Align right":"Poravnaj udesno",Justify:"Razvuci","Text alignment":"Poravnanje teksta","Text alignment toolbar":"Traka za poravnanje"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/hu.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/hu.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(i){const t=i.hu=i.hu||{};t.dictionary=Object.assign(t.dictionary||{},{"Align center":"Középre igazítás","Align left":"Balra igazítás","Align right":"Jobbra igazítás",Justify:"Sorkizárt","Text alignment":"Szöveg igazítása","Text alignment toolbar":"Szöveg igazítás eszköztár"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/id.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/id.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(a){const t=a.id=a.id||{};t.dictionary=Object.assign(t.dictionary||{},{"Align center":"Rata tengah","Align left":"Rata kiri","Align right":"Rata kanan",Justify:"Rata kanan-kiri","Text alignment":"Perataan teks","Text alignment toolbar":"Alat perataan teks"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/it.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/it.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(i){const n=i.it=i.it||{};n.dictionary=Object.assign(n.dictionary||{},{"Align center":"Allinea al centro","Align left":"Allinea a sinistra","Align right":"Allinea a destra",Justify:"Giustifica","Text alignment":"Allineamento del testo","Text alignment toolbar":"Barra degli strumenti dell'allineamento"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ja.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ja.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.ja=n.ja||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"中央揃え","Align left":"左揃え","Align right":"右揃え",Justify:"両端揃え","Text alignment":"文字揃え","Text alignment toolbar":"テキストの整列"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/jv.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/jv.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const t=n.jv=n.jv||{};t.dictionary=Object.assign(t.dictionary||{},{"Align center":"Rata tengah","Align left":"Rata kiwa","Align right":"Rata tengen",Justify:"Rata kiwa tengen","Text alignment":"Perataan seratan","Text alignment toolbar":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/kk.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/kk.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.kk=n.kk||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Ортадан туралау","Align left":"Солға туралау","Align right":"Оңға туралау",Justify:"","Text alignment":"Мәтінді туралау","Text alignment toolbar":"Мәтінді туралау құралдар тақтасы"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/km.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/km.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.km=n.km||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"តម្រឹមកណ្ដាល","Align left":"តម្រឹមឆ្វេង","Align right":"តម្រឹមស្ដាំ",Justify:"តម្រឹមសងខាង","Text alignment":"ការតម្រឹមអក្សរ","Text alignment toolbar":"របារឧបករណ៍តម្រឹមអក្សរ"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ko.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ko.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.ko=n.ko||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"가운데 정렬","Align left":"왼쪽 정렬","Align right":"오른쪽 정렬",Justify:"양쪽 정렬","Text alignment":"텍스트 정렬","Text alignment toolbar":"텍스트 정렬 툴바"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ku.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ku.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.ku=n.ku||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"بەهێڵکردنی ناورەڕاست","Align left":"بەهێڵکردنی چەپ","Align right":"بەهێڵکردنی ڕاست",Justify:"هاوستوونی","Text alignment":"ڕیززکردنی تێکست","Text alignment toolbar":"تووڵامرازی ڕیززکردنی تێکست"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/lt.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/lt.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(i){const t=i.lt=i.lt||{};t.dictionary=Object.assign(t.dictionary||{},{"Align center":"Centruoti","Align left":"Lygiuoti į kairę","Align right":"Lygiuoti į dešinę",Justify:"Lygiuoti per visą plotį","Text alignment":"Teksto lygiavimas","Text alignment toolbar":"Teksto lygiavimo įrankių juosta"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/lv.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/lv.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(i){const n=i.lv=i.lv||{};n.dictionary=Object.assign(n.dictionary||{},{"Align center":"Centrēt","Align left":"Pa kreisi","Align right":"Pa labi",Justify:"Izlīdzināt abas malas","Text alignment":"Teksta izlīdzināšana","Text alignment toolbar":"Teksta līdzināšanas rīkjosla"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ms.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ms.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(a){const n=a.ms=a.ms||{};n.dictionary=Object.assign(n.dictionary||{},{"Align center":"Jajarkan tengah","Align left":"Jajarkan kiri","Align right":"Jajarkan kiri",Justify:"Imbang","Text alignment":"Jajaran teks","Text alignment toolbar":"Bar alat capaian jajaran teks"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/nb.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/nb.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(t){const n=t.nb=t.nb||{};n.dictionary=Object.assign(n.dictionary||{},{"Align center":"Midstill","Align left":"Venstrejuster","Align right":"Høyrejuster",Justify:"Blokkjuster","Text alignment":"Tekstjustering","Text alignment toolbar":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ne.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ne.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.ne=n.ne||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"केन्द्र पङ्क्तिबद्ध गर्नुहोस्","Align left":"बायाँ पङ्क्तिबद्ध गर्नुहोस्","Align right":"दायाँ पङ्क्तिबद्ध गर्नुहोस्",Justify:"जस्टिफाइ गर्नुहोस्","Text alignment":"पाठ संरेखण","Text alignment toolbar":""})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/nl.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/nl.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(i){const n=i.nl=i.nl||{};n.dictionary=Object.assign(n.dictionary||{},{"Align center":"Midden uitlijnen","Align left":"Links uitlijnen","Align right":"Rechts uitlijnen",Justify:"Volledig uitlijnen","Text alignment":"Tekst uitlijning","Text alignment toolbar":"Tekst uitlijning werkbalk"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/no.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/no.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(t){const n=t.no=t.no||{};n.dictionary=Object.assign(n.dictionary||{},{"Align center":"Midtstill","Align left":"Venstrejuster","Align right":"Høyrejuster",Justify:"Blokkjuster","Text alignment":"Tekstjustering","Text alignment toolbar":"Verktøylinje for tekstjustering"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/pl.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/pl.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.pl=n.pl||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Wyrównaj do środka","Align left":"Wyrównaj do lewej","Align right":"Wyrównaj do prawej",Justify:"Wyrównaj obustronnie","Text alignment":"Wyrównanie tekstu","Text alignment toolbar":"Pasek narzędzi wyrównania tekstu"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/pt-br.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/pt-br.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(t){const i=t["pt-br"]=t["pt-br"]||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Centralizar","Align left":"Alinhar à esquerda","Align right":"Alinhar à direita",Justify:"Justificar","Text alignment":"Alinhamento do texto","Text alignment toolbar":"Ferramentas de alinhamento de texto"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/pt.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/pt.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(t){const i=t.pt=t.pt||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Alinhar ao centro","Align left":"Alinhar à esquerda","Align right":"Alinhar à direita",Justify:"Justificar","Text alignment":"Alinhamento de texto","Text alignment toolbar":"Barra de alinhamento de texto"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ro.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ro.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(i){const n=i.ro=i.ro||{};n.dictionary=Object.assign(n.dictionary||{},{"Align center":"Aliniază la centru","Align left":"Aliniază la stânga","Align right":"Aliniază la dreapta",Justify:"Aliniază stânga-dreapta","Text alignment":"Aliniere text","Text alignment toolbar":"Bara aliniere text"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ru.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ru.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.ru=n.ru||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Выравнивание по центру","Align left":"Выравнивание по левому краю","Align right":"Выравнивание по правому краю",Justify:"Выравнивание по ширине","Text alignment":"Выравнивание текста","Text alignment toolbar":"Выравнивание"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/sk.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/sk.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const a=n.sk=n.sk||{};a.dictionary=Object.assign(a.dictionary||{},{"Align center":"Zarovnať na stred","Align left":"Zarovnať vľavo","Align right":"Zarovnať vpravo",Justify:"Do bloku","Text alignment":"Zarovnanie textu","Text alignment toolbar":"Panel nástrojov zarovnania textu"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/sl.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/sl.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(a){const n=a.sl=a.sl||{};n.dictionary=Object.assign(n.dictionary||{},{"Align center":"Sredinska poravnava","Align left":"Poravnava levo","Align right":"Poravnava desno",Justify:"Postavi na sredino","Text alignment":"Poravnava besedila","Text alignment toolbar":"Orodna vrstica besedila"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/sq.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/sq.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(t){const i=t.sq=t.sq||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Radhit në mes","Align left":"Radhit majtas","Align right":"Radhit djathtas",Justify:"Plotësim","Text alignment":"Radhitja e tekstit","Text alignment toolbar":"Shiriti i rradhitjes së tekstit"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/sr-latn.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/sr-latn.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const a=n["sr-latn"]=n["sr-latn"]||{};a.dictionary=Object.assign(a.dictionary||{},{"Align center":"Centralno ravnanje","Align left":"Levo ravnanje","Align right":"Desno ravnanje",Justify:"Obostrano ravnanje","Text alignment":"Ravnanje teksta","Text alignment toolbar":"Alatke za ravnanje teksta"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/sr.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/sr.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.sr=n.sr||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Централно равнанје","Align left":"Лево равнање","Align right":"Десно равнање",Justify:"Обострано равнање","Text alignment":"Равнање текста","Text alignment toolbar":"Алатке за равнање текста"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/sv.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/sv.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(t){const e=t.sv=t.sv||{};e.dictionary=Object.assign(e.dictionary||{},{"Align center":"Centrera","Align left":"Vänsterjustera","Align right":"Högerjustera",Justify:"Justera till marginaler","Text alignment":"Textjustering","Text alignment toolbar":"Verktygsfält för textjustering"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/th.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/th.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const t=n.th=n.th||{};t.dictionary=Object.assign(t.dictionary||{},{"Align center":"จัดกึ่งกลาง","Align left":"จัดชิดซ้าย","Align right":"จัดชิดขวา",Justify:"จัด(ขอบ)","Text alignment":"จัดตำแหน่งข้อความ","Text alignment toolbar":"แถบเครื่องมือจัดตำแหน่งข้อความ"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/tk.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/tk.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(e){const i=e.tk=e.tk||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Merkeze deňleşdir","Align left":"Çepe deňleşdiriň","Align right":"Saga deňleşdiriň",Justify:"Akla","Text alignment":"Tekstiň deňleşdirilmegi","Text alignment toolbar":"Teksti deňleşdirmek gurallar paneli"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/tr.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/tr.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(a){const i=a.tr=a.tr||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Ortala","Align left":"Sola hizala","Align right":"Sağa hizala",Justify:"İki yana yasla","Text alignment":"Yazı hizalama","Text alignment toolbar":"Yazı Hizlama Araç Çubuğu"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ug.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ug.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.ug=n.ug||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"ئوتتۇرىغا توغرىلاش","Align left":"سولغا توغرىلاش","Align right":"ئوڭغا توغرىلاش",Justify:"ئوڭ سولدىن توغرىلا","Text alignment":"تېكىست توغرىلاش","Text alignment toolbar":"تېكىست توغرىلاش قورالبالدىقى"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/uk.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/uk.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.uk=n.uk||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"По центру","Align left":"По лівому краю","Align right":"По правому краю",Justify:"По ширині","Text alignment":"Вирівнювання тексту","Text alignment toolbar":"Панель інструментів вирівнювання тексту"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ur.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/ur.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.ur=n.ur||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"درمیانی سیدھ","Align left":"بائیں سیدھ","Align right":"دائیں سیدھ",Justify:"برابر سیدھ","Text alignment":"متن کی سیدھ","Text alignment toolbar":"خانہ آلات برائے سیدھ"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/uz.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/uz.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(i){const t=i.uz=i.uz||{};t.dictionary=Object.assign(t.dictionary||{},{"Align center":"O'rtada tekislash","Align left":"Chap tomonda tekislash","Align right":"O'ng tomonda tekislash",Justify:"Kengligi bo'yicha tekislash","Text alignment":"Matnni tekislash","Text alignment toolbar":"Tekislash"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/vi.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/vi.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.vi=n.vi||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"Canh giữa","Align left":"Canh trái","Align right":"Canh phải",Justify:"Canh đều","Text alignment":"Căn chỉnh văn bản","Text alignment toolbar":"Thanh công cụ canh chữ"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/zh-cn.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/zh-cn.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n["zh-cn"]=n["zh-cn"]||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"居中对齐","Align left":"左对齐","Align right":"右对齐",Justify:"两端对齐","Text alignment":"对齐","Text alignment toolbar":"对齐工具栏"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/zh.js
generated
vendored
Normal file
1
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/build/translations/zh.js
generated
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(n){const i=n.zh=n.zh||{};i.dictionary=Object.assign(i.dictionary||{},{"Align center":"置中對齊","Align left":"靠左對齊","Align right":"靠右對齊",Justify:"左右對齊","Text alignment":"文字對齊","Text alignment toolbar":"文字對齊"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
31
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/ckeditor5-metadata.json
generated
vendored
Normal file
31
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/ckeditor5-metadata.json
generated
vendored
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"plugins": [
|
||||
{
|
||||
"name": "Alignment",
|
||||
"className": "Alignment",
|
||||
"path": "src/alignment.js",
|
||||
"description": "Enables support for text alignment. You can use it to align your content to left, right and center or to justify it.",
|
||||
"docs": "features/text-alignment.html",
|
||||
"uiComponents": [
|
||||
{
|
||||
"type": "SplitButton",
|
||||
"name": "alignment",
|
||||
"iconPath": "@ckeditor/ckeditor5-core/theme/icons/align-left.svg"
|
||||
}
|
||||
],
|
||||
"htmlOutput": [
|
||||
{
|
||||
"elements": "$block",
|
||||
"styles": "text-align",
|
||||
"_comment": "By default, the alignment feature uses the `text-align` inline style."
|
||||
},
|
||||
{
|
||||
"elements": "$block",
|
||||
"classes": "*",
|
||||
"isAlternative": true,
|
||||
"_comment": "If `config.alignment.options` is set, these classes are used for alignment instead of inline styles."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
8
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/contexts.json
generated
vendored
Normal file
8
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/contexts.json
generated
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"Align left": "Toolbar button tooltip for aligning the text to the left.",
|
||||
"Align right": "Toolbar button tooltip for aligning the text to the right.",
|
||||
"Align center": "Toolbar button tooltip for aligning the text to center.",
|
||||
"Justify": "Toolbar button tooltip for making the text justified.",
|
||||
"Text alignment": "Dropdown button tooltip for the text alignment feature.",
|
||||
"Text alignment toolbar": "Label used by assistive technologies describing the text alignment feature toolbar."
|
||||
}
|
||||
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/af.po
generated
vendored
Normal file
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/af.po
generated
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||
#
|
||||
# !!! IMPORTANT !!!
|
||||
#
|
||||
# Before you edit this file, please keep in mind that contributing to the project
|
||||
# translations is possible ONLY via the Transifex online service.
|
||||
#
|
||||
# To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
|
||||
#
|
||||
# To learn more, check out the official contributor's guide:
|
||||
# https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Afrikaans (https://app.transifex.com/ckeditor/teams/11143/af/)\n"
|
||||
"Language: af\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the left."
|
||||
msgid "Align left"
|
||||
msgstr "Belyn links"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the right."
|
||||
msgid "Align right"
|
||||
msgstr "Belyn regs"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to center."
|
||||
msgid "Align center"
|
||||
msgstr "Belyn in die middel"
|
||||
|
||||
msgctxt "Toolbar button tooltip for making the text justified."
|
||||
msgid "Justify"
|
||||
msgstr "Belyn beide kante"
|
||||
|
||||
msgctxt "Dropdown button tooltip for the text alignment feature."
|
||||
msgid "Text alignment"
|
||||
msgstr "Teksbelyning"
|
||||
|
||||
msgctxt "Label used by assistive technologies describing the text alignment feature toolbar."
|
||||
msgid "Text alignment toolbar"
|
||||
msgstr "Teksbelyning nutsbank"
|
||||
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/ar.po
generated
vendored
Normal file
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/ar.po
generated
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||
#
|
||||
# !!! IMPORTANT !!!
|
||||
#
|
||||
# Before you edit this file, please keep in mind that contributing to the project
|
||||
# translations is possible ONLY via the Transifex online service.
|
||||
#
|
||||
# To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
|
||||
#
|
||||
# To learn more, check out the official contributor's guide:
|
||||
# https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Arabic (https://app.transifex.com/ckeditor/teams/11143/ar/)\n"
|
||||
"Language: ar\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the left."
|
||||
msgid "Align left"
|
||||
msgstr "محاذاة لليسار"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the right."
|
||||
msgid "Align right"
|
||||
msgstr "محاذاة لليمين"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to center."
|
||||
msgid "Align center"
|
||||
msgstr "محاذاة في المنتصف"
|
||||
|
||||
msgctxt "Toolbar button tooltip for making the text justified."
|
||||
msgid "Justify"
|
||||
msgstr "ضبط"
|
||||
|
||||
msgctxt "Dropdown button tooltip for the text alignment feature."
|
||||
msgid "Text alignment"
|
||||
msgstr "محاذاة النص"
|
||||
|
||||
msgctxt "Label used by assistive technologies describing the text alignment feature toolbar."
|
||||
msgid "Text alignment toolbar"
|
||||
msgstr "شريط أدوات محاذاة النص"
|
||||
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/az.po
generated
vendored
Normal file
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/az.po
generated
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||
#
|
||||
# !!! IMPORTANT !!!
|
||||
#
|
||||
# Before you edit this file, please keep in mind that contributing to the project
|
||||
# translations is possible ONLY via the Transifex online service.
|
||||
#
|
||||
# To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
|
||||
#
|
||||
# To learn more, check out the official contributor's guide:
|
||||
# https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Azerbaijani (https://app.transifex.com/ckeditor/teams/11143/az/)\n"
|
||||
"Language: az\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the left."
|
||||
msgid "Align left"
|
||||
msgstr "Soldan düzləndir"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the right."
|
||||
msgid "Align right"
|
||||
msgstr "Sağdan düzləndir"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to center."
|
||||
msgid "Align center"
|
||||
msgstr "Mərkəzə düzləndir"
|
||||
|
||||
msgctxt "Toolbar button tooltip for making the text justified."
|
||||
msgid "Justify"
|
||||
msgstr "Eninə görə"
|
||||
|
||||
msgctxt "Dropdown button tooltip for the text alignment feature."
|
||||
msgid "Text alignment"
|
||||
msgstr "Mətn düzləndirməsi"
|
||||
|
||||
msgctxt "Label used by assistive technologies describing the text alignment feature toolbar."
|
||||
msgid "Text alignment toolbar"
|
||||
msgstr "Mətnin düzləndirmə paneli"
|
||||
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/bg.po
generated
vendored
Normal file
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/bg.po
generated
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||
#
|
||||
# !!! IMPORTANT !!!
|
||||
#
|
||||
# Before you edit this file, please keep in mind that contributing to the project
|
||||
# translations is possible ONLY via the Transifex online service.
|
||||
#
|
||||
# To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
|
||||
#
|
||||
# To learn more, check out the official contributor's guide:
|
||||
# https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Bulgarian (https://app.transifex.com/ckeditor/teams/11143/bg/)\n"
|
||||
"Language: bg\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the left."
|
||||
msgid "Align left"
|
||||
msgstr "Ляво подравняване"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the right."
|
||||
msgid "Align right"
|
||||
msgstr "Дясно подравняване"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to center."
|
||||
msgid "Align center"
|
||||
msgstr "Централно подравняване"
|
||||
|
||||
msgctxt "Toolbar button tooltip for making the text justified."
|
||||
msgid "Justify"
|
||||
msgstr "Разпредели по равно"
|
||||
|
||||
msgctxt "Dropdown button tooltip for the text alignment feature."
|
||||
msgid "Text alignment"
|
||||
msgstr "Подравняване на текста"
|
||||
|
||||
msgctxt "Label used by assistive technologies describing the text alignment feature toolbar."
|
||||
msgid "Text alignment toolbar"
|
||||
msgstr "Лента за подравняване на текст"
|
||||
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/bn.po
generated
vendored
Normal file
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/bn.po
generated
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||
#
|
||||
# !!! IMPORTANT !!!
|
||||
#
|
||||
# Before you edit this file, please keep in mind that contributing to the project
|
||||
# translations is possible ONLY via the Transifex online service.
|
||||
#
|
||||
# To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
|
||||
#
|
||||
# To learn more, check out the official contributor's guide:
|
||||
# https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Bengali (https://app.transifex.com/ckeditor/teams/11143/bn/)\n"
|
||||
"Language: bn\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the left."
|
||||
msgid "Align left"
|
||||
msgstr "বামে সারিবদ্ধ করুন"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the right."
|
||||
msgid "Align right"
|
||||
msgstr "ডানদিকে সারিবদ্ধ করুন"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to center."
|
||||
msgid "Align center"
|
||||
msgstr "কেন্দ্র সারিবদ্ধ করুন"
|
||||
|
||||
msgctxt "Toolbar button tooltip for making the text justified."
|
||||
msgid "Justify"
|
||||
msgstr "জাস্টিফাই"
|
||||
|
||||
msgctxt "Dropdown button tooltip for the text alignment feature."
|
||||
msgid "Text alignment"
|
||||
msgstr "টেক্সট সারিবদ্ধকরণ"
|
||||
|
||||
msgctxt "Label used by assistive technologies describing the text alignment feature toolbar."
|
||||
msgid "Text alignment toolbar"
|
||||
msgstr "টেক্সট শ্রেণীবিন্যাস টুলবার"
|
||||
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/bs.po
generated
vendored
Normal file
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/bs.po
generated
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||
#
|
||||
# !!! IMPORTANT !!!
|
||||
#
|
||||
# Before you edit this file, please keep in mind that contributing to the project
|
||||
# translations is possible ONLY via the Transifex online service.
|
||||
#
|
||||
# To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
|
||||
#
|
||||
# To learn more, check out the official contributor's guide:
|
||||
# https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Bosnian (https://app.transifex.com/ckeditor/teams/11143/bs/)\n"
|
||||
"Language: bs\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the left."
|
||||
msgid "Align left"
|
||||
msgstr "Lijevo poravnanje"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the right."
|
||||
msgid "Align right"
|
||||
msgstr "Desno poravnanje"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to center."
|
||||
msgid "Align center"
|
||||
msgstr "Centrirati"
|
||||
|
||||
msgctxt "Toolbar button tooltip for making the text justified."
|
||||
msgid "Justify"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "Dropdown button tooltip for the text alignment feature."
|
||||
msgid "Text alignment"
|
||||
msgstr "Poravnanje teksta"
|
||||
|
||||
msgctxt "Label used by assistive technologies describing the text alignment feature toolbar."
|
||||
msgid "Text alignment toolbar"
|
||||
msgstr "Traka za poravnanje teksta"
|
||||
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/ca.po
generated
vendored
Normal file
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/ca.po
generated
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||
#
|
||||
# !!! IMPORTANT !!!
|
||||
#
|
||||
# Before you edit this file, please keep in mind that contributing to the project
|
||||
# translations is possible ONLY via the Transifex online service.
|
||||
#
|
||||
# To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
|
||||
#
|
||||
# To learn more, check out the official contributor's guide:
|
||||
# https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Catalan (https://app.transifex.com/ckeditor/teams/11143/ca/)\n"
|
||||
"Language: ca\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the left."
|
||||
msgid "Align left"
|
||||
msgstr "Alineació esquerra"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the right."
|
||||
msgid "Align right"
|
||||
msgstr "Alineació dreta"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to center."
|
||||
msgid "Align center"
|
||||
msgstr "Alineació centre"
|
||||
|
||||
msgctxt "Toolbar button tooltip for making the text justified."
|
||||
msgid "Justify"
|
||||
msgstr "Justificar"
|
||||
|
||||
msgctxt "Dropdown button tooltip for the text alignment feature."
|
||||
msgid "Text alignment"
|
||||
msgstr "Alineació text"
|
||||
|
||||
msgctxt "Label used by assistive technologies describing the text alignment feature toolbar."
|
||||
msgid "Text alignment toolbar"
|
||||
msgstr "Barra d'eines d'alineació de text"
|
||||
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/cs.po
generated
vendored
Normal file
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/cs.po
generated
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||
#
|
||||
# !!! IMPORTANT !!!
|
||||
#
|
||||
# Before you edit this file, please keep in mind that contributing to the project
|
||||
# translations is possible ONLY via the Transifex online service.
|
||||
#
|
||||
# To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
|
||||
#
|
||||
# To learn more, check out the official contributor's guide:
|
||||
# https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Czech (https://app.transifex.com/ckeditor/teams/11143/cs/)\n"
|
||||
"Language: cs\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the left."
|
||||
msgid "Align left"
|
||||
msgstr "Zarovnat vlevo"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the right."
|
||||
msgid "Align right"
|
||||
msgstr "Zarovnat vpravo"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to center."
|
||||
msgid "Align center"
|
||||
msgstr "Zarovnat na střed"
|
||||
|
||||
msgctxt "Toolbar button tooltip for making the text justified."
|
||||
msgid "Justify"
|
||||
msgstr "Zarovnat do bloku"
|
||||
|
||||
msgctxt "Dropdown button tooltip for the text alignment feature."
|
||||
msgid "Text alignment"
|
||||
msgstr "Zarovnání textu"
|
||||
|
||||
msgctxt "Label used by assistive technologies describing the text alignment feature toolbar."
|
||||
msgid "Text alignment toolbar"
|
||||
msgstr "Panel nástrojů zarovnání textu"
|
||||
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/da.po
generated
vendored
Normal file
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/da.po
generated
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||
#
|
||||
# !!! IMPORTANT !!!
|
||||
#
|
||||
# Before you edit this file, please keep in mind that contributing to the project
|
||||
# translations is possible ONLY via the Transifex online service.
|
||||
#
|
||||
# To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
|
||||
#
|
||||
# To learn more, check out the official contributor's guide:
|
||||
# https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: Danish (https://app.transifex.com/ckeditor/teams/11143/da/)\n"
|
||||
"Language: da\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the left."
|
||||
msgid "Align left"
|
||||
msgstr "Justér venstre"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the right."
|
||||
msgid "Align right"
|
||||
msgstr "Justér højre"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to center."
|
||||
msgid "Align center"
|
||||
msgstr "Justér center"
|
||||
|
||||
msgctxt "Toolbar button tooltip for making the text justified."
|
||||
msgid "Justify"
|
||||
msgstr "Justér"
|
||||
|
||||
msgctxt "Dropdown button tooltip for the text alignment feature."
|
||||
msgid "Text alignment"
|
||||
msgstr "Tekstjustering"
|
||||
|
||||
msgctxt "Label used by assistive technologies describing the text alignment feature toolbar."
|
||||
msgid "Text alignment toolbar"
|
||||
msgstr "Tekstjustering værktøjslinje"
|
||||
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/de-ch.po
generated
vendored
Normal file
42
vendor/ckeditor5/node_modules/@ckeditor copy/ckeditor5-alignment/lang/translations/de-ch.po
generated
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||
#
|
||||
# !!! IMPORTANT !!!
|
||||
#
|
||||
# Before you edit this file, please keep in mind that contributing to the project
|
||||
# translations is possible ONLY via the Transifex online service.
|
||||
#
|
||||
# To submit your translations, visit https://www.transifex.com/ckeditor/ckeditor5.
|
||||
#
|
||||
# To learn more, check out the official contributor's guide:
|
||||
# https://ckeditor.com/docs/ckeditor5/latest/framework/guides/contributing/contributing.html
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language-Team: German (Switzerland) (https://app.transifex.com/ckeditor/teams/11143/de_CH/)\n"
|
||||
"Language: de_CH\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the left."
|
||||
msgid "Align left"
|
||||
msgstr "Linksbündig"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to the right."
|
||||
msgid "Align right"
|
||||
msgstr "Rechtsbündig"
|
||||
|
||||
msgctxt "Toolbar button tooltip for aligning the text to center."
|
||||
msgid "Align center"
|
||||
msgstr "Zentriert"
|
||||
|
||||
msgctxt "Toolbar button tooltip for making the text justified."
|
||||
msgid "Justify"
|
||||
msgstr "Blocksatz"
|
||||
|
||||
msgctxt "Dropdown button tooltip for the text alignment feature."
|
||||
msgid "Text alignment"
|
||||
msgstr "Textausrichtung"
|
||||
|
||||
msgctxt "Label used by assistive technologies describing the text alignment feature toolbar."
|
||||
msgid "Text alignment toolbar"
|
||||
msgstr "Textausrichtung Werkzeugleiste"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue