Compare commits
No commits in common. "a71cbeefeb4ca76f8392438e640059cb289d6be6" and "02bd3c8233316e71d8fc010c900f4314833bdf76" have entirely different histories.
a71cbeefeb
...
02bd3c8233
|
|
@ -41,7 +41,6 @@ import {
|
||||||
import { cn } from "@/lib/utils";
|
import { cn } from "@/lib/utils";
|
||||||
import { useTranslations } from "next-intl";
|
import { useTranslations } from "next-intl";
|
||||||
import { getCategoriesAll } from "@/service/service/settings/settings";
|
import { getCategoriesAll } from "@/service/service/settings/settings";
|
||||||
import { listArticleCategories } from "@/service/content";
|
|
||||||
|
|
||||||
const FormSchema = z.object({
|
const FormSchema = z.object({
|
||||||
name: z.string({
|
name: z.string({
|
||||||
|
|
@ -63,17 +62,15 @@ export default function CreateTagModal() {
|
||||||
|
|
||||||
const form = useForm<z.infer<typeof FormSchema>>({
|
const form = useForm<z.infer<typeof FormSchema>>({
|
||||||
resolver: zodResolver(FormSchema),
|
resolver: zodResolver(FormSchema),
|
||||||
defaultValues: {
|
|
||||||
name: "",
|
|
||||||
category: "",
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const onSubmit = async (data: z.infer<typeof FormSchema>) => {
|
const onSubmit = async (data: z.infer<typeof FormSchema>) => {
|
||||||
const request = {
|
const request = {
|
||||||
tagName: data.name,
|
tagName: data.name,
|
||||||
categoryId: Number(data.category),
|
categoryId: Number(data.category),
|
||||||
isActive: true,
|
isActive: true,
|
||||||
};
|
};
|
||||||
|
console.log("reqqq", request);
|
||||||
// const response = await postDataFeedback(request);
|
// const response = await postDataFeedback(request);
|
||||||
// close();
|
// close();
|
||||||
// if (response?.error) {
|
// if (response?.error) {
|
||||||
|
|
@ -89,29 +86,22 @@ export default function CreateTagModal() {
|
||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchCategories = async () => {
|
getCategoryParent();
|
||||||
try {
|
|
||||||
const response = await listArticleCategories(1, 100);
|
|
||||||
|
|
||||||
if (response?.error) {
|
|
||||||
console.error("Failed to fetch categories:", response.message);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const categories =
|
|
||||||
response?.data?.data?.map((item: any) => ({
|
|
||||||
value: String(item.id), // wajib string
|
|
||||||
label: item.title, // pakai title dari API
|
|
||||||
})) || [];
|
|
||||||
|
|
||||||
setCategoryList(categories);
|
|
||||||
} catch (error) {
|
|
||||||
console.error("Failed to fetch categories:", error);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
fetchCategories();
|
|
||||||
}, []);
|
}, []);
|
||||||
|
async function getCategoryParent() {
|
||||||
|
const response = await getCategoriesAll();
|
||||||
|
const res = response?.data?.data.content;
|
||||||
|
console.log("res", res);
|
||||||
|
var levelsArr: { id: number; label: string; value: string }[] = [];
|
||||||
|
res.forEach((levels: { id: number; name: string }) => {
|
||||||
|
levelsArr.push({
|
||||||
|
id: levels.id,
|
||||||
|
label: levels.name,
|
||||||
|
value: String(levels.id),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
setCategoryList(levelsArr);
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Dialog open={isOpen} onOpenChange={setIsOpen}>
|
<Dialog open={isOpen} onOpenChange={setIsOpen}>
|
||||||
|
|
@ -122,10 +112,7 @@ export default function CreateTagModal() {
|
||||||
</DialogTrigger>
|
</DialogTrigger>
|
||||||
<DialogContent size="md">
|
<DialogContent size="md">
|
||||||
<DialogHeader>
|
<DialogHeader>
|
||||||
<DialogTitle>
|
<DialogTitle> {t("add-tags", { defaultValue: "Add Tags" })}</DialogTitle>
|
||||||
{" "}
|
|
||||||
{t("add-tags", { defaultValue: "Add Tags" })}
|
|
||||||
</DialogTitle>
|
|
||||||
</DialogHeader>
|
</DialogHeader>
|
||||||
<Form {...form}>
|
<Form {...form}>
|
||||||
<form
|
<form
|
||||||
|
|
@ -146,12 +133,12 @@ export default function CreateTagModal() {
|
||||||
role="combobox"
|
role="combobox"
|
||||||
className={cn(
|
className={cn(
|
||||||
"w-[400px] justify-between",
|
"w-[400px] justify-between",
|
||||||
!field.value && "text-muted-foreground",
|
!field.value && "text-muted-foreground"
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
{field.value
|
{field.value
|
||||||
? categoryList.find(
|
? categoryList.find(
|
||||||
(categ) => categ.value === field.value,
|
(categ) => categ.value === field.value
|
||||||
)?.label
|
)?.label
|
||||||
: "Pilih level"}
|
: "Pilih level"}
|
||||||
<ChevronsUpDown className="ml-2 h-4 w-4 shrink-0 opacity-50" />
|
<ChevronsUpDown className="ml-2 h-4 w-4 shrink-0 opacity-50" />
|
||||||
|
|
@ -178,7 +165,7 @@ export default function CreateTagModal() {
|
||||||
"ml-auto",
|
"ml-auto",
|
||||||
role.value === field.value
|
role.value === field.value
|
||||||
? "opacity-100"
|
? "opacity-100"
|
||||||
: "opacity-0",
|
: "opacity-0"
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
</CommandItem>
|
</CommandItem>
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,6 @@ import useTableColumns from "./columns";
|
||||||
import { errorAutoClose, successAutoClose } from "@/lib/swal";
|
import { errorAutoClose, successAutoClose } from "@/lib/swal";
|
||||||
import { close, loading } from "@/config/swal";
|
import { close, loading } from "@/config/swal";
|
||||||
import DetailTenant from "@/components/form/tenant/tenant-detail-update-form";
|
import DetailTenant from "@/components/form/tenant/tenant-detail-update-form";
|
||||||
import { getInfoProfile } from "@/service/auth";
|
|
||||||
|
|
||||||
function TenantSettingsContentTable() {
|
function TenantSettingsContentTable() {
|
||||||
const [activeTab, setActiveTab] = useLocalStorage(
|
const [activeTab, setActiveTab] = useLocalStorage(
|
||||||
|
|
@ -200,42 +199,25 @@ function TenantSettingsContentTable() {
|
||||||
<div className="container mx-auto p-6 space-y-6 border rounded-lg">
|
<div className="container mx-auto p-6 space-y-6 border rounded-lg">
|
||||||
<div className="flex items-center justify-between ">
|
<div className="flex items-center justify-between ">
|
||||||
<div>
|
<div>
|
||||||
<h1 className="text-3xl font-bold text-gray-900 dark:text-white">
|
<h1 className="text-3xl font-bold text-gray-900 dark:text-white">Tenant Settings</h1>
|
||||||
Tenant Settings
|
|
||||||
</h1>
|
|
||||||
<p className="text-gray-600 mt-2">
|
<p className="text-gray-600 mt-2">
|
||||||
Manage approval workflows and user levels for your tenant
|
Manage approval workflows and user levels for your tenant
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center gap-2">
|
{/* <div className="flex items-center gap-2">
|
||||||
<SettingsIcon className="h-6 w-6 text-gray-500" />
|
<SettingsIcon className="h-6 w-6 text-gray-500" />
|
||||||
{/* <Button variant="outline" size="sm" onClick={checkWorkflowStatus}>
|
<Button variant="outline" size="sm" onClick={checkWorkflowStatus}>
|
||||||
Check Workflow Status
|
Check Workflow Status
|
||||||
</Button> */}
|
|
||||||
<Button
|
|
||||||
variant="outline"
|
|
||||||
size="sm"
|
|
||||||
className="bg-red-50 text-red-600 border-red-200 hover:bg-red-100"
|
|
||||||
onClick={async () => {
|
|
||||||
const res = await getInfoProfile();
|
|
||||||
const workflowInfo = res?.data?.data?.approvalWorkflowInfo;
|
|
||||||
|
|
||||||
if (workflowInfo) {
|
|
||||||
showWorkflowModal(workflowInfo);
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
Test Modal
|
|
||||||
</Button>
|
</Button>
|
||||||
{/* <Button
|
<Button
|
||||||
variant="outline"
|
variant="outline"
|
||||||
size="sm"
|
size="sm"
|
||||||
onClick={() => showWorkflowModal({ hasWorkflowSetup: false })}
|
onClick={() => showWorkflowModal({ hasWorkflowSetup: false })}
|
||||||
className="bg-red-50 text-red-600 border-red-200 hover:bg-red-100"
|
className="bg-red-50 text-red-600 border-red-200 hover:bg-red-100"
|
||||||
>
|
>
|
||||||
Test Modal
|
Test Modal
|
||||||
</Button> */}
|
</Button>
|
||||||
</div>
|
</div> */}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Tabs value={activeTab} onValueChange={setActiveTab} className="w-full">
|
<Tabs value={activeTab} onValueChange={setActiveTab} className="w-full">
|
||||||
|
|
@ -449,9 +431,7 @@ function TenantSettingsContentTable() {
|
||||||
{step.stepOrder}
|
{step.stepOrder}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div className="font-medium text-black">
|
<div className="font-medium text-black">{step.stepName}</div>
|
||||||
{step.stepName}
|
|
||||||
</div>
|
|
||||||
<div className="text-sm text-gray-500">
|
<div className="text-sm text-gray-500">
|
||||||
{step.conditionType &&
|
{step.conditionType &&
|
||||||
`Condition: ${step.conditionType}`}
|
`Condition: ${step.conditionType}`}
|
||||||
|
|
@ -925,7 +905,7 @@ function TenantSettingsContentTable() {
|
||||||
<UserLevelsForm
|
<UserLevelsForm
|
||||||
mode="single"
|
mode="single"
|
||||||
initialData={{
|
initialData={{
|
||||||
id: editingUserLevel.id,
|
// id: editingUserLevel.id,
|
||||||
name: editingUserLevel.name,
|
name: editingUserLevel.name,
|
||||||
aliasName: editingUserLevel.aliasName,
|
aliasName: editingUserLevel.aliasName,
|
||||||
levelNumber: editingUserLevel.levelNumber,
|
levelNumber: editingUserLevel.levelNumber,
|
||||||
|
|
|
||||||
|
|
@ -71,18 +71,10 @@ export const LoginForm: React.FC<LoginFormProps> = ({
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// const onSubmit = async (data: LoginFormData) => {
|
|
||||||
// try {
|
|
||||||
// // onSuccess?.(data);
|
|
||||||
// await handleLogin(data);
|
|
||||||
// } catch (error: any) {
|
|
||||||
// onError?.(error.message || "Login failed");
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
|
|
||||||
const onSubmit = async (data: LoginFormData) => {
|
const onSubmit = async (data: LoginFormData) => {
|
||||||
try {
|
try {
|
||||||
onSuccess?.(data); // hanya kirim data ke AuthPage
|
// onSuccess?.(data);
|
||||||
|
await handleLogin(data);
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
onError?.(error.message || "Login failed");
|
onError?.(error.message || "Login failed");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -47,8 +47,7 @@ import { getMenuActionsByMenuId, MenuAction } from "@/service/menu-actions";
|
||||||
import Swal from "sweetalert2";
|
import Swal from "sweetalert2";
|
||||||
|
|
||||||
interface UserLevelsFormProps {
|
interface UserLevelsFormProps {
|
||||||
// initialData?: UserLevelsCreateRequest;
|
initialData?: UserLevelsCreateRequest;
|
||||||
initialData?: UserLevelsCreateRequest & { id?: number };
|
|
||||||
onSave?: (data: UserLevelsCreateRequest) => void;
|
onSave?: (data: UserLevelsCreateRequest) => void;
|
||||||
onCancel?: () => void;
|
onCancel?: () => void;
|
||||||
isLoading?: boolean;
|
isLoading?: boolean;
|
||||||
|
|
@ -459,14 +458,8 @@ export const UserLevelsForm: React.FC<UserLevelsFormProps> = ({
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const isBulkMode = activeTab === "bulk";
|
const isBulkMode = activeTab === "bulk";
|
||||||
// const isEditing = Boolean((initialData as any)?.id);
|
const isEditing = Boolean((initialData as any)?.id);
|
||||||
// const userLevelId = (initialData as any)?.id;
|
const userLevelId = (initialData as any)?.id;
|
||||||
|
|
||||||
const isEditing = typeof initialData?.id === "number";
|
|
||||||
const userLevelId = initialData?.id;
|
|
||||||
|
|
||||||
console.log("IS EDITING:", isEditing);
|
|
||||||
console.log("USER LEVEL ID:", userLevelId);
|
|
||||||
|
|
||||||
/* ===============================
|
/* ===============================
|
||||||
* BULK MODE
|
* BULK MODE
|
||||||
|
|
@ -527,15 +520,8 @@ export const UserLevelsForm: React.FC<UserLevelsFormProps> = ({
|
||||||
}
|
}
|
||||||
|
|
||||||
let response;
|
let response;
|
||||||
// if (isEditing) {
|
if (isEditing) {
|
||||||
// response = await updateUserLevel(userLevelId, formData);
|
response = await updateUserLevel(userLevelId, formData);
|
||||||
// } else {
|
|
||||||
// response = await createUserLevel(formData);
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (isEditing && userLevelId !== undefined) {
|
|
||||||
const { id, ...payload } = formData as any;
|
|
||||||
response = await updateUserLevel(userLevelId, payload);
|
|
||||||
} else {
|
} else {
|
||||||
response = await createUserLevel(formData);
|
response = await createUserLevel(formData);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -261,8 +261,10 @@ export default function FormImage() {
|
||||||
pointOfView: "None",
|
pointOfView: "None",
|
||||||
clientId: "",
|
clientId: "",
|
||||||
};
|
};
|
||||||
|
console.log("Sending request for title with data:", titleData);
|
||||||
const titleRes = await getGenerateTitle(titleData);
|
const titleRes = await getGenerateTitle(titleData);
|
||||||
setTitle(titleRes?.data?.data || "");
|
setTitle(titleRes?.data?.data || "");
|
||||||
|
console.log("Generated title:", titleRes?.data?.data);
|
||||||
|
|
||||||
const keywordsData = {
|
const keywordsData = {
|
||||||
keyword: selectedMainKeyword,
|
keyword: selectedMainKeyword,
|
||||||
|
|
@ -273,9 +275,12 @@ export default function FormImage() {
|
||||||
pointOfView: "None",
|
pointOfView: "None",
|
||||||
clientId: "",
|
clientId: "",
|
||||||
};
|
};
|
||||||
|
console.log("Sending request for keywords with data:", keywordsData);
|
||||||
const keywordsRes = await getGenerateKeywords(keywordsData);
|
const keywordsRes = await getGenerateKeywords(keywordsData);
|
||||||
setSelectedSEO(keywordsRes?.data?.data || []);
|
setSelectedSEO(keywordsRes?.data?.data || []);
|
||||||
|
console.log("Generated keywords:", keywordsRes?.data?.data);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
console.error("Error during generation process:", error);
|
||||||
} finally {
|
} finally {
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
}
|
}
|
||||||
|
|
@ -305,7 +310,9 @@ export default function FormImage() {
|
||||||
console.log("Sending request for title with data:", titleData);
|
console.log("Sending request for title with data:", titleData);
|
||||||
const titleRes = await getGenerateTitle(titleData);
|
const titleRes = await getGenerateTitle(titleData);
|
||||||
setTitle(titleRes?.data?.data || "");
|
setTitle(titleRes?.data?.data || "");
|
||||||
|
console.log("Generated title:", titleRes?.data?.data);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
console.error("Error generating title:", error);
|
||||||
} finally {
|
} finally {
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
}
|
}
|
||||||
|
|
@ -315,6 +322,7 @@ export default function FormImage() {
|
||||||
title: "WARNING",
|
title: "WARNING",
|
||||||
text: "Please provide a valid title.",
|
text: "Please provide a valid title.",
|
||||||
});
|
});
|
||||||
|
console.error("Please provide a valid main keyword.");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -331,8 +339,10 @@ export default function FormImage() {
|
||||||
pointOfView: "None",
|
pointOfView: "None",
|
||||||
clientId: "",
|
clientId: "",
|
||||||
};
|
};
|
||||||
|
console.log("Sending request for keywords with data:", keywordsData);
|
||||||
const keywordsRes = await getGenerateKeywords(keywordsData);
|
const keywordsRes = await getGenerateKeywords(keywordsData);
|
||||||
setSelectedSEO(keywordsRes?.data?.data || []);
|
setSelectedSEO(keywordsRes?.data?.data || []);
|
||||||
|
console.log("Generated keywords:", keywordsRes?.data?.data);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error generating keywords:", error);
|
console.error("Error generating keywords:", error);
|
||||||
} finally {
|
} finally {
|
||||||
|
|
@ -368,6 +378,7 @@ export default function FormImage() {
|
||||||
};
|
};
|
||||||
|
|
||||||
const res = await generateDataArticle(request);
|
const res = await generateDataArticle(request);
|
||||||
|
console.log("AI RESPONSE FULL:", res);
|
||||||
close();
|
close();
|
||||||
|
|
||||||
if (res?.error) {
|
if (res?.error) {
|
||||||
|
|
|
||||||
|
|
@ -113,12 +113,12 @@ export function WorkflowModalProvider({ children }: WorkflowModalProviderProps)
|
||||||
return (
|
return (
|
||||||
<WorkflowModalContext.Provider value={{ showWorkflowModal, hideWorkflowModal, refreshWorkflowStatus }}>
|
<WorkflowModalContext.Provider value={{ showWorkflowModal, hideWorkflowModal, refreshWorkflowStatus }}>
|
||||||
{children}
|
{children}
|
||||||
<WorkflowSetupModal
|
{/* <WorkflowSetupModal
|
||||||
isOpen={isModalOpen}
|
isOpen={isModalOpen}
|
||||||
onClose={hideWorkflowModal}
|
onClose={hideWorkflowModal}
|
||||||
workflowInfo={workflowInfo}
|
workflowInfo={workflowInfo}
|
||||||
onRefresh={refreshWorkflowStatus}
|
onRefresh={refreshWorkflowStatus}
|
||||||
/>
|
/> */}
|
||||||
</WorkflowModalContext.Provider>
|
</WorkflowModalContext.Provider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
import React, { useState, useEffect } from "react";
|
import React, { useState, useEffect } from "react";
|
||||||
import {
|
import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui/dialog";
|
||||||
Dialog,
|
|
||||||
DialogContent,
|
|
||||||
DialogHeader,
|
|
||||||
DialogTitle,
|
|
||||||
} from "@/components/ui/dialog";
|
|
||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@/components/ui/button";
|
||||||
import { Card, CardContent } from "@/components/ui/card";
|
import { Card, CardContent } from "@/components/ui/card";
|
||||||
import { IconX, SettingsIcon } from "@/components/icons";
|
import { IconX, SettingsIcon } from "@/components/icons";
|
||||||
|
|
@ -25,12 +20,7 @@ interface WorkflowSetupModalProps {
|
||||||
onRefresh?: () => Promise<void>;
|
onRefresh?: () => Promise<void>;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function WorkflowSetupModal({
|
export default function WorkflowSetupModal({ isOpen, onClose, workflowInfo, onRefresh }: WorkflowSetupModalProps) {
|
||||||
isOpen,
|
|
||||||
onClose,
|
|
||||||
workflowInfo,
|
|
||||||
onRefresh,
|
|
||||||
}: WorkflowSetupModalProps) {
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const pathname = usePathname();
|
const pathname = usePathname();
|
||||||
const [isVisible, setIsVisible] = useState(false);
|
const [isVisible, setIsVisible] = useState(false);
|
||||||
|
|
@ -43,11 +33,7 @@ export default function WorkflowSetupModal({
|
||||||
|
|
||||||
const handleClose = () => {
|
const handleClose = () => {
|
||||||
// Allow closing if workflow is setup OR if user is on tenant settings page
|
// Allow closing if workflow is setup OR if user is on tenant settings page
|
||||||
if (
|
if (workflowInfo?.hasWorkflowSetup || pathname?.includes('/admin/settings/tenant') || pathname?.includes('/tenant')) {
|
||||||
workflowInfo?.hasWorkflowSetup ||
|
|
||||||
pathname?.includes("/admin/settings/tenant") ||
|
|
||||||
pathname?.includes("/tenant")
|
|
||||||
) {
|
|
||||||
setIsVisible(false);
|
setIsVisible(false);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
onClose();
|
onClose();
|
||||||
|
|
@ -66,33 +52,19 @@ export default function WorkflowSetupModal({
|
||||||
return (
|
return (
|
||||||
<Dialog
|
<Dialog
|
||||||
open={isVisible}
|
open={isVisible}
|
||||||
onOpenChange={
|
onOpenChange={(workflowInfo?.hasWorkflowSetup || pathname?.includes('/admin/settings/tenant') || pathname?.includes('/tenant')) ? handleClose : undefined}
|
||||||
workflowInfo?.hasWorkflowSetup ||
|
|
||||||
pathname?.includes("/admin/settings/tenant") ||
|
|
||||||
pathname?.includes("/tenant")
|
|
||||||
? handleClose
|
|
||||||
: undefined
|
|
||||||
}
|
|
||||||
>
|
>
|
||||||
<DialogContent
|
<DialogContent
|
||||||
className="max-w-md"
|
className="max-w-md"
|
||||||
onPointerDownOutside={(e) => {
|
onPointerDownOutside={(e) => {
|
||||||
// Prevent closing by clicking outside unless workflow is setup or on tenant settings page
|
// Prevent closing by clicking outside unless workflow is setup or on tenant settings page
|
||||||
if (
|
if (!workflowInfo?.hasWorkflowSetup && !pathname?.includes('/admin/settings/tenant') && !pathname?.includes('/tenant')) {
|
||||||
!workflowInfo?.hasWorkflowSetup &&
|
|
||||||
!pathname?.includes("/admin/settings/tenant") &&
|
|
||||||
!pathname?.includes("/tenant")
|
|
||||||
) {
|
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
onEscapeKeyDown={(e) => {
|
onEscapeKeyDown={(e) => {
|
||||||
// Prevent closing by pressing ESC unless workflow is setup or on tenant settings page
|
// Prevent closing by pressing ESC unless workflow is setup or on tenant settings page
|
||||||
if (
|
if (!workflowInfo?.hasWorkflowSetup && !pathname?.includes('/admin/settings/tenant') && !pathname?.includes('/tenant')) {
|
||||||
!workflowInfo?.hasWorkflowSetup &&
|
|
||||||
!pathname?.includes("/admin/settings/tenant") &&
|
|
||||||
!pathname?.includes("/tenant")
|
|
||||||
) {
|
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
|
@ -113,8 +85,7 @@ export default function WorkflowSetupModal({
|
||||||
</DialogHeader>
|
</DialogHeader>
|
||||||
|
|
||||||
<div className="space-y-4">
|
<div className="space-y-4">
|
||||||
{
|
{!workflowInfo?.hasWorkflowSetup ? (
|
||||||
!workflowInfo?.hasWorkflowSetup ? (
|
|
||||||
// No Workflow Setup
|
// No Workflow Setup
|
||||||
<Card className="border-orange-200 bg-orange-50">
|
<Card className="border-orange-200 bg-orange-50">
|
||||||
<CardContent className="p-4">
|
<CardContent className="p-4">
|
||||||
|
|
@ -127,8 +98,7 @@ export default function WorkflowSetupModal({
|
||||||
Workflow Belum Dikonfigurasi
|
Workflow Belum Dikonfigurasi
|
||||||
</h3>
|
</h3>
|
||||||
<p className="text-sm text-orange-700 mb-4">
|
<p className="text-sm text-orange-700 mb-4">
|
||||||
Anda belum melakukan setup workflow, silahkan setup
|
Anda belum melakukan setup workflow, silahkan setup terlebih dahulu.
|
||||||
terlebih dahulu.
|
|
||||||
</p>
|
</p>
|
||||||
<div className="flex gap-2">
|
<div className="flex gap-2">
|
||||||
<Button
|
<Button
|
||||||
|
|
@ -139,8 +109,7 @@ export default function WorkflowSetupModal({
|
||||||
<SettingsIcon className="h-4 w-4 mr-2" />
|
<SettingsIcon className="h-4 w-4 mr-2" />
|
||||||
Setup Workflow
|
Setup Workflow
|
||||||
</Button>
|
</Button>
|
||||||
{(pathname?.includes("/admin/settings/tenant") ||
|
{(pathname?.includes('/admin/settings/tenant') || pathname?.includes('/tenant')) && (
|
||||||
pathname?.includes("/tenant")) && (
|
|
||||||
<Button
|
<Button
|
||||||
variant="outline"
|
variant="outline"
|
||||||
onClick={handleClose}
|
onClick={handleClose}
|
||||||
|
|
@ -154,97 +123,7 @@ export default function WorkflowSetupModal({
|
||||||
</div>
|
</div>
|
||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
) : (
|
) : ''
|
||||||
<Card className="border-green-200 bg-green-50">
|
|
||||||
<CardContent className="p-5 space-y-4">
|
|
||||||
<div className="flex items-start gap-3">
|
|
||||||
<div className="h-6 w-6 rounded-full bg-green-600 flex items-center justify-center mt-1">
|
|
||||||
<span className="text-white text-sm">✓</span>
|
|
||||||
</div>
|
|
||||||
<div className="flex-1">
|
|
||||||
<h3 className="font-semibold text-green-900 mb-3">
|
|
||||||
Workflow Sudah Dikonfigurasi
|
|
||||||
</h3>
|
|
||||||
|
|
||||||
<div className="space-y-2 text-sm">
|
|
||||||
<div className="flex justify-between">
|
|
||||||
<span className="text-gray-600">
|
|
||||||
Default Workflow
|
|
||||||
</span>
|
|
||||||
<span className="font-medium">
|
|
||||||
{workflowInfo.defaultWorkflowName}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="flex justify-between">
|
|
||||||
<span className="text-gray-600">Workflow ID</span>
|
|
||||||
<span className="font-mono">
|
|
||||||
#{workflowInfo.defaultWorkflowId}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="flex justify-between">
|
|
||||||
<span className="text-gray-600">
|
|
||||||
Requires Approval
|
|
||||||
</span>
|
|
||||||
<span
|
|
||||||
className={
|
|
||||||
workflowInfo.requiresApproval
|
|
||||||
? "text-green-600 font-medium"
|
|
||||||
: "text-gray-500"
|
|
||||||
}
|
|
||||||
>
|
|
||||||
{workflowInfo.requiresApproval ? "Yes" : "No"}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="flex justify-between">
|
|
||||||
<span className="text-gray-600">Auto Publish</span>
|
|
||||||
<span
|
|
||||||
className={
|
|
||||||
workflowInfo.autoPublishArticles
|
|
||||||
? "text-green-600 font-medium"
|
|
||||||
: "text-gray-500"
|
|
||||||
}
|
|
||||||
>
|
|
||||||
{workflowInfo.autoPublishArticles ? "Yes" : "No"}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="flex justify-between">
|
|
||||||
<span className="text-gray-600">Approval Status</span>
|
|
||||||
<span
|
|
||||||
className={
|
|
||||||
workflowInfo.isApprovalActive
|
|
||||||
? "text-green-600 font-medium"
|
|
||||||
: "text-red-600 font-medium"
|
|
||||||
}
|
|
||||||
>
|
|
||||||
{workflowInfo.isApprovalActive
|
|
||||||
? "Active"
|
|
||||||
: "Inactive"}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/* <div className="flex gap-2 mt-4">
|
|
||||||
<Button
|
|
||||||
onClick={handleSetupWorkflow}
|
|
||||||
variant="outline"
|
|
||||||
size="sm"
|
|
||||||
>
|
|
||||||
<SettingsIcon className="h-4 w-4 mr-2" />
|
|
||||||
Manage Workflow
|
|
||||||
</Button>
|
|
||||||
|
|
||||||
<Button variant="outline" onClick={handleClose} size="sm">
|
|
||||||
Close
|
|
||||||
</Button>
|
|
||||||
</div> */}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</CardContent>
|
|
||||||
</Card>
|
|
||||||
// Workflow Setup Complete
|
// Workflow Setup Complete
|
||||||
// <Card className="border-green-200 bg-green-50">
|
// <Card className="border-green-200 bg-green-50">
|
||||||
// <CardContent className="p-4">
|
// <CardContent className="p-4">
|
||||||
|
|
@ -294,8 +173,6 @@ export default function WorkflowSetupModal({
|
||||||
// </div>
|
// </div>
|
||||||
// </CardContent>
|
// </CardContent>
|
||||||
// </Card>
|
// </Card>
|
||||||
)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
</DialogContent>
|
</DialogContent>
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||||
*/
|
*/
|
||||||
declare const Collection_base: {
|
declare const Collection_base: {
|
||||||
new (): import("./emittermixin.js").Emitter;
|
new (): import("@ckeditor/ckeditor5-utils/src/emittermixin.js").Emitter;
|
||||||
prototype: import("./emittermixin.js").Emitter;
|
prototype: import("@ckeditor/ckeditor5-utils/src/emittermixin.js").Emitter;
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* Collections are ordered sets of objects. Items in the collection can be retrieved by their indexes
|
* Collections are ordered sets of objects. Items in the collection can be retrieved by their indexes
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
*/
|
*/
|
||||||
declare function diff<T>(a: ArrayLike<T>, b: ArrayLike<T>, cmp?: (a: T, b: T) => boolean): Array<DiffResult>;
|
declare function diff<T>(a: ArrayLike<T>, b: ArrayLike<T>, cmp?: (a: T, b: T) => boolean): Array<DiffResult>;
|
||||||
declare namespace diff {
|
declare namespace diff {
|
||||||
var fastDiff: typeof import("./fastdiff.js").default;
|
var fastDiff: typeof import("@ckeditor/ckeditor5-utils/src/fastdiff.js").default;
|
||||||
}
|
}
|
||||||
export default diff;
|
export default diff;
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||||
*/
|
*/
|
||||||
import type { DiffResult } from './diff.js';
|
import type { DiffResult } from '@ckeditor/ckeditor5-utils/src/diff.js';
|
||||||
/**
|
/**
|
||||||
* @module utils/difftochanges
|
* @module utils/difftochanges
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
6
vendor/ckeditor5/node_modules/@ckeditor/ckeditor5-utils/src/dom/emittermixin.d.ts
generated
vendored
6
vendor/ckeditor5/node_modules/@ckeditor/ckeditor5-utils/src/dom/emittermixin.d.ts
generated
vendored
|
|
@ -5,9 +5,9 @@
|
||||||
/**
|
/**
|
||||||
* @module utils/dom/emittermixin
|
* @module utils/dom/emittermixin
|
||||||
*/
|
*/
|
||||||
import { type Emitter, type CallbackOptions, type BaseEvent, type GetCallback } from '../emittermixin.js';
|
import { type Emitter, type CallbackOptions, type BaseEvent, type GetCallback } from '@ckeditor/ckeditor5-utils/src/emittermixin.js';
|
||||||
import type EventInfo from '../eventinfo.js';
|
import type EventInfo from '@ckeditor/ckeditor5-utils/src/eventinfo.js';
|
||||||
import type { Constructor, Mixed } from '../mix.js';
|
import type { Constructor, Mixed } from '@ckeditor/ckeditor5-utils/src/mix.js';
|
||||||
/**
|
/**
|
||||||
* Mixin that injects the DOM events API into its host. It provides the API
|
* Mixin that injects the DOM events API into its host. It provides the API
|
||||||
* compatible with {@link module:utils/emittermixin~Emitter}.
|
* compatible with {@link module:utils/emittermixin~Emitter}.
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||||
*/
|
*/
|
||||||
import Rect, { type RectSource } from './rect.js';
|
import Rect, { type RectSource } from '@ckeditor/ckeditor5-utils/src/dom/rect.js';
|
||||||
/**
|
/**
|
||||||
* Calculates the `position: absolute` coordinates of a given element so it can be positioned with respect to the
|
* Calculates the `position: absolute` coordinates of a given element so it can be positioned with respect to the
|
||||||
* target in the visually most efficient way, taking various restrictions like viewport or limiter geometry
|
* target in the visually most efficient way, taking various restrictions like viewport or limiter geometry
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,10 @@
|
||||||
/**
|
/**
|
||||||
* @module utils/emittermixin
|
* @module utils/emittermixin
|
||||||
*/
|
*/
|
||||||
import EventInfo from './eventinfo.js';
|
import EventInfo from '@ckeditor/ckeditor5-utils/src/eventinfo.js';
|
||||||
import { type PriorityString } from './priorities.js';
|
import { type PriorityString } from '@ckeditor/ckeditor5-utils/src/priorities.js';
|
||||||
import type { Constructor, Mixed } from './mix.js';
|
import type { Constructor, Mixed } from '@ckeditor/ckeditor5-utils/src/mix.js';
|
||||||
import './version.js';
|
import '@ckeditor/ckeditor5-utils/src/version.js';
|
||||||
/**
|
/**
|
||||||
* Mixin that injects the {@link ~Emitter events API} into its host.
|
* Mixin that injects the {@link ~Emitter events API} into its host.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@
|
||||||
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||||
*/
|
*/
|
||||||
import type { DiffResult } from './diff.js';
|
import type { DiffResult } from '@ckeditor/ckeditor5-utils/src/diff.js';
|
||||||
import type { Change } from './difftochanges.js';
|
import type { Change } from '@ckeditor/ckeditor5-utils/src/difftochanges.js';
|
||||||
/**
|
/**
|
||||||
* @module utils/fastdiff
|
* @module utils/fastdiff
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||||
*/
|
*/
|
||||||
declare const FocusTracker_base: import("./mix.js").Mixed<{
|
declare const FocusTracker_base: import("@ckeditor/ckeditor5-utils/src/mix.js").Mixed<{
|
||||||
new (): import("./observablemixin.js").Observable;
|
new (): import("@ckeditor/ckeditor5-utils/src/observablemixin.js").Observable;
|
||||||
prototype: import("./observablemixin.js").Observable;
|
prototype: import("@ckeditor/ckeditor5-utils/src/observablemixin.js").Observable;
|
||||||
}, import("./dom/emittermixin.js").DomEmitter>;
|
}, import("@ckeditor/ckeditor5-utils/src/dom/emittermixin.js").DomEmitter>;
|
||||||
/**
|
/**
|
||||||
* Allows observing a group of `Element`s whether at least one of them is focused.
|
* Allows observing a group of `Element`s whether at least one of them is focused.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -5,60 +5,60 @@
|
||||||
/**
|
/**
|
||||||
* @module utils
|
* @module utils
|
||||||
*/
|
*/
|
||||||
export { default as env } from './env.js';
|
export { default as env } from '@ckeditor/ckeditor5-utils/src/env.js';
|
||||||
export { default as diff, type DiffResult } from './diff.js';
|
export { default as diff, type DiffResult } from '@ckeditor/ckeditor5-utils/src/diff.js';
|
||||||
export { default as fastDiff } from './fastdiff.js';
|
export { default as fastDiff } from '@ckeditor/ckeditor5-utils/src/fastdiff.js';
|
||||||
export { default as diffToChanges } from './difftochanges.js';
|
export { default as diffToChanges } from '@ckeditor/ckeditor5-utils/src/difftochanges.js';
|
||||||
export { default as mix } from './mix.js';
|
export { default as mix } from '@ckeditor/ckeditor5-utils/src/mix.js';
|
||||||
export type { Constructor, Mixed } from './mix.js';
|
export type { Constructor, Mixed } from '@ckeditor/ckeditor5-utils/src/mix.js';
|
||||||
export { default as EmitterMixin, type Emitter, type BaseEvent, type CallbackOptions, type EmitterMixinDelegateChain, type GetCallback, type GetCallbackOptions, type GetEventInfo, type GetNameOrEventInfo } from './emittermixin.js';
|
export { default as EmitterMixin, type Emitter, type BaseEvent, type CallbackOptions, type EmitterMixinDelegateChain, type GetCallback, type GetCallbackOptions, type GetEventInfo, type GetNameOrEventInfo } from '@ckeditor/ckeditor5-utils/src/emittermixin.js';
|
||||||
export { default as EventInfo } from './eventinfo.js';
|
export { default as EventInfo } from '@ckeditor/ckeditor5-utils/src/eventinfo.js';
|
||||||
export { default as ObservableMixin, type Observable, type DecoratedMethodEvent, type ObservableChangeEvent, type ObservableSetEvent } from './observablemixin.js';
|
export { default as ObservableMixin, type Observable, type DecoratedMethodEvent, type ObservableChangeEvent, type ObservableSetEvent } from '@ckeditor/ckeditor5-utils/src/observablemixin.js';
|
||||||
export { default as CKEditorError, logError, logWarning } from './ckeditorerror.js';
|
export { default as CKEditorError, logError, logWarning } from '@ckeditor/ckeditor5-utils/src/ckeditorerror.js';
|
||||||
export { default as ElementReplacer } from './elementreplacer.js';
|
export { default as ElementReplacer } from '@ckeditor/ckeditor5-utils/src/elementreplacer.js';
|
||||||
export { default as abortableDebounce, type AbortableFunc } from './abortabledebounce.js';
|
export { default as abortableDebounce, type AbortableFunc } from '@ckeditor/ckeditor5-utils/src/abortabledebounce.js';
|
||||||
export { default as count } from './count.js';
|
export { default as count } from '@ckeditor/ckeditor5-utils/src/count.js';
|
||||||
export { default as compareArrays } from './comparearrays.js';
|
export { default as compareArrays } from '@ckeditor/ckeditor5-utils/src/comparearrays.js';
|
||||||
export { default as createElement } from './dom/createelement.js';
|
export { default as createElement } from '@ckeditor/ckeditor5-utils/src/dom/createelement.js';
|
||||||
export { default as Config } from './config.js';
|
export { default as Config } from '@ckeditor/ckeditor5-utils/src/config.js';
|
||||||
export { default as isIterable } from './isiterable.js';
|
export { default as isIterable } from '@ckeditor/ckeditor5-utils/src/isiterable.js';
|
||||||
export { default as DomEmitterMixin, type DomEmitter } from './dom/emittermixin.js';
|
export { default as DomEmitterMixin, type DomEmitter } from '@ckeditor/ckeditor5-utils/src/dom/emittermixin.js';
|
||||||
export { default as findClosestScrollableAncestor } from './dom/findclosestscrollableancestor.js';
|
export { default as findClosestScrollableAncestor } from '@ckeditor/ckeditor5-utils/src/dom/findclosestscrollableancestor.js';
|
||||||
export { default as global } from './dom/global.js';
|
export { default as global } from '@ckeditor/ckeditor5-utils/src/dom/global.js';
|
||||||
export { default as getAncestors } from './dom/getancestors.js';
|
export { default as getAncestors } from '@ckeditor/ckeditor5-utils/src/dom/getancestors.js';
|
||||||
export { default as getDataFromElement } from './dom/getdatafromelement.js';
|
export { default as getDataFromElement } from '@ckeditor/ckeditor5-utils/src/dom/getdatafromelement.js';
|
||||||
export { default as getBorderWidths } from './dom/getborderwidths.js';
|
export { default as getBorderWidths } from '@ckeditor/ckeditor5-utils/src/dom/getborderwidths.js';
|
||||||
export { default as isText } from './dom/istext.js';
|
export { default as isText } from '@ckeditor/ckeditor5-utils/src/dom/istext.js';
|
||||||
export { default as Rect, type RectSource } from './dom/rect.js';
|
export { default as Rect, type RectSource } from '@ckeditor/ckeditor5-utils/src/dom/rect.js';
|
||||||
export { default as ResizeObserver } from './dom/resizeobserver.js';
|
export { default as ResizeObserver } from '@ckeditor/ckeditor5-utils/src/dom/resizeobserver.js';
|
||||||
export { default as setDataInElement } from './dom/setdatainelement.js';
|
export { default as setDataInElement } from '@ckeditor/ckeditor5-utils/src/dom/setdatainelement.js';
|
||||||
export { default as toUnit } from './dom/tounit.js';
|
export { default as toUnit } from '@ckeditor/ckeditor5-utils/src/dom/tounit.js';
|
||||||
export { default as indexOf } from './dom/indexof.js';
|
export { default as indexOf } from '@ckeditor/ckeditor5-utils/src/dom/indexof.js';
|
||||||
export { default as insertAt } from './dom/insertat.js';
|
export { default as insertAt } from '@ckeditor/ckeditor5-utils/src/dom/insertat.js';
|
||||||
export { default as isComment } from './dom/iscomment.js';
|
export { default as isComment } from '@ckeditor/ckeditor5-utils/src/dom/iscomment.js';
|
||||||
export { default as isNode } from './dom/isnode.js';
|
export { default as isNode } from '@ckeditor/ckeditor5-utils/src/dom/isnode.js';
|
||||||
export { default as isRange } from './dom/isrange.js';
|
export { default as isRange } from '@ckeditor/ckeditor5-utils/src/dom/isrange.js';
|
||||||
export { default as isValidAttributeName } from './dom/isvalidattributename.js';
|
export { default as isValidAttributeName } from '@ckeditor/ckeditor5-utils/src/dom/isvalidattributename.js';
|
||||||
export { default as isVisible } from './dom/isvisible.js';
|
export { default as isVisible } from '@ckeditor/ckeditor5-utils/src/dom/isvisible.js';
|
||||||
export { getOptimalPosition, type Options as PositionOptions, type PositioningFunction, type DomPoint } from './dom/position.js';
|
export { getOptimalPosition, type Options as PositionOptions, type PositioningFunction, type DomPoint } from '@ckeditor/ckeditor5-utils/src/dom/position.js';
|
||||||
export { default as remove } from './dom/remove.js';
|
export { default as remove } from '@ckeditor/ckeditor5-utils/src/dom/remove.js';
|
||||||
export * from './dom/scroll.js';
|
export * from '@ckeditor/ckeditor5-utils/src/dom/scroll.js';
|
||||||
export * from './keyboard.js';
|
export * from '@ckeditor/ckeditor5-utils/src/keyboard.js';
|
||||||
export * from './language.js';
|
export * from '@ckeditor/ckeditor5-utils/src/language.js';
|
||||||
export { default as Locale, type LocaleTranslate, type Translations } from './locale.js';
|
export { default as Locale, type LocaleTranslate, type Translations } from '@ckeditor/ckeditor5-utils/src/locale.js';
|
||||||
export { default as Collection, type CollectionAddEvent, type CollectionChangeEvent, type CollectionRemoveEvent } from './collection.js';
|
export { default as Collection, type CollectionAddEvent, type CollectionChangeEvent, type CollectionRemoveEvent } from '@ckeditor/ckeditor5-utils/src/collection.js';
|
||||||
export { default as first } from './first.js';
|
export { default as first } from '@ckeditor/ckeditor5-utils/src/first.js';
|
||||||
export { default as FocusTracker } from './focustracker.js';
|
export { default as FocusTracker } from '@ckeditor/ckeditor5-utils/src/focustracker.js';
|
||||||
export { default as KeystrokeHandler } from './keystrokehandler.js';
|
export { default as KeystrokeHandler } from '@ckeditor/ckeditor5-utils/src/keystrokehandler.js';
|
||||||
export { default as toArray, type ArrayOrItem, type ReadonlyArrayOrItem } from './toarray.js';
|
export { default as toArray, type ArrayOrItem, type ReadonlyArrayOrItem } from '@ckeditor/ckeditor5-utils/src/toarray.js';
|
||||||
export { default as toMap } from './tomap.js';
|
export { default as toMap } from '@ckeditor/ckeditor5-utils/src/tomap.js';
|
||||||
export { default as priorities, type PriorityString } from './priorities.js';
|
export { default as priorities, type PriorityString } from '@ckeditor/ckeditor5-utils/src/priorities.js';
|
||||||
export { default as retry, exponentialDelay } from './retry.js';
|
export { default as retry, exponentialDelay } from '@ckeditor/ckeditor5-utils/src/retry.js';
|
||||||
export { default as insertToPriorityArray } from './inserttopriorityarray.js';
|
export { default as insertToPriorityArray } from '@ckeditor/ckeditor5-utils/src/inserttopriorityarray.js';
|
||||||
export { default as spliceArray } from './splicearray.js';
|
export { default as spliceArray } from '@ckeditor/ckeditor5-utils/src/splicearray.js';
|
||||||
export { default as uid } from './uid.js';
|
export { default as uid } from '@ckeditor/ckeditor5-utils/src/uid.js';
|
||||||
export { default as delay, type DelayedFunc } from './delay.js';
|
export { default as delay, type DelayedFunc } from '@ckeditor/ckeditor5-utils/src/delay.js';
|
||||||
export { default as verifyLicense } from './verifylicense.js';
|
export { default as verifyLicense } from '@ckeditor/ckeditor5-utils/src/verifylicense.js';
|
||||||
export { default as wait } from './wait.js';
|
export { default as wait } from '@ckeditor/ckeditor5-utils/src/wait.js';
|
||||||
export * from './unicode.js';
|
export * from '@ckeditor/ckeditor5-utils/src/unicode.js';
|
||||||
export { default as version, releaseDate } from './version.js';
|
export { default as version, releaseDate } from '@ckeditor/ckeditor5-utils/src/version.js';
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||||
*/
|
*/
|
||||||
import { type PriorityString } from './priorities.js';
|
import { type PriorityString } from '@ckeditor/ckeditor5-utils/src/priorities.js';
|
||||||
/**
|
/**
|
||||||
* @module utils/inserttopriorityarray
|
* @module utils/inserttopriorityarray
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
*
|
*
|
||||||
* @module utils/keyboard
|
* @module utils/keyboard
|
||||||
*/
|
*/
|
||||||
import type { LanguageDirection } from './language.js';
|
import type { LanguageDirection } from '@ckeditor/ckeditor5-utils/src/language.js';
|
||||||
/**
|
/**
|
||||||
* An object with `keyName => keyCode` pairs for a set of known keys.
|
* An object with `keyName => keyCode` pairs for a set of known keys.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
6
vendor/ckeditor5/node_modules/@ckeditor/ckeditor5-utils/src/keystrokehandler.d.ts
generated
vendored
6
vendor/ckeditor5/node_modules/@ckeditor/ckeditor5-utils/src/keystrokehandler.d.ts
generated
vendored
|
|
@ -2,9 +2,9 @@
|
||||||
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||||
*/
|
*/
|
||||||
import type { Emitter } from './emittermixin.js';
|
import type { Emitter } from '@ckeditor/ckeditor5-utils/src/emittermixin.js';
|
||||||
import { type KeystrokeInfo } from './keyboard.js';
|
import { type KeystrokeInfo } from '@ckeditor/ckeditor5-utils/src/keyboard.js';
|
||||||
import type { PriorityString } from './priorities.js';
|
import type { PriorityString } from '@ckeditor/ckeditor5-utils/src/priorities.js';
|
||||||
/**
|
/**
|
||||||
* Keystroke handler allows registering callbacks for given keystrokes.
|
* Keystroke handler allows registering callbacks for given keystrokes.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@
|
||||||
/**
|
/**
|
||||||
* @module utils/locale
|
* @module utils/locale
|
||||||
*/
|
*/
|
||||||
import { type ArrayOrItem } from './toarray.js';
|
import { type ArrayOrItem } from '@ckeditor/ckeditor5-utils/src/toarray.js';
|
||||||
import { type Message } from './translation-service.js';
|
import { type Message } from '@ckeditor/ckeditor5-utils/src/translation-service.js';
|
||||||
import { type LanguageDirection } from './language.js';
|
import { type LanguageDirection } from '@ckeditor/ckeditor5-utils/src/language.js';
|
||||||
/**
|
/**
|
||||||
* Represents the localization services.
|
* Represents the localization services.
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
4
vendor/ckeditor5/node_modules/@ckeditor/ckeditor5-utils/src/observablemixin.d.ts
generated
vendored
4
vendor/ckeditor5/node_modules/@ckeditor/ckeditor5-utils/src/observablemixin.d.ts
generated
vendored
|
|
@ -5,8 +5,8 @@
|
||||||
/**
|
/**
|
||||||
* @module utils/observablemixin
|
* @module utils/observablemixin
|
||||||
*/
|
*/
|
||||||
import { type Emitter } from './emittermixin.js';
|
import { type Emitter } from '@ckeditor/ckeditor5-utils/src/emittermixin.js';
|
||||||
import type { Constructor, Mixed } from './mix.js';
|
import type { Constructor, Mixed } from '@ckeditor/ckeditor5-utils/src/mix.js';
|
||||||
/**
|
/**
|
||||||
* A mixin that injects the "observable properties" and data binding functionality described in the
|
* A mixin that injects the "observable properties" and data binding functionality described in the
|
||||||
* {@link ~Observable} interface.
|
* {@link ~Observable} interface.
|
||||||
|
|
|
||||||
6
vendor/ckeditor5/node_modules/@ckeditor/ckeditor5-utils/src/translation-service.d.ts
generated
vendored
6
vendor/ckeditor5/node_modules/@ckeditor/ckeditor5-utils/src/translation-service.d.ts
generated
vendored
|
|
@ -7,9 +7,9 @@
|
||||||
*/
|
*/
|
||||||
import type { Translations } from './locale.js';
|
import type { Translations } from './locale.js';
|
||||||
import { type ArrayOrItem } from './toarray.js';
|
import { type ArrayOrItem } from './toarray.js';
|
||||||
declare global {
|
// declare global {
|
||||||
var CKEDITOR_TRANSLATIONS: Translations;
|
// var CKEDITOR_TRANSLATIONS: Translations;
|
||||||
}
|
// }
|
||||||
/**
|
/**
|
||||||
* Adds translations to existing ones or overrides the existing translations. These translations will later
|
* Adds translations to existing ones or overrides the existing translations. These translations will later
|
||||||
* be available for the {@link module:utils/locale~Locale#t `t()`} function.
|
* be available for the {@link module:utils/locale~Locale#t `t()`} function.
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,10 @@
|
||||||
/**
|
/**
|
||||||
* @module widget/widgetresize
|
* @module widget/widgetresize
|
||||||
*/
|
*/
|
||||||
import Resizer from './widgetresize/resizer.js';
|
import Resizer from '@ckeditor/ckeditor5-widget/src/widgetresize/resizer.js';
|
||||||
import { Plugin, type Editor } from '@ckeditor/ckeditor5-core';
|
import { Plugin, type Editor } from '@ckeditor/ckeditor5-core';
|
||||||
import { type Element, type ViewContainerElement } from '@ckeditor/ckeditor5-engine';
|
import { type Element, type ViewContainerElement } from '@ckeditor/ckeditor5-engine';
|
||||||
import '../theme/widgetresize.css';
|
import '@ckeditor/ckeditor5-widget/theme/widgetresize.css';
|
||||||
/**
|
/**
|
||||||
* The widget resize feature plugin.
|
* The widget resize feature plugin.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||||
*/
|
*/
|
||||||
import { Rect, type DecoratedMethodEvent } from '@ckeditor/ckeditor5-utils';
|
import { Rect, type DecoratedMethodEvent } from '@ckeditor/ckeditor5-utils';
|
||||||
import ResizeState from './resizerstate.js';
|
import ResizeState from '@ckeditor/ckeditor5-widget/src/widgetresize/resizerstate.js';
|
||||||
import type { ResizerOptions } from '../widgetresize.js';
|
import type { ResizerOptions } from '@ckeditor/ckeditor5-widget/src/widgetresize.js';
|
||||||
declare const Resizer_base: {
|
declare const Resizer_base: {
|
||||||
new (): import("@ckeditor/ckeditor5-utils").Observable;
|
new (): import("@ckeditor/ckeditor5-utils").Observable;
|
||||||
prototype: import("@ckeditor/ckeditor5-utils").Observable;
|
prototype: import("@ckeditor/ckeditor5-utils").Observable;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||||
*/
|
*/
|
||||||
import type { ResizerOptions } from '../widgetresize.js';
|
import type { ResizerOptions } from '@ckeditor/ckeditor5-widget/src/widgetresize.js';
|
||||||
declare const ResizeState_base: {
|
declare const ResizeState_base: {
|
||||||
new (): import("@ckeditor/ckeditor5-utils").Observable;
|
new (): import("@ckeditor/ckeditor5-utils").Observable;
|
||||||
prototype: import("@ckeditor/ckeditor5-utils").Observable;
|
prototype: import("@ckeditor/ckeditor5-utils").Observable;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue