fix: registration, detail audio

This commit is contained in:
sabdayagra 2025-01-16 23:55:04 +07:00
parent fb24684aa0
commit 0bb3e340ae
10308 changed files with 632 additions and 1027058 deletions

View File

@ -15,7 +15,6 @@ import { sendMediaUploadToEmail } from "@/service/media-tracking/media-tracking"
import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover";
import { Input } from "@/components/ui/input";
import { Button } from "@/components/ui/button";
import { Slider } from "@/components/ui/slider";
const formWaveSurferOptions = (ref: any) => ({
container: ref,
@ -73,7 +72,7 @@ const DetailAudio = () => {
console.log("detailAudio", response);
setIsFromSPIT(response?.data?.data?.isFromSPIT);
setWidth(window.innerWidth);
setContent(response?.data.data);
setContent(response?.data?.data);
setMain({
id: response?.data?.data?.files[0]?.id,
type: response?.data?.data?.fileType.name,
@ -322,6 +321,7 @@ const DetailAudio = () => {
`00${Math.floor(time % 60)}`.slice(-2), // seconds
].join(":");
};
console.log("AUDIO", main?.url);
const options = formWaveSurferOptions(waveformRef.current);
@ -382,7 +382,7 @@ const DetailAudio = () => {
<div className="rounded-md overflow-hidden md:flex">
{/* Bagian Kiri */}
<div className="md:w-3/4">
<div className="relative flex flex-row justify-between">
<div className="relative flex flex-row">
<button onClick={handlePlayPause}>
<img src={`/assets/${playing ? "stop-icon.png" : "play-icon.png"}`} />
</button>
@ -396,9 +396,9 @@ const DetailAudio = () => {
: {}
}
>
<BarWave color="#ffc831" width="60px" height="25px" duration="2s" />
{/* <BarWave color="#ffc831" width="60px" height="25px" duration="2s " /> */}
</div>
<div id="waveform" ref={waveformRef} />
<div id="waveform" ref={waveformRef} className="w-[700px] ml-12" />
</div>
<div
className="flex flex-row mt-2"

View File

@ -155,7 +155,8 @@ const FilterPage = () => {
startDateString,
endDateString,
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[0]?.replace("", "") : "",
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[1] : ""
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[1] : "",
locale == "en" ? true : false
);
close();
// setGetTotalPage(response?.data?.data?.totalPages);
@ -187,7 +188,8 @@ const FilterPage = () => {
startDateString,
endDateString,
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[0]?.replace("", "") : "",
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[1] : ""
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[1] : "",
locale == "en" ? true : false
);
close();
// setGetTotalPage(response?.data?.data?.totalPages);
@ -425,7 +427,7 @@ const FilterPage = () => {
<div>
<h3 className="text-sm font-medium text-gray-700 dark:text-white">{t("categories")}</h3>
<ul className="mt-2 space-y-2">
{categories.map((category: any) => (
{categories?.map((category: any) => (
<li key={category?.id}>
<label className="inline-flex items-center" htmlFor={`${category.id}`}>
<Checkbox id={`${category.id}`} value={category.id} checked={categoryFilter.includes(String(category.id))} onCheckedChange={(e) => handleCategoryFilter(Boolean(e), category.id)} />

View File

@ -4,13 +4,15 @@ import HeaderManagement from "@/components/landing-page/header-management";
import SidebarManagement from "@/components/landing-page/sidebar-management";
import { close, error, loading } from "@/config/swal";
import { getCookiesDecrypt } from "@/lib/utils";
import { getInfoProfile, getUsersTeams } from "@/service/landing/landing";
import { getInfoProfile, getUsersTeams, saveUserReports } from "@/service/landing/landing";
import React, { useEffect, useState } from "react";
import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog";
import withReactContent from "sweetalert2-react-content";
import Swal from "sweetalert2";
import { saveUserReports } from "@/service/content/content";
import { Button } from "@/components/ui/button";
import toast from "react-hot-toast";
import { useToast } from "@/components/ui/use-toast";
import { ToastAction } from "@/components/ui/toast";
const page = () => {
const [user, setUser] = useState<any>();
@ -19,6 +21,8 @@ const page = () => {
const [userSelected, setUserSelected] = useState();
const [reportMessage, setReportMessage] = useState<string>();
const MySwal = withReactContent(Swal);
const { toast } = useToast();
const [reportMessageOpen, setReportMessageOpen] = useState(false);
// const launchModal = (user: any) => {
// setUserSelected(user);
@ -41,6 +45,8 @@ const page = () => {
}
async function save() {
setReportMessageOpen(false);
loading();
const data = {
userId: user?.id,
@ -50,13 +56,24 @@ const page = () => {
const response = await saveUserReports(data);
if (response?.error) {
error(response?.message);
toast({
variant: "destructive",
title: "Uh oh! Something went wrong.",
});
// error(response?.message);
return false;
}
close();
successSubmit();
toast({
title: "Success !!",
});
// toast.success("SUKSES !!", {
// position: "top-right",
// });
// successSubmit();
}
function successSubmit() {
@ -136,9 +153,9 @@ const page = () => {
</div>
<div className="border-b border-black w-full"></div>
<div className="place-items-end">
<Dialog>
<Dialog open={reportMessageOpen} onOpenChange={setReportMessageOpen}>
<DialogTrigger asChild>
<Button variant="outline" className="bg-red-500 rounded-md">
<Button variant="outline" className="bg-red-500 rounded-md text-white hover:bg-white hover:text-red-500">
Report
</Button>
</DialogTrigger>
@ -150,13 +167,28 @@ const page = () => {
<div className="border-b border-black w-full"></div>
<div className="flex flex-col">
<h1 className="text-red-600 mb-2">Alasan Report Akun</h1>
<textarea id="formControlTextarea1" rows={4} className="border border-black font-light" onChange={(e) => setReportMessage(e.target.value)} />
<textarea id="formControlTextarea1" rows={4} className="border border-black font-light" onChange={(e: any) => setReportMessage(e.target.value)} />
</div>
</div>
<DialogFooter>
<Button className="bg-red-500 text-white" type="submit" onClick={() => onSubmit()}>
Kirim
</Button>
<Dialog>
<DialogTrigger asChild>
<Button className="bg-red-500 text-white" type="submit">
Kirim
</Button>
</DialogTrigger>
<DialogContent>
<h1>Simpan Data?</h1>
<DialogFooter>
<DialogClose>
<Button onClick={save}>Simpan</Button>
</DialogClose>
<DialogClose>
<Button>Cancel</Button>
</DialogClose>
</DialogFooter>
</DialogContent>
</Dialog>
</DialogFooter>
</DialogContent>
</Dialog>

View File

@ -153,7 +153,8 @@ const FilterPage = () => {
startDateString,
endDateString,
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[0]?.replace("", "") : "",
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[1] : ""
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[1] : "",
locale == "en" ? true : false
);
close();
// setGetTotalPage(response?.data?.data?.totalPages);
@ -185,7 +186,8 @@ const FilterPage = () => {
startDateString,
endDateString,
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[0]?.replace("", "") : "",
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[1] : ""
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[1] : "",
locale == "en" ? true : false
);
close();
// setGetTotalPage(response?.data?.data?.totalPages);
@ -282,20 +284,20 @@ const FilterPage = () => {
},
});
useEffect(() => {
initFetch();
}, [page]);
// useEffect(() => {
// initFetch();
// }, [page]);
const initFetch = async () => {
const response = await getListContent({ page: page - 1, size: 6, sortBy: "createdAt", contentTypeId: "3", isInt: locale == "en" ? true : false });
console.log(response);
setDocumentData(response?.data?.data?.content);
const data = response?.data?.data;
const contentData = data?.content;
setDocumentData(contentData);
setTotalData(data?.totalElements);
setTotalPage(data?.totalPages);
};
// const initFetch = async () => {
// const response = await getListContent({ page: page - 1, size: 6, sortBy: "createdAt", contentTypeId: "3", isInt: locale == "en" ? true : false });
// console.log(response);
// setDocumentData(response?.data?.data?.content);
// const data = response?.data?.data;
// const contentData = data?.content;
// setDocumentData(contentData);
// setTotalData(data?.totalElements);
// setTotalPage(data?.totalPages);
// };
function getSelectedCategory() {
const filter = [];

View File

@ -7,13 +7,14 @@ import { Icon } from "@iconify/react/dist/iconify.js";
import NewContent from "@/components/landing-page/new-content";
import { useToast } from "@/components/ui/use-toast";
import { getCookiesDecrypt } from "@/lib/utils";
import { close, error, loading, successCallback } from "@/config/swal";
import { checkWishlistStatus, deleteWishlist, getDetail, saveWishlist } from "@/service/landing/landing";
import { close, error, loading, successCallback, warning } from "@/config/swal";
import { checkWishlistStatus, createPublicSuggestion, deleteWishlist, getDetail, getPublicSuggestionList, saveWishlist } from "@/service/landing/landing";
import { Link, useRouter } from "@/i18n/routing";
import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover";
import { Input } from "@/components/ui/input";
import { Button } from "@/components/ui/button";
import { sendMediaUploadToEmail } from "@/service/media-tracking/media-tracking";
import { checkMaliciousText } from "@/utils/globals";
const DetailInfo = () => {
const [selectedSize, setSelectedSize] = useState<string>("L");
@ -42,8 +43,11 @@ const DetailInfo = () => {
const id = searchParams?.get("id");
const [width, setWidth] = useState<any>();
const userRoleId = getCookiesDecrypt("urie");
const [message, setMessage] = useState("");
const [listSuggestion, setListSuggestion] = useState();
let typeString = "video";
let typeString = "image";
useEffect(() => {
initFetch();
@ -287,6 +291,84 @@ const DetailInfo = () => {
return false;
};
const getInputValue = (e: any) => {
const message = e.target.value;
console.log(message);
setMessage(message);
};
async function sendSuggestionParent() {
if (message?.length > 3) {
loading();
const data = {
mediaUploadId: id?.split("-")?.[0],
message,
parentId: null,
};
const response = await createPublicSuggestion(data);
console.log(response);
setMessage("");
const responseGet = await getPublicSuggestionList(id?.split("-")?.[0]);
console.log(responseGet?.data?.data);
setListSuggestion(responseGet?.data?.data);
$(":input").val("");
close();
}
}
// async function sendSuggestionChild(parentId: any) {
// const inputMsg = document.querySelectorAll(`#input-comment-${parentId}`)[0]
// .value;
// if (inputMsg?.length > 3) {
// loading();
// const data = {
// mediaUploadId: id?.split("-")?.[0],
// message: inputMsg,
// parentId,
// };
// console.log(data);
// const response = await createPublicSuggestion(data);
// console.log(response);
// const responseGet: any = await getPublicSuggestionList(id?.split("-")?.[0]);
// console.log(responseGet.data?.data);
// setListSuggestion(responseGet.data?.data);
// // $(":input").val("");
// document.querySelectorAll(`#input-comment-${parentId}`)[0].value = "";
// // document.querySelectorAll("#comment-id-" + parentId)[0].style.display = "none";
// close();
// }
// }
const postData = () => {
const checkMessage = checkMaliciousText(message);
if (checkMessage == "") {
if (Number(userRoleId) < 1 || userRoleId == undefined) {
router.push("/auth/login");
} else {
sendSuggestionParent();
}
} else {
warning(checkMessage);
}
};
// const postDataChild = (id: any) => {
// const checkMessage = checkMaliciousText(message);
// if (checkMessage == "") {
// if (Number(userRoleId) < 1 || userRoleId == undefined) {
// router.push("/auth/login");
// } else {
// sendSuggestionChild(id);
// }
// } else {
// warning(checkMessage);
// }
// };
return (
<>
<div className="min-h-screen px-4 md:px-24 py-4">
@ -431,9 +513,16 @@ const DetailInfo = () => {
<div className="flex flex-col my-16 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>
<Textarea placeholder="Type your comments here." className="flex w-full" />
<Textarea placeholder="Type your comments here." className="flex w-full" onChange={getInputValue} />
<button className="flex items-start bg-[#bb3523] rounded-lg w-fit text-white px-4 py-1">Kirim</button>
</div>
<div className="border-b-2 border-black mt-4"></div>
<div className="flex flex-row">
<img src="/assets/avatar-profile.png" alt="avatar" />
<div className="bg-white border border-black ">
</div>
</div>
</div>
{/* Konten Serupa */}

View File

@ -2,7 +2,7 @@
import { Button } from "@/components/ui/button";
import { Calendar } from "@/components/ui/calendar";
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@/components/ui/dropdown-menu";
import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover";
import { Popover, PopoverArrow, PopoverContent, PopoverTrigger } from "@/components/ui/popover";
import { CalendarIcon } from "lucide-react";
import React, { useEffect, useState } from "react";
import { format } from "date-fns";
@ -10,7 +10,7 @@ import { cn } from "@/lib/utils";
import { Checkbox } from "@/components/ui/checkbox";
import { Icon } from "@iconify/react/dist/iconify.js";
import { detailSchedule, listSchedule, listScheduleNextPublic, listSchedulePrevPublic, listScheduleTodayPublic, searchSchedules } from "@/service/schedule/schedule";
import { useRouter } from "@/i18n/routing";
import { usePathname, useRouter } from "@/i18n/routing";
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger } from "@/components/ui/alert-dialog";
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@/components/ui/accordion";
import { close, loading } from "@/config/swal";
@ -116,8 +116,57 @@ const timeList = [
},
];
const city = [
{
key: 1,
id: "metro-jaya",
name: "Polda Metro Jaya",
},
{
key: 2,
id: "jawa-barat",
name: "Polda Jawa Barat",
},
{
key: 3,
id: "banten",
name: "Polda Banten",
},
{
key: 4,
id: "jawa-tengah",
name: "Polda Jawa Tengah",
},
{
key: 5,
id: "daerah-istimewa-yogyakarta",
name: "Polda D.I Yogyakarta",
},
{
key: 6,
id: "jawa-timur",
name: "Polda Jawa Timur",
},
{
key: 7,
id: "aceh",
name: "Polda Aceh",
},
{
key: 8,
id: "sumatera-utara",
name: "Polda Sumatera Utara",
},
{
key: 9,
id: "sumatera-barat",
name: "Polda Sumatera Barat",
},
];
const Schedule = (props: any) => {
const router = useRouter();
const asPath = usePathname();
const [startDate, setStartDate] = useState<Date | undefined>(new Date());
const [dateAWeek, setDateAWeek] = useState<string[]>([]);
const [todayList, setTodayList] = useState([]);
@ -133,6 +182,9 @@ const Schedule = (props: any) => {
const [scheduleSearch, setScheduleSearch] = useState<any>();
let typingTimer: any;
const doneTypingInterval = 1500;
const [regionFilter, setRegionFilter] = useState<any>([]);
const [regionName, setRegionName] = useState<any>([]);
const isPolda = asPath.includes("/polda");
async function doneTyping() {
if (search?.length > 2) {
@ -162,6 +214,23 @@ const Schedule = (props: any) => {
getDataSchedule();
}, [id]);
useEffect(() => {
async function initState() {
const group = isPolda ? asPath.split("/")[2] : regionFilter?.join(",");
const resSchedule = await listSchedule(group);
setSchedules(resSchedule.data?.data);
console.log(resSchedule);
setDateAWeek(dateList);
getDataByDate(); // let today = new Date();
// if (!dateList.includes(today.getDate())){
// changeNextWeek();
// }
}
initState();
console.log("Filter ::", regionFilter);
}, [regionName]);
useEffect(() => {
async function initState() {
getDataByDate();
@ -302,6 +371,57 @@ const Schedule = (props: any) => {
setOpenDialog(true);
};
const handleRegionFilter = (e: any) => {
let regions = [...regionFilter];
if (e.target.checked) {
regions = [...regionFilter, e.target.value];
} else {
regions.splice(regionFilter.indexOf(e.target.value), 1);
}
console.log(regions);
setRegionFilter(regions);
};
const getListDataCity = () => {
let filteredReg: any = [];
let regName = "";
for (const element of regionFilter) {
for (const element_ of city) {
if (element == element_.id) {
regName = element_.name;
filteredReg = [
...filteredReg,
{
id: element_.id,
key: element_.key,
name: regName,
},
];
}
}
}
console.log(filteredReg);
setRegionName(filteredReg);
filteredReg = [];
};
const doFilter = () => {
getListDataCity();
};
const deleteFilterhandler = (filterId: any) => {
console.log("hapus", filterId);
const deletedReg = regionName.filter((list: any) => list.id !== filterId);
const filtered = regionFilter.filter((list: any) => list !== filterId);
setRegionName(deletedReg);
setRegionFilter(filtered);
};
function setItemSchedule(id: string, date: string) {
const itemFound: any = schedules?.filter((s: any) => s.dateInRange.includes(date) && s.timeIndex.split(",").includes(id));
@ -381,8 +501,8 @@ const Schedule = (props: any) => {
</Popover>
<div className="container relative py-4">
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Popover>
<PopoverTrigger asChild>
<a className="text-black flex flex-row w-fit gap-2 py-4 items-center cursor-pointer">
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24">
<path fill="#000" d="M20 3H4a1 1 0 0 0-1 1v2.227l.008.223a3 3 0 0 0 .772 1.795L8 12.886V21a1 1 0 0 0 1.316.949l6-2l.108-.043A1 1 0 0 0 16 19v-6.586l4.121-4.12A3 3 0 0 0 21 6.171V4a1 1 0 0 0-1-1" />
@ -392,56 +512,39 @@ const Schedule = (props: any) => {
<path fill="currentColor" fill-rule="evenodd" d="m6 7l6 6l6-6l2 2l-8 8l-8-8z" />
</svg>
</a>
</DropdownMenuTrigger>
<DropdownMenuContent align="start" className="flex p-0 rounded-md">
<DropdownMenuItem className="flex flex-col items-center justify-between gap-1.5 p-2 border-b text-default-600 rounded-none">
</PopoverTrigger>
<PopoverContent align="start" className="flex p-0 rounded-md w-fit">
<div className="flex flex-col items-center justify-between gap-1.5 p-2 border-b text-default-600 rounded-none">
<div className="gap-6 flex flex-row justify-end">
<div> Filter</div>
<button className="text-blue-400">Simpan</button>
<p className="font-semibold">Filter</p>
<button className="text-blue-400" onClick={doFilter}>
Simpan
</button>
</div>
<div className="border w-full border-t border-slate-500"></div>
<div className="overflow-y-auto flex flex-col gap-2 h-[200px] ">
<p>Region Filter</p>
<div className="mt-2 gap-2 flex flex-row">
<Checkbox id="terms" />
<p>POLDA METRO JAYA</p>
</div>
<div className="mt-2 gap-2 flex flex-row">
<Checkbox id="terms" />
<p>POLDA METRO JAYA</p>
</div>
<div className="mt-2 gap-2 flex flex-row">
<Checkbox id="terms" />
<p>POLDA METRO JAYA</p>
</div>
<div className="mt-2 gap-2 flex flex-row">
<Checkbox id="terms" />
<p>POLDA METRO JAYA</p>
</div>
<div className="mt-2 gap-2 flex flex-row">
<Checkbox id="terms" />
<p>POLDA METRO JAYA</p>
</div>
<div className="mt-2 gap-2 flex flex-row">
<Checkbox id="terms" />
<p>POLDA METRO JAYA</p>
</div>
<div className="mt-2 gap-2 flex flex-row">
<Checkbox id="terms" />
<p>POLDA METRO JAYA</p>
</div>
<div className="mt-2 gap-2 flex flex-row">
<Checkbox id="terms" />
<p>POLDA METRO JAYA</p>
</div>
<div className="mt-2 gap-2 flex flex-row">
<Checkbox id="terms" />
<p>POLDA METRO JAYA</p>
</div>
<div className="border w-full border-t border-slate-500"></div>
<div className="overflow-y-auto flex flex-col gap-2 h-[200px]">
<p className="text-center font-semibold">Region Filter</p>
{city?.map((list) => (
<div className="mt-2 gap-2 flex flex-row">
{" "}
<input type="checkbox" className="" id={`filterCategory-${list.key}`} value={list.id} checked={regionFilter?.includes(list.id)} onChange={handleRegionFilter} />
<p>{list?.name}</p>
</div>
))}
</div>
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
</div>
</PopoverContent>
</Popover>
<div>
{regionName?.map((list: any) => (
<div className="text-left">
<button onClick={() => deleteFilterhandler(list.id)} key={list.key} id={list.id} className="text-black bg-yellow-300 w-fit p-3 flex justify-center items-center rounded-lg">
{list.name}&nbsp;
<Icon icon="icon-park-outline:delete-two" className="items-center" />
</button>
</div>
))}
</div>
</div>
<div className="flex flex-col lg:flex-row gap-6">
<div className="h-[500px] overflow-y-auto w-3/4 ">

View File

@ -105,7 +105,7 @@ const FilterPage = () => {
}
}
initState();
}, [locale, change, asPath, monthYearFilter, page, sortBy, sortByOpt, title, startDateString, endDateString, categorie, formatFilter]);
}, [change, asPath, monthYearFilter, page, sortBy, sortByOpt, title, startDateString, endDateString, categorie, formatFilter]);
async function getCategories() {
const category = await listCategory("2");
@ -147,7 +147,8 @@ const FilterPage = () => {
startDateString,
endDateString,
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[0]?.replace("", "") : "",
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[1] : ""
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[1] : "",
locale == "en" ? true : false
);
close();
// setGetTotalPage(response?.data?.data?.totalPages);
@ -162,7 +163,6 @@ const FilterPage = () => {
}
} else {
const filter = categoryFilter?.length > 0 ? categoryFilter?.sort().join(",") : categorie || "";
const name = title == undefined ? "" : title;
const format = formatFilter == undefined ? "" : formatFilter?.join(",");
loading();
@ -179,7 +179,8 @@ const FilterPage = () => {
startDateString,
endDateString,
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[0]?.replace("", "") : "",
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[1] : ""
monthYearFilter ? getOnlyMonthAndYear(monthYearFilter)?.split("/")[1] : "",
locale == "en" ? true : false
);
close();
// setGetTotalPage(response?.data?.data?.totalPages);
@ -276,25 +277,25 @@ const FilterPage = () => {
},
});
useEffect(() => {
initFetch();
}, [page]);
const initFetch = async () => {
const response = await getListContent({
page: page - 1,
size: 6,
sortBy: "createdAt",
contentTypeId: "2",
isInt: locale == "in" ? true : false,
});
console.log(response);
setVideoData(response?.data?.data?.content);
const data = response?.data?.data;
const contentData = data?.content;
setVideoData(contentData);
setTotalData(data?.totalElements);
setTotalPage(data?.totalPages);
};
// useEffect(() => {
// initFetch();
// }, [page]);
// const initFetch = async () => {
// const response = await getListContent({
// page: page - 1,
// size: 6,
// sortBy: "createdAt",
// contentTypeId: "2",
// isInt: locale == "en" ? true : false,
// });
// console.log(response);
// setVideoData(response?.data?.data?.content);
// const data = response?.data?.data;
// const contentData = data?.content;
// setVideoData(contentData);
// setTotalData(data?.totalElements);
// setTotalPage(data?.totalPages);
// };
function getSelectedCategory() {
const filter = [];

View File

@ -8,8 +8,7 @@ import { Label } from "@/components/ui/label";
import Image from "next/image";
import { close, error, loading, registerConfirm } from "@/config/swal";
import { Link, useRouter } from "@/i18n/routing";
import { getDataByNIK, getDataByNRP, getDataJournalist, getDataPersonil, listCity, listDistricts, listInstitusi, listProvince, postRegistration, saveInstitutes } from "@/service/auth";
import { requestOTP, verifyOTP } from "@/service/landing/landing";
import { getDataByNIK, getDataByNRP, getDataJournalist, getDataPersonil, listCity, listDistricts, listInstitusi, listProvince, postRegistration, requestOTP, saveInstitutes, verifyOTP } from "@/service/auth";
import { yupResolver } from "@hookform/resolvers/yup";
import { useParams, useSearchParams } from "next/navigation";
import { useEffect, useState } from "react";
@ -21,8 +20,7 @@ import { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from "@/comp
import { Textarea } from "@/components/ui/textarea";
import { Icon } from "@/components/ui/icon";
import dynamic from "next/dynamic";
import ReactPasswordChecklist from "react-password-checklist";
import { Select } from "@/components/ui/select";
import sanitizeHtml from "sanitize-html";
type Inputs = {
example: string;
@ -157,37 +155,37 @@ const page = () => {
}
}
// const sanitizedFirstName = sanitizeHtml(data.firstName);
const sanitizedFirstName = sanitizeHtml(data.firstName);
// if (sanitizedFirstName == "") {
// error("Invalid Name");
// } else {
// const datas = {
// firstName: sanitizedFirstName,
// lastName: "",
// username: data.username,
// phoneNumber: data.phoneNumber,
// email,
// address: data.address,
// memberIdentity: userIdentity,
// provinceId: Number(data.provinsi),
// cityId: Number(data.kota),
// districtId: Number(data.kecamatan),
// password: data.password,
// instituteId: Number(institutionId),
// roleId: Number(category),
// };
if (sanitizedFirstName == "") {
error("Invalid Name");
} else {
const datas = {
firstName: sanitizedFirstName,
lastName: sanitizedFirstName,
username: data.username,
phoneNumber: data.phoneNumber,
email,
address: data.address,
memberIdentity: userIdentity,
provinceId: Number(data.provinsi),
cityId: Number(data.kota),
districtId: Number(data.kecamatan),
password: data.password,
instituteId: Number(institutionId),
roleId: Number(category),
};
// const response = await postRegistration(datas);
// console.log(response);
// if (response?.error) {
// error(response?.message);
// return false;
// }
const response = await postRegistration(datas);
console.log(response);
if (response?.error) {
error(response?.message);
return false;
}
// registerConfirm();
// return false;
// }
registerConfirm();
return false;
}
}
const handleSendOTP = async () => {
@ -597,7 +595,7 @@ const page = () => {
}
>
<label htmlFor="association" className="mb-2">
<b>Jenis Keanggotaan</b> <span className="text-red-500">*</span>
Jenis Keanggotaan <span className="text-red-500">*</span>
</label>
<select className={`py-3 px-2 rounded-md border border-black ${errors.association ? "block" : ""}`} {...register("association")} id="association" onChange={(e) => setAssociation(e.target.value)}>
<option disabled selected>
@ -727,10 +725,10 @@ const page = () => {
Username <span className="text-red-500">*</span>
</label>
<Input
id="username"
type="text"
autoComplete="off"
className={`${errors.username ? "block" : ""}`}
{...register("username")}
placeholder="Masukan Username"
onChange={(e) => {
setValUsername(e.target.value.trim());

View File

@ -11,12 +11,14 @@ import Division from "@/components/landing-page/division";
import Navbar from "@/components/landing-page/navbar";
import { ReactLenis } from "@studio-freight/react-lenis";
import MountedProvider from "@/providers/mounted.provider";
import NewsTicker from "@/components/landing-page/news-tickers";
const Home = ({ params: { locale } }: { params: { locale: string } }) => {
return (
<MountedProvider isProtected={false}>
<ReactLenis root>
<Navbar />
<NewsTicker />
<Hero />
<SearchSection />
<NewContent group="mabes" type="latest" />

View File

@ -134,7 +134,7 @@ const Hero: React.FC = () => {
</div>
</>
) : (
<ul className="py-4 lg:py-0 flex flex-row lg:flex-col gap-4 flex-nowrap w-full overflow-x-auto">
<ul className="py-4 lg:py-0 flex flex-row lg:flex-col gap-4 flex-nowrap w-[95vw] lg:w-auto overflow-x-auto">
{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">

View File

@ -1,99 +0,0 @@
// import { listCarousel } from '@/service/landing/landing';
// import React, { useEffect, useRef, useState } from 'react'
// import NewsTicker from "react-advanced-news-ticker";
// const NewsTicker = () => {
// const [content, setContent] = useState([]);
// const newsTickerRef = useRef<any>(null);
// useEffect(() => {
// async function fetchCarouselData() {
// try {
// const response = await listCarousel();
// setContent(response.data?.data || []);
// console.log('Carousel data:', response.data?.data);
// } catch (error) {
// console.error('Error fetching carousel data:', error);
// }
// }
// fetchCarouselData();
// }, []);
// function formatDateIndonesianWithTime(dateString: any) {
// const options: any = {
// year: 'numeric',
// month: 'long',
// day: 'numeric',
// hour: 'numeric',
// minute: 'numeric'
// };
// const formattedDate = new Date(dateString).toLocaleDateString('id-ID', options);
// return formattedDate.replace('pukul', '-');
// }
// const dummyNews = Array.from({ length: 10 }, (_, index) => ({
// id: index + 1,
// title: `Berita ${index + 1}`,
// name: `Penulis ${index + 1}`,
// }));
// return (
// <section className='section-news fixed-bottom'>
// <div className='breaking-news pt-3 pl-3' >
// Breaking News
// </div>
// <div className='news pt-3'>
// {content.length > 0 ?
// (
// <NewsTicker maxRows={1}
// rowHeight={45}
// duration={4000}
// ref={newsTickerRef}
// autoStart={true}
// style={{ listStyleType: "none" }}
// >
// {content.map((item: any) => (
// <>
// <div key={item.id} className="news-item">
// <a style={{ color: "black" }}
// href={
// Number(item.fileType?.id) == 1
// ? `/image/detail/${item.slug}`
// : Number(item.fileType?.id) == 2
// ? `/video/detail/${item.slug}`
// : Number(item.fileType?.id) == 3
// ? `/document/detail/${item.slug}`
// : `/audio/detail/${item.slug}`
// }
// >
// {item.title}.
// </a>
// </div>
// <div>
// {formatDateIndonesianWithTime(item.createdAt)}
// </div>
// </>
// ))}
// </NewsTicker>
// ) : (
// <p className='pl-4'>Loading...</p> // Tampilkan pesan "Loading..." saat data belum tersedia.
// )}
// </div>
// <div className='navigation pr-0 mr-0'>
// <button className="arrow-button left" onClick={() => { newsTickerRef?.current?.moveDown() }}>&#9664;</button>
// <button className="arrow-button right" onClick={() => { newsTickerRef?.current?.moveUp() }}>&#9654;</button>
// </div>
// </section>
// )
// }
// export default NewsTicker

View File

@ -0,0 +1,72 @@
"use client";
import { Link } from "@/i18n/routing";
import { getHeroData, listCarousel } from "@/service/landing/landing";
import { formatDateToIndonesian, textEllipsis } from "@/utils/globals";
import { useEffect, useState } from "react";
import { Icon } from "../ui/icon";
export default function NewsTicker() {
const [article, setArticle] = useState<any>([]);
const [currentNewsIndex, setCurrentNewsIndex] = useState(0);
const [animate, setAnimate] = useState(false);
useEffect(() => {
async function getArticle() {
const response = await getHeroData();
setArticle(response?.data?.data?.content);
}
getArticle();
}, []);
const triggerAnimation = (newIndex: number) => {
setAnimate(true);
setTimeout(() => {
setCurrentNewsIndex(newIndex);
setAnimate(false);
}, 300);
};
const handlePrev = () => {
const newIndex = (currentNewsIndex - 1 + article.length) % article.length;
triggerAnimation(newIndex);
};
const handleNext = () => {
const newIndex = (currentNewsIndex + 1) % article.length;
triggerAnimation(newIndex);
};
useEffect(() => {
const interval = setInterval(() => {
triggerAnimation((currentNewsIndex + 1) % article.length);
}, 7000);
return () => clearInterval(interval);
}, [article.length]);
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
<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"}`}>
<Link href={`news/detail/${article[currentNewsIndex]?.id}`} className="hidden lg:block">
<p className="text-sm lg:text-base">{article[currentNewsIndex]?.title}</p>
</Link>
<Link href={`news/detail/${article[currentNewsIndex]?.id}`} className="lg:hidden">
<p className="text-sm lg:text-base">{textEllipsis(article[currentNewsIndex]?.title, 28)}</p>
</Link>
<p className="text-xs">{formatDateToIndonesian(article[currentNewsIndex]?.createdAt)}</p>
</div>
<div className="flex flex-row text-white h-full gap-[1px]">
<a className="bg-[#bb3523] h-full flex items-center" onClick={() => handlePrev()}>
<Icon icon="ic:twotone-arrow-left" fontSize={30} />
</a>
<a className="bg-[#bb3523] h-full flex items-center" onClick={() => handleNext()}>
<Icon icon="ic:twotone-arrow-right" fontSize={30} />
</a>
</div>
</div>
);
}

View File

@ -1,7 +1,7 @@
import Swal from 'sweetalert2';
import withReactContent from 'sweetalert2-react-content';
import Swal from "sweetalert2";
import withReactContent from "sweetalert2-react-content";
type SweetAlertIcon = 'success' | 'error' | 'warning' | 'info' | 'question';
type SweetAlertIcon = "success" | "error" | "warning" | "info" | "question";
const MySwal = withReactContent(Swal);
@ -25,15 +25,15 @@ export function error(msg: string): void {
MySwal.fire({
title: '<p class="text-red-600 font-semibold">Gagal</p>',
html: `<p class="text-gray-700">${msg}</p>`,
icon: 'error',
icon: "error",
});
}
export function success(redirect: string): void {
MySwal.fire({
title: '<p class="text-green-600 font-bold">Sukses</p>',
icon: 'success',
confirmButtonColor: '#3085d6',
icon: "success",
confirmButtonColor: "#3085d6",
confirmButtonText: '<span class="text-white">OK</span>',
allowOutsideClick: false,
}).then((result) => {
@ -45,18 +45,18 @@ export function success(redirect: string): void {
export function successCallback(title?: string): Promise<boolean> {
return MySwal.fire({
title: `<p class="text-green-600 font-bold">${title || 'Sukses'}</p>`,
icon: 'success',
confirmButtonColor: '#3085d6',
title: `<p class="text-green-600 font-bold">${title || "Sukses"}</p>`,
icon: "success",
confirmButtonColor: "#3085d6",
confirmButtonText: '<span class="text-white">OK</span>',
}).then((result) => result.isConfirmed);
}
export function successCallbackContent(title?: string): Promise<boolean> {
return MySwal.fire({
title: `<p class="text-green-600 font-bold">${title || 'Konten Telah Berhasil Disimpan'}</p>`,
icon: 'success',
confirmButtonColor: '#3085d6',
title: `<p class="text-green-600 font-bold">${title || "Konten Telah Berhasil Disimpan"}</p>`,
icon: "success",
confirmButtonColor: "#3085d6",
confirmButtonText: '<span class="text-white">OK</span>',
}).then((result) => result.isConfirmed);
}
@ -70,8 +70,8 @@ export function welcome(name: string): Promise<boolean> {
timerInterval = setInterval(() => {}, 100);
return MySwal.fire({
title: `<p class="text-green-600 font-bold">Selamat Datang ${name} \nDi Mediahub</p>`,
icon: 'success',
confirmButtonColor: '#3085d6',
icon: "success",
confirmButtonColor: "#3085d6",
confirmButtonText: '<span class="text-white">OK</span>',
timer: 2000,
timerProgressBar: false,
@ -86,8 +86,8 @@ export function welcomeGuest(name: string): Promise<boolean> {
timerInterval = setInterval(() => {}, 100);
return MySwal.fire({
title: `<p class="text-green-600 font-bold">Selamat Datang ${name} \nDi Mediahub</p>`,
icon: 'success',
confirmButtonColor: '#3085d6',
icon: "success",
confirmButtonColor: "#3085d6",
confirmButtonText: '<span class="text-white">OK</span>',
timer: 2000,
timerProgressBar: false,
@ -101,12 +101,12 @@ export function registerConfirm(): void {
MySwal.fire({
title: '<p class="text-green-600 font-bold">Selamat Anda Telah Terdaftar</p>',
html: '<p class="text-gray-700">Mohon Menunggu Email Konfirmasi Untuk Bisa Melakukan Login</p>',
icon: 'success',
confirmButtonColor: '#3085d6',
icon: "success",
confirmButtonColor: "#3085d6",
confirmButtonText: '<span class="text-white">OK</span>',
}).then((result) => {
if (result.isConfirmed) {
window.location.href = '/auth/login';
window.location.href = "/auth";
}
});
}
@ -114,8 +114,8 @@ export function registerConfirm(): void {
export function warning(text: string, redirect?: string): Promise<boolean> {
return MySwal.fire({
title: `<p class="text-yellow-600 font-bold">${text}</p>`,
icon: 'warning',
confirmButtonColor: '#3085d6',
icon: "warning",
confirmButtonColor: "#3085d6",
confirmButtonText: '<span class="text-white">OK</span>',
}).then((result) => {
if (redirect && result.isConfirmed) {

77
package-lock.json generated
View File

@ -64,6 +64,7 @@
"@types/react-google-recaptcha": "^2.1.9",
"@types/react-html-parser": "^2.0.6",
"@types/react-syntax-highlighter": "^15.5.13",
"@types/sanitize-html": "^2.13.0",
"@vercel/analytics": "^1.3.1",
"@wavesurfer/react": "^1.0.8",
"apexcharts": "^3.49.2",
@ -88,6 +89,7 @@
"input-otp": "^1.2.4",
"jodit-react": "^4.1.2",
"jotai": "^2.9.3",
"jquery": "^3.7.1",
"js-cookie": "^3.0.5",
"layout-grid": "^2.2.0",
"leaflet": "^1.9.4",
@ -129,6 +131,7 @@
"react-voice-recorder": "^2.1.2",
"recharts": "^2.12.7",
"rtl-detect": "^1.1.2",
"sanitize-html": "^2.14.0",
"sharp": "^0.33.4",
"sonner": "^1.5.0",
"sweetalert2": "^11.10.5",
@ -16742,6 +16745,32 @@
"integrity": "sha512-qpstuHivwg/HoXxRrBo5/r/OVx5M2SkqJpVu2haasdLctt+jMGHWjqdbI0LL7Rk2wRmN/UHdHK4JZg9RUMcvKA==",
"dev": true
},
"node_modules/@types/sanitize-html": {
"version": "2.13.0",
"resolved": "https://registry.npmjs.org/@types/sanitize-html/-/sanitize-html-2.13.0.tgz",
"integrity": "sha512-X31WxbvW9TjIhZZNyNBZ/p5ax4ti7qsNDBDEnH4zAgmEh35YnFD1UiS6z9Cd34kKm0LslFW0KPmTQzu/oGtsqQ==",
"dependencies": {
"htmlparser2": "^8.0.0"
}
},
"node_modules/@types/sanitize-html/node_modules/htmlparser2": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
"integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
"funding": [
"https://github.com/fb55/htmlparser2?sponsor=1",
{
"type": "github",
"url": "https://github.com/sponsors/fb55"
}
],
"dependencies": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3",
"domutils": "^3.0.1",
"entities": "^4.4.0"
}
},
"node_modules/@types/scheduler": {
"version": "0.16.8",
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz",
@ -22228,7 +22257,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
@ -22539,9 +22567,9 @@
}
},
"node_modules/jquery": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz",
"integrity": "sha512-lBHj60ezci2u1v2FqnZIraShGgEXq35qCzMv4lITyHGppTnA13rwR0MgwyNJh9TnDs3aXUvd1xjAotfraMHX/Q=="
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz",
"integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg=="
},
"node_modules/js-base64": {
"version": "3.7.7",
@ -22750,6 +22778,11 @@
"jquery": "^1.7, ^2.0"
}
},
"node_modules/layout-grid/node_modules/jquery": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz",
"integrity": "sha512-lBHj60ezci2u1v2FqnZIraShGgEXq35qCzMv4lITyHGppTnA13rwR0MgwyNJh9TnDs3aXUvd1xjAotfraMHX/Q=="
},
"node_modules/leaflet": {
"version": "1.9.4",
"resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz",
@ -25450,6 +25483,11 @@
"protocols": "^2.0.0"
}
},
"node_modules/parse-srcset": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz",
"integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q=="
},
"node_modules/parse-url": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz",
@ -27830,6 +27868,37 @@
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/sanitize-html": {
"version": "2.14.0",
"resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.14.0.tgz",
"integrity": "sha512-CafX+IUPxZshXqqRaG9ZClSlfPVjSxI0td7n07hk8QO2oO+9JDnlcL8iM8TWeOXOIBFgIOx6zioTzM53AOMn3g==",
"dependencies": {
"deepmerge": "^4.2.2",
"escape-string-regexp": "^4.0.0",
"htmlparser2": "^8.0.0",
"is-plain-object": "^5.0.0",
"parse-srcset": "^1.0.2",
"postcss": "^8.3.11"
}
},
"node_modules/sanitize-html/node_modules/htmlparser2": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
"integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
"funding": [
"https://github.com/fb55/htmlparser2?sponsor=1",
{
"type": "github",
"url": "https://github.com/sponsors/fb55"
}
],
"dependencies": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3",
"domutils": "^3.0.1",
"entities": "^4.4.0"
}
},
"node_modules/scheduler": {
"version": "0.23.2",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",

View File

@ -65,6 +65,7 @@
"@types/react-google-recaptcha": "^2.1.9",
"@types/react-html-parser": "^2.0.6",
"@types/react-syntax-highlighter": "^15.5.13",
"@types/sanitize-html": "^2.13.0",
"@vercel/analytics": "^1.3.1",
"@wavesurfer/react": "^1.0.8",
"apexcharts": "^3.49.2",
@ -89,6 +90,7 @@
"input-otp": "^1.2.4",
"jodit-react": "^4.1.2",
"jotai": "^2.9.3",
"jquery": "^3.7.1",
"js-cookie": "^3.0.5",
"layout-grid": "^2.2.0",
"leaflet": "^1.9.4",
@ -130,6 +132,7 @@
"react-voice-recorder": "^2.1.2",
"recharts": "^2.12.7",
"rtl-detect": "^1.1.2",
"sanitize-html": "^2.14.0",
"sharp": "^0.33.4",
"sonner": "^1.5.0",
"sweetalert2": "^11.10.5",

View File

@ -58,7 +58,6 @@ export async function getCsrfToken() {
// }
}
export async function getProfile(token: any) {
const url = "users/info";
return httpGetInterceptorWithToken(url, token);
@ -76,15 +75,42 @@ export async function setupPassword(data: any) {
export async function saveUser(data: any) {
const url = "users/save";
return httpPostInterceptor(url, data);
const headers = {
"content-type": "application/json",
};
return httpPost(url, headers);
}
export async function saveInstitutes(data: any) {
const url = "public/users/save-institutes";
return httpPostInterceptor(url, data);
const headers = {
"content-type": "application/json",
};
return httpPost(url, headers);
}
export async function postRegistration(data: any) {
const url = "public/users/save";
return httpPostInterceptor(url, data);
const headers = {
"content-type": "application/json",
};
return httpPost(url, headers, data);
}
export async function requestOTP(data: any) {
const url = "public/users/otp-request";
const headers = {
"content-Type": "application/json",
};
return httpPost(url, headers, data);
}
export async function verifyOTP(email: any, otp: any) {
const url = `public/users/verify-otp?email=${email}&otp=${otp}`;
const headers = {
"content-Type": "application/json",
};
return httpPost(url, headers);
}
export async function getDataByNIK(reqid: any, nik: any) {

View File

@ -195,7 +195,3 @@ export async function saveContentRewrite(data: any) {
const url = "media/rewrite";
return httpPostInterceptor(url, data);
}
export async function saveUserReports(data: any) {
const url = "public/users/reports";
return httpPostInterceptor(url, data);
}

7
service/global.d.ts vendored Normal file
View File

@ -0,0 +1,7 @@
import * as $ from "jquery";
declare global {
interface JQuery {
modal(action?: string): JQuery;
}
}

View File

@ -143,18 +143,6 @@ export async function getPublicSuggestionList(id: any) {
const url = `media/public/suggestion?mediaId=${id}`;
return httpGetInterceptor(url);
}
export async function verifyOTP(email: any, otp: any) {
const url = `public/users/verify-otp?email=${email}&otp=${otp}`;
return httpPostInterceptor(url);
}
export async function requestOTP(data: any) {
const url = "public/users/otp-request";
const header = {
"content-Type": "application/json",
};
return httpPost(url, header, data);
}
export async function getUserNotifications(page = 0, typeId: any) {
const url = `notification/public/list?enablePage=1&page=${page}&typeId=${typeId}`;
@ -168,3 +156,24 @@ export async function forgotPassword(username: any) {
};
return httpPost(url, header);
}
export async function saveUserReports(data: any) {
const url = "public/users/reports";
const header = {
"content-Type": "application/json",
};
return httpPost(url, header);
}
export async function listCarousel() {
const url = "/media/public/banner";
return httpGetInterceptor(url)
}
export async function createPublicSuggestion(data: any) {
const url = 'media/public/suggestion';
const header = {
"content-Type": "application/json",
};
return httpGet( url, data );
}

View File

@ -115,3 +115,33 @@ export function secondToTimes(sec: number) {
}
return "00:00:00";
}
export function checkMaliciousText(str: any) {
try {
const urlPattern = new RegExp(
"(https?:\\/\\/(?:www\\.|(?!www))[^\\s\\.]+\\.[^\\s]{2,}|www\\.[^\\s]+\\.[^\\s]{2,}|https?:\\/\\/[^\\s]+|\\b(?:https?|ftp):\\/\\/[^\\s/$.?#].[^\\s]*)",
"gi"
);
const isContainUrl = urlPattern.test(str);
if (isContainUrl) {
return "Message mengandung URL yang tidak diizinkan";
}
const emailPattern = /\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b/i;
const isContainEmail = emailPattern.test(str);
if (isContainEmail) {
return "Message mengandung Email yang tidak diizinkan";
}
const phonePattern = /\b(?!\+?62|62|082[0-9])[2-9][0-9]{7,11}\b/g;
const isContainPhone = phonePattern.test(str);
if (isContainPhone) {
return "Message mengandung Nomor HP yang tidak diizinkan";
}
return "";
} catch (error) {
console.log(error);
return "";
}
}

View File

@ -1,162 +0,0 @@
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&nbsp;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).

View File

@ -1,17 +0,0 @@
Software License Agreement
==========================
**CKEditor&nbsp;5 text alignment feature** https://github.com/ckeditor/ckeditor5-alignment <br>
Copyright (c) 20032024, [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.

View File

@ -1,20 +0,0 @@
CKEditor&nbsp;5 text alignment feature
========================================
[![npm version](https://badge.fury.io/js/%40ckeditor%2Fckeditor5-alignment.svg)](https://www.npmjs.com/package/@ckeditor/ckeditor5-alignment)
[![Coverage Status](https://coveralls.io/repos/github/ckeditor/ckeditor5/badge.svg?branch=master)](https://coveralls.io/github/ckeditor/ckeditor5?branch=master)
[![Build Status](https://travis-ci.com/ckeditor/ckeditor5.svg?branch=master)](https://app.travis-ci.com/github/ckeditor/ckeditor5)
This package implements text alignment support for CKEditor&nbsp;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&nbsp;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).

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1 +0,0 @@
!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={}));

View File

@ -1,31 +0,0 @@
{
"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."
}
]
}
]
}

View File

@ -1,8 +0,0 @@
{
"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."
}

View File

@ -1,42 +0,0 @@
# 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"

View File

@ -1,42 +0,0 @@
# 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 "شريط أدوات محاذاة النص"

View File

@ -1,42 +0,0 @@
# 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"

View File

@ -1,42 +0,0 @@
# 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 "Лента за подравняване на текст"

View File

@ -1,42 +0,0 @@
# 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 "টেক্সট শ্রেণীবিন্যাস টুলবার"

View File

@ -1,42 +0,0 @@
# 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"

View File

@ -1,42 +0,0 @@
# 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"

View File

@ -1,42 +0,0 @@
# 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"

View File

@ -1,42 +0,0 @@
# 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"

View File

@ -1,42 +0,0 @@
# 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"

View File

@ -1,42 +0,0 @@
# 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 (https://app.transifex.com/ckeditor/teams/11143/de/)\n"
"Language: de\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 "Text-Ausrichtung Toolbar"

View File

@ -1,42 +0,0 @@
# 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: Greek (https://app.transifex.com/ckeditor/teams/11143/el/)\n"
"Language: el\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 "Γραμμή εργαλείων στοίχισης κειμένου"

View File

@ -1,42 +0,0 @@
# 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: English (Australia) (https://app.transifex.com/ckeditor/teams/11143/en_AU/)\n"
"Language: en_AU\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 "Align left"
msgctxt "Toolbar button tooltip for aligning the text to the right."
msgid "Align right"
msgstr "Align right"
msgctxt "Toolbar button tooltip for aligning the text to center."
msgid "Align center"
msgstr "Align centre"
msgctxt "Toolbar button tooltip for making the text justified."
msgid "Justify"
msgstr "Justify"
msgctxt "Dropdown button tooltip for the text alignment feature."
msgid "Text alignment"
msgstr "Text alignment"
msgctxt "Label used by assistive technologies describing the text alignment feature toolbar."
msgid "Text alignment toolbar"
msgstr "Text alignment toolbar"

Some files were not shown because too many files have changed in this diff Show More