-
{getMessage('modal.cover.outline.length')}
+
{getMessage('straight.line')}
{
+ setButtonAct(button.id)
+ setType(button.type)
+ }
+ return (
+
+
+
+
{getMessage('plan.menu.placement.surface.drawing')}
+
+
+
+
+ {types.map((type) => (
+
+ ))}
+
+
+
{getMessage('setting')}
+ {buttonAct === 1 &&
}
+ {buttonAct === 2 &&
}
+ {buttonAct === 3 &&
}
+ {buttonAct === 4 &&
}
+ {buttonAct === 5 &&
}
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx b/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx
index 606f932d..637ebb0a 100644
--- a/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx
+++ b/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx
@@ -1,12 +1,13 @@
import SizeGuide from '@/components/floor-plan/modal/placementShape/SizeGuide'
import MaterialGuide from '@/components/floor-plan/modal/placementShape/MaterialGuide'
import WithDraggable from '@/components/common/draggable/WithDraggable'
-import { useState } from 'react'
+import { Fragment, useState } from 'react'
import { useMessage } from '@/hooks/useMessage'
export default function PlacementShapeSetting({ setShowPlaceShapeModal }) {
const [showSizeGuideModal, setShowSizeGuidModal] = useState(false)
const [showMaterialGuideModal, setShowMaterialGuidModal] = useState(false)
+ const [selectedRoofMaterial, setSelectedRoofMaterial] = useState('A')
const { getMessage } = useMessage()
return (
@@ -74,34 +75,92 @@ export default function PlacementShapeSetting({ setShowPlaceShapeModal }) {
-
-
-
-
- {getMessage('modal.placement.initial.setting.rafter')}
-
-
-
-
-
-
+ {selectedRoofMaterial === 'A' ? (
+ <>
+
+
+
+ {getMessage('modal.placement.initial.setting.rafter')}
+
+
+
+
+
+
+ >
+ ) : selectedRoofMaterial === 'B' ? (
+ <>
+
+ {getMessage('hajebichi')}
+
+
+
+
+
+
+
+ {getMessage('modal.placement.initial.setting.rafter')}
+
+
+
+
+
+
+ >
+ ) : selectedRoofMaterial === 'C' ? (
+ <>
+
+ {getMessage('hajebichi')}
+
+
+
+
+
+
+ >
+ ) : selectedRoofMaterial === 'D' ? (
+ <>
+
+
+ {getMessage('modal.placement.initial.setting.rafter')}
+
+
+
+
+
+
+ >
+ ) : (
+ ''
+ )}
|
diff --git a/src/components/floor-plan/modal/roofShape/RoofShapeSetting.jsx b/src/components/floor-plan/modal/roofShape/RoofShapeSetting.jsx
index ccf38062..f906a67e 100644
--- a/src/components/floor-plan/modal/roofShape/RoofShapeSetting.jsx
+++ b/src/components/floor-plan/modal/roofShape/RoofShapeSetting.jsx
@@ -71,7 +71,7 @@ export default function RoofShapeSetting({ setShowRoofShapeSettingModal }) {
return (
-
+
{getMessage('modal.roof.shape.setting')}
-
-
+
+
@@ -688,12 +687,12 @@ export default function StuffDetail() {
|
diff --git a/src/components/management/StuffSearchCondition.jsx b/src/components/management/StuffSearchCondition.jsx
index 13f61bb3..0b394af3 100644
--- a/src/components/management/StuffSearchCondition.jsx
+++ b/src/components/management/StuffSearchCondition.jsx
@@ -1,23 +1,26 @@
'use client'
-import React, { useEffect } from 'react'
-import { useState } from 'react'
-import { Autocomplete, AutocompleteItem } from '@nextui-org/react'
+import React, { useEffect, useRef, useState } from 'react'
import { useAxios } from '@/hooks/useAxios'
import { useRecoilState, useRecoilValue, useResetRecoilState } from 'recoil'
-import { globalLocaleStore } from '@/store/localeAtom'
-
-import RangeDatePicker from '@/components/common/datepicker/RangeDatePicker'
+import { appMessageStore, globalLocaleStore } from '@/store/localeAtom'
+import Select from 'react-dropdown-select'
+import KO from '@/locales/ko.json'
+import JA from '@/locales/ja.json'
import { stuffSearchState } from '@/store/stuffAtom'
import { isEmptyArray } from '@/util/common-utils'
import dayjs from 'dayjs'
-import isLeapYear from 'dayjs/plugin/isLeapYear' // 윤년 판단 플러그인
-dayjs.extend(isLeapYear)
import Link from 'next/link'
import SingleDatePicker from '../common/datepicker/SingleDatePicker'
+import { sessionStore } from '@/store/commonAtom'
+import { useMessage } from '@/hooks/useMessage'
export default function StuffSearchCondition() {
- const globalLocaleState = useRecoilValue(globalLocaleStore)
+ const sessionState = useRecoilValue(sessionStore)
+ const [appMessageState, setAppMessageState] = useRecoilState(appMessageStore)
+ const globalLocaleState = useRecoilValue(globalLocaleStore)
+ const { getMessage } = useMessage()
+ const ref = useRef()
const { get } = useAxios(globalLocaleState)
//달력 props 관련 날짜 셋팅
@@ -42,7 +45,6 @@ export default function StuffSearchCondition() {
const [address, setAddress] = useState('') //물건주소
const [objectName, setobjectName] = useState('') //물건명
const [saleStoreName, setSaleStoreName] = useState('') //판매대리점명
- const [specDateYn, setSpecDateYn] = useState('') //사양 확인('', 'Y', 'N')
const [receiveUser, setReceiveUser] = useState('') //담당자
const [dispCompanyName, setDispCompanyName] = useState('') //견적처
const [dateType, setDateType] = useState('U') //갱신일(U)/등록일(R)
@@ -53,7 +55,7 @@ export default function StuffSearchCondition() {
const onSubmit = () => {
let diff = dayjs(endDate).diff(startDate, 'day')
if (diff > 366) {
- return alert('최대1년 조회 가능합니다.')
+ return alert(getMessage('stuff.message.periodError'))
}
setStuffSearch({
@@ -62,7 +64,6 @@ export default function StuffSearchCondition() {
schAddress: stuffSearch?.schAddress ? stuffSearch.schAddress : address,
schObjectName: stuffSearch?.schObjectName ? stuffSearch.schObjectName : objectName,
schSaleStoreName: stuffSearch?.schSaleStoreName ? stuffSearch.schSaleStoreName : saleStoreName,
- schSpecDateYn: stuffSearch?.schSpecDateYn ? stuffSearch.schSpecDateYn : specDateYn,
schReceiveUser: stuffSearch?.schReceiveUser ? stuffSearch.schReceiveUser : receiveUser,
schDispCompanyName: stuffSearch?.schDispCompanyName ? stuffSearch.schDispCompanyName : dispCompanyName,
schDateType: stuffSearch?.schDateType ? stuffSearch.schDateType : dateType,
@@ -83,17 +84,18 @@ export default function StuffSearchCondition() {
setAddress('')
setobjectName('')
setSaleStoreName('')
- setSpecDateYn('')
setReceiveUser('')
setDispCompanyName('')
setDateType('U')
setStartDate(dayjs(new Date()).add(-1, 'year').format('YYYY-MM-DD'))
setEndDate(dayjs(new Date()).format('YYYY-MM-DD'))
setSchSelSaleStoreId('')
+ handleClear() //판매대리점선택 자동완성 클리어
resetStuffRecoil()
}
useEffect(() => {
+ // console.log('세션정보::::::::', sessionState)
get({ url: `/api/object/saleStore/201TES01/list` }).then((res) => {
if (!isEmptyArray(res)) {
// console.log('판매점 결과:::::', res)
@@ -102,15 +104,23 @@ export default function StuffSearchCondition() {
})
}, [])
+ //초기화 눌렀을 때 자동완성도..
+ const handleClear = () => {
+ // console.log('ref::', ref.current.state.values)
+ if (ref.current.state.dropDown) {
+ ref.current.methods.dropDown()
+ } else {
+ ref.current.state.values = []
+ }
+ }
//판매대리점 자동완성 변경
const onSelectionChange = (key) => {
- // console.log('자동완성값변경', key)
- if (key == null) {
+ if (!isEmptyArray(key)) {
+ setSchSelSaleStoreId(key[0].saleStoreId)
+ setStuffSearch({ ...stuffSearch, schSelSaleStoreId: key[0].saleStoreId })
+ } else {
setSchSelSaleStoreId('')
setStuffSearch({ ...stuffSearch, schSelSaleStoreId: '' })
- } else {
- setSchSelSaleStoreId(key)
- setStuffSearch({ ...stuffSearch, schSelSaleStoreId: key })
}
}
@@ -119,6 +129,14 @@ export default function StuffSearchCondition() {
setEndDate(stuffSearch?.schToDt ? stuffSearch.schToDt : dayjs(new Date()).format('YYYY-MM-DD'))
}, [stuffSearch])
+ useEffect(() => {
+ if (globalLocaleState === 'ko') {
+ setAppMessageState(KO)
+ } else {
+ setAppMessageState(JA)
+ }
+ }, [globalLocaleState])
+
return (
<>
{/* 퍼블적용시작 */}
@@ -130,7 +148,7 @@ export default function StuffSearchCondition() {
- 물건신규등록버튼
+ 물건신규등록
@@ -236,15 +254,16 @@ export default function StuffSearchCondition() {
*/}
{schSelSaleStoreList?.length > 0 && (
-
- {(option) => {option.saleStoreName}}
-
+
)}
@@ -314,189 +333,6 @@ export default function StuffSearchCondition() {
{/* 퍼블적용끝 */}
- {/*
-
- 물건신규등록
-
-
- 조회
-
-
- 초기화
-
-
-
- {Array(4)
- .fill()
- .map((_, i) => {
- if (i === 0) {
- return (
-
- {
- setObjectNo(e.target.value)
- setStuffSearch({ ...stuffSearch, code: 'S', schObjectNo: e.target.value })
- }}
- />
- {
- setSaleStoreId(e.target.value)
- setStuffSearch({ ...stuffSearch, code: 'S', schSaleStoreId: e.target.value })
- }}
- />
- {
- setAddress(e.target.value)
- setStuffSearch({ ...stuffSearch, code: 'S', schAddress: e.target.value })
- }}
- />
-
- )
- } else if (i === 1) {
- return (
-
-
{
- setobjectName(e.target.value)
- setStuffSearch({ ...stuffSearch, code: 'S', schObjectName: e.target.value })
- }}
- />
-
{
- setSaleStoreName(e.target.value)
- setStuffSearch({ ...stuffSearch, code: 'S', schSaleStoreName: e.target.value })
- }}
- />
-
- {
- setSpecDateYn(e.target.value)
- setStuffSearch({ ...stuffSearch, code: 'S', schSpecDateYn: e.target.value })
- }}
- />
-
-
-
- {
- setSpecDateYn(e.target.value)
- setStuffSearch({ ...stuffSearch, code: 'S', schSpecDateYn: e.target.value })
- }}
- />
-
-
-
- {
- setSpecDateYn(e.target.value)
- setStuffSearch({ ...stuffSearch, code: 'S', schSpecDateYn: e.target.value })
- }}
- />
-
-
-
- )
- } else if (i === 2) {
- return (
-
- )
- } else {
- return (
-
-
- {
- setDateType(e.target.value)
- setStuffSearch({ ...stuffSearch, code: 'S', schDateType: e.target.value })
- }}
- />
-
-
-
- {
- setDateType(e.target.value)
- setStuffSearch({ ...stuffSearch, code: 'S', schDateType: e.target.value })
- }}
- />
-
-
-
-
- )
- }
- })}
-
*/}
>
)
}
diff --git a/src/hooks/useAxios.js b/src/hooks/useAxios.js
index 1a7cd03e..39b71769 100644
--- a/src/hooks/useAxios.js
+++ b/src/hooks/useAxios.js
@@ -5,32 +5,40 @@ const AxiosType = {
EXTERNAL: 'External',
}
+/**
+ * axios 인스턴스 생성 후 반환
+ * @param {String} lang
+ * @returns http request instance - get, post, put, patch, delete (promise 접수사가 붙은 함수는 promise 반환)
+ */
export function useAxios(lang = '') {
const getInstances = (url) => {
+ /**
+ * url이 http로 시작하면 외부 서버로 판단
+ */
let type = AxiosType.INTERNAL
url.startsWith('http') ? (type = AxiosType.EXTERNAL) : ''
+ /**
+ * 내부 서버로 요청 시 lang 헤더 추가
+ */
+ let headerValue = {
+ Accept: 'application/json',
+ }
+ url.startsWith('https') ? '' : (headerValue['lang'] = lang)
+
return axios.create({
baseURL: type === AxiosType.INTERNAL ? process.env.NEXT_PUBLIC_API_SERVER_PATH : '',
- headers: {
- Accept: 'application/json',
- lang,
- },
+ headers: headerValue,
})
}
+ // request 추가 로직
axios.interceptors.request.use((config) => {
- // config['Authorization'] = localStorage.getItem('token')
- //TODO: 인터셉터에서 추가 로직 구현
return config
})
- axios.interceptors.request.use(undefined, (error) => {
- //TODO: 인터셉터에서 에러 처리 로직 구현
- // if (error.isAxiosError && e.response?.status === 401) {
- // localStorage.removeItem('token')
- // }
- })
+ // response 추가 로직
+ axios.interceptors.request.use(undefined, (error) => {})
const get = async ({ url }) => {
return await getInstances(url)
diff --git a/src/hooks/usePlan.js b/src/hooks/usePlan.js
index c719ba24..e861f9f8 100644
--- a/src/hooks/usePlan.js
+++ b/src/hooks/usePlan.js
@@ -6,7 +6,7 @@ import { useSwal } from '@/hooks/useSwal'
export function usePlan() {
const [canvas, setCanvas] = useRecoilState(canvasState)
- const [currentCanvasPlan, setcurrentCanvasPlan] = useRecoilState(currentCanvasPlanState)
+ const [currentCanvasPlan, setCurrentCanvasPlan] = useRecoilState(currentCanvasPlanState)
const [initCanvasPlans, setInitCanvasPlans] = useRecoilState(initCanvasPlansState)
const { swalFire } = useSwal()
const { getMessage } = useMessage()
@@ -70,6 +70,24 @@ export function usePlan() {
// }, 1000)
}
+ /**
+ * 실시간 캔버스 상태와 DB에 저장된 캔버스 상태를 비교하여 수정 여부를 판단
+ */
+ const checkModifiedCanvasPlan = () => {
+ removeMouseLines()
+ const canvasStr = addCanvas()
+ const canvasStatus = dbToCanvasFormat(canvasToDbFormat(canvasStr))
+ if (JSON.parse(canvasStr).objects.length === 0 && currentCanvasPlan.canvasStatus === undefined) {
+ // 빈 캔버스
+ return false
+ } else if (canvasStatus === currentCanvasPlan.canvasStatus) {
+ // 변경사항 없는 캔버스
+ return false
+ } else {
+ return true
+ }
+ }
+
/**
* DB에 저장된 데이터를 canvas에서 사용할 수 있도록 포맷화
*/
@@ -106,14 +124,14 @@ export function usePlan() {
await promisePut({ url: '/api/canvas-management/canvas-statuses', data: planData })
.then((res) => {
swalFire({ text: getMessage('common.message.save') })
- console.log('[PUT] canvas-statuses res :::::::: %o', res)
+ // console.log('[PUT] canvas-statuses res :::::::: %o', res)
setInitCanvasPlans((initCanvasPlans) =>
initCanvasPlans.map((plan) => (plan.id === currentCanvasPlan.id ? { ...plan, canvasStatus: canvasStatus } : plan)),
)
})
.catch((error) => {
swalFire({ text: error.message, icon: 'error' })
- console.error('[PUT] canvas-statuses error :::::::: %o', error)
+ // console.error('[PUT] canvas-statuses error :::::::: %o', error)
})
} else {
// canvas 신규 등록
@@ -127,11 +145,15 @@ export function usePlan() {
await promisePost({ url: '/api/canvas-management/canvas-statuses', data: planData })
.then((res) => {
swalFire({ text: getMessage('common.message.save') })
- console.log('[POST] canvas-statuses response :::::::: %o', res)
+ setInitCanvasPlans([
+ ...initCanvasPlans,
+ { id: res.data, name: currentCanvasPlan.objectNo + '-' + res.data, userId: userId, canvasStatus: canvasStatus, isNew: currentCanvasPlan.id },
+ ])
+ // console.log('[POST] canvas-statuses response :::::::: %o', res)
})
.catch((error) => {
swalFire({ text: error.message, icon: 'error' })
- console.error('[POST] canvas-statuses res error :::::::: %o', error)
+ // console.error('[POST] canvas-statuses res error :::::::: %o', error)
})
}
}
@@ -170,6 +192,7 @@ export function usePlan() {
removeMouseLines,
saveCanvas,
addCanvas,
+ checkModifiedCanvasPlan,
getCanvasByObjectNo,
delCanvasById,
}
diff --git a/src/hooks/useSwal.js b/src/hooks/useSwal.js
index ab747756..cb18e6a7 100644
--- a/src/hooks/useSwal.js
+++ b/src/hooks/useSwal.js
@@ -35,7 +35,7 @@ export const useSwal = () => {
}).then((result) => {
if (result.isConfirmed) {
confirmFn()
- } else if (result.isDenied) {
+ } else if (result.isDismissed) {
denyFn()
}
})
diff --git a/src/lib/Axios.js b/src/lib/Axios.js
deleted file mode 100644
index d773d352..00000000
--- a/src/lib/Axios.js
+++ /dev/null
@@ -1,56 +0,0 @@
-'use client'
-
-import axios from 'axios'
-
-axios.defaults.baseURL = process.env.NEXT_PUBLIC_API_SERVER_PATH
-
-const axiosInstance = axios.create({
- // baseURL: process.env.API_SERVER_URL,
- headers: {
- Accept: 'application/json',
- },
-})
-
-axiosInstance.interceptors.request.use((config) => {
- // config['Authorization'] = localStorage.getItem('token')
- //TODO: 인터셉터에서 추가 로직 구현
- return config
-})
-
-axiosInstance.interceptors.request.use(undefined, (error) => {
- //TODO: 인터셉터에서 에러 처리 로직 구현
- // if (error.isAxiosError && e.response?.status === 401) {
- // localStorage.removeItem('token')
- // }
-})
-
-export const get = ({ url }) =>
- axiosInstance
- .get(url)
- .then((res) => res.data)
- .catch(console.error)
-
-export const post = ({ url, data }) =>
- axiosInstance
- .post(url, data)
- .then((res) => res.data)
- .catch(console.error)
-
-export const put = ({ url, data }) =>
- axiosInstance
- .put(url, data)
- .then((res) => res.data)
- .catch(console.error)
-
-export const patch = ({ url, data }) =>
- axiosInstance
- .patch(url, data)
-
- .then((res) => res.data)
- .catch(console.error)
-
-export const del = ({ url }) =>
- axiosInstance
- .delete(url)
- .then((res) => res.data)
- .catch(console.error)
diff --git a/src/locales/ja.json b/src/locales/ja.json
index 48937cc0..d0bffc34 100644
--- a/src/locales/ja.json
+++ b/src/locales/ja.json
@@ -97,6 +97,7 @@
"modal.canvas.setting.grid.dot.line.setting.save": "保存",
"modal.canvas.setting.grid.absorption.add": "吸着点を追加",
"modal.canvas.setting.grid.color.setting": "グリッド色の設定",
+ "modal.auxiliary.drawing": "補助線の作成",
"modal.grid.move": "グリッド移動",
"modal.grid.move.info": "移動する方向を入力してください",
"modal.grid.move.all": "グリッド全体移動",
@@ -284,24 +285,33 @@
"join.complete.contents": "※ 신청한 ID가 승인되면, 담당자 정보에 입력한 이메일 주소로 로그인 관련 안내 메일이 전송됩니다.",
"join.complete.email_comment": "담당자 이메일 주소",
"join.complete.email": "test@naver.com",
- "stuff.gridHeader.lastEditDatetime": "갱신일시",
- "stuff.gridHeader.objectNo": "물건번호",
- "stuff.gridHeader.planTotCnt": "플랜 수",
- "stuff.gridHeader.objectName": "물건명",
- "stuff.gridHeader.saleStoreId": "대리점ID",
- "stuff.gridHeader.saleStoreName": "대리점명",
- "stuff.gridHeader.address": "물건주소",
- "stuff.gridHeader.dispCompanyName": "견적처",
- "stuff.gridHeader.receiveUser": "담당자",
- "stuff.gridHeader.specDate": "사양확인",
- "stuff.gridHeader.createDatetime": "등록일",
+ "stuff.gridHeader.lastEditDatetime": "更新日時",
+ "stuff.gridHeader.objectNo": "品番",
+ "stuff.gridHeader.planTotCnt": "プラン数",
+ "stuff.gridHeader.objectName": "商品名",
+ "stuff.gridHeader.saleStoreId": "代理店ID",
+ "stuff.gridHeader.saleStoreName": "代理店名",
+ "stuff.gridHeader.address": "商品アドレス",
+ "stuff.gridHeader.dispCompanyName": "見積もり",
+ "stuff.gridHeader.receiveUser": "担当者",
+ "stuff.gridHeader.specDate": "仕様確認日",
+ "stuff.gridHeader.createDatetime": "登録日",
+ "stuff.message.periodError": "最大1年間閲覧可能.",
+ "length": "長さ",
"slope": "傾斜",
"eaves.offset": "軒の",
"gable.offset": "ケラバ出幅",
"size": "寸",
+ "size.angle": "寸(度)",
"eaves": "軒",
"gable": "ケラバ",
"wall": "壁",
+ "hajebichi": "ハゼビーチ",
+ "straight.line": "直線",
+ "right.angle": "直角",
+ "double.pitch": "イ・グベ",
+ "angle": "角度",
+ "diagonal": "対角線",
"hipandgable": "八作屋根",
"hipandgable.width": "八作屋根 出幅",
"jerkinhead": "半折",
diff --git a/src/locales/ko.json b/src/locales/ko.json
index c586d95f..6914ffcf 100644
--- a/src/locales/ko.json
+++ b/src/locales/ko.json
@@ -65,6 +65,11 @@
"plan.menu.placement.surface": "배치면",
"plan.menu.placement.surface.slope.setting": "경사설정",
"plan.menu.placement.surface.drawing": "배치면 그리기",
+ "modal.placement.surface.drawing.straight.line": "직선",
+ "modal.placement.surface.drawing.right.angle": "직각",
+ "modal.placement.surface.drawing.double.pitch": "이구배",
+ "modal.placement.surface.drawing.angle": "각도",
+ "modal.placement.surface.drawing.diagonal": "대각선",
"plan.menu.placement.surface.arrangement": "면형상 배치",
"plan.menu.placement.surface.object": "오브젝트 배치",
"plan.menu.placement.surface.all.remove": "배치면 전체 삭제",
@@ -99,6 +104,7 @@
"modal.canvas.setting.grid.dot.line.setting.save": "저장",
"modal.canvas.setting.grid.absorption.add": "흡착점 추가",
"modal.canvas.setting.grid.color.setting": "그리드 색 설정",
+ "modal.auxiliary.drawing": "보조선 작성",
"modal.grid.move": "그리드 이동",
"modal.grid.move.info": "이동할 방향을 입력해주세요",
"modal.grid.move.all": "그리드 전체 이동",
@@ -295,15 +301,24 @@
"stuff.gridHeader.address": "물건주소",
"stuff.gridHeader.dispCompanyName": "견적처",
"stuff.gridHeader.receiveUser": "담당자",
- "stuff.gridHeader.specDate": "사양확인",
+ "stuff.gridHeader.specDate": "사양확인일",
"stuff.gridHeader.createDatetime": "등록일",
+ "stuff.message.periodError": "최대1년 조회 가능합니다.",
+ "length": "길이",
"slope": "경사",
"eaves.offset": "처마 출폭",
"gable.offset": "케라바 출폭",
"size": "치수",
+ "size.angle": "寸(度)",
"eaves": "처마",
"gable": "케라바",
"wall": "벽",
+ "hajebichi": "하제비치",
+ "straight.line": "직선",
+ "right.angle": "직각",
+ "double.pitch": "이구배",
+ "angle": "각도",
+ "diagonal": "대각선",
"hipandgable": "팔작지붕",
"hipandgable.width": "팔작지붕의 폭",
"jerkinhead": "반절처",
diff --git a/src/store/stuffAtom.js b/src/store/stuffAtom.js
index 5de2c04e..e126fb35 100644
--- a/src/store/stuffAtom.js
+++ b/src/store/stuffAtom.js
@@ -10,7 +10,6 @@ export const stuffSearchState = atom({
schAddress: '', //물건주소
schObjectName: '', //물건명
schSaleStoreName: '', //판매대리점명
- schSpecDateYn: '', //사양타입 ('', 'Y', 'N')
schReceiveUser: '', //담당자
schDispCompanyName: '', //견적처
schDateType: 'U', //갱신일(U)/등록일(R)
diff --git a/src/styles/_modal.scss b/src/styles/_modal.scss
index 30e19173..be8b4185 100644
--- a/src/styles/_modal.scss
+++ b/src/styles/_modal.scss
@@ -38,7 +38,7 @@ $alert-color: #101010;
z-index: 9999999;
&.xxxm {
- width: 230px;
+ width: 240px;
}
&.xxm {
@@ -65,6 +65,10 @@ $alert-color: #101010;
width: 440px;
}
+ &.lrr {
+ width: 480px;
+ }
+
&.ml {
width: 530px;
}
@@ -73,6 +77,10 @@ $alert-color: #101010;
width: 640px;
}
+ &.lx {
+ width: 770px;
+ }
+
&.l {
width: 800px;
}
@@ -308,9 +316,19 @@ $alert-color: #101010;
}
}
+.select-form {
+ .sort-select {
+ width: 100%;
+ }
+}
+
.grid-select {
flex: 1;
+ &.no-flx {
+ flex: unset;
+ }
+
.sort-select {
width: 100%;
background-color: #313131;
@@ -768,7 +786,7 @@ $alert-color: #101010;
}
.eaves-keraba-td {
- padding-left: 15px;
+ padding-left: 10px;
}
.eaves-keraba-ico {
@@ -779,6 +797,7 @@ $alert-color: #101010;
background-color: #3D3D3D;
border: 1px solid #3D3D3D;
border-radius: 2px;
+ cursor: pointer;
&.act {
border: 1px solid #ED0004;
@@ -803,6 +822,10 @@ $alert-color: #101010;
&.sm {
margin-bottom: 15px;
}
+
+ span {
+ display: block;
+ }
}
// 지붕면 할당
@@ -936,9 +959,587 @@ $alert-color: #101010;
}
// 면형상 배치
-.roof-shape-menu {
- &.plane {
- grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
- grid-template-rows: 1fr 1fr 1fr;
+.plane-shape-menu {
+ display: grid;
+ grid-template-columns: repeat(6, 1fr);
+ grid-template-rows: repeat(3, 90px);
+ gap: 10px;
+ margin-bottom: 10px;
+
+ .shape-menu-box {
+ border-radius: 2px;
+ background-color: #3D3D3D;
+ padding: 8px;
+ transition: all .15s ease-in-out;
+
+ .shape-box {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ background-color: #313131;
+ border-radius: 2px;
+
+ img {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ }
+ }
+
+ &.act,
+ &:hover {
+ background-color: #008BFF;
+ }
}
-}
\ No newline at end of file
+}
+
+.shape-library {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 5px;
+ padding: 5px;
+ background-color: #3D3D3D;
+ margin-bottom: 24px;
+
+ .library-btn {
+ width: 30px;
+ height: 30px;
+ border: 1px solid #6C6C6C;
+ border-radius: 2px;
+ background-color: transparent;
+ background-repeat: no-repeat;
+ background-position: center;
+ transition: all .15s ease-in-out;
+
+ &.ico01 {
+ background-image: url(../../public/static/images/canvas/shape_labrary01.svg);
+ background-size: 14px 14px;
+ }
+
+ &.ico02 {
+ background-image: url(../../public/static/images/canvas/shape_labrary02.svg);
+ background-size: 13px 17px;
+ }
+
+ &.ico03 {
+ background-image: url(../../public/static/images/canvas/shape_labrary03.svg);
+ background-size: 17px 13px;
+ }
+
+ &:hover {
+ border-color: #1083E3;
+ background-color: #1083E3;
+ }
+ }
+}
+
+.plane-shape-wrapper {
+ display: flex;
+ gap: 10px;
+
+ .plane-box {
+ padding: 10px;
+ border-radius: 2px;
+ background-color: #3D3D3D;
+
+ .plane-box-tit {
+ font-size: $pop-normal-size;
+ font-weight: 600;
+ color: $pop-color;
+ margin-bottom: 10px;
+ }
+
+ &.shape-box {
+ flex: 1;
+
+ .shape-box-inner {
+ display: flex;
+ gap: 10px;
+ min-height: 140px;
+
+ .shape-img {
+ position: relative;
+ flex: 1;
+ background-color: #fff;
+ border-radius: 2px;
+
+ img {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ }
+ }
+
+ .shape-data {
+ flex: none;
+ width: 190px;
+ background-color: #313131;
+ border-radius: 2px;
+ padding: 15px;
+
+ .eaves-keraba-table {
+ .eaves-keraba-item {
+ .eaves-keraba-th,
+ .eaves-keraba-td {
+ padding-bottom: 10px;
+ }
+
+ &:last-child {
+ .eaves-keraba-th,
+ .eaves-keraba-td {
+ padding-bottom: 0px;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ &.direction-box {
+ display: flex;
+ flex-direction: column;
+ flex: none;
+ width: 180px;
+
+ .plane-direction-box {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 100%;
+ padding: 10px 5px;
+ }
+ }
+ }
+}
+
+.plane-direction {
+ width: 150px;
+ position: relative;
+ height: 120px;
+
+ span {
+ position: absolute;
+ font-size: 12px;
+ font-weight: 500;
+ color: #B1B1B1;
+
+ &.top {
+ top: 0;
+ left: 50%;
+ transform: translateX(-50%);
+ }
+
+ &.right {
+ top: 50%;
+ right: 0;
+ transform: translateY(-50%);
+ }
+
+ &.bottom {
+ bottom: 0;
+ left: 50%;
+ transform: translateX(-50%);
+ }
+
+ &.left {
+ top: 50%;
+ left: 0;
+ transform: translateY(-50%);
+ }
+ }
+
+ .plane-btn {
+ position: absolute;
+ width: 28px;
+ height: 28px;
+ background-color: #777777;
+ background-image: url(../../public/static/images/canvas/plane_arr.svg);
+ background-size: 12px 13px;
+ background-repeat: no-repeat;
+ background-position: center;
+ border-radius: 50%;
+ transition: all .15s ease-in-out;
+
+ &.up {
+ top: 22px;
+ left: 50%;
+ transform: translateX(-50%);
+ }
+
+ &.right {
+ top: 50%;
+ right: 32px;
+ transform: translateY(-50%) rotate(90deg);
+ }
+
+ &.down {
+ bottom: 22px;
+ left: 50%;
+ transform: translateX(-50%) rotate(180deg);
+ }
+
+ &.left {
+ top: 50%;
+ left: 32px;
+ transform: translateY(-50%) rotate(270deg);
+ }
+
+ &:hover,
+ &.act {
+ background-color: #fff;
+ background-image: url(../../public/static/images/canvas/plane_arr_act.svg);
+ }
+ }
+}
+
+.plane-tab-guide {
+ font-size: $pop-normal-size;
+ font-weight: $pop-normal-weight;
+ color: $pop-color;
+ margin-top: 24px;
+ padding-bottom: 14px;
+ border-bottom: 1px solid #424242;
+}
+
+// 오브젝트 배치
+.mb-box {
+ margin-bottom: 24px;
+}
+
+.object-direction-wrap {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.discrimination-tit {
+ font-size: 13px;
+ color: #fff;
+ font-weight: 500;
+}
+
+.object-size-wrap {
+ display: flex;
+ min-height: 206px;
+ gap: 24px;
+ margin-top: 14px;
+
+ .object-size-img {
+ position: relative;
+ flex: none;
+ width: 200px;
+ background-color: #fff;
+
+ img {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ }
+ }
+}
+
+// 표시변경
+.display-change-wrap {
+ margin: 24px 0;
+}
+
+.warning {
+ font-size: $pop-normal-size;
+ font-weight: $pop-normal-weight;
+ color: #FFAFAF;
+}
+
+// 각 변 속성 변경
+.radio-grid-wrap {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 24px 15px;
+}
+
+// 면 흐름 설정
+.drawing-flow-wrap {
+ display: flex;
+ gap: 10px;
+
+ .discrimination-box {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+
+ .object-direction-wrap {
+ flex: 1;
+ }
+ }
+}
+
+.compas-box {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.compas-box-inner {
+ position: relative;
+ width: 200px;
+ height: 200px;
+ border-radius: 50%;
+
+ .circle {
+ position: absolute;
+ width: 12px;
+ height: 12px;
+ border: 1px solid #fff;
+ border-radius: 50%;
+ top: 95%;
+ left: 50%;
+ transform-origin: 0 -90px; /* 중심에서 반지름 거리만큼 떨어져 위치 */
+ cursor: pointer;
+ z-index: 3;
+ /* 0번을 180도 위치(아래)에, 13번을 0도 위치(위)에 배치 */
+ i {
+ position: absolute;
+ top: 12.5px;
+ left: 50%;
+ font-size: 11px;
+ color: #8B8B8B;
+ font-weight: 500;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-use-select: none;
+ user-select: none;
+ }
+
+ &:nth-child(1) {
+ transform: rotate(180deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(180deg);
+ }
+ }
+
+ &:nth-child(2) {
+ transform: rotate(195deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(165deg);
+ }
+ }
+
+ &:nth-child(3) {
+ transform: rotate(210deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(150deg);
+ }
+ }
+
+ &:nth-child(4) {
+ transform: rotate(225deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(135deg);
+ }
+ }
+
+ &:nth-child(5) {
+ transform: rotate(240deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(120deg);
+ }
+ }
+
+ &:nth-child(6) {
+ transform: rotate(255deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(105deg);
+ }
+ }
+
+ &:nth-child(7) {
+ transform: rotate(270deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(90deg);
+ }
+ }
+
+ &:nth-child(8) {
+ transform: rotate(285deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(75deg);
+ }
+ }
+
+ &:nth-child(9) {
+ transform: rotate(300deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(60deg);
+ }
+ }
+
+ &:nth-child(10) {
+ transform: rotate(315deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(45deg);
+ }
+ }
+
+ &:nth-child(11) {
+ transform: rotate(330deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(30deg);
+ }
+ }
+
+ &:nth-child(12) {
+ transform: rotate(345deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(15deg);
+ }
+ }
+
+ &:nth-child(13) {
+ transform: rotate(0deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(0deg);
+ }
+ }
+
+ &:nth-child(14) {
+ transform: rotate(15deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(-15deg);
+ }
+ }
+
+ &:nth-child(15) {
+ transform: rotate(30deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(-30deg);
+ }
+ }
+
+ &:nth-child(16) {
+ transform: rotate(45deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(-45deg);
+ }
+ }
+
+ &:nth-child(17) {
+ transform: rotate(60deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(-60deg);
+ }
+ }
+
+ &:nth-child(18) {
+ transform: rotate(75deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(-75deg);
+ }
+ }
+
+ &:nth-child(19) {
+ transform: rotate(90deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(-90deg);
+ }
+ }
+
+ &:nth-child(20) {
+ transform: rotate(105deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(-105deg);
+ }
+ }
+
+ &:nth-child(21) {
+ transform: rotate(120deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(-120deg);
+ }
+ }
+
+ &:nth-child(22) {
+ transform: rotate(135deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(-135deg);
+ }
+ }
+
+ &:nth-child(23) {
+ transform: rotate(150deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(-150deg);
+ }
+ }
+
+ &:nth-child(24) {
+ transform: rotate(165deg) translate(-50%, -50%);
+
+ i {
+ transform: translateX(-50%) rotate(-165deg);
+ }
+ }
+
+ &.act {
+ &::after {
+ content: '';
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ width: 5px;
+ height: 5px;
+ background-color: #fff;
+ }
+
+ i {
+ color: #fff;
+ }
+ }
+ }
+
+ .compas {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ width: 148px;
+ height: 148px;
+ border: 4px solid #fff;
+ border-radius: 50%;
+
+ .compas-arr {
+ width: 100%;
+ height: 100%;
+ background: url(../../public/static/images/canvas/compas.svg) no-repeat center;
+ background-size: 122px 122px;
+ }
+ }
+}
diff --git a/yarn.lock b/yarn.lock
index affc38d7..1ffd6b98 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -163,6 +163,66 @@
jsonwebtoken "^9.0.0"
uuid "^8.3.0"
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.25.7":
+ version "7.25.7"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.25.7.tgz#438f2c524071531d643c6f0188e1e28f130cebc7"
+ integrity sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==
+ dependencies:
+ "@babel/highlight" "^7.25.7"
+ picocolors "^1.0.0"
+
+"@babel/generator@^7.25.7":
+ version "7.25.7"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.7.tgz#de86acbeb975a3e11ee92dd52223e6b03b479c56"
+ integrity sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==
+ dependencies:
+ "@babel/types" "^7.25.7"
+ "@jridgewell/gen-mapping" "^0.3.5"
+ "@jridgewell/trace-mapping" "^0.3.25"
+ jsesc "^3.0.2"
+
+"@babel/helper-module-imports@^7.16.7":
+ version "7.25.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz#dba00d9523539152906ba49263e36d7261040472"
+ integrity sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==
+ dependencies:
+ "@babel/traverse" "^7.25.7"
+ "@babel/types" "^7.25.7"
+
+"@babel/helper-string-parser@^7.25.7":
+ version "7.25.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz#d50e8d37b1176207b4fe9acedec386c565a44a54"
+ integrity sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==
+
+"@babel/helper-validator-identifier@^7.25.7":
+ version "7.25.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz#77b7f60c40b15c97df735b38a66ba1d7c3e93da5"
+ integrity sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==
+
+"@babel/highlight@^7.25.7":
+ version "7.25.7"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.25.7.tgz#20383b5f442aa606e7b5e3043b0b1aafe9f37de5"
+ integrity sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.25.7"
+ chalk "^2.4.2"
+ js-tokens "^4.0.0"
+ picocolors "^1.0.0"
+
+"@babel/parser@^7.25.7":
+ version "7.25.7"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.7.tgz#99b927720f4ddbfeb8cd195a363ed4532f87c590"
+ integrity sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==
+ dependencies:
+ "@babel/types" "^7.25.7"
+
+"@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3":
+ version "7.25.7"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.7.tgz#7ffb53c37a8f247c8c4d335e89cdf16a2e0d0fb6"
+ integrity sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==
+ dependencies:
+ regenerator-runtime "^0.14.0"
+
"@babel/runtime@^7.20.13", "@babel/runtime@^7.24.8":
version "7.25.0"
resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz"
@@ -170,6 +230,37 @@
dependencies:
regenerator-runtime "^0.14.0"
+"@babel/template@^7.25.7":
+ version "7.25.7"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.7.tgz#27f69ce382855d915b14ab0fe5fb4cbf88fa0769"
+ integrity sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==
+ dependencies:
+ "@babel/code-frame" "^7.25.7"
+ "@babel/parser" "^7.25.7"
+ "@babel/types" "^7.25.7"
+
+"@babel/traverse@^7.25.7":
+ version "7.25.7"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.7.tgz#83e367619be1cab8e4f2892ef30ba04c26a40fa8"
+ integrity sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==
+ dependencies:
+ "@babel/code-frame" "^7.25.7"
+ "@babel/generator" "^7.25.7"
+ "@babel/parser" "^7.25.7"
+ "@babel/template" "^7.25.7"
+ "@babel/types" "^7.25.7"
+ debug "^4.3.1"
+ globals "^11.1.0"
+
+"@babel/types@^7.25.7":
+ version "7.25.7"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.7.tgz#1b7725c1d3a59f328cb700ce704c46371e6eef9b"
+ integrity sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==
+ dependencies:
+ "@babel/helper-string-parser" "^7.25.7"
+ "@babel/helper-validator-identifier" "^7.25.7"
+ to-fast-properties "^2.0.0"
+
"@bedrock-layout/use-forwarded-ref@^1.3.1":
version "1.6.1"
resolved "https://registry.npmjs.org/@bedrock-layout/use-forwarded-ref/-/use-forwarded-ref-1.6.1.tgz"
@@ -182,6 +273,118 @@
resolved "https://registry.npmjs.org/@bedrock-layout/use-stateful-ref/-/use-stateful-ref-1.4.1.tgz"
integrity sha512-4eKO2KdQEXcR5LI4QcxqlJykJUDQJWDeWYAukIn6sRQYoabcfI5kDl61PUi6FR6o8VFgQ8IEP7HleKqWlSe8SQ==
+"@emotion/babel-plugin@^11.11.0":
+ version "11.12.0"
+ resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz#7b43debb250c313101b3f885eba634f1d723fcc2"
+ integrity sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==
+ dependencies:
+ "@babel/helper-module-imports" "^7.16.7"
+ "@babel/runtime" "^7.18.3"
+ "@emotion/hash" "^0.9.2"
+ "@emotion/memoize" "^0.9.0"
+ "@emotion/serialize" "^1.2.0"
+ babel-plugin-macros "^3.1.0"
+ convert-source-map "^1.5.0"
+ escape-string-regexp "^4.0.0"
+ find-root "^1.1.0"
+ source-map "^0.5.7"
+ stylis "4.2.0"
+
+"@emotion/cache@^11.11.0":
+ version "11.13.1"
+ resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.13.1.tgz#fecfc54d51810beebf05bf2a161271a1a91895d7"
+ integrity sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==
+ dependencies:
+ "@emotion/memoize" "^0.9.0"
+ "@emotion/sheet" "^1.4.0"
+ "@emotion/utils" "^1.4.0"
+ "@emotion/weak-memoize" "^0.4.0"
+ stylis "4.2.0"
+
+"@emotion/hash@^0.9.2":
+ version "0.9.2"
+ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.2.tgz#ff9221b9f58b4dfe61e619a7788734bd63f6898b"
+ integrity sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==
+
+"@emotion/is-prop-valid@^1.2.1":
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz#8d5cf1132f836d7adbe42cf0b49df7816fc88240"
+ integrity sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==
+ dependencies:
+ "@emotion/memoize" "^0.9.0"
+
+"@emotion/memoize@^0.9.0":
+ version "0.9.0"
+ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.9.0.tgz#745969d649977776b43fc7648c556aaa462b4102"
+ integrity sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==
+
+"@emotion/react@11.11.0":
+ version "11.11.0"
+ resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.0.tgz#408196b7ef8729d8ad08fc061b03b046d1460e02"
+ integrity sha512-ZSK3ZJsNkwfjT3JpDAWJZlrGD81Z3ytNDsxw1LKq1o+xkmO5pnWfr6gmCC8gHEFf3nSSX/09YrG67jybNPxSUw==
+ dependencies:
+ "@babel/runtime" "^7.18.3"
+ "@emotion/babel-plugin" "^11.11.0"
+ "@emotion/cache" "^11.11.0"
+ "@emotion/serialize" "^1.1.2"
+ "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1"
+ "@emotion/utils" "^1.2.1"
+ "@emotion/weak-memoize" "^0.3.1"
+ hoist-non-react-statics "^3.3.1"
+
+"@emotion/serialize@^1.1.2", "@emotion/serialize@^1.2.0":
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.3.2.tgz#e1c1a2e90708d5d85d81ccaee2dfeb3cc0cccf7a"
+ integrity sha512-grVnMvVPK9yUVE6rkKfAJlYZgo0cu3l9iMC77V7DW6E1DUIrU68pSEXRmFZFOFB1QFo57TncmOcvcbMDWsL4yA==
+ dependencies:
+ "@emotion/hash" "^0.9.2"
+ "@emotion/memoize" "^0.9.0"
+ "@emotion/unitless" "^0.10.0"
+ "@emotion/utils" "^1.4.1"
+ csstype "^3.0.2"
+
+"@emotion/sheet@^1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.4.0.tgz#c9299c34d248bc26e82563735f78953d2efca83c"
+ integrity sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==
+
+"@emotion/styled@11.11.0":
+ version "11.11.0"
+ resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.11.0.tgz#26b75e1b5a1b7a629d7c0a8b708fbf5a9cdce346"
+ integrity sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==
+ dependencies:
+ "@babel/runtime" "^7.18.3"
+ "@emotion/babel-plugin" "^11.11.0"
+ "@emotion/is-prop-valid" "^1.2.1"
+ "@emotion/serialize" "^1.1.2"
+ "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1"
+ "@emotion/utils" "^1.2.1"
+
+"@emotion/unitless@^0.10.0":
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.10.0.tgz#2af2f7c7e5150f497bdabd848ce7b218a27cf745"
+ integrity sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==
+
+"@emotion/use-insertion-effect-with-fallbacks@^1.0.1":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz#1a818a0b2c481efba0cf34e5ab1e0cb2dcb9dfaf"
+ integrity sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==
+
+"@emotion/utils@^1.2.1", "@emotion/utils@^1.4.0", "@emotion/utils@^1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.4.1.tgz#b3adbb43de12ee2149541c4f1337d2eb7774f0ad"
+ integrity sha512-BymCXzCG3r72VKJxaYVwOXATqXIZ85cuvg0YOUDxMGNrKc1DJRZk8MgV5wyXRyEayIMd4FuXJIUgTBXvDNW5cA==
+
+"@emotion/weak-memoize@^0.3.1":
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6"
+ integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==
+
+"@emotion/weak-memoize@^0.4.0":
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz#5e13fac887f08c44f76b0ccaf3370eb00fec9bb6"
+ integrity sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==
+
"@floating-ui/core@^1.6.0":
version "1.6.7"
resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.7.tgz"
@@ -298,7 +501,7 @@
wrap-ansi "^8.1.0"
wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
-"@jridgewell/gen-mapping@^0.3.2":
+"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5":
version "0.3.5"
resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz"
integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
@@ -322,7 +525,7 @@
resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
-"@jridgewell/trace-mapping@^0.3.24":
+"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
version "0.3.25"
resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz"
integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
@@ -3877,6 +4080,11 @@
dependencies:
undici-types "~6.18.2"
+"@types/parse-json@^4.0.0":
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239"
+ integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==
+
"@types/readable-stream@^4.0.0":
version "4.0.15"
resolved "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.15.tgz"
@@ -3969,6 +4177,13 @@ ansi-regex@^6.0.1:
resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz"
integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
+ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ dependencies:
+ color-convert "^1.9.0"
+
ansi-styles@^4.0.0:
version "4.3.0"
resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
@@ -4035,6 +4250,15 @@ axios@^1.7.3:
form-data "^4.0.0"
proxy-from-env "^1.1.0"
+babel-plugin-macros@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1"
+ integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+ cosmiconfig "^7.0.0"
+ resolve "^1.19.0"
+
balanced-match@^1.0.0:
version "1.0.2"
resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
@@ -4112,6 +4336,11 @@ busboy@1.6.0:
dependencies:
streamsearch "^1.1.0"
+callsites@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
camelcase-css@^2.0.1:
version "2.0.1"
resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz"
@@ -4131,6 +4360,15 @@ canvas@^2.8.0:
nan "^2.17.0"
simple-get "^3.0.3"
+chalk@^2.4.2:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3:
version "3.6.0"
resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz"
@@ -4171,6 +4409,13 @@ clsx@^2.0.0, clsx@^2.1.0:
resolved "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz"
integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==
+color-convert@^1.9.0:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+ dependencies:
+ color-name "1.1.3"
+
color-convert@^2.0.1:
version "2.0.1"
resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
@@ -4178,6 +4423,11 @@ color-convert@^2.0.1:
dependencies:
color-name "~1.1.4"
+color-name@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+ integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
+
color-name@^1.0.0, color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
@@ -4261,6 +4511,11 @@ console-control-strings@^1.0.0, console-control-strings@^1.1.0:
resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz"
integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==
+convert-source-map@^1.5.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
+ integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
+
convertapi@^1.14.0:
version "1.14.0"
resolved "https://registry.yarnpkg.com/convertapi/-/convertapi-1.14.0.tgz#a291a98cb986ae1e0f2340a130adbe17f65c8c76"
@@ -4273,6 +4528,17 @@ cookie@0.6.0:
resolved "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz"
integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==
+cosmiconfig@^7.0.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6"
+ integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==
+ dependencies:
+ "@types/parse-json" "^4.0.0"
+ import-fresh "^3.2.1"
+ parse-json "^5.0.0"
+ path-type "^4.0.0"
+ yaml "^1.10.0"
+
cross-spawn@^7.0.0:
version "7.0.3"
resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
@@ -4304,6 +4570,11 @@ cssstyle@^2.3.0:
dependencies:
cssom "~0.3.6"
+csstype@^3.0.2:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
+ integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
+
d3-array@1:
version "1.2.4"
resolved "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz"
@@ -4347,6 +4618,13 @@ debug@4, debug@^4.3.3, debug@^4.3.4:
dependencies:
ms "2.1.2"
+debug@^4.3.1:
+ version "4.3.7"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52"
+ integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
+ dependencies:
+ ms "^2.1.3"
+
decimal.js@^10.3.1, decimal.js@^10.4.3:
version "10.4.3"
resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz"
@@ -4433,11 +4711,28 @@ emoji-regex@^9.2.2:
resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz"
integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
+error-ex@^1.3.1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+ dependencies:
+ is-arrayish "^0.2.1"
+
escape-latex@^1.2.0:
version "1.2.0"
resolved "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz"
integrity sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==
+escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
+
+escape-string-regexp@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+ integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
escodegen@^2.0.0:
version "2.1.0"
resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz"
@@ -4512,6 +4807,11 @@ fill-range@^7.1.1:
dependencies:
to-regex-range "^5.0.1"
+find-root@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
+ integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
+
flat@^5.0.2:
version "5.0.2"
resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz"
@@ -4649,6 +4949,11 @@ glob@^7.1.3:
once "^1.3.0"
path-is-absolute "^1.0.0"
+globals@^11.1.0:
+ version "11.12.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
+ integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+
graceful-fs@^4.2.11:
version "4.2.11"
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz"
@@ -4659,6 +4964,11 @@ hamt_plus@1.0.2:
resolved "https://registry.npmjs.org/hamt_plus/-/hamt_plus-1.0.2.tgz"
integrity sha512-t2JXKaehnMb9paaYA7J0BX8QQAY8lwfQ9Gjf4pg/mk4krt+cmwmU652HOoWonf+7+EQV97ARPMhhVgU1ra2GhA==
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+ integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
+
has-unicode@^2.0.1:
version "2.0.1"
resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"
@@ -4671,6 +4981,13 @@ hasown@^2.0.0:
dependencies:
function-bind "^1.1.2"
+hoist-non-react-statics@^3.3.1:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
+ integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
+ dependencies:
+ react-is "^16.7.0"
+
html-encoding-sniffer@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz"
@@ -4728,6 +5045,14 @@ immutable@^4.0.0:
resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz"
integrity sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==
+import-fresh@^3.2.1:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+ integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
@@ -4777,6 +5102,11 @@ iron-webcrypto@1.2.1:
resolved "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz"
integrity sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
+
is-arrayish@^0.3.1:
version "0.3.2"
resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"
@@ -4864,7 +5194,7 @@ js-md4@^0.3.2:
resolved "https://registry.npmjs.org/js-md4/-/js-md4-0.3.2.tgz"
integrity sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==
-"js-tokens@^3.0.0 || ^4.0.0":
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
@@ -4902,6 +5232,16 @@ jsdom@^19.0.0:
ws "^8.2.3"
xml-name-validator "^4.0.0"
+jsesc@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e"
+ integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==
+
+json-parse-even-better-errors@^2.3.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
jsonwebtoken@^9.0.0:
version "9.0.2"
resolved "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz"
@@ -5155,6 +5495,11 @@ ms@2.1.2, ms@^2.1.1:
resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+ms@^2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
mssql@^11.0.1:
version "11.0.1"
resolved "https://registry.npmjs.org/mssql/-/mssql-11.0.1.tgz"
@@ -5283,6 +5628,23 @@ open@^8.0.0:
is-docker "^2.1.1"
is-wsl "^2.2.0"
+parent-module@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+ integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+ dependencies:
+ callsites "^3.0.0"
+
+parse-json@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
+ integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ error-ex "^1.3.1"
+ json-parse-even-better-errors "^2.3.0"
+ lines-and-columns "^1.1.6"
+
parse5@6.0.1:
version "6.0.1"
resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz"
@@ -5311,6 +5673,11 @@ path-scurry@^1.11.1:
lru-cache "^10.2.0"
minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
+path-type@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+ integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
picocolors@^1.0.0:
version "1.0.1"
resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz"
@@ -5523,6 +5890,14 @@ react-draggable@^4.4.6:
clsx "^1.1.1"
prop-types "^15.8.1"
+react-dropdown-select@^4.11.3:
+ version "4.11.3"
+ resolved "https://registry.yarnpkg.com/react-dropdown-select/-/react-dropdown-select-4.11.3.tgz#b23b8906f3bedc9d6a1a2125af936b34d4057158"
+ integrity sha512-/mOGSqqhmKsxxrmotLM+qn1Ss3nxGN6QnYusyQ7f0wizsWrc7ZmbcZhGRtwkJwpL6JYDQVTn19EYxJU1XfXrDA==
+ dependencies:
+ "@emotion/react" "11.11.0"
+ "@emotion/styled" "11.11.0"
+
react-hook-form@^7.53.0:
version "7.53.0"
resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.53.0.tgz#3cf70951bf41fa95207b34486203ebefbd3a05ab"
@@ -5533,7 +5908,7 @@ react-icons@^5.3.0:
resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-5.3.0.tgz#ccad07a30aebd40a89f8cfa7d82e466019203f1c"
integrity sha512-DnUk8aFbTyQPSkCfF8dbX6kQjXA9DktMeJqfjrg6cK9vwQVMxmcA3BfP4QoiztVmEHtwlTgLFsPuH2NskKT6eg==
-react-is@^16.13.1:
+react-is@^16.13.1, react-is@^16.7.0:
version "16.13.1"
resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
@@ -5654,7 +6029,12 @@ requires-port@^1.0.0:
resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz"
integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
-resolve@^1.1.7, resolve@^1.22.2:
+resolve-from@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+resolve@^1.1.7, resolve@^1.19.0, resolve@^1.22.2:
version "1.22.8"
resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz"
integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
@@ -5820,6 +6200,11 @@ skmeans@0.9.7:
resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz"
integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
+source-map@^0.5.7:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+ integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
+
source-map@~0.6.1:
version "0.6.1"
resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
@@ -5907,6 +6292,11 @@ styled-jsx@5.1.1:
dependencies:
client-only "0.0.1"
+stylis@4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51"
+ integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==
+
sucrase@^3.32.0:
version "3.35.0"
resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz"
@@ -5920,6 +6310,13 @@ sucrase@^3.32.0:
pirates "^4.0.1"
ts-interface-checker "^0.1.9"
+supports-color@^5.3.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ dependencies:
+ has-flag "^3.0.0"
+
supports-preserve-symlinks-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
@@ -6049,6 +6446,11 @@ tinyqueue@^2.0.0, tinyqueue@^2.0.3:
resolved "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz"
integrity sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==
+to-fast-properties@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+ integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
+
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
@@ -6294,6 +6696,11 @@ yallist@^4.0.0:
resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+yaml@^1.10.0:
+ version "1.10.2"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
+ integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+
yaml@^2.3.4:
version "2.4.5"
resolved "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz"