최신커밋

This commit is contained in:
jeong-wonjin
2024-02-21 10:16:30 +09:00
parent 08313bcc1e
commit e9198bb7db
181 changed files with 77776 additions and 123 deletions

View File

@@ -2,20 +2,23 @@ import React, {useState} from 'react';
import './App.css';
import {PDFViewer} from "./PDFViewer/PDFViewer";
import DrawingCanvas from "./DrawingCanvas";
import CronMaker from "./CronMaker/CronMaker";
import MyComponent from "./test/Test";
function App() {
/*
return (
<DrawingCanvas/>
<MyComponent/>
);
*/
/*
return (
<PDFViewer fileUrl="./test3.pdf" scale={1.5} renderText={true} waterMarkText="yaguboo-이정민 2023-10-04 15:10:00"/>
//waterMarkText="yaguboo-이정민 2023-10-04 15:10:00"
<PDFViewer fileUrl="./test.pdf" scale={1.5} renderText={true} />
);
*/
}

694
src/CronMaker/CronMaker.tsx Normal file
View File

@@ -0,0 +1,694 @@
import useCreateCronExpression, {CronDayTimeProps, CronDefinDayProps} from "./Hook/useCreateCronExpression";
import React, {useState} from "react";
import {Button, Checkbox, Select} from "antd";
import {CheckboxChangeEvent} from "antd/es/checkbox";
import type { RadioChangeEvent } from 'antd';
import { Radio } from 'antd';
function CronMaker()
{
const [everyMin, setEveryMin] = useState<number>(10);
const [everyHour, setEveryHour] = useState<number>(1);
const [everyDayHour, setEveryDayHour] = useState<number>(0);
const [everyDayMin, setEveryDayMin] = useState<number>(0);
const [weekDayHour, setWeekDayHour] = useState<number>(0);
const [weekDayMin, setWeekDayMin] = useState<number>(0);
const [weekEndHour, setWeekEndHour] = useState<number>(0);
const [weekEndMin, setWeekEndMin] = useState<number>(0);
const [monDay, setMonDay] = useState<boolean>(false);
const [tuesDay, setTuesDay] = useState<boolean>(false);
const [wednesDay, setWednesDay] = useState<boolean>(false);
const [thursday, setThursday] = useState<boolean>(false);
const [friday, setFriday] = useState<boolean>(false);
const [saturday, setSaturday] = useState<boolean>(false);
const [sunday, setSunday] = useState<boolean>(false);
const [defineDayHour, setDefineDayHour] = useState<number>(0);
const [defineDayMin, setDefineDayMin] = useState<number>(0);
const [menuStr, setMenuStr] = useState<string>("EveryMin");
const {cronExpression, cronExpressionText
, createCronEveryMinExpression
, createCronEveryHourExpression
, createCronEveryDayExpression
, createCronEveryWeekDayExpression
, createCronEveryWeekEndExpression
, createCronDefineDayExpression
, initExpression
} = useCreateCronExpression();
const everyDayHourChange = (value: number) => {
setEveryDayHour(value);
};
const everyDayMinChange = (value: number) => {
setEveryDayMin(value);
};
const everyDayTimeChange = () =>
{
const defineTime:CronDayTimeProps = {
hour:everyDayHour,
minute:everyDayMin,
}
createCronEveryDayExpression(defineTime);
}
const weekDayHourChange = (value: number) => {
setWeekDayHour(value);
};
const weekDayMinChange = (value: number) => {
setWeekDayMin(value);
};
const weekDayTimeChange = () =>
{
const defineTime:CronDayTimeProps = {
hour:weekDayHour,
minute:weekDayMin,
}
createCronEveryWeekDayExpression(defineTime);
}
const defineDayHourChange = (value: number) => {
setDefineDayHour(value);
};
const defineDayMinChange = (value: number) => {
setDefineDayMin(value);
};
const defineDayChange = () =>
{
const defineTime:CronDayTimeProps = {
hour:defineDayHour,
minute:defineDayMin,
}
const defineDayParam:CronDefinDayProps ={
monDay : monDay,
tuesDay : tuesDay,
wednesDay : wednesDay,
thursday : thursday,
friday : friday,
saturday : saturday,
sunday : sunday,
cronDayTime : defineTime,
}
createCronDefineDayExpression(defineDayParam);
}
const everyMinChange = (value: number) => {
setEveryMin(value);
};
const everyMinApply = () =>
{
createCronEveryMinExpression(everyMin);
}
const everyHourChange = (value: number) => {
setEveryHour(value);
};
const everyHourApply = () =>
{
createCronEveryHourExpression(everyHour);
}
const onChangeMonday = (e: CheckboxChangeEvent) => {
setMonDay(e.target.checked);
};
const onChangeTuesday = (e: CheckboxChangeEvent) => {
setTuesDay(e.target.checked);
};
const onChangeWednesday = (e: CheckboxChangeEvent) => {
setWednesDay(e.target.checked);
};
const onChangeThursday = (e: CheckboxChangeEvent) => {
setThursday(e.target.checked);
};
const onChangeFriday = (e: CheckboxChangeEvent) => {
setFriday(e.target.checked);
};
const onChangeSaturday = (e: CheckboxChangeEvent) => {
setSaturday(e.target.checked);
};
const onChangeSunDay = (e: CheckboxChangeEvent) => {
setSunday(e.target.checked);
};
const weekEndHourChange = (value: number) => {
setWeekEndHour(value);
};
const weekEndMinChange = (value: number) => {
setWeekEndMin(value);
};
const weekEndTimeChange = () =>
{
const defineTime:CronDayTimeProps = {
hour:weekEndHour,
minute:weekEndMin,
}
createCronEveryWeekEndExpression(defineTime);
}
const onChangeMenu = (e: RadioChangeEvent) => {
initExpression();
setMenuStr(e.target.value);
};
return (
<div style={{margin:"10px", width:"370px"}}>
<div style={{marginBottom:"10px"}}>
<Radio.Group onChange={onChangeMenu} defaultValue={menuStr}>
<Radio.Button value="EveryMin"></Radio.Button>
<Radio.Button value="EveryHour"></Radio.Button>
<Radio.Button value="EveryDay"></Radio.Button>
<Radio.Button value="WeekDay"></Radio.Button>
<Radio.Button value="WeekEnd"></Radio.Button>
<Radio.Button value="DefineDay"></Radio.Button>
</Radio.Group>
</div>
{ menuStr === "EveryMin" &&
<div>
<Select
defaultValue={everyMin}
style={{ width: 60 }}
onChange={everyMinChange}
options={[
{ value: 1, label: '1' },
{ value: 2, label: '2' },
{ value: 3, label: '3' },
{ value: 4, label: '4' },
{ value: 5, label: '5' },
{ value: 6, label: '6' },
{ value: 7, label: '7' },
{ value: 8, label: '8' },
{ value: 9, label: '9' },
{ value: 10, label: '10' },
{ value: 15, label: '15' },
{ value: 30, label: '30' },
]}
/>
<div style={{textAlign:"right"}}>
<Button type={"primary"} onClick={everyMinApply}></Button>
</div>
</div>
}
{
menuStr === "EveryHour" &&
<div>
<Select
defaultValue={everyHour}
style={{ width: 60 }}
onChange={everyHourChange}
options={[
{ value: 1, label: '1' },
{ value: 2, label: '2' },
{ value: 3, label: '3' },
{ value: 4, label: '4' },
{ value: 5, label: '5' },
{ value: 6, label: '6' },
{ value: 7, label: '7' },
{ value: 8, label: '8' },
{ value: 9, label: '9' },
{ value: 10, label: '10' },
{ value: 11, label: '11' },
{ value: 12, label: '12' },
]}
/>
<div style={{textAlign:"right"}}>
<Button type={"primary"} onClick={everyHourApply}></Button>
</div>
</div>
}
{
menuStr === "EveryDay" &&
<div>
<Select
defaultValue={everyDayHour}
style={{ width: 60 }}
onChange={everyDayHourChange}
options={[
{ value: 0, label: '00' },
{ value: 1, label: '01' },
{ value: 2, label: '02' },
{ value: 3, label: '03' },
{ value: 4, label: '04' },
{ value: 5, label: '05' },
{ value: 6, label: '06' },
{ value: 7, label: '07' },
{ value: 8, label: '08' },
{ value: 9, label: '09' },
{ value: 10, label: '10' },
{ value: 11, label: '11' },
{ value: 12, label: '12' },
{ value: 13, label: '13' },
{ value: 14, label: '14' },
{ value: 15, label: '15' },
{ value: 16, label: '16' },
{ value: 17, label: '17' },
{ value: 18, label: '18' },
{ value: 19, label: '19' },
{ value: 20, label: '20' },
{ value: 21, label: '21' },
{ value: 22, label: '22' },
{ value: 23, label: '23' },
]}
/>
<Select
defaultValue={everyDayMin}
style={{ width: 60 }}
onChange={everyDayMinChange}
options={[
{ value: 0, label: '00' },
{ value: 1, label: '01' },
{ value: 2, label: '02' },
{ value: 3, label: '03' },
{ value: 4, label: '04' },
{ value: 5, label: '05' },
{ value: 6, label: '06' },
{ value: 7, label: '07' },
{ value: 8, label: '08' },
{ value: 9, label: '09' },
{ value: 10, label: '10' },
{ value: 11, label: '11' },
{ value: 12, label: '12' },
{ value: 13, label: '13' },
{ value: 14, label: '14' },
{ value: 15, label: '15' },
{ value: 16, label: '16' },
{ value: 17, label: '17' },
{ value: 18, label: '18' },
{ value: 19, label: '19' },
{ value: 20, label: '20' },
{ value: 21, label: '21' },
{ value: 22, label: '22' },
{ value: 23, label: '23' },
{ value: 24, label: '24' },
{ value: 25, label: '25' },
{ value: 26, label: '26' },
{ value: 27, label: '27' },
{ value: 28, label: '28' },
{ value: 29, label: '29' },
{ value: 30, label: '30' },
{ value: 31, label: '31' },
{ value: 32, label: '32' },
{ value: 33, label: '33' },
{ value: 34, label: '34' },
{ value: 35, label: '35' },
{ value: 36, label: '36' },
{ value: 37, label: '37' },
{ value: 38, label: '38' },
{ value: 39, label: '39' },
{ value: 40, label: '40' },
{ value: 41, label: '41' },
{ value: 42, label: '42' },
{ value: 43, label: '43' },
{ value: 44, label: '44' },
{ value: 45, label: '45' },
{ value: 46, label: '46' },
{ value: 47, label: '47' },
{ value: 48, label: '48' },
{ value: 49, label: '49' },
{ value: 50, label: '50' },
{ value: 51, label: '51' },
{ value: 52, label: '52' },
{ value: 53, label: '53' },
{ value: 54, label: '54' },
{ value: 55, label: '55' },
{ value: 56, label: '56' },
{ value: 57, label: '57' },
{ value: 58, label: '58' },
{ value: 59, label: '59' },
]}
/>
<div style={{textAlign:"right"}}>
<Button type={"primary"} onClick={everyDayTimeChange}></Button>
</div>
</div>
}
{
menuStr === "WeekDay" &&
<div>
<Select
defaultValue={weekDayHour}
style={{ width: 60 }}
onChange={weekDayHourChange}
options={[
{ value: 0, label: '00' },
{ value: 1, label: '01' },
{ value: 2, label: '02' },
{ value: 3, label: '03' },
{ value: 4, label: '04' },
{ value: 5, label: '05' },
{ value: 6, label: '06' },
{ value: 7, label: '07' },
{ value: 8, label: '08' },
{ value: 9, label: '09' },
{ value: 10, label: '10' },
{ value: 11, label: '11' },
{ value: 12, label: '12' },
{ value: 13, label: '13' },
{ value: 14, label: '14' },
{ value: 15, label: '15' },
{ value: 16, label: '16' },
{ value: 17, label: '17' },
{ value: 18, label: '18' },
{ value: 19, label: '19' },
{ value: 20, label: '20' },
{ value: 21, label: '21' },
{ value: 22, label: '22' },
{ value: 23, label: '23' },
]}
/>
<Select
defaultValue={weekDayMin}
style={{ width: 60 }}
onChange={weekDayMinChange}
options={[
{ value: 0, label: '00' },
{ value: 1, label: '01' },
{ value: 2, label: '02' },
{ value: 3, label: '03' },
{ value: 4, label: '04' },
{ value: 5, label: '05' },
{ value: 6, label: '06' },
{ value: 7, label: '07' },
{ value: 8, label: '08' },
{ value: 9, label: '09' },
{ value: 10, label: '10' },
{ value: 11, label: '11' },
{ value: 12, label: '12' },
{ value: 13, label: '13' },
{ value: 14, label: '14' },
{ value: 15, label: '15' },
{ value: 16, label: '16' },
{ value: 17, label: '17' },
{ value: 18, label: '18' },
{ value: 19, label: '19' },
{ value: 20, label: '20' },
{ value: 21, label: '21' },
{ value: 22, label: '22' },
{ value: 23, label: '23' },
{ value: 24, label: '24' },
{ value: 25, label: '25' },
{ value: 26, label: '26' },
{ value: 27, label: '27' },
{ value: 28, label: '28' },
{ value: 29, label: '29' },
{ value: 30, label: '30' },
{ value: 31, label: '31' },
{ value: 32, label: '32' },
{ value: 33, label: '33' },
{ value: 34, label: '34' },
{ value: 35, label: '35' },
{ value: 36, label: '36' },
{ value: 37, label: '37' },
{ value: 38, label: '38' },
{ value: 39, label: '39' },
{ value: 40, label: '40' },
{ value: 41, label: '41' },
{ value: 42, label: '42' },
{ value: 43, label: '43' },
{ value: 44, label: '44' },
{ value: 45, label: '45' },
{ value: 46, label: '46' },
{ value: 47, label: '47' },
{ value: 48, label: '48' },
{ value: 49, label: '49' },
{ value: 50, label: '50' },
{ value: 51, label: '51' },
{ value: 52, label: '52' },
{ value: 53, label: '53' },
{ value: 54, label: '54' },
{ value: 55, label: '55' },
{ value: 56, label: '56' },
{ value: 57, label: '57' },
{ value: 58, label: '58' },
{ value: 59, label: '59' },
]}
/>
<div style={{textAlign:"right"}}>
<Button type={"primary"} onClick={weekDayTimeChange}></Button>
</div>
</div>
}
{
menuStr === "WeekEnd" &&
<div>
<Select
defaultValue={weekEndHour}
style={{ width: 60 }}
onChange={weekEndHourChange}
options={[
{ value: 0, label: '00' },
{ value: 1, label: '01' },
{ value: 2, label: '02' },
{ value: 3, label: '03' },
{ value: 4, label: '04' },
{ value: 5, label: '05' },
{ value: 6, label: '06' },
{ value: 7, label: '07' },
{ value: 8, label: '08' },
{ value: 9, label: '09' },
{ value: 10, label: '10' },
{ value: 11, label: '11' },
{ value: 12, label: '12' },
{ value: 13, label: '13' },
{ value: 14, label: '14' },
{ value: 15, label: '15' },
{ value: 16, label: '16' },
{ value: 17, label: '17' },
{ value: 18, label: '18' },
{ value: 19, label: '19' },
{ value: 20, label: '20' },
{ value: 21, label: '21' },
{ value: 22, label: '22' },
{ value: 23, label: '23' },
]}
/>
<Select
defaultValue={weekEndMin}
style={{ width: 60 }}
onChange={weekEndMinChange}
options={[
{ value: 0, label: '00' },
{ value: 1, label: '01' },
{ value: 2, label: '02' },
{ value: 3, label: '03' },
{ value: 4, label: '04' },
{ value: 5, label: '05' },
{ value: 6, label: '06' },
{ value: 7, label: '07' },
{ value: 8, label: '08' },
{ value: 9, label: '09' },
{ value: 10, label: '10' },
{ value: 11, label: '11' },
{ value: 12, label: '12' },
{ value: 13, label: '13' },
{ value: 14, label: '14' },
{ value: 15, label: '15' },
{ value: 16, label: '16' },
{ value: 17, label: '17' },
{ value: 18, label: '18' },
{ value: 19, label: '19' },
{ value: 20, label: '20' },
{ value: 21, label: '21' },
{ value: 22, label: '22' },
{ value: 23, label: '23' },
{ value: 24, label: '24' },
{ value: 25, label: '25' },
{ value: 26, label: '26' },
{ value: 27, label: '27' },
{ value: 28, label: '28' },
{ value: 29, label: '29' },
{ value: 30, label: '30' },
{ value: 31, label: '31' },
{ value: 32, label: '32' },
{ value: 33, label: '33' },
{ value: 34, label: '34' },
{ value: 35, label: '35' },
{ value: 36, label: '36' },
{ value: 37, label: '37' },
{ value: 38, label: '38' },
{ value: 39, label: '39' },
{ value: 40, label: '40' },
{ value: 41, label: '41' },
{ value: 42, label: '42' },
{ value: 43, label: '43' },
{ value: 44, label: '44' },
{ value: 45, label: '45' },
{ value: 46, label: '46' },
{ value: 47, label: '47' },
{ value: 48, label: '48' },
{ value: 49, label: '49' },
{ value: 50, label: '50' },
{ value: 51, label: '51' },
{ value: 52, label: '52' },
{ value: 53, label: '53' },
{ value: 54, label: '54' },
{ value: 55, label: '55' },
{ value: 56, label: '56' },
{ value: 57, label: '57' },
{ value: 58, label: '58' },
{ value: 59, label: '59' },
]}
/>
<div style={{textAlign:"right"}}>
<Button type={"primary"} onClick={weekEndTimeChange}></Button>
</div>
</div>
}
{
menuStr === "DefineDay" &&
<div>
<Checkbox onChange={onChangeMonday}></Checkbox>
<Checkbox onChange={onChangeTuesday}></Checkbox>
<Checkbox onChange={onChangeWednesday}></Checkbox>
<Checkbox onChange={onChangeThursday}></Checkbox>
<Checkbox onChange={onChangeFriday}></Checkbox>
<Checkbox onChange={onChangeSaturday}></Checkbox>
<Checkbox onChange={onChangeSunDay}></Checkbox>
<Select
defaultValue={defineDayHour}
style={{ width: 60 }}
onChange={defineDayHourChange}
options={[
{ value: 0, label: '00' },
{ value: 1, label: '01' },
{ value: 2, label: '02' },
{ value: 3, label: '03' },
{ value: 4, label: '04' },
{ value: 5, label: '05' },
{ value: 6, label: '06' },
{ value: 7, label: '07' },
{ value: 8, label: '08' },
{ value: 9, label: '09' },
{ value: 10, label: '10' },
{ value: 11, label: '11' },
{ value: 12, label: '12' },
{ value: 13, label: '13' },
{ value: 14, label: '14' },
{ value: 15, label: '15' },
{ value: 16, label: '16' },
{ value: 17, label: '17' },
{ value: 18, label: '18' },
{ value: 19, label: '19' },
{ value: 20, label: '20' },
{ value: 21, label: '21' },
{ value: 22, label: '22' },
{ value: 23, label: '23' },
]}
/>
<Select
defaultValue={defineDayMin}
style={{ width: 60 }}
onChange={defineDayMinChange}
options={[
{ value: 0, label: '00' },
{ value: 1, label: '01' },
{ value: 2, label: '02' },
{ value: 3, label: '03' },
{ value: 4, label: '04' },
{ value: 5, label: '05' },
{ value: 6, label: '06' },
{ value: 7, label: '07' },
{ value: 8, label: '08' },
{ value: 9, label: '09' },
{ value: 10, label: '10' },
{ value: 11, label: '11' },
{ value: 12, label: '12' },
{ value: 13, label: '13' },
{ value: 14, label: '14' },
{ value: 15, label: '15' },
{ value: 16, label: '16' },
{ value: 17, label: '17' },
{ value: 18, label: '18' },
{ value: 19, label: '19' },
{ value: 20, label: '20' },
{ value: 21, label: '21' },
{ value: 22, label: '22' },
{ value: 23, label: '23' },
{ value: 24, label: '24' },
{ value: 25, label: '25' },
{ value: 26, label: '26' },
{ value: 27, label: '27' },
{ value: 28, label: '28' },
{ value: 29, label: '29' },
{ value: 30, label: '30' },
{ value: 31, label: '31' },
{ value: 32, label: '32' },
{ value: 33, label: '33' },
{ value: 34, label: '34' },
{ value: 35, label: '35' },
{ value: 36, label: '36' },
{ value: 37, label: '37' },
{ value: 38, label: '38' },
{ value: 39, label: '39' },
{ value: 40, label: '40' },
{ value: 41, label: '41' },
{ value: 42, label: '42' },
{ value: 43, label: '43' },
{ value: 44, label: '44' },
{ value: 45, label: '45' },
{ value: 46, label: '46' },
{ value: 47, label: '47' },
{ value: 48, label: '48' },
{ value: 49, label: '49' },
{ value: 50, label: '50' },
{ value: 51, label: '51' },
{ value: 52, label: '52' },
{ value: 53, label: '53' },
{ value: 54, label: '54' },
{ value: 55, label: '55' },
{ value: 56, label: '56' },
{ value: 57, label: '57' },
{ value: 58, label: '58' },
{ value: 59, label: '59' },
]}
/>
<div style={{textAlign:"right"}}>
<Button type={"primary"} onClick={defineDayChange}></Button>
</div>
</div>
}
<div>
{cronExpression}
</div>
<div>
{cronExpressionText}
</div>
</div>
)
}
export default CronMaker;

View File

@@ -0,0 +1,127 @@
import {useState} from "react";
export interface CronDayTimeProps
{
hour :number,
minute :number,
}
export interface CronDefinDayProps
{
monDay:boolean,
tuesDay:boolean,
wednesDay:boolean,
thursday:boolean,
friday:boolean,
saturday:boolean,
sunday:boolean,
cronDayTime : CronDayTimeProps
}
const useCreateCronExpression = ( ) => {
const [cronExpression, setCronExpression] = useState<string>("");
const [cronExpressionText, setCronExpressionText] = useState<string>("")
const createCronEveryMinExpression = (min:number) => {
setCronExpression(`0 0/${min} * 1/1 * ?`);
setCronExpressionText(`${min}분 마다 실행`);
};
const createCronEveryHourExpression = (hour:number) => {
setCronExpression(`0 0 0/${hour} 1/1 * ?`);
setCronExpressionText(`${hour}시간 마다 실행`);
};
const createCronEveryDayExpression = (props:CronDayTimeProps) => {
setCronExpression(`0 ${props.minute} ${props.hour} 1/1 * ?`);
setCronExpressionText(`매일 ${props.hour}${props.minute}분마다 실행`);
};
const createCronEveryWeekDayExpression = (props:CronDayTimeProps) => {
setCronExpression(`0 ${props.minute} ${props.hour} ? * MON-FRI`);
setCronExpressionText(`평일 ${props.hour}${props.minute}분마다 실행`);
};
const createCronEveryWeekEndExpression = (props:CronDayTimeProps) => {
setCronExpression(`0 ${props.minute} ${props.hour} ? * SAT-SUN`);
setCronExpressionText(`주말 ${props.hour}${props.minute}분마다 실행`);
};
const initExpression = () => {
setCronExpression("");
setCronExpressionText("");
};
const createCronDefineDayExpression = (props:CronDefinDayProps) => {
const {monDay, tuesDay, wednesDay, thursday, friday, saturday, sunday, cronDayTime} = props;
let cron:string = "";
let cronText:string = "";
if (monDay) {
if (cron.length === 0) cron = "MON";
else cron += ",MON";
if (cronText.length === 0) cronText = "월";
else cronText += ",월";
}
if (tuesDay) {
if (cron.length === 0) cron = "TUE";
else cron += ",TUE";
if (cronText.length === 0) cronText = "화";
else cronText += ",화";
}
if (wednesDay) {
if (cron.length === 0) cron = "WED";
else cron += ",WED";
if (cronText.length === 0) cronText = "수";
else cronText += ",수";
}
if (thursday) {
if (cron.length === 0) cron = "THU";
else cron += ",THU";
if (cronText.length === 0) cronText = "목";
else cronText += ",목";
}
if (friday) {
if (cron.length === 0) cron = "FRI";
else cron += ",FRI";
if (cronText.length === 0) cronText = "금";
else cronText += ",금";
}
if (saturday) {
if (cron.length === 0) cron = "SAT";
else cron += ",SAT";
if (cronText.length === 0) cronText = "토";
else cronText += ",토";
}
if (sunday) {
if (cron.length === 0) cron = "SUN";
else cron += ",SUN";
if (cronText.length === 0) cronText = "일";
else cronText += ",일";
}
setCronExpression(`0 ${cronDayTime.minute} ${cronDayTime.hour} ? * ${cron}`);
setCronExpressionText(`${cronText}요일 ${cronDayTime.hour}${cronDayTime.minute}분마다 실행`);
};
return { cronExpression, cronExpressionText
, createCronEveryMinExpression
, createCronEveryHourExpression
, createCronEveryDayExpression
, createCronEveryWeekDayExpression
, createCronEveryWeekEndExpression
, createCronDefineDayExpression
, initExpression
};
};
export default useCreateCronExpression;

View File

@@ -18,11 +18,21 @@ import {
} from "@ant-design/icons";
import html2canvas from "html2canvas";
import {PDFDocument, PDFPage} from "pdf-lib";
import {PasswordException} from "pdfjs-dist/types/src/shared/util";
import { jsPDF } from "jspdf";
const PdfjsVersion:string = "3.11.174";
GlobalWorkerOptions.workerSrc = `https://unpkg.com/pdfjs-dist@${PdfjsVersion}/build/pdf.worker.min.js`;
const currentUrl = getCurrentUrl();
console.log(currentUrl);
GlobalWorkerOptions.workerSrc = `${currentUrl}/pdf.worker.js`;
function getCurrentUrl(): string {
// window.location 객체를 통해 현재 URL 정보에 접근
const { protocol, hostname, port } = window.location;
// 포트가 80이 아닌 경우에만 포트를 포함한 URL 반환
const portSuffix = (port === '80' || port === '443') ? '' : `:${port}`;
// 조합된 URL 반환
return `${protocol}//${hostname}${portSuffix}/pdfwiz/pdfjs`;
}
interface PdfViewerProps {
fileUrl: string;
@@ -43,7 +53,7 @@ async function loadPage(pdf:PDFDocumentProxy, pageNum:number, scale:number, rota
const loadingImage = document.createElement("img");
loadingImage.setAttribute("src", "pdf-loading.svg");
loadingImage.setAttribute("src", "pdfwiz/image/loading.svg");
const textLayer = isRenderText ? document.createElement("div") : null;
if (textLayer)
{
@@ -152,8 +162,8 @@ export const PDFViewer = (props: PdfViewerProps) => {
, waterMarkText, fileName} = props;
const [modalVisible, setModalVisible] = useState<boolean>(false);
const downloadUrl = downloadFileUrl || fileUrl;
const fileTitle= fileName||fileUrl;
//const downloadUrl = downloadFileUrl || fileUrl;
//const fileTitle= fileName||fileUrl;
const [threshold, setThreshold] = useState<number>(0.7);
const [scaleValue, setScaleValue] = useState<number>(scale || 1.5);
const [currentPage, setCurrentPage] = useState<number>(1);
@@ -322,6 +332,8 @@ export const PDFViewer = (props: PdfViewerProps) => {
onClick: handleRatioMenuClick,
};
function enterFullScreen(elementId: string): void {
const element = document.getElementById(elementId) as HTMLElement & {
requestFullscreen?: () => Promise<void>;
@@ -945,7 +957,7 @@ export const PDFViewer = (props: PdfViewerProps) => {
const loadOption: any = {
url: fileUrl,
cMapUrl: `https://unpkg.com/pdfjs-dist@${PdfjsVersion}/cmaps/`,
cMapUrl: `${currentUrl}/cmaps/`,
cMapPacked: true,
enableXfa: true,
};

31
src/test/Test.tsx Normal file
View File

@@ -0,0 +1,31 @@
import { Input } from 'antd';
import React, { useState } from 'react';
import {EditOutlined} from "@ant-design/icons";
const MyComponent = () => {
const [inputValue, setInputValue] = useState('');
const handleChange = (e:any) => {
// Input 값이 변경될 때 상태 업데이트
setInputValue(e.target.value);
};
const setNewValue = () => {
// 상태를 직접 변경
setInputValue('New Value');
};
return (
<div>
<Input
defaultValue={inputValue}
prefix={<EditOutlined className="site-form-item-icon" />}
placeholder="서비스코드"
value={inputValue}
onChange={handleChange}
/>
<button onClick={setNewValue}>Set New Value</button>
</div>
);
};
export default MyComponent;